diff --git a/srcs/requirements/svelte/api_front/public/build/bundle.js b/srcs/requirements/svelte/api_front/public/build/bundle.js index 63313321..c381acba 100644 --- a/srcs/requirements/svelte/api_front/public/build/bundle.js +++ b/srcs/requirements/svelte/api_front/public/build/bundle.js @@ -1417,7 +1417,7 @@ var app = (function () { return block; } - function create_fragment$B(ctx) { + function create_fragment$C(ctx) { let current_block_type_index; let if_block; let if_block_anchor; @@ -1490,7 +1490,7 @@ var app = (function () { dispatch_dev("SvelteRegisterBlock", { block, - id: create_fragment$B.name, + id: create_fragment$C.name, type: "component", source: "", ctx @@ -1691,7 +1691,7 @@ var app = (function () { window.location.hash = href; } - function instance$B($$self, $$props, $$invalidate) { + function instance$C($$self, $$props, $$invalidate) { let { $$slots: slots = {}, $$scope } = $$props; validate_slots('Router', slots, []); let { routes = {} } = $$props; @@ -2106,7 +2106,7 @@ var app = (function () { constructor(options) { super(options); - init$2(this, options, instance$B, create_fragment$B, safe_not_equal, { + init$2(this, options, instance$C, create_fragment$C, safe_not_equal, { routes: 3, prefix: 4, restoreScrollState: 5 @@ -2116,7 +2116,7 @@ var app = (function () { component: this, tagName: "Router", options, - id: create_fragment$B.name + id: create_fragment$C.name }); } @@ -2146,9 +2146,9 @@ var app = (function () { } /* src/pages/NotFound.svelte generated by Svelte v3.53.1 */ - const file$x = "src/pages/NotFound.svelte"; + const file$y = "src/pages/NotFound.svelte"; - function create_fragment$A(ctx) { + function create_fragment$B(ctx) { let h1; let t1; let p0; @@ -2174,12 +2174,12 @@ var app = (function () { a = element("a"); h2 = element("h2"); h2.textContent = "Take me home →"; - add_location(h1, file$x, 4, 0, 64); - add_location(p0, file$x, 5, 0, 87); - add_location(p1, file$x, 7, 0, 192); - add_location(h2, file$x, 9, 4, 247); + add_location(h1, file$y, 4, 0, 64); + add_location(p0, file$y, 5, 0, 87); + add_location(p1, file$y, 7, 0, 192); + add_location(h2, file$y, 9, 4, 247); attr_dev(a, "href", "/"); - add_location(a, file$x, 8, 0, 221); + add_location(a, file$y, 8, 0, 221); }, l: function claim(nodes) { throw new Error("options.hydrate only works if the component was compiled with the `hydratable: true` option"); @@ -2217,7 +2217,7 @@ var app = (function () { dispatch_dev("SvelteRegisterBlock", { block, - id: create_fragment$A.name, + id: create_fragment$B.name, type: "component", source: "", ctx @@ -2226,7 +2226,7 @@ var app = (function () { return block; } - function instance$A($$self, $$props, $$invalidate) { + function instance$B($$self, $$props, $$invalidate) { let { $$slots: slots = {}, $$scope } = $$props; validate_slots('NotFound', slots, []); const writable_props = []; @@ -2242,13 +2242,13 @@ var app = (function () { class NotFound extends SvelteComponentDev { constructor(options) { super(options); - init$2(this, options, instance$A, create_fragment$A, safe_not_equal, {}); + init$2(this, options, instance$B, create_fragment$B, safe_not_equal, {}); dispatch_dev("SvelteRegisterComponent", { component: this, tagName: "NotFound", options, - id: create_fragment$A.name + id: create_fragment$B.name }); } } @@ -2293,7 +2293,7 @@ var app = (function () { /* src/pieces/Header.svelte generated by Svelte v3.53.1 */ const { console: console_1$d } = globals; - const file$w = "src/pieces/Header.svelte"; + const file$x = "src/pieces/Header.svelte"; // (25:39) function create_if_block_1$6(ctx) { @@ -2306,7 +2306,7 @@ var app = (function () { button = element("button"); button.textContent = "Settings"; attr_dev(button, "class", "svelte-1aisfio"); - add_location(button, file$w, 25, 6, 984); + add_location(button, file$x, 25, 6, 984); }, m: function mount(target, anchor) { insert_dev(target, button, anchor); @@ -2346,7 +2346,7 @@ var app = (function () { button = element("button"); button.textContent = "My Profile"; attr_dev(button, "class", "svelte-1aisfio"); - add_location(button, file$w, 23, 6, 874); + add_location(button, file$x, 23, 6, 874); }, m: function mount(target, anchor) { insert_dev(target, button, anchor); @@ -2375,7 +2375,7 @@ var app = (function () { return block; } - function create_fragment$z(ctx) { + function create_fragment$A(ctx) { let header; let img; let img_src_value; @@ -2432,23 +2432,23 @@ var app = (function () { if (!src_url_equal(img.src, img_src_value = "/img/potato_logo.png")) attr_dev(img, "src", img_src_value); attr_dev(img, "alt", "Potato Pong Logo"); attr_dev(img, "class", "svelte-1aisfio"); - add_location(img, file$w, 16, 2, 534); + add_location(img, file$x, 16, 2, 534); attr_dev(h1, "class", "svelte-1aisfio"); - add_location(h1, file$w, 17, 2, 621); + add_location(h1, file$x, 17, 2, 621); attr_dev(button0, "class", "svelte-1aisfio"); - add_location(button0, file$w, 19, 1, 651); + add_location(button0, file$x, 19, 1, 651); attr_dev(button1, "class", "svelte-1aisfio"); - add_location(button1, file$w, 20, 1, 707); + add_location(button1, file$x, 20, 1, 707); attr_dev(button2, "class", "svelte-1aisfio"); - add_location(button2, file$w, 21, 1, 772); + add_location(button2, file$x, 21, 1, 772); attr_dev(button3, "class", "svelte-1aisfio"); - add_location(button3, file$w, 27, 4, 1069); + add_location(button3, file$x, 27, 4, 1069); attr_dev(button4, "class", "svelte-1aisfio"); - add_location(button4, file$w, 28, 4, 1142); + add_location(button4, file$x, 28, 4, 1142); attr_dev(nav, "class", "svelte-1aisfio"); - add_location(nav, file$w, 18, 2, 644); + add_location(nav, file$x, 18, 2, 644); attr_dev(header, "class", "svelte-1aisfio"); - add_location(header, file$w, 15, 0, 523); + add_location(header, file$x, 15, 0, 523); }, l: function claim(nodes) { throw new Error("options.hydrate only works if the component was compiled with the `hydratable: true` option"); @@ -2514,7 +2514,7 @@ var app = (function () { dispatch_dev("SvelteRegisterBlock", { block, - id: create_fragment$z.name, + id: create_fragment$A.name, type: "component", source: "", ctx @@ -2523,7 +2523,7 @@ var app = (function () { return block; } - function instance$z($$self, $$props, $$invalidate) { + function instance$A($$self, $$props, $$invalidate) { let $location; validate_store(location$2, 'location'); component_subscribe($$self, location$2, $$value => $$invalidate(0, $location = $$value)); @@ -2531,7 +2531,7 @@ var app = (function () { validate_slots('Header', slots, []); let handleClickLogout = async () => { - await fetch(`http://${'localhost'}:${'8080'}/api/v2/auth/logout`, { method: 'POST' }).then(() => push('/')); + await fetch(`http://${'transcendance'}:${'8080'}/api/v2/auth/logout`, { method: 'POST' }).then(() => push('/')); console.log('clicked logout header'); }; @@ -2580,13 +2580,13 @@ var app = (function () { class Header extends SvelteComponentDev { constructor(options) { super(options); - init$2(this, options, instance$z, create_fragment$z, safe_not_equal, {}); + init$2(this, options, instance$A, create_fragment$A, safe_not_equal, {}); dispatch_dev("SvelteRegisterComponent", { component: this, tagName: "Header", options, - id: create_fragment$z.name + id: create_fragment$A.name }); } } @@ -2594,7 +2594,7 @@ var app = (function () { /* src/pieces/GenerateUserDisplay.svelte generated by Svelte v3.53.1 */ const { console: console_1$c } = globals; - const file$v = "src/pieces/GenerateUserDisplay.svelte"; + const file$w = "src/pieces/GenerateUserDisplay.svelte"; // (66:2) {#if user !== undefined} function create_if_block$c(ctx) { @@ -2702,51 +2702,51 @@ var app = (function () { attr_dev(img, "class", "avatar svelte-vn7dzx"); if (!src_url_equal(img.src, img_src_value = /*avatar*/ ctx[2])) attr_dev(img, "src", img_src_value); attr_dev(img, "alt", "default user icon"); - add_location(img, file$v, 69, 4, 2466); + add_location(img, file$w, 69, 4, 2466); attr_dev(div0, "class", "error svelte-vn7dzx"); - add_location(div0, file$v, 70, 4, 2530); + add_location(div0, file$w, 70, 4, 2530); attr_dev(div1, "class", "username svelte-vn7dzx"); - add_location(div1, file$v, 71, 4, 2575); + add_location(div1, file$w, 71, 4, 2575); attr_dev(path0, "d", "M512 255.1c0 11.34-7.406 20.86-18.44 23.64l-171.3 42.78l-42.78 171.1C276.7 504.6 267.2 512 255.9 512s-20.84-7.406-23.62-18.44l-42.66-171.2L18.47 279.6C7.406 276.8 0 267.3 0 255.1c0-11.34 7.406-20.83 18.44-23.61l171.2-42.78l42.78-171.1C235.2 7.406 244.7 0 256 0s20.84 7.406 23.62 18.44l42.78 171.2l171.2 42.78C504.6 235.2 512 244.6 512 255.1z"); attr_dev(path0, "class", "svelte-vn7dzx"); - add_location(path0, file$v, 76, 10, 2781); + add_location(path0, file$w, 76, 10, 2781); attr_dev(svg0, "viewBox", "0 0 512 512"); attr_dev(svg0, "class", "svelte-vn7dzx"); - add_location(svg0, file$v, 75, 10, 2743); + add_location(svg0, file$w, 75, 10, 2743); attr_dev(span0, "class", "glitter-star svelte-vn7dzx"); - add_location(span0, file$v, 74, 8, 2684); + add_location(span0, file$w, 74, 8, 2684); attr_dev(path1, "d", "M512 255.1c0 11.34-7.406 20.86-18.44 23.64l-171.3 42.78l-42.78 171.1C276.7 504.6 267.2 512 255.9 512s-20.84-7.406-23.62-18.44l-42.66-171.2L18.47 279.6C7.406 276.8 0 267.3 0 255.1c0-11.34 7.406-20.83 18.44-23.61l171.2-42.78l42.78-171.1C235.2 7.406 244.7 0 256 0s20.84 7.406 23.62 18.44l42.78 171.2l171.2 42.78C504.6 235.2 512 244.6 512 255.1z"); attr_dev(path1, "class", "svelte-vn7dzx"); - add_location(path1, file$v, 81, 10, 3274); + add_location(path1, file$w, 81, 10, 3274); attr_dev(svg1, "viewBox", "0 0 512 512"); attr_dev(svg1, "class", "svelte-vn7dzx"); - add_location(svg1, file$v, 80, 10, 3236); + add_location(svg1, file$w, 80, 10, 3236); attr_dev(span1, "class", "glitter-star svelte-vn7dzx"); - add_location(span1, file$v, 79, 8, 3177); + add_location(span1, file$w, 79, 8, 3177); attr_dev(path2, "d", "M512 255.1c0 11.34-7.406 20.86-18.44 23.64l-171.3 42.78l-42.78 171.1C276.7 504.6 267.2 512 255.9 512s-20.84-7.406-23.62-18.44l-42.66-171.2L18.47 279.6C7.406 276.8 0 267.3 0 255.1c0-11.34 7.406-20.83 18.44-23.61l171.2-42.78l42.78-171.1C235.2 7.406 244.7 0 256 0s20.84 7.406 23.62 18.44l42.78 171.2l171.2 42.78C504.6 235.2 512 244.6 512 255.1z"); attr_dev(path2, "class", "svelte-vn7dzx"); - add_location(path2, file$v, 86, 10, 3767); + add_location(path2, file$w, 86, 10, 3767); attr_dev(svg2, "viewBox", "0 0 512 512"); attr_dev(svg2, "class", "svelte-vn7dzx"); - add_location(svg2, file$v, 85, 10, 3729); + add_location(svg2, file$w, 85, 10, 3729); attr_dev(span2, "class", "glitter-star svelte-vn7dzx"); - add_location(span2, file$v, 84, 8, 3670); + add_location(span2, file$w, 84, 8, 3670); attr_dev(span3, "class", "glitter-text svelte-vn7dzx"); - add_location(span3, file$v, 89, 8, 4163); + add_location(span3, file$w, 89, 8, 4163); attr_dev(span4, "class", "glitter svelte-vn7dzx"); - add_location(span4, file$v, 73, 6, 2653); + add_location(span4, file$w, 73, 6, 2653); attr_dev(div2, "class", "rank svelte-vn7dzx"); - add_location(div2, file$v, 72, 4, 2623); + add_location(div2, file$w, 72, 4, 2623); attr_dev(h4, "class", "svelte-vn7dzx"); - add_location(h4, file$v, 93, 6, 4268); - add_location(p0, file$v, 94, 6, 4300); - add_location(p1, file$v, 95, 6, 4343); - add_location(p2, file$v, 96, 6, 4388); - add_location(p3, file$v, 97, 6, 4431); + add_location(h4, file$w, 93, 6, 4268); + add_location(p0, file$w, 94, 6, 4300); + add_location(p1, file$w, 95, 6, 4343); + add_location(p2, file$w, 96, 6, 4388); + add_location(p3, file$w, 97, 6, 4431); attr_dev(section, "class", "main-stats svelte-vn7dzx"); - add_location(section, file$v, 92, 4, 4233); + add_location(section, file$w, 92, 4, 4233); attr_dev(main, "class", "svelte-vn7dzx"); - add_location(main, file$v, 66, 2, 2288); + add_location(main, file$w, 66, 2, 2288); }, m: function mount(target, anchor) { insert_dev(target, main, anchor); @@ -2830,7 +2830,7 @@ var app = (function () { return block; } - function create_fragment$y(ctx) { + function create_fragment$z(ctx) { let div; let if_block = /*user*/ ctx[0] !== undefined && create_if_block$c(ctx); @@ -2839,7 +2839,7 @@ var app = (function () { div = element("div"); if (if_block) if_block.c(); attr_dev(div, "class", "outer svelte-vn7dzx"); - add_location(div, file$v, 64, 0, 2239); + add_location(div, file$w, 64, 0, 2239); }, l: function claim(nodes) { throw new Error("options.hydrate only works if the component was compiled with the `hydratable: true` option"); @@ -2872,7 +2872,7 @@ var app = (function () { dispatch_dev("SvelteRegisterBlock", { block, - id: create_fragment$y.name, + id: create_fragment$z.name, type: "component", source: "", ctx @@ -2881,7 +2881,7 @@ var app = (function () { return block; } - function instance$y($$self, $$props, $$invalidate) { + function instance$z($$self, $$props, $$invalidate) { let { $$slots: slots = {}, $$scope } = $$props; validate_slots('GenerateUserDisplay', slots, []); let { user } = $$props; @@ -2898,7 +2898,7 @@ var app = (function () { onMount(async () => { // console.log('Generate User Display, on mount ' + user.username) if (primary) { - await fetch(`http://${'localhost'}:${'8080'}/api/v2/user/avatar`, { method: "GET" }).then(response => { + await fetch(`http://${'transcendance'}:${'8080'}/api/v2/user/avatar`, { method: "GET" }).then(response => { return response.blob(); }).then(data => { const url = URL.createObjectURL(data); @@ -2906,7 +2906,7 @@ var app = (function () { }).catch(() => $$invalidate(3, errors.avatar = 'Sorry your avatar could not be loaded', errors)); } else // console.log(avatar) { - await fetch(`http://${'localhost'}:${'8080'}/api/v2/user/avatar?username=${user.username}`, { + await fetch(`http://${'transcendance'}:${'8080'}/api/v2/user/avatar?username=${user.username}`, { method: "GET", // console.log('avatar: ') }).then(response => { @@ -3041,13 +3041,13 @@ var app = (function () { class GenerateUserDisplay extends SvelteComponentDev { constructor(options) { super(options); - init$2(this, options, instance$y, create_fragment$y, safe_not_equal, { user: 0, primary: 5 }); + init$2(this, options, instance$z, create_fragment$z, safe_not_equal, { user: 0, primary: 5 }); dispatch_dev("SvelteRegisterComponent", { component: this, tagName: "GenerateUserDisplay", options, - id: create_fragment$y.name + id: create_fragment$z.name }); } @@ -3070,9 +3070,9 @@ var app = (function () { /* src/pieces/chat/tmp_debug.svelte generated by Svelte v3.53.1 */ - const file$u = "src/pieces/chat/tmp_debug.svelte"; + const file$v = "src/pieces/chat/tmp_debug.svelte"; - function create_fragment$x(ctx) { + function create_fragment$y(ctx) { let div; let p; let t1; @@ -3138,18 +3138,18 @@ var app = (function () { t21 = space(); button10 = element("button"); button10.textContent = "user from room_set"; - add_location(p, file$u, 8, 1, 209); - add_location(button0, file$u, 9, 1, 237); - add_location(button1, file$u, 10, 1, 305); - add_location(button2, file$u, 11, 1, 372); - add_location(button3, file$u, 12, 1, 439); - add_location(button4, file$u, 13, 1, 505); - add_location(button5, file$u, 14, 1, 576); - add_location(button6, file$u, 15, 1, 647); - add_location(button7, file$u, 16, 1, 719); - add_location(button8, file$u, 17, 1, 788); - add_location(button9, file$u, 18, 1, 855); - add_location(button10, file$u, 22, 1, 975); + add_location(p, file$v, 8, 1, 209); + add_location(button0, file$v, 9, 1, 237); + add_location(button1, file$v, 10, 1, 305); + add_location(button2, file$v, 11, 1, 372); + add_location(button3, file$v, 12, 1, 439); + add_location(button4, file$v, 13, 1, 505); + add_location(button5, file$v, 14, 1, 576); + add_location(button6, file$v, 15, 1, 647); + add_location(button7, file$v, 16, 1, 719); + add_location(button8, file$v, 17, 1, 788); + add_location(button9, file$v, 18, 1, 855); + add_location(button10, file$v, 22, 1, 975); set_style(div, "display", "flex"); set_style(div, "flex-direction", "column"); set_style(div, "font-size", "12px"); @@ -3157,7 +3157,7 @@ var app = (function () { set_style(div, "top", "20px"); set_style(div, "left", "20px"); set_style(div, "background-color", "white"); - add_location(div, file$u, 7, 0, 73); + add_location(div, file$v, 7, 0, 73); }, l: function claim(nodes) { throw new Error("options.hydrate only works if the component was compiled with the `hydratable: true` option"); @@ -3218,7 +3218,7 @@ var app = (function () { dispatch_dev("SvelteRegisterBlock", { block, - id: create_fragment$x.name, + id: create_fragment$y.name, type: "component", source: "", ctx @@ -3227,7 +3227,7 @@ var app = (function () { return block; } - function instance$x($$self, $$props, $$invalidate) { + function instance$y($$self, $$props, $$invalidate) { let { $$slots: slots = {}, $$scope } = $$props; validate_slots('Tmp_debug', slots, []); let { layout = "" } = $$props; @@ -3320,13 +3320,13 @@ var app = (function () { class Tmp_debug extends SvelteComponentDev { constructor(options) { super(options); - init$2(this, options, instance$x, create_fragment$x, safe_not_equal, { layout: 0, layouts: 1 }); + init$2(this, options, instance$y, create_fragment$y, safe_not_equal, { layout: 0, layouts: 1 }); dispatch_dev("SvelteRegisterComponent", { component: this, tagName: "Tmp_debug", options, - id: create_fragment$x.name + id: create_fragment$y.name }); } @@ -3359,9 +3359,9 @@ var app = (function () { } /* src/pieces/chat/Chat_box_css.svelte generated by Svelte v3.53.1 */ - const file$t = "src/pieces/chat/Chat_box_css.svelte"; + const file$u = "src/pieces/chat/Chat_box_css.svelte"; - function create_fragment$w(ctx) { + function create_fragment$x(ctx) { let div; let div_class_value; let current; @@ -3374,7 +3374,7 @@ var app = (function () { if (default_slot) default_slot.c(); attr_dev(div, "class", div_class_value = "" + (/*$layout*/ ctx[1] + " chat_box" + " svelte-6ej1tr")); set_style(div, "background-color", /*color*/ ctx[0]); - add_location(div, file$t, 4, 0, 86); + add_location(div, file$u, 4, 0, 86); }, l: function claim(nodes) { throw new Error("options.hydrate only works if the component was compiled with the `hydratable: true` option"); @@ -3429,7 +3429,7 @@ var app = (function () { dispatch_dev("SvelteRegisterBlock", { block, - id: create_fragment$w.name, + id: create_fragment$x.name, type: "component", source: "", ctx @@ -3438,7 +3438,7 @@ var app = (function () { return block; } - function instance$w($$self, $$props, $$invalidate) { + function instance$x($$self, $$props, $$invalidate) { let $layout; validate_store(layout, 'layout'); component_subscribe($$self, layout, $$value => $$invalidate(1, $layout = $$value)); @@ -3479,13 +3479,13 @@ var app = (function () { class Chat_box_css extends SvelteComponentDev { constructor(options) { super(options); - init$2(this, options, instance$w, create_fragment$w, safe_not_equal, { color: 0 }); + init$2(this, options, instance$x, create_fragment$x, safe_not_equal, { color: 0 }); dispatch_dev("SvelteRegisterComponent", { component: this, tagName: "Chat_box_css", options, - id: create_fragment$w.name + id: create_fragment$x.name }); } @@ -3499,9 +3499,9 @@ var app = (function () { } /* src/pieces/chat/Element_button.svelte generated by Svelte v3.53.1 */ - const file$s = "src/pieces/chat/Element_button.svelte"; + const file$t = "src/pieces/chat/Element_button.svelte"; - function create_fragment$v(ctx) { + function create_fragment$w(ctx) { let button; let p; let button_class_value; @@ -3517,10 +3517,10 @@ var app = (function () { p = element("p"); if (default_slot) default_slot.c(); attr_dev(p, "class", "svelte-1qngx3f"); - add_location(p, file$s, 23, 1, 433); + add_location(p, file$t, 23, 1, 433); attr_dev(button, "title", /*my_title*/ ctx[1]); attr_dev(button, "class", button_class_value = "" + (null_to_empty(/*my_class*/ ctx[0]) + " svelte-1qngx3f")); - add_location(button, file$s, 22, 0, 344); + add_location(button, file$t, 22, 0, 344); }, l: function claim(nodes) { throw new Error("options.hydrate only works if the component was compiled with the `hydratable: true` option"); @@ -3598,7 +3598,7 @@ var app = (function () { dispatch_dev("SvelteRegisterBlock", { block, - id: create_fragment$v.name, + id: create_fragment$w.name, type: "component", source: "", ctx @@ -3607,7 +3607,7 @@ var app = (function () { return block; } - function instance$v($$self, $$props, $$invalidate) { + function instance$w($$self, $$props, $$invalidate) { let { $$slots: slots = {}, $$scope } = $$props; validate_slots('Element_button', slots, ['default']); let { my_class = "" } = $$props; @@ -3660,7 +3660,7 @@ var app = (function () { constructor(options) { super(options); - init$2(this, options, instance$v, create_fragment$v, safe_not_equal, { + init$2(this, options, instance$w, create_fragment$w, safe_not_equal, { my_class: 0, my_title: 1, new_layout: 4, @@ -3671,7 +3671,7 @@ var app = (function () { component: this, tagName: "Element_button", options, - id: create_fragment$v.name + id: create_fragment$w.name }); } @@ -3709,7 +3709,7 @@ var app = (function () { } /* src/pieces/chat/Layout_close.svelte generated by Svelte v3.53.1 */ - const file$r = "src/pieces/chat/Layout_close.svelte"; + const file$s = "src/pieces/chat/Layout_close.svelte"; // (7:1) \n\t\n\t\n {#if $location !== '/profile'}\n \n {:else if $location === '/profile'}\n \n {/if}\n \n \n \n\n\n\n\n\n\n\n\n","\n\n\n
\n {#if user !== undefined}\n
\n \n \n \"default\n
{errors.avatar}
\n
{user.username}
\n
Rank:\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n {rank}\n \n
\n
\n

Match Statistics

\n

Total: {user.stats.totalGame}

\n

Victories: {user.stats.winGame}

\n

Losses: {user.stats.loseGame}

\n

Draws: {user.stats.drawGame}

\n
\n
\n {/if}\n
\n\n\n\n\n","\n\n
\n\t

temp, for testing :

\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n
\n","import { writable } from 'svelte/store';\n\nexport let msgs = writable([]);\nexport let layout = writable(\"close\");\nexport let room_name = writable(\"\");\n\nexport let user;\nexport let socket;\n\nexport function set_user(new_user) { user = new_user; }\nexport function set_socket(new_socket) { socket = new_socket; }\n\nexport function add_msg(name: string, message: string)\n{\n\tmsgs.update(msgs => [...msgs, { name: \"me\", message: message }]);\n}\n","\n\n
\n\t\n
\n\n\n\n","\n\n\n\n\n\n\n\n","\n\n
\n\t\n
\n\n\n\n\n","import { msgs, user, layout, socket, room_name } from './Store_chat';\n\nexport async function get_room_messages()\n{\n\tconsole.log(\"in get_room_messages\");\n\tconst response = await fetch('/api/v2/chat/messages');\n\tconst data = await response.json();\n\tconst messages = data.messages;\n\n\tmessages.forEach(function(item) {\n\t\tif (item.name === user.username) {\n\t\t\titem.name = \"me\";\n\t\t}\n\t});\n\n\tmsgs.set(messages);\n}\n\nexport async function create_room(room_name, room_type)\n{\n\tconsole.log(\"in create_room\");\n\n\tlet form_data = {\n\t\troom_name: room_name,\n\t\troom_type: room_type,\n\t};\n\n\t// send the new room\n\tconst response = await fetch('/api/v2/chat/create', {\n\t\tmethod: 'POST',\n\t\theaders: { 'Content-Type': 'application/json' },\n\t\tbody: JSON.stringify(form_data),\n\t});\n\n\t// get response status and message\n\tlet response_status = response.status;\n\tlet data = await response.json();\n\tlet response_message = \"\";\n\tif (data.message)\n\t\tresponse_message = data.message;\n\n\treturn {\n\t\tstatus: response_status,\n\t\tmessage: response_message\n\t};\n}\n\nexport async function join_room(room_name)\n{\n\tconsole.log(\"in join_room\");\n\n\tlet name = {\n\t\troom_name: room_name,\n\t}\n\tconst response = await fetch('/api/v2/chat/join', {\n\t\tmethod: 'POST',\n\t\theaders: { 'Content-Type': 'application/json' },\n\t\tbody: JSON.stringify(name),\n\t});\n\tlet data = await response.json();\n\tconsole.log(data.message);\n\n\tsocket.emit('join', room_name);\n}\n\nexport async function change_room(name)\n{\n\tconsole.log(\"in change_room\");\n\n\tlet r_name = {\n\t\troom_name: name,\n\t}\n\tconst response = await fetch('/api/v2/chat/change', {\n\t\tmethod: 'POST',\n\t\theaders: { 'Content-Type': 'application/json' },\n\t\tbody: JSON.stringify(r_name),\n\t});\n\tlet data = await response.json();\n\tconsole.log(data.message);\n\n\tawait get_room_messages();\n\tsocket.emit('join', name);\n\n\troom_name.set(name);\n\tlayout.set(\"room\");\n}\n\nexport async function get_all_rooms()\n{\n\tconsole.log(\"in get_all_rooms\");\n\n\t// ask api for the rooms\n\tconst response = await fetch('/api/v2/chat/myrooms');\n\tconst data = await response.json();\n\n\tconsole.log(\"data.rooms:\", data.rooms);\n\tfor (let room of data.rooms)\n\t\tconsole.log(room.name);\n\tlet rooms = data.rooms;\n\n\treturn rooms;\n}\n\n","\n\n
\n\n\t\n\t\n\n\t\n\t\n\n\t\n\t\n\n\t\n\t
\n\t\t

list of your rooms :

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

/ you have no chat room yet /

\n\t\t\t
\n\t\t\t{#await rooms}\n\t\t\t\t\n\t\t\t\t

rooms are loaded...

\n\t\t\t{:then rooms}\n\t\t\t\t{#each rooms as room}\n\t\t\t\t\t\n\t\t\t\t{/each}\n\t\t\t{/await}\n\t\t
\n\t
\n\n
\n\n\n\n","\n\n
\n\t

{name}

\n\t

\n
\n\n\n\n","\n\n
\n\n\t\n\t\n\n\t\n\t\n\n\t\n\t\n\n\t\n\t
\n\t\t
\n\t\t\t{#each $msgs as msg}\n\t\t\t\t{@html msg.message}\n\t\t\t{/each}\n\t\t
\n\t
\n\n\t\n\t
\n\t\t
\n\t
\n\n\t\n\t\n\n\n\n\n\n\n","\n\n
\n\n\t\n\t\n\n\t\n\t\n\n\t\n\t\n\n\t\n\t
\n\t\t\n\t\t

join room :

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

/ there are no public rooms yet /

\n\t\t\t
\n\t\t\t{#await get_rooms}\n\t\t\t\t\n\t\t\t\t

rooms are loaded...

\n\t\t\t{:then}\n\t\t\t\t{#each rooms as room}\n\t\t\t\t\t\n\t\t\t\t{/each}\n\t\t\t{/await}\n\t\t
\n\t
\n\n
\n\n\n\n","\n\n
\n\n\t\n\t\n\n\t\n\t\n\n\t\n\t\n\n\t\n\t
\n\t\t

blocked users :

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

/ you have blocked no one /

\n\t\t\t
\n\t\t\t\n\t\t\t\n\t\t
\n\t
\n\n
\n\n\n\n\n","\n\n
\n\n\t\n\t\n\n\t\n\t\n\n\t\n\t\n\n\t\n\t
\n\t\t\n\t\t

room users :

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

/ there are no public rooms yet /

\n\t\t\t
\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t
\n\t
\n\n\n
\n\n\n\n\n","\n\n
\n\n\t\n\t\n\n\t\n\t\n\n\t\n\t\n\n\t\n\t
\n\t\t

this room is protected

\n\t\t
\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t
\n\t
\n\n\n
\n\n\n\n\n","\n\n

\n\t{content}\n

\n","\n\n
\n\n\t\n\t\n\n\t\n\t\n\n\t\n\t\n\n\t\n\t
\n\t\t
\n\t\t\t{#if response.status >= 300}\n\t\t\t\t\n\t\t\t{/if}\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t{#if room_type === 'protected'}\n\t\t\t\t
\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t
\n\t\t\t{/if}\n\t\t\t\n\t\t\n\t
\n\n
\n\n\n\n\n","\n\n
\n\n\t\n\t\n\n\t\n\t\n\n\t\n\t\n\n\t\n\n\t\n\t
\n\t\t

mute this user for a time :

\n\t\t
\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t
\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t
\n\t\t\t\n\t\t
\n\t
\n\n\n
\n\n\n\n\n","\n\n
\n\n\t\n\t\n\n\t\n\t\n\n\t\n\t\n\n\t\n\t{#if back === \"room_set\"}\n\t\t\n\t{/if}\n\n\t\n\t
\n\t\t

user options :

\n\t\t\n\t\t\n\t\t\n\n\t\t{#if back === \"room_set\"}\n\t\t\t\n\t\t\t\n\t\t{/if}\n\n\t
\n\n
\n\n\n\n\n","\n\n\n\n\t{#if $layout === \"home\"}\n\t\t\n\n\t{:else if $layout === \"close\"}\n\t\t\n\n\t{:else if $layout === \"room\"}\n\t\t\n\n\t{:else if $layout === \"new\"}\n\t\t\n\n\t{:else if $layout === \"settings\"}\n\t\t\n\n\t{:else if $layout === \"room_set\"}\n\t\t\n\n\t{:else if $layout === \"protected\"}\n\t\t\n\n\t{:else if $layout === \"create\"}\n\t\t\n\n\t{:else if $layout === \"mute\"}\n\t\t\n\n\t{:else if $layout === \"user\"}\n\t\t\n\n\t{/if}\n\n\n\n\n\n\n\n\n","const PACKET_TYPES = Object.create(null); // no Map = no polyfill\nPACKET_TYPES[\"open\"] = \"0\";\nPACKET_TYPES[\"close\"] = \"1\";\nPACKET_TYPES[\"ping\"] = \"2\";\nPACKET_TYPES[\"pong\"] = \"3\";\nPACKET_TYPES[\"message\"] = \"4\";\nPACKET_TYPES[\"upgrade\"] = \"5\";\nPACKET_TYPES[\"noop\"] = \"6\";\nconst PACKET_TYPES_REVERSE = Object.create(null);\nObject.keys(PACKET_TYPES).forEach(key => {\n PACKET_TYPES_REVERSE[PACKET_TYPES[key]] = key;\n});\nconst ERROR_PACKET = { type: \"error\", data: \"parser error\" };\nexport { PACKET_TYPES, PACKET_TYPES_REVERSE, ERROR_PACKET };\n","import { PACKET_TYPES } from \"./commons.js\";\nconst withNativeBlob = typeof Blob === \"function\" ||\n (typeof Blob !== \"undefined\" &&\n Object.prototype.toString.call(Blob) === \"[object BlobConstructor]\");\nconst withNativeArrayBuffer = typeof ArrayBuffer === \"function\";\n// ArrayBuffer.isView method is not defined in IE10\nconst isView = obj => {\n return typeof ArrayBuffer.isView === \"function\"\n ? ArrayBuffer.isView(obj)\n : obj && obj.buffer instanceof ArrayBuffer;\n};\nconst encodePacket = ({ type, data }, supportsBinary, callback) => {\n if (withNativeBlob && data instanceof Blob) {\n if (supportsBinary) {\n return callback(data);\n }\n else {\n return encodeBlobAsBase64(data, callback);\n }\n }\n else if (withNativeArrayBuffer &&\n (data instanceof ArrayBuffer || isView(data))) {\n if (supportsBinary) {\n return callback(data);\n }\n else {\n return encodeBlobAsBase64(new Blob([data]), callback);\n }\n }\n // plain string\n return callback(PACKET_TYPES[type] + (data || \"\"));\n};\nconst encodeBlobAsBase64 = (data, callback) => {\n const fileReader = new FileReader();\n fileReader.onload = function () {\n const content = fileReader.result.split(\",\")[1];\n callback(\"b\" + content);\n };\n return fileReader.readAsDataURL(data);\n};\nexport default encodePacket;\n","const chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';\n// Use a lookup table to find the index.\nconst lookup = typeof Uint8Array === 'undefined' ? [] : new Uint8Array(256);\nfor (let i = 0; i < chars.length; i++) {\n lookup[chars.charCodeAt(i)] = i;\n}\nexport const encode = (arraybuffer) => {\n let bytes = new Uint8Array(arraybuffer), i, len = bytes.length, base64 = '';\n for (i = 0; i < len; i += 3) {\n base64 += chars[bytes[i] >> 2];\n base64 += chars[((bytes[i] & 3) << 4) | (bytes[i + 1] >> 4)];\n base64 += chars[((bytes[i + 1] & 15) << 2) | (bytes[i + 2] >> 6)];\n base64 += chars[bytes[i + 2] & 63];\n }\n if (len % 3 === 2) {\n base64 = base64.substring(0, base64.length - 1) + '=';\n }\n else if (len % 3 === 1) {\n base64 = base64.substring(0, base64.length - 2) + '==';\n }\n return base64;\n};\nexport const decode = (base64) => {\n let bufferLength = base64.length * 0.75, len = base64.length, i, p = 0, encoded1, encoded2, encoded3, encoded4;\n if (base64[base64.length - 1] === '=') {\n bufferLength--;\n if (base64[base64.length - 2] === '=') {\n bufferLength--;\n }\n }\n const arraybuffer = new ArrayBuffer(bufferLength), bytes = new Uint8Array(arraybuffer);\n for (i = 0; i < len; i += 4) {\n encoded1 = lookup[base64.charCodeAt(i)];\n encoded2 = lookup[base64.charCodeAt(i + 1)];\n encoded3 = lookup[base64.charCodeAt(i + 2)];\n encoded4 = lookup[base64.charCodeAt(i + 3)];\n bytes[p++] = (encoded1 << 2) | (encoded2 >> 4);\n bytes[p++] = ((encoded2 & 15) << 4) | (encoded3 >> 2);\n bytes[p++] = ((encoded3 & 3) << 6) | (encoded4 & 63);\n }\n return arraybuffer;\n};\n","import { ERROR_PACKET, PACKET_TYPES_REVERSE } from \"./commons.js\";\nimport { decode } from \"./contrib/base64-arraybuffer.js\";\nconst withNativeArrayBuffer = typeof ArrayBuffer === \"function\";\nconst decodePacket = (encodedPacket, binaryType) => {\n if (typeof encodedPacket !== \"string\") {\n return {\n type: \"message\",\n data: mapBinary(encodedPacket, binaryType)\n };\n }\n const type = encodedPacket.charAt(0);\n if (type === \"b\") {\n return {\n type: \"message\",\n data: decodeBase64Packet(encodedPacket.substring(1), binaryType)\n };\n }\n const packetType = PACKET_TYPES_REVERSE[type];\n if (!packetType) {\n return ERROR_PACKET;\n }\n return encodedPacket.length > 1\n ? {\n type: PACKET_TYPES_REVERSE[type],\n data: encodedPacket.substring(1)\n }\n : {\n type: PACKET_TYPES_REVERSE[type]\n };\n};\nconst decodeBase64Packet = (data, binaryType) => {\n if (withNativeArrayBuffer) {\n const decoded = decode(data);\n return mapBinary(decoded, binaryType);\n }\n else {\n return { base64: true, data }; // fallback for old browsers\n }\n};\nconst mapBinary = (data, binaryType) => {\n switch (binaryType) {\n case \"blob\":\n return data instanceof ArrayBuffer ? new Blob([data]) : data;\n case \"arraybuffer\":\n default:\n return data; // assuming the data is already an ArrayBuffer\n }\n};\nexport default decodePacket;\n","import encodePacket from \"./encodePacket.js\";\nimport decodePacket from \"./decodePacket.js\";\nconst SEPARATOR = String.fromCharCode(30); // see https://en.wikipedia.org/wiki/Delimiter#ASCII_delimited_text\nconst encodePayload = (packets, callback) => {\n // some packets may be added to the array while encoding, so the initial length must be saved\n const length = packets.length;\n const encodedPackets = new Array(length);\n let count = 0;\n packets.forEach((packet, i) => {\n // force base64 encoding for binary packets\n encodePacket(packet, false, encodedPacket => {\n encodedPackets[i] = encodedPacket;\n if (++count === length) {\n callback(encodedPackets.join(SEPARATOR));\n }\n });\n });\n};\nconst decodePayload = (encodedPayload, binaryType) => {\n const encodedPackets = encodedPayload.split(SEPARATOR);\n const packets = [];\n for (let i = 0; i < encodedPackets.length; i++) {\n const decodedPacket = decodePacket(encodedPackets[i], binaryType);\n packets.push(decodedPacket);\n if (decodedPacket.type === \"error\") {\n break;\n }\n }\n return packets;\n};\nexport const protocol = 4;\nexport { encodePacket, encodePayload, decodePacket, decodePayload };\n","/**\n * Initialize a new `Emitter`.\n *\n * @api public\n */\n\nexport function Emitter(obj) {\n if (obj) return mixin(obj);\n}\n\n/**\n * Mixin the emitter properties.\n *\n * @param {Object} obj\n * @return {Object}\n * @api private\n */\n\nfunction mixin(obj) {\n for (var key in Emitter.prototype) {\n obj[key] = Emitter.prototype[key];\n }\n return obj;\n}\n\n/**\n * Listen on the given `event` with `fn`.\n *\n * @param {String} event\n * @param {Function} fn\n * @return {Emitter}\n * @api public\n */\n\nEmitter.prototype.on =\nEmitter.prototype.addEventListener = function(event, fn){\n this._callbacks = this._callbacks || {};\n (this._callbacks['$' + event] = this._callbacks['$' + event] || [])\n .push(fn);\n return this;\n};\n\n/**\n * Adds an `event` listener that will be invoked a single\n * time then automatically removed.\n *\n * @param {String} event\n * @param {Function} fn\n * @return {Emitter}\n * @api public\n */\n\nEmitter.prototype.once = function(event, fn){\n function on() {\n this.off(event, on);\n fn.apply(this, arguments);\n }\n\n on.fn = fn;\n this.on(event, on);\n return this;\n};\n\n/**\n * Remove the given callback for `event` or all\n * registered callbacks.\n *\n * @param {String} event\n * @param {Function} fn\n * @return {Emitter}\n * @api public\n */\n\nEmitter.prototype.off =\nEmitter.prototype.removeListener =\nEmitter.prototype.removeAllListeners =\nEmitter.prototype.removeEventListener = function(event, fn){\n this._callbacks = this._callbacks || {};\n\n // all\n if (0 == arguments.length) {\n this._callbacks = {};\n return this;\n }\n\n // specific event\n var callbacks = this._callbacks['$' + event];\n if (!callbacks) return this;\n\n // remove all handlers\n if (1 == arguments.length) {\n delete this._callbacks['$' + event];\n return this;\n }\n\n // remove specific handler\n var cb;\n for (var i = 0; i < callbacks.length; i++) {\n cb = callbacks[i];\n if (cb === fn || cb.fn === fn) {\n callbacks.splice(i, 1);\n break;\n }\n }\n\n // Remove event specific arrays for event types that no\n // one is subscribed for to avoid memory leak.\n if (callbacks.length === 0) {\n delete this._callbacks['$' + event];\n }\n\n return this;\n};\n\n/**\n * Emit `event` with the given args.\n *\n * @param {String} event\n * @param {Mixed} ...\n * @return {Emitter}\n */\n\nEmitter.prototype.emit = function(event){\n this._callbacks = this._callbacks || {};\n\n var args = new Array(arguments.length - 1)\n , callbacks = this._callbacks['$' + event];\n\n for (var i = 1; i < arguments.length; i++) {\n args[i - 1] = arguments[i];\n }\n\n if (callbacks) {\n callbacks = callbacks.slice(0);\n for (var i = 0, len = callbacks.length; i < len; ++i) {\n callbacks[i].apply(this, args);\n }\n }\n\n return this;\n};\n\n// alias used for reserved events (protected method)\nEmitter.prototype.emitReserved = Emitter.prototype.emit;\n\n/**\n * Return array of callbacks for `event`.\n *\n * @param {String} event\n * @return {Array}\n * @api public\n */\n\nEmitter.prototype.listeners = function(event){\n this._callbacks = this._callbacks || {};\n return this._callbacks['$' + event] || [];\n};\n\n/**\n * Check if this emitter has `event` handlers.\n *\n * @param {String} event\n * @return {Boolean}\n * @api public\n */\n\nEmitter.prototype.hasListeners = function(event){\n return !! this.listeners(event).length;\n};\n","export const globalThisShim = (() => {\n if (typeof self !== \"undefined\") {\n return self;\n }\n else if (typeof window !== \"undefined\") {\n return window;\n }\n else {\n return Function(\"return this\")();\n }\n})();\n","import { globalThisShim as globalThis } from \"./globalThis.js\";\nexport function pick(obj, ...attr) {\n return attr.reduce((acc, k) => {\n if (obj.hasOwnProperty(k)) {\n acc[k] = obj[k];\n }\n return acc;\n }, {});\n}\n// Keep a reference to the real timeout functions so they can be used when overridden\nconst NATIVE_SET_TIMEOUT = setTimeout;\nconst NATIVE_CLEAR_TIMEOUT = clearTimeout;\nexport function installTimerFunctions(obj, opts) {\n if (opts.useNativeTimers) {\n obj.setTimeoutFn = NATIVE_SET_TIMEOUT.bind(globalThis);\n obj.clearTimeoutFn = NATIVE_CLEAR_TIMEOUT.bind(globalThis);\n }\n else {\n obj.setTimeoutFn = setTimeout.bind(globalThis);\n obj.clearTimeoutFn = clearTimeout.bind(globalThis);\n }\n}\n// base64 encoded buffers are about 33% bigger (https://en.wikipedia.org/wiki/Base64)\nconst BASE64_OVERHEAD = 1.33;\n// we could also have used `new Blob([obj]).size`, but it isn't supported in IE9\nexport function byteLength(obj) {\n if (typeof obj === \"string\") {\n return utf8Length(obj);\n }\n // arraybuffer or blob\n return Math.ceil((obj.byteLength || obj.size) * BASE64_OVERHEAD);\n}\nfunction utf8Length(str) {\n let c = 0, length = 0;\n for (let i = 0, l = str.length; i < l; i++) {\n c = str.charCodeAt(i);\n if (c < 0x80) {\n length += 1;\n }\n else if (c < 0x800) {\n length += 2;\n }\n else if (c < 0xd800 || c >= 0xe000) {\n length += 3;\n }\n else {\n i++;\n length += 4;\n }\n }\n return length;\n}\n","import { decodePacket } from \"engine.io-parser\";\nimport { Emitter } from \"@socket.io/component-emitter\";\nimport { installTimerFunctions } from \"./util.js\";\nclass TransportError extends Error {\n constructor(reason, description, context) {\n super(reason);\n this.description = description;\n this.context = context;\n this.type = \"TransportError\";\n }\n}\nexport class Transport extends Emitter {\n /**\n * Transport abstract constructor.\n *\n * @param {Object} options.\n * @api private\n */\n constructor(opts) {\n super();\n this.writable = false;\n installTimerFunctions(this, opts);\n this.opts = opts;\n this.query = opts.query;\n this.readyState = \"\";\n this.socket = opts.socket;\n }\n /**\n * Emits an error.\n *\n * @param {String} reason\n * @param description\n * @param context - the error context\n * @return {Transport} for chaining\n * @api protected\n */\n onError(reason, description, context) {\n super.emitReserved(\"error\", new TransportError(reason, description, context));\n return this;\n }\n /**\n * Opens the transport.\n *\n * @api public\n */\n open() {\n if (\"closed\" === this.readyState || \"\" === this.readyState) {\n this.readyState = \"opening\";\n this.doOpen();\n }\n return this;\n }\n /**\n * Closes the transport.\n *\n * @api public\n */\n close() {\n if (\"opening\" === this.readyState || \"open\" === this.readyState) {\n this.doClose();\n this.onClose();\n }\n return this;\n }\n /**\n * Sends multiple packets.\n *\n * @param {Array} packets\n * @api public\n */\n send(packets) {\n if (\"open\" === this.readyState) {\n this.write(packets);\n }\n else {\n // this might happen if the transport was silently closed in the beforeunload event handler\n }\n }\n /**\n * Called upon open\n *\n * @api protected\n */\n onOpen() {\n this.readyState = \"open\";\n this.writable = true;\n super.emitReserved(\"open\");\n }\n /**\n * Called with data.\n *\n * @param {String} data\n * @api protected\n */\n onData(data) {\n const packet = decodePacket(data, this.socket.binaryType);\n this.onPacket(packet);\n }\n /**\n * Called with a decoded packet.\n *\n * @api protected\n */\n onPacket(packet) {\n super.emitReserved(\"packet\", packet);\n }\n /**\n * Called upon close.\n *\n * @api protected\n */\n onClose(details) {\n this.readyState = \"closed\";\n super.emitReserved(\"close\", details);\n }\n}\n","// imported from https://github.com/unshiftio/yeast\n'use strict';\nconst alphabet = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz-_'.split(''), length = 64, map = {};\nlet seed = 0, i = 0, prev;\n/**\n * Return a string representing the specified number.\n *\n * @param {Number} num The number to convert.\n * @returns {String} The string representation of the number.\n * @api public\n */\nexport function encode(num) {\n let encoded = '';\n do {\n encoded = alphabet[num % length] + encoded;\n num = Math.floor(num / length);\n } while (num > 0);\n return encoded;\n}\n/**\n * Return the integer value specified by the given string.\n *\n * @param {String} str The string to convert.\n * @returns {Number} The integer value represented by the string.\n * @api public\n */\nexport function decode(str) {\n let decoded = 0;\n for (i = 0; i < str.length; i++) {\n decoded = decoded * length + map[str.charAt(i)];\n }\n return decoded;\n}\n/**\n * Yeast: A tiny growing id generator.\n *\n * @returns {String} A unique id.\n * @api public\n */\nexport function yeast() {\n const now = encode(+new Date());\n if (now !== prev)\n return seed = 0, prev = now;\n return now + '.' + encode(seed++);\n}\n//\n// Map each character to its index.\n//\nfor (; i < length; i++)\n map[alphabet[i]] = i;\n","// imported from https://github.com/galkn/querystring\n/**\n * Compiles a querystring\n * Returns string representation of the object\n *\n * @param {Object}\n * @api private\n */\nexport function encode(obj) {\n let str = '';\n for (let i in obj) {\n if (obj.hasOwnProperty(i)) {\n if (str.length)\n str += '&';\n str += encodeURIComponent(i) + '=' + encodeURIComponent(obj[i]);\n }\n }\n return str;\n}\n/**\n * Parses a simple querystring into an object\n *\n * @param {String} qs\n * @api private\n */\nexport function decode(qs) {\n let qry = {};\n let pairs = qs.split('&');\n for (let i = 0, l = pairs.length; i < l; i++) {\n let pair = pairs[i].split('=');\n qry[decodeURIComponent(pair[0])] = decodeURIComponent(pair[1]);\n }\n return qry;\n}\n","// imported from https://github.com/component/has-cors\nlet value = false;\ntry {\n value = typeof XMLHttpRequest !== 'undefined' &&\n 'withCredentials' in new XMLHttpRequest();\n}\ncatch (err) {\n // if XMLHttp support is disabled in IE then it will throw\n // when trying to create\n}\nexport const hasCORS = value;\n","// browser shim for xmlhttprequest module\nimport { hasCORS } from \"../contrib/has-cors.js\";\nimport { globalThisShim as globalThis } from \"../globalThis.js\";\nexport function XHR(opts) {\n const xdomain = opts.xdomain;\n // XMLHttpRequest can be disabled on IE\n try {\n if (\"undefined\" !== typeof XMLHttpRequest && (!xdomain || hasCORS)) {\n return new XMLHttpRequest();\n }\n }\n catch (e) { }\n if (!xdomain) {\n try {\n return new globalThis[[\"Active\"].concat(\"Object\").join(\"X\")](\"Microsoft.XMLHTTP\");\n }\n catch (e) { }\n }\n}\n","import { Transport } from \"../transport.js\";\nimport { yeast } from \"../contrib/yeast.js\";\nimport { encode } from \"../contrib/parseqs.js\";\nimport { encodePayload, decodePayload } from \"engine.io-parser\";\nimport { XHR as XMLHttpRequest } from \"./xmlhttprequest.js\";\nimport { Emitter } from \"@socket.io/component-emitter\";\nimport { installTimerFunctions, pick } from \"../util.js\";\nimport { globalThisShim as globalThis } from \"../globalThis.js\";\nfunction empty() { }\nconst hasXHR2 = (function () {\n const xhr = new XMLHttpRequest({\n xdomain: false\n });\n return null != xhr.responseType;\n})();\nexport class Polling extends Transport {\n /**\n * XHR Polling constructor.\n *\n * @param {Object} opts\n * @api public\n */\n constructor(opts) {\n super(opts);\n this.polling = false;\n if (typeof location !== \"undefined\") {\n const isSSL = \"https:\" === location.protocol;\n let port = location.port;\n // some user agents have empty `location.port`\n if (!port) {\n port = isSSL ? \"443\" : \"80\";\n }\n this.xd =\n (typeof location !== \"undefined\" &&\n opts.hostname !== location.hostname) ||\n port !== opts.port;\n this.xs = opts.secure !== isSSL;\n }\n /**\n * XHR supports binary\n */\n const forceBase64 = opts && opts.forceBase64;\n this.supportsBinary = hasXHR2 && !forceBase64;\n }\n /**\n * Transport name.\n */\n get name() {\n return \"polling\";\n }\n /**\n * Opens the socket (triggers polling). We write a PING message to determine\n * when the transport is open.\n *\n * @api private\n */\n doOpen() {\n this.poll();\n }\n /**\n * Pauses polling.\n *\n * @param {Function} callback upon buffers are flushed and transport is paused\n * @api private\n */\n pause(onPause) {\n this.readyState = \"pausing\";\n const pause = () => {\n this.readyState = \"paused\";\n onPause();\n };\n if (this.polling || !this.writable) {\n let total = 0;\n if (this.polling) {\n total++;\n this.once(\"pollComplete\", function () {\n --total || pause();\n });\n }\n if (!this.writable) {\n total++;\n this.once(\"drain\", function () {\n --total || pause();\n });\n }\n }\n else {\n pause();\n }\n }\n /**\n * Starts polling cycle.\n *\n * @api public\n */\n poll() {\n this.polling = true;\n this.doPoll();\n this.emitReserved(\"poll\");\n }\n /**\n * Overloads onData to detect payloads.\n *\n * @api private\n */\n onData(data) {\n const callback = packet => {\n // if its the first message we consider the transport open\n if (\"opening\" === this.readyState && packet.type === \"open\") {\n this.onOpen();\n }\n // if its a close packet, we close the ongoing requests\n if (\"close\" === packet.type) {\n this.onClose({ description: \"transport closed by the server\" });\n return false;\n }\n // otherwise bypass onData and handle the message\n this.onPacket(packet);\n };\n // decode payload\n decodePayload(data, this.socket.binaryType).forEach(callback);\n // if an event did not trigger closing\n if (\"closed\" !== this.readyState) {\n // if we got data we're not polling\n this.polling = false;\n this.emitReserved(\"pollComplete\");\n if (\"open\" === this.readyState) {\n this.poll();\n }\n else {\n }\n }\n }\n /**\n * For polling, send a close packet.\n *\n * @api private\n */\n doClose() {\n const close = () => {\n this.write([{ type: \"close\" }]);\n };\n if (\"open\" === this.readyState) {\n close();\n }\n else {\n // in case we're trying to close while\n // handshaking is in progress (GH-164)\n this.once(\"open\", close);\n }\n }\n /**\n * Writes a packets payload.\n *\n * @param {Array} data packets\n * @param {Function} drain callback\n * @api private\n */\n write(packets) {\n this.writable = false;\n encodePayload(packets, data => {\n this.doWrite(data, () => {\n this.writable = true;\n this.emitReserved(\"drain\");\n });\n });\n }\n /**\n * Generates uri for connection.\n *\n * @api private\n */\n uri() {\n let query = this.query || {};\n const schema = this.opts.secure ? \"https\" : \"http\";\n let port = \"\";\n // cache busting is forced\n if (false !== this.opts.timestampRequests) {\n query[this.opts.timestampParam] = yeast();\n }\n if (!this.supportsBinary && !query.sid) {\n query.b64 = 1;\n }\n // avoid port if default for schema\n if (this.opts.port &&\n ((\"https\" === schema && Number(this.opts.port) !== 443) ||\n (\"http\" === schema && Number(this.opts.port) !== 80))) {\n port = \":\" + this.opts.port;\n }\n const encodedQuery = encode(query);\n const ipv6 = this.opts.hostname.indexOf(\":\") !== -1;\n return (schema +\n \"://\" +\n (ipv6 ? \"[\" + this.opts.hostname + \"]\" : this.opts.hostname) +\n port +\n this.opts.path +\n (encodedQuery.length ? \"?\" + encodedQuery : \"\"));\n }\n /**\n * Creates a request.\n *\n * @param {String} method\n * @api private\n */\n request(opts = {}) {\n Object.assign(opts, { xd: this.xd, xs: this.xs }, this.opts);\n return new Request(this.uri(), opts);\n }\n /**\n * Sends data.\n *\n * @param {String} data to send.\n * @param {Function} called upon flush.\n * @api private\n */\n doWrite(data, fn) {\n const req = this.request({\n method: \"POST\",\n data: data\n });\n req.on(\"success\", fn);\n req.on(\"error\", (xhrStatus, context) => {\n this.onError(\"xhr post error\", xhrStatus, context);\n });\n }\n /**\n * Starts a poll cycle.\n *\n * @api private\n */\n doPoll() {\n const req = this.request();\n req.on(\"data\", this.onData.bind(this));\n req.on(\"error\", (xhrStatus, context) => {\n this.onError(\"xhr poll error\", xhrStatus, context);\n });\n this.pollXhr = req;\n }\n}\nexport class Request extends Emitter {\n /**\n * Request constructor\n *\n * @param {Object} options\n * @api public\n */\n constructor(uri, opts) {\n super();\n installTimerFunctions(this, opts);\n this.opts = opts;\n this.method = opts.method || \"GET\";\n this.uri = uri;\n this.async = false !== opts.async;\n this.data = undefined !== opts.data ? opts.data : null;\n this.create();\n }\n /**\n * Creates the XHR object and sends the request.\n *\n * @api private\n */\n create() {\n const opts = pick(this.opts, \"agent\", \"pfx\", \"key\", \"passphrase\", \"cert\", \"ca\", \"ciphers\", \"rejectUnauthorized\", \"autoUnref\");\n opts.xdomain = !!this.opts.xd;\n opts.xscheme = !!this.opts.xs;\n const xhr = (this.xhr = new XMLHttpRequest(opts));\n try {\n xhr.open(this.method, this.uri, this.async);\n try {\n if (this.opts.extraHeaders) {\n xhr.setDisableHeaderCheck && xhr.setDisableHeaderCheck(true);\n for (let i in this.opts.extraHeaders) {\n if (this.opts.extraHeaders.hasOwnProperty(i)) {\n xhr.setRequestHeader(i, this.opts.extraHeaders[i]);\n }\n }\n }\n }\n catch (e) { }\n if (\"POST\" === this.method) {\n try {\n xhr.setRequestHeader(\"Content-type\", \"text/plain;charset=UTF-8\");\n }\n catch (e) { }\n }\n try {\n xhr.setRequestHeader(\"Accept\", \"*/*\");\n }\n catch (e) { }\n // ie6 check\n if (\"withCredentials\" in xhr) {\n xhr.withCredentials = this.opts.withCredentials;\n }\n if (this.opts.requestTimeout) {\n xhr.timeout = this.opts.requestTimeout;\n }\n xhr.onreadystatechange = () => {\n if (4 !== xhr.readyState)\n return;\n if (200 === xhr.status || 1223 === xhr.status) {\n this.onLoad();\n }\n else {\n // make sure the `error` event handler that's user-set\n // does not throw in the same tick and gets caught here\n this.setTimeoutFn(() => {\n this.onError(typeof xhr.status === \"number\" ? xhr.status : 0);\n }, 0);\n }\n };\n xhr.send(this.data);\n }\n catch (e) {\n // Need to defer since .create() is called directly from the constructor\n // and thus the 'error' event can only be only bound *after* this exception\n // occurs. Therefore, also, we cannot throw here at all.\n this.setTimeoutFn(() => {\n this.onError(e);\n }, 0);\n return;\n }\n if (typeof document !== \"undefined\") {\n this.index = Request.requestsCount++;\n Request.requests[this.index] = this;\n }\n }\n /**\n * Called upon error.\n *\n * @api private\n */\n onError(err) {\n this.emitReserved(\"error\", err, this.xhr);\n this.cleanup(true);\n }\n /**\n * Cleans up house.\n *\n * @api private\n */\n cleanup(fromError) {\n if (\"undefined\" === typeof this.xhr || null === this.xhr) {\n return;\n }\n this.xhr.onreadystatechange = empty;\n if (fromError) {\n try {\n this.xhr.abort();\n }\n catch (e) { }\n }\n if (typeof document !== \"undefined\") {\n delete Request.requests[this.index];\n }\n this.xhr = null;\n }\n /**\n * Called upon load.\n *\n * @api private\n */\n onLoad() {\n const data = this.xhr.responseText;\n if (data !== null) {\n this.emitReserved(\"data\", data);\n this.emitReserved(\"success\");\n this.cleanup();\n }\n }\n /**\n * Aborts the request.\n *\n * @api public\n */\n abort() {\n this.cleanup();\n }\n}\nRequest.requestsCount = 0;\nRequest.requests = {};\n/**\n * Aborts pending requests when unloading the window. This is needed to prevent\n * memory leaks (e.g. when using IE) and to ensure that no spurious error is\n * emitted.\n */\nif (typeof document !== \"undefined\") {\n // @ts-ignore\n if (typeof attachEvent === \"function\") {\n // @ts-ignore\n attachEvent(\"onunload\", unloadHandler);\n }\n else if (typeof addEventListener === \"function\") {\n const terminationEvent = \"onpagehide\" in globalThis ? \"pagehide\" : \"unload\";\n addEventListener(terminationEvent, unloadHandler, false);\n }\n}\nfunction unloadHandler() {\n for (let i in Request.requests) {\n if (Request.requests.hasOwnProperty(i)) {\n Request.requests[i].abort();\n }\n }\n}\n","import { globalThisShim as globalThis } from \"../globalThis.js\";\nexport const nextTick = (() => {\n const isPromiseAvailable = typeof Promise === \"function\" && typeof Promise.resolve === \"function\";\n if (isPromiseAvailable) {\n return cb => Promise.resolve().then(cb);\n }\n else {\n return (cb, setTimeoutFn) => setTimeoutFn(cb, 0);\n }\n})();\nexport const WebSocket = globalThis.WebSocket || globalThis.MozWebSocket;\nexport const usingBrowserWebSocket = true;\nexport const defaultBinaryType = \"arraybuffer\";\n","import { Transport } from \"../transport.js\";\nimport { encode } from \"../contrib/parseqs.js\";\nimport { yeast } from \"../contrib/yeast.js\";\nimport { pick } from \"../util.js\";\nimport { defaultBinaryType, nextTick, usingBrowserWebSocket, WebSocket } from \"./websocket-constructor.js\";\nimport { encodePacket } from \"engine.io-parser\";\n// detect ReactNative environment\nconst isReactNative = typeof navigator !== \"undefined\" &&\n typeof navigator.product === \"string\" &&\n navigator.product.toLowerCase() === \"reactnative\";\nexport class WS extends Transport {\n /**\n * WebSocket transport constructor.\n *\n * @api {Object} connection options\n * @api public\n */\n constructor(opts) {\n super(opts);\n this.supportsBinary = !opts.forceBase64;\n }\n /**\n * Transport name.\n *\n * @api public\n */\n get name() {\n return \"websocket\";\n }\n /**\n * Opens socket.\n *\n * @api private\n */\n doOpen() {\n if (!this.check()) {\n // let probe timeout\n return;\n }\n const uri = this.uri();\n const protocols = this.opts.protocols;\n // React Native only supports the 'headers' option, and will print a warning if anything else is passed\n const opts = isReactNative\n ? {}\n : pick(this.opts, \"agent\", \"perMessageDeflate\", \"pfx\", \"key\", \"passphrase\", \"cert\", \"ca\", \"ciphers\", \"rejectUnauthorized\", \"localAddress\", \"protocolVersion\", \"origin\", \"maxPayload\", \"family\", \"checkServerIdentity\");\n if (this.opts.extraHeaders) {\n opts.headers = this.opts.extraHeaders;\n }\n try {\n this.ws =\n usingBrowserWebSocket && !isReactNative\n ? protocols\n ? new WebSocket(uri, protocols)\n : new WebSocket(uri)\n : new WebSocket(uri, protocols, opts);\n }\n catch (err) {\n return this.emitReserved(\"error\", err);\n }\n this.ws.binaryType = this.socket.binaryType || defaultBinaryType;\n this.addEventListeners();\n }\n /**\n * Adds event listeners to the socket\n *\n * @api private\n */\n addEventListeners() {\n this.ws.onopen = () => {\n if (this.opts.autoUnref) {\n this.ws._socket.unref();\n }\n this.onOpen();\n };\n this.ws.onclose = closeEvent => this.onClose({\n description: \"websocket connection closed\",\n context: closeEvent\n });\n this.ws.onmessage = ev => this.onData(ev.data);\n this.ws.onerror = e => this.onError(\"websocket error\", e);\n }\n /**\n * Writes data to socket.\n *\n * @param {Array} array of packets.\n * @api private\n */\n write(packets) {\n this.writable = false;\n // encodePacket efficient as it uses WS framing\n // no need for encodePayload\n for (let i = 0; i < packets.length; i++) {\n const packet = packets[i];\n const lastPacket = i === packets.length - 1;\n encodePacket(packet, this.supportsBinary, data => {\n // always create a new object (GH-437)\n const opts = {};\n if (!usingBrowserWebSocket) {\n if (packet.options) {\n opts.compress = packet.options.compress;\n }\n if (this.opts.perMessageDeflate) {\n const len = \n // @ts-ignore\n \"string\" === typeof data ? Buffer.byteLength(data) : data.length;\n if (len < this.opts.perMessageDeflate.threshold) {\n opts.compress = false;\n }\n }\n }\n // Sometimes the websocket has already been closed but the browser didn't\n // have a chance of informing us about it yet, in that case send will\n // throw an error\n try {\n if (usingBrowserWebSocket) {\n // TypeError is thrown when passing the second argument on Safari\n this.ws.send(data);\n }\n else {\n this.ws.send(data, opts);\n }\n }\n catch (e) {\n }\n if (lastPacket) {\n // fake drain\n // defer to next tick to allow Socket to clear writeBuffer\n nextTick(() => {\n this.writable = true;\n this.emitReserved(\"drain\");\n }, this.setTimeoutFn);\n }\n });\n }\n }\n /**\n * Closes socket.\n *\n * @api private\n */\n doClose() {\n if (typeof this.ws !== \"undefined\") {\n this.ws.close();\n this.ws = null;\n }\n }\n /**\n * Generates uri for connection.\n *\n * @api private\n */\n uri() {\n let query = this.query || {};\n const schema = this.opts.secure ? \"wss\" : \"ws\";\n let port = \"\";\n // avoid port if default for schema\n if (this.opts.port &&\n ((\"wss\" === schema && Number(this.opts.port) !== 443) ||\n (\"ws\" === schema && Number(this.opts.port) !== 80))) {\n port = \":\" + this.opts.port;\n }\n // append timestamp to URI\n if (this.opts.timestampRequests) {\n query[this.opts.timestampParam] = yeast();\n }\n // communicate binary support capabilities\n if (!this.supportsBinary) {\n query.b64 = 1;\n }\n const encodedQuery = encode(query);\n const ipv6 = this.opts.hostname.indexOf(\":\") !== -1;\n return (schema +\n \"://\" +\n (ipv6 ? \"[\" + this.opts.hostname + \"]\" : this.opts.hostname) +\n port +\n this.opts.path +\n (encodedQuery.length ? \"?\" + encodedQuery : \"\"));\n }\n /**\n * Feature detection for WebSocket.\n *\n * @return {Boolean} whether this transport is available.\n * @api public\n */\n check() {\n return !!WebSocket;\n }\n}\n","import { Polling } from \"./polling.js\";\nimport { WS } from \"./websocket.js\";\nexport const transports = {\n websocket: WS,\n polling: Polling\n};\n","// imported from https://github.com/galkn/parseuri\n/**\n * Parses an URI\n *\n * @author Steven Levithan (MIT license)\n * @api private\n */\nconst re = /^(?:(?![^:@]+:[^:@\\/]*@)(http|https|ws|wss):\\/\\/)?((?:(([^:@]*)(?::([^:@]*))?)?@)?((?:[a-f0-9]{0,4}:){2,7}[a-f0-9]{0,4}|[^:\\/?#]*)(?::(\\d*))?)(((\\/(?:[^?#](?![^?#\\/]*\\.[^?#\\/.]+(?:[?#]|$)))*\\/?)?([^?#\\/]*))(?:\\?([^#]*))?(?:#(.*))?)/;\nconst parts = [\n 'source', 'protocol', 'authority', 'userInfo', 'user', 'password', 'host', 'port', 'relative', 'path', 'directory', 'file', 'query', 'anchor'\n];\nexport function parse(str) {\n const src = str, b = str.indexOf('['), e = str.indexOf(']');\n if (b != -1 && e != -1) {\n str = str.substring(0, b) + str.substring(b, e).replace(/:/g, ';') + str.substring(e, str.length);\n }\n let m = re.exec(str || ''), uri = {}, i = 14;\n while (i--) {\n uri[parts[i]] = m[i] || '';\n }\n if (b != -1 && e != -1) {\n uri.source = src;\n uri.host = uri.host.substring(1, uri.host.length - 1).replace(/;/g, ':');\n uri.authority = uri.authority.replace('[', '').replace(']', '').replace(/;/g, ':');\n uri.ipv6uri = true;\n }\n uri.pathNames = pathNames(uri, uri['path']);\n uri.queryKey = queryKey(uri, uri['query']);\n return uri;\n}\nfunction pathNames(obj, path) {\n const regx = /\\/{2,9}/g, names = path.replace(regx, \"/\").split(\"/\");\n if (path.slice(0, 1) == '/' || path.length === 0) {\n names.splice(0, 1);\n }\n if (path.slice(-1) == '/') {\n names.splice(names.length - 1, 1);\n }\n return names;\n}\nfunction queryKey(uri, query) {\n const data = {};\n query.replace(/(?:^|&)([^&=]*)=?([^&]*)/g, function ($0, $1, $2) {\n if ($1) {\n data[$1] = $2;\n }\n });\n return data;\n}\n","import { transports } from \"./transports/index.js\";\nimport { installTimerFunctions, byteLength } from \"./util.js\";\nimport { decode } from \"./contrib/parseqs.js\";\nimport { parse } from \"./contrib/parseuri.js\";\nimport { Emitter } from \"@socket.io/component-emitter\";\nimport { protocol } from \"engine.io-parser\";\nexport class Socket extends Emitter {\n /**\n * Socket constructor.\n *\n * @param {String|Object} uri or options\n * @param {Object} opts - options\n * @api public\n */\n constructor(uri, opts = {}) {\n super();\n if (uri && \"object\" === typeof uri) {\n opts = uri;\n uri = null;\n }\n if (uri) {\n uri = parse(uri);\n opts.hostname = uri.host;\n opts.secure = uri.protocol === \"https\" || uri.protocol === \"wss\";\n opts.port = uri.port;\n if (uri.query)\n opts.query = uri.query;\n }\n else if (opts.host) {\n opts.hostname = parse(opts.host).host;\n }\n installTimerFunctions(this, opts);\n this.secure =\n null != opts.secure\n ? opts.secure\n : typeof location !== \"undefined\" && \"https:\" === location.protocol;\n if (opts.hostname && !opts.port) {\n // if no port is specified manually, use the protocol default\n opts.port = this.secure ? \"443\" : \"80\";\n }\n this.hostname =\n opts.hostname ||\n (typeof location !== \"undefined\" ? location.hostname : \"localhost\");\n this.port =\n opts.port ||\n (typeof location !== \"undefined\" && location.port\n ? location.port\n : this.secure\n ? \"443\"\n : \"80\");\n this.transports = opts.transports || [\"polling\", \"websocket\"];\n this.readyState = \"\";\n this.writeBuffer = [];\n this.prevBufferLen = 0;\n this.opts = Object.assign({\n path: \"/engine.io\",\n agent: false,\n withCredentials: false,\n upgrade: true,\n timestampParam: \"t\",\n rememberUpgrade: false,\n rejectUnauthorized: true,\n perMessageDeflate: {\n threshold: 1024\n },\n transportOptions: {},\n closeOnBeforeunload: true\n }, opts);\n this.opts.path = this.opts.path.replace(/\\/$/, \"\") + \"/\";\n if (typeof this.opts.query === \"string\") {\n this.opts.query = decode(this.opts.query);\n }\n // set on handshake\n this.id = null;\n this.upgrades = null;\n this.pingInterval = null;\n this.pingTimeout = null;\n // set on heartbeat\n this.pingTimeoutTimer = null;\n if (typeof addEventListener === \"function\") {\n if (this.opts.closeOnBeforeunload) {\n // Firefox closes the connection when the \"beforeunload\" event is emitted but not Chrome. This event listener\n // ensures every browser behaves the same (no \"disconnect\" event at the Socket.IO level when the page is\n // closed/reloaded)\n this.beforeunloadEventListener = () => {\n if (this.transport) {\n // silently close the transport\n this.transport.removeAllListeners();\n this.transport.close();\n }\n };\n addEventListener(\"beforeunload\", this.beforeunloadEventListener, false);\n }\n if (this.hostname !== \"localhost\") {\n this.offlineEventListener = () => {\n this.onClose(\"transport close\", {\n description: \"network connection lost\"\n });\n };\n addEventListener(\"offline\", this.offlineEventListener, false);\n }\n }\n this.open();\n }\n /**\n * Creates transport of the given type.\n *\n * @param {String} transport name\n * @return {Transport}\n * @api private\n */\n createTransport(name) {\n const query = Object.assign({}, this.opts.query);\n // append engine.io protocol identifier\n query.EIO = protocol;\n // transport name\n query.transport = name;\n // session id if we already have one\n if (this.id)\n query.sid = this.id;\n const opts = Object.assign({}, this.opts.transportOptions[name], this.opts, {\n query,\n socket: this,\n hostname: this.hostname,\n secure: this.secure,\n port: this.port\n });\n return new transports[name](opts);\n }\n /**\n * Initializes transport to use and starts probe.\n *\n * @api private\n */\n open() {\n let transport;\n if (this.opts.rememberUpgrade &&\n Socket.priorWebsocketSuccess &&\n this.transports.indexOf(\"websocket\") !== -1) {\n transport = \"websocket\";\n }\n else if (0 === this.transports.length) {\n // Emit error on next tick so it can be listened to\n this.setTimeoutFn(() => {\n this.emitReserved(\"error\", \"No transports available\");\n }, 0);\n return;\n }\n else {\n transport = this.transports[0];\n }\n this.readyState = \"opening\";\n // Retry with the next transport if the transport is disabled (jsonp: false)\n try {\n transport = this.createTransport(transport);\n }\n catch (e) {\n this.transports.shift();\n this.open();\n return;\n }\n transport.open();\n this.setTransport(transport);\n }\n /**\n * Sets the current transport. Disables the existing one (if any).\n *\n * @api private\n */\n setTransport(transport) {\n if (this.transport) {\n this.transport.removeAllListeners();\n }\n // set up transport\n this.transport = transport;\n // set up transport listeners\n transport\n .on(\"drain\", this.onDrain.bind(this))\n .on(\"packet\", this.onPacket.bind(this))\n .on(\"error\", this.onError.bind(this))\n .on(\"close\", reason => this.onClose(\"transport close\", reason));\n }\n /**\n * Probes a transport.\n *\n * @param {String} transport name\n * @api private\n */\n probe(name) {\n let transport = this.createTransport(name);\n let failed = false;\n Socket.priorWebsocketSuccess = false;\n const onTransportOpen = () => {\n if (failed)\n return;\n transport.send([{ type: \"ping\", data: \"probe\" }]);\n transport.once(\"packet\", msg => {\n if (failed)\n return;\n if (\"pong\" === msg.type && \"probe\" === msg.data) {\n this.upgrading = true;\n this.emitReserved(\"upgrading\", transport);\n if (!transport)\n return;\n Socket.priorWebsocketSuccess = \"websocket\" === transport.name;\n this.transport.pause(() => {\n if (failed)\n return;\n if (\"closed\" === this.readyState)\n return;\n cleanup();\n this.setTransport(transport);\n transport.send([{ type: \"upgrade\" }]);\n this.emitReserved(\"upgrade\", transport);\n transport = null;\n this.upgrading = false;\n this.flush();\n });\n }\n else {\n const err = new Error(\"probe error\");\n // @ts-ignore\n err.transport = transport.name;\n this.emitReserved(\"upgradeError\", err);\n }\n });\n };\n function freezeTransport() {\n if (failed)\n return;\n // Any callback called by transport should be ignored since now\n failed = true;\n cleanup();\n transport.close();\n transport = null;\n }\n // Handle any error that happens while probing\n const onerror = err => {\n const error = new Error(\"probe error: \" + err);\n // @ts-ignore\n error.transport = transport.name;\n freezeTransport();\n this.emitReserved(\"upgradeError\", error);\n };\n function onTransportClose() {\n onerror(\"transport closed\");\n }\n // When the socket is closed while we're probing\n function onclose() {\n onerror(\"socket closed\");\n }\n // When the socket is upgraded while we're probing\n function onupgrade(to) {\n if (transport && to.name !== transport.name) {\n freezeTransport();\n }\n }\n // Remove all listeners on the transport and on self\n const cleanup = () => {\n transport.removeListener(\"open\", onTransportOpen);\n transport.removeListener(\"error\", onerror);\n transport.removeListener(\"close\", onTransportClose);\n this.off(\"close\", onclose);\n this.off(\"upgrading\", onupgrade);\n };\n transport.once(\"open\", onTransportOpen);\n transport.once(\"error\", onerror);\n transport.once(\"close\", onTransportClose);\n this.once(\"close\", onclose);\n this.once(\"upgrading\", onupgrade);\n transport.open();\n }\n /**\n * Called when connection is deemed open.\n *\n * @api private\n */\n onOpen() {\n this.readyState = \"open\";\n Socket.priorWebsocketSuccess = \"websocket\" === this.transport.name;\n this.emitReserved(\"open\");\n this.flush();\n // we check for `readyState` in case an `open`\n // listener already closed the socket\n if (\"open\" === this.readyState &&\n this.opts.upgrade &&\n this.transport.pause) {\n let i = 0;\n const l = this.upgrades.length;\n for (; i < l; i++) {\n this.probe(this.upgrades[i]);\n }\n }\n }\n /**\n * Handles a packet.\n *\n * @api private\n */\n onPacket(packet) {\n if (\"opening\" === this.readyState ||\n \"open\" === this.readyState ||\n \"closing\" === this.readyState) {\n this.emitReserved(\"packet\", packet);\n // Socket is live - any packet counts\n this.emitReserved(\"heartbeat\");\n switch (packet.type) {\n case \"open\":\n this.onHandshake(JSON.parse(packet.data));\n break;\n case \"ping\":\n this.resetPingTimeout();\n this.sendPacket(\"pong\");\n this.emitReserved(\"ping\");\n this.emitReserved(\"pong\");\n break;\n case \"error\":\n const err = new Error(\"server error\");\n // @ts-ignore\n err.code = packet.data;\n this.onError(err);\n break;\n case \"message\":\n this.emitReserved(\"data\", packet.data);\n this.emitReserved(\"message\", packet.data);\n break;\n }\n }\n else {\n }\n }\n /**\n * Called upon handshake completion.\n *\n * @param {Object} data - handshake obj\n * @api private\n */\n onHandshake(data) {\n this.emitReserved(\"handshake\", data);\n this.id = data.sid;\n this.transport.query.sid = data.sid;\n this.upgrades = this.filterUpgrades(data.upgrades);\n this.pingInterval = data.pingInterval;\n this.pingTimeout = data.pingTimeout;\n this.maxPayload = data.maxPayload;\n this.onOpen();\n // In case open handler closes socket\n if (\"closed\" === this.readyState)\n return;\n this.resetPingTimeout();\n }\n /**\n * Sets and resets ping timeout timer based on server pings.\n *\n * @api private\n */\n resetPingTimeout() {\n this.clearTimeoutFn(this.pingTimeoutTimer);\n this.pingTimeoutTimer = this.setTimeoutFn(() => {\n this.onClose(\"ping timeout\");\n }, this.pingInterval + this.pingTimeout);\n if (this.opts.autoUnref) {\n this.pingTimeoutTimer.unref();\n }\n }\n /**\n * Called on `drain` event\n *\n * @api private\n */\n onDrain() {\n this.writeBuffer.splice(0, this.prevBufferLen);\n // setting prevBufferLen = 0 is very important\n // for example, when upgrading, upgrade packet is sent over,\n // and a nonzero prevBufferLen could cause problems on `drain`\n this.prevBufferLen = 0;\n if (0 === this.writeBuffer.length) {\n this.emitReserved(\"drain\");\n }\n else {\n this.flush();\n }\n }\n /**\n * Flush write buffers.\n *\n * @api private\n */\n flush() {\n if (\"closed\" !== this.readyState &&\n this.transport.writable &&\n !this.upgrading &&\n this.writeBuffer.length) {\n const packets = this.getWritablePackets();\n this.transport.send(packets);\n // keep track of current length of writeBuffer\n // splice writeBuffer and callbackBuffer on `drain`\n this.prevBufferLen = packets.length;\n this.emitReserved(\"flush\");\n }\n }\n /**\n * Ensure the encoded size of the writeBuffer is below the maxPayload value sent by the server (only for HTTP\n * long-polling)\n *\n * @private\n */\n getWritablePackets() {\n const shouldCheckPayloadSize = this.maxPayload &&\n this.transport.name === \"polling\" &&\n this.writeBuffer.length > 1;\n if (!shouldCheckPayloadSize) {\n return this.writeBuffer;\n }\n let payloadSize = 1; // first packet type\n for (let i = 0; i < this.writeBuffer.length; i++) {\n const data = this.writeBuffer[i].data;\n if (data) {\n payloadSize += byteLength(data);\n }\n if (i > 0 && payloadSize > this.maxPayload) {\n return this.writeBuffer.slice(0, i);\n }\n payloadSize += 2; // separator + packet type\n }\n return this.writeBuffer;\n }\n /**\n * Sends a message.\n *\n * @param {String} message.\n * @param {Function} callback function.\n * @param {Object} options.\n * @return {Socket} for chaining.\n * @api public\n */\n write(msg, options, fn) {\n this.sendPacket(\"message\", msg, options, fn);\n return this;\n }\n send(msg, options, fn) {\n this.sendPacket(\"message\", msg, options, fn);\n return this;\n }\n /**\n * Sends a packet.\n *\n * @param {String} packet type.\n * @param {String} data.\n * @param {Object} options.\n * @param {Function} callback function.\n * @api private\n */\n sendPacket(type, data, options, fn) {\n if (\"function\" === typeof data) {\n fn = data;\n data = undefined;\n }\n if (\"function\" === typeof options) {\n fn = options;\n options = null;\n }\n if (\"closing\" === this.readyState || \"closed\" === this.readyState) {\n return;\n }\n options = options || {};\n options.compress = false !== options.compress;\n const packet = {\n type: type,\n data: data,\n options: options\n };\n this.emitReserved(\"packetCreate\", packet);\n this.writeBuffer.push(packet);\n if (fn)\n this.once(\"flush\", fn);\n this.flush();\n }\n /**\n * Closes the connection.\n *\n * @api public\n */\n close() {\n const close = () => {\n this.onClose(\"forced close\");\n this.transport.close();\n };\n const cleanupAndClose = () => {\n this.off(\"upgrade\", cleanupAndClose);\n this.off(\"upgradeError\", cleanupAndClose);\n close();\n };\n const waitForUpgrade = () => {\n // wait for upgrade to finish since we can't send packets while pausing a transport\n this.once(\"upgrade\", cleanupAndClose);\n this.once(\"upgradeError\", cleanupAndClose);\n };\n if (\"opening\" === this.readyState || \"open\" === this.readyState) {\n this.readyState = \"closing\";\n if (this.writeBuffer.length) {\n this.once(\"drain\", () => {\n if (this.upgrading) {\n waitForUpgrade();\n }\n else {\n close();\n }\n });\n }\n else if (this.upgrading) {\n waitForUpgrade();\n }\n else {\n close();\n }\n }\n return this;\n }\n /**\n * Called upon transport error\n *\n * @api private\n */\n onError(err) {\n Socket.priorWebsocketSuccess = false;\n this.emitReserved(\"error\", err);\n this.onClose(\"transport error\", err);\n }\n /**\n * Called upon transport close.\n *\n * @api private\n */\n onClose(reason, description) {\n if (\"opening\" === this.readyState ||\n \"open\" === this.readyState ||\n \"closing\" === this.readyState) {\n // clear timers\n this.clearTimeoutFn(this.pingTimeoutTimer);\n // stop event from firing again for transport\n this.transport.removeAllListeners(\"close\");\n // ensure transport won't stay open\n this.transport.close();\n // ignore further transport communication\n this.transport.removeAllListeners();\n if (typeof removeEventListener === \"function\") {\n removeEventListener(\"beforeunload\", this.beforeunloadEventListener, false);\n removeEventListener(\"offline\", this.offlineEventListener, false);\n }\n // set ready state\n this.readyState = \"closed\";\n // clear session id\n this.id = null;\n // emit close event\n this.emitReserved(\"close\", reason, description);\n // clean buffers after, so users can still\n // grab the buffers on `close` event\n this.writeBuffer = [];\n this.prevBufferLen = 0;\n }\n }\n /**\n * Filters upgrades, returning only those matching client transports.\n *\n * @param {Array} server upgrades\n * @api private\n *\n */\n filterUpgrades(upgrades) {\n const filteredUpgrades = [];\n let i = 0;\n const j = upgrades.length;\n for (; i < j; i++) {\n if (~this.transports.indexOf(upgrades[i]))\n filteredUpgrades.push(upgrades[i]);\n }\n return filteredUpgrades;\n }\n}\nSocket.protocol = protocol;\n","import { parse } from \"engine.io-client\";\n/**\n * URL parser.\n *\n * @param uri - url\n * @param path - the request path of the connection\n * @param loc - An object meant to mimic window.location.\n * Defaults to window.location.\n * @public\n */\nexport function url(uri, path = \"\", loc) {\n let obj = uri;\n // default to window.location\n loc = loc || (typeof location !== \"undefined\" && location);\n if (null == uri)\n uri = loc.protocol + \"//\" + loc.host;\n // relative path support\n if (typeof uri === \"string\") {\n if (\"/\" === uri.charAt(0)) {\n if (\"/\" === uri.charAt(1)) {\n uri = loc.protocol + uri;\n }\n else {\n uri = loc.host + uri;\n }\n }\n if (!/^(https?|wss?):\\/\\//.test(uri)) {\n if (\"undefined\" !== typeof loc) {\n uri = loc.protocol + \"//\" + uri;\n }\n else {\n uri = \"https://\" + uri;\n }\n }\n // parse\n obj = parse(uri);\n }\n // make sure we treat `localhost:80` and `localhost` equally\n if (!obj.port) {\n if (/^(http|ws)$/.test(obj.protocol)) {\n obj.port = \"80\";\n }\n else if (/^(http|ws)s$/.test(obj.protocol)) {\n obj.port = \"443\";\n }\n }\n obj.path = obj.path || \"/\";\n const ipv6 = obj.host.indexOf(\":\") !== -1;\n const host = ipv6 ? \"[\" + obj.host + \"]\" : obj.host;\n // define unique id\n obj.id = obj.protocol + \"://\" + host + \":\" + obj.port + path;\n // define href\n obj.href =\n obj.protocol +\n \"://\" +\n host +\n (loc && loc.port === obj.port ? \"\" : \":\" + obj.port);\n return obj;\n}\n","const withNativeArrayBuffer = typeof ArrayBuffer === \"function\";\nconst isView = (obj) => {\n return typeof ArrayBuffer.isView === \"function\"\n ? ArrayBuffer.isView(obj)\n : obj.buffer instanceof ArrayBuffer;\n};\nconst toString = Object.prototype.toString;\nconst withNativeBlob = typeof Blob === \"function\" ||\n (typeof Blob !== \"undefined\" &&\n toString.call(Blob) === \"[object BlobConstructor]\");\nconst withNativeFile = typeof File === \"function\" ||\n (typeof File !== \"undefined\" &&\n toString.call(File) === \"[object FileConstructor]\");\n/**\n * Returns true if obj is a Buffer, an ArrayBuffer, a Blob or a File.\n *\n * @private\n */\nexport function isBinary(obj) {\n return ((withNativeArrayBuffer && (obj instanceof ArrayBuffer || isView(obj))) ||\n (withNativeBlob && obj instanceof Blob) ||\n (withNativeFile && obj instanceof File));\n}\nexport function hasBinary(obj, toJSON) {\n if (!obj || typeof obj !== \"object\") {\n return false;\n }\n if (Array.isArray(obj)) {\n for (let i = 0, l = obj.length; i < l; i++) {\n if (hasBinary(obj[i])) {\n return true;\n }\n }\n return false;\n }\n if (isBinary(obj)) {\n return true;\n }\n if (obj.toJSON &&\n typeof obj.toJSON === \"function\" &&\n arguments.length === 1) {\n return hasBinary(obj.toJSON(), true);\n }\n for (const key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key) && hasBinary(obj[key])) {\n return true;\n }\n }\n return false;\n}\n","import { isBinary } from \"./is-binary.js\";\n/**\n * Replaces every Buffer | ArrayBuffer | Blob | File in packet with a numbered placeholder.\n *\n * @param {Object} packet - socket.io event packet\n * @return {Object} with deconstructed packet and list of buffers\n * @public\n */\nexport function deconstructPacket(packet) {\n const buffers = [];\n const packetData = packet.data;\n const pack = packet;\n pack.data = _deconstructPacket(packetData, buffers);\n pack.attachments = buffers.length; // number of binary 'attachments'\n return { packet: pack, buffers: buffers };\n}\nfunction _deconstructPacket(data, buffers) {\n if (!data)\n return data;\n if (isBinary(data)) {\n const placeholder = { _placeholder: true, num: buffers.length };\n buffers.push(data);\n return placeholder;\n }\n else if (Array.isArray(data)) {\n const newData = new Array(data.length);\n for (let i = 0; i < data.length; i++) {\n newData[i] = _deconstructPacket(data[i], buffers);\n }\n return newData;\n }\n else if (typeof data === \"object\" && !(data instanceof Date)) {\n const newData = {};\n for (const key in data) {\n if (Object.prototype.hasOwnProperty.call(data, key)) {\n newData[key] = _deconstructPacket(data[key], buffers);\n }\n }\n return newData;\n }\n return data;\n}\n/**\n * Reconstructs a binary packet from its placeholder packet and buffers\n *\n * @param {Object} packet - event packet with placeholders\n * @param {Array} buffers - binary buffers to put in placeholder positions\n * @return {Object} reconstructed packet\n * @public\n */\nexport function reconstructPacket(packet, buffers) {\n packet.data = _reconstructPacket(packet.data, buffers);\n packet.attachments = undefined; // no longer useful\n return packet;\n}\nfunction _reconstructPacket(data, buffers) {\n if (!data)\n return data;\n if (data && data._placeholder === true) {\n const isIndexValid = typeof data.num === \"number\" &&\n data.num >= 0 &&\n data.num < buffers.length;\n if (isIndexValid) {\n return buffers[data.num]; // appropriate buffer (should be natural order anyway)\n }\n else {\n throw new Error(\"illegal attachments\");\n }\n }\n else if (Array.isArray(data)) {\n for (let i = 0; i < data.length; i++) {\n data[i] = _reconstructPacket(data[i], buffers);\n }\n }\n else if (typeof data === \"object\") {\n for (const key in data) {\n if (Object.prototype.hasOwnProperty.call(data, key)) {\n data[key] = _reconstructPacket(data[key], buffers);\n }\n }\n }\n return data;\n}\n","import { Emitter } from \"@socket.io/component-emitter\";\nimport { deconstructPacket, reconstructPacket } from \"./binary.js\";\nimport { isBinary, hasBinary } from \"./is-binary.js\";\n/**\n * Protocol version.\n *\n * @public\n */\nexport const protocol = 5;\nexport var PacketType;\n(function (PacketType) {\n PacketType[PacketType[\"CONNECT\"] = 0] = \"CONNECT\";\n PacketType[PacketType[\"DISCONNECT\"] = 1] = \"DISCONNECT\";\n PacketType[PacketType[\"EVENT\"] = 2] = \"EVENT\";\n PacketType[PacketType[\"ACK\"] = 3] = \"ACK\";\n PacketType[PacketType[\"CONNECT_ERROR\"] = 4] = \"CONNECT_ERROR\";\n PacketType[PacketType[\"BINARY_EVENT\"] = 5] = \"BINARY_EVENT\";\n PacketType[PacketType[\"BINARY_ACK\"] = 6] = \"BINARY_ACK\";\n})(PacketType || (PacketType = {}));\n/**\n * A socket.io Encoder instance\n */\nexport class Encoder {\n /**\n * Encoder constructor\n *\n * @param {function} replacer - custom replacer to pass down to JSON.parse\n */\n constructor(replacer) {\n this.replacer = replacer;\n }\n /**\n * Encode a packet as a single string if non-binary, or as a\n * buffer sequence, depending on packet type.\n *\n * @param {Object} obj - packet object\n */\n encode(obj) {\n if (obj.type === PacketType.EVENT || obj.type === PacketType.ACK) {\n if (hasBinary(obj)) {\n obj.type =\n obj.type === PacketType.EVENT\n ? PacketType.BINARY_EVENT\n : PacketType.BINARY_ACK;\n return this.encodeAsBinary(obj);\n }\n }\n return [this.encodeAsString(obj)];\n }\n /**\n * Encode packet as string.\n */\n encodeAsString(obj) {\n // first is type\n let str = \"\" + obj.type;\n // attachments if we have them\n if (obj.type === PacketType.BINARY_EVENT ||\n obj.type === PacketType.BINARY_ACK) {\n str += obj.attachments + \"-\";\n }\n // if we have a namespace other than `/`\n // we append it followed by a comma `,`\n if (obj.nsp && \"/\" !== obj.nsp) {\n str += obj.nsp + \",\";\n }\n // immediately followed by the id\n if (null != obj.id) {\n str += obj.id;\n }\n // json data\n if (null != obj.data) {\n str += JSON.stringify(obj.data, this.replacer);\n }\n return str;\n }\n /**\n * Encode packet as 'buffer sequence' by removing blobs, and\n * deconstructing packet into object with placeholders and\n * a list of buffers.\n */\n encodeAsBinary(obj) {\n const deconstruction = deconstructPacket(obj);\n const pack = this.encodeAsString(deconstruction.packet);\n const buffers = deconstruction.buffers;\n buffers.unshift(pack); // add packet info to beginning of data list\n return buffers; // write all the buffers\n }\n}\n/**\n * A socket.io Decoder instance\n *\n * @return {Object} decoder\n */\nexport class Decoder extends Emitter {\n /**\n * Decoder constructor\n *\n * @param {function} reviver - custom reviver to pass down to JSON.stringify\n */\n constructor(reviver) {\n super();\n this.reviver = reviver;\n }\n /**\n * Decodes an encoded packet string into packet JSON.\n *\n * @param {String} obj - encoded packet\n */\n add(obj) {\n let packet;\n if (typeof obj === \"string\") {\n if (this.reconstructor) {\n throw new Error(\"got plaintext data when reconstructing a packet\");\n }\n packet = this.decodeString(obj);\n if (packet.type === PacketType.BINARY_EVENT ||\n packet.type === PacketType.BINARY_ACK) {\n // binary packet's json\n this.reconstructor = new BinaryReconstructor(packet);\n // no attachments, labeled binary but no binary data to follow\n if (packet.attachments === 0) {\n super.emitReserved(\"decoded\", packet);\n }\n }\n else {\n // non-binary full packet\n super.emitReserved(\"decoded\", packet);\n }\n }\n else if (isBinary(obj) || obj.base64) {\n // raw binary data\n if (!this.reconstructor) {\n throw new Error(\"got binary data when not reconstructing a packet\");\n }\n else {\n packet = this.reconstructor.takeBinaryData(obj);\n if (packet) {\n // received final buffer\n this.reconstructor = null;\n super.emitReserved(\"decoded\", packet);\n }\n }\n }\n else {\n throw new Error(\"Unknown type: \" + obj);\n }\n }\n /**\n * Decode a packet String (JSON data)\n *\n * @param {String} str\n * @return {Object} packet\n */\n decodeString(str) {\n let i = 0;\n // look up type\n const p = {\n type: Number(str.charAt(0)),\n };\n if (PacketType[p.type] === undefined) {\n throw new Error(\"unknown packet type \" + p.type);\n }\n // look up attachments if type binary\n if (p.type === PacketType.BINARY_EVENT ||\n p.type === PacketType.BINARY_ACK) {\n const start = i + 1;\n while (str.charAt(++i) !== \"-\" && i != str.length) { }\n const buf = str.substring(start, i);\n if (buf != Number(buf) || str.charAt(i) !== \"-\") {\n throw new Error(\"Illegal attachments\");\n }\n p.attachments = Number(buf);\n }\n // look up namespace (if any)\n if (\"/\" === str.charAt(i + 1)) {\n const start = i + 1;\n while (++i) {\n const c = str.charAt(i);\n if (\",\" === c)\n break;\n if (i === str.length)\n break;\n }\n p.nsp = str.substring(start, i);\n }\n else {\n p.nsp = \"/\";\n }\n // look up id\n const next = str.charAt(i + 1);\n if (\"\" !== next && Number(next) == next) {\n const start = i + 1;\n while (++i) {\n const c = str.charAt(i);\n if (null == c || Number(c) != c) {\n --i;\n break;\n }\n if (i === str.length)\n break;\n }\n p.id = Number(str.substring(start, i + 1));\n }\n // look up json data\n if (str.charAt(++i)) {\n const payload = this.tryParse(str.substr(i));\n if (Decoder.isPayloadValid(p.type, payload)) {\n p.data = payload;\n }\n else {\n throw new Error(\"invalid payload\");\n }\n }\n return p;\n }\n tryParse(str) {\n try {\n return JSON.parse(str, this.reviver);\n }\n catch (e) {\n return false;\n }\n }\n static isPayloadValid(type, payload) {\n switch (type) {\n case PacketType.CONNECT:\n return typeof payload === \"object\";\n case PacketType.DISCONNECT:\n return payload === undefined;\n case PacketType.CONNECT_ERROR:\n return typeof payload === \"string\" || typeof payload === \"object\";\n case PacketType.EVENT:\n case PacketType.BINARY_EVENT:\n return Array.isArray(payload) && payload.length > 0;\n case PacketType.ACK:\n case PacketType.BINARY_ACK:\n return Array.isArray(payload);\n }\n }\n /**\n * Deallocates a parser's resources\n */\n destroy() {\n if (this.reconstructor) {\n this.reconstructor.finishedReconstruction();\n }\n }\n}\n/**\n * A manager of a binary event's 'buffer sequence'. Should\n * be constructed whenever a packet of type BINARY_EVENT is\n * decoded.\n *\n * @param {Object} packet\n * @return {BinaryReconstructor} initialized reconstructor\n */\nclass BinaryReconstructor {\n constructor(packet) {\n this.packet = packet;\n this.buffers = [];\n this.reconPack = packet;\n }\n /**\n * Method to be called when binary data received from connection\n * after a BINARY_EVENT packet.\n *\n * @param {Buffer | ArrayBuffer} binData - the raw binary data received\n * @return {null | Object} returns null if more binary data is expected or\n * a reconstructed packet object if all buffers have been received.\n */\n takeBinaryData(binData) {\n this.buffers.push(binData);\n if (this.buffers.length === this.reconPack.attachments) {\n // done with buffer list\n const packet = reconstructPacket(this.reconPack, this.buffers);\n this.finishedReconstruction();\n return packet;\n }\n return null;\n }\n /**\n * Cleans up binary packet reconstruction variables.\n */\n finishedReconstruction() {\n this.reconPack = null;\n this.buffers = [];\n }\n}\n","export function on(obj, ev, fn) {\n obj.on(ev, fn);\n return function subDestroy() {\n obj.off(ev, fn);\n };\n}\n","import { PacketType } from \"socket.io-parser\";\nimport { on } from \"./on.js\";\nimport { Emitter, } from \"@socket.io/component-emitter\";\n/**\n * Internal events.\n * These events can't be emitted by the user.\n */\nconst RESERVED_EVENTS = Object.freeze({\n connect: 1,\n connect_error: 1,\n disconnect: 1,\n disconnecting: 1,\n // EventEmitter reserved events: https://nodejs.org/api/events.html#events_event_newlistener\n newListener: 1,\n removeListener: 1,\n});\n/**\n * A Socket is the fundamental class for interacting with the server.\n *\n * A Socket belongs to a certain Namespace (by default /) and uses an underlying {@link Manager} to communicate.\n *\n * @example\n * const socket = io();\n *\n * socket.on(\"connect\", () => {\n * console.log(\"connected\");\n * });\n *\n * // send an event to the server\n * socket.emit(\"foo\", \"bar\");\n *\n * socket.on(\"foobar\", () => {\n * // an event was received from the server\n * });\n *\n * // upon disconnection\n * socket.on(\"disconnect\", (reason) => {\n * console.log(`disconnected due to ${reason}`);\n * });\n */\nexport class Socket extends Emitter {\n /**\n * `Socket` constructor.\n */\n constructor(io, nsp, opts) {\n super();\n /**\n * Whether the socket is currently connected to the server.\n *\n * @example\n * const socket = io();\n *\n * socket.on(\"connect\", () => {\n * console.log(socket.connected); // true\n * });\n *\n * socket.on(\"disconnect\", () => {\n * console.log(socket.connected); // false\n * });\n */\n this.connected = false;\n /**\n * Buffer for packets received before the CONNECT packet\n */\n this.receiveBuffer = [];\n /**\n * Buffer for packets that will be sent once the socket is connected\n */\n this.sendBuffer = [];\n this.ids = 0;\n this.acks = {};\n this.flags = {};\n this.io = io;\n this.nsp = nsp;\n if (opts && opts.auth) {\n this.auth = opts.auth;\n }\n if (this.io._autoConnect)\n this.open();\n }\n /**\n * Whether the socket is currently disconnected\n *\n * @example\n * const socket = io();\n *\n * socket.on(\"connect\", () => {\n * console.log(socket.disconnected); // false\n * });\n *\n * socket.on(\"disconnect\", () => {\n * console.log(socket.disconnected); // true\n * });\n */\n get disconnected() {\n return !this.connected;\n }\n /**\n * Subscribe to open, close and packet events\n *\n * @private\n */\n subEvents() {\n if (this.subs)\n return;\n const io = this.io;\n this.subs = [\n on(io, \"open\", this.onopen.bind(this)),\n on(io, \"packet\", this.onpacket.bind(this)),\n on(io, \"error\", this.onerror.bind(this)),\n on(io, \"close\", this.onclose.bind(this)),\n ];\n }\n /**\n * Whether the Socket will try to reconnect when its Manager connects or reconnects.\n *\n * @example\n * const socket = io();\n *\n * console.log(socket.active); // true\n *\n * socket.on(\"disconnect\", (reason) => {\n * if (reason === \"io server disconnect\") {\n * // the disconnection was initiated by the server, you need to manually reconnect\n * console.log(socket.active); // false\n * }\n * // else the socket will automatically try to reconnect\n * console.log(socket.active); // true\n * });\n */\n get active() {\n return !!this.subs;\n }\n /**\n * \"Opens\" the socket.\n *\n * @example\n * const socket = io({\n * autoConnect: false\n * });\n *\n * socket.connect();\n */\n connect() {\n if (this.connected)\n return this;\n this.subEvents();\n if (!this.io[\"_reconnecting\"])\n this.io.open(); // ensure open\n if (\"open\" === this.io._readyState)\n this.onopen();\n return this;\n }\n /**\n * Alias for {@link connect()}.\n */\n open() {\n return this.connect();\n }\n /**\n * Sends a `message` event.\n *\n * This method mimics the WebSocket.send() method.\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/API/WebSocket/send\n *\n * @example\n * socket.send(\"hello\");\n *\n * // this is equivalent to\n * socket.emit(\"message\", \"hello\");\n *\n * @return self\n */\n send(...args) {\n args.unshift(\"message\");\n this.emit.apply(this, args);\n return this;\n }\n /**\n * Override `emit`.\n * If the event is in `events`, it's emitted normally.\n *\n * @example\n * socket.emit(\"hello\", \"world\");\n *\n * // all serializable datastructures are supported (no need to call JSON.stringify)\n * socket.emit(\"hello\", 1, \"2\", { 3: [\"4\"], 5: Uint8Array.from([6]) });\n *\n * // with an acknowledgement from the server\n * socket.emit(\"hello\", \"world\", (val) => {\n * // ...\n * });\n *\n * @return self\n */\n emit(ev, ...args) {\n if (RESERVED_EVENTS.hasOwnProperty(ev)) {\n throw new Error('\"' + ev.toString() + '\" is a reserved event name');\n }\n args.unshift(ev);\n const packet = {\n type: PacketType.EVENT,\n data: args,\n };\n packet.options = {};\n packet.options.compress = this.flags.compress !== false;\n // event ack callback\n if (\"function\" === typeof args[args.length - 1]) {\n const id = this.ids++;\n const ack = args.pop();\n this._registerAckCallback(id, ack);\n packet.id = id;\n }\n const isTransportWritable = this.io.engine &&\n this.io.engine.transport &&\n this.io.engine.transport.writable;\n const discardPacket = this.flags.volatile && (!isTransportWritable || !this.connected);\n if (discardPacket) {\n }\n else if (this.connected) {\n this.notifyOutgoingListeners(packet);\n this.packet(packet);\n }\n else {\n this.sendBuffer.push(packet);\n }\n this.flags = {};\n return this;\n }\n /**\n * @private\n */\n _registerAckCallback(id, ack) {\n const timeout = this.flags.timeout;\n if (timeout === undefined) {\n this.acks[id] = ack;\n return;\n }\n // @ts-ignore\n const timer = this.io.setTimeoutFn(() => {\n delete this.acks[id];\n for (let i = 0; i < this.sendBuffer.length; i++) {\n if (this.sendBuffer[i].id === id) {\n this.sendBuffer.splice(i, 1);\n }\n }\n ack.call(this, new Error(\"operation has timed out\"));\n }, timeout);\n this.acks[id] = (...args) => {\n // @ts-ignore\n this.io.clearTimeoutFn(timer);\n ack.apply(this, [null, ...args]);\n };\n }\n /**\n * Sends a packet.\n *\n * @param packet\n * @private\n */\n packet(packet) {\n packet.nsp = this.nsp;\n this.io._packet(packet);\n }\n /**\n * Called upon engine `open`.\n *\n * @private\n */\n onopen() {\n if (typeof this.auth == \"function\") {\n this.auth((data) => {\n this.packet({ type: PacketType.CONNECT, data });\n });\n }\n else {\n this.packet({ type: PacketType.CONNECT, data: this.auth });\n }\n }\n /**\n * Called upon engine or manager `error`.\n *\n * @param err\n * @private\n */\n onerror(err) {\n if (!this.connected) {\n this.emitReserved(\"connect_error\", err);\n }\n }\n /**\n * Called upon engine `close`.\n *\n * @param reason\n * @param description\n * @private\n */\n onclose(reason, description) {\n this.connected = false;\n delete this.id;\n this.emitReserved(\"disconnect\", reason, description);\n }\n /**\n * Called with socket packet.\n *\n * @param packet\n * @private\n */\n onpacket(packet) {\n const sameNamespace = packet.nsp === this.nsp;\n if (!sameNamespace)\n return;\n switch (packet.type) {\n case PacketType.CONNECT:\n if (packet.data && packet.data.sid) {\n const id = packet.data.sid;\n this.onconnect(id);\n }\n else {\n this.emitReserved(\"connect_error\", new Error(\"It seems you are trying to reach a Socket.IO server in v2.x with a v3.x client, but they are not compatible (more information here: https://socket.io/docs/v3/migrating-from-2-x-to-3-0/)\"));\n }\n break;\n case PacketType.EVENT:\n case PacketType.BINARY_EVENT:\n this.onevent(packet);\n break;\n case PacketType.ACK:\n case PacketType.BINARY_ACK:\n this.onack(packet);\n break;\n case PacketType.DISCONNECT:\n this.ondisconnect();\n break;\n case PacketType.CONNECT_ERROR:\n this.destroy();\n const err = new Error(packet.data.message);\n // @ts-ignore\n err.data = packet.data.data;\n this.emitReserved(\"connect_error\", err);\n break;\n }\n }\n /**\n * Called upon a server event.\n *\n * @param packet\n * @private\n */\n onevent(packet) {\n const args = packet.data || [];\n if (null != packet.id) {\n args.push(this.ack(packet.id));\n }\n if (this.connected) {\n this.emitEvent(args);\n }\n else {\n this.receiveBuffer.push(Object.freeze(args));\n }\n }\n emitEvent(args) {\n if (this._anyListeners && this._anyListeners.length) {\n const listeners = this._anyListeners.slice();\n for (const listener of listeners) {\n listener.apply(this, args);\n }\n }\n super.emit.apply(this, args);\n }\n /**\n * Produces an ack callback to emit with an event.\n *\n * @private\n */\n ack(id) {\n const self = this;\n let sent = false;\n return function (...args) {\n // prevent double callbacks\n if (sent)\n return;\n sent = true;\n self.packet({\n type: PacketType.ACK,\n id: id,\n data: args,\n });\n };\n }\n /**\n * Called upon a server acknowlegement.\n *\n * @param packet\n * @private\n */\n onack(packet) {\n const ack = this.acks[packet.id];\n if (\"function\" === typeof ack) {\n ack.apply(this, packet.data);\n delete this.acks[packet.id];\n }\n else {\n }\n }\n /**\n * Called upon server connect.\n *\n * @private\n */\n onconnect(id) {\n this.id = id;\n this.connected = true;\n this.emitBuffered();\n this.emitReserved(\"connect\");\n }\n /**\n * Emit buffered events (received and emitted).\n *\n * @private\n */\n emitBuffered() {\n this.receiveBuffer.forEach((args) => this.emitEvent(args));\n this.receiveBuffer = [];\n this.sendBuffer.forEach((packet) => {\n this.notifyOutgoingListeners(packet);\n this.packet(packet);\n });\n this.sendBuffer = [];\n }\n /**\n * Called upon server disconnect.\n *\n * @private\n */\n ondisconnect() {\n this.destroy();\n this.onclose(\"io server disconnect\");\n }\n /**\n * Called upon forced client/server side disconnections,\n * this method ensures the manager stops tracking us and\n * that reconnections don't get triggered for this.\n *\n * @private\n */\n destroy() {\n if (this.subs) {\n // clean subscriptions to avoid reconnections\n this.subs.forEach((subDestroy) => subDestroy());\n this.subs = undefined;\n }\n this.io[\"_destroy\"](this);\n }\n /**\n * Disconnects the socket manually. In that case, the socket will not try to reconnect.\n *\n * If this is the last active Socket instance of the {@link Manager}, the low-level connection will be closed.\n *\n * @example\n * const socket = io();\n *\n * socket.on(\"disconnect\", (reason) => {\n * // console.log(reason); prints \"io client disconnect\"\n * });\n *\n * socket.disconnect();\n *\n * @return self\n */\n disconnect() {\n if (this.connected) {\n this.packet({ type: PacketType.DISCONNECT });\n }\n // remove socket from pool\n this.destroy();\n if (this.connected) {\n // fire events\n this.onclose(\"io client disconnect\");\n }\n return this;\n }\n /**\n * Alias for {@link disconnect()}.\n *\n * @return self\n */\n close() {\n return this.disconnect();\n }\n /**\n * Sets the compress flag.\n *\n * @example\n * socket.compress(false).emit(\"hello\");\n *\n * @param compress - if `true`, compresses the sending data\n * @return self\n */\n compress(compress) {\n this.flags.compress = compress;\n return this;\n }\n /**\n * Sets a modifier for a subsequent event emission that the event message will be dropped when this socket is not\n * ready to send messages.\n *\n * @example\n * socket.volatile.emit(\"hello\"); // the server may or may not receive it\n *\n * @returns self\n */\n get volatile() {\n this.flags.volatile = true;\n return this;\n }\n /**\n * Sets a modifier for a subsequent event emission that the callback will be called with an error when the\n * given number of milliseconds have elapsed without an acknowledgement from the server:\n *\n * @example\n * socket.timeout(5000).emit(\"my-event\", (err) => {\n * if (err) {\n * // the server did not acknowledge the event in the given delay\n * }\n * });\n *\n * @returns self\n */\n timeout(timeout) {\n this.flags.timeout = timeout;\n return this;\n }\n /**\n * Adds a listener that will be fired when any event is emitted. The event name is passed as the first argument to the\n * callback.\n *\n * @example\n * socket.onAny((event, ...args) => {\n * console.log(`got ${event}`);\n * });\n *\n * @param listener\n */\n onAny(listener) {\n this._anyListeners = this._anyListeners || [];\n this._anyListeners.push(listener);\n return this;\n }\n /**\n * Adds a listener that will be fired when any event is emitted. The event name is passed as the first argument to the\n * callback. The listener is added to the beginning of the listeners array.\n *\n * @example\n * socket.prependAny((event, ...args) => {\n * console.log(`got event ${event}`);\n * });\n *\n * @param listener\n */\n prependAny(listener) {\n this._anyListeners = this._anyListeners || [];\n this._anyListeners.unshift(listener);\n return this;\n }\n /**\n * Removes the listener that will be fired when any event is emitted.\n *\n * @example\n * const catchAllListener = (event, ...args) => {\n * console.log(`got event ${event}`);\n * }\n *\n * socket.onAny(catchAllListener);\n *\n * // remove a specific listener\n * socket.offAny(catchAllListener);\n *\n * // or remove all listeners\n * socket.offAny();\n *\n * @param listener\n */\n offAny(listener) {\n if (!this._anyListeners) {\n return this;\n }\n if (listener) {\n const listeners = this._anyListeners;\n for (let i = 0; i < listeners.length; i++) {\n if (listener === listeners[i]) {\n listeners.splice(i, 1);\n return this;\n }\n }\n }\n else {\n this._anyListeners = [];\n }\n return this;\n }\n /**\n * Returns an array of listeners that are listening for any event that is specified. This array can be manipulated,\n * e.g. to remove listeners.\n */\n listenersAny() {\n return this._anyListeners || [];\n }\n /**\n * Adds a listener that will be fired when any event is emitted. The event name is passed as the first argument to the\n * callback.\n *\n * Note: acknowledgements sent to the server are not included.\n *\n * @example\n * socket.onAnyOutgoing((event, ...args) => {\n * console.log(`sent event ${event}`);\n * });\n *\n * @param listener\n */\n onAnyOutgoing(listener) {\n this._anyOutgoingListeners = this._anyOutgoingListeners || [];\n this._anyOutgoingListeners.push(listener);\n return this;\n }\n /**\n * Adds a listener that will be fired when any event is emitted. The event name is passed as the first argument to the\n * callback. The listener is added to the beginning of the listeners array.\n *\n * Note: acknowledgements sent to the server are not included.\n *\n * @example\n * socket.prependAnyOutgoing((event, ...args) => {\n * console.log(`sent event ${event}`);\n * });\n *\n * @param listener\n */\n prependAnyOutgoing(listener) {\n this._anyOutgoingListeners = this._anyOutgoingListeners || [];\n this._anyOutgoingListeners.unshift(listener);\n return this;\n }\n /**\n * Removes the listener that will be fired when any event is emitted.\n *\n * @example\n * const catchAllListener = (event, ...args) => {\n * console.log(`sent event ${event}`);\n * }\n *\n * socket.onAnyOutgoing(catchAllListener);\n *\n * // remove a specific listener\n * socket.offAnyOutgoing(catchAllListener);\n *\n * // or remove all listeners\n * socket.offAnyOutgoing();\n *\n * @param [listener] - the catch-all listener (optional)\n */\n offAnyOutgoing(listener) {\n if (!this._anyOutgoingListeners) {\n return this;\n }\n if (listener) {\n const listeners = this._anyOutgoingListeners;\n for (let i = 0; i < listeners.length; i++) {\n if (listener === listeners[i]) {\n listeners.splice(i, 1);\n return this;\n }\n }\n }\n else {\n this._anyOutgoingListeners = [];\n }\n return this;\n }\n /**\n * Returns an array of listeners that are listening for any event that is specified. This array can be manipulated,\n * e.g. to remove listeners.\n */\n listenersAnyOutgoing() {\n return this._anyOutgoingListeners || [];\n }\n /**\n * Notify the listeners for each packet sent\n *\n * @param packet\n *\n * @private\n */\n notifyOutgoingListeners(packet) {\n if (this._anyOutgoingListeners && this._anyOutgoingListeners.length) {\n const listeners = this._anyOutgoingListeners.slice();\n for (const listener of listeners) {\n listener.apply(this, packet.data);\n }\n }\n }\n}\n","/**\n * Initialize backoff timer with `opts`.\n *\n * - `min` initial timeout in milliseconds [100]\n * - `max` max timeout [10000]\n * - `jitter` [0]\n * - `factor` [2]\n *\n * @param {Object} opts\n * @api public\n */\nexport function Backoff(opts) {\n opts = opts || {};\n this.ms = opts.min || 100;\n this.max = opts.max || 10000;\n this.factor = opts.factor || 2;\n this.jitter = opts.jitter > 0 && opts.jitter <= 1 ? opts.jitter : 0;\n this.attempts = 0;\n}\n/**\n * Return the backoff duration.\n *\n * @return {Number}\n * @api public\n */\nBackoff.prototype.duration = function () {\n var ms = this.ms * Math.pow(this.factor, this.attempts++);\n if (this.jitter) {\n var rand = Math.random();\n var deviation = Math.floor(rand * this.jitter * ms);\n ms = (Math.floor(rand * 10) & 1) == 0 ? ms - deviation : ms + deviation;\n }\n return Math.min(ms, this.max) | 0;\n};\n/**\n * Reset the number of attempts.\n *\n * @api public\n */\nBackoff.prototype.reset = function () {\n this.attempts = 0;\n};\n/**\n * Set the minimum duration\n *\n * @api public\n */\nBackoff.prototype.setMin = function (min) {\n this.ms = min;\n};\n/**\n * Set the maximum duration\n *\n * @api public\n */\nBackoff.prototype.setMax = function (max) {\n this.max = max;\n};\n/**\n * Set the jitter\n *\n * @api public\n */\nBackoff.prototype.setJitter = function (jitter) {\n this.jitter = jitter;\n};\n","import { Socket as Engine, installTimerFunctions, nextTick, } from \"engine.io-client\";\nimport { Socket } from \"./socket.js\";\nimport * as parser from \"socket.io-parser\";\nimport { on } from \"./on.js\";\nimport { Backoff } from \"./contrib/backo2.js\";\nimport { Emitter, } from \"@socket.io/component-emitter\";\nexport class Manager extends Emitter {\n constructor(uri, opts) {\n var _a;\n super();\n this.nsps = {};\n this.subs = [];\n if (uri && \"object\" === typeof uri) {\n opts = uri;\n uri = undefined;\n }\n opts = opts || {};\n opts.path = opts.path || \"/socket.io\";\n this.opts = opts;\n installTimerFunctions(this, opts);\n this.reconnection(opts.reconnection !== false);\n this.reconnectionAttempts(opts.reconnectionAttempts || Infinity);\n this.reconnectionDelay(opts.reconnectionDelay || 1000);\n this.reconnectionDelayMax(opts.reconnectionDelayMax || 5000);\n this.randomizationFactor((_a = opts.randomizationFactor) !== null && _a !== void 0 ? _a : 0.5);\n this.backoff = new Backoff({\n min: this.reconnectionDelay(),\n max: this.reconnectionDelayMax(),\n jitter: this.randomizationFactor(),\n });\n this.timeout(null == opts.timeout ? 20000 : opts.timeout);\n this._readyState = \"closed\";\n this.uri = uri;\n const _parser = opts.parser || parser;\n this.encoder = new _parser.Encoder();\n this.decoder = new _parser.Decoder();\n this._autoConnect = opts.autoConnect !== false;\n if (this._autoConnect)\n this.open();\n }\n reconnection(v) {\n if (!arguments.length)\n return this._reconnection;\n this._reconnection = !!v;\n return this;\n }\n reconnectionAttempts(v) {\n if (v === undefined)\n return this._reconnectionAttempts;\n this._reconnectionAttempts = v;\n return this;\n }\n reconnectionDelay(v) {\n var _a;\n if (v === undefined)\n return this._reconnectionDelay;\n this._reconnectionDelay = v;\n (_a = this.backoff) === null || _a === void 0 ? void 0 : _a.setMin(v);\n return this;\n }\n randomizationFactor(v) {\n var _a;\n if (v === undefined)\n return this._randomizationFactor;\n this._randomizationFactor = v;\n (_a = this.backoff) === null || _a === void 0 ? void 0 : _a.setJitter(v);\n return this;\n }\n reconnectionDelayMax(v) {\n var _a;\n if (v === undefined)\n return this._reconnectionDelayMax;\n this._reconnectionDelayMax = v;\n (_a = this.backoff) === null || _a === void 0 ? void 0 : _a.setMax(v);\n return this;\n }\n timeout(v) {\n if (!arguments.length)\n return this._timeout;\n this._timeout = v;\n return this;\n }\n /**\n * Starts trying to reconnect if reconnection is enabled and we have not\n * started reconnecting yet\n *\n * @private\n */\n maybeReconnectOnOpen() {\n // Only try to reconnect if it's the first time we're connecting\n if (!this._reconnecting &&\n this._reconnection &&\n this.backoff.attempts === 0) {\n // keeps reconnection from firing twice for the same reconnection loop\n this.reconnect();\n }\n }\n /**\n * Sets the current transport `socket`.\n *\n * @param {Function} fn - optional, callback\n * @return self\n * @public\n */\n open(fn) {\n if (~this._readyState.indexOf(\"open\"))\n return this;\n this.engine = new Engine(this.uri, this.opts);\n const socket = this.engine;\n const self = this;\n this._readyState = \"opening\";\n this.skipReconnect = false;\n // emit `open`\n const openSubDestroy = on(socket, \"open\", function () {\n self.onopen();\n fn && fn();\n });\n // emit `error`\n const errorSub = on(socket, \"error\", (err) => {\n self.cleanup();\n self._readyState = \"closed\";\n this.emitReserved(\"error\", err);\n if (fn) {\n fn(err);\n }\n else {\n // Only do this if there is no fn to handle the error\n self.maybeReconnectOnOpen();\n }\n });\n if (false !== this._timeout) {\n const timeout = this._timeout;\n if (timeout === 0) {\n openSubDestroy(); // prevents a race condition with the 'open' event\n }\n // set timer\n const timer = this.setTimeoutFn(() => {\n openSubDestroy();\n socket.close();\n // @ts-ignore\n socket.emit(\"error\", new Error(\"timeout\"));\n }, timeout);\n if (this.opts.autoUnref) {\n timer.unref();\n }\n this.subs.push(function subDestroy() {\n clearTimeout(timer);\n });\n }\n this.subs.push(openSubDestroy);\n this.subs.push(errorSub);\n return this;\n }\n /**\n * Alias for open()\n *\n * @return self\n * @public\n */\n connect(fn) {\n return this.open(fn);\n }\n /**\n * Called upon transport open.\n *\n * @private\n */\n onopen() {\n // clear old subs\n this.cleanup();\n // mark as open\n this._readyState = \"open\";\n this.emitReserved(\"open\");\n // add new subs\n const socket = this.engine;\n this.subs.push(on(socket, \"ping\", this.onping.bind(this)), on(socket, \"data\", this.ondata.bind(this)), on(socket, \"error\", this.onerror.bind(this)), on(socket, \"close\", this.onclose.bind(this)), on(this.decoder, \"decoded\", this.ondecoded.bind(this)));\n }\n /**\n * Called upon a ping.\n *\n * @private\n */\n onping() {\n this.emitReserved(\"ping\");\n }\n /**\n * Called with data.\n *\n * @private\n */\n ondata(data) {\n try {\n this.decoder.add(data);\n }\n catch (e) {\n this.onclose(\"parse error\", e);\n }\n }\n /**\n * Called when parser fully decodes a packet.\n *\n * @private\n */\n ondecoded(packet) {\n // the nextTick call prevents an exception in a user-provided event listener from triggering a disconnection due to a \"parse error\"\n nextTick(() => {\n this.emitReserved(\"packet\", packet);\n }, this.setTimeoutFn);\n }\n /**\n * Called upon socket error.\n *\n * @private\n */\n onerror(err) {\n this.emitReserved(\"error\", err);\n }\n /**\n * Creates a new socket for the given `nsp`.\n *\n * @return {Socket}\n * @public\n */\n socket(nsp, opts) {\n let socket = this.nsps[nsp];\n if (!socket) {\n socket = new Socket(this, nsp, opts);\n this.nsps[nsp] = socket;\n }\n return socket;\n }\n /**\n * Called upon a socket close.\n *\n * @param socket\n * @private\n */\n _destroy(socket) {\n const nsps = Object.keys(this.nsps);\n for (const nsp of nsps) {\n const socket = this.nsps[nsp];\n if (socket.active) {\n return;\n }\n }\n this._close();\n }\n /**\n * Writes a packet.\n *\n * @param packet\n * @private\n */\n _packet(packet) {\n const encodedPackets = this.encoder.encode(packet);\n for (let i = 0; i < encodedPackets.length; i++) {\n this.engine.write(encodedPackets[i], packet.options);\n }\n }\n /**\n * Clean up transport subscriptions and packet buffer.\n *\n * @private\n */\n cleanup() {\n this.subs.forEach((subDestroy) => subDestroy());\n this.subs.length = 0;\n this.decoder.destroy();\n }\n /**\n * Close the current socket.\n *\n * @private\n */\n _close() {\n this.skipReconnect = true;\n this._reconnecting = false;\n this.onclose(\"forced close\");\n if (this.engine)\n this.engine.close();\n }\n /**\n * Alias for close()\n *\n * @private\n */\n disconnect() {\n return this._close();\n }\n /**\n * Called upon engine close.\n *\n * @private\n */\n onclose(reason, description) {\n this.cleanup();\n this.backoff.reset();\n this._readyState = \"closed\";\n this.emitReserved(\"close\", reason, description);\n if (this._reconnection && !this.skipReconnect) {\n this.reconnect();\n }\n }\n /**\n * Attempt a reconnection.\n *\n * @private\n */\n reconnect() {\n if (this._reconnecting || this.skipReconnect)\n return this;\n const self = this;\n if (this.backoff.attempts >= this._reconnectionAttempts) {\n this.backoff.reset();\n this.emitReserved(\"reconnect_failed\");\n this._reconnecting = false;\n }\n else {\n const delay = this.backoff.duration();\n this._reconnecting = true;\n const timer = this.setTimeoutFn(() => {\n if (self.skipReconnect)\n return;\n this.emitReserved(\"reconnect_attempt\", self.backoff.attempts);\n // check again for the case socket closed in above events\n if (self.skipReconnect)\n return;\n self.open((err) => {\n if (err) {\n self._reconnecting = false;\n self.reconnect();\n this.emitReserved(\"reconnect_error\", err);\n }\n else {\n self.onreconnect();\n }\n });\n }, delay);\n if (this.opts.autoUnref) {\n timer.unref();\n }\n this.subs.push(function subDestroy() {\n clearTimeout(timer);\n });\n }\n }\n /**\n * Called upon successful reconnect.\n *\n * @private\n */\n onreconnect() {\n const attempt = this.backoff.attempts;\n this._reconnecting = false;\n this.backoff.reset();\n this.emitReserved(\"reconnect\", attempt);\n }\n}\n","import { url } from \"./url.js\";\nimport { Manager } from \"./manager.js\";\nimport { Socket } from \"./socket.js\";\n/**\n * Managers cache.\n */\nconst cache = {};\nfunction lookup(uri, opts) {\n if (typeof uri === \"object\") {\n opts = uri;\n uri = undefined;\n }\n opts = opts || {};\n const parsed = url(uri, opts.path || \"/socket.io\");\n const source = parsed.source;\n const id = parsed.id;\n const path = parsed.path;\n const sameNamespace = cache[id] && path in cache[id][\"nsps\"];\n const newConnection = opts.forceNew ||\n opts[\"force new connection\"] ||\n false === opts.multiplex ||\n sameNamespace;\n let io;\n if (newConnection) {\n io = new Manager(source, opts);\n }\n else {\n if (!cache[id]) {\n cache[id] = new Manager(source, opts);\n }\n io = cache[id];\n }\n if (parsed.query && !opts.query) {\n opts.query = parsed.queryKey;\n }\n return io.socket(parsed.path, opts);\n}\n// so that \"lookup\" can be used both as a function (e.g. `io(...)`) and as a\n// namespace (e.g. `io.connect(...)`), for backward compatibility\nObject.assign(lookup, {\n Manager,\n Socket,\n io: lookup,\n connect: lookup,\n});\n/**\n * Protocol version.\n *\n * @public\n */\nexport { protocol } from \"socket.io-parser\";\n/**\n * Expose constructors for standalone build.\n *\n * @public\n */\nexport { Manager, Socket, lookup as io, lookup as connect, lookup as default, };\n","import { user, msgs } from './Store_chat';\n\nexport function socket_events(socket)\n{\n\tsocket.on('message', function(from, message)\n\t{\n\t\tconsole.log(\"received msg:\", message, from);\n\t\tif (from === user.username)\n\t\t\tfrom = \"me\";\n\t\tmsgs.update(msgs => [...msgs, { name: from, message: message }]);\n\t});\n}\n","import io from 'socket.io-client';\nimport { set_socket, set_user } from './Store_chat';\nimport { socket_events } from './Socket_events';\n\nconst address = `http://${process.env.WEBSITE_HOST}:${process.env.WEBSITE_PORT}`;\n\nexport async function init_socket()\n{\n\tconst response = await fetch(`${address}/api/v2/user`);\n\tconst response_data = await response.json();\n\n\tset_user(response_data);\n\n\tlet socket = await io(address,\n\t{\n\t\tpath: '/chat',\n\t\tquery:\n\t\t{\n\t\t\tusername: response_data.username,\n\t\t},\n\t});\n\tset_socket(socket);\n\n\tsocket.on('connect', function(){ console.log(\"socket.io connected\"); });\n\tsocket.on('disconnect', function(){ console.log(\"socket.io disconnected\"); });\n\tsocket.on('connect_error', function(){ console.log(\"socket.io connect_error\"); });\n\tsocket.on('connect_timeout', function(){ console.log(\"socket.io connect_timeout\"); });\n\tsocket.on('error', function(){ console.log(\"socket.io error\"); });\n\tsocket.on('reconnect', function(){ console.log(\"socket.io reconnect\"); });\n\tsocket.on('reconnect_attempt', function(){ console.log(\"socket.io reconnect_attempt\"); });\n\tsocket.on('reconnecting', function(){ console.log(\"socket.io reconnecting\"); });\n\tsocket.on('reconnect_error', function(){ console.log(\"socket.io reconnect_error\"); });\n\tsocket.on('reconnect_failed', function(){ console.log(\"socket.io reconnect_failed\"); });\n\tsocket.on('ping', function(){ console.log(\"socket.io ping\"); });\n\tsocket.on('pong', function(){ console.log(\"socket.io pong\"); });\n\n\tsocket_events(socket);\n}\n\n","\n\n\n\n\n\n","\n\n\n\n\n
\n \n {#if user !== undefined}\n \n {:else}\n \n

Sorry

\n
Failed to load current
\n {/if}\n
\n\n\n","
\n \n
\n\n","\n\n\n\n\n\n\n\n\n","\n\n\n
\n

Look! You can change stuff

\n
\n \n
\n
\n
New Username
\n \n \n \n\t\t
{success.username}
\n
{errors.username}
\n
\n
\n
Set Two Factor Authentication
\n \n
{errors.checkbox}
\n
\n \n
\n
\n\n \n \n {#if avatar !== undefined}\n \"your\n {/if}\n
\n \n \n
\n
Pick a new Avatar
\n \n
{errors.avatar}
\n
\n \n
\n
\n
\n\n
\n\n\n\n\n","\n\n\n{#if user !== undefined}\n \n \n{:else}\n

Sorry

\n
Failed to load user {aUsername}
\n{/if}\n\n\n\n","\n\n\n
\n \n
    \n {#each items as item}\n
  • dispatch('tabChange', item)}>\n \n
    {item}
    \n
  • \n {/each}\n
\n
\n\n","\n\n\n\n
\n\n \n\n \n\n
\n \n {#if activeTabItem === 'All Users' && allUsers !== undefined}\n

{activeTabItem}

\n \n \n\n {#if Object.keys(allUsers).length === 0}\n
You are alone on this platform...
\n {/if}\n \n \n \n {#each allUsers as aUser}\n
viewAUser(aUser.username)}>{aUser.username}
\n \n
{aUser.status}
\n
\n {/each}\n {:else if activeTabItem === 'My Friends' && myFriendships !== undefined}\n

{activeTabItem}

\n {#if Object.keys(myFriendships).length === 0}\n
You don't have any Friends... Yet!
\n {/if}\n \n {#each myFriendships as aFriendship}\n {#if aFriendship.senderUsername !== user.username}\n
viewAUser(aFriendship.senderUsername)}>{aFriendship.senderUsername}
\n {:else if aFriendship.receiverUsername !== user.username}\n
viewAUser(aFriendship.receiverUsername)}>{aFriendship.receiverUsername}
\n {/if}\n
\n {/each}\n {:else if activeTabItem === 'Friend Requests' && requestsRecieved !== undefined}\n

{activeTabItem}

\n {#if Object.keys(requestsRecieved).length === 0}\n
You don't have any Friend Requests
\n {/if}\n \n {#each requestsRecieved as aUser}\n
viewAUser(aUser.senderUsername)}>{aUser.senderUsername}
\n
{aUser.status}
\n
\n {/each}\n {:else if activeTabItem === 'Blocked Users' && blockedUsers !== undefined}\n

{activeTabItem}

\n \n {#if Object.keys(blockedUsers).length === 0}\n
You have not Blocked any Users
\n {/if}\n \n {#each blockedUsers as aUser}\n
viewAUser(aUser.receiverUsername)}>{aUser.receiverUsername}
\n
{aUser.status}
\n
\n {/each}\n {/if}\n
\n\n\n
\n {#if usernameBeingViewed !== undefined}\n \n \n\n
\n {#if friendshipStatusFull && friendshipStatusFull.id}\n {#if friendshipStatusFull.status === 'R'}\n {#if friendshipStatusFull.senderUsername === user.username}\n
Friend Request Sent
\n {:else}\n \n \n \n {/if}\n \n {:else if friendshipStatusFull.status === 'A'}\n
You are Friends
\n \n \n {:else if friendshipStatusFull.status === 'D'}\n {#if friendshipStatusFull.senderUsername === user.username}\n
Your friend request was declined, hang in there bud.
\n {:else}\n
You declined the friend request, but you could still change your mind
\n \n {/if}\n \n {:else if friendshipStatusFull.status === 'B'}\n {#if friendshipStatusFull.senderUsername === user.username}\n \n {/if}\n {/if}\n {:else}\n \n \n {/if}\n \n
\n {:else}\n
\n

Click on a user!

\n

You'll see them displayed here

\n
\n {/if}\n\n
\n
\n\n\n","\nimport NotFound from \"../pages/NotFound.svelte\";\nimport ProfileDisplay from '../pages/profile/ProfileDisplay.svelte';\nimport ProfileSettings from '../pages/profile/ProfileSettings.svelte';\nimport ProfileFriends from '../pages/profile/ProfileFriends.svelte';\nimport { wrap } from 'svelte-spa-router/wrap'\n\n// establishing the prefix here very clearly so we can have a coherent repeatable structure\nexport const prefix = '/profile';\n\nexport const profileRoutes = {\n '/': ProfileDisplay,\n '/settings': ProfileSettings,\n '/friends': ProfileFriends,\n '*': NotFound\n};\n\n// I think the conditions of access like are you authenticated work best when they are on the parent routes not the nested routes cuz i don't want my header showing up\n\n// export const profileRoutes = {\n// '/': wrap({\n// component: ProfileDisplay,\n// conditions: [\n// (detail) => {\n// const { fortyTwo, tfa } = get(loginStatus);\n// console.log(fortyTwo);\n// console.log(tfa);\n// console.log('in Profile Display');\n// // return true;\n// return (fortyTwo && tfa);\n// }\n// ]\n// }),\n// '/settings': wrap({\n// component: ProfileSettings,\n// conditions: [\n// (detail) => {\n// const { fortyTwo, tfa } = get(loginStatus);\n// // console.log(fortyTwo);\n// // console.log(tfa);\n// // return true;\n// return (fortyTwo && tfa);\n// }\n// ]\n// }),\n// '*': NotFound\n// };\n\n// what if i did /#/profile/:id for like not the user? and then based on that did a fetch?","\n\n
\n\n
\n \n
\n\n","\n\n\n\n\n","\n\n\n
\n

Potato Pong

\n \n

\n
Welcome to
\n
Potato Pong
\n

\n
\n\n\n\n\n\n\n\n","\n\n\n
\n

2FA Sign In

\n

use google authenticator

\n {#await fetchQrCodeImg}\n

Please Wait...

\n {:then data}\n \n \"A\n
\n \n \n
\n {#if wrongCode}\n \n
\n {wrongCode}\n
\n {/if}\n {:catch}\n

Unable to get QrCodeImg

\n {/await}\n
\n\n\n","\n\n
\n

You're not supposed to be here...

\n \n
\n\n","export { identity as linear } from '../internal/index.mjs';\n\n/*\nAdapted from https://github.com/mattdesl\nDistributed under MIT License https://github.com/mattdesl/eases/blob/master/LICENSE.md\n*/\nfunction backInOut(t) {\n const s = 1.70158 * 1.525;\n if ((t *= 2) < 1)\n return 0.5 * (t * t * ((s + 1) * t - s));\n return 0.5 * ((t -= 2) * t * ((s + 1) * t + s) + 2);\n}\nfunction backIn(t) {\n const s = 1.70158;\n return t * t * ((s + 1) * t - s);\n}\nfunction backOut(t) {\n const s = 1.70158;\n return --t * t * ((s + 1) * t + s) + 1;\n}\nfunction bounceOut(t) {\n const a = 4.0 / 11.0;\n const b = 8.0 / 11.0;\n const c = 9.0 / 10.0;\n const ca = 4356.0 / 361.0;\n const cb = 35442.0 / 1805.0;\n const cc = 16061.0 / 1805.0;\n const t2 = t * t;\n return t < a\n ? 7.5625 * t2\n : t < b\n ? 9.075 * t2 - 9.9 * t + 3.4\n : t < c\n ? ca * t2 - cb * t + cc\n : 10.8 * t * t - 20.52 * t + 10.72;\n}\nfunction bounceInOut(t) {\n return t < 0.5\n ? 0.5 * (1.0 - bounceOut(1.0 - t * 2.0))\n : 0.5 * bounceOut(t * 2.0 - 1.0) + 0.5;\n}\nfunction bounceIn(t) {\n return 1.0 - bounceOut(1.0 - t);\n}\nfunction circInOut(t) {\n if ((t *= 2) < 1)\n return -0.5 * (Math.sqrt(1 - t * t) - 1);\n return 0.5 * (Math.sqrt(1 - (t -= 2) * t) + 1);\n}\nfunction circIn(t) {\n return 1.0 - Math.sqrt(1.0 - t * t);\n}\nfunction circOut(t) {\n return Math.sqrt(1 - --t * t);\n}\nfunction cubicInOut(t) {\n return t < 0.5 ? 4.0 * t * t * t : 0.5 * Math.pow(2.0 * t - 2.0, 3.0) + 1.0;\n}\nfunction cubicIn(t) {\n return t * t * t;\n}\nfunction cubicOut(t) {\n const f = t - 1.0;\n return f * f * f + 1.0;\n}\nfunction elasticInOut(t) {\n return t < 0.5\n ? 0.5 *\n Math.sin(((+13.0 * Math.PI) / 2) * 2.0 * t) *\n Math.pow(2.0, 10.0 * (2.0 * t - 1.0))\n : 0.5 *\n Math.sin(((-13.0 * Math.PI) / 2) * (2.0 * t - 1.0 + 1.0)) *\n Math.pow(2.0, -10.0 * (2.0 * t - 1.0)) +\n 1.0;\n}\nfunction elasticIn(t) {\n return Math.sin((13.0 * t * Math.PI) / 2) * Math.pow(2.0, 10.0 * (t - 1.0));\n}\nfunction elasticOut(t) {\n return (Math.sin((-13.0 * (t + 1.0) * Math.PI) / 2) * Math.pow(2.0, -10.0 * t) + 1.0);\n}\nfunction expoInOut(t) {\n return t === 0.0 || t === 1.0\n ? t\n : t < 0.5\n ? +0.5 * Math.pow(2.0, 20.0 * t - 10.0)\n : -0.5 * Math.pow(2.0, 10.0 - t * 20.0) + 1.0;\n}\nfunction expoIn(t) {\n return t === 0.0 ? t : Math.pow(2.0, 10.0 * (t - 1.0));\n}\nfunction expoOut(t) {\n return t === 1.0 ? t : 1.0 - Math.pow(2.0, -10.0 * t);\n}\nfunction quadInOut(t) {\n t /= 0.5;\n if (t < 1)\n return 0.5 * t * t;\n t--;\n return -0.5 * (t * (t - 2) - 1);\n}\nfunction quadIn(t) {\n return t * t;\n}\nfunction quadOut(t) {\n return -t * (t - 2.0);\n}\nfunction quartInOut(t) {\n return t < 0.5\n ? +8.0 * Math.pow(t, 4.0)\n : -8.0 * Math.pow(t - 1.0, 4.0) + 1.0;\n}\nfunction quartIn(t) {\n return Math.pow(t, 4.0);\n}\nfunction quartOut(t) {\n return Math.pow(t - 1.0, 3.0) * (1.0 - t) + 1.0;\n}\nfunction quintInOut(t) {\n if ((t *= 2) < 1)\n return 0.5 * t * t * t * t * t;\n return 0.5 * ((t -= 2) * t * t * t * t + 2);\n}\nfunction quintIn(t) {\n return t * t * t * t * t;\n}\nfunction quintOut(t) {\n return --t * t * t * t * t + 1;\n}\nfunction sineInOut(t) {\n return -0.5 * (Math.cos(Math.PI * t) - 1);\n}\nfunction sineIn(t) {\n const v = Math.cos(t * Math.PI * 0.5);\n if (Math.abs(v) < 1e-14)\n return 1;\n else\n return 1 - v;\n}\nfunction sineOut(t) {\n return Math.sin((t * Math.PI) / 2);\n}\n\nexport { backIn, backInOut, backOut, bounceIn, bounceInOut, bounceOut, circIn, circInOut, circOut, cubicIn, cubicInOut, cubicOut, elasticIn, elasticInOut, elasticOut, expoIn, expoInOut, expoOut, quadIn, quadInOut, quadOut, quartIn, quartInOut, quartOut, quintIn, quintInOut, quintOut, sineIn, sineInOut, sineOut };\n","import { cubicInOut, linear, cubicOut } from '../easing/index.mjs';\nimport { is_function, assign } from '../internal/index.mjs';\n\n/******************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n\r\nfunction __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\n\nfunction blur(node, { delay = 0, duration = 400, easing = cubicInOut, amount = 5, opacity = 0 } = {}) {\n const style = getComputedStyle(node);\n const target_opacity = +style.opacity;\n const f = style.filter === 'none' ? '' : style.filter;\n const od = target_opacity * (1 - opacity);\n return {\n delay,\n duration,\n easing,\n css: (_t, u) => `opacity: ${target_opacity - (od * u)}; filter: ${f} blur(${u * amount}px);`\n };\n}\nfunction fade(node, { delay = 0, duration = 400, easing = linear } = {}) {\n const o = +getComputedStyle(node).opacity;\n return {\n delay,\n duration,\n easing,\n css: t => `opacity: ${t * o}`\n };\n}\nfunction fly(node, { delay = 0, duration = 400, easing = cubicOut, x = 0, y = 0, opacity = 0 } = {}) {\n const style = getComputedStyle(node);\n const target_opacity = +style.opacity;\n const transform = style.transform === 'none' ? '' : style.transform;\n const od = target_opacity * (1 - opacity);\n return {\n delay,\n duration,\n easing,\n css: (t, u) => `\n\t\t\ttransform: ${transform} translate(${(1 - t) * x}px, ${(1 - t) * y}px);\n\t\t\topacity: ${target_opacity - (od * u)}`\n };\n}\nfunction slide(node, { delay = 0, duration = 400, easing = cubicOut } = {}) {\n const style = getComputedStyle(node);\n const opacity = +style.opacity;\n const height = parseFloat(style.height);\n const padding_top = parseFloat(style.paddingTop);\n const padding_bottom = parseFloat(style.paddingBottom);\n const margin_top = parseFloat(style.marginTop);\n const margin_bottom = parseFloat(style.marginBottom);\n const border_top_width = parseFloat(style.borderTopWidth);\n const border_bottom_width = parseFloat(style.borderBottomWidth);\n return {\n delay,\n duration,\n easing,\n css: t => 'overflow: hidden;' +\n `opacity: ${Math.min(t * 20, 1) * opacity};` +\n `height: ${t * height}px;` +\n `padding-top: ${t * padding_top}px;` +\n `padding-bottom: ${t * padding_bottom}px;` +\n `margin-top: ${t * margin_top}px;` +\n `margin-bottom: ${t * margin_bottom}px;` +\n `border-top-width: ${t * border_top_width}px;` +\n `border-bottom-width: ${t * border_bottom_width}px;`\n };\n}\nfunction scale(node, { delay = 0, duration = 400, easing = cubicOut, start = 0, opacity = 0 } = {}) {\n const style = getComputedStyle(node);\n const target_opacity = +style.opacity;\n const transform = style.transform === 'none' ? '' : style.transform;\n const sd = 1 - start;\n const od = target_opacity * (1 - opacity);\n return {\n delay,\n duration,\n easing,\n css: (_t, u) => `\n\t\t\ttransform: ${transform} scale(${1 - (sd * u)});\n\t\t\topacity: ${target_opacity - (od * u)}\n\t\t`\n };\n}\nfunction draw(node, { delay = 0, speed, duration, easing = cubicInOut } = {}) {\n let len = node.getTotalLength();\n const style = getComputedStyle(node);\n if (style.strokeLinecap !== 'butt') {\n len += parseInt(style.strokeWidth);\n }\n if (duration === undefined) {\n if (speed === undefined) {\n duration = 800;\n }\n else {\n duration = len / speed;\n }\n }\n else if (typeof duration === 'function') {\n duration = duration(len);\n }\n return {\n delay,\n duration,\n easing,\n css: (t, u) => `stroke-dasharray: ${t * len} ${u * len}`\n };\n}\nfunction crossfade(_a) {\n var { fallback } = _a, defaults = __rest(_a, [\"fallback\"]);\n const to_receive = new Map();\n const to_send = new Map();\n function crossfade(from, node, params) {\n const { delay = 0, duration = d => Math.sqrt(d) * 30, easing = cubicOut } = assign(assign({}, defaults), params);\n const to = node.getBoundingClientRect();\n const dx = from.left - to.left;\n const dy = from.top - to.top;\n const dw = from.width / to.width;\n const dh = from.height / to.height;\n const d = Math.sqrt(dx * dx + dy * dy);\n const style = getComputedStyle(node);\n const transform = style.transform === 'none' ? '' : style.transform;\n const opacity = +style.opacity;\n return {\n delay,\n duration: is_function(duration) ? duration(d) : duration,\n easing,\n css: (t, u) => `\n\t\t\t\topacity: ${t * opacity};\n\t\t\t\ttransform-origin: top left;\n\t\t\t\ttransform: ${transform} translate(${u * dx}px,${u * dy}px) scale(${t + (1 - t) * dw}, ${t + (1 - t) * dh});\n\t\t\t`\n };\n }\n function transition(items, counterparts, intro) {\n return (node, params) => {\n items.set(params.key, {\n rect: node.getBoundingClientRect()\n });\n return () => {\n if (counterparts.has(params.key)) {\n const { rect } = counterparts.get(params.key);\n counterparts.delete(params.key);\n return crossfade(rect, node, params);\n }\n // if the node is disappearing altogether\n // (i.e. wasn't claimed by the other list)\n // then we need to supply an outro\n items.delete(params.key);\n return fallback && fallback(node, params, intro);\n };\n };\n }\n return [\n transition(to_send, to_receive, false),\n transition(to_receive, to_send, true)\n ];\n}\n\nexport { blur, crossfade, draw, fade, fly, scale, slide };\n","\nexport\tconst CanvasWidth = 1500;\nexport\tconst CanvasRatio = 1.66666;\n/* ratio 5/3 (1.66) */\n\nexport\tconst w = CanvasWidth;\nexport\tconst h = CanvasWidth / CanvasRatio;\nexport\tconst w_mid = Math.floor(w/2);\nexport\tconst h_mid = Math.floor(h/2);\nexport\tconst pw = Math.floor(w*0.017);\nexport\tconst ph = pw*6;\nexport\tconst ballSize = pw;\nexport\tconst wallSize = Math.floor(w*0.01);\nexport\tconst racketSpeed = Math.floor(w*0.60); // pixel per second\nexport\tconst ballSpeed = Math.floor(w*0.55); // pixel per second\nexport\tconst ballSpeedIncrease = Math.floor(ballSpeed*0.05); // pixel per second\n\nexport\tconst normalizedSpeed = false; // for consistency in speed independent of direction\n\nexport\tconst matchStartDelay = 3000; // millisecond\nexport\tconst newRoundDelay = 1500; // millisecond\n\n// Game Variantes\nexport\tconst multiBallsCount = 3;\nexport\tconst movingWallPosMax = Math.floor(w*0.12);\nexport\tconst movingWallSpeed = Math.floor(w*0.08);\n\n\nexport\tconst gameSessionIdPLACEHOLDER = \"match-id-test-42\"; // TESTING SPECTATOR PLACEHOLDER\n// for testing, force gameSession.id in wsServer.ts->createGameSession()\n","\nimport { w } from \"../shared_js/constants.js\"\nexport * from \"../shared_js/constants.js\"\n\nexport\tconst midLineSize = Math.floor(w/150);\nexport\tconst scoreSize = Math.floor(w/16); \nexport\tconst gridSize = Math.floor(w/500);\n\n// min interval on Firefox seems to be 15. Chrome can go lower.\nexport\tconst handleInputIntervalMS = 15; // millisecond\nexport\tconst sendLoopIntervalMS = 15; // millisecond // unused\nexport\tconst gameLoopIntervalMS = 15; // millisecond\nexport\tconst drawLoopIntervalMS = 15; // millisecond\n\nexport\tconst fixedDeltaTime = gameLoopIntervalMS/1000; // second\n\nexport\tconst soundRobloxVolume = 0.3; // between 0 and 1\nexport\tconst soundPongVolume = 0.3; // between 0 and 1\n","\nexport enum EventTypes {\n\t// Class Implemented\n\tgameUpdate = 1,\n\tscoreUpdate,\n\tmatchEnd,\n\tassignId,\n\tmatchmakingComplete,\n\terror,\n\n\t// Generic\n\tmatchmakingInProgress,\n\tmatchStart,\n\tmatchAbort,\n\tmatchNewRound, // unused\n\tmatchPause, // unused\n\tmatchResume, // unused\n\n\t// Client\n\tclientAnnounce,\n\tclientPlayerReady,\n\tclientSpectatorReady,\n\tclientInput,\n\n}\n\nexport enum InputEnum {\n\tnoInput = 0,\n\tup = 1,\n\tdown,\n}\n\nexport enum PlayerSide {\n\tnoSide = 0,\n\tleft = 1,\n\tright\n}\n\nexport enum ClientRole {\n\tplayer = 1,\n\tspectator\n}\n\nexport enum MatchOptions {\n\t// binary flags, can be mixed\n\tnoOption = 0b0,\n\tmultiBalls = 1 << 0,\n\tmovingWalls = 1 << 1\n}\n","\nimport * as en from \"../shared_js/enums.js\";\nimport type { GameArea } from \"./class/GameArea.js\";\nimport type { GameComponentsClient } from \"./class/GameComponentsClient.js\";\n\nexport let pong: GameArea;\nexport let gc: GameComponentsClient;\nexport let matchOptions: en.MatchOptions = en.MatchOptions.noOption;\n\nexport function setPong(value: GameArea) {\n\tpong = value;\n}\n\nexport function setGc(value: GameComponentsClient) {\n\tgc = value;\n}\n\nexport function setMatchOptions(value: en.MatchOptions) {\n\tmatchOptions = value;\n}\n\nexport let startFunction: () => void;\n\nexport function setStartFunction(value: () => void) {\n\tstartFunction = value;\n}\n","\nimport * as en from \"../enums.js\"\n\n/* From Server */\nexport class ServerEvent {\n\ttype: en.EventTypes;\n\tconstructor(type: en.EventTypes = 0) {\n\t\tthis.type = type;\n\t}\n}\n\nexport class EventAssignId extends ServerEvent {\n\tid: string;\n\tconstructor(id: string) {\n\t\tsuper(en.EventTypes.assignId);\n\t\tthis.id = id;\n\t}\n}\n\nexport class EventMatchmakingComplete extends ServerEvent {\n\tside: en.PlayerSide;\n\tconstructor(side: en.PlayerSide) {\n\t\tsuper(en.EventTypes.matchmakingComplete);\n\t\tthis.side = side;\n\t}\n}\n\nexport class EventGameUpdate extends ServerEvent {\n\tplayerLeft = {\n\t\ty: 0\n\t};\n\tplayerRight = {\n\t\ty: 0\n\t};\n\tballsArr: {\n\t\tx: number,\n\t\ty: number,\n\t\tdirX: number,\n\t\tdirY: number,\n\t\tspeed: number\n\t}[] = [];\n\twallTop? = {\n\t\ty: 0\n\t};\n\twallBottom? = {\n\t\ty: 0\n\t};\n\tlastInputId = 0;\n\tconstructor() { // TODO: constructor that take GameComponentsServer maybe ?\n\t\tsuper(en.EventTypes.gameUpdate);\n\t}\n}\n\nexport class EventScoreUpdate extends ServerEvent {\n\tscoreLeft: number;\n\tscoreRight: number;\n\tconstructor(scoreLeft: number, scoreRight: number) {\n\t\tsuper(en.EventTypes.scoreUpdate);\n\t\tthis.scoreLeft = scoreLeft;\n\t\tthis.scoreRight = scoreRight;\n\t}\n}\n\nexport class EventMatchEnd extends ServerEvent {\n\twinner: en.PlayerSide;\n\tforfeit: boolean;\n\tconstructor(winner: en.PlayerSide, forfeit = false) {\n\t\tsuper(en.EventTypes.matchEnd);\n\t\tthis.winner = winner;\n\t\tthis.forfeit = forfeit;\n\t}\n}\n\nexport class EventMatchAbort extends ServerEvent {\n\tconstructor() {\n\t\tsuper(en.EventTypes.matchAbort);\n\t}\n}\n\nexport class EventError extends ServerEvent {\n\tmessage: string;\n\tconstructor(message: string) {\n\t\tsuper(en.EventTypes.error);\n\t\tthis.message = message;\n\t}\n}\n\n\n/* From Client */\nexport class ClientEvent {\n\ttype: en.EventTypes; // readonly ?\n\tconstructor(type: en.EventTypes = 0) {\n\t\tthis.type = type;\n\t}\n}\n\nexport class ClientAnnounce extends ClientEvent {\n\trole: en.ClientRole;\n\tconstructor(role: en.ClientRole) {\n\t\tsuper(en.EventTypes.clientAnnounce);\n\t\tthis.role = role;\n\t}\n}\n\nexport class ClientAnnouncePlayer extends ClientAnnounce {\n\tclientId: string; // unused\n\tmatchOptions: en.MatchOptions;\n\ttoken: string;\n\tusername: string;\n\tprivateMatch: boolean;\n\tplayerTwoUsername?: string;\n\tisInvitedPerson? : boolean;\n\tconstructor(matchOptions: en.MatchOptions, token: string, username: string, privateMatch: boolean = false, playerTwoUsername?: string, isInvitedPerson? : boolean) {\n\t\tsuper(en.ClientRole.player);\n\t\tthis.matchOptions = matchOptions;\n\t\tthis.token = token;\n\t\tthis.username = username;\n\t\tthis.privateMatch = privateMatch;\n\t\tif (isInvitedPerson) {\n\t\t\tthis.isInvitedPerson = isInvitedPerson;\n\t\t}\n\t\tif (playerTwoUsername) {\n\t\t\tthis.playerTwoUsername = playerTwoUsername;\n\t\t}\n\t}\n}\n\nexport class ClientAnnounceSpectator extends ClientAnnounce {\n\tgameSessionId: string;\n\tconstructor(gameSessionId: string) {\n\t\tsuper(en.ClientRole.spectator);\n\t\tthis.gameSessionId = gameSessionId;\n\t}\n}\n\nexport class EventInput extends ClientEvent {\n\tinput: en.InputEnum;\n\tid: number;\n\tconstructor(input: en.InputEnum = en.InputEnum.noInput, id: number = 0) {\n\t\tsuper(en.EventTypes.clientInput);\n\t\tthis.input = input;\n\t\tthis.id = id;\n\t}\n}\n","\nimport * as c from \"./constants.js\"\nimport { gc, pong } from \"./global.js\"\nimport * as en from \"../shared_js/enums.js\"\n\n/*\n\tbefore game\n*/\nexport function error(message: string)\n{\n\tconsole.log(\"msg.error()\");\n\tpong.clear();\n\tconst text = \"error: \" + message;\n\tconsole.log(text);\n\tgc.text2.clear();\n\tgc.text2.pos.assign(c.w*0.2, c.h*0.5);\n\tgc.text2.text = text;\n\tgc.text2.update();\n}\n\nexport function matchmaking()\n{\n\tconst text = \"searching...\";\n\tconsole.log(text);\n\tgc.text1.clear();\n\tgc.text1.pos.assign(c.w*0.2, c.h*0.5);\n\tgc.text1.text = text;\n\tgc.text1.update();\n}\n\nexport function matchmakingComplete()\n{\n\tconst text = \"match found !\";\n\tconsole.log(text);\n\tgc.text1.clear();\n\tgc.text1.pos.assign(c.w*0.15, c.h*0.5);\n\tgc.text1.text = text;\n\tgc.text1.update();\n}\n\nexport function matchAbort()\n{\n\tconst text = \"match abort\";\n\tconsole.log(text);\n\tgc.text1.clear();\n\tgc.text1.pos.assign(c.w*0.15, c.h*0.5);\n\tgc.text1.text = text;\n\tgc.text1.update();\n\n\tsetTimeout(() => {\n\t\tgc.text2.pos.assign(c.w*0.44, c.h*0.6);\n\t\tgc.text2.text = \"pardon =(\";\n\t\tconst oriSize = gc.text2.size;\n\t\tgc.text2.size = c.w*0.025;\n\t\tgc.text2.update();\n\t\tgc.text2.size = oriSize;\n\t}, 2500);\n}\n\n\n/*\n\tin game\n*/\nexport function win()\n{\n\tgc.text1.pos.assign(c.w*0.415, c.h*0.5);\n\tgc.text1.text = \"WIN\";\n}\n\nexport function lose()\n{\n\tgc.text1.pos.assign(c.w*0.383, c.h*0.5);\n\tgc.text1.text = \"LOSE\";\n}\n\nexport function forfeit(playerSide: en.PlayerSide)\n{\n\tif (playerSide === en.PlayerSide.left) {\n\t\tgc.text2.pos.assign(c.w*0.65, c.h*0.42);\n\t\tgc.text3.pos.assign(c.w*0.65, c.h*0.52);\n\t}\n\telse {\n\t\tgc.text2.pos.assign(c.w*0.09, c.h*0.42);\n\t\tgc.text3.pos.assign(c.w*0.09, c.h*0.52);\n\t}\n\tsetTimeout(() => {\n\t\tgc.text2.text = \"par forfait\";\n\t}, 1500);\n\tsetTimeout(() => {\n\t\tgc.text3.text = \"calme ta joie\";\n\t}, 3500);\t\n}\n","\nimport * as c from \"./constants.js\"\n\n// export const soundPongArr: HTMLAudioElement[] = [];\nexport let muteFlag: boolean;\nexport const soundPongArr: HTMLAudioElement[] = [];\nexport let soundRoblox: HTMLAudioElement;\n\nexport function initAudio(sound: string)\n{\n\tsoundPongArr.length = 0;\n\tsoundRoblox = null;\n\n\tif (sound === \"on\") {\n\t\tmuteFlag = false;\n\t}\n\telse {\n\t\tmuteFlag = true;\n\t\treturn; // Could be changed\n\t\t/*\n\t\t\tStop initAudio() here because in the current state of the game\n\t\t\tthere no way to change muteFlag after game start.\n\t\t\tIf it becomes an option,\n\t\t\twe should continue initAudio() regardless of the muteFlag.\n\t\t*/\n\t}\n\n\tsoundPongArr.push(new Audio(\"http://\" + process.env.WEBSITE_HOST + \":\" + process.env.WEBSITE_PORT + \"/sound/pong/\"+1+\".ogg\"));\n\tsoundPongArr.push(new Audio(\"http://\" + process.env.WEBSITE_HOST + \":\" + process.env.WEBSITE_PORT + \"/sound/pong/\"+2+\".ogg\"));\n\tsoundPongArr.forEach((value) => {\n\t\tvalue.volume = c.soundRobloxVolume;\n\t\tvalue.muted = muteFlag;\n\t});\n\n\tsoundRoblox = new Audio(\"http://\" + process.env.WEBSITE_HOST + \":\" + process.env.WEBSITE_PORT + \"/sound/roblox-oof.ogg\");\n\tsoundRoblox.volume = c.soundRobloxVolume;\n\tsoundRoblox.muted = muteFlag;\n}\n","\nimport type { MovingRectangle } from \"./class/Rectangle.js\";\n\nexport function random(min: number = 0, max: number = 1) {\n\treturn Math.random() * (max - min) + min;\n}\n\nexport function sleep (ms: number) {\n\treturn new Promise((resolve) => setTimeout(resolve, ms));\n}\n\nexport function clamp(n: number, min: number, max: number) : number\n{\n\tif (n < min)\n\t\tn = min;\n\telse if (n > max)\n\t\tn = max;\n\treturn (n);\n}\n\n// Typescript hack, unused\nexport function assertMovingRectangle(value: unknown): asserts value is MovingRectangle {\n\t// if (value !== MovingRectangle) throw new Error(\"Not a MovingRectangle\");\n\treturn;\n}\n","\nexport * from \"../shared_js/utils.js\"\n\nexport function countdown(count: number, step: number, callback: (count: number) => void, endCallback?: () => void) : number[]\n{\n\tconst timeoutArr: number[] = [];\n\t\n\tif (endCallback) {\n\t\ttimeoutArr.push( window.setTimeout(endCallback, count) );\n\t}\n\n\tlet reverseCount = 0;\n\twhile (count > 0)\n\t{\n\t\ttimeoutArr.push( window.setTimeout((count: number) => {\n\t\t\tconsole.log(\"countdown \", count);\n\t\t\tcallback(count);\n\t\t}, reverseCount, count)\n\t\t);\n\t\tcount -= step;\n\t\treverseCount += step;\n\t}\n\n\treturn timeoutArr;\n}\n","\nexport class Vector {\n\tx: number;\n\ty: number;\n\tconstructor(x: number = 0, y: number = 0) {\n\t\tthis.x = x;\n\t\tthis.y = y;\n\t}\n\tassign(x: number, y: number) {\n\t\tthis.x = x;\n\t\tthis.y = y;\n\t}\n\tnormalized() : Vector {\n\t\tconst normalizationFactor = Math.abs(this.x) + Math.abs(this.y);\n\t\treturn new Vector(this.x/normalizationFactor, this.y/normalizationFactor);\n\t}\n}\n\nexport class VectorInteger extends Vector {\n\t// PLACEHOLDER\n\t// VectorInteger with set/get dont work (No draw on the screen). Why ?\n}\n\n/* \nexport class VectorInteger {\n\t// private _x: number = 0;\n\t// private _y: number = 0;\n\t// constructor(x: number = 0, y: number = 0) {\n\t// \tthis._x = x;\n\t// \tthis._y = y;\n\t// }\n\t// get x(): number {\n\t// \treturn this._x;\n\t// }\n\t// set x(v: number) {\n\t// \t// this._x = Math.floor(v);\n\t// \tthis._x = v;\n\t// }\n\t// get y(): number {\n\t// \treturn this._y;\n\t// }\n\t// set y(v: number) {\n\t// \t// this._y = Math.floor(v);\n\t// \tthis._y = v;\n\t// }\n}\n*/\n","\nimport * as c from \"./constants.js\"\nimport { gc, matchOptions, startFunction } from \"./global.js\"\nimport * as ev from \"../shared_js/class/Event.js\"\nimport * as en from \"../shared_js/enums.js\"\nimport * as msg from \"./message.js\";\nimport type { RacketClient } from \"./class/RectangleClient.js\";\nimport { repeatInput } from \"./handleInput.js\";\nimport { muteFlag, soundRoblox } from \"./audio.js\"\nimport { sleep } from \"./utils.js\";\nimport { Vector, VectorInteger } from \"../shared_js/class/Vector.js\";\n\nexport const gameState = {\n\tmatchStarted: false,\n\tmatchEnded: false,\n\tmatchAborted: false\n}\n\nexport function resetGameState() {\n\tgameState.matchStarted = false;\n\tgameState.matchEnded = false;\n\tgameState.matchAborted = false;\n}\n\nclass ClientInfo {\n\tid = \"\";\n\tside: en.PlayerSide;\n\tracket: RacketClient;\n\topponent: RacketClient;\n\topponentNextPos: VectorInteger;\n}\n\nclass ClientInfoSpectator {\n\t// side: en.PlayerSide;\n\t/* WIP: playerLeftNextPos and playerRightNextPos could be in clientInfo for simplicity */\n\tplayerLeftNextPos: VectorInteger;\n\tplayerRightNextPos: VectorInteger;\n}\n\nconst wsUrl = \"ws://\" + process.env.WEBSITE_HOST + \":\" + process.env.WEBSITE_PORT + \"/pong\";\nexport let socket: WebSocket;\nexport const clientInfo = new ClientInfo();\nexport const clientInfoSpectator = new ClientInfoSpectator(); // WIP, could refactor this\n\n\nexport function initWebSocket(options: en.MatchOptions, token: string, username: string, privateMatch = false, playerTwoUsername?: string, isInvitedPerson? : boolean)\n{\n\tsocket = new WebSocket(wsUrl, \"json\");\n\tconsole.log(\"Infos from ws.ts : options => \" + options + \" token => \" + token + \" username => \" + username + \" priavte match => \" + privateMatch\n\t + \" player two => \" + playerTwoUsername)\n\tsocket.addEventListener(\"open\", (event) => {\n\t\tif (privateMatch) {\n\t\t\tsocket.send(JSON.stringify( new ev.ClientAnnouncePlayer(options, token, username, privateMatch, playerTwoUsername, isInvitedPerson) ));\n\t\t}\n\t\telse {\n\t\t\tsocket.send(JSON.stringify( new ev.ClientAnnouncePlayer(options, token, username) ));\n\t\t}\n\t});\n\t// socket.addEventListener(\"message\", logListener); // for testing purpose\n\tsocket.addEventListener(\"message\", errorListener);\n\tsocket.addEventListener(\"message\", preMatchListener);\n}\n\nfunction logListener(this: WebSocket, event: MessageEvent) {\n\tconsole.log(\"%i: \" + event.data, Date.now());\n}\n\nfunction errorListener(this: WebSocket, event: MessageEvent) {\n\tconst data: ev.ServerEvent = JSON.parse(event.data);\n\tif (data.type === en.EventTypes.error) {\n\t\tconsole.log(\"actual Error\");\n\t\tmsg.error((data as ev.EventError).message);\n\t}\n}\n\nfunction preMatchListener(this: WebSocket, event: MessageEvent)\n{\n\tconst data: ev.ServerEvent = JSON.parse(event.data);\n\tswitch (data.type) {\n\t\tcase en.EventTypes.assignId:\n\t\t\tclientInfo.id = (data).id;\n\t\t\tbreak;\n\t\tcase en.EventTypes.matchmakingInProgress:\n\t\t\tmsg.matchmaking();\n\t\t\tbreak;\n\t\tcase en.EventTypes.matchmakingComplete:\n\t\t\tclientInfo.side = (data).side;\n\t\t\tif (clientInfo.side === en.PlayerSide.left)\n\t\t\t{\n\t\t\t\tclientInfo.racket = gc.playerLeft;\n\t\t\t\tclientInfo.opponent = gc.playerRight;\n\t\t\t}\n\t\t\telse if (clientInfo.side === en.PlayerSide.right)\n\t\t\t{\n\t\t\t\tclientInfo.racket = gc.playerRight;\n\t\t\t\tclientInfo.opponent = gc.playerLeft;\n\t\t\t}\n\t\t\tclientInfo.opponentNextPos = new VectorInteger(clientInfo.opponent.pos.x, clientInfo.opponent.pos.y);\n\t\t\tclientInfo.racket.color = \"darkgreen\"; // for testing purpose\n\t\t\tsocket.send(JSON.stringify( new ev.ClientEvent(en.EventTypes.clientPlayerReady) )); // TODO: set an interval/timeout to resend until matchStart response (in case of network problem)\n\t\t\tmsg.matchmakingComplete();\n\t\t\tbreak;\n\t\tcase en.EventTypes.matchStart:\n\t\t\tgameState.matchStarted = true;\n\t\t\tsocket.removeEventListener(\"message\", preMatchListener);\n\t\t\tsocket.addEventListener(\"message\", inGameListener);\n\t\t\tstartFunction();\n\t\t\tbreak;\n\t\tcase en.EventTypes.matchAbort:\n\t\t\tgameState.matchAborted = true;\n\t\t\tsocket.removeEventListener(\"message\", preMatchListener);\n\t\t\tmsg.matchAbort();\n\t\t\tbreak;\n\t}\n}\n\nfunction inGameListener(this: WebSocket, event: MessageEvent)\n{\n\tconst data: ev.ServerEvent = JSON.parse(event.data);\n\tswitch (data.type) {\n\t\tcase en.EventTypes.gameUpdate:\n\t\t\t// setTimeout(gameUpdate, 500, data as ev.EventGameUpdate); // artificial latency for testing purpose\n\t\t\tgameUpdate(data as ev.EventGameUpdate);\n\t\t\tbreak;\n\t\tcase en.EventTypes.scoreUpdate:\n\t\t\tscoreUpdate(data as ev.EventScoreUpdate);\n\t\t\tbreak;\n\t\tcase en.EventTypes.matchEnd:\n\t\t\tmatchEnd(data as ev.EventMatchEnd);\n\t\t\tbreak;\n\t}\n}\n\nfunction gameUpdate(data: ev.EventGameUpdate)\n{\n\tconsole.log(\"gameUpdate\");\n\n\tif (matchOptions & en.MatchOptions.movingWalls) {\n\t\tgc.wallTop.pos.y = data.wallTop.y;\n\t\tgc.wallBottom.pos.y = data.wallBottom.y;\n\t}\n\n\tdata.ballsArr.forEach((ball, i) => {\n\t\tgc.ballsArr[i].pos.assign(ball.x, ball.y);\n\t\tgc.ballsArr[i].dir.assign(ball.dirX, ball.dirY);\n\t\tgc.ballsArr[i].speed = ball.speed;\n\t});\n\t/* // Equivalent to\n\tgc.ballsArr.forEach((ball, i) => {\n\t\tball.pos.assign(data.ballsArr[i].x, data.ballsArr[i].y);\n\t\tball.dir.assign(data.ballsArr[i].dirX, data.ballsArr[i].dirY);\n\t\tball.speed = data.ballsArr[i].speed;\n\t}); */\n\n\tconst predictionPos = new VectorInteger(clientInfo.racket.pos.x, clientInfo.racket.pos.y); // debug\n\n\tif (clientInfo.side === en.PlayerSide.left) {\n\t\tclientInfo.racket.pos.assign(clientInfo.racket.pos.x, data.playerLeft.y);\n\t}\n\telse if (clientInfo.side === en.PlayerSide.right) {\n\t\tclientInfo.racket.pos.assign(clientInfo.racket.pos.x, data.playerRight.y);\n\t}\n\n\t// interpolation\n\tclientInfo.opponent.pos.assign(clientInfo.opponentNextPos.x, clientInfo.opponentNextPos.y);\n\tif (clientInfo.side === en.PlayerSide.left) {\n\t\tclientInfo.opponentNextPos.assign(clientInfo.opponent.pos.x, data.playerRight.y);\n\t}\n\telse if (clientInfo.side === en.PlayerSide.right) {\n\t\tclientInfo.opponentNextPos.assign(clientInfo.opponent.pos.x, data.playerLeft.y);\n\t}\n\n\tclientInfo.opponent.dir = new Vector(\n\t\tclientInfo.opponentNextPos.x - clientInfo.opponent.pos.x,\n\t\tclientInfo.opponentNextPos.y - clientInfo.opponent.pos.y\n\t);\n\n\tif (Math.abs(clientInfo.opponent.dir.x) + Math.abs(clientInfo.opponent.dir.y) !== 0) {\n\t\tclientInfo.opponent.dir = clientInfo.opponent.dir.normalized();\n\t}\n\n\t// server reconciliation\n\trepeatInput(data.lastInputId);\n\n\t// debug\n\tif (clientInfo.racket.pos.y > predictionPos.y + 1\n\t|| clientInfo.racket.pos.y < predictionPos.y - 1)\n\t{\n\t\tconsole.log(\n\t\t\t`Reconciliation error:\n\t\t\tserver y: ${data.playerLeft.y}\n\t\t\treconciliation y: ${clientInfo.racket.pos.y}\n\t\t\tprediction y: ${predictionPos.y}`\n\t\t\t);\n\t}\n}\n\nfunction scoreUpdate(data: ev.EventScoreUpdate)\n{\n\t// console.log(\"scoreUpdate\");\n\tif (!muteFlag)\n\t{\n\t\tif (clientInfo.side === en.PlayerSide.left && data.scoreRight > gc.scoreRight.value) {\n\t\t\tsoundRoblox.play();\n\t\t}\n\t\telse if (clientInfo.side === en.PlayerSide.right && data.scoreLeft > gc.scoreLeft.value) {\n\t\t\tsoundRoblox.play();\n\t\t}\n\t}\n\tgc.scoreLeft.value = data.scoreLeft;\n\tgc.scoreRight.value = data.scoreRight;\n}\n\nfunction matchEnd(data: ev.EventMatchEnd)\n{\n\tgameState.matchEnded = true;\n\tsocket.close();\n\tif (data.winner === clientInfo.side) {\n\t\tmsg.win();\n\t\tif (data.forfeit) {\n\t\t\tmsg.forfeit(clientInfo.side);\n\t\t}\n\t}\n\telse {\n\t\tmsg.lose();\n\t}\n}\n\n/* Spectator */\n\nexport function initWebSocketSpectator(gameSessionId: string)\n{\n\tsocket = new WebSocket(wsUrl, \"json\");\n\tsocket.addEventListener(\"open\", (event) => {\n\t\tsocket.send(JSON.stringify( new ev.ClientAnnounceSpectator(gameSessionId) ));\n\t});\n\t// socket.addEventListener(\"message\", logListener); // for testing purpose\n\tsocket.addEventListener(\"message\", errorListener);\n\tsocket.addEventListener(\"message\", preMatchListenerSpectator);\n\n\tclientInfoSpectator.playerLeftNextPos = new VectorInteger(gc.playerLeft.pos.x, gc.playerLeft.pos.y);\n\tclientInfoSpectator.playerRightNextPos = new VectorInteger(gc.playerRight.pos.x, gc.playerRight.pos.y);\n\n}\n\nexport function preMatchListenerSpectator(this: WebSocket, event: MessageEvent)\n{\n\tconst data: ev.ServerEvent = JSON.parse(event.data);\n\tif (data.type === en.EventTypes.matchStart)\n\t{\n\t\tgameState.matchStarted = true;\n\t\tsocket.removeEventListener(\"message\", preMatchListenerSpectator);\n\t\tsocket.addEventListener(\"message\", inGameListenerSpectator);\n\t\tsocket.send(JSON.stringify( new ev.ClientEvent(en.EventTypes.clientSpectatorReady) ));\n\t\tstartFunction();\n\t}\n}\n\nfunction inGameListenerSpectator(this: WebSocket, event: MessageEvent)\n{\n\tconst data: ev.ServerEvent = JSON.parse(event.data);\n\tswitch (data.type) {\n\t\tcase en.EventTypes.gameUpdate:\n\t\t\tgameUpdateSpectator(data as ev.EventGameUpdate);\n\t\t\tbreak;\n\t\tcase en.EventTypes.scoreUpdate:\n\t\t\tscoreUpdateSpectator(data as ev.EventScoreUpdate);\n\t\t\tbreak;\n\t\tcase en.EventTypes.matchEnd:\n\t\t\tmatchEndSpectator(data as ev.EventMatchEnd);\n\t\t\tbreak;\n\t}\n}\n\nfunction gameUpdateSpectator(data: ev.EventGameUpdate)\n{\n\tconsole.log(\"gameUpdateSpectator\");\n\n\tif (matchOptions & en.MatchOptions.movingWalls) {\n\t\tgc.wallTop.pos.y = data.wallTop.y;\n\t\tgc.wallBottom.pos.y = data.wallBottom.y;\n\t}\n\n\tdata.ballsArr.forEach((ball, i) => {\n\t\tgc.ballsArr[i].pos.assign(ball.x, ball.y);\n\t\tgc.ballsArr[i].dir.assign(ball.dirX, ball.dirY);\n\t\tgc.ballsArr[i].speed = ball.speed;\n\t});\n\n\t// interpolation\n\tfor (const racket of [gc.playerLeft, gc.playerRight])\n\t{\n\t\tlet nextPos: VectorInteger;\n\t\tif (racket === gc.playerLeft) {\n\t\t\tnextPos = clientInfoSpectator.playerLeftNextPos;\n\t\t}\n\t\telse {\n\t\t\tnextPos = clientInfoSpectator.playerRightNextPos;\n\t\t}\n\n\t\tracket.pos.assign(nextPos.x, nextPos.y);\n\t\tif (racket === gc.playerLeft) {\n\t\t\tnextPos.assign(racket.pos.x, data.playerLeft.y);\n\t\t}\n\t\telse {\n\t\t\tnextPos.assign(racket.pos.x, data.playerRight.y);\n\t\t}\n\n\t\tracket.dir = new Vector(\n\t\t\tnextPos.x - racket.pos.x,\n\t\t\tnextPos.y - racket.pos.y\n\t\t);\n\n\t\tif (Math.abs(racket.dir.x) + Math.abs(racket.dir.y) !== 0) {\n\t\t\tracket.dir = racket.dir.normalized();\n\t\t}\n\t}\n}\n\nfunction scoreUpdateSpectator(data: ev.EventScoreUpdate)\n{\n\tconsole.log(\"scoreUpdateSpectator\");\n\tgc.scoreLeft.value = data.scoreLeft;\n\tgc.scoreRight.value = data.scoreRight;\n}\n\nfunction matchEndSpectator(data: ev.EventMatchEnd)\n{\n\tconsole.log(\"matchEndSpectator\");\n\tgameState.matchEnded = true;\n\tsocket.close();\n}\n\n","\nimport type * as en from \"../../shared_js/enums.js\"\nimport type * as ev from \"../../shared_js/class/Event.js\"\n\nexport class InputHistory {\n\tinput: en.InputEnum;\n\tid: number;\n\tdeltaTime: number;\n\tconstructor(inputState: ev.EventInput, deltaTime: number) {\n\t\tthis.input = inputState.input;\n\t\tthis.id = inputState.id;\n\t\tthis.deltaTime = deltaTime;\n\t}\n}\n","\nimport { pong, gc } from \"./global.js\"\nimport { socket, clientInfo, gameState } from \"./ws.js\"\nimport * as ev from \"../shared_js/class/Event.js\"\nimport * as en from \"../shared_js/enums.js\"\nimport { InputHistory } from \"./class/InputHistory.js\"\nimport * as c from \"./constants.js\";\n\nexport let gridDisplay = false;\n\nlet actual_time: number = Date.now();\nlet last_time: number;\nlet delta_time: number;\n\nconst inputState: ev.EventInput = new ev.EventInput();\nconst inputHistoryArr: InputHistory[] = [];\n\n// test\n/* export function sendLoop()\n{\n\tsocket.send(JSON.stringify(inputState));\n} */\n\nexport function handleInput()\n{\n\t/* last_time = actual_time;\n\tactual_time = Date.now();\n\tdelta_time = (actual_time - last_time) / 1000; */\n\n\tdelta_time = c.fixedDeltaTime;\n\t// console.log(`delta_time: ${delta_time}`);\n\n\tinputState.id = Date.now();\n\tinputState.input = en.InputEnum.noInput;\n\n\tconst keys = pong.keys;\n\tif (keys.length !== 0)\n\t{\n\t\tif (keys.indexOf(\"g\") != -1)\n\t\t{\n\t\t\tgridDisplay = !gridDisplay;\n\t\t\tpong.deleteKey(\"g\");\n\t\t}\n\t\tplayerMovements(delta_time, keys);\n\t}\n\n\tif (!gameState.matchEnded) {\n\t\tsocket.send(JSON.stringify(inputState));\n\t}\n\t// setTimeout(testInputDelay, 100);\n\tinputHistoryArr.push(new InputHistory(inputState, delta_time));\n\n\t// client prediction\n\tif (inputState.input !== en.InputEnum.noInput) {\n\t\t// TODO: peut-etre le mettre dans game loop ?\n\t\t// Attention au delta time dans ce cas !\n\t\tplayerMovePrediction(delta_time, inputState.input);\n\t}\n}\n\nfunction playerMovements(delta: number, keys: string[])\n{\n\tif (keys.indexOf(\"w\") !== -1 || keys.indexOf(\"ArrowUp\".toLowerCase()) !== -1)\n\t{\n\t\tif (keys.indexOf(\"s\") === -1 && keys.indexOf(\"ArrowDown\".toLowerCase()) === -1) {\n\t\t\tinputState.input = en.InputEnum.up;\n\t\t}\n\t}\n\telse if (keys.indexOf(\"s\") !== -1 || keys.indexOf(\"ArrowDown\".toLowerCase()) !== -1) {\n\t\tinputState.input = en.InputEnum.down;\n\t}\n}\n\nfunction testInputDelay() {\n\tsocket.send(JSON.stringify(inputState));\n}\n\n\nfunction playerMovePrediction(delta: number, input: en.InputEnum)\n{\n\t// client prediction\n\tconst racket = clientInfo.racket;\n\tif (input === en.InputEnum.up) {\n\t\tracket.dir.y = -1;\n\t}\n\telse if (input === en.InputEnum.down) {\n\t\tracket.dir.y = 1;\n\t}\n\tracket.moveAndCollide(delta, [gc.wallTop, gc.wallBottom]);\n}\n\nexport function repeatInput(lastInputId: number)\n{\n\t// server reconciliation\n\tlet i = inputHistoryArr.findIndex((value: InputHistory) => {\n\t\tif (value.id === lastInputId) {\n\t\t\treturn true;\n\t\t}\n\t\treturn false;\n\t});\n\n\t// console.log(`inputHistory total: ${inputHistoryArr.length}` );\n\tinputHistoryArr.splice(0, i+1);\n\t// console.log(`inputHistory left: ${inputHistoryArr.length}` );\n\t\n\tinputHistoryArr.forEach((value: InputHistory) => {\n\t\tif (value.input !== en.InputEnum.noInput) {\n\t\t\tplayerMovePrediction(value.deltaTime, value.input);\n\t\t}\n\t});\n}\n","\nimport * as c from \"./constants.js\";\nimport type { MovingRectangle } from \"../shared_js/class/Rectangle.js\";\nimport type { GameComponents } from \"./class/GameComponents.js\";\n\nexport function wallsMovements(delta: number, gc: GameComponents)\n{\n\tconst wallTop = gc.wallTop;\n\tconst wallBottom = gc.wallBottom;\n\tif (wallTop.pos.y <= 0 || wallTop.pos.y >= c.movingWallPosMax) {\n\t\twallTop.dir.y *= -1;\n\t}\n\tif (wallBottom.pos.y >= c.h-c.wallSize || wallBottom.pos.y <= c.h-c.movingWallPosMax) {\n\t\twallBottom.dir.y *= -1;\n\t}\n\twallTop.moveAndCollide(delta, [gc.playerLeft, gc.playerRight]);\n\twallBottom.moveAndCollide(delta, [gc.playerLeft, gc.playerRight]);\n}\n","\nimport * as c from \"./constants.js\";\nimport * as en from \"../shared_js/enums.js\"\nimport { gc, matchOptions } from \"./global.js\";\nimport { clientInfo, clientInfoSpectator} from \"./ws.js\";\nimport { wallsMovements } from \"../shared_js/wallsMovement.js\";\nimport type { RacketClient } from \"./class/RectangleClient.js\";\nimport type { VectorInteger } from \"../shared_js/class/Vector.js\";\n\nlet actual_time: number = Date.now();\nlet last_time: number;\nlet delta_time: number;\n\nexport function gameLoop()\n{\n\t/* last_time = actual_time;\n\tactual_time = Date.now();\n\tdelta_time = (actual_time - last_time) / 1000; */\n\n\tdelta_time = c.fixedDeltaTime;\n\t// console.log(`delta_gameLoop: ${delta_time}`);\n\n\t// interpolation\n\t// console.log(`dir.y: ${clientInfo.opponent.dir.y}, pos.y: ${clientInfo.opponent.pos.y}, opponentNextPos.y: ${clientInfo.opponentNextPos.y}`);\n\tif (clientInfo.opponent.dir.y != 0 ) {\n\t\tracketInterpolation(delta_time, clientInfo.opponent, clientInfo.opponentNextPos);\n\t}\n\n\t// client prediction\n\tgc.ballsArr.forEach((ball) => {\n\t\tball.moveAndBounce(delta_time, [gc.wallTop, gc.wallBottom, gc.playerLeft, gc.playerRight]);\n\t});\n\n\tif (matchOptions & en.MatchOptions.movingWalls) {\n\t\twallsMovements(delta_time, gc);\n\t}\n}\n\nexport function gameLoopSpectator()\n{\n\tdelta_time = c.fixedDeltaTime;\n\n\t// interpolation\n\tif (gc.playerLeft.dir.y != 0 ) {\n\t\tracketInterpolation(delta_time, gc.playerLeft, clientInfoSpectator.playerLeftNextPos);\n\t}\n\tif (gc.playerRight.dir.y != 0 ) {\n\t\tracketInterpolation(delta_time, gc.playerRight, clientInfoSpectator.playerRightNextPos);\n\t}\n\n\t// client prediction\n\tgc.ballsArr.forEach((ball) => {\n\t\tball.moveAndBounce(delta_time, [gc.wallTop, gc.wallBottom, gc.playerLeft, gc.playerRight]);\n\t});\n\n\tif (matchOptions & en.MatchOptions.movingWalls) {\n\t\twallsMovements(delta_time, gc);\n\t}\n}\n\nfunction racketInterpolation(delta: number, racket: RacketClient, nextPos: VectorInteger)\n{\n\t// interpolation\n\tracket.moveAndCollide(delta, [gc.wallTop, gc.wallBottom]);\n\n\tif ((racket.dir.y > 0 && racket.pos.y > nextPos.y)\n\t|| (racket.dir.y < 0 && racket.pos.y < nextPos.y))\n\t{\n\t\tracket.dir.y = 0;\n\t\tracket.pos.y = nextPos.y;\n\t}\n}\n","\nimport { pong, gc } from \"./global.js\"\nimport { gridDisplay } from \"./handleInput.js\";\n\nexport function drawLoop()\n{\n\tpong.clear();\n\t\n\tif (gridDisplay) {\n\t\tdrawGrid();\n\t}\n\n\tdrawStatic();\n\n\tgc.text1.update();\n\tgc.text2.update();\n\tgc.text3.update();\n\n\tdrawDynamic();\n}\n\nfunction drawDynamic()\n{\n\tgc.scoreLeft.update();\n\tgc.scoreRight.update();\n\tgc.playerLeft.update();\n\tgc.playerRight.update();\n\tgc.ballsArr.forEach((ball) => {\n\t\tball.update();\n\t});\n}\n\nfunction drawStatic()\n{\n\tgc.midLine.update();\n\tgc.wallTop.update();\n\tgc.wallBottom.update();\n}\n\nfunction drawGrid()\n{\n\tgc.w_grid_mid.update();\n\tgc.w_grid_u1.update();\n\tgc.w_grid_d1.update();\n\t\n\tgc.h_grid_mid.update();\n\tgc.h_grid_u1.update();\n\tgc.h_grid_d1.update();\n}\n","\nexport class InitOptions {\n\tsound = \"off\";\n\tmulti_balls = false;\n\tmoving_walls = false;\n\tisSomeoneIsInvited = false;\n\tisInvitedPerson = false;\n\tplayerOneUsername = \"\";\n\tplayerTwoUsername = \"\";\n\treset(playerOneUsername: string) {\n\t\tthis.sound = \"off\";\n\t\tthis.multi_balls = false;\n\t\tthis.moving_walls = false;\n\t\tthis.isSomeoneIsInvited = false;\n\t\tthis.isInvitedPerson = false;\n\t\tthis.playerOneUsername = playerOneUsername;\n\t\tthis.playerTwoUsername = \"\";\t\t\n\t}\n}\n","\nimport * as c from \".././constants.js\"\n\nexport class GameArea {\n\tkeys: string[] = [];\n\thandleInputInterval: number = 0;\n\tgameLoopInterval: number = 0;\n\tdrawLoopInterval: number = 0;\n\ttimeoutArr: number[] = [];\n\tcanvas: HTMLCanvasElement;\n\tctx: CanvasRenderingContext2D;\n\tconstructor(canvas_id: string) {\n\t\tconst canvas = document.getElementById(\"game_area\");\n\t\tif (canvas && canvas instanceof HTMLCanvasElement) {\n\t\t\tthis.canvas = canvas;\n\t\t}\n\t\telse {\n\t\t\tconsole.log(\"GameArea init error, invalid canvas_id\");\n\t\t\treturn;\n\t\t}\n\t\tthis.ctx = this.canvas.getContext(\"2d\") as CanvasRenderingContext2D;\n\t\tthis.canvas.width = c.CanvasWidth;\n\t\tthis.canvas.height = c.CanvasWidth / c.CanvasRatio;\n\t}\n\taddKey(key: string) {\n\t\tkey = key.toLowerCase();\n\t\tvar i = this.keys.indexOf(key);\n\t\tif (i == -1)\n\t\t\tthis.keys.push(key);\n\t}\n\tdeleteKey(key: string) {\n\t\tkey = key.toLowerCase();\n\t\tvar i = this.keys.indexOf(key);\n\t\tif (i != -1) {\n\t\t\tthis.keys.splice(i, 1);\n\t\t}\n\t}\n\tclear() {\n\t\tthis.ctx.clearRect(0, 0, this.canvas.width, this.canvas.height);\n\t}\n}\n","\nimport { Vector, VectorInteger } from \"../../shared_js/class/Vector.js\";\nimport type { Component } from \"../../shared_js/class/interface.js\";\n\n// conflict with Text\nexport class TextElem implements Component {\n\tctx: CanvasRenderingContext2D;\n\tpos: VectorInteger;\n\tcolor: string;\n\tsize: number;\n\tfont: string;\n\ttext: string = \"\";\n\tconstructor(pos: VectorInteger, size: number,\n\t\t\tctx: CanvasRenderingContext2D, color: string, font: string = \"Bit5x3\")\n\t{\n\t\t// this.pos = Object.assign({}, pos); // create bug, Uncaught TypeError: X is not a function\n\t\tthis.pos = new VectorInteger(pos.x, pos.y);\n\t\tthis.size = size;\n\t\tthis.ctx = ctx;\n\t\tthis.color = color;\n\t\tthis.font = font;\n\t}\n\tupdate() {\n\t\tthis.ctx.font = this.size + \"px\" + \" \" + this.font;\n\t\tthis.ctx.fillStyle = this.color;\n\t\tthis.ctx.fillText(this.text, this.pos.x, this.pos.y);\n\t}\n\tclear() {\n\t\t// clear no very accurate for Text \n\t\t// https://developer.mozilla.org/en-US/docs/Web/API/TextMetrics\n\t\tlet textMetric = this.ctx.measureText(this.text);\n\t\t// console.log(\"textMetric.width = \"+textMetric.width);\n\t\t// console.log(\"size = \"+this.size);\n\t\t// console.log(\"x = \"+this.pos.x);\n\t\t// console.log(\"y = \"+this.pos.y);\n\t\tthis.ctx.clearRect(this.pos.x - 1, this.pos.y-this.size + 1, textMetric.width, this.size);\n\t\t// +1 and -1 because float imprecision (and Math.floor() with VectorInteger dont work for the moment)\n\t\t// (or maybe its textMetric imprecision ?)\n\t}\n}\n\nexport class TextNumericValue extends TextElem {\n\tprivate _value: number = 0;\n\tconstructor(pos: VectorInteger, size: number,\n\t\t\tctx: CanvasRenderingContext2D, color: string, font?: string)\n\t{\n\t\tsuper(pos, size, ctx, color, font);\n\t}\n\tget value() {\n\t\treturn this._value;\n\t}\n\tset value(v: number) {\n\t\tthis._value = v;\n\t\tthis.text = v.toString();\n\t}\n}\n","\nimport { Vector, VectorInteger } from \"./Vector.js\";\nimport type { Component, Moving } from \"./interface.js\";\nimport * as c from \"../constants.js\"\n\nexport class Rectangle implements Component {\n\tpos: VectorInteger;\n\twidth: number;\n\theight: number;\n\tconstructor(pos: VectorInteger, width: number, height: number) {\n\t\tthis.pos = new VectorInteger(pos.x, pos.y);\n\t\tthis.width = width;\n\t\tthis.height = height;\n\t}\n\tcollision(collider: Rectangle): boolean {\n\t\tconst thisLeft = this.pos.x;\n\t\tconst thisRight = this.pos.x + this.width;\n\t\tconst thisTop = this.pos.y;\n\t\tconst thisBottom = this.pos.y + this.height;\n\t\tconst colliderLeft = collider.pos.x;\n\t\tconst colliderRight = collider.pos.x + collider.width;\n\t\tconst colliderTop = collider.pos.y;\n\t\tconst colliderBottom = collider.pos.y + collider.height;\n\t\tif ((thisBottom < colliderTop)\n\t\t|| (thisTop > colliderBottom)\n\t\t|| (thisRight < colliderLeft)\n\t\t|| (thisLeft > colliderRight)) {\n\t\t\treturn false;\n\t\t}\n\t\telse {\n\t\t\treturn true;\n\t\t}\n\t}\n}\n\nexport class MovingRectangle extends Rectangle implements Moving {\n\tdir: Vector = new Vector(0,0);\n\tspeed: number;\n\treadonly baseSpeed: number;\n\tconstructor(pos: VectorInteger, width: number, height: number, baseSpeed: number) {\n\t\tsuper(pos, width, height);\n\t\tthis.baseSpeed = baseSpeed;\n\t\tthis.speed = baseSpeed;\n\t}\n\tmove(delta: number) { // Math.floor WIP until VectorInteger debug\n\t\t// console.log(`delta: ${delta}, speed: ${this.speed}, speed*delta: ${this.speed * delta}`);\n\t\t// this.pos.x += Math.floor(this.dir.x * this.speed * delta);\n\t\t// this.pos.y += Math.floor(this.dir.y * this.speed * delta);\n\t\tthis.pos.x += this.dir.x * this.speed * delta;\n\t\tthis.pos.y += this.dir.y * this.speed * delta;\n\t}\n\tmoveAndCollide(delta: number, colliderArr: Rectangle[]) {\n\t\tthis._moveAndCollideAlgo(delta, colliderArr);\n\t}\n\tprotected _moveAndCollideAlgo(delta: number, colliderArr: Rectangle[]) {\n\t\tlet oldPos = new VectorInteger(this.pos.x, this.pos.y);\n\t\tthis.move(delta);\n\t\tif (colliderArr.some(this.collision, this)) {\n\t\t\tthis.pos = oldPos;\n\t\t}\n\t}\n}\n\nexport class Racket extends MovingRectangle {\n\tconstructor(pos: VectorInteger, width: number, height: number, baseSpeed: number) {\n\t\tsuper(pos, width, height, baseSpeed);\n\t}\n\tmoveAndCollide(delta: number, colliderArr: Rectangle[]) {\n\t\t// let oldPos = new VectorInteger(this.pos.x, this.pos.y); // debug\n\t\tthis._moveAndCollideAlgo(delta, colliderArr);\n\t\t// console.log(`y change: ${this.pos.y - oldPos.y}`);\n\t}\n}\n\nexport class Ball extends MovingRectangle {\n\treadonly speedIncrease: number;\n\tballInPlay: boolean = false;\n\tconstructor(pos: VectorInteger, size: number, baseSpeed: number, speedIncrease: number) {\n\t\tsuper(pos, size, size, baseSpeed);\n\t\tthis.speedIncrease = speedIncrease;\n\t}\n\tmoveAndBounce(delta: number, colliderArr: Rectangle[]) {\n\t\tthis.move(delta);\n\t\tlet i = colliderArr.findIndex(this.collision, this);\n\t\tif (i != -1)\n\t\t{\n\t\t\tthis.bounce(colliderArr[i]);\n\t\t\tthis.move(delta);\n\t\t}\n\t}\n\tbounce(collider?: Rectangle) {\n\t\tthis._bounceAlgo(collider);\n\t}\n\tprotected _bounceAlgo(collider?: Rectangle) {\n\t\t/* Could be more generic, but testing only Racket is enough,\n\t\tbecause in Pong collider can only be Racket or Wall. */\n\t\tif (collider instanceof Racket) {\n\t\t\tthis._bounceRacket(collider);\n\t\t}\n\t\telse {\n\t\t\tthis._bounceWall();\n\t\t}\n\t}\n\tprotected _bounceWall() { // Should be enough for Wall\n\t\tthis.dir.y = this.dir.y * -1;\n\t}\n\tprotected _bounceRacket(racket: Racket) {\n\t\tthis._bounceRacketAlgo(racket);\n\t}\n\tprotected _bounceRacketAlgo(racket: Racket) {\n\t\tthis.speed += this.speedIncrease;\n\n\t\tlet x = this.dir.x * -1;\n\n\t\tconst angleFactorDegree = 60;\n\t\tconst angleFactor = angleFactorDegree / 90;\n\t\tconst racketHalf = racket.height/2;\n\t\tconst ballMid = this.pos.y + this.height/2;\n\t\tconst racketMid = racket.pos.y + racketHalf;\n\n\t\tlet impact = ballMid - racketMid;\n\t\tconst horizontalMargin = racketHalf * 0.15;\n\t\tif (impact < horizontalMargin && impact > -horizontalMargin) {\n\t\t\timpact = 0;\n\t\t}\n\t\telse if (impact > 0) {\n\t\t\timpact = impact - horizontalMargin;\n\t\t}\n\t\telse if (impact < 0) {\n\t\t\timpact = impact + horizontalMargin;\n\t\t}\n\n\t\tlet y = impact / (racketHalf - horizontalMargin) * angleFactor;\n\n\t\tthis.dir.assign(x, y);\n\t\t// Normalize Vector (for consistency in speed independent of direction)\n\t\tif (c.normalizedSpeed) {\n\t\t\tthis.dir = this.dir.normalized();\n\t\t}\n\t\t// console.log(`x: ${this.dir.x}, y: ${this.dir.y}`);\n\t}\n}\n","\nimport { Vector, VectorInteger } from \"../../shared_js/class/Vector.js\";\nimport type { GraphicComponent } from \"../../shared_js/class/interface.js\";\nimport { Rectangle, MovingRectangle, Racket, Ball } from \"../../shared_js/class/Rectangle.js\";\nimport { muteFlag, soundPongArr } from \"../audio.js\"\nimport { random } from \"../utils.js\";\n\nfunction updateRectangle(this: RectangleClient) {\n\tthis.ctx.fillStyle = this.color;\n\tthis.ctx.fillRect(this.pos.x, this.pos.y, this.width, this.height);\n}\n\nfunction clearRectangle(this: RectangleClient, pos?: VectorInteger) {\n\tif (pos)\n\t\tthis.ctx.clearRect(pos.x, pos.y, this.width, this.height);\n\telse\n\t\tthis.ctx.clearRect(this.pos.x, this.pos.y, this.width, this.height);\n}\n\nexport class RectangleClient extends Rectangle implements GraphicComponent {\n\tctx: CanvasRenderingContext2D;\n\tcolor: string;\n\tupdate: () => void;\n\tclear: (pos?: VectorInteger) => void;\n\tconstructor(pos: VectorInteger, width: number, height: number,\n\t\t\tctx: CanvasRenderingContext2D, color: string)\n\t{\n\t\tsuper(pos, width, height);\n\t\tthis.ctx = ctx;\n\t\tthis.color = color;\n\t\tthis.update = updateRectangle;\n\t\tthis.clear = clearRectangle;\n\t}\n}\n\nexport class MovingRectangleClient extends MovingRectangle implements GraphicComponent {\n\tctx: CanvasRenderingContext2D;\n\tcolor: string;\n\tupdate: () => void;\n\tclear: (pos?: VectorInteger) => void;\n\tconstructor(pos: VectorInteger, width: number, height: number, baseSpeed: number,\n\t\t\tctx: CanvasRenderingContext2D, color: string)\n\t{\n\t\tsuper(pos, width, height, baseSpeed);\n\t\tthis.ctx = ctx;\n\t\tthis.color = color;\n\t\tthis.update = updateRectangle;\n\t\tthis.clear = clearRectangle;\n\t}\n}\n\nexport class RacketClient extends Racket implements GraphicComponent {\n\tctx: CanvasRenderingContext2D;\n\tcolor: string;\n\tupdate: () => void;\n\tclear: (pos?: VectorInteger) => void;\n\tconstructor(pos: VectorInteger, width: number, height: number, baseSpeed: number,\n\t\t\tctx: CanvasRenderingContext2D, color: string)\n\t{\n\t\tsuper(pos, width, height, baseSpeed);\n\t\tthis.ctx = ctx;\n\t\tthis.color = color;\n\t\tthis.update = updateRectangle;\n\t\tthis.clear = clearRectangle;\n\t}\n}\n\nexport class BallClient extends Ball implements GraphicComponent {\n\tctx: CanvasRenderingContext2D;\n\tcolor: string;\n\tupdate: () => void;\n\tclear: (pos?: VectorInteger) => void;\n\tsoundSwitch = false;\n\tconstructor(pos: VectorInteger, size: number, baseSpeed: number, speedIncrease: number,\n\t\tctx: CanvasRenderingContext2D, color: string)\n\t{\n\t\tsuper(pos, size, baseSpeed, speedIncrease);\n\t\tthis.ctx = ctx;\n\t\tthis.color = color;\n\t\tthis.update = updateRectangle;\n\t\tthis.clear = clearRectangle;\n\t}\n\tbounce(collider?: Rectangle) {\n\t\tthis._bounceAlgo(collider);\n\t\tif (!muteFlag)\n\t\t{\n\t\t\tthis.soundSwitch = !this.soundSwitch;\n\t\t\tsoundPongArr[this.soundSwitch ? 1 : 0].play();\n\t\t\t// let i = Math.floor(random(0, soundPongArr.length));\n\t\t\t// soundPongArr[ i ].play();\n\t\t\t// console.log(`sound_i=${i}`); // debug log\n\t\t}\n\t}\n}\n\nfunction updateLine(this: Line) {\n\tthis.ctx.fillStyle = this.color;\n\tlet pos: VectorInteger = new VectorInteger;\n\tlet i = 0;\n\twhile (i < this.segmentCount)\n\t{\n\t\t/* Horizontal Line */\n\t\t// pos.y = this.pos.y;\n\t\t// pos.x = this.pos.x + this.segmentWidth * i;\n\n\t\t/* Vertical Line */\n\t\tpos.x = this.pos.x;\n\t\tpos.y = this.pos.y + this.segmentHeight * i;\n\n\t\tthis.ctx.fillRect(pos.x, pos.y, this.segmentWidth, this.segmentHeight);\n\t\ti += 2;\n\t}\n}\n\nexport class Line extends RectangleClient {\n\tgapeCount: number = 0;\n\tsegmentCount: number;\n\tsegmentWidth: number;\n\tsegmentHeight: number;\n\tconstructor(pos: VectorInteger, width: number, height: number,\n\t\t\tctx: CanvasRenderingContext2D, color: string, gapeCount?: number)\n\t{\n\t\tsuper(pos, width, height, ctx, color);\n\t\tthis.update = updateLine;\n\t\tif (gapeCount)\n\t\t\tthis.gapeCount = gapeCount;\n\t\tthis.segmentCount = this.gapeCount * 2 + 1;\n\n\t\t/* Vertical Line */\n\t\tthis.segmentWidth = this.width;\n\t\tthis.segmentHeight = this.height / this.segmentCount;\n\n\t\t/* Horizontal Line */\n\t\t// this.segmentWidth = this.width / this.segmentCount;\n\t\t// this.segmentHeight = this.height;\n\t}\n}\n","\nimport * as c from \"../constants.js\"\nimport * as en from \"../../shared_js/enums.js\"\nimport { VectorInteger } from \"./Vector.js\";\nimport { Rectangle, MovingRectangle, Racket, Ball } from \"./Rectangle.js\";\nimport { random } from \"../utils.js\";\n\nexport class GameComponents {\n\twallTop: Rectangle | MovingRectangle;\n\twallBottom: Rectangle | MovingRectangle;\n\tplayerLeft: Racket;\n\tplayerRight: Racket;\n\tballsArr: Ball[] = [];\n\tconstructor(options: en.MatchOptions)\n\t{\n\t\tconst pos = new VectorInteger;\n\n\t\t// Rackets\n\t\tpos.assign(0+c.pw, c.h_mid-c.ph/2);\n\t\tthis.playerLeft = new Racket(pos, c.pw, c.ph, c.racketSpeed);\n\t\tpos.assign(c.w-c.pw-c.pw, c.h_mid-c.ph/2);\n\t\tthis.playerRight = new Racket(pos, c.pw, c.ph, c.racketSpeed);\n\t\n\t\t// Balls\n\t\tlet ballsCount = 1;\n\t\tif (options & en.MatchOptions.multiBalls) {\n\t\t\tballsCount = c.multiBallsCount;\n\t\t}\n\t\tpos.assign(-c.ballSize, -c.ballSize); // ball out =)\n\t\twhile (this.ballsArr.length < ballsCount) {\n\t\t\tthis.ballsArr.push(new Ball(pos, c.ballSize, c.ballSpeed, c.ballSpeedIncrease))\n\t\t}\n\t\tthis.ballsArr.forEach((ball) => {\n\t\t\tball.dir.x = 1;\n\t\t\tif (random() > 0.5) {\n\t\t\t\tball.dir.x *= -1;\n\t\t\t}\n\n\t\t\tball.dir.y = random(0, 0.2);\n\t\t\tif (random() > 0.5) {\n\t\t\t\tball.dir.y *= -1;\n\t\t\t}\n\n\t\t\tball.dir = ball.dir.normalized();\n\t\t});\n\n\t\t// Walls\n\t\tif (options & en.MatchOptions.movingWalls) {\n\t\t\tpos.assign(0, 0);\n\t\t\tthis.wallTop = new MovingRectangle(pos, c.w, c.wallSize, c.movingWallSpeed);\n\t\t\t(this.wallTop).dir.y = -1;\n\t\t\tpos.assign(0, c.h-c.wallSize);\n\t\t\tthis.wallBottom = new MovingRectangle(pos, c.w, c.wallSize, c.movingWallSpeed);\n\t\t\t(this.wallBottom).dir.y = 1;\n\t\t}\n\t\telse {\n\t\t\tpos.assign(0, 0);\n\t\t\tthis.wallTop = new Rectangle(pos, c.w, c.wallSize);\n\t\t\tpos.assign(0, c.h-c.wallSize);\n\t\t\tthis.wallBottom = new Rectangle(pos, c.w, c.wallSize);\n\t\t}\n\t}\n}\n","\nimport * as c from \"../constants.js\"\nimport * as en from \"../../shared_js/enums.js\"\nimport { Vector, VectorInteger } from \"../../shared_js/class/Vector.js\";\nimport { TextElem, TextNumericValue } from \"./Text.js\";\nimport { RectangleClient, MovingRectangleClient, RacketClient, BallClient, Line } from \"./RectangleClient.js\";\nimport { GameComponents } from \"../../shared_js/class/GameComponents.js\";\nimport type { MovingRectangle } from \"../../shared_js/class/Rectangle.js\";\n\nclass GameComponentsExtensionForClient extends GameComponents {\n\twallTop: RectangleClient | MovingRectangleClient;\n\twallBottom: RectangleClient | MovingRectangleClient;\n\tplayerLeft: RacketClient;\n\tplayerRight: RacketClient;\n\tballsArr: BallClient[];\n\tconstructor(options: en.MatchOptions, ctx: CanvasRenderingContext2D)\n\t{\n\t\tsuper(options);\n\n\t\t// Rackets\n\t\tconst basePL = this.playerLeft;\n\t\tconst basePR = this.playerRight;\n\t\tthis.playerLeft = new RacketClient(\n\t\tbasePL.pos, basePL.width, basePL.height, basePL.baseSpeed,\n\t\tctx, \"white\");\n\t\tthis.playerRight = new RacketClient(\n\t\tbasePR.pos, basePR.width, basePR.height, basePR.baseSpeed,\n\t\tctx, \"white\");\n\n\t\t// Balls\n\t\tconst newBallsArr: BallClient[] = [];\n\t\tthis.ballsArr.forEach((ball) => {\n\t\t\tnewBallsArr.push(new BallClient(ball.pos, ball.width, ball.baseSpeed, ball.speedIncrease,\n\t\t\tctx, \"white\")\n\t\t\t);\n\t\t});\n\t\tthis.ballsArr = newBallsArr;\n\n\t\t// Walls\n\t\tif (options & en.MatchOptions.movingWalls)\n\t\t{\n\t\t\tconst baseWT = this.wallTop;\n\t\t\tconst baseWB = this.wallBottom;\n\n\t\t\tthis.wallTop = new MovingRectangleClient(baseWT.pos, baseWT.width, baseWT.height, baseWT.baseSpeed,\n\t\t\tctx, \"grey\");\n\t\t\t(this.wallTop).dir.assign(baseWT.dir.x, baseWT.dir.y);\n\t\t\t\n\t\t\tthis.wallBottom = new MovingRectangleClient(baseWB.pos, baseWB.width, baseWB.height, baseWB.baseSpeed,\n\t\t\tctx, \"grey\");\n\t\t\t(this.wallBottom).dir.assign(baseWB.dir.x, baseWB.dir.y);\n\t\t}\n\t\telse\n\t\t{\n\t\t\tconst baseWT = this.wallTop;\n\t\t\tconst baseWB = this.wallBottom;\n\t\t\tthis.wallTop = new RectangleClient(baseWT.pos, baseWT.width, baseWT.height,\n\t\t\tctx, \"grey\");\n\t\t\tthis.wallBottom = new RectangleClient(baseWB.pos, baseWB.width, baseWB.height,\n\t\t\tctx, \"grey\");\n\t\t}\n\t}\n}\n\nexport class GameComponentsClient extends GameComponentsExtensionForClient {\n\tmidLine: Line;\n\tscoreLeft: TextNumericValue;\n\tscoreRight: TextNumericValue;\n\ttext1: TextElem;\n\ttext2: TextElem;\n\ttext3: TextElem;\n\n\tw_grid_mid: RectangleClient;\n\tw_grid_u1: RectangleClient;\n\tw_grid_d1: RectangleClient;\n\th_grid_mid: RectangleClient;\n\th_grid_u1: RectangleClient;\n\th_grid_d1: RectangleClient;\n\tconstructor(options: en.MatchOptions, ctx: CanvasRenderingContext2D)\n\t{\n\t\tsuper(options, ctx);\n\t\tlet pos = new VectorInteger;\n\t\t// Scores\n\t\tpos.assign(c.w_mid-c.scoreSize*1.6, c.scoreSize*1.5);\n\t\tthis.scoreLeft = new TextNumericValue(pos, c.scoreSize, ctx, \"white\");\n\t\tpos.assign(c.w_mid+c.scoreSize*1.1, c.scoreSize*1.5);\n\t\tthis.scoreRight = new TextNumericValue(pos, c.scoreSize, ctx, \"white\");\n\t\tthis.scoreLeft.value = 0;\n\t\tthis.scoreRight.value = 0;\n\t\t\n\t\t// Text\n\t\tpos.assign(0, c.h_mid);\n\t\tthis.text1 = new TextElem(pos, Math.floor(c.w/8), ctx, \"white\");\n\t\tthis.text2 = new TextElem(pos, Math.floor(c.w/24), ctx, \"white\");\n\t\tthis.text3 = new TextElem(pos, Math.floor(c.w/24), ctx, \"white\");\n\t\n\t\t// Dotted Midline\n\t\tpos.assign(c.w_mid-c.midLineSize/2, 0+c.wallSize);\n\t\tthis.midLine = new Line(pos, c.midLineSize, c.h-c.wallSize*2, ctx, \"white\", 15);\n\t\n\t\t// Grid\n\t\tpos.assign(0, c.h_mid);\n\t\tthis.w_grid_mid = new RectangleClient(pos, c.w, c.gridSize, ctx, \"darkgreen\");\n\t\tpos.assign(0, c.h/4);\n\t\tthis.w_grid_u1 = new RectangleClient(pos, c.w, c.gridSize, ctx, \"darkgreen\");\n\t\tpos.assign(0, c.h-c.h/4);\n\t\tthis.w_grid_d1 = new RectangleClient(pos, c.w, c.gridSize, ctx, \"darkgreen\");\n\t\tpos.assign(c.w_mid, 0);\n\t\tthis.h_grid_mid = new RectangleClient(pos, c.gridSize, c.h, ctx, \"darkgreen\");\n\t\tpos.assign(c.w/4, 0);\n\t\tthis.h_grid_u1 = new RectangleClient(pos, c.gridSize, c.h, ctx, \"darkgreen\");\n\t\tpos.assign(c.w-c.w/4, 0);\n\t\tthis.h_grid_d1 = new RectangleClient(pos, c.gridSize, c.h, ctx, \"darkgreen\");\n\t}\n}\n","\nimport * as c from \"./constants.js\"\nimport * as en from \"../shared_js/enums.js\"\nimport { GameArea } from \"./class/GameArea.js\";\nimport { GameComponentsClient } from \"./class/GameComponentsClient.js\";\nimport { socket, resetGameState } from \"./ws.js\";\nimport { initAudio } from \"./audio.js\";\nimport type { InitOptions } from \"./class/InitOptions.js\";\n\nimport { pong } from \"./global.js\"\nimport { setPong, setGc, setMatchOptions } from \"./global.js\"\n\nexport function computeMatchOptions(options: InitOptions)\n{\n\tlet matchOptions = en.MatchOptions.noOption;\n\n\tif (options.multi_balls === true) {\n\t\tmatchOptions |= en.MatchOptions.multiBalls\n\t}\n\tif (options.moving_walls === true) {\n\t\tmatchOptions |= en.MatchOptions.movingWalls\n\t}\n\n\treturn matchOptions;\n}\n\nexport function initBase(matchOptions: en.MatchOptions, sound: string, gameAreaId: string)\n{\n\tinitAudio(sound);\n\tsetMatchOptions(matchOptions);\n\tsetPong(new GameArea(gameAreaId));\n\tsetGc(new GameComponentsClient(matchOptions, pong.ctx));\n}\n\nexport function destroyBase()\n{\n\tif (socket && (socket.OPEN || socket.CONNECTING)) {\n\t\tsocket.close();\n\t}\n\tif (pong)\n\t{\n\t\tpong.timeoutArr.forEach((value) => {\n\t\t\tclearTimeout(value);\n\t\t});\n\t\tpong.timeoutArr = [];\n\n\t\tclearInterval(pong.handleInputInterval);\n\t\tpong.handleInputInterval = null;\n\n\t\tclearInterval(pong.gameLoopInterval);\n\t\tpong.gameLoopInterval = null;\n\n\t\tclearInterval(pong.drawLoopInterval);\n\t\tpong.drawLoopInterval = null;\n\n\t\tsetPong(null);\n\t}\n\tsetGc(null);\n\tsetMatchOptions(null);\n\tresetGameState();\n}\n","\nimport * as c from \"./constants.js\"\nimport type * as en from \"../shared_js/enums.js\"\nimport { handleInput } from \"./handleInput.js\";\nimport { gameLoop } from \"./gameLoop.js\"\nimport { drawLoop } from \"./draw.js\";\nimport { countdown } from \"./utils.js\";\nimport { gameState, initWebSocket } from \"./ws.js\";\nimport type { InitOptions } from \"./class/InitOptions.js\";\nexport { InitOptions } from \"./class/InitOptions.js\";\nimport { initBase, destroyBase, computeMatchOptions } from \"./init.js\";\nexport { computeMatchOptions } from \"./init.js\";\n\nimport { pong, gc } from \"./global.js\"\nimport { setStartFunction } from \"./global.js\"\n\nlet abortControllerKeydown: AbortController;\nlet abortControllerKeyup: AbortController;\n\nexport function init(matchOptions: en.MatchOptions, options: InitOptions, gameAreaId: string, token: string)\n{\n\tinitBase(matchOptions, options.sound, gameAreaId);\n\n\tsetStartFunction(start);\n\tif (options.isSomeoneIsInvited) {\n\t\tinitWebSocket(matchOptions, token, options.playerOneUsername, true, options.playerTwoUsername, options.isInvitedPerson);\n\t}\n\telse {\n\t\tinitWebSocket(matchOptions, token, options.playerOneUsername);\n\t}\n}\n\nexport function destroy()\n{\n\tdestroyBase();\n\tif (abortControllerKeydown) {\n\t\tabortControllerKeydown.abort();\n\t\tabortControllerKeydown = null;\n\t}\n\tif (abortControllerKeyup) {\n\t\tabortControllerKeyup.abort();\n\t\tabortControllerKeyup = null;\n\t}\n}\n\nfunction start()\n{\n\tgc.text1.pos.assign(c.w*0.5, c.h*0.75);\n\tconst countdownArr = countdown(c.matchStartDelay, 1000, (count: number) => {\n\t\tgc.text1.clear();\n\t\tgc.text1.text = `${count/1000}`;\n\t\tgc.text1.update();\n\t}, start_after_countdown);\n\tpong.timeoutArr = pong.timeoutArr.concat(countdownArr);\n}\n\nfunction start_after_countdown()\n{\n\tabortControllerKeydown = new AbortController();\n\twindow.addEventListener(\n\t\t'keydown',\n\t\t(e) => { pong.addKey(e.key); },\n\t\t{signal: abortControllerKeydown.signal}\n\t);\n\n\tabortControllerKeyup = new AbortController();\n\twindow.addEventListener(\n\t\t'keyup',\n\t\t(e) => { pong.deleteKey(e.key); },\n\t\t{signal: abortControllerKeyup.signal}\n\t);\n\n\tresume();\n}\n\nfunction resume()\n{\n\tgc.text1.text = \"\";\n\tpong.handleInputInterval = window.setInterval(handleInput, c.handleInputIntervalMS);\n\t// pong.handleInputInterval = window.setInterval(sendLoop, c.sendLoopIntervalMS);\n\tpong.gameLoopInterval = window.setInterval(gameLoop, c.gameLoopIntervalMS);\n\tpong.drawLoopInterval = window.setInterval(drawLoop, c.drawLoopIntervalMS);\n}\n\nfunction pause() // unused\n{\n\tclearInterval(pong.handleInputInterval);\n\tclearInterval(pong.gameLoopInterval);\n\tclearInterval(pong.drawLoopInterval);\n}\n","\n\n\n
\n\n
\n\n\t{#if showError}\n\t\t
\n\t\t\t
\n\t\t\t\tError\n\t\t\t\t

{errorMessage}

\n\t\t\t
\n\t\t
\n\t{/if}\n\n\t{#if !hiddenGame}\n\t\t{#if gameState.matchEnded}\n\t\t\t
\n\t\t\t\t

The match is finished !

\n\t\t\t
\n\t\t{:else if gameState.matchAborted}\n\t\t\t
\n\t\t\t\t

The match has been aborted

\n\t\t\t
\n\t\t{/if}\n\t{/if}\n\n\t\n\n\t{#if !hiddenGame}\n\t\t{#if gameState.matchStarted && !gameState.matchEnded}\n\t\t\t
\n\t\t\t\t\n\t\t\t
\n\t\t{:else if !gameState.matchStarted}\n\t\t\t
\n\t\t\t\t\n\t\t\t
\n\t\t{/if}\n\t{/if}\n\n\n\t{#if showWaitPage}\n\t\t
\n\t\t\t
\n\t\t\t\tConnecting to the game...\n\t\t\t\t

Please wait...

\n\t\t\t
\n\t\t
\n\t{/if}\n\n\n\n\t{#if optionsAreNotSet}\n\t\t{#if showGameOptions}\n\t\t\t
\n\t\t\t\t
\n\t\t\t\t\t\n\t\t\t\t\t
\n\t\t\t\t\t\tgame options\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t

sound :

\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
\n\t\t\t\t\t\t{#if options.isSomeoneIsInvited}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t{/if}\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t
\n\t\t\t
\n\t\t{/if}\n\n\t\t{#if showInvitations}\n\t\t\t
\n\t\t\t\t\n\t\t\t\t
\n\t\t\t\t\tinvitations\n\t\t\t\t\t\n\t\t\t\t\t{#if invitations.length !== 0}\n\t\t\t\t\t\t{#each invitations as invitation}\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t{invitation.playerOneUsername} has invited you to play a pong !\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t{/each}\n\t\t\t\t\t{:else}\n\t\t\t\t\t\t

Currently, no one asked to play with you.

\n\t\t\t\t\t{/if}\n\t\t\t\t
\n\t\t\t
\n\t\t{/if}\n\t{/if}\n\n
\n\n\n","\n\n
\n
\n\n
\n\t\n\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t\t\n\t\t\t{#each allUsers as user, i}\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t{#if user.username === currentUser.username}\n\t\t\t\t\t\t\n\t\t\t\t\t{:else}\n\t\t\t\t\t\n\t\t\t\t\t{/if}\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t{/each}\n\t\t\n\t
#UsernameWinLoseDrawGames Played
{i + 1}You ({user.username}){user.username}{user.stats.winGame}{user.stats.loseGame}{user.stats.drawGame}{user.stats.totalGame}
\n
\n\n\n","\nimport * as c from \"./constants.js\"\nimport type * as en from \"../shared_js/enums.js\"\nimport { gameLoopSpectator } from \"./gameLoop.js\"\nimport { drawLoop } from \"./draw.js\";\nimport { initWebSocketSpectator } from \"./ws.js\";\nimport { initBase, destroyBase, computeMatchOptions } from \"./init.js\";\nexport { computeMatchOptions } from \"./init.js\";\nexport { MatchOptions } from \"../shared_js/enums.js\"\n\n/* TODO: A way to delay the init of variables, but still use \"const\" not \"let\" ? */\nimport { pong, gc } from \"./global.js\"\nimport { setStartFunction } from \"./global.js\"\n\n\nexport function init(matchOptions: en.MatchOptions, sound: string, gameAreaId: string, gameSessionId: string)\n{\n\tinitBase(matchOptions, sound, gameAreaId);\n\n\tsetStartFunction(start);\n\tinitWebSocketSpectator(gameSessionId);\n}\n\nexport function destroy()\n{\n\tdestroyBase();\n}\n\nfunction start()\n{\n\tresume();\n}\n\nfunction resume()\n{\n\tpong.gameLoopInterval = window.setInterval(gameLoopSpectator, c.gameLoopIntervalMS);\n\tpong.drawLoopInterval = window.setInterval(drawLoop, c.drawLoopIntervalMS);\n}\n\nfunction pause() // unused\n{\n\tclearInterval(pong.gameLoopInterval);\n\tclearInterval(pong.drawLoopInterval);\n}\n","\n\n\n\n
  • \n\t\n
  • \n\n\n\n\n","\n\n\n\n
    \n\n
    \n\n\t{#if !hiddenGame}\n\t\t{#if gameState.matchEnded}\n\t\t\t
    \n\t\t\t\t

    The match is finished !

    \n\t\t\t
    \n\t\t{/if}\n\t{/if}\n\n\t\n\n\t{#if !hiddenGame}\n\t\t{#if !gameState.matchEnded}\n\t\t\t
    \n\t\t\t\t\n\t\t\t
    \n\t\t{/if}\n\t{/if}\n\n\n\n\t{#if hiddenGame}\n\t\t
    \n\t\t\t
    \n\t\t\t\toptions\n\t\t\t\t\n\t\t\t\t
    \n\t\t\t\t\t

    sound :

    \n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t
    \n\t\t\t
    \n\t\t\t{#if matchList.length !== 0}\n\t\t\t\t\n\t\t\t\t\t{#each matchList as match}\n\t\t\t\t\t\t initGameSpectator(match.gameServerIdOfTheMatch, match.gameOptions)} />\n\t\t\t\t\t{/each}\n\t\t\t\t\n\t\t\t{:else}\n\t\t\t\t

    no match ongoing

    \n\t\t\t{/if}\n\t\t
    \n\t{/if}\n\n
    \n\n\n\n","import NotFound from \"../pages/NotFound.svelte\";\nimport ProfilePage from \"../pages/profile/ProfilePage.svelte\";\nimport SplashPage from \"../pages/SplashPage.svelte\";\nimport TwoFactorAuthentication from '../pages/TwoFactorAuthentication.svelte';\nimport UnauthorizedAccessPage from '../pages/UnauthorizedAccessPage.svelte';\nimport { wrap } from 'svelte-spa-router/wrap'\nimport Game from '../pages/game/Game.svelte';\nimport Ranking from '../pages/game/Ranking.svelte';\nimport GameSpectator from '../pages/game/GameSpectator.svelte';\n\n\n\nexport const primaryRoutes = {\n '/': SplashPage,\n '/2fa': TwoFactorAuthentication,\n '/game': wrap({\n component: Game,\n conditions: [\n async(detail) => {\n const user = await fetch('http://' + process.env.WEBSITE_HOST + \":\" + process.env.WEBSITE_PORT + '/api/v2/user')\n .then((resp) => resp.json())\n\n console.log('in /profile what is in user')\n console.log(user)\n\n if (user && user.username)\n return true;\n else\n return false;\n }\n ]\n }),\n '/spectator': wrap({\n component: GameSpectator,\n conditions: [\n async(detail) => {\n const user = await fetch('http://' + process.env.WEBSITE_HOST + \":\" + process.env.WEBSITE_PORT + '/api/v2/user')\n .then((resp) => resp.json())\n\n console.log('in /profile what is in user')\n console.log(user)\n\n if (user && user.username)\n return true;\n else\n return false;\n }\n ]\n }),\n '/ranking': wrap({\n component: Ranking,\n conditions: [\n async(detail) => {\n const user = await fetch('http://' + process.env.WEBSITE_HOST + \":\" + process.env.WEBSITE_PORT + '/api/v2/user')\n .then((resp) => resp.json())\n\n console.log('in /profile what is in user')\n console.log(user)\n\n if (user && user.username)\n return true;\n else\n return false;\n }\n ]\n }),\n '/profile': wrap({\n component: ProfilePage,\n conditions: [\n async(detail) => {\n const user = await fetch('http://' + process.env.WEBSITE_HOST + \":\" + process.env.WEBSITE_PORT + '/api/v2/user')\n .then((resp) => resp.json())\n\n console.log('in /profile what is in user')\n console.log(user)\n\n if (user && user.username)\n return true;\n else\n return false;\n }\n ]\n }),\n '/profile/*': wrap({\n component: ProfilePage,\n conditions: [\n async(detail) => {\n const user = await fetch('http://' + process.env.WEBSITE_HOST + \":\" + process.env.WEBSITE_PORT + '/api/v2/user')\n .then((resp) => resp.json())\n\n console.log('in /profile/* what is in user')\n console.log(user)\n\n if (user && user.username)\n return true;\n else\n return false;\n }\n ]\n }),\n '/unauthorized-access': UnauthorizedAccessPage,\n '*': NotFound\n};\n","\n\n\n\n\n","import App from './App.svelte';\n\nconst app = new App({\n\ttarget: document.body,\n\tprops: {\n\t\t// name: 'world'\n\t}\n});\n\nexport default app;\n"],"names":["empty","init","wrap","parse","_wrap","location","create_if_block","create_if_block_1","socket","withNativeBlob","withNativeArrayBuffer","isView","lookup","decode","protocol","globalThis","encode","XMLHttpRequest","WebSocket","Socket","Engine","io","create_if_block_12","create_if_block_8","create_if_block_9","create_if_block_11","pong","en.MatchOptions","en.EventTypes","en.ClientRole","en.InputEnum","c.w","c.h","en.PlayerSide","c.soundRobloxVolume","ev.ClientAnnouncePlayer","msg.error","msg.matchmaking","ev.ClientEvent","msg.matchmakingComplete","msg.matchAbort","msg.win","msg.forfeit","msg.lose","ev.ClientAnnounceSpectator","delta_time","ev.EventInput","c.fixedDeltaTime","c.movingWallPosMax","c.wallSize","c.CanvasWidth","c.CanvasRatio","c.pw","c.h_mid","c.ph","c.racketSpeed","c.multiBallsCount","c.ballSize","c.ballSpeed","c.ballSpeedIncrease","c.movingWallSpeed","c.w_mid","c.scoreSize","c.midLineSize","c.gridSize","start","destroy","c.matchStartDelay","resume","c.handleInputIntervalMS","c.gameLoopIntervalMS","c.drawLoopIntervalMS","create_if_block_3","create_if_block_4","create_if_block_2","create_if_block_5","gameAreaId","watchGameStateIntervalRate","pong.InitOptions","pong.destroy","pong.computeMatchOptions","pong.init","pongSpectator.destroy","pongSpectator.init"],"mappings":"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AA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;;OAI/B,UAqDO,CAAA,IAAA,EAAA,MAAA,CAAA,CAAA;OApDN,UAAa,CAAA,MAAA,EAAA,EAAA,CAAA,CAAA;;OACb,UAkDQ,CAAA,MAAA,EAAA,OAAA,CAAA,CAAA;OAjDP,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OA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"} \ No newline at end of file +{"version":3,"file":"bundle.js","sources":["../../node_modules/svelte/internal/index.mjs","../../node_modules/svelte-spa-router/wrap.js","../../node_modules/svelte/store/index.mjs","../../node_modules/regexparam/dist/index.mjs","../../node_modules/svelte-spa-router/Router.svelte","../../src/pages/NotFound.svelte","../../node_modules/svelte-spa-router/active.js","../../src/pieces/Header.svelte","../../src/pieces/GenerateUserDisplay.svelte","../../src/pieces/chat/tmp_debug.svelte","../../src/pieces/chat/Store_chat.ts","../../src/pieces/chat/Chat_box_css.svelte","../../src/pieces/chat/Element_button.svelte","../../src/pieces/chat/Layout_close.svelte","../../src/pieces/chat/Request_rooms.ts","../../src/pieces/chat/Layout_home.svelte","../../src/pieces/chat/Element_msg.svelte","../../src/pieces/chat/Layout_room.svelte","../../src/pieces/chat/Layout_new.svelte","../../src/pieces/chat/Layout_settings.svelte","../../src/pieces/chat/Layout_room_set.svelte","../../src/pieces/chat/Layout_protected.svelte","../../src/pieces/chat/Element_warning.svelte","../../src/pieces/chat/Layout_create.svelte","../../src/pieces/chat/Layout_mute.svelte","../../src/pieces/chat/Layout_user.svelte","../../src/pieces/chat/Chat_layouts.svelte","../../node_modules/engine.io-parser/build/esm/commons.js","../../node_modules/engine.io-parser/build/esm/encodePacket.browser.js","../../node_modules/engine.io-parser/build/esm/contrib/base64-arraybuffer.js","../../node_modules/engine.io-parser/build/esm/decodePacket.browser.js","../../node_modules/engine.io-parser/build/esm/index.js","../../node_modules/@socket.io/component-emitter/index.mjs","../../node_modules/engine.io-client/build/esm/globalThis.browser.js","../../node_modules/engine.io-client/build/esm/util.js","../../node_modules/engine.io-client/build/esm/transport.js","../../node_modules/engine.io-client/build/esm/contrib/yeast.js","../../node_modules/engine.io-client/build/esm/contrib/parseqs.js","../../node_modules/engine.io-client/build/esm/contrib/has-cors.js","../../node_modules/engine.io-client/build/esm/transports/xmlhttprequest.browser.js","../../node_modules/engine.io-client/build/esm/transports/polling.js","../../node_modules/engine.io-client/build/esm/transports/websocket-constructor.browser.js","../../node_modules/engine.io-client/build/esm/transports/websocket.js","../../node_modules/engine.io-client/build/esm/transports/index.js","../../node_modules/engine.io-client/build/esm/contrib/parseuri.js","../../node_modules/engine.io-client/build/esm/socket.js","../../node_modules/socket.io-client/build/esm/url.js","../../node_modules/socket.io-parser/build/esm/is-binary.js","../../node_modules/socket.io-parser/build/esm/binary.js","../../node_modules/socket.io-parser/build/esm/index.js","../../node_modules/socket.io-client/build/esm/on.js","../../node_modules/socket.io-client/build/esm/socket.js","../../node_modules/socket.io-client/build/esm/contrib/backo2.js","../../node_modules/socket.io-client/build/esm/manager.js","../../node_modules/socket.io-client/build/esm/index.js","../../src/pieces/chat/Socket_events.ts","../../src/pieces/chat/Socket_init.ts","../../src/pieces/chat/Chat.svelte","../../src/pages/profile/ProfileDisplay.svelte","../../src/pieces/Card.svelte","../../src/pieces/Button.svelte","../../src/pages/profile/ProfileSettings.svelte","../../src/pieces/DisplayAUser.svelte","../../src/pieces/Tabs.svelte","../../src/pages/profile/ProfileFriends.svelte","../../src/routes/profileRoutes.js","../../src/pages/profile/ProfilePage.svelte","../../src/pieces/Canvas.svelte","../../src/pieces/JumpingPotatoes.svelte","../../src/pages/SplashPage.svelte","../../src/pages/TwoFactorAuthentication.svelte","../../src/pages/UnauthorizedAccessPage.svelte","../../node_modules/svelte/easing/index.mjs","../../node_modules/svelte/transition/index.mjs","../../src/pages/game/shared_js/constants.ts","../../src/pages/game/client/constants.ts","../../src/pages/game/shared_js/enums.ts","../../src/pages/game/client/global.ts","../../src/pages/game/shared_js/class/Event.ts","../../src/pages/game/client/message.ts","../../src/pages/game/client/audio.ts","../../src/pages/game/shared_js/utils.ts","../../src/pages/game/client/utils.ts","../../src/pages/game/shared_js/class/Vector.ts","../../src/pages/game/client/ws.ts","../../src/pages/game/client/class/InputHistory.ts","../../src/pages/game/client/handleInput.ts","../../src/pages/game/shared_js/wallsMovement.ts","../../src/pages/game/client/gameLoop.ts","../../src/pages/game/client/draw.ts","../../src/pages/game/client/class/InitOptions.ts","../../src/pages/game/client/class/GameArea.ts","../../src/pages/game/client/class/Text.ts","../../src/pages/game/shared_js/class/Rectangle.ts","../../src/pages/game/client/class/RectangleClient.ts","../../src/pages/game/shared_js/class/GameComponents.ts","../../src/pages/game/client/class/GameComponentsClient.ts","../../src/pages/game/client/init.ts","../../src/pages/game/client/pong.ts","../../src/pages/game/Game.svelte","../../src/pages/game/Ranking.svelte","../../src/pages/game/client/pongSpectator.ts","../../src/pieces/MatchListElem.svelte","../../src/pages/game/GameSpectator.svelte","../../src/routes/primaryRoutes.js","../../src/App.svelte","../../src/main.ts"],"sourcesContent":["function noop() { }\nconst identity = x => x;\nfunction assign(tar, src) {\n // @ts-ignore\n for (const k in src)\n tar[k] = src[k];\n return tar;\n}\nfunction is_promise(value) {\n return value && typeof value === 'object' && typeof value.then === 'function';\n}\nfunction add_location(element, file, line, column, char) {\n element.__svelte_meta = {\n loc: { file, line, column, char }\n };\n}\nfunction run(fn) {\n return fn();\n}\nfunction blank_object() {\n return Object.create(null);\n}\nfunction run_all(fns) {\n fns.forEach(run);\n}\nfunction is_function(thing) {\n return typeof thing === 'function';\n}\nfunction safe_not_equal(a, b) {\n return a != a ? b == b : a !== b || ((a && typeof a === 'object') || typeof a === 'function');\n}\nlet src_url_equal_anchor;\nfunction src_url_equal(element_src, url) {\n if (!src_url_equal_anchor) {\n src_url_equal_anchor = document.createElement('a');\n }\n src_url_equal_anchor.href = url;\n return element_src === src_url_equal_anchor.href;\n}\nfunction not_equal(a, b) {\n return a != a ? b == b : a !== b;\n}\nfunction is_empty(obj) {\n return Object.keys(obj).length === 0;\n}\nfunction validate_store(store, name) {\n if (store != null && typeof store.subscribe !== 'function') {\n throw new Error(`'${name}' is not a store with a 'subscribe' method`);\n }\n}\nfunction subscribe(store, ...callbacks) {\n if (store == null) {\n return noop;\n }\n const unsub = store.subscribe(...callbacks);\n return unsub.unsubscribe ? () => unsub.unsubscribe() : unsub;\n}\nfunction get_store_value(store) {\n let value;\n subscribe(store, _ => value = _)();\n return value;\n}\nfunction component_subscribe(component, store, callback) {\n component.$$.on_destroy.push(subscribe(store, callback));\n}\nfunction create_slot(definition, ctx, $$scope, fn) {\n if (definition) {\n const slot_ctx = get_slot_context(definition, ctx, $$scope, fn);\n return definition[0](slot_ctx);\n }\n}\nfunction get_slot_context(definition, ctx, $$scope, fn) {\n return definition[1] && fn\n ? assign($$scope.ctx.slice(), definition[1](fn(ctx)))\n : $$scope.ctx;\n}\nfunction get_slot_changes(definition, $$scope, dirty, fn) {\n if (definition[2] && fn) {\n const lets = definition[2](fn(dirty));\n if ($$scope.dirty === undefined) {\n return lets;\n }\n if (typeof lets === 'object') {\n const merged = [];\n const len = Math.max($$scope.dirty.length, lets.length);\n for (let i = 0; i < len; i += 1) {\n merged[i] = $$scope.dirty[i] | lets[i];\n }\n return merged;\n }\n return $$scope.dirty | lets;\n }\n return $$scope.dirty;\n}\nfunction update_slot_base(slot, slot_definition, ctx, $$scope, slot_changes, get_slot_context_fn) {\n if (slot_changes) {\n const slot_context = get_slot_context(slot_definition, ctx, $$scope, get_slot_context_fn);\n slot.p(slot_context, slot_changes);\n }\n}\nfunction update_slot(slot, slot_definition, ctx, $$scope, dirty, get_slot_changes_fn, get_slot_context_fn) {\n const slot_changes = get_slot_changes(slot_definition, $$scope, dirty, get_slot_changes_fn);\n update_slot_base(slot, slot_definition, ctx, $$scope, slot_changes, get_slot_context_fn);\n}\nfunction get_all_dirty_from_scope($$scope) {\n if ($$scope.ctx.length > 32) {\n const dirty = [];\n const length = $$scope.ctx.length / 32;\n for (let i = 0; i < length; i++) {\n dirty[i] = -1;\n }\n return dirty;\n }\n return -1;\n}\nfunction exclude_internal_props(props) {\n const result = {};\n for (const k in props)\n if (k[0] !== '$')\n result[k] = props[k];\n return result;\n}\nfunction compute_rest_props(props, keys) {\n const rest = {};\n keys = new Set(keys);\n for (const k in props)\n if (!keys.has(k) && k[0] !== '$')\n rest[k] = props[k];\n return rest;\n}\nfunction compute_slots(slots) {\n const result = {};\n for (const key in slots) {\n result[key] = true;\n }\n return result;\n}\nfunction once(fn) {\n let ran = false;\n return function (...args) {\n if (ran)\n return;\n ran = true;\n fn.call(this, ...args);\n };\n}\nfunction null_to_empty(value) {\n return value == null ? '' : value;\n}\nfunction set_store_value(store, ret, value) {\n store.set(value);\n return ret;\n}\nconst has_prop = (obj, prop) => Object.prototype.hasOwnProperty.call(obj, prop);\nfunction action_destroyer(action_result) {\n return action_result && is_function(action_result.destroy) ? action_result.destroy : noop;\n}\n\nconst is_client = typeof window !== 'undefined';\nlet now = is_client\n ? () => window.performance.now()\n : () => Date.now();\nlet raf = is_client ? cb => requestAnimationFrame(cb) : noop;\n// used internally for testing\nfunction set_now(fn) {\n now = fn;\n}\nfunction set_raf(fn) {\n raf = fn;\n}\n\nconst tasks = new Set();\nfunction run_tasks(now) {\n tasks.forEach(task => {\n if (!task.c(now)) {\n tasks.delete(task);\n task.f();\n }\n });\n if (tasks.size !== 0)\n raf(run_tasks);\n}\n/**\n * For testing purposes only!\n */\nfunction clear_loops() {\n tasks.clear();\n}\n/**\n * Creates a new task that runs on each raf frame\n * until it returns a falsy value or is aborted\n */\nfunction loop(callback) {\n let task;\n if (tasks.size === 0)\n raf(run_tasks);\n return {\n promise: new Promise(fulfill => {\n tasks.add(task = { c: callback, f: fulfill });\n }),\n abort() {\n tasks.delete(task);\n }\n };\n}\n\n// Track which nodes are claimed during hydration. Unclaimed nodes can then be removed from the DOM\n// at the end of hydration without touching the remaining nodes.\nlet is_hydrating = false;\nfunction start_hydrating() {\n is_hydrating = true;\n}\nfunction end_hydrating() {\n is_hydrating = false;\n}\nfunction upper_bound(low, high, key, value) {\n // Return first index of value larger than input value in the range [low, high)\n while (low < high) {\n const mid = low + ((high - low) >> 1);\n if (key(mid) <= value) {\n low = mid + 1;\n }\n else {\n high = mid;\n }\n }\n return low;\n}\nfunction init_hydrate(target) {\n if (target.hydrate_init)\n return;\n target.hydrate_init = true;\n // We know that all children have claim_order values since the unclaimed have been detached if target is not \n let children = target.childNodes;\n // If target is , there may be children without claim_order\n if (target.nodeName === 'HEAD') {\n const myChildren = [];\n for (let i = 0; i < children.length; i++) {\n const node = children[i];\n if (node.claim_order !== undefined) {\n myChildren.push(node);\n }\n }\n children = myChildren;\n }\n /*\n * Reorder claimed children optimally.\n * We can reorder claimed children optimally by finding the longest subsequence of\n * nodes that are already claimed in order and only moving the rest. The longest\n * subsequence of nodes that are claimed in order can be found by\n * computing the longest increasing subsequence of .claim_order values.\n *\n * This algorithm is optimal in generating the least amount of reorder operations\n * possible.\n *\n * Proof:\n * We know that, given a set of reordering operations, the nodes that do not move\n * always form an increasing subsequence, since they do not move among each other\n * meaning that they must be already ordered among each other. Thus, the maximal\n * set of nodes that do not move form a longest increasing subsequence.\n */\n // Compute longest increasing subsequence\n // m: subsequence length j => index k of smallest value that ends an increasing subsequence of length j\n const m = new Int32Array(children.length + 1);\n // Predecessor indices + 1\n const p = new Int32Array(children.length);\n m[0] = -1;\n let longest = 0;\n for (let i = 0; i < children.length; i++) {\n const current = children[i].claim_order;\n // Find the largest subsequence length such that it ends in a value less than our current value\n // upper_bound returns first greater value, so we subtract one\n // with fast path for when we are on the current longest subsequence\n const seqLen = ((longest > 0 && children[m[longest]].claim_order <= current) ? longest + 1 : upper_bound(1, longest, idx => children[m[idx]].claim_order, current)) - 1;\n p[i] = m[seqLen] + 1;\n const newLen = seqLen + 1;\n // We can guarantee that current is the smallest value. Otherwise, we would have generated a longer sequence.\n m[newLen] = i;\n longest = Math.max(newLen, longest);\n }\n // The longest increasing subsequence of nodes (initially reversed)\n const lis = [];\n // The rest of the nodes, nodes that will be moved\n const toMove = [];\n let last = children.length - 1;\n for (let cur = m[longest] + 1; cur != 0; cur = p[cur - 1]) {\n lis.push(children[cur - 1]);\n for (; last >= cur; last--) {\n toMove.push(children[last]);\n }\n last--;\n }\n for (; last >= 0; last--) {\n toMove.push(children[last]);\n }\n lis.reverse();\n // We sort the nodes being moved to guarantee that their insertion order matches the claim order\n toMove.sort((a, b) => a.claim_order - b.claim_order);\n // Finally, we move the nodes\n for (let i = 0, j = 0; i < toMove.length; i++) {\n while (j < lis.length && toMove[i].claim_order >= lis[j].claim_order) {\n j++;\n }\n const anchor = j < lis.length ? lis[j] : null;\n target.insertBefore(toMove[i], anchor);\n }\n}\nfunction append(target, node) {\n target.appendChild(node);\n}\nfunction append_styles(target, style_sheet_id, styles) {\n const append_styles_to = get_root_for_style(target);\n if (!append_styles_to.getElementById(style_sheet_id)) {\n const style = element('style');\n style.id = style_sheet_id;\n style.textContent = styles;\n append_stylesheet(append_styles_to, style);\n }\n}\nfunction get_root_for_style(node) {\n if (!node)\n return document;\n const root = node.getRootNode ? node.getRootNode() : node.ownerDocument;\n if (root && root.host) {\n return root;\n }\n return node.ownerDocument;\n}\nfunction append_empty_stylesheet(node) {\n const style_element = element('style');\n append_stylesheet(get_root_for_style(node), style_element);\n return style_element.sheet;\n}\nfunction append_stylesheet(node, style) {\n append(node.head || node, style);\n return style.sheet;\n}\nfunction append_hydration(target, node) {\n if (is_hydrating) {\n init_hydrate(target);\n if ((target.actual_end_child === undefined) || ((target.actual_end_child !== null) && (target.actual_end_child.parentNode !== target))) {\n target.actual_end_child = target.firstChild;\n }\n // Skip nodes of undefined ordering\n while ((target.actual_end_child !== null) && (target.actual_end_child.claim_order === undefined)) {\n target.actual_end_child = target.actual_end_child.nextSibling;\n }\n if (node !== target.actual_end_child) {\n // We only insert if the ordering of this node should be modified or the parent node is not target\n if (node.claim_order !== undefined || node.parentNode !== target) {\n target.insertBefore(node, target.actual_end_child);\n }\n }\n else {\n target.actual_end_child = node.nextSibling;\n }\n }\n else if (node.parentNode !== target || node.nextSibling !== null) {\n target.appendChild(node);\n }\n}\nfunction insert(target, node, anchor) {\n target.insertBefore(node, anchor || null);\n}\nfunction insert_hydration(target, node, anchor) {\n if (is_hydrating && !anchor) {\n append_hydration(target, node);\n }\n else if (node.parentNode !== target || node.nextSibling != anchor) {\n target.insertBefore(node, anchor || null);\n }\n}\nfunction detach(node) {\n if (node.parentNode) {\n node.parentNode.removeChild(node);\n }\n}\nfunction destroy_each(iterations, detaching) {\n for (let i = 0; i < iterations.length; i += 1) {\n if (iterations[i])\n iterations[i].d(detaching);\n }\n}\nfunction element(name) {\n return document.createElement(name);\n}\nfunction element_is(name, is) {\n return document.createElement(name, { is });\n}\nfunction object_without_properties(obj, exclude) {\n const target = {};\n for (const k in obj) {\n if (has_prop(obj, k)\n // @ts-ignore\n && exclude.indexOf(k) === -1) {\n // @ts-ignore\n target[k] = obj[k];\n }\n }\n return target;\n}\nfunction svg_element(name) {\n return document.createElementNS('http://www.w3.org/2000/svg', name);\n}\nfunction text(data) {\n return document.createTextNode(data);\n}\nfunction space() {\n return text(' ');\n}\nfunction empty() {\n return text('');\n}\nfunction listen(node, event, handler, options) {\n node.addEventListener(event, handler, options);\n return () => node.removeEventListener(event, handler, options);\n}\nfunction prevent_default(fn) {\n return function (event) {\n event.preventDefault();\n // @ts-ignore\n return fn.call(this, event);\n };\n}\nfunction stop_propagation(fn) {\n return function (event) {\n event.stopPropagation();\n // @ts-ignore\n return fn.call(this, event);\n };\n}\nfunction self(fn) {\n return function (event) {\n // @ts-ignore\n if (event.target === this)\n fn.call(this, event);\n };\n}\nfunction trusted(fn) {\n return function (event) {\n // @ts-ignore\n if (event.isTrusted)\n fn.call(this, event);\n };\n}\nfunction attr(node, attribute, value) {\n if (value == null)\n node.removeAttribute(attribute);\n else if (node.getAttribute(attribute) !== value)\n node.setAttribute(attribute, value);\n}\nfunction set_attributes(node, attributes) {\n // @ts-ignore\n const descriptors = Object.getOwnPropertyDescriptors(node.__proto__);\n for (const key in attributes) {\n if (attributes[key] == null) {\n node.removeAttribute(key);\n }\n else if (key === 'style') {\n node.style.cssText = attributes[key];\n }\n else if (key === '__value') {\n node.value = node[key] = attributes[key];\n }\n else if (descriptors[key] && descriptors[key].set) {\n node[key] = attributes[key];\n }\n else {\n attr(node, key, attributes[key]);\n }\n }\n}\nfunction set_svg_attributes(node, attributes) {\n for (const key in attributes) {\n attr(node, key, attributes[key]);\n }\n}\nfunction set_custom_element_data_map(node, data_map) {\n Object.keys(data_map).forEach((key) => {\n set_custom_element_data(node, key, data_map[key]);\n });\n}\nfunction set_custom_element_data(node, prop, value) {\n if (prop in node) {\n node[prop] = typeof node[prop] === 'boolean' && value === '' ? true : value;\n }\n else {\n attr(node, prop, value);\n }\n}\nfunction xlink_attr(node, attribute, value) {\n node.setAttributeNS('http://www.w3.org/1999/xlink', attribute, value);\n}\nfunction get_binding_group_value(group, __value, checked) {\n const value = new Set();\n for (let i = 0; i < group.length; i += 1) {\n if (group[i].checked)\n value.add(group[i].__value);\n }\n if (!checked) {\n value.delete(__value);\n }\n return Array.from(value);\n}\nfunction to_number(value) {\n return value === '' ? null : +value;\n}\nfunction time_ranges_to_array(ranges) {\n const array = [];\n for (let i = 0; i < ranges.length; i += 1) {\n array.push({ start: ranges.start(i), end: ranges.end(i) });\n }\n return array;\n}\nfunction children(element) {\n return Array.from(element.childNodes);\n}\nfunction init_claim_info(nodes) {\n if (nodes.claim_info === undefined) {\n nodes.claim_info = { last_index: 0, total_claimed: 0 };\n }\n}\nfunction claim_node(nodes, predicate, processNode, createNode, dontUpdateLastIndex = false) {\n // Try to find nodes in an order such that we lengthen the longest increasing subsequence\n init_claim_info(nodes);\n const resultNode = (() => {\n // We first try to find an element after the previous one\n for (let i = nodes.claim_info.last_index; i < nodes.length; i++) {\n const node = nodes[i];\n if (predicate(node)) {\n const replacement = processNode(node);\n if (replacement === undefined) {\n nodes.splice(i, 1);\n }\n else {\n nodes[i] = replacement;\n }\n if (!dontUpdateLastIndex) {\n nodes.claim_info.last_index = i;\n }\n return node;\n }\n }\n // Otherwise, we try to find one before\n // We iterate in reverse so that we don't go too far back\n for (let i = nodes.claim_info.last_index - 1; i >= 0; i--) {\n const node = nodes[i];\n if (predicate(node)) {\n const replacement = processNode(node);\n if (replacement === undefined) {\n nodes.splice(i, 1);\n }\n else {\n nodes[i] = replacement;\n }\n if (!dontUpdateLastIndex) {\n nodes.claim_info.last_index = i;\n }\n else if (replacement === undefined) {\n // Since we spliced before the last_index, we decrease it\n nodes.claim_info.last_index--;\n }\n return node;\n }\n }\n // If we can't find any matching node, we create a new one\n return createNode();\n })();\n resultNode.claim_order = nodes.claim_info.total_claimed;\n nodes.claim_info.total_claimed += 1;\n return resultNode;\n}\nfunction claim_element_base(nodes, name, attributes, create_element) {\n return claim_node(nodes, (node) => node.nodeName === name, (node) => {\n const remove = [];\n for (let j = 0; j < node.attributes.length; j++) {\n const attribute = node.attributes[j];\n if (!attributes[attribute.name]) {\n remove.push(attribute.name);\n }\n }\n remove.forEach(v => node.removeAttribute(v));\n return undefined;\n }, () => create_element(name));\n}\nfunction claim_element(nodes, name, attributes) {\n return claim_element_base(nodes, name, attributes, element);\n}\nfunction claim_svg_element(nodes, name, attributes) {\n return claim_element_base(nodes, name, attributes, svg_element);\n}\nfunction claim_text(nodes, data) {\n return claim_node(nodes, (node) => node.nodeType === 3, (node) => {\n const dataStr = '' + data;\n if (node.data.startsWith(dataStr)) {\n if (node.data.length !== dataStr.length) {\n return node.splitText(dataStr.length);\n }\n }\n else {\n node.data = dataStr;\n }\n }, () => text(data), true // Text nodes should not update last index since it is likely not worth it to eliminate an increasing subsequence of actual elements\n );\n}\nfunction claim_space(nodes) {\n return claim_text(nodes, ' ');\n}\nfunction find_comment(nodes, text, start) {\n for (let i = start; i < nodes.length; i += 1) {\n const node = nodes[i];\n if (node.nodeType === 8 /* comment node */ && node.textContent.trim() === text) {\n return i;\n }\n }\n return nodes.length;\n}\nfunction claim_html_tag(nodes, is_svg) {\n // find html opening tag\n const start_index = find_comment(nodes, 'HTML_TAG_START', 0);\n const end_index = find_comment(nodes, 'HTML_TAG_END', start_index);\n if (start_index === end_index) {\n return new HtmlTagHydration(undefined, is_svg);\n }\n init_claim_info(nodes);\n const html_tag_nodes = nodes.splice(start_index, end_index - start_index + 1);\n detach(html_tag_nodes[0]);\n detach(html_tag_nodes[html_tag_nodes.length - 1]);\n const claimed_nodes = html_tag_nodes.slice(1, html_tag_nodes.length - 1);\n for (const n of claimed_nodes) {\n n.claim_order = nodes.claim_info.total_claimed;\n nodes.claim_info.total_claimed += 1;\n }\n return new HtmlTagHydration(claimed_nodes, is_svg);\n}\nfunction set_data(text, data) {\n data = '' + data;\n if (text.wholeText !== data)\n text.data = data;\n}\nfunction set_input_value(input, value) {\n input.value = value == null ? '' : value;\n}\nfunction set_input_type(input, type) {\n try {\n input.type = type;\n }\n catch (e) {\n // do nothing\n }\n}\nfunction set_style(node, key, value, important) {\n if (value === null) {\n node.style.removeProperty(key);\n }\n else {\n node.style.setProperty(key, value, important ? 'important' : '');\n }\n}\nfunction select_option(select, value) {\n for (let i = 0; i < select.options.length; i += 1) {\n const option = select.options[i];\n if (option.__value === value) {\n option.selected = true;\n return;\n }\n }\n select.selectedIndex = -1; // no option should be selected\n}\nfunction select_options(select, value) {\n for (let i = 0; i < select.options.length; i += 1) {\n const option = select.options[i];\n option.selected = ~value.indexOf(option.__value);\n }\n}\nfunction select_value(select) {\n const selected_option = select.querySelector(':checked') || select.options[0];\n return selected_option && selected_option.__value;\n}\nfunction select_multiple_value(select) {\n return [].map.call(select.querySelectorAll(':checked'), option => option.__value);\n}\n// unfortunately this can't be a constant as that wouldn't be tree-shakeable\n// so we cache the result instead\nlet crossorigin;\nfunction is_crossorigin() {\n if (crossorigin === undefined) {\n crossorigin = false;\n try {\n if (typeof window !== 'undefined' && window.parent) {\n void window.parent.document;\n }\n }\n catch (error) {\n crossorigin = true;\n }\n }\n return crossorigin;\n}\nfunction add_resize_listener(node, fn) {\n const computed_style = getComputedStyle(node);\n if (computed_style.position === 'static') {\n node.style.position = 'relative';\n }\n const iframe = element('iframe');\n iframe.setAttribute('style', 'display: block; position: absolute; top: 0; left: 0; width: 100%; height: 100%; ' +\n 'overflow: hidden; border: 0; opacity: 0; pointer-events: none; z-index: -1;');\n iframe.setAttribute('aria-hidden', 'true');\n iframe.tabIndex = -1;\n const crossorigin = is_crossorigin();\n let unsubscribe;\n if (crossorigin) {\n iframe.src = \"data:text/html,\";\n unsubscribe = listen(window, 'message', (event) => {\n if (event.source === iframe.contentWindow)\n fn();\n });\n }\n else {\n iframe.src = 'about:blank';\n iframe.onload = () => {\n unsubscribe = listen(iframe.contentWindow, 'resize', fn);\n };\n }\n append(node, iframe);\n return () => {\n if (crossorigin) {\n unsubscribe();\n }\n else if (unsubscribe && iframe.contentWindow) {\n unsubscribe();\n }\n detach(iframe);\n };\n}\nfunction toggle_class(element, name, toggle) {\n element.classList[toggle ? 'add' : 'remove'](name);\n}\nfunction custom_event(type, detail, { bubbles = false, cancelable = false } = {}) {\n const e = document.createEvent('CustomEvent');\n e.initCustomEvent(type, bubbles, cancelable, detail);\n return e;\n}\nfunction query_selector_all(selector, parent = document.body) {\n return Array.from(parent.querySelectorAll(selector));\n}\nfunction head_selector(nodeId, head) {\n const result = [];\n let started = 0;\n for (const node of head.childNodes) {\n if (node.nodeType === 8 /* comment node */) {\n const comment = node.textContent.trim();\n if (comment === `HEAD_${nodeId}_END`) {\n started -= 1;\n result.push(node);\n }\n else if (comment === `HEAD_${nodeId}_START`) {\n started += 1;\n result.push(node);\n }\n }\n else if (started > 0) {\n result.push(node);\n }\n }\n return result;\n}\nclass HtmlTag {\n constructor(is_svg = false) {\n this.is_svg = false;\n this.is_svg = is_svg;\n this.e = this.n = null;\n }\n c(html) {\n this.h(html);\n }\n m(html, target, anchor = null) {\n if (!this.e) {\n if (this.is_svg)\n this.e = svg_element(target.nodeName);\n else\n this.e = element(target.nodeName);\n this.t = target;\n this.c(html);\n }\n this.i(anchor);\n }\n h(html) {\n this.e.innerHTML = html;\n this.n = Array.from(this.e.childNodes);\n }\n i(anchor) {\n for (let i = 0; i < this.n.length; i += 1) {\n insert(this.t, this.n[i], anchor);\n }\n }\n p(html) {\n this.d();\n this.h(html);\n this.i(this.a);\n }\n d() {\n this.n.forEach(detach);\n }\n}\nclass HtmlTagHydration extends HtmlTag {\n constructor(claimed_nodes, is_svg = false) {\n super(is_svg);\n this.e = this.n = null;\n this.l = claimed_nodes;\n }\n c(html) {\n if (this.l) {\n this.n = this.l;\n }\n else {\n super.c(html);\n }\n }\n i(anchor) {\n for (let i = 0; i < this.n.length; i += 1) {\n insert_hydration(this.t, this.n[i], anchor);\n }\n }\n}\nfunction attribute_to_object(attributes) {\n const result = {};\n for (const attribute of attributes) {\n result[attribute.name] = attribute.value;\n }\n return result;\n}\nfunction get_custom_elements_slots(element) {\n const result = {};\n element.childNodes.forEach((node) => {\n result[node.slot || 'default'] = true;\n });\n return result;\n}\nfunction construct_svelte_component(component, props) {\n return new component(props);\n}\n\n// we need to store the information for multiple documents because a Svelte application could also contain iframes\n// https://github.com/sveltejs/svelte/issues/3624\nconst managed_styles = new Map();\nlet active = 0;\n// https://github.com/darkskyapp/string-hash/blob/master/index.js\nfunction hash(str) {\n let hash = 5381;\n let i = str.length;\n while (i--)\n hash = ((hash << 5) - hash) ^ str.charCodeAt(i);\n return hash >>> 0;\n}\nfunction create_style_information(doc, node) {\n const info = { stylesheet: append_empty_stylesheet(node), rules: {} };\n managed_styles.set(doc, info);\n return info;\n}\nfunction create_rule(node, a, b, duration, delay, ease, fn, uid = 0) {\n const step = 16.666 / duration;\n let keyframes = '{\\n';\n for (let p = 0; p <= 1; p += step) {\n const t = a + (b - a) * ease(p);\n keyframes += p * 100 + `%{${fn(t, 1 - t)}}\\n`;\n }\n const rule = keyframes + `100% {${fn(b, 1 - b)}}\\n}`;\n const name = `__svelte_${hash(rule)}_${uid}`;\n const doc = get_root_for_style(node);\n const { stylesheet, rules } = managed_styles.get(doc) || create_style_information(doc, node);\n if (!rules[name]) {\n rules[name] = true;\n stylesheet.insertRule(`@keyframes ${name} ${rule}`, stylesheet.cssRules.length);\n }\n const animation = node.style.animation || '';\n node.style.animation = `${animation ? `${animation}, ` : ''}${name} ${duration}ms linear ${delay}ms 1 both`;\n active += 1;\n return name;\n}\nfunction delete_rule(node, name) {\n const previous = (node.style.animation || '').split(', ');\n const next = previous.filter(name\n ? anim => anim.indexOf(name) < 0 // remove specific animation\n : anim => anim.indexOf('__svelte') === -1 // remove all Svelte animations\n );\n const deleted = previous.length - next.length;\n if (deleted) {\n node.style.animation = next.join(', ');\n active -= deleted;\n if (!active)\n clear_rules();\n }\n}\nfunction clear_rules() {\n raf(() => {\n if (active)\n return;\n managed_styles.forEach(info => {\n const { ownerNode } = info.stylesheet;\n // there is no ownerNode if it runs on jsdom.\n if (ownerNode)\n detach(ownerNode);\n });\n managed_styles.clear();\n });\n}\n\nfunction create_animation(node, from, fn, params) {\n if (!from)\n return noop;\n const to = node.getBoundingClientRect();\n if (from.left === to.left && from.right === to.right && from.top === to.top && from.bottom === to.bottom)\n return noop;\n const { delay = 0, duration = 300, easing = identity, \n // @ts-ignore todo: should this be separated from destructuring? Or start/end added to public api and documentation?\n start: start_time = now() + delay, \n // @ts-ignore todo:\n end = start_time + duration, tick = noop, css } = fn(node, { from, to }, params);\n let running = true;\n let started = false;\n let name;\n function start() {\n if (css) {\n name = create_rule(node, 0, 1, duration, delay, easing, css);\n }\n if (!delay) {\n started = true;\n }\n }\n function stop() {\n if (css)\n delete_rule(node, name);\n running = false;\n }\n loop(now => {\n if (!started && now >= start_time) {\n started = true;\n }\n if (started && now >= end) {\n tick(1, 0);\n stop();\n }\n if (!running) {\n return false;\n }\n if (started) {\n const p = now - start_time;\n const t = 0 + 1 * easing(p / duration);\n tick(t, 1 - t);\n }\n return true;\n });\n start();\n tick(0, 1);\n return stop;\n}\nfunction fix_position(node) {\n const style = getComputedStyle(node);\n if (style.position !== 'absolute' && style.position !== 'fixed') {\n const { width, height } = style;\n const a = node.getBoundingClientRect();\n node.style.position = 'absolute';\n node.style.width = width;\n node.style.height = height;\n add_transform(node, a);\n }\n}\nfunction add_transform(node, a) {\n const b = node.getBoundingClientRect();\n if (a.left !== b.left || a.top !== b.top) {\n const style = getComputedStyle(node);\n const transform = style.transform === 'none' ? '' : style.transform;\n node.style.transform = `${transform} translate(${a.left - b.left}px, ${a.top - b.top}px)`;\n }\n}\n\nlet current_component;\nfunction set_current_component(component) {\n current_component = component;\n}\nfunction get_current_component() {\n if (!current_component)\n throw new Error('Function called outside component initialization');\n return current_component;\n}\n/**\n * Schedules a callback to run immediately before the component is updated after any state change.\n *\n * The first time the callback runs will be before the initial `onMount`\n *\n * https://svelte.dev/docs#run-time-svelte-beforeupdate\n */\nfunction beforeUpdate(fn) {\n get_current_component().$$.before_update.push(fn);\n}\n/**\n * The `onMount` function schedules a callback to run as soon as the component has been mounted to the DOM.\n * It must be called during the component's initialisation (but doesn't need to live *inside* the component;\n * it can be called from an external module).\n *\n * `onMount` does not run inside a [server-side component](/docs#run-time-server-side-component-api).\n *\n * https://svelte.dev/docs#run-time-svelte-onmount\n */\nfunction onMount(fn) {\n get_current_component().$$.on_mount.push(fn);\n}\n/**\n * Schedules a callback to run immediately after the component has been updated.\n *\n * The first time the callback runs will be after the initial `onMount`\n */\nfunction afterUpdate(fn) {\n get_current_component().$$.after_update.push(fn);\n}\n/**\n * Schedules a callback to run immediately before the component is unmounted.\n *\n * Out of `onMount`, `beforeUpdate`, `afterUpdate` and `onDestroy`, this is the\n * only one that runs inside a server-side component.\n *\n * https://svelte.dev/docs#run-time-svelte-ondestroy\n */\nfunction onDestroy(fn) {\n get_current_component().$$.on_destroy.push(fn);\n}\n/**\n * Creates an event dispatcher that can be used to dispatch [component events](/docs#template-syntax-component-directives-on-eventname).\n * Event dispatchers are functions that can take two arguments: `name` and `detail`.\n *\n * Component events created with `createEventDispatcher` create a\n * [CustomEvent](https://developer.mozilla.org/en-US/docs/Web/API/CustomEvent).\n * These events do not [bubble](https://developer.mozilla.org/en-US/docs/Learn/JavaScript/Building_blocks/Events#Event_bubbling_and_capture).\n * The `detail` argument corresponds to the [CustomEvent.detail](https://developer.mozilla.org/en-US/docs/Web/API/CustomEvent/detail)\n * property and can contain any type of data.\n *\n * https://svelte.dev/docs#run-time-svelte-createeventdispatcher\n */\nfunction createEventDispatcher() {\n const component = get_current_component();\n return (type, detail, { cancelable = false } = {}) => {\n const callbacks = component.$$.callbacks[type];\n if (callbacks) {\n // TODO are there situations where events could be dispatched\n // in a server (non-DOM) environment?\n const event = custom_event(type, detail, { cancelable });\n callbacks.slice().forEach(fn => {\n fn.call(component, event);\n });\n return !event.defaultPrevented;\n }\n return true;\n };\n}\n/**\n * Associates an arbitrary `context` object with the current component and the specified `key`\n * and returns that object. The context is then available to children of the component\n * (including slotted content) with `getContext`.\n *\n * Like lifecycle functions, this must be called during component initialisation.\n *\n * https://svelte.dev/docs#run-time-svelte-setcontext\n */\nfunction setContext(key, context) {\n get_current_component().$$.context.set(key, context);\n return context;\n}\n/**\n * Retrieves the context that belongs to the closest parent component with the specified `key`.\n * Must be called during component initialisation.\n *\n * https://svelte.dev/docs#run-time-svelte-getcontext\n */\nfunction getContext(key) {\n return get_current_component().$$.context.get(key);\n}\n/**\n * Retrieves the whole context map that belongs to the closest parent component.\n * Must be called during component initialisation. Useful, for example, if you\n * programmatically create a component and want to pass the existing context to it.\n *\n * https://svelte.dev/docs#run-time-svelte-getallcontexts\n */\nfunction getAllContexts() {\n return get_current_component().$$.context;\n}\n/**\n * Checks whether a given `key` has been set in the context of a parent component.\n * Must be called during component initialisation.\n *\n * https://svelte.dev/docs#run-time-svelte-hascontext\n */\nfunction hasContext(key) {\n return get_current_component().$$.context.has(key);\n}\n// TODO figure out if we still want to support\n// shorthand events, or if we want to implement\n// a real bubbling mechanism\nfunction bubble(component, event) {\n const callbacks = component.$$.callbacks[event.type];\n if (callbacks) {\n // @ts-ignore\n callbacks.slice().forEach(fn => fn.call(this, event));\n }\n}\n\nconst dirty_components = [];\nconst intros = { enabled: false };\nconst binding_callbacks = [];\nconst render_callbacks = [];\nconst flush_callbacks = [];\nconst resolved_promise = Promise.resolve();\nlet update_scheduled = false;\nfunction schedule_update() {\n if (!update_scheduled) {\n update_scheduled = true;\n resolved_promise.then(flush);\n }\n}\nfunction tick() {\n schedule_update();\n return resolved_promise;\n}\nfunction add_render_callback(fn) {\n render_callbacks.push(fn);\n}\nfunction add_flush_callback(fn) {\n flush_callbacks.push(fn);\n}\n// flush() calls callbacks in this order:\n// 1. All beforeUpdate callbacks, in order: parents before children\n// 2. All bind:this callbacks, in reverse order: children before parents.\n// 3. All afterUpdate callbacks, in order: parents before children. EXCEPT\n// for afterUpdates called during the initial onMount, which are called in\n// reverse order: children before parents.\n// Since callbacks might update component values, which could trigger another\n// call to flush(), the following steps guard against this:\n// 1. During beforeUpdate, any updated components will be added to the\n// dirty_components array and will cause a reentrant call to flush(). Because\n// the flush index is kept outside the function, the reentrant call will pick\n// up where the earlier call left off and go through all dirty components. The\n// current_component value is saved and restored so that the reentrant call will\n// not interfere with the \"parent\" flush() call.\n// 2. bind:this callbacks cannot trigger new flush() calls.\n// 3. During afterUpdate, any updated components will NOT have their afterUpdate\n// callback called a second time; the seen_callbacks set, outside the flush()\n// function, guarantees this behavior.\nconst seen_callbacks = new Set();\nlet flushidx = 0; // Do *not* move this inside the flush() function\nfunction flush() {\n const saved_component = current_component;\n do {\n // first, call beforeUpdate functions\n // and update components\n while (flushidx < dirty_components.length) {\n const component = dirty_components[flushidx];\n flushidx++;\n set_current_component(component);\n update(component.$$);\n }\n set_current_component(null);\n dirty_components.length = 0;\n flushidx = 0;\n while (binding_callbacks.length)\n binding_callbacks.pop()();\n // then, once components are updated, call\n // afterUpdate functions. This may cause\n // subsequent updates...\n for (let i = 0; i < render_callbacks.length; i += 1) {\n const callback = render_callbacks[i];\n if (!seen_callbacks.has(callback)) {\n // ...so guard against infinite loops\n seen_callbacks.add(callback);\n callback();\n }\n }\n render_callbacks.length = 0;\n } while (dirty_components.length);\n while (flush_callbacks.length) {\n flush_callbacks.pop()();\n }\n update_scheduled = false;\n seen_callbacks.clear();\n set_current_component(saved_component);\n}\nfunction update($$) {\n if ($$.fragment !== null) {\n $$.update();\n run_all($$.before_update);\n const dirty = $$.dirty;\n $$.dirty = [-1];\n $$.fragment && $$.fragment.p($$.ctx, dirty);\n $$.after_update.forEach(add_render_callback);\n }\n}\n\nlet promise;\nfunction wait() {\n if (!promise) {\n promise = Promise.resolve();\n promise.then(() => {\n promise = null;\n });\n }\n return promise;\n}\nfunction dispatch(node, direction, kind) {\n node.dispatchEvent(custom_event(`${direction ? 'intro' : 'outro'}${kind}`));\n}\nconst outroing = new Set();\nlet outros;\nfunction group_outros() {\n outros = {\n r: 0,\n c: [],\n p: outros // parent group\n };\n}\nfunction check_outros() {\n if (!outros.r) {\n run_all(outros.c);\n }\n outros = outros.p;\n}\nfunction transition_in(block, local) {\n if (block && block.i) {\n outroing.delete(block);\n block.i(local);\n }\n}\nfunction transition_out(block, local, detach, callback) {\n if (block && block.o) {\n if (outroing.has(block))\n return;\n outroing.add(block);\n outros.c.push(() => {\n outroing.delete(block);\n if (callback) {\n if (detach)\n block.d(1);\n callback();\n }\n });\n block.o(local);\n }\n else if (callback) {\n callback();\n }\n}\nconst null_transition = { duration: 0 };\nfunction create_in_transition(node, fn, params) {\n let config = fn(node, params);\n let running = false;\n let animation_name;\n let task;\n let uid = 0;\n function cleanup() {\n if (animation_name)\n delete_rule(node, animation_name);\n }\n function go() {\n const { delay = 0, duration = 300, easing = identity, tick = noop, css } = config || null_transition;\n if (css)\n animation_name = create_rule(node, 0, 1, duration, delay, easing, css, uid++);\n tick(0, 1);\n const start_time = now() + delay;\n const end_time = start_time + duration;\n if (task)\n task.abort();\n running = true;\n add_render_callback(() => dispatch(node, true, 'start'));\n task = loop(now => {\n if (running) {\n if (now >= end_time) {\n tick(1, 0);\n dispatch(node, true, 'end');\n cleanup();\n return running = false;\n }\n if (now >= start_time) {\n const t = easing((now - start_time) / duration);\n tick(t, 1 - t);\n }\n }\n return running;\n });\n }\n let started = false;\n return {\n start() {\n if (started)\n return;\n started = true;\n delete_rule(node);\n if (is_function(config)) {\n config = config();\n wait().then(go);\n }\n else {\n go();\n }\n },\n invalidate() {\n started = false;\n },\n end() {\n if (running) {\n cleanup();\n running = false;\n }\n }\n };\n}\nfunction create_out_transition(node, fn, params) {\n let config = fn(node, params);\n let running = true;\n let animation_name;\n const group = outros;\n group.r += 1;\n function go() {\n const { delay = 0, duration = 300, easing = identity, tick = noop, css } = config || null_transition;\n if (css)\n animation_name = create_rule(node, 1, 0, duration, delay, easing, css);\n const start_time = now() + delay;\n const end_time = start_time + duration;\n add_render_callback(() => dispatch(node, false, 'start'));\n loop(now => {\n if (running) {\n if (now >= end_time) {\n tick(0, 1);\n dispatch(node, false, 'end');\n if (!--group.r) {\n // this will result in `end()` being called,\n // so we don't need to clean up here\n run_all(group.c);\n }\n return false;\n }\n if (now >= start_time) {\n const t = easing((now - start_time) / duration);\n tick(1 - t, t);\n }\n }\n return running;\n });\n }\n if (is_function(config)) {\n wait().then(() => {\n // @ts-ignore\n config = config();\n go();\n });\n }\n else {\n go();\n }\n return {\n end(reset) {\n if (reset && config.tick) {\n config.tick(1, 0);\n }\n if (running) {\n if (animation_name)\n delete_rule(node, animation_name);\n running = false;\n }\n }\n };\n}\nfunction create_bidirectional_transition(node, fn, params, intro) {\n let config = fn(node, params);\n let t = intro ? 0 : 1;\n let running_program = null;\n let pending_program = null;\n let animation_name = null;\n function clear_animation() {\n if (animation_name)\n delete_rule(node, animation_name);\n }\n function init(program, duration) {\n const d = (program.b - t);\n duration *= Math.abs(d);\n return {\n a: t,\n b: program.b,\n d,\n duration,\n start: program.start,\n end: program.start + duration,\n group: program.group\n };\n }\n function go(b) {\n const { delay = 0, duration = 300, easing = identity, tick = noop, css } = config || null_transition;\n const program = {\n start: now() + delay,\n b\n };\n if (!b) {\n // @ts-ignore todo: improve typings\n program.group = outros;\n outros.r += 1;\n }\n if (running_program || pending_program) {\n pending_program = program;\n }\n else {\n // if this is an intro, and there's a delay, we need to do\n // an initial tick and/or apply CSS animation immediately\n if (css) {\n clear_animation();\n animation_name = create_rule(node, t, b, duration, delay, easing, css);\n }\n if (b)\n tick(0, 1);\n running_program = init(program, duration);\n add_render_callback(() => dispatch(node, b, 'start'));\n loop(now => {\n if (pending_program && now > pending_program.start) {\n running_program = init(pending_program, duration);\n pending_program = null;\n dispatch(node, running_program.b, 'start');\n if (css) {\n clear_animation();\n animation_name = create_rule(node, t, running_program.b, running_program.duration, 0, easing, config.css);\n }\n }\n if (running_program) {\n if (now >= running_program.end) {\n tick(t = running_program.b, 1 - t);\n dispatch(node, running_program.b, 'end');\n if (!pending_program) {\n // we're done\n if (running_program.b) {\n // intro — we can tidy up immediately\n clear_animation();\n }\n else {\n // outro — needs to be coordinated\n if (!--running_program.group.r)\n run_all(running_program.group.c);\n }\n }\n running_program = null;\n }\n else if (now >= running_program.start) {\n const p = now - running_program.start;\n t = running_program.a + running_program.d * easing(p / running_program.duration);\n tick(t, 1 - t);\n }\n }\n return !!(running_program || pending_program);\n });\n }\n }\n return {\n run(b) {\n if (is_function(config)) {\n wait().then(() => {\n // @ts-ignore\n config = config();\n go(b);\n });\n }\n else {\n go(b);\n }\n },\n end() {\n clear_animation();\n running_program = pending_program = null;\n }\n };\n}\n\nfunction handle_promise(promise, info) {\n const token = info.token = {};\n function update(type, index, key, value) {\n if (info.token !== token)\n return;\n info.resolved = value;\n let child_ctx = info.ctx;\n if (key !== undefined) {\n child_ctx = child_ctx.slice();\n child_ctx[key] = value;\n }\n const block = type && (info.current = type)(child_ctx);\n let needs_flush = false;\n if (info.block) {\n if (info.blocks) {\n info.blocks.forEach((block, i) => {\n if (i !== index && block) {\n group_outros();\n transition_out(block, 1, 1, () => {\n if (info.blocks[i] === block) {\n info.blocks[i] = null;\n }\n });\n check_outros();\n }\n });\n }\n else {\n info.block.d(1);\n }\n block.c();\n transition_in(block, 1);\n block.m(info.mount(), info.anchor);\n needs_flush = true;\n }\n info.block = block;\n if (info.blocks)\n info.blocks[index] = block;\n if (needs_flush) {\n flush();\n }\n }\n if (is_promise(promise)) {\n const current_component = get_current_component();\n promise.then(value => {\n set_current_component(current_component);\n update(info.then, 1, info.value, value);\n set_current_component(null);\n }, error => {\n set_current_component(current_component);\n update(info.catch, 2, info.error, error);\n set_current_component(null);\n if (!info.hasCatch) {\n throw error;\n }\n });\n // if we previously had a then/catch block, destroy it\n if (info.current !== info.pending) {\n update(info.pending, 0);\n return true;\n }\n }\n else {\n if (info.current !== info.then) {\n update(info.then, 1, info.value, promise);\n return true;\n }\n info.resolved = promise;\n }\n}\nfunction update_await_block_branch(info, ctx, dirty) {\n const child_ctx = ctx.slice();\n const { resolved } = info;\n if (info.current === info.then) {\n child_ctx[info.value] = resolved;\n }\n if (info.current === info.catch) {\n child_ctx[info.error] = resolved;\n }\n info.block.p(child_ctx, dirty);\n}\n\nconst globals = (typeof window !== 'undefined'\n ? window\n : typeof globalThis !== 'undefined'\n ? globalThis\n : global);\n\nfunction destroy_block(block, lookup) {\n block.d(1);\n lookup.delete(block.key);\n}\nfunction outro_and_destroy_block(block, lookup) {\n transition_out(block, 1, 1, () => {\n lookup.delete(block.key);\n });\n}\nfunction fix_and_destroy_block(block, lookup) {\n block.f();\n destroy_block(block, lookup);\n}\nfunction fix_and_outro_and_destroy_block(block, lookup) {\n block.f();\n outro_and_destroy_block(block, lookup);\n}\nfunction update_keyed_each(old_blocks, dirty, get_key, dynamic, ctx, list, lookup, node, destroy, create_each_block, next, get_context) {\n let o = old_blocks.length;\n let n = list.length;\n let i = o;\n const old_indexes = {};\n while (i--)\n old_indexes[old_blocks[i].key] = i;\n const new_blocks = [];\n const new_lookup = new Map();\n const deltas = new Map();\n i = n;\n while (i--) {\n const child_ctx = get_context(ctx, list, i);\n const key = get_key(child_ctx);\n let block = lookup.get(key);\n if (!block) {\n block = create_each_block(key, child_ctx);\n block.c();\n }\n else if (dynamic) {\n block.p(child_ctx, dirty);\n }\n new_lookup.set(key, new_blocks[i] = block);\n if (key in old_indexes)\n deltas.set(key, Math.abs(i - old_indexes[key]));\n }\n const will_move = new Set();\n const did_move = new Set();\n function insert(block) {\n transition_in(block, 1);\n block.m(node, next);\n lookup.set(block.key, block);\n next = block.first;\n n--;\n }\n while (o && n) {\n const new_block = new_blocks[n - 1];\n const old_block = old_blocks[o - 1];\n const new_key = new_block.key;\n const old_key = old_block.key;\n if (new_block === old_block) {\n // do nothing\n next = new_block.first;\n o--;\n n--;\n }\n else if (!new_lookup.has(old_key)) {\n // remove old block\n destroy(old_block, lookup);\n o--;\n }\n else if (!lookup.has(new_key) || will_move.has(new_key)) {\n insert(new_block);\n }\n else if (did_move.has(old_key)) {\n o--;\n }\n else if (deltas.get(new_key) > deltas.get(old_key)) {\n did_move.add(new_key);\n insert(new_block);\n }\n else {\n will_move.add(old_key);\n o--;\n }\n }\n while (o--) {\n const old_block = old_blocks[o];\n if (!new_lookup.has(old_block.key))\n destroy(old_block, lookup);\n }\n while (n)\n insert(new_blocks[n - 1]);\n return new_blocks;\n}\nfunction validate_each_keys(ctx, list, get_context, get_key) {\n const keys = new Set();\n for (let i = 0; i < list.length; i++) {\n const key = get_key(get_context(ctx, list, i));\n if (keys.has(key)) {\n throw new Error('Cannot have duplicate keys in a keyed each');\n }\n keys.add(key);\n }\n}\n\nfunction get_spread_update(levels, updates) {\n const update = {};\n const to_null_out = {};\n const accounted_for = { $$scope: 1 };\n let i = levels.length;\n while (i--) {\n const o = levels[i];\n const n = updates[i];\n if (n) {\n for (const key in o) {\n if (!(key in n))\n to_null_out[key] = 1;\n }\n for (const key in n) {\n if (!accounted_for[key]) {\n update[key] = n[key];\n accounted_for[key] = 1;\n }\n }\n levels[i] = n;\n }\n else {\n for (const key in o) {\n accounted_for[key] = 1;\n }\n }\n }\n for (const key in to_null_out) {\n if (!(key in update))\n update[key] = undefined;\n }\n return update;\n}\nfunction get_spread_object(spread_props) {\n return typeof spread_props === 'object' && spread_props !== null ? spread_props : {};\n}\n\n// source: https://html.spec.whatwg.org/multipage/indices.html\nconst boolean_attributes = new Set([\n 'allowfullscreen',\n 'allowpaymentrequest',\n 'async',\n 'autofocus',\n 'autoplay',\n 'checked',\n 'controls',\n 'default',\n 'defer',\n 'disabled',\n 'formnovalidate',\n 'hidden',\n 'inert',\n 'ismap',\n 'itemscope',\n 'loop',\n 'multiple',\n 'muted',\n 'nomodule',\n 'novalidate',\n 'open',\n 'playsinline',\n 'readonly',\n 'required',\n 'reversed',\n 'selected'\n]);\n\n/** regex of all html void element names */\nconst void_element_names = /^(?:area|base|br|col|command|embed|hr|img|input|keygen|link|meta|param|source|track|wbr)$/;\nfunction is_void(name) {\n return void_element_names.test(name) || name.toLowerCase() === '!doctype';\n}\n\nconst invalid_attribute_name_character = /[\\s'\">/=\\u{FDD0}-\\u{FDEF}\\u{FFFE}\\u{FFFF}\\u{1FFFE}\\u{1FFFF}\\u{2FFFE}\\u{2FFFF}\\u{3FFFE}\\u{3FFFF}\\u{4FFFE}\\u{4FFFF}\\u{5FFFE}\\u{5FFFF}\\u{6FFFE}\\u{6FFFF}\\u{7FFFE}\\u{7FFFF}\\u{8FFFE}\\u{8FFFF}\\u{9FFFE}\\u{9FFFF}\\u{AFFFE}\\u{AFFFF}\\u{BFFFE}\\u{BFFFF}\\u{CFFFE}\\u{CFFFF}\\u{DFFFE}\\u{DFFFF}\\u{EFFFE}\\u{EFFFF}\\u{FFFFE}\\u{FFFFF}\\u{10FFFE}\\u{10FFFF}]/u;\n// https://html.spec.whatwg.org/multipage/syntax.html#attributes-2\n// https://infra.spec.whatwg.org/#noncharacter\nfunction spread(args, attrs_to_add) {\n const attributes = Object.assign({}, ...args);\n if (attrs_to_add) {\n const classes_to_add = attrs_to_add.classes;\n const styles_to_add = attrs_to_add.styles;\n if (classes_to_add) {\n if (attributes.class == null) {\n attributes.class = classes_to_add;\n }\n else {\n attributes.class += ' ' + classes_to_add;\n }\n }\n if (styles_to_add) {\n if (attributes.style == null) {\n attributes.style = style_object_to_string(styles_to_add);\n }\n else {\n attributes.style = style_object_to_string(merge_ssr_styles(attributes.style, styles_to_add));\n }\n }\n }\n let str = '';\n Object.keys(attributes).forEach(name => {\n if (invalid_attribute_name_character.test(name))\n return;\n const value = attributes[name];\n if (value === true)\n str += ' ' + name;\n else if (boolean_attributes.has(name.toLowerCase())) {\n if (value)\n str += ' ' + name;\n }\n else if (value != null) {\n str += ` ${name}=\"${value}\"`;\n }\n });\n return str;\n}\nfunction merge_ssr_styles(style_attribute, style_directive) {\n const style_object = {};\n for (const individual_style of style_attribute.split(';')) {\n const colon_index = individual_style.indexOf(':');\n const name = individual_style.slice(0, colon_index).trim();\n const value = individual_style.slice(colon_index + 1).trim();\n if (!name)\n continue;\n style_object[name] = value;\n }\n for (const name in style_directive) {\n const value = style_directive[name];\n if (value) {\n style_object[name] = value;\n }\n else {\n delete style_object[name];\n }\n }\n return style_object;\n}\nconst ATTR_REGEX = /[&\"]/g;\nconst CONTENT_REGEX = /[&<]/g;\n/**\n * Note: this method is performance sensitive and has been optimized\n * https://github.com/sveltejs/svelte/pull/5701\n */\nfunction escape(value, is_attr = false) {\n const str = String(value);\n const pattern = is_attr ? ATTR_REGEX : CONTENT_REGEX;\n pattern.lastIndex = 0;\n let escaped = '';\n let last = 0;\n while (pattern.test(str)) {\n const i = pattern.lastIndex - 1;\n const ch = str[i];\n escaped += str.substring(last, i) + (ch === '&' ? '&' : (ch === '\"' ? '"' : '<'));\n last = i + 1;\n }\n return escaped + str.substring(last);\n}\nfunction escape_attribute_value(value) {\n // keep booleans, null, and undefined for the sake of `spread`\n const should_escape = typeof value === 'string' || (value && typeof value === 'object');\n return should_escape ? escape(value, true) : value;\n}\nfunction escape_object(obj) {\n const result = {};\n for (const key in obj) {\n result[key] = escape_attribute_value(obj[key]);\n }\n return result;\n}\nfunction each(items, fn) {\n let str = '';\n for (let i = 0; i < items.length; i += 1) {\n str += fn(items[i], i);\n }\n return str;\n}\nconst missing_component = {\n $$render: () => ''\n};\nfunction validate_component(component, name) {\n if (!component || !component.$$render) {\n if (name === 'svelte:component')\n name += ' this={...}';\n throw new Error(`<${name}> is not a valid SSR component. You may need to review your build config to ensure that dependencies are compiled, rather than imported as pre-compiled modules. Otherwise you may need to fix a <${name}>.`);\n }\n return component;\n}\nfunction debug(file, line, column, values) {\n console.log(`{@debug} ${file ? file + ' ' : ''}(${line}:${column})`); // eslint-disable-line no-console\n console.log(values); // eslint-disable-line no-console\n return '';\n}\nlet on_destroy;\nfunction create_ssr_component(fn) {\n function $$render(result, props, bindings, slots, context) {\n const parent_component = current_component;\n const $$ = {\n on_destroy,\n context: new Map(context || (parent_component ? parent_component.$$.context : [])),\n // these will be immediately discarded\n on_mount: [],\n before_update: [],\n after_update: [],\n callbacks: blank_object()\n };\n set_current_component({ $$ });\n const html = fn(result, props, bindings, slots);\n set_current_component(parent_component);\n return html;\n }\n return {\n render: (props = {}, { $$slots = {}, context = new Map() } = {}) => {\n on_destroy = [];\n const result = { title: '', head: '', css: new Set() };\n const html = $$render(result, props, {}, $$slots, context);\n run_all(on_destroy);\n return {\n html,\n css: {\n code: Array.from(result.css).map(css => css.code).join('\\n'),\n map: null // TODO\n },\n head: result.title + result.head\n };\n },\n $$render\n };\n}\nfunction add_attribute(name, value, boolean) {\n if (value == null || (boolean && !value))\n return '';\n const assignment = (boolean && value === true) ? '' : `=\"${escape(value, true)}\"`;\n return ` ${name}${assignment}`;\n}\nfunction add_classes(classes) {\n return classes ? ` class=\"${classes}\"` : '';\n}\nfunction style_object_to_string(style_object) {\n return Object.keys(style_object)\n .filter(key => style_object[key])\n .map(key => `${key}: ${style_object[key]};`)\n .join(' ');\n}\nfunction add_styles(style_object) {\n const styles = style_object_to_string(style_object);\n return styles ? ` style=\"${styles}\"` : '';\n}\n\nfunction bind(component, name, callback) {\n const index = component.$$.props[name];\n if (index !== undefined) {\n component.$$.bound[index] = callback;\n callback(component.$$.ctx[index]);\n }\n}\nfunction create_component(block) {\n block && block.c();\n}\nfunction claim_component(block, parent_nodes) {\n block && block.l(parent_nodes);\n}\nfunction mount_component(component, target, anchor, customElement) {\n const { fragment, after_update } = component.$$;\n fragment && fragment.m(target, anchor);\n if (!customElement) {\n // onMount happens before the initial afterUpdate\n add_render_callback(() => {\n const new_on_destroy = component.$$.on_mount.map(run).filter(is_function);\n // if the component was destroyed immediately\n // it will update the `$$.on_destroy` reference to `null`.\n // the destructured on_destroy may still reference to the old array\n if (component.$$.on_destroy) {\n component.$$.on_destroy.push(...new_on_destroy);\n }\n else {\n // Edge case - component was destroyed immediately,\n // most likely as a result of a binding initialising\n run_all(new_on_destroy);\n }\n component.$$.on_mount = [];\n });\n }\n after_update.forEach(add_render_callback);\n}\nfunction destroy_component(component, detaching) {\n const $$ = component.$$;\n if ($$.fragment !== null) {\n run_all($$.on_destroy);\n $$.fragment && $$.fragment.d(detaching);\n // TODO null out other refs, including component.$$ (but need to\n // preserve final state?)\n $$.on_destroy = $$.fragment = null;\n $$.ctx = [];\n }\n}\nfunction make_dirty(component, i) {\n if (component.$$.dirty[0] === -1) {\n dirty_components.push(component);\n schedule_update();\n component.$$.dirty.fill(0);\n }\n component.$$.dirty[(i / 31) | 0] |= (1 << (i % 31));\n}\nfunction init(component, options, instance, create_fragment, not_equal, props, append_styles, dirty = [-1]) {\n const parent_component = current_component;\n set_current_component(component);\n const $$ = component.$$ = {\n fragment: null,\n ctx: [],\n // state\n props,\n update: noop,\n not_equal,\n bound: blank_object(),\n // lifecycle\n on_mount: [],\n on_destroy: [],\n on_disconnect: [],\n before_update: [],\n after_update: [],\n context: new Map(options.context || (parent_component ? parent_component.$$.context : [])),\n // everything else\n callbacks: blank_object(),\n dirty,\n skip_bound: false,\n root: options.target || parent_component.$$.root\n };\n append_styles && append_styles($$.root);\n let ready = false;\n $$.ctx = instance\n ? instance(component, options.props || {}, (i, ret, ...rest) => {\n const value = rest.length ? rest[0] : ret;\n if ($$.ctx && not_equal($$.ctx[i], $$.ctx[i] = value)) {\n if (!$$.skip_bound && $$.bound[i])\n $$.bound[i](value);\n if (ready)\n make_dirty(component, i);\n }\n return ret;\n })\n : [];\n $$.update();\n ready = true;\n run_all($$.before_update);\n // `false` as a special case of no DOM component\n $$.fragment = create_fragment ? create_fragment($$.ctx) : false;\n if (options.target) {\n if (options.hydrate) {\n start_hydrating();\n const nodes = children(options.target);\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n $$.fragment && $$.fragment.l(nodes);\n nodes.forEach(detach);\n }\n else {\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n $$.fragment && $$.fragment.c();\n }\n if (options.intro)\n transition_in(component.$$.fragment);\n mount_component(component, options.target, options.anchor, options.customElement);\n end_hydrating();\n flush();\n }\n set_current_component(parent_component);\n}\nlet SvelteElement;\nif (typeof HTMLElement === 'function') {\n SvelteElement = class extends HTMLElement {\n constructor() {\n super();\n this.attachShadow({ mode: 'open' });\n }\n connectedCallback() {\n const { on_mount } = this.$$;\n this.$$.on_disconnect = on_mount.map(run).filter(is_function);\n // @ts-ignore todo: improve typings\n for (const key in this.$$.slotted) {\n // @ts-ignore todo: improve typings\n this.appendChild(this.$$.slotted[key]);\n }\n }\n attributeChangedCallback(attr, _oldValue, newValue) {\n this[attr] = newValue;\n }\n disconnectedCallback() {\n run_all(this.$$.on_disconnect);\n }\n $destroy() {\n destroy_component(this, 1);\n this.$destroy = noop;\n }\n $on(type, callback) {\n // TODO should this delegate to addEventListener?\n if (!is_function(callback)) {\n return noop;\n }\n const callbacks = (this.$$.callbacks[type] || (this.$$.callbacks[type] = []));\n callbacks.push(callback);\n return () => {\n const index = callbacks.indexOf(callback);\n if (index !== -1)\n callbacks.splice(index, 1);\n };\n }\n $set($$props) {\n if (this.$$set && !is_empty($$props)) {\n this.$$.skip_bound = true;\n this.$$set($$props);\n this.$$.skip_bound = false;\n }\n }\n };\n}\n/**\n * Base class for Svelte components. Used when dev=false.\n */\nclass SvelteComponent {\n $destroy() {\n destroy_component(this, 1);\n this.$destroy = noop;\n }\n $on(type, callback) {\n if (!is_function(callback)) {\n return noop;\n }\n const callbacks = (this.$$.callbacks[type] || (this.$$.callbacks[type] = []));\n callbacks.push(callback);\n return () => {\n const index = callbacks.indexOf(callback);\n if (index !== -1)\n callbacks.splice(index, 1);\n };\n }\n $set($$props) {\n if (this.$$set && !is_empty($$props)) {\n this.$$.skip_bound = true;\n this.$$set($$props);\n this.$$.skip_bound = false;\n }\n }\n}\n\nfunction dispatch_dev(type, detail) {\n document.dispatchEvent(custom_event(type, Object.assign({ version: '3.53.1' }, detail), { bubbles: true }));\n}\nfunction append_dev(target, node) {\n dispatch_dev('SvelteDOMInsert', { target, node });\n append(target, node);\n}\nfunction append_hydration_dev(target, node) {\n dispatch_dev('SvelteDOMInsert', { target, node });\n append_hydration(target, node);\n}\nfunction insert_dev(target, node, anchor) {\n dispatch_dev('SvelteDOMInsert', { target, node, anchor });\n insert(target, node, anchor);\n}\nfunction insert_hydration_dev(target, node, anchor) {\n dispatch_dev('SvelteDOMInsert', { target, node, anchor });\n insert_hydration(target, node, anchor);\n}\nfunction detach_dev(node) {\n dispatch_dev('SvelteDOMRemove', { node });\n detach(node);\n}\nfunction detach_between_dev(before, after) {\n while (before.nextSibling && before.nextSibling !== after) {\n detach_dev(before.nextSibling);\n }\n}\nfunction detach_before_dev(after) {\n while (after.previousSibling) {\n detach_dev(after.previousSibling);\n }\n}\nfunction detach_after_dev(before) {\n while (before.nextSibling) {\n detach_dev(before.nextSibling);\n }\n}\nfunction listen_dev(node, event, handler, options, has_prevent_default, has_stop_propagation) {\n const modifiers = options === true ? ['capture'] : options ? Array.from(Object.keys(options)) : [];\n if (has_prevent_default)\n modifiers.push('preventDefault');\n if (has_stop_propagation)\n modifiers.push('stopPropagation');\n dispatch_dev('SvelteDOMAddEventListener', { node, event, handler, modifiers });\n const dispose = listen(node, event, handler, options);\n return () => {\n dispatch_dev('SvelteDOMRemoveEventListener', { node, event, handler, modifiers });\n dispose();\n };\n}\nfunction attr_dev(node, attribute, value) {\n attr(node, attribute, value);\n if (value == null)\n dispatch_dev('SvelteDOMRemoveAttribute', { node, attribute });\n else\n dispatch_dev('SvelteDOMSetAttribute', { node, attribute, value });\n}\nfunction prop_dev(node, property, value) {\n node[property] = value;\n dispatch_dev('SvelteDOMSetProperty', { node, property, value });\n}\nfunction dataset_dev(node, property, value) {\n node.dataset[property] = value;\n dispatch_dev('SvelteDOMSetDataset', { node, property, value });\n}\nfunction set_data_dev(text, data) {\n data = '' + data;\n if (text.wholeText === data)\n return;\n dispatch_dev('SvelteDOMSetData', { node: text, data });\n text.data = data;\n}\nfunction validate_each_argument(arg) {\n if (typeof arg !== 'string' && !(arg && typeof arg === 'object' && 'length' in arg)) {\n let msg = '{#each} only iterates over array-like objects.';\n if (typeof Symbol === 'function' && arg && Symbol.iterator in arg) {\n msg += ' You can use a spread to convert this iterable into an array.';\n }\n throw new Error(msg);\n }\n}\nfunction validate_slots(name, slot, keys) {\n for (const slot_key of Object.keys(slot)) {\n if (!~keys.indexOf(slot_key)) {\n console.warn(`<${name}> received an unexpected slot \"${slot_key}\".`);\n }\n }\n}\nfunction validate_dynamic_element(tag) {\n const is_string = typeof tag === 'string';\n if (tag && !is_string) {\n throw new Error(' expects \"this\" attribute to be a string.');\n }\n}\nfunction validate_void_dynamic_element(tag) {\n if (tag && is_void(tag)) {\n console.warn(` is self-closing and cannot have content.`);\n }\n}\nfunction construct_svelte_component_dev(component, props) {\n const error_message = 'this={...} of should specify a Svelte component.';\n try {\n const instance = new component(props);\n if (!instance.$$ || !instance.$set || !instance.$on || !instance.$destroy) {\n throw new Error(error_message);\n }\n return instance;\n }\n catch (err) {\n const { message } = err;\n if (typeof message === 'string' && message.indexOf('is not a constructor') !== -1) {\n throw new Error(error_message);\n }\n else {\n throw err;\n }\n }\n}\n/**\n * Base class for Svelte components with some minor dev-enhancements. Used when dev=true.\n */\nclass SvelteComponentDev extends SvelteComponent {\n constructor(options) {\n if (!options || (!options.target && !options.$$inline)) {\n throw new Error(\"'target' is a required option\");\n }\n super();\n }\n $destroy() {\n super.$destroy();\n this.$destroy = () => {\n console.warn('Component was already destroyed'); // eslint-disable-line no-console\n };\n }\n $capture_state() { }\n $inject_state() { }\n}\n/**\n * Base class to create strongly typed Svelte components.\n * This only exists for typing purposes and should be used in `.d.ts` files.\n *\n * ### Example:\n *\n * You have component library on npm called `component-library`, from which\n * you export a component called `MyComponent`. For Svelte+TypeScript users,\n * you want to provide typings. Therefore you create a `index.d.ts`:\n * ```ts\n * import { SvelteComponentTyped } from \"svelte\";\n * export class MyComponent extends SvelteComponentTyped<{foo: string}> {}\n * ```\n * Typing this makes it possible for IDEs like VS Code with the Svelte extension\n * to provide intellisense and to use the component like this in a Svelte file\n * with TypeScript:\n * ```svelte\n * \n * \n * ```\n *\n * #### Why not make this part of `SvelteComponent(Dev)`?\n * Because\n * ```ts\n * class ASubclassOfSvelteComponent extends SvelteComponent<{foo: string}> {}\n * const component: typeof SvelteComponent = ASubclassOfSvelteComponent;\n * ```\n * will throw a type error, so we need to separate the more strictly typed class.\n */\nclass SvelteComponentTyped extends SvelteComponentDev {\n constructor(options) {\n super(options);\n }\n}\nfunction loop_guard(timeout) {\n const start = Date.now();\n return () => {\n if (Date.now() - start > timeout) {\n throw new Error('Infinite loop detected');\n }\n };\n}\n\nexport { HtmlTag, HtmlTagHydration, SvelteComponent, SvelteComponentDev, SvelteComponentTyped, SvelteElement, action_destroyer, add_attribute, add_classes, add_flush_callback, add_location, add_render_callback, add_resize_listener, add_styles, add_transform, afterUpdate, append, append_dev, append_empty_stylesheet, append_hydration, append_hydration_dev, append_styles, assign, attr, attr_dev, attribute_to_object, beforeUpdate, bind, binding_callbacks, blank_object, bubble, check_outros, children, claim_component, claim_element, claim_html_tag, claim_space, claim_svg_element, claim_text, clear_loops, component_subscribe, compute_rest_props, compute_slots, construct_svelte_component, construct_svelte_component_dev, createEventDispatcher, create_animation, create_bidirectional_transition, create_component, create_in_transition, create_out_transition, create_slot, create_ssr_component, current_component, custom_event, dataset_dev, debug, destroy_block, destroy_component, destroy_each, detach, detach_after_dev, detach_before_dev, detach_between_dev, detach_dev, dirty_components, dispatch_dev, each, element, element_is, empty, end_hydrating, escape, escape_attribute_value, escape_object, exclude_internal_props, fix_and_destroy_block, fix_and_outro_and_destroy_block, fix_position, flush, getAllContexts, getContext, get_all_dirty_from_scope, get_binding_group_value, get_current_component, get_custom_elements_slots, get_root_for_style, get_slot_changes, get_spread_object, get_spread_update, get_store_value, globals, group_outros, handle_promise, hasContext, has_prop, head_selector, identity, init, insert, insert_dev, insert_hydration, insert_hydration_dev, intros, invalid_attribute_name_character, is_client, is_crossorigin, is_empty, is_function, is_promise, is_void, listen, listen_dev, loop, loop_guard, merge_ssr_styles, missing_component, mount_component, noop, not_equal, now, null_to_empty, object_without_properties, onDestroy, onMount, once, outro_and_destroy_block, prevent_default, prop_dev, query_selector_all, raf, run, run_all, safe_not_equal, schedule_update, select_multiple_value, select_option, select_options, select_value, self, setContext, set_attributes, set_current_component, set_custom_element_data, set_custom_element_data_map, set_data, set_data_dev, set_input_type, set_input_value, set_now, set_raf, set_store_value, set_style, set_svg_attributes, space, spread, src_url_equal, start_hydrating, stop_propagation, subscribe, svg_element, text, tick, time_ranges_to_array, to_number, toggle_class, transition_in, transition_out, trusted, update_await_block_branch, update_keyed_each, update_slot, update_slot_base, validate_component, validate_dynamic_element, validate_each_argument, validate_each_keys, validate_slots, validate_store, validate_void_dynamic_element, xlink_attr };\n","/**\n * @typedef {Object} WrappedComponent Object returned by the `wrap` method\n * @property {SvelteComponent} component - Component to load (this is always asynchronous)\n * @property {RoutePrecondition[]} [conditions] - Route pre-conditions to validate\n * @property {Object} [props] - Optional dictionary of static props\n * @property {Object} [userData] - Optional user data dictionary\n * @property {bool} _sveltesparouter - Internal flag; always set to true\n */\n\n/**\n * @callback AsyncSvelteComponent\n * @returns {Promise} Returns a Promise that resolves with a Svelte component\n */\n\n/**\n * @callback RoutePrecondition\n * @param {RouteDetail} detail - Route detail object\n * @returns {boolean|Promise} If the callback returns a false-y value, it's interpreted as the precondition failed, so it aborts loading the component (and won't process other pre-condition callbacks)\n */\n\n/**\n * @typedef {Object} WrapOptions Options object for the call to `wrap`\n * @property {SvelteComponent} [component] - Svelte component to load (this is incompatible with `asyncComponent`)\n * @property {AsyncSvelteComponent} [asyncComponent] - Function that returns a Promise that fulfills with a Svelte component (e.g. `{asyncComponent: () => import('Foo.svelte')}`)\n * @property {SvelteComponent} [loadingComponent] - Svelte component to be displayed while the async route is loading (as a placeholder); when unset or false-y, no component is shown while component\n * @property {object} [loadingParams] - Optional dictionary passed to the `loadingComponent` component as params (for an exported prop called `params`)\n * @property {object} [userData] - Optional object that will be passed to events such as `routeLoading`, `routeLoaded`, `conditionsFailed`\n * @property {object} [props] - Optional key-value dictionary of static props that will be passed to the component. The props are expanded with {...props}, so the key in the dictionary becomes the name of the prop.\n * @property {RoutePrecondition[]|RoutePrecondition} [conditions] - Route pre-conditions to add, which will be executed in order\n */\n\n/**\n * Wraps a component to enable multiple capabilities:\n * 1. Using dynamically-imported component, with (e.g. `{asyncComponent: () => import('Foo.svelte')}`), which also allows bundlers to do code-splitting.\n * 2. Adding route pre-conditions (e.g. `{conditions: [...]}`)\n * 3. Adding static props that are passed to the component\n * 4. Adding custom userData, which is passed to route events (e.g. route loaded events) or to route pre-conditions (e.g. `{userData: {foo: 'bar}}`)\n * \n * @param {WrapOptions} args - Arguments object\n * @returns {WrappedComponent} Wrapped component\n */\nexport function wrap(args) {\n if (!args) {\n throw Error('Parameter args is required')\n }\n\n // We need to have one and only one of component and asyncComponent\n // This does a \"XNOR\"\n if (!args.component == !args.asyncComponent) {\n throw Error('One and only one of component and asyncComponent is required')\n }\n\n // If the component is not async, wrap it into a function returning a Promise\n if (args.component) {\n args.asyncComponent = () => Promise.resolve(args.component)\n }\n\n // Parameter asyncComponent and each item of conditions must be functions\n if (typeof args.asyncComponent != 'function') {\n throw Error('Parameter asyncComponent must be a function')\n }\n if (args.conditions) {\n // Ensure it's an array\n if (!Array.isArray(args.conditions)) {\n args.conditions = [args.conditions]\n }\n for (let i = 0; i < args.conditions.length; i++) {\n if (!args.conditions[i] || typeof args.conditions[i] != 'function') {\n throw Error('Invalid parameter conditions[' + i + ']')\n }\n }\n }\n\n // Check if we have a placeholder component\n if (args.loadingComponent) {\n args.asyncComponent.loading = args.loadingComponent\n args.asyncComponent.loadingParams = args.loadingParams || undefined\n }\n\n // Returns an object that contains all the functions to execute too\n // The _sveltesparouter flag is to confirm the object was created by this router\n const obj = {\n component: args.asyncComponent,\n userData: args.userData,\n conditions: (args.conditions && args.conditions.length) ? args.conditions : undefined,\n props: (args.props && Object.keys(args.props).length) ? args.props : {},\n _sveltesparouter: true\n }\n\n return obj\n}\n\nexport default wrap\n","import { noop, safe_not_equal, subscribe, run_all, is_function } from '../internal/index.mjs';\nexport { get_store_value as get } from '../internal/index.mjs';\n\nconst subscriber_queue = [];\n/**\n * Creates a `Readable` store that allows reading by subscription.\n * @param value initial value\n * @param {StartStopNotifier}start start and stop notifications for subscriptions\n */\nfunction readable(value, start) {\n return {\n subscribe: writable(value, start).subscribe\n };\n}\n/**\n * Create a `Writable` store that allows both updating and reading by subscription.\n * @param {*=}value initial value\n * @param {StartStopNotifier=}start start and stop notifications for subscriptions\n */\nfunction writable(value, start = noop) {\n let stop;\n const subscribers = new Set();\n function set(new_value) {\n if (safe_not_equal(value, new_value)) {\n value = new_value;\n if (stop) { // store is ready\n const run_queue = !subscriber_queue.length;\n for (const subscriber of subscribers) {\n subscriber[1]();\n subscriber_queue.push(subscriber, value);\n }\n if (run_queue) {\n for (let i = 0; i < subscriber_queue.length; i += 2) {\n subscriber_queue[i][0](subscriber_queue[i + 1]);\n }\n subscriber_queue.length = 0;\n }\n }\n }\n }\n function update(fn) {\n set(fn(value));\n }\n function subscribe(run, invalidate = noop) {\n const subscriber = [run, invalidate];\n subscribers.add(subscriber);\n if (subscribers.size === 1) {\n stop = start(set) || noop;\n }\n run(value);\n return () => {\n subscribers.delete(subscriber);\n if (subscribers.size === 0) {\n stop();\n stop = null;\n }\n };\n }\n return { set, update, subscribe };\n}\nfunction derived(stores, fn, initial_value) {\n const single = !Array.isArray(stores);\n const stores_array = single\n ? [stores]\n : stores;\n const auto = fn.length < 2;\n return readable(initial_value, (set) => {\n let inited = false;\n const values = [];\n let pending = 0;\n let cleanup = noop;\n const sync = () => {\n if (pending) {\n return;\n }\n cleanup();\n const result = fn(single ? values[0] : values, set);\n if (auto) {\n set(result);\n }\n else {\n cleanup = is_function(result) ? result : noop;\n }\n };\n const unsubscribers = stores_array.map((store, i) => subscribe(store, (value) => {\n values[i] = value;\n pending &= ~(1 << i);\n if (inited) {\n sync();\n }\n }, () => {\n pending |= (1 << i);\n }));\n inited = true;\n sync();\n return function stop() {\n run_all(unsubscribers);\n cleanup();\n };\n });\n}\n\nexport { derived, readable, writable };\n","export function parse(str, loose) {\n\tif (str instanceof RegExp) return { keys:false, pattern:str };\n\tvar c, o, tmp, ext, keys=[], pattern='', arr = str.split('/');\n\tarr[0] || arr.shift();\n\n\twhile (tmp = arr.shift()) {\n\t\tc = tmp[0];\n\t\tif (c === '*') {\n\t\t\tkeys.push('wild');\n\t\t\tpattern += '/(.*)';\n\t\t} else if (c === ':') {\n\t\t\to = tmp.indexOf('?', 1);\n\t\t\text = tmp.indexOf('.', 1);\n\t\t\tkeys.push( tmp.substring(1, !!~o ? o : !!~ext ? ext : tmp.length) );\n\t\t\tpattern += !!~o && !~ext ? '(?:/([^/]+?))?' : '/([^/]+?)';\n\t\t\tif (!!~ext) pattern += (!!~o ? '?' : '') + '\\\\' + tmp.substring(ext);\n\t\t} else {\n\t\t\tpattern += '/' + tmp;\n\t\t}\n\t}\n\n\treturn {\n\t\tkeys: keys,\n\t\tpattern: new RegExp('^' + pattern + (loose ? '(?=$|\\/)' : '\\/?$'), 'i')\n\t};\n}\n\nvar RGX = /*#__PURE__*/ /(\\/|^)([:*][^/]*?)(\\?)?(?=[/.]|$)/g;\n\n// error if key missing?\nexport function inject(route, values) {\n\treturn route.replace(RGX, (x, lead, key, optional) => {\n\t\tx = values[key=='*' ? 'wild' : key.substring(1)];\n\t\treturn x ? '/'+x : (optional || key=='*') ? '' : '/' + key;\n\t});\n}\n","\n\n{#if componentParams}\n \n{:else}\n \n{/if}\n\n\n","\n\n

    We are sorry!

    \n

    This isn't a url that we use.

    \n\n

    Go home you're drunk.

    \n\n

    Take me home →

    \n
    \n\n","import {parse} from 'regexparam'\nimport {loc} from './Router.svelte'\n\n// List of nodes to update\nconst nodes = []\n\n// Current location\nlet location\n\n// Function that updates all nodes marking the active ones\nfunction checkActive(el) {\n const matchesLocation = el.pattern.test(location)\n toggleClasses(el, el.className, matchesLocation)\n toggleClasses(el, el.inactiveClassName, !matchesLocation)\n}\n\nfunction toggleClasses(el, className, shouldAdd) {\n (className || '').split(' ').forEach((cls) => {\n if (!cls) {\n return\n }\n // Remove the class firsts\n el.node.classList.remove(cls)\n\n // If the pattern doesn't match, then set the class\n if (shouldAdd) {\n el.node.classList.add(cls)\n }\n })\n}\n\n// Listen to changes in the location\nloc.subscribe((value) => {\n // Update the location\n location = value.location + (value.querystring ? '?' + value.querystring : '')\n\n // Update all nodes\n nodes.map(checkActive)\n})\n\n/**\n * @typedef {Object} ActiveOptions\n * @property {string|RegExp} [path] - Path expression that makes the link active when matched (must start with '/' or '*'); default is the link's href\n * @property {string} [className] - CSS class to apply to the element when active; default value is \"active\"\n */\n\n/**\n * Svelte Action for automatically adding the \"active\" class to elements (links, or any other DOM element) when the current location matches a certain path.\n * \n * @param {HTMLElement} node - The target node (automatically set by Svelte)\n * @param {ActiveOptions|string|RegExp} [opts] - Can be an object of type ActiveOptions, or a string (or regular expressions) representing ActiveOptions.path.\n * @returns {{destroy: function(): void}} Destroy function\n */\nexport default function active(node, opts) {\n // Check options\n if (opts && (typeof opts == 'string' || (typeof opts == 'object' && opts instanceof RegExp))) {\n // Interpret strings and regular expressions as opts.path\n opts = {\n path: opts\n }\n }\n else {\n // Ensure opts is a dictionary\n opts = opts || {}\n }\n\n // Path defaults to link target\n if (!opts.path && node.hasAttribute('href')) {\n opts.path = node.getAttribute('href')\n if (opts.path && opts.path.length > 1 && opts.path.charAt(0) == '#') {\n opts.path = opts.path.substring(1)\n }\n }\n\n // Default class name\n if (!opts.className) {\n opts.className = 'active'\n }\n\n // If path is a string, it must start with '/' or '*'\n if (!opts.path || \n typeof opts.path == 'string' && (opts.path.length < 1 || (opts.path.charAt(0) != '/' && opts.path.charAt(0) != '*'))\n ) {\n throw Error('Invalid value for \"path\" argument')\n }\n\n // If path is not a regular expression already, make it\n const {pattern} = typeof opts.path == 'string' ?\n parse(opts.path) :\n {pattern: opts.path}\n\n // Add the node to the list\n const el = {\n node,\n className: opts.className,\n inactiveClassName: opts.inactiveClassName,\n pattern\n }\n nodes.push(el)\n\n // Trigger the action right away\n checkActive(el)\n\n return {\n // When the element is destroyed, remove it from the list\n destroy() {\n nodes.splice(nodes.indexOf(el), 1)\n }\n }\n}\n","\n\n\n\n
    \n \"Potato (push('/'))}>\n

    Potato Pong

    \n \n
    \n\n\n\n\n\n\n\n","\n\n\n
    \n {#if user !== undefined}\n
    \n \n \n \"default\n
    {errors.avatar}
    \n
    {user.username}
    \n
    Rank:\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n {rank}\n \n
    \n
    \n

    Match Statistics

    \n

    Total: {user.stats.totalGame}

    \n

    Victories: {user.stats.winGame}

    \n

    Losses: {user.stats.loseGame}

    \n

    Draws: {user.stats.drawGame}

    \n
    \n
    \n {/if}\n
    \n\n\n\n\n","\n\n
    \n\t

    temp, for testing :

    \n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n
    \n","import { writable } from 'svelte/store';\n\nexport let msgs = writable([]);\nexport let layout = writable(\"close\");\nexport let room_name = writable(\"\");\n\nexport let user;\nexport let socket;\n\nexport function set_user(new_user) { user = new_user; }\nexport function set_socket(new_socket) { socket = new_socket; }\n\nexport function add_msg(name: string, message: string)\n{\n\tmsgs.update(msgs => [...msgs, { name: \"me\", message: message }]);\n}\n","\n\n
    \n\t\n
    \n\n\n\n","\n\n\n\n\n\n\n\n","\n\n
    \n\t\n
    \n\n\n\n\n","import { msgs, user, layout, socket, room_name } from './Store_chat';\n\nexport async function get_room_messages()\n{\n\tconsole.log(\"in get_room_messages\");\n\tconst response = await fetch('/api/v2/chat/messages');\n\tconst data = await response.json();\n\tconst messages = data.messages;\n\n\tmessages.forEach(function(item) {\n\t\tif (item.name === user.username) {\n\t\t\titem.name = \"me\";\n\t\t}\n\t});\n\n\tmsgs.set(messages);\n}\n\nexport async function create_room(room_name, room_type)\n{\n\tconsole.log(\"in create_room\");\n\n\tlet form_data = {\n\t\troom_name: room_name,\n\t\troom_type: room_type,\n\t};\n\n\t// send the new room\n\tconst response = await fetch('/api/v2/chat/create', {\n\t\tmethod: 'POST',\n\t\theaders: { 'Content-Type': 'application/json' },\n\t\tbody: JSON.stringify(form_data),\n\t});\n\n\t// get response status and message\n\tlet response_status = response.status;\n\tlet data = await response.json();\n\tlet response_message = \"\";\n\tif (data.message)\n\t\tresponse_message = data.message;\n\n\treturn {\n\t\tstatus: response_status,\n\t\tmessage: response_message\n\t};\n}\n\nexport async function join_room(room_name)\n{\n\tconsole.log(\"in join_room\");\n\n\tlet name = {\n\t\troom_name: room_name,\n\t}\n\tconst response = await fetch('/api/v2/chat/join', {\n\t\tmethod: 'POST',\n\t\theaders: { 'Content-Type': 'application/json' },\n\t\tbody: JSON.stringify(name),\n\t});\n\tlet data = await response.json();\n\tconsole.log(data.message);\n\n\tsocket.emit('join', room_name);\n}\n\nexport async function change_room(name)\n{\n\tconsole.log(\"in change_room\");\n\n\tlet r_name = {\n\t\troom_name: name,\n\t}\n\tconst response = await fetch('/api/v2/chat/change', {\n\t\tmethod: 'POST',\n\t\theaders: { 'Content-Type': 'application/json' },\n\t\tbody: JSON.stringify(r_name),\n\t});\n\tlet data = await response.json();\n\tconsole.log(data.message);\n\n\tawait get_room_messages();\n\tsocket.emit('join', name);\n\n\troom_name.set(name);\n\tlayout.set(\"room\");\n}\n\nexport async function get_all_rooms()\n{\n\tconsole.log(\"in get_all_rooms\");\n\n\t// ask api for the rooms\n\tconst response = await fetch('/api/v2/chat/myrooms');\n\tconst data = await response.json();\n\n\tconsole.log(\"data.rooms:\", data.rooms);\n\tfor (let room of data.rooms)\n\t\tconsole.log(room.name);\n\tlet rooms = data.rooms;\n\n\treturn rooms;\n}\n\n","\n\n
    \n\n\t\n\t\n\n\t\n\t\n\n\t\n\t\n\n\t\n\t
    \n\t\t

    list of your rooms :

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

    / you have no chat room yet /

    \n\t\t\t
    \n\t\t\t{#await rooms}\n\t\t\t\t\n\t\t\t\t

    rooms are loaded...

    \n\t\t\t{:then rooms}\n\t\t\t\t{#each rooms as room}\n\t\t\t\t\t\n\t\t\t\t{/each}\n\t\t\t{/await}\n\t\t
    \n\t
    \n\n
    \n\n\n\n","\n\n
    \n\t

    {name}

    \n\t

    \n
    \n\n\n\n","\n\n
    \n\n\t\n\t\n\n\t\n\t\n\n\t\n\t\n\n\t\n\t
    \n\t\t
    \n\t\t\t{#each $msgs as msg}\n\t\t\t\t{@html msg.message}\n\t\t\t{/each}\n\t\t
    \n\t
    \n\n\t\n\t
    \n\t\t
    \n\t
    \n\n\t\n\t\n\n\n\n\n\n\n","\n\n
    \n\n\t\n\t\n\n\t\n\t\n\n\t\n\t\n\n\t\n\t
    \n\t\t\n\t\t

    join room :

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

    / there are no public rooms yet /

    \n\t\t\t
    \n\t\t\t{#await get_rooms}\n\t\t\t\t\n\t\t\t\t

    rooms are loaded...

    \n\t\t\t{:then}\n\t\t\t\t{#each rooms as room}\n\t\t\t\t\t\n\t\t\t\t{/each}\n\t\t\t{/await}\n\t\t
    \n\t
    \n\n
    \n\n\n\n","\n\n
    \n\n\t\n\t\n\n\t\n\t\n\n\t\n\t\n\n\t\n\t
    \n\t\t

    blocked users :

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

    / you have blocked no one /

    \n\t\t\t
    \n\t\t\t\n\t\t\t\n\t\t
    \n\t
    \n\n
    \n\n\n\n\n","\n\n
    \n\n\t\n\t\n\n\t\n\t\n\n\t\n\t\n\n\t\n\t
    \n\t\t\n\t\t

    room users :

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

    / there are no public rooms yet /

    \n\t\t\t
    \n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t
    \n\t
    \n\n\n
    \n\n\n\n\n","\n\n
    \n\n\t\n\t\n\n\t\n\t\n\n\t\n\t\n\n\t\n\t
    \n\t\t

    this room is protected

    \n\t\t
    \n\t\t\t\n\t\t\t\n\t\t\t\n\t\t
    \n\t
    \n\n\n
    \n\n\n\n\n","\n\n

    \n\t{content}\n

    \n","\n\n
    \n\n\t\n\t\n\n\t\n\t\n\n\t\n\t\n\n\t\n\t
    \n\t\t
    \n\t\t\t{#if response.status >= 300}\n\t\t\t\t\n\t\t\t{/if}\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t{#if room_type === 'protected'}\n\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t
    \n\t\t\t{/if}\n\t\t\t\n\t\t\n\t
    \n\n
    \n\n\n\n\n","\n\n
    \n\n\t\n\t\n\n\t\n\t\n\n\t\n\t\n\n\t\n\n\t\n\t
    \n\t\t

    mute this user for a time :

    \n\t\t
    \n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t
    \n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t
    \n\t\t\t\n\t\t
    \n\t
    \n\n\n
    \n\n\n\n\n","\n\n
    \n\n\t\n\t\n\n\t\n\t\n\n\t\n\t\n\n\t\n\t{#if back === \"room_set\"}\n\t\t\n\t{/if}\n\n\t\n\t
    \n\t\t

    user options :

    \n\t\t\n\t\t\n\t\t\n\n\t\t{#if back === \"room_set\"}\n\t\t\t\n\t\t\t\n\t\t{/if}\n\n\t
    \n\n
    \n\n\n\n\n","\n\n\n\n\t{#if $layout === \"home\"}\n\t\t\n\n\t{:else if $layout === \"close\"}\n\t\t\n\n\t{:else if $layout === \"room\"}\n\t\t\n\n\t{:else if $layout === \"new\"}\n\t\t\n\n\t{:else if $layout === \"settings\"}\n\t\t\n\n\t{:else if $layout === \"room_set\"}\n\t\t\n\n\t{:else if $layout === \"protected\"}\n\t\t\n\n\t{:else if $layout === \"create\"}\n\t\t\n\n\t{:else if $layout === \"mute\"}\n\t\t\n\n\t{:else if $layout === \"user\"}\n\t\t\n\n\t{/if}\n\n\n\n\n\n\n\n\n","const PACKET_TYPES = Object.create(null); // no Map = no polyfill\nPACKET_TYPES[\"open\"] = \"0\";\nPACKET_TYPES[\"close\"] = \"1\";\nPACKET_TYPES[\"ping\"] = \"2\";\nPACKET_TYPES[\"pong\"] = \"3\";\nPACKET_TYPES[\"message\"] = \"4\";\nPACKET_TYPES[\"upgrade\"] = \"5\";\nPACKET_TYPES[\"noop\"] = \"6\";\nconst PACKET_TYPES_REVERSE = Object.create(null);\nObject.keys(PACKET_TYPES).forEach(key => {\n PACKET_TYPES_REVERSE[PACKET_TYPES[key]] = key;\n});\nconst ERROR_PACKET = { type: \"error\", data: \"parser error\" };\nexport { PACKET_TYPES, PACKET_TYPES_REVERSE, ERROR_PACKET };\n","import { PACKET_TYPES } from \"./commons.js\";\nconst withNativeBlob = typeof Blob === \"function\" ||\n (typeof Blob !== \"undefined\" &&\n Object.prototype.toString.call(Blob) === \"[object BlobConstructor]\");\nconst withNativeArrayBuffer = typeof ArrayBuffer === \"function\";\n// ArrayBuffer.isView method is not defined in IE10\nconst isView = obj => {\n return typeof ArrayBuffer.isView === \"function\"\n ? ArrayBuffer.isView(obj)\n : obj && obj.buffer instanceof ArrayBuffer;\n};\nconst encodePacket = ({ type, data }, supportsBinary, callback) => {\n if (withNativeBlob && data instanceof Blob) {\n if (supportsBinary) {\n return callback(data);\n }\n else {\n return encodeBlobAsBase64(data, callback);\n }\n }\n else if (withNativeArrayBuffer &&\n (data instanceof ArrayBuffer || isView(data))) {\n if (supportsBinary) {\n return callback(data);\n }\n else {\n return encodeBlobAsBase64(new Blob([data]), callback);\n }\n }\n // plain string\n return callback(PACKET_TYPES[type] + (data || \"\"));\n};\nconst encodeBlobAsBase64 = (data, callback) => {\n const fileReader = new FileReader();\n fileReader.onload = function () {\n const content = fileReader.result.split(\",\")[1];\n callback(\"b\" + content);\n };\n return fileReader.readAsDataURL(data);\n};\nexport default encodePacket;\n","const chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';\n// Use a lookup table to find the index.\nconst lookup = typeof Uint8Array === 'undefined' ? [] : new Uint8Array(256);\nfor (let i = 0; i < chars.length; i++) {\n lookup[chars.charCodeAt(i)] = i;\n}\nexport const encode = (arraybuffer) => {\n let bytes = new Uint8Array(arraybuffer), i, len = bytes.length, base64 = '';\n for (i = 0; i < len; i += 3) {\n base64 += chars[bytes[i] >> 2];\n base64 += chars[((bytes[i] & 3) << 4) | (bytes[i + 1] >> 4)];\n base64 += chars[((bytes[i + 1] & 15) << 2) | (bytes[i + 2] >> 6)];\n base64 += chars[bytes[i + 2] & 63];\n }\n if (len % 3 === 2) {\n base64 = base64.substring(0, base64.length - 1) + '=';\n }\n else if (len % 3 === 1) {\n base64 = base64.substring(0, base64.length - 2) + '==';\n }\n return base64;\n};\nexport const decode = (base64) => {\n let bufferLength = base64.length * 0.75, len = base64.length, i, p = 0, encoded1, encoded2, encoded3, encoded4;\n if (base64[base64.length - 1] === '=') {\n bufferLength--;\n if (base64[base64.length - 2] === '=') {\n bufferLength--;\n }\n }\n const arraybuffer = new ArrayBuffer(bufferLength), bytes = new Uint8Array(arraybuffer);\n for (i = 0; i < len; i += 4) {\n encoded1 = lookup[base64.charCodeAt(i)];\n encoded2 = lookup[base64.charCodeAt(i + 1)];\n encoded3 = lookup[base64.charCodeAt(i + 2)];\n encoded4 = lookup[base64.charCodeAt(i + 3)];\n bytes[p++] = (encoded1 << 2) | (encoded2 >> 4);\n bytes[p++] = ((encoded2 & 15) << 4) | (encoded3 >> 2);\n bytes[p++] = ((encoded3 & 3) << 6) | (encoded4 & 63);\n }\n return arraybuffer;\n};\n","import { ERROR_PACKET, PACKET_TYPES_REVERSE } from \"./commons.js\";\nimport { decode } from \"./contrib/base64-arraybuffer.js\";\nconst withNativeArrayBuffer = typeof ArrayBuffer === \"function\";\nconst decodePacket = (encodedPacket, binaryType) => {\n if (typeof encodedPacket !== \"string\") {\n return {\n type: \"message\",\n data: mapBinary(encodedPacket, binaryType)\n };\n }\n const type = encodedPacket.charAt(0);\n if (type === \"b\") {\n return {\n type: \"message\",\n data: decodeBase64Packet(encodedPacket.substring(1), binaryType)\n };\n }\n const packetType = PACKET_TYPES_REVERSE[type];\n if (!packetType) {\n return ERROR_PACKET;\n }\n return encodedPacket.length > 1\n ? {\n type: PACKET_TYPES_REVERSE[type],\n data: encodedPacket.substring(1)\n }\n : {\n type: PACKET_TYPES_REVERSE[type]\n };\n};\nconst decodeBase64Packet = (data, binaryType) => {\n if (withNativeArrayBuffer) {\n const decoded = decode(data);\n return mapBinary(decoded, binaryType);\n }\n else {\n return { base64: true, data }; // fallback for old browsers\n }\n};\nconst mapBinary = (data, binaryType) => {\n switch (binaryType) {\n case \"blob\":\n return data instanceof ArrayBuffer ? new Blob([data]) : data;\n case \"arraybuffer\":\n default:\n return data; // assuming the data is already an ArrayBuffer\n }\n};\nexport default decodePacket;\n","import encodePacket from \"./encodePacket.js\";\nimport decodePacket from \"./decodePacket.js\";\nconst SEPARATOR = String.fromCharCode(30); // see https://en.wikipedia.org/wiki/Delimiter#ASCII_delimited_text\nconst encodePayload = (packets, callback) => {\n // some packets may be added to the array while encoding, so the initial length must be saved\n const length = packets.length;\n const encodedPackets = new Array(length);\n let count = 0;\n packets.forEach((packet, i) => {\n // force base64 encoding for binary packets\n encodePacket(packet, false, encodedPacket => {\n encodedPackets[i] = encodedPacket;\n if (++count === length) {\n callback(encodedPackets.join(SEPARATOR));\n }\n });\n });\n};\nconst decodePayload = (encodedPayload, binaryType) => {\n const encodedPackets = encodedPayload.split(SEPARATOR);\n const packets = [];\n for (let i = 0; i < encodedPackets.length; i++) {\n const decodedPacket = decodePacket(encodedPackets[i], binaryType);\n packets.push(decodedPacket);\n if (decodedPacket.type === \"error\") {\n break;\n }\n }\n return packets;\n};\nexport const protocol = 4;\nexport { encodePacket, encodePayload, decodePacket, decodePayload };\n","/**\n * Initialize a new `Emitter`.\n *\n * @api public\n */\n\nexport function Emitter(obj) {\n if (obj) return mixin(obj);\n}\n\n/**\n * Mixin the emitter properties.\n *\n * @param {Object} obj\n * @return {Object}\n * @api private\n */\n\nfunction mixin(obj) {\n for (var key in Emitter.prototype) {\n obj[key] = Emitter.prototype[key];\n }\n return obj;\n}\n\n/**\n * Listen on the given `event` with `fn`.\n *\n * @param {String} event\n * @param {Function} fn\n * @return {Emitter}\n * @api public\n */\n\nEmitter.prototype.on =\nEmitter.prototype.addEventListener = function(event, fn){\n this._callbacks = this._callbacks || {};\n (this._callbacks['$' + event] = this._callbacks['$' + event] || [])\n .push(fn);\n return this;\n};\n\n/**\n * Adds an `event` listener that will be invoked a single\n * time then automatically removed.\n *\n * @param {String} event\n * @param {Function} fn\n * @return {Emitter}\n * @api public\n */\n\nEmitter.prototype.once = function(event, fn){\n function on() {\n this.off(event, on);\n fn.apply(this, arguments);\n }\n\n on.fn = fn;\n this.on(event, on);\n return this;\n};\n\n/**\n * Remove the given callback for `event` or all\n * registered callbacks.\n *\n * @param {String} event\n * @param {Function} fn\n * @return {Emitter}\n * @api public\n */\n\nEmitter.prototype.off =\nEmitter.prototype.removeListener =\nEmitter.prototype.removeAllListeners =\nEmitter.prototype.removeEventListener = function(event, fn){\n this._callbacks = this._callbacks || {};\n\n // all\n if (0 == arguments.length) {\n this._callbacks = {};\n return this;\n }\n\n // specific event\n var callbacks = this._callbacks['$' + event];\n if (!callbacks) return this;\n\n // remove all handlers\n if (1 == arguments.length) {\n delete this._callbacks['$' + event];\n return this;\n }\n\n // remove specific handler\n var cb;\n for (var i = 0; i < callbacks.length; i++) {\n cb = callbacks[i];\n if (cb === fn || cb.fn === fn) {\n callbacks.splice(i, 1);\n break;\n }\n }\n\n // Remove event specific arrays for event types that no\n // one is subscribed for to avoid memory leak.\n if (callbacks.length === 0) {\n delete this._callbacks['$' + event];\n }\n\n return this;\n};\n\n/**\n * Emit `event` with the given args.\n *\n * @param {String} event\n * @param {Mixed} ...\n * @return {Emitter}\n */\n\nEmitter.prototype.emit = function(event){\n this._callbacks = this._callbacks || {};\n\n var args = new Array(arguments.length - 1)\n , callbacks = this._callbacks['$' + event];\n\n for (var i = 1; i < arguments.length; i++) {\n args[i - 1] = arguments[i];\n }\n\n if (callbacks) {\n callbacks = callbacks.slice(0);\n for (var i = 0, len = callbacks.length; i < len; ++i) {\n callbacks[i].apply(this, args);\n }\n }\n\n return this;\n};\n\n// alias used for reserved events (protected method)\nEmitter.prototype.emitReserved = Emitter.prototype.emit;\n\n/**\n * Return array of callbacks for `event`.\n *\n * @param {String} event\n * @return {Array}\n * @api public\n */\n\nEmitter.prototype.listeners = function(event){\n this._callbacks = this._callbacks || {};\n return this._callbacks['$' + event] || [];\n};\n\n/**\n * Check if this emitter has `event` handlers.\n *\n * @param {String} event\n * @return {Boolean}\n * @api public\n */\n\nEmitter.prototype.hasListeners = function(event){\n return !! this.listeners(event).length;\n};\n","export const globalThisShim = (() => {\n if (typeof self !== \"undefined\") {\n return self;\n }\n else if (typeof window !== \"undefined\") {\n return window;\n }\n else {\n return Function(\"return this\")();\n }\n})();\n","import { globalThisShim as globalThis } from \"./globalThis.js\";\nexport function pick(obj, ...attr) {\n return attr.reduce((acc, k) => {\n if (obj.hasOwnProperty(k)) {\n acc[k] = obj[k];\n }\n return acc;\n }, {});\n}\n// Keep a reference to the real timeout functions so they can be used when overridden\nconst NATIVE_SET_TIMEOUT = setTimeout;\nconst NATIVE_CLEAR_TIMEOUT = clearTimeout;\nexport function installTimerFunctions(obj, opts) {\n if (opts.useNativeTimers) {\n obj.setTimeoutFn = NATIVE_SET_TIMEOUT.bind(globalThis);\n obj.clearTimeoutFn = NATIVE_CLEAR_TIMEOUT.bind(globalThis);\n }\n else {\n obj.setTimeoutFn = setTimeout.bind(globalThis);\n obj.clearTimeoutFn = clearTimeout.bind(globalThis);\n }\n}\n// base64 encoded buffers are about 33% bigger (https://en.wikipedia.org/wiki/Base64)\nconst BASE64_OVERHEAD = 1.33;\n// we could also have used `new Blob([obj]).size`, but it isn't supported in IE9\nexport function byteLength(obj) {\n if (typeof obj === \"string\") {\n return utf8Length(obj);\n }\n // arraybuffer or blob\n return Math.ceil((obj.byteLength || obj.size) * BASE64_OVERHEAD);\n}\nfunction utf8Length(str) {\n let c = 0, length = 0;\n for (let i = 0, l = str.length; i < l; i++) {\n c = str.charCodeAt(i);\n if (c < 0x80) {\n length += 1;\n }\n else if (c < 0x800) {\n length += 2;\n }\n else if (c < 0xd800 || c >= 0xe000) {\n length += 3;\n }\n else {\n i++;\n length += 4;\n }\n }\n return length;\n}\n","import { decodePacket } from \"engine.io-parser\";\nimport { Emitter } from \"@socket.io/component-emitter\";\nimport { installTimerFunctions } from \"./util.js\";\nclass TransportError extends Error {\n constructor(reason, description, context) {\n super(reason);\n this.description = description;\n this.context = context;\n this.type = \"TransportError\";\n }\n}\nexport class Transport extends Emitter {\n /**\n * Transport abstract constructor.\n *\n * @param {Object} options.\n * @api private\n */\n constructor(opts) {\n super();\n this.writable = false;\n installTimerFunctions(this, opts);\n this.opts = opts;\n this.query = opts.query;\n this.readyState = \"\";\n this.socket = opts.socket;\n }\n /**\n * Emits an error.\n *\n * @param {String} reason\n * @param description\n * @param context - the error context\n * @return {Transport} for chaining\n * @api protected\n */\n onError(reason, description, context) {\n super.emitReserved(\"error\", new TransportError(reason, description, context));\n return this;\n }\n /**\n * Opens the transport.\n *\n * @api public\n */\n open() {\n if (\"closed\" === this.readyState || \"\" === this.readyState) {\n this.readyState = \"opening\";\n this.doOpen();\n }\n return this;\n }\n /**\n * Closes the transport.\n *\n * @api public\n */\n close() {\n if (\"opening\" === this.readyState || \"open\" === this.readyState) {\n this.doClose();\n this.onClose();\n }\n return this;\n }\n /**\n * Sends multiple packets.\n *\n * @param {Array} packets\n * @api public\n */\n send(packets) {\n if (\"open\" === this.readyState) {\n this.write(packets);\n }\n else {\n // this might happen if the transport was silently closed in the beforeunload event handler\n }\n }\n /**\n * Called upon open\n *\n * @api protected\n */\n onOpen() {\n this.readyState = \"open\";\n this.writable = true;\n super.emitReserved(\"open\");\n }\n /**\n * Called with data.\n *\n * @param {String} data\n * @api protected\n */\n onData(data) {\n const packet = decodePacket(data, this.socket.binaryType);\n this.onPacket(packet);\n }\n /**\n * Called with a decoded packet.\n *\n * @api protected\n */\n onPacket(packet) {\n super.emitReserved(\"packet\", packet);\n }\n /**\n * Called upon close.\n *\n * @api protected\n */\n onClose(details) {\n this.readyState = \"closed\";\n super.emitReserved(\"close\", details);\n }\n}\n","// imported from https://github.com/unshiftio/yeast\n'use strict';\nconst alphabet = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz-_'.split(''), length = 64, map = {};\nlet seed = 0, i = 0, prev;\n/**\n * Return a string representing the specified number.\n *\n * @param {Number} num The number to convert.\n * @returns {String} The string representation of the number.\n * @api public\n */\nexport function encode(num) {\n let encoded = '';\n do {\n encoded = alphabet[num % length] + encoded;\n num = Math.floor(num / length);\n } while (num > 0);\n return encoded;\n}\n/**\n * Return the integer value specified by the given string.\n *\n * @param {String} str The string to convert.\n * @returns {Number} The integer value represented by the string.\n * @api public\n */\nexport function decode(str) {\n let decoded = 0;\n for (i = 0; i < str.length; i++) {\n decoded = decoded * length + map[str.charAt(i)];\n }\n return decoded;\n}\n/**\n * Yeast: A tiny growing id generator.\n *\n * @returns {String} A unique id.\n * @api public\n */\nexport function yeast() {\n const now = encode(+new Date());\n if (now !== prev)\n return seed = 0, prev = now;\n return now + '.' + encode(seed++);\n}\n//\n// Map each character to its index.\n//\nfor (; i < length; i++)\n map[alphabet[i]] = i;\n","// imported from https://github.com/galkn/querystring\n/**\n * Compiles a querystring\n * Returns string representation of the object\n *\n * @param {Object}\n * @api private\n */\nexport function encode(obj) {\n let str = '';\n for (let i in obj) {\n if (obj.hasOwnProperty(i)) {\n if (str.length)\n str += '&';\n str += encodeURIComponent(i) + '=' + encodeURIComponent(obj[i]);\n }\n }\n return str;\n}\n/**\n * Parses a simple querystring into an object\n *\n * @param {String} qs\n * @api private\n */\nexport function decode(qs) {\n let qry = {};\n let pairs = qs.split('&');\n for (let i = 0, l = pairs.length; i < l; i++) {\n let pair = pairs[i].split('=');\n qry[decodeURIComponent(pair[0])] = decodeURIComponent(pair[1]);\n }\n return qry;\n}\n","// imported from https://github.com/component/has-cors\nlet value = false;\ntry {\n value = typeof XMLHttpRequest !== 'undefined' &&\n 'withCredentials' in new XMLHttpRequest();\n}\ncatch (err) {\n // if XMLHttp support is disabled in IE then it will throw\n // when trying to create\n}\nexport const hasCORS = value;\n","// browser shim for xmlhttprequest module\nimport { hasCORS } from \"../contrib/has-cors.js\";\nimport { globalThisShim as globalThis } from \"../globalThis.js\";\nexport function XHR(opts) {\n const xdomain = opts.xdomain;\n // XMLHttpRequest can be disabled on IE\n try {\n if (\"undefined\" !== typeof XMLHttpRequest && (!xdomain || hasCORS)) {\n return new XMLHttpRequest();\n }\n }\n catch (e) { }\n if (!xdomain) {\n try {\n return new globalThis[[\"Active\"].concat(\"Object\").join(\"X\")](\"Microsoft.XMLHTTP\");\n }\n catch (e) { }\n }\n}\n","import { Transport } from \"../transport.js\";\nimport { yeast } from \"../contrib/yeast.js\";\nimport { encode } from \"../contrib/parseqs.js\";\nimport { encodePayload, decodePayload } from \"engine.io-parser\";\nimport { XHR as XMLHttpRequest } from \"./xmlhttprequest.js\";\nimport { Emitter } from \"@socket.io/component-emitter\";\nimport { installTimerFunctions, pick } from \"../util.js\";\nimport { globalThisShim as globalThis } from \"../globalThis.js\";\nfunction empty() { }\nconst hasXHR2 = (function () {\n const xhr = new XMLHttpRequest({\n xdomain: false\n });\n return null != xhr.responseType;\n})();\nexport class Polling extends Transport {\n /**\n * XHR Polling constructor.\n *\n * @param {Object} opts\n * @api public\n */\n constructor(opts) {\n super(opts);\n this.polling = false;\n if (typeof location !== \"undefined\") {\n const isSSL = \"https:\" === location.protocol;\n let port = location.port;\n // some user agents have empty `location.port`\n if (!port) {\n port = isSSL ? \"443\" : \"80\";\n }\n this.xd =\n (typeof location !== \"undefined\" &&\n opts.hostname !== location.hostname) ||\n port !== opts.port;\n this.xs = opts.secure !== isSSL;\n }\n /**\n * XHR supports binary\n */\n const forceBase64 = opts && opts.forceBase64;\n this.supportsBinary = hasXHR2 && !forceBase64;\n }\n /**\n * Transport name.\n */\n get name() {\n return \"polling\";\n }\n /**\n * Opens the socket (triggers polling). We write a PING message to determine\n * when the transport is open.\n *\n * @api private\n */\n doOpen() {\n this.poll();\n }\n /**\n * Pauses polling.\n *\n * @param {Function} callback upon buffers are flushed and transport is paused\n * @api private\n */\n pause(onPause) {\n this.readyState = \"pausing\";\n const pause = () => {\n this.readyState = \"paused\";\n onPause();\n };\n if (this.polling || !this.writable) {\n let total = 0;\n if (this.polling) {\n total++;\n this.once(\"pollComplete\", function () {\n --total || pause();\n });\n }\n if (!this.writable) {\n total++;\n this.once(\"drain\", function () {\n --total || pause();\n });\n }\n }\n else {\n pause();\n }\n }\n /**\n * Starts polling cycle.\n *\n * @api public\n */\n poll() {\n this.polling = true;\n this.doPoll();\n this.emitReserved(\"poll\");\n }\n /**\n * Overloads onData to detect payloads.\n *\n * @api private\n */\n onData(data) {\n const callback = packet => {\n // if its the first message we consider the transport open\n if (\"opening\" === this.readyState && packet.type === \"open\") {\n this.onOpen();\n }\n // if its a close packet, we close the ongoing requests\n if (\"close\" === packet.type) {\n this.onClose({ description: \"transport closed by the server\" });\n return false;\n }\n // otherwise bypass onData and handle the message\n this.onPacket(packet);\n };\n // decode payload\n decodePayload(data, this.socket.binaryType).forEach(callback);\n // if an event did not trigger closing\n if (\"closed\" !== this.readyState) {\n // if we got data we're not polling\n this.polling = false;\n this.emitReserved(\"pollComplete\");\n if (\"open\" === this.readyState) {\n this.poll();\n }\n else {\n }\n }\n }\n /**\n * For polling, send a close packet.\n *\n * @api private\n */\n doClose() {\n const close = () => {\n this.write([{ type: \"close\" }]);\n };\n if (\"open\" === this.readyState) {\n close();\n }\n else {\n // in case we're trying to close while\n // handshaking is in progress (GH-164)\n this.once(\"open\", close);\n }\n }\n /**\n * Writes a packets payload.\n *\n * @param {Array} data packets\n * @param {Function} drain callback\n * @api private\n */\n write(packets) {\n this.writable = false;\n encodePayload(packets, data => {\n this.doWrite(data, () => {\n this.writable = true;\n this.emitReserved(\"drain\");\n });\n });\n }\n /**\n * Generates uri for connection.\n *\n * @api private\n */\n uri() {\n let query = this.query || {};\n const schema = this.opts.secure ? \"https\" : \"http\";\n let port = \"\";\n // cache busting is forced\n if (false !== this.opts.timestampRequests) {\n query[this.opts.timestampParam] = yeast();\n }\n if (!this.supportsBinary && !query.sid) {\n query.b64 = 1;\n }\n // avoid port if default for schema\n if (this.opts.port &&\n ((\"https\" === schema && Number(this.opts.port) !== 443) ||\n (\"http\" === schema && Number(this.opts.port) !== 80))) {\n port = \":\" + this.opts.port;\n }\n const encodedQuery = encode(query);\n const ipv6 = this.opts.hostname.indexOf(\":\") !== -1;\n return (schema +\n \"://\" +\n (ipv6 ? \"[\" + this.opts.hostname + \"]\" : this.opts.hostname) +\n port +\n this.opts.path +\n (encodedQuery.length ? \"?\" + encodedQuery : \"\"));\n }\n /**\n * Creates a request.\n *\n * @param {String} method\n * @api private\n */\n request(opts = {}) {\n Object.assign(opts, { xd: this.xd, xs: this.xs }, this.opts);\n return new Request(this.uri(), opts);\n }\n /**\n * Sends data.\n *\n * @param {String} data to send.\n * @param {Function} called upon flush.\n * @api private\n */\n doWrite(data, fn) {\n const req = this.request({\n method: \"POST\",\n data: data\n });\n req.on(\"success\", fn);\n req.on(\"error\", (xhrStatus, context) => {\n this.onError(\"xhr post error\", xhrStatus, context);\n });\n }\n /**\n * Starts a poll cycle.\n *\n * @api private\n */\n doPoll() {\n const req = this.request();\n req.on(\"data\", this.onData.bind(this));\n req.on(\"error\", (xhrStatus, context) => {\n this.onError(\"xhr poll error\", xhrStatus, context);\n });\n this.pollXhr = req;\n }\n}\nexport class Request extends Emitter {\n /**\n * Request constructor\n *\n * @param {Object} options\n * @api public\n */\n constructor(uri, opts) {\n super();\n installTimerFunctions(this, opts);\n this.opts = opts;\n this.method = opts.method || \"GET\";\n this.uri = uri;\n this.async = false !== opts.async;\n this.data = undefined !== opts.data ? opts.data : null;\n this.create();\n }\n /**\n * Creates the XHR object and sends the request.\n *\n * @api private\n */\n create() {\n const opts = pick(this.opts, \"agent\", \"pfx\", \"key\", \"passphrase\", \"cert\", \"ca\", \"ciphers\", \"rejectUnauthorized\", \"autoUnref\");\n opts.xdomain = !!this.opts.xd;\n opts.xscheme = !!this.opts.xs;\n const xhr = (this.xhr = new XMLHttpRequest(opts));\n try {\n xhr.open(this.method, this.uri, this.async);\n try {\n if (this.opts.extraHeaders) {\n xhr.setDisableHeaderCheck && xhr.setDisableHeaderCheck(true);\n for (let i in this.opts.extraHeaders) {\n if (this.opts.extraHeaders.hasOwnProperty(i)) {\n xhr.setRequestHeader(i, this.opts.extraHeaders[i]);\n }\n }\n }\n }\n catch (e) { }\n if (\"POST\" === this.method) {\n try {\n xhr.setRequestHeader(\"Content-type\", \"text/plain;charset=UTF-8\");\n }\n catch (e) { }\n }\n try {\n xhr.setRequestHeader(\"Accept\", \"*/*\");\n }\n catch (e) { }\n // ie6 check\n if (\"withCredentials\" in xhr) {\n xhr.withCredentials = this.opts.withCredentials;\n }\n if (this.opts.requestTimeout) {\n xhr.timeout = this.opts.requestTimeout;\n }\n xhr.onreadystatechange = () => {\n if (4 !== xhr.readyState)\n return;\n if (200 === xhr.status || 1223 === xhr.status) {\n this.onLoad();\n }\n else {\n // make sure the `error` event handler that's user-set\n // does not throw in the same tick and gets caught here\n this.setTimeoutFn(() => {\n this.onError(typeof xhr.status === \"number\" ? xhr.status : 0);\n }, 0);\n }\n };\n xhr.send(this.data);\n }\n catch (e) {\n // Need to defer since .create() is called directly from the constructor\n // and thus the 'error' event can only be only bound *after* this exception\n // occurs. Therefore, also, we cannot throw here at all.\n this.setTimeoutFn(() => {\n this.onError(e);\n }, 0);\n return;\n }\n if (typeof document !== \"undefined\") {\n this.index = Request.requestsCount++;\n Request.requests[this.index] = this;\n }\n }\n /**\n * Called upon error.\n *\n * @api private\n */\n onError(err) {\n this.emitReserved(\"error\", err, this.xhr);\n this.cleanup(true);\n }\n /**\n * Cleans up house.\n *\n * @api private\n */\n cleanup(fromError) {\n if (\"undefined\" === typeof this.xhr || null === this.xhr) {\n return;\n }\n this.xhr.onreadystatechange = empty;\n if (fromError) {\n try {\n this.xhr.abort();\n }\n catch (e) { }\n }\n if (typeof document !== \"undefined\") {\n delete Request.requests[this.index];\n }\n this.xhr = null;\n }\n /**\n * Called upon load.\n *\n * @api private\n */\n onLoad() {\n const data = this.xhr.responseText;\n if (data !== null) {\n this.emitReserved(\"data\", data);\n this.emitReserved(\"success\");\n this.cleanup();\n }\n }\n /**\n * Aborts the request.\n *\n * @api public\n */\n abort() {\n this.cleanup();\n }\n}\nRequest.requestsCount = 0;\nRequest.requests = {};\n/**\n * Aborts pending requests when unloading the window. This is needed to prevent\n * memory leaks (e.g. when using IE) and to ensure that no spurious error is\n * emitted.\n */\nif (typeof document !== \"undefined\") {\n // @ts-ignore\n if (typeof attachEvent === \"function\") {\n // @ts-ignore\n attachEvent(\"onunload\", unloadHandler);\n }\n else if (typeof addEventListener === \"function\") {\n const terminationEvent = \"onpagehide\" in globalThis ? \"pagehide\" : \"unload\";\n addEventListener(terminationEvent, unloadHandler, false);\n }\n}\nfunction unloadHandler() {\n for (let i in Request.requests) {\n if (Request.requests.hasOwnProperty(i)) {\n Request.requests[i].abort();\n }\n }\n}\n","import { globalThisShim as globalThis } from \"../globalThis.js\";\nexport const nextTick = (() => {\n const isPromiseAvailable = typeof Promise === \"function\" && typeof Promise.resolve === \"function\";\n if (isPromiseAvailable) {\n return cb => Promise.resolve().then(cb);\n }\n else {\n return (cb, setTimeoutFn) => setTimeoutFn(cb, 0);\n }\n})();\nexport const WebSocket = globalThis.WebSocket || globalThis.MozWebSocket;\nexport const usingBrowserWebSocket = true;\nexport const defaultBinaryType = \"arraybuffer\";\n","import { Transport } from \"../transport.js\";\nimport { encode } from \"../contrib/parseqs.js\";\nimport { yeast } from \"../contrib/yeast.js\";\nimport { pick } from \"../util.js\";\nimport { defaultBinaryType, nextTick, usingBrowserWebSocket, WebSocket } from \"./websocket-constructor.js\";\nimport { encodePacket } from \"engine.io-parser\";\n// detect ReactNative environment\nconst isReactNative = typeof navigator !== \"undefined\" &&\n typeof navigator.product === \"string\" &&\n navigator.product.toLowerCase() === \"reactnative\";\nexport class WS extends Transport {\n /**\n * WebSocket transport constructor.\n *\n * @api {Object} connection options\n * @api public\n */\n constructor(opts) {\n super(opts);\n this.supportsBinary = !opts.forceBase64;\n }\n /**\n * Transport name.\n *\n * @api public\n */\n get name() {\n return \"websocket\";\n }\n /**\n * Opens socket.\n *\n * @api private\n */\n doOpen() {\n if (!this.check()) {\n // let probe timeout\n return;\n }\n const uri = this.uri();\n const protocols = this.opts.protocols;\n // React Native only supports the 'headers' option, and will print a warning if anything else is passed\n const opts = isReactNative\n ? {}\n : pick(this.opts, \"agent\", \"perMessageDeflate\", \"pfx\", \"key\", \"passphrase\", \"cert\", \"ca\", \"ciphers\", \"rejectUnauthorized\", \"localAddress\", \"protocolVersion\", \"origin\", \"maxPayload\", \"family\", \"checkServerIdentity\");\n if (this.opts.extraHeaders) {\n opts.headers = this.opts.extraHeaders;\n }\n try {\n this.ws =\n usingBrowserWebSocket && !isReactNative\n ? protocols\n ? new WebSocket(uri, protocols)\n : new WebSocket(uri)\n : new WebSocket(uri, protocols, opts);\n }\n catch (err) {\n return this.emitReserved(\"error\", err);\n }\n this.ws.binaryType = this.socket.binaryType || defaultBinaryType;\n this.addEventListeners();\n }\n /**\n * Adds event listeners to the socket\n *\n * @api private\n */\n addEventListeners() {\n this.ws.onopen = () => {\n if (this.opts.autoUnref) {\n this.ws._socket.unref();\n }\n this.onOpen();\n };\n this.ws.onclose = closeEvent => this.onClose({\n description: \"websocket connection closed\",\n context: closeEvent\n });\n this.ws.onmessage = ev => this.onData(ev.data);\n this.ws.onerror = e => this.onError(\"websocket error\", e);\n }\n /**\n * Writes data to socket.\n *\n * @param {Array} array of packets.\n * @api private\n */\n write(packets) {\n this.writable = false;\n // encodePacket efficient as it uses WS framing\n // no need for encodePayload\n for (let i = 0; i < packets.length; i++) {\n const packet = packets[i];\n const lastPacket = i === packets.length - 1;\n encodePacket(packet, this.supportsBinary, data => {\n // always create a new object (GH-437)\n const opts = {};\n if (!usingBrowserWebSocket) {\n if (packet.options) {\n opts.compress = packet.options.compress;\n }\n if (this.opts.perMessageDeflate) {\n const len = \n // @ts-ignore\n \"string\" === typeof data ? Buffer.byteLength(data) : data.length;\n if (len < this.opts.perMessageDeflate.threshold) {\n opts.compress = false;\n }\n }\n }\n // Sometimes the websocket has already been closed but the browser didn't\n // have a chance of informing us about it yet, in that case send will\n // throw an error\n try {\n if (usingBrowserWebSocket) {\n // TypeError is thrown when passing the second argument on Safari\n this.ws.send(data);\n }\n else {\n this.ws.send(data, opts);\n }\n }\n catch (e) {\n }\n if (lastPacket) {\n // fake drain\n // defer to next tick to allow Socket to clear writeBuffer\n nextTick(() => {\n this.writable = true;\n this.emitReserved(\"drain\");\n }, this.setTimeoutFn);\n }\n });\n }\n }\n /**\n * Closes socket.\n *\n * @api private\n */\n doClose() {\n if (typeof this.ws !== \"undefined\") {\n this.ws.close();\n this.ws = null;\n }\n }\n /**\n * Generates uri for connection.\n *\n * @api private\n */\n uri() {\n let query = this.query || {};\n const schema = this.opts.secure ? \"wss\" : \"ws\";\n let port = \"\";\n // avoid port if default for schema\n if (this.opts.port &&\n ((\"wss\" === schema && Number(this.opts.port) !== 443) ||\n (\"ws\" === schema && Number(this.opts.port) !== 80))) {\n port = \":\" + this.opts.port;\n }\n // append timestamp to URI\n if (this.opts.timestampRequests) {\n query[this.opts.timestampParam] = yeast();\n }\n // communicate binary support capabilities\n if (!this.supportsBinary) {\n query.b64 = 1;\n }\n const encodedQuery = encode(query);\n const ipv6 = this.opts.hostname.indexOf(\":\") !== -1;\n return (schema +\n \"://\" +\n (ipv6 ? \"[\" + this.opts.hostname + \"]\" : this.opts.hostname) +\n port +\n this.opts.path +\n (encodedQuery.length ? \"?\" + encodedQuery : \"\"));\n }\n /**\n * Feature detection for WebSocket.\n *\n * @return {Boolean} whether this transport is available.\n * @api public\n */\n check() {\n return !!WebSocket;\n }\n}\n","import { Polling } from \"./polling.js\";\nimport { WS } from \"./websocket.js\";\nexport const transports = {\n websocket: WS,\n polling: Polling\n};\n","// imported from https://github.com/galkn/parseuri\n/**\n * Parses an URI\n *\n * @author Steven Levithan (MIT license)\n * @api private\n */\nconst re = /^(?:(?![^:@]+:[^:@\\/]*@)(http|https|ws|wss):\\/\\/)?((?:(([^:@]*)(?::([^:@]*))?)?@)?((?:[a-f0-9]{0,4}:){2,7}[a-f0-9]{0,4}|[^:\\/?#]*)(?::(\\d*))?)(((\\/(?:[^?#](?![^?#\\/]*\\.[^?#\\/.]+(?:[?#]|$)))*\\/?)?([^?#\\/]*))(?:\\?([^#]*))?(?:#(.*))?)/;\nconst parts = [\n 'source', 'protocol', 'authority', 'userInfo', 'user', 'password', 'host', 'port', 'relative', 'path', 'directory', 'file', 'query', 'anchor'\n];\nexport function parse(str) {\n const src = str, b = str.indexOf('['), e = str.indexOf(']');\n if (b != -1 && e != -1) {\n str = str.substring(0, b) + str.substring(b, e).replace(/:/g, ';') + str.substring(e, str.length);\n }\n let m = re.exec(str || ''), uri = {}, i = 14;\n while (i--) {\n uri[parts[i]] = m[i] || '';\n }\n if (b != -1 && e != -1) {\n uri.source = src;\n uri.host = uri.host.substring(1, uri.host.length - 1).replace(/;/g, ':');\n uri.authority = uri.authority.replace('[', '').replace(']', '').replace(/;/g, ':');\n uri.ipv6uri = true;\n }\n uri.pathNames = pathNames(uri, uri['path']);\n uri.queryKey = queryKey(uri, uri['query']);\n return uri;\n}\nfunction pathNames(obj, path) {\n const regx = /\\/{2,9}/g, names = path.replace(regx, \"/\").split(\"/\");\n if (path.slice(0, 1) == '/' || path.length === 0) {\n names.splice(0, 1);\n }\n if (path.slice(-1) == '/') {\n names.splice(names.length - 1, 1);\n }\n return names;\n}\nfunction queryKey(uri, query) {\n const data = {};\n query.replace(/(?:^|&)([^&=]*)=?([^&]*)/g, function ($0, $1, $2) {\n if ($1) {\n data[$1] = $2;\n }\n });\n return data;\n}\n","import { transports } from \"./transports/index.js\";\nimport { installTimerFunctions, byteLength } from \"./util.js\";\nimport { decode } from \"./contrib/parseqs.js\";\nimport { parse } from \"./contrib/parseuri.js\";\nimport { Emitter } from \"@socket.io/component-emitter\";\nimport { protocol } from \"engine.io-parser\";\nexport class Socket extends Emitter {\n /**\n * Socket constructor.\n *\n * @param {String|Object} uri or options\n * @param {Object} opts - options\n * @api public\n */\n constructor(uri, opts = {}) {\n super();\n if (uri && \"object\" === typeof uri) {\n opts = uri;\n uri = null;\n }\n if (uri) {\n uri = parse(uri);\n opts.hostname = uri.host;\n opts.secure = uri.protocol === \"https\" || uri.protocol === \"wss\";\n opts.port = uri.port;\n if (uri.query)\n opts.query = uri.query;\n }\n else if (opts.host) {\n opts.hostname = parse(opts.host).host;\n }\n installTimerFunctions(this, opts);\n this.secure =\n null != opts.secure\n ? opts.secure\n : typeof location !== \"undefined\" && \"https:\" === location.protocol;\n if (opts.hostname && !opts.port) {\n // if no port is specified manually, use the protocol default\n opts.port = this.secure ? \"443\" : \"80\";\n }\n this.hostname =\n opts.hostname ||\n (typeof location !== \"undefined\" ? location.hostname : \"localhost\");\n this.port =\n opts.port ||\n (typeof location !== \"undefined\" && location.port\n ? location.port\n : this.secure\n ? \"443\"\n : \"80\");\n this.transports = opts.transports || [\"polling\", \"websocket\"];\n this.readyState = \"\";\n this.writeBuffer = [];\n this.prevBufferLen = 0;\n this.opts = Object.assign({\n path: \"/engine.io\",\n agent: false,\n withCredentials: false,\n upgrade: true,\n timestampParam: \"t\",\n rememberUpgrade: false,\n rejectUnauthorized: true,\n perMessageDeflate: {\n threshold: 1024\n },\n transportOptions: {},\n closeOnBeforeunload: true\n }, opts);\n this.opts.path = this.opts.path.replace(/\\/$/, \"\") + \"/\";\n if (typeof this.opts.query === \"string\") {\n this.opts.query = decode(this.opts.query);\n }\n // set on handshake\n this.id = null;\n this.upgrades = null;\n this.pingInterval = null;\n this.pingTimeout = null;\n // set on heartbeat\n this.pingTimeoutTimer = null;\n if (typeof addEventListener === \"function\") {\n if (this.opts.closeOnBeforeunload) {\n // Firefox closes the connection when the \"beforeunload\" event is emitted but not Chrome. This event listener\n // ensures every browser behaves the same (no \"disconnect\" event at the Socket.IO level when the page is\n // closed/reloaded)\n this.beforeunloadEventListener = () => {\n if (this.transport) {\n // silently close the transport\n this.transport.removeAllListeners();\n this.transport.close();\n }\n };\n addEventListener(\"beforeunload\", this.beforeunloadEventListener, false);\n }\n if (this.hostname !== \"localhost\") {\n this.offlineEventListener = () => {\n this.onClose(\"transport close\", {\n description: \"network connection lost\"\n });\n };\n addEventListener(\"offline\", this.offlineEventListener, false);\n }\n }\n this.open();\n }\n /**\n * Creates transport of the given type.\n *\n * @param {String} transport name\n * @return {Transport}\n * @api private\n */\n createTransport(name) {\n const query = Object.assign({}, this.opts.query);\n // append engine.io protocol identifier\n query.EIO = protocol;\n // transport name\n query.transport = name;\n // session id if we already have one\n if (this.id)\n query.sid = this.id;\n const opts = Object.assign({}, this.opts.transportOptions[name], this.opts, {\n query,\n socket: this,\n hostname: this.hostname,\n secure: this.secure,\n port: this.port\n });\n return new transports[name](opts);\n }\n /**\n * Initializes transport to use and starts probe.\n *\n * @api private\n */\n open() {\n let transport;\n if (this.opts.rememberUpgrade &&\n Socket.priorWebsocketSuccess &&\n this.transports.indexOf(\"websocket\") !== -1) {\n transport = \"websocket\";\n }\n else if (0 === this.transports.length) {\n // Emit error on next tick so it can be listened to\n this.setTimeoutFn(() => {\n this.emitReserved(\"error\", \"No transports available\");\n }, 0);\n return;\n }\n else {\n transport = this.transports[0];\n }\n this.readyState = \"opening\";\n // Retry with the next transport if the transport is disabled (jsonp: false)\n try {\n transport = this.createTransport(transport);\n }\n catch (e) {\n this.transports.shift();\n this.open();\n return;\n }\n transport.open();\n this.setTransport(transport);\n }\n /**\n * Sets the current transport. Disables the existing one (if any).\n *\n * @api private\n */\n setTransport(transport) {\n if (this.transport) {\n this.transport.removeAllListeners();\n }\n // set up transport\n this.transport = transport;\n // set up transport listeners\n transport\n .on(\"drain\", this.onDrain.bind(this))\n .on(\"packet\", this.onPacket.bind(this))\n .on(\"error\", this.onError.bind(this))\n .on(\"close\", reason => this.onClose(\"transport close\", reason));\n }\n /**\n * Probes a transport.\n *\n * @param {String} transport name\n * @api private\n */\n probe(name) {\n let transport = this.createTransport(name);\n let failed = false;\n Socket.priorWebsocketSuccess = false;\n const onTransportOpen = () => {\n if (failed)\n return;\n transport.send([{ type: \"ping\", data: \"probe\" }]);\n transport.once(\"packet\", msg => {\n if (failed)\n return;\n if (\"pong\" === msg.type && \"probe\" === msg.data) {\n this.upgrading = true;\n this.emitReserved(\"upgrading\", transport);\n if (!transport)\n return;\n Socket.priorWebsocketSuccess = \"websocket\" === transport.name;\n this.transport.pause(() => {\n if (failed)\n return;\n if (\"closed\" === this.readyState)\n return;\n cleanup();\n this.setTransport(transport);\n transport.send([{ type: \"upgrade\" }]);\n this.emitReserved(\"upgrade\", transport);\n transport = null;\n this.upgrading = false;\n this.flush();\n });\n }\n else {\n const err = new Error(\"probe error\");\n // @ts-ignore\n err.transport = transport.name;\n this.emitReserved(\"upgradeError\", err);\n }\n });\n };\n function freezeTransport() {\n if (failed)\n return;\n // Any callback called by transport should be ignored since now\n failed = true;\n cleanup();\n transport.close();\n transport = null;\n }\n // Handle any error that happens while probing\n const onerror = err => {\n const error = new Error(\"probe error: \" + err);\n // @ts-ignore\n error.transport = transport.name;\n freezeTransport();\n this.emitReserved(\"upgradeError\", error);\n };\n function onTransportClose() {\n onerror(\"transport closed\");\n }\n // When the socket is closed while we're probing\n function onclose() {\n onerror(\"socket closed\");\n }\n // When the socket is upgraded while we're probing\n function onupgrade(to) {\n if (transport && to.name !== transport.name) {\n freezeTransport();\n }\n }\n // Remove all listeners on the transport and on self\n const cleanup = () => {\n transport.removeListener(\"open\", onTransportOpen);\n transport.removeListener(\"error\", onerror);\n transport.removeListener(\"close\", onTransportClose);\n this.off(\"close\", onclose);\n this.off(\"upgrading\", onupgrade);\n };\n transport.once(\"open\", onTransportOpen);\n transport.once(\"error\", onerror);\n transport.once(\"close\", onTransportClose);\n this.once(\"close\", onclose);\n this.once(\"upgrading\", onupgrade);\n transport.open();\n }\n /**\n * Called when connection is deemed open.\n *\n * @api private\n */\n onOpen() {\n this.readyState = \"open\";\n Socket.priorWebsocketSuccess = \"websocket\" === this.transport.name;\n this.emitReserved(\"open\");\n this.flush();\n // we check for `readyState` in case an `open`\n // listener already closed the socket\n if (\"open\" === this.readyState &&\n this.opts.upgrade &&\n this.transport.pause) {\n let i = 0;\n const l = this.upgrades.length;\n for (; i < l; i++) {\n this.probe(this.upgrades[i]);\n }\n }\n }\n /**\n * Handles a packet.\n *\n * @api private\n */\n onPacket(packet) {\n if (\"opening\" === this.readyState ||\n \"open\" === this.readyState ||\n \"closing\" === this.readyState) {\n this.emitReserved(\"packet\", packet);\n // Socket is live - any packet counts\n this.emitReserved(\"heartbeat\");\n switch (packet.type) {\n case \"open\":\n this.onHandshake(JSON.parse(packet.data));\n break;\n case \"ping\":\n this.resetPingTimeout();\n this.sendPacket(\"pong\");\n this.emitReserved(\"ping\");\n this.emitReserved(\"pong\");\n break;\n case \"error\":\n const err = new Error(\"server error\");\n // @ts-ignore\n err.code = packet.data;\n this.onError(err);\n break;\n case \"message\":\n this.emitReserved(\"data\", packet.data);\n this.emitReserved(\"message\", packet.data);\n break;\n }\n }\n else {\n }\n }\n /**\n * Called upon handshake completion.\n *\n * @param {Object} data - handshake obj\n * @api private\n */\n onHandshake(data) {\n this.emitReserved(\"handshake\", data);\n this.id = data.sid;\n this.transport.query.sid = data.sid;\n this.upgrades = this.filterUpgrades(data.upgrades);\n this.pingInterval = data.pingInterval;\n this.pingTimeout = data.pingTimeout;\n this.maxPayload = data.maxPayload;\n this.onOpen();\n // In case open handler closes socket\n if (\"closed\" === this.readyState)\n return;\n this.resetPingTimeout();\n }\n /**\n * Sets and resets ping timeout timer based on server pings.\n *\n * @api private\n */\n resetPingTimeout() {\n this.clearTimeoutFn(this.pingTimeoutTimer);\n this.pingTimeoutTimer = this.setTimeoutFn(() => {\n this.onClose(\"ping timeout\");\n }, this.pingInterval + this.pingTimeout);\n if (this.opts.autoUnref) {\n this.pingTimeoutTimer.unref();\n }\n }\n /**\n * Called on `drain` event\n *\n * @api private\n */\n onDrain() {\n this.writeBuffer.splice(0, this.prevBufferLen);\n // setting prevBufferLen = 0 is very important\n // for example, when upgrading, upgrade packet is sent over,\n // and a nonzero prevBufferLen could cause problems on `drain`\n this.prevBufferLen = 0;\n if (0 === this.writeBuffer.length) {\n this.emitReserved(\"drain\");\n }\n else {\n this.flush();\n }\n }\n /**\n * Flush write buffers.\n *\n * @api private\n */\n flush() {\n if (\"closed\" !== this.readyState &&\n this.transport.writable &&\n !this.upgrading &&\n this.writeBuffer.length) {\n const packets = this.getWritablePackets();\n this.transport.send(packets);\n // keep track of current length of writeBuffer\n // splice writeBuffer and callbackBuffer on `drain`\n this.prevBufferLen = packets.length;\n this.emitReserved(\"flush\");\n }\n }\n /**\n * Ensure the encoded size of the writeBuffer is below the maxPayload value sent by the server (only for HTTP\n * long-polling)\n *\n * @private\n */\n getWritablePackets() {\n const shouldCheckPayloadSize = this.maxPayload &&\n this.transport.name === \"polling\" &&\n this.writeBuffer.length > 1;\n if (!shouldCheckPayloadSize) {\n return this.writeBuffer;\n }\n let payloadSize = 1; // first packet type\n for (let i = 0; i < this.writeBuffer.length; i++) {\n const data = this.writeBuffer[i].data;\n if (data) {\n payloadSize += byteLength(data);\n }\n if (i > 0 && payloadSize > this.maxPayload) {\n return this.writeBuffer.slice(0, i);\n }\n payloadSize += 2; // separator + packet type\n }\n return this.writeBuffer;\n }\n /**\n * Sends a message.\n *\n * @param {String} message.\n * @param {Function} callback function.\n * @param {Object} options.\n * @return {Socket} for chaining.\n * @api public\n */\n write(msg, options, fn) {\n this.sendPacket(\"message\", msg, options, fn);\n return this;\n }\n send(msg, options, fn) {\n this.sendPacket(\"message\", msg, options, fn);\n return this;\n }\n /**\n * Sends a packet.\n *\n * @param {String} packet type.\n * @param {String} data.\n * @param {Object} options.\n * @param {Function} callback function.\n * @api private\n */\n sendPacket(type, data, options, fn) {\n if (\"function\" === typeof data) {\n fn = data;\n data = undefined;\n }\n if (\"function\" === typeof options) {\n fn = options;\n options = null;\n }\n if (\"closing\" === this.readyState || \"closed\" === this.readyState) {\n return;\n }\n options = options || {};\n options.compress = false !== options.compress;\n const packet = {\n type: type,\n data: data,\n options: options\n };\n this.emitReserved(\"packetCreate\", packet);\n this.writeBuffer.push(packet);\n if (fn)\n this.once(\"flush\", fn);\n this.flush();\n }\n /**\n * Closes the connection.\n *\n * @api public\n */\n close() {\n const close = () => {\n this.onClose(\"forced close\");\n this.transport.close();\n };\n const cleanupAndClose = () => {\n this.off(\"upgrade\", cleanupAndClose);\n this.off(\"upgradeError\", cleanupAndClose);\n close();\n };\n const waitForUpgrade = () => {\n // wait for upgrade to finish since we can't send packets while pausing a transport\n this.once(\"upgrade\", cleanupAndClose);\n this.once(\"upgradeError\", cleanupAndClose);\n };\n if (\"opening\" === this.readyState || \"open\" === this.readyState) {\n this.readyState = \"closing\";\n if (this.writeBuffer.length) {\n this.once(\"drain\", () => {\n if (this.upgrading) {\n waitForUpgrade();\n }\n else {\n close();\n }\n });\n }\n else if (this.upgrading) {\n waitForUpgrade();\n }\n else {\n close();\n }\n }\n return this;\n }\n /**\n * Called upon transport error\n *\n * @api private\n */\n onError(err) {\n Socket.priorWebsocketSuccess = false;\n this.emitReserved(\"error\", err);\n this.onClose(\"transport error\", err);\n }\n /**\n * Called upon transport close.\n *\n * @api private\n */\n onClose(reason, description) {\n if (\"opening\" === this.readyState ||\n \"open\" === this.readyState ||\n \"closing\" === this.readyState) {\n // clear timers\n this.clearTimeoutFn(this.pingTimeoutTimer);\n // stop event from firing again for transport\n this.transport.removeAllListeners(\"close\");\n // ensure transport won't stay open\n this.transport.close();\n // ignore further transport communication\n this.transport.removeAllListeners();\n if (typeof removeEventListener === \"function\") {\n removeEventListener(\"beforeunload\", this.beforeunloadEventListener, false);\n removeEventListener(\"offline\", this.offlineEventListener, false);\n }\n // set ready state\n this.readyState = \"closed\";\n // clear session id\n this.id = null;\n // emit close event\n this.emitReserved(\"close\", reason, description);\n // clean buffers after, so users can still\n // grab the buffers on `close` event\n this.writeBuffer = [];\n this.prevBufferLen = 0;\n }\n }\n /**\n * Filters upgrades, returning only those matching client transports.\n *\n * @param {Array} server upgrades\n * @api private\n *\n */\n filterUpgrades(upgrades) {\n const filteredUpgrades = [];\n let i = 0;\n const j = upgrades.length;\n for (; i < j; i++) {\n if (~this.transports.indexOf(upgrades[i]))\n filteredUpgrades.push(upgrades[i]);\n }\n return filteredUpgrades;\n }\n}\nSocket.protocol = protocol;\n","import { parse } from \"engine.io-client\";\n/**\n * URL parser.\n *\n * @param uri - url\n * @param path - the request path of the connection\n * @param loc - An object meant to mimic window.location.\n * Defaults to window.location.\n * @public\n */\nexport function url(uri, path = \"\", loc) {\n let obj = uri;\n // default to window.location\n loc = loc || (typeof location !== \"undefined\" && location);\n if (null == uri)\n uri = loc.protocol + \"//\" + loc.host;\n // relative path support\n if (typeof uri === \"string\") {\n if (\"/\" === uri.charAt(0)) {\n if (\"/\" === uri.charAt(1)) {\n uri = loc.protocol + uri;\n }\n else {\n uri = loc.host + uri;\n }\n }\n if (!/^(https?|wss?):\\/\\//.test(uri)) {\n if (\"undefined\" !== typeof loc) {\n uri = loc.protocol + \"//\" + uri;\n }\n else {\n uri = \"https://\" + uri;\n }\n }\n // parse\n obj = parse(uri);\n }\n // make sure we treat `localhost:80` and `localhost` equally\n if (!obj.port) {\n if (/^(http|ws)$/.test(obj.protocol)) {\n obj.port = \"80\";\n }\n else if (/^(http|ws)s$/.test(obj.protocol)) {\n obj.port = \"443\";\n }\n }\n obj.path = obj.path || \"/\";\n const ipv6 = obj.host.indexOf(\":\") !== -1;\n const host = ipv6 ? \"[\" + obj.host + \"]\" : obj.host;\n // define unique id\n obj.id = obj.protocol + \"://\" + host + \":\" + obj.port + path;\n // define href\n obj.href =\n obj.protocol +\n \"://\" +\n host +\n (loc && loc.port === obj.port ? \"\" : \":\" + obj.port);\n return obj;\n}\n","const withNativeArrayBuffer = typeof ArrayBuffer === \"function\";\nconst isView = (obj) => {\n return typeof ArrayBuffer.isView === \"function\"\n ? ArrayBuffer.isView(obj)\n : obj.buffer instanceof ArrayBuffer;\n};\nconst toString = Object.prototype.toString;\nconst withNativeBlob = typeof Blob === \"function\" ||\n (typeof Blob !== \"undefined\" &&\n toString.call(Blob) === \"[object BlobConstructor]\");\nconst withNativeFile = typeof File === \"function\" ||\n (typeof File !== \"undefined\" &&\n toString.call(File) === \"[object FileConstructor]\");\n/**\n * Returns true if obj is a Buffer, an ArrayBuffer, a Blob or a File.\n *\n * @private\n */\nexport function isBinary(obj) {\n return ((withNativeArrayBuffer && (obj instanceof ArrayBuffer || isView(obj))) ||\n (withNativeBlob && obj instanceof Blob) ||\n (withNativeFile && obj instanceof File));\n}\nexport function hasBinary(obj, toJSON) {\n if (!obj || typeof obj !== \"object\") {\n return false;\n }\n if (Array.isArray(obj)) {\n for (let i = 0, l = obj.length; i < l; i++) {\n if (hasBinary(obj[i])) {\n return true;\n }\n }\n return false;\n }\n if (isBinary(obj)) {\n return true;\n }\n if (obj.toJSON &&\n typeof obj.toJSON === \"function\" &&\n arguments.length === 1) {\n return hasBinary(obj.toJSON(), true);\n }\n for (const key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key) && hasBinary(obj[key])) {\n return true;\n }\n }\n return false;\n}\n","import { isBinary } from \"./is-binary.js\";\n/**\n * Replaces every Buffer | ArrayBuffer | Blob | File in packet with a numbered placeholder.\n *\n * @param {Object} packet - socket.io event packet\n * @return {Object} with deconstructed packet and list of buffers\n * @public\n */\nexport function deconstructPacket(packet) {\n const buffers = [];\n const packetData = packet.data;\n const pack = packet;\n pack.data = _deconstructPacket(packetData, buffers);\n pack.attachments = buffers.length; // number of binary 'attachments'\n return { packet: pack, buffers: buffers };\n}\nfunction _deconstructPacket(data, buffers) {\n if (!data)\n return data;\n if (isBinary(data)) {\n const placeholder = { _placeholder: true, num: buffers.length };\n buffers.push(data);\n return placeholder;\n }\n else if (Array.isArray(data)) {\n const newData = new Array(data.length);\n for (let i = 0; i < data.length; i++) {\n newData[i] = _deconstructPacket(data[i], buffers);\n }\n return newData;\n }\n else if (typeof data === \"object\" && !(data instanceof Date)) {\n const newData = {};\n for (const key in data) {\n if (Object.prototype.hasOwnProperty.call(data, key)) {\n newData[key] = _deconstructPacket(data[key], buffers);\n }\n }\n return newData;\n }\n return data;\n}\n/**\n * Reconstructs a binary packet from its placeholder packet and buffers\n *\n * @param {Object} packet - event packet with placeholders\n * @param {Array} buffers - binary buffers to put in placeholder positions\n * @return {Object} reconstructed packet\n * @public\n */\nexport function reconstructPacket(packet, buffers) {\n packet.data = _reconstructPacket(packet.data, buffers);\n packet.attachments = undefined; // no longer useful\n return packet;\n}\nfunction _reconstructPacket(data, buffers) {\n if (!data)\n return data;\n if (data && data._placeholder === true) {\n const isIndexValid = typeof data.num === \"number\" &&\n data.num >= 0 &&\n data.num < buffers.length;\n if (isIndexValid) {\n return buffers[data.num]; // appropriate buffer (should be natural order anyway)\n }\n else {\n throw new Error(\"illegal attachments\");\n }\n }\n else if (Array.isArray(data)) {\n for (let i = 0; i < data.length; i++) {\n data[i] = _reconstructPacket(data[i], buffers);\n }\n }\n else if (typeof data === \"object\") {\n for (const key in data) {\n if (Object.prototype.hasOwnProperty.call(data, key)) {\n data[key] = _reconstructPacket(data[key], buffers);\n }\n }\n }\n return data;\n}\n","import { Emitter } from \"@socket.io/component-emitter\";\nimport { deconstructPacket, reconstructPacket } from \"./binary.js\";\nimport { isBinary, hasBinary } from \"./is-binary.js\";\n/**\n * Protocol version.\n *\n * @public\n */\nexport const protocol = 5;\nexport var PacketType;\n(function (PacketType) {\n PacketType[PacketType[\"CONNECT\"] = 0] = \"CONNECT\";\n PacketType[PacketType[\"DISCONNECT\"] = 1] = \"DISCONNECT\";\n PacketType[PacketType[\"EVENT\"] = 2] = \"EVENT\";\n PacketType[PacketType[\"ACK\"] = 3] = \"ACK\";\n PacketType[PacketType[\"CONNECT_ERROR\"] = 4] = \"CONNECT_ERROR\";\n PacketType[PacketType[\"BINARY_EVENT\"] = 5] = \"BINARY_EVENT\";\n PacketType[PacketType[\"BINARY_ACK\"] = 6] = \"BINARY_ACK\";\n})(PacketType || (PacketType = {}));\n/**\n * A socket.io Encoder instance\n */\nexport class Encoder {\n /**\n * Encoder constructor\n *\n * @param {function} replacer - custom replacer to pass down to JSON.parse\n */\n constructor(replacer) {\n this.replacer = replacer;\n }\n /**\n * Encode a packet as a single string if non-binary, or as a\n * buffer sequence, depending on packet type.\n *\n * @param {Object} obj - packet object\n */\n encode(obj) {\n if (obj.type === PacketType.EVENT || obj.type === PacketType.ACK) {\n if (hasBinary(obj)) {\n obj.type =\n obj.type === PacketType.EVENT\n ? PacketType.BINARY_EVENT\n : PacketType.BINARY_ACK;\n return this.encodeAsBinary(obj);\n }\n }\n return [this.encodeAsString(obj)];\n }\n /**\n * Encode packet as string.\n */\n encodeAsString(obj) {\n // first is type\n let str = \"\" + obj.type;\n // attachments if we have them\n if (obj.type === PacketType.BINARY_EVENT ||\n obj.type === PacketType.BINARY_ACK) {\n str += obj.attachments + \"-\";\n }\n // if we have a namespace other than `/`\n // we append it followed by a comma `,`\n if (obj.nsp && \"/\" !== obj.nsp) {\n str += obj.nsp + \",\";\n }\n // immediately followed by the id\n if (null != obj.id) {\n str += obj.id;\n }\n // json data\n if (null != obj.data) {\n str += JSON.stringify(obj.data, this.replacer);\n }\n return str;\n }\n /**\n * Encode packet as 'buffer sequence' by removing blobs, and\n * deconstructing packet into object with placeholders and\n * a list of buffers.\n */\n encodeAsBinary(obj) {\n const deconstruction = deconstructPacket(obj);\n const pack = this.encodeAsString(deconstruction.packet);\n const buffers = deconstruction.buffers;\n buffers.unshift(pack); // add packet info to beginning of data list\n return buffers; // write all the buffers\n }\n}\n/**\n * A socket.io Decoder instance\n *\n * @return {Object} decoder\n */\nexport class Decoder extends Emitter {\n /**\n * Decoder constructor\n *\n * @param {function} reviver - custom reviver to pass down to JSON.stringify\n */\n constructor(reviver) {\n super();\n this.reviver = reviver;\n }\n /**\n * Decodes an encoded packet string into packet JSON.\n *\n * @param {String} obj - encoded packet\n */\n add(obj) {\n let packet;\n if (typeof obj === \"string\") {\n if (this.reconstructor) {\n throw new Error(\"got plaintext data when reconstructing a packet\");\n }\n packet = this.decodeString(obj);\n if (packet.type === PacketType.BINARY_EVENT ||\n packet.type === PacketType.BINARY_ACK) {\n // binary packet's json\n this.reconstructor = new BinaryReconstructor(packet);\n // no attachments, labeled binary but no binary data to follow\n if (packet.attachments === 0) {\n super.emitReserved(\"decoded\", packet);\n }\n }\n else {\n // non-binary full packet\n super.emitReserved(\"decoded\", packet);\n }\n }\n else if (isBinary(obj) || obj.base64) {\n // raw binary data\n if (!this.reconstructor) {\n throw new Error(\"got binary data when not reconstructing a packet\");\n }\n else {\n packet = this.reconstructor.takeBinaryData(obj);\n if (packet) {\n // received final buffer\n this.reconstructor = null;\n super.emitReserved(\"decoded\", packet);\n }\n }\n }\n else {\n throw new Error(\"Unknown type: \" + obj);\n }\n }\n /**\n * Decode a packet String (JSON data)\n *\n * @param {String} str\n * @return {Object} packet\n */\n decodeString(str) {\n let i = 0;\n // look up type\n const p = {\n type: Number(str.charAt(0)),\n };\n if (PacketType[p.type] === undefined) {\n throw new Error(\"unknown packet type \" + p.type);\n }\n // look up attachments if type binary\n if (p.type === PacketType.BINARY_EVENT ||\n p.type === PacketType.BINARY_ACK) {\n const start = i + 1;\n while (str.charAt(++i) !== \"-\" && i != str.length) { }\n const buf = str.substring(start, i);\n if (buf != Number(buf) || str.charAt(i) !== \"-\") {\n throw new Error(\"Illegal attachments\");\n }\n p.attachments = Number(buf);\n }\n // look up namespace (if any)\n if (\"/\" === str.charAt(i + 1)) {\n const start = i + 1;\n while (++i) {\n const c = str.charAt(i);\n if (\",\" === c)\n break;\n if (i === str.length)\n break;\n }\n p.nsp = str.substring(start, i);\n }\n else {\n p.nsp = \"/\";\n }\n // look up id\n const next = str.charAt(i + 1);\n if (\"\" !== next && Number(next) == next) {\n const start = i + 1;\n while (++i) {\n const c = str.charAt(i);\n if (null == c || Number(c) != c) {\n --i;\n break;\n }\n if (i === str.length)\n break;\n }\n p.id = Number(str.substring(start, i + 1));\n }\n // look up json data\n if (str.charAt(++i)) {\n const payload = this.tryParse(str.substr(i));\n if (Decoder.isPayloadValid(p.type, payload)) {\n p.data = payload;\n }\n else {\n throw new Error(\"invalid payload\");\n }\n }\n return p;\n }\n tryParse(str) {\n try {\n return JSON.parse(str, this.reviver);\n }\n catch (e) {\n return false;\n }\n }\n static isPayloadValid(type, payload) {\n switch (type) {\n case PacketType.CONNECT:\n return typeof payload === \"object\";\n case PacketType.DISCONNECT:\n return payload === undefined;\n case PacketType.CONNECT_ERROR:\n return typeof payload === \"string\" || typeof payload === \"object\";\n case PacketType.EVENT:\n case PacketType.BINARY_EVENT:\n return Array.isArray(payload) && payload.length > 0;\n case PacketType.ACK:\n case PacketType.BINARY_ACK:\n return Array.isArray(payload);\n }\n }\n /**\n * Deallocates a parser's resources\n */\n destroy() {\n if (this.reconstructor) {\n this.reconstructor.finishedReconstruction();\n }\n }\n}\n/**\n * A manager of a binary event's 'buffer sequence'. Should\n * be constructed whenever a packet of type BINARY_EVENT is\n * decoded.\n *\n * @param {Object} packet\n * @return {BinaryReconstructor} initialized reconstructor\n */\nclass BinaryReconstructor {\n constructor(packet) {\n this.packet = packet;\n this.buffers = [];\n this.reconPack = packet;\n }\n /**\n * Method to be called when binary data received from connection\n * after a BINARY_EVENT packet.\n *\n * @param {Buffer | ArrayBuffer} binData - the raw binary data received\n * @return {null | Object} returns null if more binary data is expected or\n * a reconstructed packet object if all buffers have been received.\n */\n takeBinaryData(binData) {\n this.buffers.push(binData);\n if (this.buffers.length === this.reconPack.attachments) {\n // done with buffer list\n const packet = reconstructPacket(this.reconPack, this.buffers);\n this.finishedReconstruction();\n return packet;\n }\n return null;\n }\n /**\n * Cleans up binary packet reconstruction variables.\n */\n finishedReconstruction() {\n this.reconPack = null;\n this.buffers = [];\n }\n}\n","export function on(obj, ev, fn) {\n obj.on(ev, fn);\n return function subDestroy() {\n obj.off(ev, fn);\n };\n}\n","import { PacketType } from \"socket.io-parser\";\nimport { on } from \"./on.js\";\nimport { Emitter, } from \"@socket.io/component-emitter\";\n/**\n * Internal events.\n * These events can't be emitted by the user.\n */\nconst RESERVED_EVENTS = Object.freeze({\n connect: 1,\n connect_error: 1,\n disconnect: 1,\n disconnecting: 1,\n // EventEmitter reserved events: https://nodejs.org/api/events.html#events_event_newlistener\n newListener: 1,\n removeListener: 1,\n});\n/**\n * A Socket is the fundamental class for interacting with the server.\n *\n * A Socket belongs to a certain Namespace (by default /) and uses an underlying {@link Manager} to communicate.\n *\n * @example\n * const socket = io();\n *\n * socket.on(\"connect\", () => {\n * console.log(\"connected\");\n * });\n *\n * // send an event to the server\n * socket.emit(\"foo\", \"bar\");\n *\n * socket.on(\"foobar\", () => {\n * // an event was received from the server\n * });\n *\n * // upon disconnection\n * socket.on(\"disconnect\", (reason) => {\n * console.log(`disconnected due to ${reason}`);\n * });\n */\nexport class Socket extends Emitter {\n /**\n * `Socket` constructor.\n */\n constructor(io, nsp, opts) {\n super();\n /**\n * Whether the socket is currently connected to the server.\n *\n * @example\n * const socket = io();\n *\n * socket.on(\"connect\", () => {\n * console.log(socket.connected); // true\n * });\n *\n * socket.on(\"disconnect\", () => {\n * console.log(socket.connected); // false\n * });\n */\n this.connected = false;\n /**\n * Buffer for packets received before the CONNECT packet\n */\n this.receiveBuffer = [];\n /**\n * Buffer for packets that will be sent once the socket is connected\n */\n this.sendBuffer = [];\n this.ids = 0;\n this.acks = {};\n this.flags = {};\n this.io = io;\n this.nsp = nsp;\n if (opts && opts.auth) {\n this.auth = opts.auth;\n }\n if (this.io._autoConnect)\n this.open();\n }\n /**\n * Whether the socket is currently disconnected\n *\n * @example\n * const socket = io();\n *\n * socket.on(\"connect\", () => {\n * console.log(socket.disconnected); // false\n * });\n *\n * socket.on(\"disconnect\", () => {\n * console.log(socket.disconnected); // true\n * });\n */\n get disconnected() {\n return !this.connected;\n }\n /**\n * Subscribe to open, close and packet events\n *\n * @private\n */\n subEvents() {\n if (this.subs)\n return;\n const io = this.io;\n this.subs = [\n on(io, \"open\", this.onopen.bind(this)),\n on(io, \"packet\", this.onpacket.bind(this)),\n on(io, \"error\", this.onerror.bind(this)),\n on(io, \"close\", this.onclose.bind(this)),\n ];\n }\n /**\n * Whether the Socket will try to reconnect when its Manager connects or reconnects.\n *\n * @example\n * const socket = io();\n *\n * console.log(socket.active); // true\n *\n * socket.on(\"disconnect\", (reason) => {\n * if (reason === \"io server disconnect\") {\n * // the disconnection was initiated by the server, you need to manually reconnect\n * console.log(socket.active); // false\n * }\n * // else the socket will automatically try to reconnect\n * console.log(socket.active); // true\n * });\n */\n get active() {\n return !!this.subs;\n }\n /**\n * \"Opens\" the socket.\n *\n * @example\n * const socket = io({\n * autoConnect: false\n * });\n *\n * socket.connect();\n */\n connect() {\n if (this.connected)\n return this;\n this.subEvents();\n if (!this.io[\"_reconnecting\"])\n this.io.open(); // ensure open\n if (\"open\" === this.io._readyState)\n this.onopen();\n return this;\n }\n /**\n * Alias for {@link connect()}.\n */\n open() {\n return this.connect();\n }\n /**\n * Sends a `message` event.\n *\n * This method mimics the WebSocket.send() method.\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/API/WebSocket/send\n *\n * @example\n * socket.send(\"hello\");\n *\n * // this is equivalent to\n * socket.emit(\"message\", \"hello\");\n *\n * @return self\n */\n send(...args) {\n args.unshift(\"message\");\n this.emit.apply(this, args);\n return this;\n }\n /**\n * Override `emit`.\n * If the event is in `events`, it's emitted normally.\n *\n * @example\n * socket.emit(\"hello\", \"world\");\n *\n * // all serializable datastructures are supported (no need to call JSON.stringify)\n * socket.emit(\"hello\", 1, \"2\", { 3: [\"4\"], 5: Uint8Array.from([6]) });\n *\n * // with an acknowledgement from the server\n * socket.emit(\"hello\", \"world\", (val) => {\n * // ...\n * });\n *\n * @return self\n */\n emit(ev, ...args) {\n if (RESERVED_EVENTS.hasOwnProperty(ev)) {\n throw new Error('\"' + ev.toString() + '\" is a reserved event name');\n }\n args.unshift(ev);\n const packet = {\n type: PacketType.EVENT,\n data: args,\n };\n packet.options = {};\n packet.options.compress = this.flags.compress !== false;\n // event ack callback\n if (\"function\" === typeof args[args.length - 1]) {\n const id = this.ids++;\n const ack = args.pop();\n this._registerAckCallback(id, ack);\n packet.id = id;\n }\n const isTransportWritable = this.io.engine &&\n this.io.engine.transport &&\n this.io.engine.transport.writable;\n const discardPacket = this.flags.volatile && (!isTransportWritable || !this.connected);\n if (discardPacket) {\n }\n else if (this.connected) {\n this.notifyOutgoingListeners(packet);\n this.packet(packet);\n }\n else {\n this.sendBuffer.push(packet);\n }\n this.flags = {};\n return this;\n }\n /**\n * @private\n */\n _registerAckCallback(id, ack) {\n const timeout = this.flags.timeout;\n if (timeout === undefined) {\n this.acks[id] = ack;\n return;\n }\n // @ts-ignore\n const timer = this.io.setTimeoutFn(() => {\n delete this.acks[id];\n for (let i = 0; i < this.sendBuffer.length; i++) {\n if (this.sendBuffer[i].id === id) {\n this.sendBuffer.splice(i, 1);\n }\n }\n ack.call(this, new Error(\"operation has timed out\"));\n }, timeout);\n this.acks[id] = (...args) => {\n // @ts-ignore\n this.io.clearTimeoutFn(timer);\n ack.apply(this, [null, ...args]);\n };\n }\n /**\n * Sends a packet.\n *\n * @param packet\n * @private\n */\n packet(packet) {\n packet.nsp = this.nsp;\n this.io._packet(packet);\n }\n /**\n * Called upon engine `open`.\n *\n * @private\n */\n onopen() {\n if (typeof this.auth == \"function\") {\n this.auth((data) => {\n this.packet({ type: PacketType.CONNECT, data });\n });\n }\n else {\n this.packet({ type: PacketType.CONNECT, data: this.auth });\n }\n }\n /**\n * Called upon engine or manager `error`.\n *\n * @param err\n * @private\n */\n onerror(err) {\n if (!this.connected) {\n this.emitReserved(\"connect_error\", err);\n }\n }\n /**\n * Called upon engine `close`.\n *\n * @param reason\n * @param description\n * @private\n */\n onclose(reason, description) {\n this.connected = false;\n delete this.id;\n this.emitReserved(\"disconnect\", reason, description);\n }\n /**\n * Called with socket packet.\n *\n * @param packet\n * @private\n */\n onpacket(packet) {\n const sameNamespace = packet.nsp === this.nsp;\n if (!sameNamespace)\n return;\n switch (packet.type) {\n case PacketType.CONNECT:\n if (packet.data && packet.data.sid) {\n const id = packet.data.sid;\n this.onconnect(id);\n }\n else {\n this.emitReserved(\"connect_error\", new Error(\"It seems you are trying to reach a Socket.IO server in v2.x with a v3.x client, but they are not compatible (more information here: https://socket.io/docs/v3/migrating-from-2-x-to-3-0/)\"));\n }\n break;\n case PacketType.EVENT:\n case PacketType.BINARY_EVENT:\n this.onevent(packet);\n break;\n case PacketType.ACK:\n case PacketType.BINARY_ACK:\n this.onack(packet);\n break;\n case PacketType.DISCONNECT:\n this.ondisconnect();\n break;\n case PacketType.CONNECT_ERROR:\n this.destroy();\n const err = new Error(packet.data.message);\n // @ts-ignore\n err.data = packet.data.data;\n this.emitReserved(\"connect_error\", err);\n break;\n }\n }\n /**\n * Called upon a server event.\n *\n * @param packet\n * @private\n */\n onevent(packet) {\n const args = packet.data || [];\n if (null != packet.id) {\n args.push(this.ack(packet.id));\n }\n if (this.connected) {\n this.emitEvent(args);\n }\n else {\n this.receiveBuffer.push(Object.freeze(args));\n }\n }\n emitEvent(args) {\n if (this._anyListeners && this._anyListeners.length) {\n const listeners = this._anyListeners.slice();\n for (const listener of listeners) {\n listener.apply(this, args);\n }\n }\n super.emit.apply(this, args);\n }\n /**\n * Produces an ack callback to emit with an event.\n *\n * @private\n */\n ack(id) {\n const self = this;\n let sent = false;\n return function (...args) {\n // prevent double callbacks\n if (sent)\n return;\n sent = true;\n self.packet({\n type: PacketType.ACK,\n id: id,\n data: args,\n });\n };\n }\n /**\n * Called upon a server acknowlegement.\n *\n * @param packet\n * @private\n */\n onack(packet) {\n const ack = this.acks[packet.id];\n if (\"function\" === typeof ack) {\n ack.apply(this, packet.data);\n delete this.acks[packet.id];\n }\n else {\n }\n }\n /**\n * Called upon server connect.\n *\n * @private\n */\n onconnect(id) {\n this.id = id;\n this.connected = true;\n this.emitBuffered();\n this.emitReserved(\"connect\");\n }\n /**\n * Emit buffered events (received and emitted).\n *\n * @private\n */\n emitBuffered() {\n this.receiveBuffer.forEach((args) => this.emitEvent(args));\n this.receiveBuffer = [];\n this.sendBuffer.forEach((packet) => {\n this.notifyOutgoingListeners(packet);\n this.packet(packet);\n });\n this.sendBuffer = [];\n }\n /**\n * Called upon server disconnect.\n *\n * @private\n */\n ondisconnect() {\n this.destroy();\n this.onclose(\"io server disconnect\");\n }\n /**\n * Called upon forced client/server side disconnections,\n * this method ensures the manager stops tracking us and\n * that reconnections don't get triggered for this.\n *\n * @private\n */\n destroy() {\n if (this.subs) {\n // clean subscriptions to avoid reconnections\n this.subs.forEach((subDestroy) => subDestroy());\n this.subs = undefined;\n }\n this.io[\"_destroy\"](this);\n }\n /**\n * Disconnects the socket manually. In that case, the socket will not try to reconnect.\n *\n * If this is the last active Socket instance of the {@link Manager}, the low-level connection will be closed.\n *\n * @example\n * const socket = io();\n *\n * socket.on(\"disconnect\", (reason) => {\n * // console.log(reason); prints \"io client disconnect\"\n * });\n *\n * socket.disconnect();\n *\n * @return self\n */\n disconnect() {\n if (this.connected) {\n this.packet({ type: PacketType.DISCONNECT });\n }\n // remove socket from pool\n this.destroy();\n if (this.connected) {\n // fire events\n this.onclose(\"io client disconnect\");\n }\n return this;\n }\n /**\n * Alias for {@link disconnect()}.\n *\n * @return self\n */\n close() {\n return this.disconnect();\n }\n /**\n * Sets the compress flag.\n *\n * @example\n * socket.compress(false).emit(\"hello\");\n *\n * @param compress - if `true`, compresses the sending data\n * @return self\n */\n compress(compress) {\n this.flags.compress = compress;\n return this;\n }\n /**\n * Sets a modifier for a subsequent event emission that the event message will be dropped when this socket is not\n * ready to send messages.\n *\n * @example\n * socket.volatile.emit(\"hello\"); // the server may or may not receive it\n *\n * @returns self\n */\n get volatile() {\n this.flags.volatile = true;\n return this;\n }\n /**\n * Sets a modifier for a subsequent event emission that the callback will be called with an error when the\n * given number of milliseconds have elapsed without an acknowledgement from the server:\n *\n * @example\n * socket.timeout(5000).emit(\"my-event\", (err) => {\n * if (err) {\n * // the server did not acknowledge the event in the given delay\n * }\n * });\n *\n * @returns self\n */\n timeout(timeout) {\n this.flags.timeout = timeout;\n return this;\n }\n /**\n * Adds a listener that will be fired when any event is emitted. The event name is passed as the first argument to the\n * callback.\n *\n * @example\n * socket.onAny((event, ...args) => {\n * console.log(`got ${event}`);\n * });\n *\n * @param listener\n */\n onAny(listener) {\n this._anyListeners = this._anyListeners || [];\n this._anyListeners.push(listener);\n return this;\n }\n /**\n * Adds a listener that will be fired when any event is emitted. The event name is passed as the first argument to the\n * callback. The listener is added to the beginning of the listeners array.\n *\n * @example\n * socket.prependAny((event, ...args) => {\n * console.log(`got event ${event}`);\n * });\n *\n * @param listener\n */\n prependAny(listener) {\n this._anyListeners = this._anyListeners || [];\n this._anyListeners.unshift(listener);\n return this;\n }\n /**\n * Removes the listener that will be fired when any event is emitted.\n *\n * @example\n * const catchAllListener = (event, ...args) => {\n * console.log(`got event ${event}`);\n * }\n *\n * socket.onAny(catchAllListener);\n *\n * // remove a specific listener\n * socket.offAny(catchAllListener);\n *\n * // or remove all listeners\n * socket.offAny();\n *\n * @param listener\n */\n offAny(listener) {\n if (!this._anyListeners) {\n return this;\n }\n if (listener) {\n const listeners = this._anyListeners;\n for (let i = 0; i < listeners.length; i++) {\n if (listener === listeners[i]) {\n listeners.splice(i, 1);\n return this;\n }\n }\n }\n else {\n this._anyListeners = [];\n }\n return this;\n }\n /**\n * Returns an array of listeners that are listening for any event that is specified. This array can be manipulated,\n * e.g. to remove listeners.\n */\n listenersAny() {\n return this._anyListeners || [];\n }\n /**\n * Adds a listener that will be fired when any event is emitted. The event name is passed as the first argument to the\n * callback.\n *\n * Note: acknowledgements sent to the server are not included.\n *\n * @example\n * socket.onAnyOutgoing((event, ...args) => {\n * console.log(`sent event ${event}`);\n * });\n *\n * @param listener\n */\n onAnyOutgoing(listener) {\n this._anyOutgoingListeners = this._anyOutgoingListeners || [];\n this._anyOutgoingListeners.push(listener);\n return this;\n }\n /**\n * Adds a listener that will be fired when any event is emitted. The event name is passed as the first argument to the\n * callback. The listener is added to the beginning of the listeners array.\n *\n * Note: acknowledgements sent to the server are not included.\n *\n * @example\n * socket.prependAnyOutgoing((event, ...args) => {\n * console.log(`sent event ${event}`);\n * });\n *\n * @param listener\n */\n prependAnyOutgoing(listener) {\n this._anyOutgoingListeners = this._anyOutgoingListeners || [];\n this._anyOutgoingListeners.unshift(listener);\n return this;\n }\n /**\n * Removes the listener that will be fired when any event is emitted.\n *\n * @example\n * const catchAllListener = (event, ...args) => {\n * console.log(`sent event ${event}`);\n * }\n *\n * socket.onAnyOutgoing(catchAllListener);\n *\n * // remove a specific listener\n * socket.offAnyOutgoing(catchAllListener);\n *\n * // or remove all listeners\n * socket.offAnyOutgoing();\n *\n * @param [listener] - the catch-all listener (optional)\n */\n offAnyOutgoing(listener) {\n if (!this._anyOutgoingListeners) {\n return this;\n }\n if (listener) {\n const listeners = this._anyOutgoingListeners;\n for (let i = 0; i < listeners.length; i++) {\n if (listener === listeners[i]) {\n listeners.splice(i, 1);\n return this;\n }\n }\n }\n else {\n this._anyOutgoingListeners = [];\n }\n return this;\n }\n /**\n * Returns an array of listeners that are listening for any event that is specified. This array can be manipulated,\n * e.g. to remove listeners.\n */\n listenersAnyOutgoing() {\n return this._anyOutgoingListeners || [];\n }\n /**\n * Notify the listeners for each packet sent\n *\n * @param packet\n *\n * @private\n */\n notifyOutgoingListeners(packet) {\n if (this._anyOutgoingListeners && this._anyOutgoingListeners.length) {\n const listeners = this._anyOutgoingListeners.slice();\n for (const listener of listeners) {\n listener.apply(this, packet.data);\n }\n }\n }\n}\n","/**\n * Initialize backoff timer with `opts`.\n *\n * - `min` initial timeout in milliseconds [100]\n * - `max` max timeout [10000]\n * - `jitter` [0]\n * - `factor` [2]\n *\n * @param {Object} opts\n * @api public\n */\nexport function Backoff(opts) {\n opts = opts || {};\n this.ms = opts.min || 100;\n this.max = opts.max || 10000;\n this.factor = opts.factor || 2;\n this.jitter = opts.jitter > 0 && opts.jitter <= 1 ? opts.jitter : 0;\n this.attempts = 0;\n}\n/**\n * Return the backoff duration.\n *\n * @return {Number}\n * @api public\n */\nBackoff.prototype.duration = function () {\n var ms = this.ms * Math.pow(this.factor, this.attempts++);\n if (this.jitter) {\n var rand = Math.random();\n var deviation = Math.floor(rand * this.jitter * ms);\n ms = (Math.floor(rand * 10) & 1) == 0 ? ms - deviation : ms + deviation;\n }\n return Math.min(ms, this.max) | 0;\n};\n/**\n * Reset the number of attempts.\n *\n * @api public\n */\nBackoff.prototype.reset = function () {\n this.attempts = 0;\n};\n/**\n * Set the minimum duration\n *\n * @api public\n */\nBackoff.prototype.setMin = function (min) {\n this.ms = min;\n};\n/**\n * Set the maximum duration\n *\n * @api public\n */\nBackoff.prototype.setMax = function (max) {\n this.max = max;\n};\n/**\n * Set the jitter\n *\n * @api public\n */\nBackoff.prototype.setJitter = function (jitter) {\n this.jitter = jitter;\n};\n","import { Socket as Engine, installTimerFunctions, nextTick, } from \"engine.io-client\";\nimport { Socket } from \"./socket.js\";\nimport * as parser from \"socket.io-parser\";\nimport { on } from \"./on.js\";\nimport { Backoff } from \"./contrib/backo2.js\";\nimport { Emitter, } from \"@socket.io/component-emitter\";\nexport class Manager extends Emitter {\n constructor(uri, opts) {\n var _a;\n super();\n this.nsps = {};\n this.subs = [];\n if (uri && \"object\" === typeof uri) {\n opts = uri;\n uri = undefined;\n }\n opts = opts || {};\n opts.path = opts.path || \"/socket.io\";\n this.opts = opts;\n installTimerFunctions(this, opts);\n this.reconnection(opts.reconnection !== false);\n this.reconnectionAttempts(opts.reconnectionAttempts || Infinity);\n this.reconnectionDelay(opts.reconnectionDelay || 1000);\n this.reconnectionDelayMax(opts.reconnectionDelayMax || 5000);\n this.randomizationFactor((_a = opts.randomizationFactor) !== null && _a !== void 0 ? _a : 0.5);\n this.backoff = new Backoff({\n min: this.reconnectionDelay(),\n max: this.reconnectionDelayMax(),\n jitter: this.randomizationFactor(),\n });\n this.timeout(null == opts.timeout ? 20000 : opts.timeout);\n this._readyState = \"closed\";\n this.uri = uri;\n const _parser = opts.parser || parser;\n this.encoder = new _parser.Encoder();\n this.decoder = new _parser.Decoder();\n this._autoConnect = opts.autoConnect !== false;\n if (this._autoConnect)\n this.open();\n }\n reconnection(v) {\n if (!arguments.length)\n return this._reconnection;\n this._reconnection = !!v;\n return this;\n }\n reconnectionAttempts(v) {\n if (v === undefined)\n return this._reconnectionAttempts;\n this._reconnectionAttempts = v;\n return this;\n }\n reconnectionDelay(v) {\n var _a;\n if (v === undefined)\n return this._reconnectionDelay;\n this._reconnectionDelay = v;\n (_a = this.backoff) === null || _a === void 0 ? void 0 : _a.setMin(v);\n return this;\n }\n randomizationFactor(v) {\n var _a;\n if (v === undefined)\n return this._randomizationFactor;\n this._randomizationFactor = v;\n (_a = this.backoff) === null || _a === void 0 ? void 0 : _a.setJitter(v);\n return this;\n }\n reconnectionDelayMax(v) {\n var _a;\n if (v === undefined)\n return this._reconnectionDelayMax;\n this._reconnectionDelayMax = v;\n (_a = this.backoff) === null || _a === void 0 ? void 0 : _a.setMax(v);\n return this;\n }\n timeout(v) {\n if (!arguments.length)\n return this._timeout;\n this._timeout = v;\n return this;\n }\n /**\n * Starts trying to reconnect if reconnection is enabled and we have not\n * started reconnecting yet\n *\n * @private\n */\n maybeReconnectOnOpen() {\n // Only try to reconnect if it's the first time we're connecting\n if (!this._reconnecting &&\n this._reconnection &&\n this.backoff.attempts === 0) {\n // keeps reconnection from firing twice for the same reconnection loop\n this.reconnect();\n }\n }\n /**\n * Sets the current transport `socket`.\n *\n * @param {Function} fn - optional, callback\n * @return self\n * @public\n */\n open(fn) {\n if (~this._readyState.indexOf(\"open\"))\n return this;\n this.engine = new Engine(this.uri, this.opts);\n const socket = this.engine;\n const self = this;\n this._readyState = \"opening\";\n this.skipReconnect = false;\n // emit `open`\n const openSubDestroy = on(socket, \"open\", function () {\n self.onopen();\n fn && fn();\n });\n // emit `error`\n const errorSub = on(socket, \"error\", (err) => {\n self.cleanup();\n self._readyState = \"closed\";\n this.emitReserved(\"error\", err);\n if (fn) {\n fn(err);\n }\n else {\n // Only do this if there is no fn to handle the error\n self.maybeReconnectOnOpen();\n }\n });\n if (false !== this._timeout) {\n const timeout = this._timeout;\n if (timeout === 0) {\n openSubDestroy(); // prevents a race condition with the 'open' event\n }\n // set timer\n const timer = this.setTimeoutFn(() => {\n openSubDestroy();\n socket.close();\n // @ts-ignore\n socket.emit(\"error\", new Error(\"timeout\"));\n }, timeout);\n if (this.opts.autoUnref) {\n timer.unref();\n }\n this.subs.push(function subDestroy() {\n clearTimeout(timer);\n });\n }\n this.subs.push(openSubDestroy);\n this.subs.push(errorSub);\n return this;\n }\n /**\n * Alias for open()\n *\n * @return self\n * @public\n */\n connect(fn) {\n return this.open(fn);\n }\n /**\n * Called upon transport open.\n *\n * @private\n */\n onopen() {\n // clear old subs\n this.cleanup();\n // mark as open\n this._readyState = \"open\";\n this.emitReserved(\"open\");\n // add new subs\n const socket = this.engine;\n this.subs.push(on(socket, \"ping\", this.onping.bind(this)), on(socket, \"data\", this.ondata.bind(this)), on(socket, \"error\", this.onerror.bind(this)), on(socket, \"close\", this.onclose.bind(this)), on(this.decoder, \"decoded\", this.ondecoded.bind(this)));\n }\n /**\n * Called upon a ping.\n *\n * @private\n */\n onping() {\n this.emitReserved(\"ping\");\n }\n /**\n * Called with data.\n *\n * @private\n */\n ondata(data) {\n try {\n this.decoder.add(data);\n }\n catch (e) {\n this.onclose(\"parse error\", e);\n }\n }\n /**\n * Called when parser fully decodes a packet.\n *\n * @private\n */\n ondecoded(packet) {\n // the nextTick call prevents an exception in a user-provided event listener from triggering a disconnection due to a \"parse error\"\n nextTick(() => {\n this.emitReserved(\"packet\", packet);\n }, this.setTimeoutFn);\n }\n /**\n * Called upon socket error.\n *\n * @private\n */\n onerror(err) {\n this.emitReserved(\"error\", err);\n }\n /**\n * Creates a new socket for the given `nsp`.\n *\n * @return {Socket}\n * @public\n */\n socket(nsp, opts) {\n let socket = this.nsps[nsp];\n if (!socket) {\n socket = new Socket(this, nsp, opts);\n this.nsps[nsp] = socket;\n }\n return socket;\n }\n /**\n * Called upon a socket close.\n *\n * @param socket\n * @private\n */\n _destroy(socket) {\n const nsps = Object.keys(this.nsps);\n for (const nsp of nsps) {\n const socket = this.nsps[nsp];\n if (socket.active) {\n return;\n }\n }\n this._close();\n }\n /**\n * Writes a packet.\n *\n * @param packet\n * @private\n */\n _packet(packet) {\n const encodedPackets = this.encoder.encode(packet);\n for (let i = 0; i < encodedPackets.length; i++) {\n this.engine.write(encodedPackets[i], packet.options);\n }\n }\n /**\n * Clean up transport subscriptions and packet buffer.\n *\n * @private\n */\n cleanup() {\n this.subs.forEach((subDestroy) => subDestroy());\n this.subs.length = 0;\n this.decoder.destroy();\n }\n /**\n * Close the current socket.\n *\n * @private\n */\n _close() {\n this.skipReconnect = true;\n this._reconnecting = false;\n this.onclose(\"forced close\");\n if (this.engine)\n this.engine.close();\n }\n /**\n * Alias for close()\n *\n * @private\n */\n disconnect() {\n return this._close();\n }\n /**\n * Called upon engine close.\n *\n * @private\n */\n onclose(reason, description) {\n this.cleanup();\n this.backoff.reset();\n this._readyState = \"closed\";\n this.emitReserved(\"close\", reason, description);\n if (this._reconnection && !this.skipReconnect) {\n this.reconnect();\n }\n }\n /**\n * Attempt a reconnection.\n *\n * @private\n */\n reconnect() {\n if (this._reconnecting || this.skipReconnect)\n return this;\n const self = this;\n if (this.backoff.attempts >= this._reconnectionAttempts) {\n this.backoff.reset();\n this.emitReserved(\"reconnect_failed\");\n this._reconnecting = false;\n }\n else {\n const delay = this.backoff.duration();\n this._reconnecting = true;\n const timer = this.setTimeoutFn(() => {\n if (self.skipReconnect)\n return;\n this.emitReserved(\"reconnect_attempt\", self.backoff.attempts);\n // check again for the case socket closed in above events\n if (self.skipReconnect)\n return;\n self.open((err) => {\n if (err) {\n self._reconnecting = false;\n self.reconnect();\n this.emitReserved(\"reconnect_error\", err);\n }\n else {\n self.onreconnect();\n }\n });\n }, delay);\n if (this.opts.autoUnref) {\n timer.unref();\n }\n this.subs.push(function subDestroy() {\n clearTimeout(timer);\n });\n }\n }\n /**\n * Called upon successful reconnect.\n *\n * @private\n */\n onreconnect() {\n const attempt = this.backoff.attempts;\n this._reconnecting = false;\n this.backoff.reset();\n this.emitReserved(\"reconnect\", attempt);\n }\n}\n","import { url } from \"./url.js\";\nimport { Manager } from \"./manager.js\";\nimport { Socket } from \"./socket.js\";\n/**\n * Managers cache.\n */\nconst cache = {};\nfunction lookup(uri, opts) {\n if (typeof uri === \"object\") {\n opts = uri;\n uri = undefined;\n }\n opts = opts || {};\n const parsed = url(uri, opts.path || \"/socket.io\");\n const source = parsed.source;\n const id = parsed.id;\n const path = parsed.path;\n const sameNamespace = cache[id] && path in cache[id][\"nsps\"];\n const newConnection = opts.forceNew ||\n opts[\"force new connection\"] ||\n false === opts.multiplex ||\n sameNamespace;\n let io;\n if (newConnection) {\n io = new Manager(source, opts);\n }\n else {\n if (!cache[id]) {\n cache[id] = new Manager(source, opts);\n }\n io = cache[id];\n }\n if (parsed.query && !opts.query) {\n opts.query = parsed.queryKey;\n }\n return io.socket(parsed.path, opts);\n}\n// so that \"lookup\" can be used both as a function (e.g. `io(...)`) and as a\n// namespace (e.g. `io.connect(...)`), for backward compatibility\nObject.assign(lookup, {\n Manager,\n Socket,\n io: lookup,\n connect: lookup,\n});\n/**\n * Protocol version.\n *\n * @public\n */\nexport { protocol } from \"socket.io-parser\";\n/**\n * Expose constructors for standalone build.\n *\n * @public\n */\nexport { Manager, Socket, lookup as io, lookup as connect, lookup as default, };\n","import { user, msgs } from './Store_chat';\n\nexport function socket_events(socket)\n{\n\tsocket.on('message', function(from, message)\n\t{\n\t\tconsole.log(\"received msg:\", message, from);\n\t\tif (from === user.username)\n\t\t\tfrom = \"me\";\n\t\tmsgs.update(msgs => [...msgs, { name: from, message: message }]);\n\t});\n}\n","import io from 'socket.io-client';\nimport { set_socket, set_user } from './Store_chat';\nimport { socket_events } from './Socket_events';\n\nconst address = `http://${process.env.WEBSITE_HOST}:${process.env.WEBSITE_PORT}`;\n\nexport async function init_socket()\n{\n\tconst response = await fetch(`${address}/api/v2/user`);\n\tconst response_data = await response.json();\n\n\tset_user(response_data);\n\n\tlet socket = await io(address,\n\t{\n\t\tpath: '/chat',\n\t\tquery:\n\t\t{\n\t\t\tusername: response_data.username,\n\t\t},\n\t});\n\tset_socket(socket);\n\n\tsocket.on('connect', function(){ console.log(\"socket.io connected\"); });\n\tsocket.on('disconnect', function(){ console.log(\"socket.io disconnected\"); });\n\tsocket.on('connect_error', function(){ console.log(\"socket.io connect_error\"); });\n\tsocket.on('connect_timeout', function(){ console.log(\"socket.io connect_timeout\"); });\n\tsocket.on('error', function(){ console.log(\"socket.io error\"); });\n\tsocket.on('reconnect', function(){ console.log(\"socket.io reconnect\"); });\n\tsocket.on('reconnect_attempt', function(){ console.log(\"socket.io reconnect_attempt\"); });\n\tsocket.on('reconnecting', function(){ console.log(\"socket.io reconnecting\"); });\n\tsocket.on('reconnect_error', function(){ console.log(\"socket.io reconnect_error\"); });\n\tsocket.on('reconnect_failed', function(){ console.log(\"socket.io reconnect_failed\"); });\n\tsocket.on('ping', function(){ console.log(\"socket.io ping\"); });\n\tsocket.on('pong', function(){ console.log(\"socket.io pong\"); });\n\n\tsocket_events(socket);\n}\n\n","\n\n\n\n\n\n","\n\n\n\n\n
    \n \n {#if user !== undefined}\n \n {:else}\n \n

    Sorry

    \n
    Failed to load current
    \n {/if}\n
    \n\n\n","
    \n \n
    \n\n","\n\n\n\n\n\n\n\n\n","\n\n\n
    \n

    Look! You can change stuff

    \n
    \n \n
    \n
    \n
    New Username
    \n \n \n \n\t\t
    {success.username}
    \n
    {errors.username}
    \n
    \n
    \n
    Set Two Factor Authentication
    \n \n
    {errors.checkbox}
    \n
    \n \n
    \n
    \n\n \n \n {#if avatar !== undefined}\n \"your\n {/if}\n
    \n \n \n
    \n
    Pick a new Avatar
    \n \n
    {errors.avatar}
    \n
    \n \n
    \n
    \n
    \n\n
    \n\n\n\n\n","\n\n\n{#if user !== undefined}\n \n \n{:else}\n

    Sorry

    \n
    Failed to load user {aUsername}
    \n{/if}\n\n\n\n","\n\n\n
    \n \n
      \n {#each items as item}\n
    • dispatch('tabChange', item)}>\n \n
      {item}
      \n
    • \n {/each}\n
    \n
    \n\n","\n\n\n\n
    \n\n \n\n \n\n
    \n \n {#if activeTabItem === 'All Users' && allUsers !== undefined}\n

    {activeTabItem}

    \n \n \n\n {#if Object.keys(allUsers).length === 0}\n
    You are alone on this platform...
    \n {/if}\n \n \n \n {#each allUsers as aUser}\n
    viewAUser(aUser.username)}>{aUser.username}
    \n \n
    {aUser.status}
    \n
    \n {/each}\n {:else if activeTabItem === 'My Friends' && myFriendships !== undefined}\n

    {activeTabItem}

    \n {#if Object.keys(myFriendships).length === 0}\n
    You don't have any Friends... Yet!
    \n {/if}\n \n {#each myFriendships as aFriendship}\n {#if aFriendship.senderUsername !== user.username}\n
    viewAUser(aFriendship.senderUsername)}>{aFriendship.senderUsername}
    \n {:else if aFriendship.receiverUsername !== user.username}\n
    viewAUser(aFriendship.receiverUsername)}>{aFriendship.receiverUsername}
    \n {/if}\n
    \n {/each}\n {:else if activeTabItem === 'Friend Requests' && requestsRecieved !== undefined}\n

    {activeTabItem}

    \n {#if Object.keys(requestsRecieved).length === 0}\n
    You don't have any Friend Requests
    \n {/if}\n \n {#each requestsRecieved as aUser}\n
    viewAUser(aUser.senderUsername)}>{aUser.senderUsername}
    \n
    {aUser.status}
    \n
    \n {/each}\n {:else if activeTabItem === 'Blocked Users' && blockedUsers !== undefined}\n

    {activeTabItem}

    \n \n {#if Object.keys(blockedUsers).length === 0}\n
    You have not Blocked any Users
    \n {/if}\n \n {#each blockedUsers as aUser}\n
    viewAUser(aUser.receiverUsername)}>{aUser.receiverUsername}
    \n
    {aUser.status}
    \n
    \n {/each}\n {/if}\n
    \n\n\n
    \n {#if usernameBeingViewed !== undefined}\n \n \n\n
    \n {#if friendshipStatusFull && friendshipStatusFull.id}\n {#if friendshipStatusFull.status === 'R'}\n {#if friendshipStatusFull.senderUsername === user.username}\n
    Friend Request Sent
    \n {:else}\n \n \n \n {/if}\n \n {:else if friendshipStatusFull.status === 'A'}\n
    You are Friends
    \n \n \n {:else if friendshipStatusFull.status === 'D'}\n {#if friendshipStatusFull.senderUsername === user.username}\n
    Your friend request was declined, hang in there bud.
    \n {:else}\n
    You declined the friend request, but you could still change your mind
    \n \n {/if}\n \n {:else if friendshipStatusFull.status === 'B'}\n {#if friendshipStatusFull.senderUsername === user.username}\n \n {/if}\n {/if}\n {:else}\n \n \n {/if}\n \n
    \n {:else}\n
    \n

    Click on a user!

    \n

    You'll see them displayed here

    \n
    \n {/if}\n\n
    \n
    \n\n\n","\nimport NotFound from \"../pages/NotFound.svelte\";\nimport ProfileDisplay from '../pages/profile/ProfileDisplay.svelte';\nimport ProfileSettings from '../pages/profile/ProfileSettings.svelte';\nimport ProfileFriends from '../pages/profile/ProfileFriends.svelte';\nimport { wrap } from 'svelte-spa-router/wrap'\n\n// establishing the prefix here very clearly so we can have a coherent repeatable structure\nexport const prefix = '/profile';\n\nexport const profileRoutes = {\n '/': ProfileDisplay,\n '/settings': ProfileSettings,\n '/friends': ProfileFriends,\n '*': NotFound\n};\n\n// I think the conditions of access like are you authenticated work best when they are on the parent routes not the nested routes cuz i don't want my header showing up\n\n// export const profileRoutes = {\n// '/': wrap({\n// component: ProfileDisplay,\n// conditions: [\n// (detail) => {\n// const { fortyTwo, tfa } = get(loginStatus);\n// console.log(fortyTwo);\n// console.log(tfa);\n// console.log('in Profile Display');\n// // return true;\n// return (fortyTwo && tfa);\n// }\n// ]\n// }),\n// '/settings': wrap({\n// component: ProfileSettings,\n// conditions: [\n// (detail) => {\n// const { fortyTwo, tfa } = get(loginStatus);\n// // console.log(fortyTwo);\n// // console.log(tfa);\n// // return true;\n// return (fortyTwo && tfa);\n// }\n// ]\n// }),\n// '*': NotFound\n// };\n\n// what if i did /#/profile/:id for like not the user? and then based on that did a fetch?","\n\n
    \n\n
    \n \n
    \n\n","\n\n\n\n\n","\n\n
    \n\n\n\n\n\n\n\n","\n\n\n
    \n

    Potato Pong

    \n \n

    \n
    Welcome to
    \n
    Potato Pong
    \n

    \n
    \n\n\n\n\n\n\n\n\n","\n\n\n
    \n

    2FA Sign In

    \n

    use google authenticator

    \n {#await fetchQrCodeImg}\n

    Please Wait...

    \n {:then data}\n \n \"A\n
    \n \n \n
    \n {#if wrongCode}\n \n
    \n {wrongCode}\n
    \n {/if}\n {:catch}\n

    Unable to get QrCodeImg

    \n {/await}\n
    \n\n\n","\n\n
    \n

    You're not supposed to be here...

    \n \n
    \n\n","export { identity as linear } from '../internal/index.mjs';\n\n/*\nAdapted from https://github.com/mattdesl\nDistributed under MIT License https://github.com/mattdesl/eases/blob/master/LICENSE.md\n*/\nfunction backInOut(t) {\n const s = 1.70158 * 1.525;\n if ((t *= 2) < 1)\n return 0.5 * (t * t * ((s + 1) * t - s));\n return 0.5 * ((t -= 2) * t * ((s + 1) * t + s) + 2);\n}\nfunction backIn(t) {\n const s = 1.70158;\n return t * t * ((s + 1) * t - s);\n}\nfunction backOut(t) {\n const s = 1.70158;\n return --t * t * ((s + 1) * t + s) + 1;\n}\nfunction bounceOut(t) {\n const a = 4.0 / 11.0;\n const b = 8.0 / 11.0;\n const c = 9.0 / 10.0;\n const ca = 4356.0 / 361.0;\n const cb = 35442.0 / 1805.0;\n const cc = 16061.0 / 1805.0;\n const t2 = t * t;\n return t < a\n ? 7.5625 * t2\n : t < b\n ? 9.075 * t2 - 9.9 * t + 3.4\n : t < c\n ? ca * t2 - cb * t + cc\n : 10.8 * t * t - 20.52 * t + 10.72;\n}\nfunction bounceInOut(t) {\n return t < 0.5\n ? 0.5 * (1.0 - bounceOut(1.0 - t * 2.0))\n : 0.5 * bounceOut(t * 2.0 - 1.0) + 0.5;\n}\nfunction bounceIn(t) {\n return 1.0 - bounceOut(1.0 - t);\n}\nfunction circInOut(t) {\n if ((t *= 2) < 1)\n return -0.5 * (Math.sqrt(1 - t * t) - 1);\n return 0.5 * (Math.sqrt(1 - (t -= 2) * t) + 1);\n}\nfunction circIn(t) {\n return 1.0 - Math.sqrt(1.0 - t * t);\n}\nfunction circOut(t) {\n return Math.sqrt(1 - --t * t);\n}\nfunction cubicInOut(t) {\n return t < 0.5 ? 4.0 * t * t * t : 0.5 * Math.pow(2.0 * t - 2.0, 3.0) + 1.0;\n}\nfunction cubicIn(t) {\n return t * t * t;\n}\nfunction cubicOut(t) {\n const f = t - 1.0;\n return f * f * f + 1.0;\n}\nfunction elasticInOut(t) {\n return t < 0.5\n ? 0.5 *\n Math.sin(((+13.0 * Math.PI) / 2) * 2.0 * t) *\n Math.pow(2.0, 10.0 * (2.0 * t - 1.0))\n : 0.5 *\n Math.sin(((-13.0 * Math.PI) / 2) * (2.0 * t - 1.0 + 1.0)) *\n Math.pow(2.0, -10.0 * (2.0 * t - 1.0)) +\n 1.0;\n}\nfunction elasticIn(t) {\n return Math.sin((13.0 * t * Math.PI) / 2) * Math.pow(2.0, 10.0 * (t - 1.0));\n}\nfunction elasticOut(t) {\n return (Math.sin((-13.0 * (t + 1.0) * Math.PI) / 2) * Math.pow(2.0, -10.0 * t) + 1.0);\n}\nfunction expoInOut(t) {\n return t === 0.0 || t === 1.0\n ? t\n : t < 0.5\n ? +0.5 * Math.pow(2.0, 20.0 * t - 10.0)\n : -0.5 * Math.pow(2.0, 10.0 - t * 20.0) + 1.0;\n}\nfunction expoIn(t) {\n return t === 0.0 ? t : Math.pow(2.0, 10.0 * (t - 1.0));\n}\nfunction expoOut(t) {\n return t === 1.0 ? t : 1.0 - Math.pow(2.0, -10.0 * t);\n}\nfunction quadInOut(t) {\n t /= 0.5;\n if (t < 1)\n return 0.5 * t * t;\n t--;\n return -0.5 * (t * (t - 2) - 1);\n}\nfunction quadIn(t) {\n return t * t;\n}\nfunction quadOut(t) {\n return -t * (t - 2.0);\n}\nfunction quartInOut(t) {\n return t < 0.5\n ? +8.0 * Math.pow(t, 4.0)\n : -8.0 * Math.pow(t - 1.0, 4.0) + 1.0;\n}\nfunction quartIn(t) {\n return Math.pow(t, 4.0);\n}\nfunction quartOut(t) {\n return Math.pow(t - 1.0, 3.0) * (1.0 - t) + 1.0;\n}\nfunction quintInOut(t) {\n if ((t *= 2) < 1)\n return 0.5 * t * t * t * t * t;\n return 0.5 * ((t -= 2) * t * t * t * t + 2);\n}\nfunction quintIn(t) {\n return t * t * t * t * t;\n}\nfunction quintOut(t) {\n return --t * t * t * t * t + 1;\n}\nfunction sineInOut(t) {\n return -0.5 * (Math.cos(Math.PI * t) - 1);\n}\nfunction sineIn(t) {\n const v = Math.cos(t * Math.PI * 0.5);\n if (Math.abs(v) < 1e-14)\n return 1;\n else\n return 1 - v;\n}\nfunction sineOut(t) {\n return Math.sin((t * Math.PI) / 2);\n}\n\nexport { backIn, backInOut, backOut, bounceIn, bounceInOut, bounceOut, circIn, circInOut, circOut, cubicIn, cubicInOut, cubicOut, elasticIn, elasticInOut, elasticOut, expoIn, expoInOut, expoOut, quadIn, quadInOut, quadOut, quartIn, quartInOut, quartOut, quintIn, quintInOut, quintOut, sineIn, sineInOut, sineOut };\n","import { cubicInOut, linear, cubicOut } from '../easing/index.mjs';\nimport { is_function, assign } from '../internal/index.mjs';\n\n/******************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n\r\nfunction __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\n\nfunction blur(node, { delay = 0, duration = 400, easing = cubicInOut, amount = 5, opacity = 0 } = {}) {\n const style = getComputedStyle(node);\n const target_opacity = +style.opacity;\n const f = style.filter === 'none' ? '' : style.filter;\n const od = target_opacity * (1 - opacity);\n return {\n delay,\n duration,\n easing,\n css: (_t, u) => `opacity: ${target_opacity - (od * u)}; filter: ${f} blur(${u * amount}px);`\n };\n}\nfunction fade(node, { delay = 0, duration = 400, easing = linear } = {}) {\n const o = +getComputedStyle(node).opacity;\n return {\n delay,\n duration,\n easing,\n css: t => `opacity: ${t * o}`\n };\n}\nfunction fly(node, { delay = 0, duration = 400, easing = cubicOut, x = 0, y = 0, opacity = 0 } = {}) {\n const style = getComputedStyle(node);\n const target_opacity = +style.opacity;\n const transform = style.transform === 'none' ? '' : style.transform;\n const od = target_opacity * (1 - opacity);\n return {\n delay,\n duration,\n easing,\n css: (t, u) => `\n\t\t\ttransform: ${transform} translate(${(1 - t) * x}px, ${(1 - t) * y}px);\n\t\t\topacity: ${target_opacity - (od * u)}`\n };\n}\nfunction slide(node, { delay = 0, duration = 400, easing = cubicOut } = {}) {\n const style = getComputedStyle(node);\n const opacity = +style.opacity;\n const height = parseFloat(style.height);\n const padding_top = parseFloat(style.paddingTop);\n const padding_bottom = parseFloat(style.paddingBottom);\n const margin_top = parseFloat(style.marginTop);\n const margin_bottom = parseFloat(style.marginBottom);\n const border_top_width = parseFloat(style.borderTopWidth);\n const border_bottom_width = parseFloat(style.borderBottomWidth);\n return {\n delay,\n duration,\n easing,\n css: t => 'overflow: hidden;' +\n `opacity: ${Math.min(t * 20, 1) * opacity};` +\n `height: ${t * height}px;` +\n `padding-top: ${t * padding_top}px;` +\n `padding-bottom: ${t * padding_bottom}px;` +\n `margin-top: ${t * margin_top}px;` +\n `margin-bottom: ${t * margin_bottom}px;` +\n `border-top-width: ${t * border_top_width}px;` +\n `border-bottom-width: ${t * border_bottom_width}px;`\n };\n}\nfunction scale(node, { delay = 0, duration = 400, easing = cubicOut, start = 0, opacity = 0 } = {}) {\n const style = getComputedStyle(node);\n const target_opacity = +style.opacity;\n const transform = style.transform === 'none' ? '' : style.transform;\n const sd = 1 - start;\n const od = target_opacity * (1 - opacity);\n return {\n delay,\n duration,\n easing,\n css: (_t, u) => `\n\t\t\ttransform: ${transform} scale(${1 - (sd * u)});\n\t\t\topacity: ${target_opacity - (od * u)}\n\t\t`\n };\n}\nfunction draw(node, { delay = 0, speed, duration, easing = cubicInOut } = {}) {\n let len = node.getTotalLength();\n const style = getComputedStyle(node);\n if (style.strokeLinecap !== 'butt') {\n len += parseInt(style.strokeWidth);\n }\n if (duration === undefined) {\n if (speed === undefined) {\n duration = 800;\n }\n else {\n duration = len / speed;\n }\n }\n else if (typeof duration === 'function') {\n duration = duration(len);\n }\n return {\n delay,\n duration,\n easing,\n css: (t, u) => `stroke-dasharray: ${t * len} ${u * len}`\n };\n}\nfunction crossfade(_a) {\n var { fallback } = _a, defaults = __rest(_a, [\"fallback\"]);\n const to_receive = new Map();\n const to_send = new Map();\n function crossfade(from, node, params) {\n const { delay = 0, duration = d => Math.sqrt(d) * 30, easing = cubicOut } = assign(assign({}, defaults), params);\n const to = node.getBoundingClientRect();\n const dx = from.left - to.left;\n const dy = from.top - to.top;\n const dw = from.width / to.width;\n const dh = from.height / to.height;\n const d = Math.sqrt(dx * dx + dy * dy);\n const style = getComputedStyle(node);\n const transform = style.transform === 'none' ? '' : style.transform;\n const opacity = +style.opacity;\n return {\n delay,\n duration: is_function(duration) ? duration(d) : duration,\n easing,\n css: (t, u) => `\n\t\t\t\topacity: ${t * opacity};\n\t\t\t\ttransform-origin: top left;\n\t\t\t\ttransform: ${transform} translate(${u * dx}px,${u * dy}px) scale(${t + (1 - t) * dw}, ${t + (1 - t) * dh});\n\t\t\t`\n };\n }\n function transition(items, counterparts, intro) {\n return (node, params) => {\n items.set(params.key, {\n rect: node.getBoundingClientRect()\n });\n return () => {\n if (counterparts.has(params.key)) {\n const { rect } = counterparts.get(params.key);\n counterparts.delete(params.key);\n return crossfade(rect, node, params);\n }\n // if the node is disappearing altogether\n // (i.e. wasn't claimed by the other list)\n // then we need to supply an outro\n items.delete(params.key);\n return fallback && fallback(node, params, intro);\n };\n };\n }\n return [\n transition(to_send, to_receive, false),\n transition(to_receive, to_send, true)\n ];\n}\n\nexport { blur, crossfade, draw, fade, fly, scale, slide };\n","\nexport\tconst CanvasWidth = 1500;\nexport\tconst CanvasRatio = 1.66666;\n/* ratio 5/3 (1.66) */\n\nexport\tconst w = CanvasWidth;\nexport\tconst h = CanvasWidth / CanvasRatio;\nexport\tconst w_mid = Math.floor(w/2);\nexport\tconst h_mid = Math.floor(h/2);\nexport\tconst pw = Math.floor(w*0.017);\nexport\tconst ph = pw*6;\nexport\tconst ballSize = pw;\nexport\tconst wallSize = Math.floor(w*0.01);\nexport\tconst racketSpeed = Math.floor(w*0.60); // pixel per second\nexport\tconst ballSpeed = Math.floor(w*0.55); // pixel per second\nexport\tconst ballSpeedIncrease = Math.floor(ballSpeed*0.05); // pixel per second\n\nexport\tconst normalizedSpeed = false; // for consistency in speed independent of direction\n\nexport\tconst matchStartDelay = 3000; // millisecond\nexport\tconst newRoundDelay = 1500; // millisecond\n\n// Game Variantes\nexport\tconst multiBallsCount = 3;\nexport\tconst movingWallPosMax = Math.floor(w*0.12);\nexport\tconst movingWallSpeed = Math.floor(w*0.08);\n\n\nexport\tconst gameSessionIdPLACEHOLDER = \"match-id-test-42\"; // TESTING SPECTATOR PLACEHOLDER\n// for testing, force gameSession.id in wsServer.ts->createGameSession()\n","\nimport { w } from \"../shared_js/constants.js\"\nexport * from \"../shared_js/constants.js\"\n\nexport\tconst midLineSize = Math.floor(w/150);\nexport\tconst scoreSize = Math.floor(w/16); \nexport\tconst gridSize = Math.floor(w/500);\n\n// min interval on Firefox seems to be 15. Chrome can go lower.\nexport\tconst handleInputIntervalMS = 15; // millisecond\nexport\tconst sendLoopIntervalMS = 15; // millisecond // unused\nexport\tconst gameLoopIntervalMS = 15; // millisecond\nexport\tconst drawLoopIntervalMS = 15; // millisecond\n\nexport\tconst fixedDeltaTime = gameLoopIntervalMS/1000; // second\n\nexport\tconst soundRobloxVolume = 0.3; // between 0 and 1\nexport\tconst soundPongVolume = 0.3; // between 0 and 1\n","\nexport enum EventTypes {\n\t// Class Implemented\n\tgameUpdate = 1,\n\tscoreUpdate,\n\tmatchEnd,\n\tassignId,\n\tmatchmakingComplete,\n\terror,\n\n\t// Generic\n\tmatchmakingInProgress,\n\tmatchStart,\n\tmatchAbort,\n\tmatchNewRound, // unused\n\tmatchPause, // unused\n\tmatchResume, // unused\n\n\t// Client\n\tclientAnnounce,\n\tclientPlayerReady,\n\tclientSpectatorReady,\n\tclientInput,\n\n}\n\nexport enum InputEnum {\n\tnoInput = 0,\n\tup = 1,\n\tdown,\n}\n\nexport enum PlayerSide {\n\tnoSide = 0,\n\tleft = 1,\n\tright\n}\n\nexport enum ClientRole {\n\tplayer = 1,\n\tspectator\n}\n\nexport enum MatchOptions {\n\t// binary flags, can be mixed\n\tnoOption = 0b0,\n\tmultiBalls = 1 << 0,\n\tmovingWalls = 1 << 1\n}\n","\nimport * as en from \"../shared_js/enums.js\";\nimport type { GameArea } from \"./class/GameArea.js\";\nimport type { GameComponentsClient } from \"./class/GameComponentsClient.js\";\n\nexport let pong: GameArea;\nexport let gc: GameComponentsClient;\nexport let matchOptions: en.MatchOptions = en.MatchOptions.noOption;\n\nexport function setPong(value: GameArea) {\n\tpong = value;\n}\n\nexport function setGc(value: GameComponentsClient) {\n\tgc = value;\n}\n\nexport function setMatchOptions(value: en.MatchOptions) {\n\tmatchOptions = value;\n}\n\nexport let startFunction: () => void;\n\nexport function setStartFunction(value: () => void) {\n\tstartFunction = value;\n}\n","\nimport * as en from \"../enums.js\"\n\n/* From Server */\nexport class ServerEvent {\n\ttype: en.EventTypes;\n\tconstructor(type: en.EventTypes = 0) {\n\t\tthis.type = type;\n\t}\n}\n\nexport class EventAssignId extends ServerEvent {\n\tid: string;\n\tconstructor(id: string) {\n\t\tsuper(en.EventTypes.assignId);\n\t\tthis.id = id;\n\t}\n}\n\nexport class EventMatchmakingComplete extends ServerEvent {\n\tside: en.PlayerSide;\n\tconstructor(side: en.PlayerSide) {\n\t\tsuper(en.EventTypes.matchmakingComplete);\n\t\tthis.side = side;\n\t}\n}\n\nexport class EventGameUpdate extends ServerEvent {\n\tplayerLeft = {\n\t\ty: 0\n\t};\n\tplayerRight = {\n\t\ty: 0\n\t};\n\tballsArr: {\n\t\tx: number,\n\t\ty: number,\n\t\tdirX: number,\n\t\tdirY: number,\n\t\tspeed: number\n\t}[] = [];\n\twallTop? = {\n\t\ty: 0\n\t};\n\twallBottom? = {\n\t\ty: 0\n\t};\n\tlastInputId = 0;\n\tconstructor() { // TODO: constructor that take GameComponentsServer maybe ?\n\t\tsuper(en.EventTypes.gameUpdate);\n\t}\n}\n\nexport class EventScoreUpdate extends ServerEvent {\n\tscoreLeft: number;\n\tscoreRight: number;\n\tconstructor(scoreLeft: number, scoreRight: number) {\n\t\tsuper(en.EventTypes.scoreUpdate);\n\t\tthis.scoreLeft = scoreLeft;\n\t\tthis.scoreRight = scoreRight;\n\t}\n}\n\nexport class EventMatchEnd extends ServerEvent {\n\twinner: en.PlayerSide;\n\tforfeit: boolean;\n\tconstructor(winner: en.PlayerSide, forfeit = false) {\n\t\tsuper(en.EventTypes.matchEnd);\n\t\tthis.winner = winner;\n\t\tthis.forfeit = forfeit;\n\t}\n}\n\nexport class EventMatchAbort extends ServerEvent {\n\tconstructor() {\n\t\tsuper(en.EventTypes.matchAbort);\n\t}\n}\n\nexport class EventError extends ServerEvent {\n\tmessage: string;\n\tconstructor(message: string) {\n\t\tsuper(en.EventTypes.error);\n\t\tthis.message = message;\n\t}\n}\n\n\n/* From Client */\nexport class ClientEvent {\n\ttype: en.EventTypes; // readonly ?\n\tconstructor(type: en.EventTypes = 0) {\n\t\tthis.type = type;\n\t}\n}\n\nexport class ClientAnnounce extends ClientEvent {\n\trole: en.ClientRole;\n\tconstructor(role: en.ClientRole) {\n\t\tsuper(en.EventTypes.clientAnnounce);\n\t\tthis.role = role;\n\t}\n}\n\nexport class ClientAnnouncePlayer extends ClientAnnounce {\n\tclientId: string; // unused\n\tmatchOptions: en.MatchOptions;\n\ttoken: string;\n\tusername: string;\n\tprivateMatch: boolean;\n\tplayerTwoUsername?: string;\n\tisInvitedPerson? : boolean;\n\tconstructor(matchOptions: en.MatchOptions, token: string, username: string, privateMatch: boolean = false, playerTwoUsername?: string, isInvitedPerson? : boolean) {\n\t\tsuper(en.ClientRole.player);\n\t\tthis.matchOptions = matchOptions;\n\t\tthis.token = token;\n\t\tthis.username = username;\n\t\tthis.privateMatch = privateMatch;\n\t\tif (isInvitedPerson) {\n\t\t\tthis.isInvitedPerson = isInvitedPerson;\n\t\t}\n\t\tif (playerTwoUsername) {\n\t\t\tthis.playerTwoUsername = playerTwoUsername;\n\t\t}\n\t}\n}\n\nexport class ClientAnnounceSpectator extends ClientAnnounce {\n\tgameSessionId: string;\n\tconstructor(gameSessionId: string) {\n\t\tsuper(en.ClientRole.spectator);\n\t\tthis.gameSessionId = gameSessionId;\n\t}\n}\n\nexport class EventInput extends ClientEvent {\n\tinput: en.InputEnum;\n\tid: number;\n\tconstructor(input: en.InputEnum = en.InputEnum.noInput, id: number = 0) {\n\t\tsuper(en.EventTypes.clientInput);\n\t\tthis.input = input;\n\t\tthis.id = id;\n\t}\n}\n","\nimport * as c from \"./constants.js\"\nimport { gc, pong } from \"./global.js\"\nimport * as en from \"../shared_js/enums.js\"\n\n/*\n\tbefore game\n*/\nexport function error(message: string)\n{\n\tconsole.log(\"msg.error()\");\n\tpong.clear();\n\tconst text = \"error: \" + message;\n\tconsole.log(text);\n\tgc.text2.clear();\n\tgc.text2.pos.assign(c.w*0.2, c.h*0.5);\n\tgc.text2.text = text;\n\tgc.text2.update();\n}\n\nexport function matchmaking()\n{\n\tconst text = \"searching...\";\n\tconsole.log(text);\n\tgc.text1.clear();\n\tgc.text1.pos.assign(c.w*0.2, c.h*0.5);\n\tgc.text1.text = text;\n\tgc.text1.update();\n}\n\nexport function matchmakingComplete()\n{\n\tconst text = \"match found !\";\n\tconsole.log(text);\n\tgc.text1.clear();\n\tgc.text1.pos.assign(c.w*0.15, c.h*0.5);\n\tgc.text1.text = text;\n\tgc.text1.update();\n}\n\nexport function matchAbort()\n{\n\tconst text = \"match abort\";\n\tconsole.log(text);\n\tgc.text1.clear();\n\tgc.text1.pos.assign(c.w*0.15, c.h*0.5);\n\tgc.text1.text = text;\n\tgc.text1.update();\n\n\tsetTimeout(() => {\n\t\tgc.text2.pos.assign(c.w*0.44, c.h*0.6);\n\t\tgc.text2.text = \"pardon =(\";\n\t\tconst oriSize = gc.text2.size;\n\t\tgc.text2.size = c.w*0.025;\n\t\tgc.text2.update();\n\t\tgc.text2.size = oriSize;\n\t}, 2500);\n}\n\n\n/*\n\tin game\n*/\nexport function win()\n{\n\tgc.text1.pos.assign(c.w*0.415, c.h*0.5);\n\tgc.text1.text = \"WIN\";\n}\n\nexport function lose()\n{\n\tgc.text1.pos.assign(c.w*0.383, c.h*0.5);\n\tgc.text1.text = \"LOSE\";\n}\n\nexport function forfeit(playerSide: en.PlayerSide)\n{\n\tif (playerSide === en.PlayerSide.left) {\n\t\tgc.text2.pos.assign(c.w*0.65, c.h*0.42);\n\t\tgc.text3.pos.assign(c.w*0.65, c.h*0.52);\n\t}\n\telse {\n\t\tgc.text2.pos.assign(c.w*0.09, c.h*0.42);\n\t\tgc.text3.pos.assign(c.w*0.09, c.h*0.52);\n\t}\n\tsetTimeout(() => {\n\t\tgc.text2.text = \"par forfait\";\n\t}, 1500);\n\tsetTimeout(() => {\n\t\tgc.text3.text = \"calme ta joie\";\n\t}, 3500);\t\n}\n","\nimport * as c from \"./constants.js\"\n\n// export const soundPongArr: HTMLAudioElement[] = [];\nexport let muteFlag: boolean;\nexport const soundPongArr: HTMLAudioElement[] = [];\nexport let soundRoblox: HTMLAudioElement;\n\nexport function initAudio(sound: string)\n{\n\tsoundPongArr.length = 0;\n\tsoundRoblox = null;\n\n\tif (sound === \"on\") {\n\t\tmuteFlag = false;\n\t}\n\telse {\n\t\tmuteFlag = true;\n\t\treturn; // Could be changed\n\t\t/*\n\t\t\tStop initAudio() here because in the current state of the game\n\t\t\tthere no way to change muteFlag after game start.\n\t\t\tIf it becomes an option,\n\t\t\twe should continue initAudio() regardless of the muteFlag.\n\t\t*/\n\t}\n\n\tsoundPongArr.push(new Audio(\"http://\" + process.env.WEBSITE_HOST + \":\" + process.env.WEBSITE_PORT + \"/sound/pong/\"+1+\".ogg\"));\n\tsoundPongArr.push(new Audio(\"http://\" + process.env.WEBSITE_HOST + \":\" + process.env.WEBSITE_PORT + \"/sound/pong/\"+2+\".ogg\"));\n\tsoundPongArr.forEach((value) => {\n\t\tvalue.volume = c.soundRobloxVolume;\n\t\tvalue.muted = muteFlag;\n\t});\n\n\tsoundRoblox = new Audio(\"http://\" + process.env.WEBSITE_HOST + \":\" + process.env.WEBSITE_PORT + \"/sound/roblox-oof.ogg\");\n\tsoundRoblox.volume = c.soundRobloxVolume;\n\tsoundRoblox.muted = muteFlag;\n}\n","\nimport type { MovingRectangle } from \"./class/Rectangle.js\";\n\nexport function random(min: number = 0, max: number = 1) {\n\treturn Math.random() * (max - min) + min;\n}\n\nexport function sleep (ms: number) {\n\treturn new Promise((resolve) => setTimeout(resolve, ms));\n}\n\nexport function clamp(n: number, min: number, max: number) : number\n{\n\tif (n < min)\n\t\tn = min;\n\telse if (n > max)\n\t\tn = max;\n\treturn (n);\n}\n\n// Typescript hack, unused\nexport function assertMovingRectangle(value: unknown): asserts value is MovingRectangle {\n\t// if (value !== MovingRectangle) throw new Error(\"Not a MovingRectangle\");\n\treturn;\n}\n","\nexport * from \"../shared_js/utils.js\"\n\nexport function countdown(count: number, step: number, callback: (count: number) => void, endCallback?: () => void) : number[]\n{\n\tconst timeoutArr: number[] = [];\n\t\n\tif (endCallback) {\n\t\ttimeoutArr.push( window.setTimeout(endCallback, count) );\n\t}\n\n\tlet reverseCount = 0;\n\twhile (count > 0)\n\t{\n\t\ttimeoutArr.push( window.setTimeout((count: number) => {\n\t\t\tconsole.log(\"countdown \", count);\n\t\t\tcallback(count);\n\t\t}, reverseCount, count)\n\t\t);\n\t\tcount -= step;\n\t\treverseCount += step;\n\t}\n\n\treturn timeoutArr;\n}\n","\nexport class Vector {\n\tx: number;\n\ty: number;\n\tconstructor(x: number = 0, y: number = 0) {\n\t\tthis.x = x;\n\t\tthis.y = y;\n\t}\n\tassign(x: number, y: number) {\n\t\tthis.x = x;\n\t\tthis.y = y;\n\t}\n\tnormalized() : Vector {\n\t\tconst normalizationFactor = Math.abs(this.x) + Math.abs(this.y);\n\t\treturn new Vector(this.x/normalizationFactor, this.y/normalizationFactor);\n\t}\n}\n\nexport class VectorInteger extends Vector {\n\t// PLACEHOLDER\n\t// VectorInteger with set/get dont work (No draw on the screen). Why ?\n}\n\n/* \nexport class VectorInteger {\n\t// private _x: number = 0;\n\t// private _y: number = 0;\n\t// constructor(x: number = 0, y: number = 0) {\n\t// \tthis._x = x;\n\t// \tthis._y = y;\n\t// }\n\t// get x(): number {\n\t// \treturn this._x;\n\t// }\n\t// set x(v: number) {\n\t// \t// this._x = Math.floor(v);\n\t// \tthis._x = v;\n\t// }\n\t// get y(): number {\n\t// \treturn this._y;\n\t// }\n\t// set y(v: number) {\n\t// \t// this._y = Math.floor(v);\n\t// \tthis._y = v;\n\t// }\n}\n*/\n","\nimport * as c from \"./constants.js\"\nimport { gc, matchOptions, startFunction } from \"./global.js\"\nimport * as ev from \"../shared_js/class/Event.js\"\nimport * as en from \"../shared_js/enums.js\"\nimport * as msg from \"./message.js\";\nimport type { RacketClient } from \"./class/RectangleClient.js\";\nimport { repeatInput } from \"./handleInput.js\";\nimport { muteFlag, soundRoblox } from \"./audio.js\"\nimport { sleep } from \"./utils.js\";\nimport { Vector, VectorInteger } from \"../shared_js/class/Vector.js\";\n\nexport const gameState = {\n\tmatchStarted: false,\n\tmatchEnded: false,\n\tmatchAborted: false\n}\n\nexport function resetGameState() {\n\tgameState.matchStarted = false;\n\tgameState.matchEnded = false;\n\tgameState.matchAborted = false;\n}\n\nclass ClientInfo {\n\tid = \"\";\n\tside: en.PlayerSide;\n\tracket: RacketClient;\n\topponent: RacketClient;\n\topponentNextPos: VectorInteger;\n}\n\nclass ClientInfoSpectator {\n\t// side: en.PlayerSide;\n\t/* WIP: playerLeftNextPos and playerRightNextPos could be in clientInfo for simplicity */\n\tplayerLeftNextPos: VectorInteger;\n\tplayerRightNextPos: VectorInteger;\n}\n\nconst wsUrl = \"ws://\" + process.env.WEBSITE_HOST + \":\" + process.env.WEBSITE_PORT + \"/pong\";\nexport let socket: WebSocket;\nexport const clientInfo = new ClientInfo();\nexport const clientInfoSpectator = new ClientInfoSpectator(); // WIP, could refactor this\n\n\nexport function initWebSocket(options: en.MatchOptions, token: string, username: string, privateMatch = false, playerTwoUsername?: string, isInvitedPerson? : boolean)\n{\n\tsocket = new WebSocket(wsUrl, \"json\");\n\tconsole.log(\"Infos from ws.ts : options => \" + options + \" token => \" + token + \" username => \" + username + \" priavte match => \" + privateMatch\n\t + \" player two => \" + playerTwoUsername)\n\tsocket.addEventListener(\"open\", (event) => {\n\t\tif (privateMatch) {\n\t\t\tsocket.send(JSON.stringify( new ev.ClientAnnouncePlayer(options, token, username, privateMatch, playerTwoUsername, isInvitedPerson) ));\n\t\t}\n\t\telse {\n\t\t\tsocket.send(JSON.stringify( new ev.ClientAnnouncePlayer(options, token, username) ));\n\t\t}\n\t});\n\t// socket.addEventListener(\"message\", logListener); // for testing purpose\n\tsocket.addEventListener(\"message\", errorListener);\n\tsocket.addEventListener(\"message\", preMatchListener);\n}\n\nfunction logListener(this: WebSocket, event: MessageEvent) {\n\tconsole.log(\"%i: \" + event.data, Date.now());\n}\n\nfunction errorListener(this: WebSocket, event: MessageEvent) {\n\tconst data: ev.ServerEvent = JSON.parse(event.data);\n\tif (data.type === en.EventTypes.error) {\n\t\tconsole.log(\"actual Error\");\n\t\tmsg.error((data as ev.EventError).message);\n\t}\n}\n\nfunction preMatchListener(this: WebSocket, event: MessageEvent)\n{\n\tconst data: ev.ServerEvent = JSON.parse(event.data);\n\tswitch (data.type) {\n\t\tcase en.EventTypes.assignId:\n\t\t\tclientInfo.id = (data).id;\n\t\t\tbreak;\n\t\tcase en.EventTypes.matchmakingInProgress:\n\t\t\tmsg.matchmaking();\n\t\t\tbreak;\n\t\tcase en.EventTypes.matchmakingComplete:\n\t\t\tclientInfo.side = (data).side;\n\t\t\tif (clientInfo.side === en.PlayerSide.left)\n\t\t\t{\n\t\t\t\tclientInfo.racket = gc.playerLeft;\n\t\t\t\tclientInfo.opponent = gc.playerRight;\n\t\t\t}\n\t\t\telse if (clientInfo.side === en.PlayerSide.right)\n\t\t\t{\n\t\t\t\tclientInfo.racket = gc.playerRight;\n\t\t\t\tclientInfo.opponent = gc.playerLeft;\n\t\t\t}\n\t\t\tclientInfo.opponentNextPos = new VectorInteger(clientInfo.opponent.pos.x, clientInfo.opponent.pos.y);\n\t\t\tclientInfo.racket.color = \"darkgreen\"; // for testing purpose\n\t\t\tsocket.send(JSON.stringify( new ev.ClientEvent(en.EventTypes.clientPlayerReady) )); // TODO: set an interval/timeout to resend until matchStart response (in case of network problem)\n\t\t\tmsg.matchmakingComplete();\n\t\t\tbreak;\n\t\tcase en.EventTypes.matchStart:\n\t\t\tgameState.matchStarted = true;\n\t\t\tsocket.removeEventListener(\"message\", preMatchListener);\n\t\t\tsocket.addEventListener(\"message\", inGameListener);\n\t\t\tstartFunction();\n\t\t\tbreak;\n\t\tcase en.EventTypes.matchAbort:\n\t\t\tgameState.matchAborted = true;\n\t\t\tsocket.removeEventListener(\"message\", preMatchListener);\n\t\t\tmsg.matchAbort();\n\t\t\tbreak;\n\t}\n}\n\nfunction inGameListener(this: WebSocket, event: MessageEvent)\n{\n\tconst data: ev.ServerEvent = JSON.parse(event.data);\n\tswitch (data.type) {\n\t\tcase en.EventTypes.gameUpdate:\n\t\t\t// setTimeout(gameUpdate, 500, data as ev.EventGameUpdate); // artificial latency for testing purpose\n\t\t\tgameUpdate(data as ev.EventGameUpdate);\n\t\t\tbreak;\n\t\tcase en.EventTypes.scoreUpdate:\n\t\t\tscoreUpdate(data as ev.EventScoreUpdate);\n\t\t\tbreak;\n\t\tcase en.EventTypes.matchEnd:\n\t\t\tmatchEnd(data as ev.EventMatchEnd);\n\t\t\tbreak;\n\t}\n}\n\nfunction gameUpdate(data: ev.EventGameUpdate)\n{\n\tconsole.log(\"gameUpdate\");\n\n\tif (matchOptions & en.MatchOptions.movingWalls) {\n\t\tgc.wallTop.pos.y = data.wallTop.y;\n\t\tgc.wallBottom.pos.y = data.wallBottom.y;\n\t}\n\n\tdata.ballsArr.forEach((ball, i) => {\n\t\tgc.ballsArr[i].pos.assign(ball.x, ball.y);\n\t\tgc.ballsArr[i].dir.assign(ball.dirX, ball.dirY);\n\t\tgc.ballsArr[i].speed = ball.speed;\n\t});\n\t/* // Equivalent to\n\tgc.ballsArr.forEach((ball, i) => {\n\t\tball.pos.assign(data.ballsArr[i].x, data.ballsArr[i].y);\n\t\tball.dir.assign(data.ballsArr[i].dirX, data.ballsArr[i].dirY);\n\t\tball.speed = data.ballsArr[i].speed;\n\t}); */\n\n\tconst predictionPos = new VectorInteger(clientInfo.racket.pos.x, clientInfo.racket.pos.y); // debug\n\n\tif (clientInfo.side === en.PlayerSide.left) {\n\t\tclientInfo.racket.pos.assign(clientInfo.racket.pos.x, data.playerLeft.y);\n\t}\n\telse if (clientInfo.side === en.PlayerSide.right) {\n\t\tclientInfo.racket.pos.assign(clientInfo.racket.pos.x, data.playerRight.y);\n\t}\n\n\t// interpolation\n\tclientInfo.opponent.pos.assign(clientInfo.opponentNextPos.x, clientInfo.opponentNextPos.y);\n\tif (clientInfo.side === en.PlayerSide.left) {\n\t\tclientInfo.opponentNextPos.assign(clientInfo.opponent.pos.x, data.playerRight.y);\n\t}\n\telse if (clientInfo.side === en.PlayerSide.right) {\n\t\tclientInfo.opponentNextPos.assign(clientInfo.opponent.pos.x, data.playerLeft.y);\n\t}\n\n\tclientInfo.opponent.dir = new Vector(\n\t\tclientInfo.opponentNextPos.x - clientInfo.opponent.pos.x,\n\t\tclientInfo.opponentNextPos.y - clientInfo.opponent.pos.y\n\t);\n\n\tif (Math.abs(clientInfo.opponent.dir.x) + Math.abs(clientInfo.opponent.dir.y) !== 0) {\n\t\tclientInfo.opponent.dir = clientInfo.opponent.dir.normalized();\n\t}\n\n\t// server reconciliation\n\trepeatInput(data.lastInputId);\n\n\t// debug\n\tif (clientInfo.racket.pos.y > predictionPos.y + 1\n\t|| clientInfo.racket.pos.y < predictionPos.y - 1)\n\t{\n\t\tconsole.log(\n\t\t\t`Reconciliation error:\n\t\t\tserver y: ${data.playerLeft.y}\n\t\t\treconciliation y: ${clientInfo.racket.pos.y}\n\t\t\tprediction y: ${predictionPos.y}`\n\t\t\t);\n\t}\n}\n\nfunction scoreUpdate(data: ev.EventScoreUpdate)\n{\n\t// console.log(\"scoreUpdate\");\n\tif (!muteFlag)\n\t{\n\t\tif (clientInfo.side === en.PlayerSide.left && data.scoreRight > gc.scoreRight.value) {\n\t\t\tsoundRoblox.play();\n\t\t}\n\t\telse if (clientInfo.side === en.PlayerSide.right && data.scoreLeft > gc.scoreLeft.value) {\n\t\t\tsoundRoblox.play();\n\t\t}\n\t}\n\tgc.scoreLeft.value = data.scoreLeft;\n\tgc.scoreRight.value = data.scoreRight;\n}\n\nfunction matchEnd(data: ev.EventMatchEnd)\n{\n\tgameState.matchEnded = true;\n\tsocket.close();\n\tif (data.winner === clientInfo.side) {\n\t\tmsg.win();\n\t\tif (data.forfeit) {\n\t\t\tmsg.forfeit(clientInfo.side);\n\t\t}\n\t}\n\telse {\n\t\tmsg.lose();\n\t}\n}\n\n/* Spectator */\n\nexport function initWebSocketSpectator(gameSessionId: string)\n{\n\tsocket = new WebSocket(wsUrl, \"json\");\n\tsocket.addEventListener(\"open\", (event) => {\n\t\tsocket.send(JSON.stringify( new ev.ClientAnnounceSpectator(gameSessionId) ));\n\t});\n\t// socket.addEventListener(\"message\", logListener); // for testing purpose\n\tsocket.addEventListener(\"message\", errorListener);\n\tsocket.addEventListener(\"message\", preMatchListenerSpectator);\n\n\tclientInfoSpectator.playerLeftNextPos = new VectorInteger(gc.playerLeft.pos.x, gc.playerLeft.pos.y);\n\tclientInfoSpectator.playerRightNextPos = new VectorInteger(gc.playerRight.pos.x, gc.playerRight.pos.y);\n\n}\n\nexport function preMatchListenerSpectator(this: WebSocket, event: MessageEvent)\n{\n\tconst data: ev.ServerEvent = JSON.parse(event.data);\n\tif (data.type === en.EventTypes.matchStart)\n\t{\n\t\tgameState.matchStarted = true;\n\t\tsocket.removeEventListener(\"message\", preMatchListenerSpectator);\n\t\tsocket.addEventListener(\"message\", inGameListenerSpectator);\n\t\tsocket.send(JSON.stringify( new ev.ClientEvent(en.EventTypes.clientSpectatorReady) ));\n\t\tstartFunction();\n\t}\n}\n\nfunction inGameListenerSpectator(this: WebSocket, event: MessageEvent)\n{\n\tconst data: ev.ServerEvent = JSON.parse(event.data);\n\tswitch (data.type) {\n\t\tcase en.EventTypes.gameUpdate:\n\t\t\tgameUpdateSpectator(data as ev.EventGameUpdate);\n\t\t\tbreak;\n\t\tcase en.EventTypes.scoreUpdate:\n\t\t\tscoreUpdateSpectator(data as ev.EventScoreUpdate);\n\t\t\tbreak;\n\t\tcase en.EventTypes.matchEnd:\n\t\t\tmatchEndSpectator(data as ev.EventMatchEnd);\n\t\t\tbreak;\n\t}\n}\n\nfunction gameUpdateSpectator(data: ev.EventGameUpdate)\n{\n\tconsole.log(\"gameUpdateSpectator\");\n\n\tif (matchOptions & en.MatchOptions.movingWalls) {\n\t\tgc.wallTop.pos.y = data.wallTop.y;\n\t\tgc.wallBottom.pos.y = data.wallBottom.y;\n\t}\n\n\tdata.ballsArr.forEach((ball, i) => {\n\t\tgc.ballsArr[i].pos.assign(ball.x, ball.y);\n\t\tgc.ballsArr[i].dir.assign(ball.dirX, ball.dirY);\n\t\tgc.ballsArr[i].speed = ball.speed;\n\t});\n\n\t// interpolation\n\tfor (const racket of [gc.playerLeft, gc.playerRight])\n\t{\n\t\tlet nextPos: VectorInteger;\n\t\tif (racket === gc.playerLeft) {\n\t\t\tnextPos = clientInfoSpectator.playerLeftNextPos;\n\t\t}\n\t\telse {\n\t\t\tnextPos = clientInfoSpectator.playerRightNextPos;\n\t\t}\n\n\t\tracket.pos.assign(nextPos.x, nextPos.y);\n\t\tif (racket === gc.playerLeft) {\n\t\t\tnextPos.assign(racket.pos.x, data.playerLeft.y);\n\t\t}\n\t\telse {\n\t\t\tnextPos.assign(racket.pos.x, data.playerRight.y);\n\t\t}\n\n\t\tracket.dir = new Vector(\n\t\t\tnextPos.x - racket.pos.x,\n\t\t\tnextPos.y - racket.pos.y\n\t\t);\n\n\t\tif (Math.abs(racket.dir.x) + Math.abs(racket.dir.y) !== 0) {\n\t\t\tracket.dir = racket.dir.normalized();\n\t\t}\n\t}\n}\n\nfunction scoreUpdateSpectator(data: ev.EventScoreUpdate)\n{\n\tconsole.log(\"scoreUpdateSpectator\");\n\tgc.scoreLeft.value = data.scoreLeft;\n\tgc.scoreRight.value = data.scoreRight;\n}\n\nfunction matchEndSpectator(data: ev.EventMatchEnd)\n{\n\tconsole.log(\"matchEndSpectator\");\n\tgameState.matchEnded = true;\n\tsocket.close();\n}\n\n","\nimport type * as en from \"../../shared_js/enums.js\"\nimport type * as ev from \"../../shared_js/class/Event.js\"\n\nexport class InputHistory {\n\tinput: en.InputEnum;\n\tid: number;\n\tdeltaTime: number;\n\tconstructor(inputState: ev.EventInput, deltaTime: number) {\n\t\tthis.input = inputState.input;\n\t\tthis.id = inputState.id;\n\t\tthis.deltaTime = deltaTime;\n\t}\n}\n","\nimport { pong, gc } from \"./global.js\"\nimport { socket, clientInfo, gameState } from \"./ws.js\"\nimport * as ev from \"../shared_js/class/Event.js\"\nimport * as en from \"../shared_js/enums.js\"\nimport { InputHistory } from \"./class/InputHistory.js\"\nimport * as c from \"./constants.js\";\n\nexport let gridDisplay = false;\n\nlet actual_time: number = Date.now();\nlet last_time: number;\nlet delta_time: number;\n\nconst inputState: ev.EventInput = new ev.EventInput();\nconst inputHistoryArr: InputHistory[] = [];\n\n// test\n/* export function sendLoop()\n{\n\tsocket.send(JSON.stringify(inputState));\n} */\n\nexport function handleInput()\n{\n\t/* last_time = actual_time;\n\tactual_time = Date.now();\n\tdelta_time = (actual_time - last_time) / 1000; */\n\n\tdelta_time = c.fixedDeltaTime;\n\t// console.log(`delta_time: ${delta_time}`);\n\n\tinputState.id = Date.now();\n\tinputState.input = en.InputEnum.noInput;\n\n\tconst keys = pong.keys;\n\tif (keys.length !== 0)\n\t{\n\t\tif (keys.indexOf(\"g\") != -1)\n\t\t{\n\t\t\tgridDisplay = !gridDisplay;\n\t\t\tpong.deleteKey(\"g\");\n\t\t}\n\t\tplayerMovements(delta_time, keys);\n\t}\n\n\tif (!gameState.matchEnded) {\n\t\tsocket.send(JSON.stringify(inputState));\n\t}\n\t// setTimeout(testInputDelay, 100);\n\tinputHistoryArr.push(new InputHistory(inputState, delta_time));\n\n\t// client prediction\n\tif (inputState.input !== en.InputEnum.noInput) {\n\t\t// TODO: peut-etre le mettre dans game loop ?\n\t\t// Attention au delta time dans ce cas !\n\t\tplayerMovePrediction(delta_time, inputState.input);\n\t}\n}\n\nfunction playerMovements(delta: number, keys: string[])\n{\n\tif (keys.indexOf(\"w\") !== -1 || keys.indexOf(\"ArrowUp\".toLowerCase()) !== -1)\n\t{\n\t\tif (keys.indexOf(\"s\") === -1 && keys.indexOf(\"ArrowDown\".toLowerCase()) === -1) {\n\t\t\tinputState.input = en.InputEnum.up;\n\t\t}\n\t}\n\telse if (keys.indexOf(\"s\") !== -1 || keys.indexOf(\"ArrowDown\".toLowerCase()) !== -1) {\n\t\tinputState.input = en.InputEnum.down;\n\t}\n}\n\nfunction testInputDelay() {\n\tsocket.send(JSON.stringify(inputState));\n}\n\n\nfunction playerMovePrediction(delta: number, input: en.InputEnum)\n{\n\t// client prediction\n\tconst racket = clientInfo.racket;\n\tif (input === en.InputEnum.up) {\n\t\tracket.dir.y = -1;\n\t}\n\telse if (input === en.InputEnum.down) {\n\t\tracket.dir.y = 1;\n\t}\n\tracket.moveAndCollide(delta, [gc.wallTop, gc.wallBottom]);\n}\n\nexport function repeatInput(lastInputId: number)\n{\n\t// server reconciliation\n\tlet i = inputHistoryArr.findIndex((value: InputHistory) => {\n\t\tif (value.id === lastInputId) {\n\t\t\treturn true;\n\t\t}\n\t\treturn false;\n\t});\n\n\t// console.log(`inputHistory total: ${inputHistoryArr.length}` );\n\tinputHistoryArr.splice(0, i+1);\n\t// console.log(`inputHistory left: ${inputHistoryArr.length}` );\n\t\n\tinputHistoryArr.forEach((value: InputHistory) => {\n\t\tif (value.input !== en.InputEnum.noInput) {\n\t\t\tplayerMovePrediction(value.deltaTime, value.input);\n\t\t}\n\t});\n}\n","\nimport * as c from \"./constants.js\";\nimport type { MovingRectangle } from \"../shared_js/class/Rectangle.js\";\nimport type { GameComponents } from \"./class/GameComponents.js\";\n\nexport function wallsMovements(delta: number, gc: GameComponents)\n{\n\tconst wallTop = gc.wallTop;\n\tconst wallBottom = gc.wallBottom;\n\tif (wallTop.pos.y <= 0 || wallTop.pos.y >= c.movingWallPosMax) {\n\t\twallTop.dir.y *= -1;\n\t}\n\tif (wallBottom.pos.y >= c.h-c.wallSize || wallBottom.pos.y <= c.h-c.movingWallPosMax) {\n\t\twallBottom.dir.y *= -1;\n\t}\n\twallTop.moveAndCollide(delta, [gc.playerLeft, gc.playerRight]);\n\twallBottom.moveAndCollide(delta, [gc.playerLeft, gc.playerRight]);\n}\n","\nimport * as c from \"./constants.js\";\nimport * as en from \"../shared_js/enums.js\"\nimport { gc, matchOptions } from \"./global.js\";\nimport { clientInfo, clientInfoSpectator} from \"./ws.js\";\nimport { wallsMovements } from \"../shared_js/wallsMovement.js\";\nimport type { RacketClient } from \"./class/RectangleClient.js\";\nimport type { VectorInteger } from \"../shared_js/class/Vector.js\";\n\nlet actual_time: number = Date.now();\nlet last_time: number;\nlet delta_time: number;\n\nexport function gameLoop()\n{\n\t/* last_time = actual_time;\n\tactual_time = Date.now();\n\tdelta_time = (actual_time - last_time) / 1000; */\n\n\tdelta_time = c.fixedDeltaTime;\n\t// console.log(`delta_gameLoop: ${delta_time}`);\n\n\t// interpolation\n\t// console.log(`dir.y: ${clientInfo.opponent.dir.y}, pos.y: ${clientInfo.opponent.pos.y}, opponentNextPos.y: ${clientInfo.opponentNextPos.y}`);\n\tif (clientInfo.opponent.dir.y != 0 ) {\n\t\tracketInterpolation(delta_time, clientInfo.opponent, clientInfo.opponentNextPos);\n\t}\n\n\t// client prediction\n\tgc.ballsArr.forEach((ball) => {\n\t\tball.moveAndBounce(delta_time, [gc.wallTop, gc.wallBottom, gc.playerLeft, gc.playerRight]);\n\t});\n\n\tif (matchOptions & en.MatchOptions.movingWalls) {\n\t\twallsMovements(delta_time, gc);\n\t}\n}\n\nexport function gameLoopSpectator()\n{\n\tdelta_time = c.fixedDeltaTime;\n\n\t// interpolation\n\tif (gc.playerLeft.dir.y != 0 ) {\n\t\tracketInterpolation(delta_time, gc.playerLeft, clientInfoSpectator.playerLeftNextPos);\n\t}\n\tif (gc.playerRight.dir.y != 0 ) {\n\t\tracketInterpolation(delta_time, gc.playerRight, clientInfoSpectator.playerRightNextPos);\n\t}\n\n\t// client prediction\n\tgc.ballsArr.forEach((ball) => {\n\t\tball.moveAndBounce(delta_time, [gc.wallTop, gc.wallBottom, gc.playerLeft, gc.playerRight]);\n\t});\n\n\tif (matchOptions & en.MatchOptions.movingWalls) {\n\t\twallsMovements(delta_time, gc);\n\t}\n}\n\nfunction racketInterpolation(delta: number, racket: RacketClient, nextPos: VectorInteger)\n{\n\t// interpolation\n\tracket.moveAndCollide(delta, [gc.wallTop, gc.wallBottom]);\n\n\tif ((racket.dir.y > 0 && racket.pos.y > nextPos.y)\n\t|| (racket.dir.y < 0 && racket.pos.y < nextPos.y))\n\t{\n\t\tracket.dir.y = 0;\n\t\tracket.pos.y = nextPos.y;\n\t}\n}\n","\nimport { pong, gc } from \"./global.js\"\nimport { gridDisplay } from \"./handleInput.js\";\n\nexport function drawLoop()\n{\n\tpong.clear();\n\t\n\tif (gridDisplay) {\n\t\tdrawGrid();\n\t}\n\n\tdrawStatic();\n\n\tgc.text1.update();\n\tgc.text2.update();\n\tgc.text3.update();\n\n\tdrawDynamic();\n}\n\nfunction drawDynamic()\n{\n\tgc.scoreLeft.update();\n\tgc.scoreRight.update();\n\tgc.playerLeft.update();\n\tgc.playerRight.update();\n\tgc.ballsArr.forEach((ball) => {\n\t\tball.update();\n\t});\n}\n\nfunction drawStatic()\n{\n\tgc.midLine.update();\n\tgc.wallTop.update();\n\tgc.wallBottom.update();\n}\n\nfunction drawGrid()\n{\n\tgc.w_grid_mid.update();\n\tgc.w_grid_u1.update();\n\tgc.w_grid_d1.update();\n\t\n\tgc.h_grid_mid.update();\n\tgc.h_grid_u1.update();\n\tgc.h_grid_d1.update();\n}\n","\nexport class InitOptions {\n\tsound = \"off\";\n\tmulti_balls = false;\n\tmoving_walls = false;\n\tisSomeoneIsInvited = false;\n\tisInvitedPerson = false;\n\tplayerOneUsername = \"\";\n\tplayerTwoUsername = \"\";\n\treset(playerOneUsername: string) {\n\t\tthis.sound = \"off\";\n\t\tthis.multi_balls = false;\n\t\tthis.moving_walls = false;\n\t\tthis.isSomeoneIsInvited = false;\n\t\tthis.isInvitedPerson = false;\n\t\tthis.playerOneUsername = playerOneUsername;\n\t\tthis.playerTwoUsername = \"\";\t\t\n\t}\n}\n","\nimport * as c from \".././constants.js\"\n\nexport class GameArea {\n\tkeys: string[] = [];\n\thandleInputInterval: number = 0;\n\tgameLoopInterval: number = 0;\n\tdrawLoopInterval: number = 0;\n\ttimeoutArr: number[] = [];\n\tcanvas: HTMLCanvasElement;\n\tctx: CanvasRenderingContext2D;\n\tconstructor(canvas_id: string) {\n\t\tconst canvas = document.getElementById(\"game_area\");\n\t\tif (canvas && canvas instanceof HTMLCanvasElement) {\n\t\t\tthis.canvas = canvas;\n\t\t}\n\t\telse {\n\t\t\tconsole.log(\"GameArea init error, invalid canvas_id\");\n\t\t\treturn;\n\t\t}\n\t\tthis.ctx = this.canvas.getContext(\"2d\") as CanvasRenderingContext2D;\n\t\tthis.canvas.width = c.CanvasWidth;\n\t\tthis.canvas.height = c.CanvasWidth / c.CanvasRatio;\n\t}\n\taddKey(key: string) {\n\t\tkey = key.toLowerCase();\n\t\tvar i = this.keys.indexOf(key);\n\t\tif (i == -1)\n\t\t\tthis.keys.push(key);\n\t}\n\tdeleteKey(key: string) {\n\t\tkey = key.toLowerCase();\n\t\tvar i = this.keys.indexOf(key);\n\t\tif (i != -1) {\n\t\t\tthis.keys.splice(i, 1);\n\t\t}\n\t}\n\tclear() {\n\t\tthis.ctx.clearRect(0, 0, this.canvas.width, this.canvas.height);\n\t}\n}\n","\nimport { Vector, VectorInteger } from \"../../shared_js/class/Vector.js\";\nimport type { Component } from \"../../shared_js/class/interface.js\";\n\n// conflict with Text\nexport class TextElem implements Component {\n\tctx: CanvasRenderingContext2D;\n\tpos: VectorInteger;\n\tcolor: string;\n\tsize: number;\n\tfont: string;\n\ttext: string = \"\";\n\tconstructor(pos: VectorInteger, size: number,\n\t\t\tctx: CanvasRenderingContext2D, color: string, font: string = \"Bit5x3\")\n\t{\n\t\t// this.pos = Object.assign({}, pos); // create bug, Uncaught TypeError: X is not a function\n\t\tthis.pos = new VectorInteger(pos.x, pos.y);\n\t\tthis.size = size;\n\t\tthis.ctx = ctx;\n\t\tthis.color = color;\n\t\tthis.font = font;\n\t}\n\tupdate() {\n\t\tthis.ctx.font = this.size + \"px\" + \" \" + this.font;\n\t\tthis.ctx.fillStyle = this.color;\n\t\tthis.ctx.fillText(this.text, this.pos.x, this.pos.y);\n\t}\n\tclear() {\n\t\t// clear no very accurate for Text \n\t\t// https://developer.mozilla.org/en-US/docs/Web/API/TextMetrics\n\t\tlet textMetric = this.ctx.measureText(this.text);\n\t\t// console.log(\"textMetric.width = \"+textMetric.width);\n\t\t// console.log(\"size = \"+this.size);\n\t\t// console.log(\"x = \"+this.pos.x);\n\t\t// console.log(\"y = \"+this.pos.y);\n\t\tthis.ctx.clearRect(this.pos.x - 1, this.pos.y-this.size + 1, textMetric.width, this.size);\n\t\t// +1 and -1 because float imprecision (and Math.floor() with VectorInteger dont work for the moment)\n\t\t// (or maybe its textMetric imprecision ?)\n\t}\n}\n\nexport class TextNumericValue extends TextElem {\n\tprivate _value: number = 0;\n\tconstructor(pos: VectorInteger, size: number,\n\t\t\tctx: CanvasRenderingContext2D, color: string, font?: string)\n\t{\n\t\tsuper(pos, size, ctx, color, font);\n\t}\n\tget value() {\n\t\treturn this._value;\n\t}\n\tset value(v: number) {\n\t\tthis._value = v;\n\t\tthis.text = v.toString();\n\t}\n}\n","\nimport { Vector, VectorInteger } from \"./Vector.js\";\nimport type { Component, Moving } from \"./interface.js\";\nimport * as c from \"../constants.js\"\n\nexport class Rectangle implements Component {\n\tpos: VectorInteger;\n\twidth: number;\n\theight: number;\n\tconstructor(pos: VectorInteger, width: number, height: number) {\n\t\tthis.pos = new VectorInteger(pos.x, pos.y);\n\t\tthis.width = width;\n\t\tthis.height = height;\n\t}\n\tcollision(collider: Rectangle): boolean {\n\t\tconst thisLeft = this.pos.x;\n\t\tconst thisRight = this.pos.x + this.width;\n\t\tconst thisTop = this.pos.y;\n\t\tconst thisBottom = this.pos.y + this.height;\n\t\tconst colliderLeft = collider.pos.x;\n\t\tconst colliderRight = collider.pos.x + collider.width;\n\t\tconst colliderTop = collider.pos.y;\n\t\tconst colliderBottom = collider.pos.y + collider.height;\n\t\tif ((thisBottom < colliderTop)\n\t\t|| (thisTop > colliderBottom)\n\t\t|| (thisRight < colliderLeft)\n\t\t|| (thisLeft > colliderRight)) {\n\t\t\treturn false;\n\t\t}\n\t\telse {\n\t\t\treturn true;\n\t\t}\n\t}\n}\n\nexport class MovingRectangle extends Rectangle implements Moving {\n\tdir: Vector = new Vector(0,0);\n\tspeed: number;\n\treadonly baseSpeed: number;\n\tconstructor(pos: VectorInteger, width: number, height: number, baseSpeed: number) {\n\t\tsuper(pos, width, height);\n\t\tthis.baseSpeed = baseSpeed;\n\t\tthis.speed = baseSpeed;\n\t}\n\tmove(delta: number) { // Math.floor WIP until VectorInteger debug\n\t\t// console.log(`delta: ${delta}, speed: ${this.speed}, speed*delta: ${this.speed * delta}`);\n\t\t// this.pos.x += Math.floor(this.dir.x * this.speed * delta);\n\t\t// this.pos.y += Math.floor(this.dir.y * this.speed * delta);\n\t\tthis.pos.x += this.dir.x * this.speed * delta;\n\t\tthis.pos.y += this.dir.y * this.speed * delta;\n\t}\n\tmoveAndCollide(delta: number, colliderArr: Rectangle[]) {\n\t\tthis._moveAndCollideAlgo(delta, colliderArr);\n\t}\n\tprotected _moveAndCollideAlgo(delta: number, colliderArr: Rectangle[]) {\n\t\tlet oldPos = new VectorInteger(this.pos.x, this.pos.y);\n\t\tthis.move(delta);\n\t\tif (colliderArr.some(this.collision, this)) {\n\t\t\tthis.pos = oldPos;\n\t\t}\n\t}\n}\n\nexport class Racket extends MovingRectangle {\n\tconstructor(pos: VectorInteger, width: number, height: number, baseSpeed: number) {\n\t\tsuper(pos, width, height, baseSpeed);\n\t}\n\tmoveAndCollide(delta: number, colliderArr: Rectangle[]) {\n\t\t// let oldPos = new VectorInteger(this.pos.x, this.pos.y); // debug\n\t\tthis._moveAndCollideAlgo(delta, colliderArr);\n\t\t// console.log(`y change: ${this.pos.y - oldPos.y}`);\n\t}\n}\n\nexport class Ball extends MovingRectangle {\n\treadonly speedIncrease: number;\n\tballInPlay: boolean = false;\n\tconstructor(pos: VectorInteger, size: number, baseSpeed: number, speedIncrease: number) {\n\t\tsuper(pos, size, size, baseSpeed);\n\t\tthis.speedIncrease = speedIncrease;\n\t}\n\tmoveAndBounce(delta: number, colliderArr: Rectangle[]) {\n\t\tthis.move(delta);\n\t\tlet i = colliderArr.findIndex(this.collision, this);\n\t\tif (i != -1)\n\t\t{\n\t\t\tthis.bounce(colliderArr[i]);\n\t\t\tthis.move(delta);\n\t\t}\n\t}\n\tbounce(collider?: Rectangle) {\n\t\tthis._bounceAlgo(collider);\n\t}\n\tprotected _bounceAlgo(collider?: Rectangle) {\n\t\t/* Could be more generic, but testing only Racket is enough,\n\t\tbecause in Pong collider can only be Racket or Wall. */\n\t\tif (collider instanceof Racket) {\n\t\t\tthis._bounceRacket(collider);\n\t\t}\n\t\telse {\n\t\t\tthis._bounceWall();\n\t\t}\n\t}\n\tprotected _bounceWall() { // Should be enough for Wall\n\t\tthis.dir.y = this.dir.y * -1;\n\t}\n\tprotected _bounceRacket(racket: Racket) {\n\t\tthis._bounceRacketAlgo(racket);\n\t}\n\tprotected _bounceRacketAlgo(racket: Racket) {\n\t\tthis.speed += this.speedIncrease;\n\n\t\tlet x = this.dir.x * -1;\n\n\t\tconst angleFactorDegree = 60;\n\t\tconst angleFactor = angleFactorDegree / 90;\n\t\tconst racketHalf = racket.height/2;\n\t\tconst ballMid = this.pos.y + this.height/2;\n\t\tconst racketMid = racket.pos.y + racketHalf;\n\n\t\tlet impact = ballMid - racketMid;\n\t\tconst horizontalMargin = racketHalf * 0.15;\n\t\tif (impact < horizontalMargin && impact > -horizontalMargin) {\n\t\t\timpact = 0;\n\t\t}\n\t\telse if (impact > 0) {\n\t\t\timpact = impact - horizontalMargin;\n\t\t}\n\t\telse if (impact < 0) {\n\t\t\timpact = impact + horizontalMargin;\n\t\t}\n\n\t\tlet y = impact / (racketHalf - horizontalMargin) * angleFactor;\n\n\t\tthis.dir.assign(x, y);\n\t\t// Normalize Vector (for consistency in speed independent of direction)\n\t\tif (c.normalizedSpeed) {\n\t\t\tthis.dir = this.dir.normalized();\n\t\t}\n\t\t// console.log(`x: ${this.dir.x}, y: ${this.dir.y}`);\n\t}\n}\n","\nimport { Vector, VectorInteger } from \"../../shared_js/class/Vector.js\";\nimport type { GraphicComponent } from \"../../shared_js/class/interface.js\";\nimport { Rectangle, MovingRectangle, Racket, Ball } from \"../../shared_js/class/Rectangle.js\";\nimport { muteFlag, soundPongArr } from \"../audio.js\"\nimport { random } from \"../utils.js\";\n\nfunction updateRectangle(this: RectangleClient) {\n\tthis.ctx.fillStyle = this.color;\n\tthis.ctx.fillRect(this.pos.x, this.pos.y, this.width, this.height);\n}\n\nfunction clearRectangle(this: RectangleClient, pos?: VectorInteger) {\n\tif (pos)\n\t\tthis.ctx.clearRect(pos.x, pos.y, this.width, this.height);\n\telse\n\t\tthis.ctx.clearRect(this.pos.x, this.pos.y, this.width, this.height);\n}\n\nexport class RectangleClient extends Rectangle implements GraphicComponent {\n\tctx: CanvasRenderingContext2D;\n\tcolor: string;\n\tupdate: () => void;\n\tclear: (pos?: VectorInteger) => void;\n\tconstructor(pos: VectorInteger, width: number, height: number,\n\t\t\tctx: CanvasRenderingContext2D, color: string)\n\t{\n\t\tsuper(pos, width, height);\n\t\tthis.ctx = ctx;\n\t\tthis.color = color;\n\t\tthis.update = updateRectangle;\n\t\tthis.clear = clearRectangle;\n\t}\n}\n\nexport class MovingRectangleClient extends MovingRectangle implements GraphicComponent {\n\tctx: CanvasRenderingContext2D;\n\tcolor: string;\n\tupdate: () => void;\n\tclear: (pos?: VectorInteger) => void;\n\tconstructor(pos: VectorInteger, width: number, height: number, baseSpeed: number,\n\t\t\tctx: CanvasRenderingContext2D, color: string)\n\t{\n\t\tsuper(pos, width, height, baseSpeed);\n\t\tthis.ctx = ctx;\n\t\tthis.color = color;\n\t\tthis.update = updateRectangle;\n\t\tthis.clear = clearRectangle;\n\t}\n}\n\nexport class RacketClient extends Racket implements GraphicComponent {\n\tctx: CanvasRenderingContext2D;\n\tcolor: string;\n\tupdate: () => void;\n\tclear: (pos?: VectorInteger) => void;\n\tconstructor(pos: VectorInteger, width: number, height: number, baseSpeed: number,\n\t\t\tctx: CanvasRenderingContext2D, color: string)\n\t{\n\t\tsuper(pos, width, height, baseSpeed);\n\t\tthis.ctx = ctx;\n\t\tthis.color = color;\n\t\tthis.update = updateRectangle;\n\t\tthis.clear = clearRectangle;\n\t}\n}\n\nexport class BallClient extends Ball implements GraphicComponent {\n\tctx: CanvasRenderingContext2D;\n\tcolor: string;\n\tupdate: () => void;\n\tclear: (pos?: VectorInteger) => void;\n\tsoundSwitch = false;\n\tconstructor(pos: VectorInteger, size: number, baseSpeed: number, speedIncrease: number,\n\t\tctx: CanvasRenderingContext2D, color: string)\n\t{\n\t\tsuper(pos, size, baseSpeed, speedIncrease);\n\t\tthis.ctx = ctx;\n\t\tthis.color = color;\n\t\tthis.update = updateRectangle;\n\t\tthis.clear = clearRectangle;\n\t}\n\tbounce(collider?: Rectangle) {\n\t\tthis._bounceAlgo(collider);\n\t\tif (!muteFlag)\n\t\t{\n\t\t\tthis.soundSwitch = !this.soundSwitch;\n\t\t\tsoundPongArr[this.soundSwitch ? 1 : 0].play();\n\t\t\t// let i = Math.floor(random(0, soundPongArr.length));\n\t\t\t// soundPongArr[ i ].play();\n\t\t\t// console.log(`sound_i=${i}`); // debug log\n\t\t}\n\t}\n}\n\nfunction updateLine(this: Line) {\n\tthis.ctx.fillStyle = this.color;\n\tlet pos: VectorInteger = new VectorInteger;\n\tlet i = 0;\n\twhile (i < this.segmentCount)\n\t{\n\t\t/* Horizontal Line */\n\t\t// pos.y = this.pos.y;\n\t\t// pos.x = this.pos.x + this.segmentWidth * i;\n\n\t\t/* Vertical Line */\n\t\tpos.x = this.pos.x;\n\t\tpos.y = this.pos.y + this.segmentHeight * i;\n\n\t\tthis.ctx.fillRect(pos.x, pos.y, this.segmentWidth, this.segmentHeight);\n\t\ti += 2;\n\t}\n}\n\nexport class Line extends RectangleClient {\n\tgapeCount: number = 0;\n\tsegmentCount: number;\n\tsegmentWidth: number;\n\tsegmentHeight: number;\n\tconstructor(pos: VectorInteger, width: number, height: number,\n\t\t\tctx: CanvasRenderingContext2D, color: string, gapeCount?: number)\n\t{\n\t\tsuper(pos, width, height, ctx, color);\n\t\tthis.update = updateLine;\n\t\tif (gapeCount)\n\t\t\tthis.gapeCount = gapeCount;\n\t\tthis.segmentCount = this.gapeCount * 2 + 1;\n\n\t\t/* Vertical Line */\n\t\tthis.segmentWidth = this.width;\n\t\tthis.segmentHeight = this.height / this.segmentCount;\n\n\t\t/* Horizontal Line */\n\t\t// this.segmentWidth = this.width / this.segmentCount;\n\t\t// this.segmentHeight = this.height;\n\t}\n}\n","\nimport * as c from \"../constants.js\"\nimport * as en from \"../../shared_js/enums.js\"\nimport { VectorInteger } from \"./Vector.js\";\nimport { Rectangle, MovingRectangle, Racket, Ball } from \"./Rectangle.js\";\nimport { random } from \"../utils.js\";\n\nexport class GameComponents {\n\twallTop: Rectangle | MovingRectangle;\n\twallBottom: Rectangle | MovingRectangle;\n\tplayerLeft: Racket;\n\tplayerRight: Racket;\n\tballsArr: Ball[] = [];\n\tconstructor(options: en.MatchOptions)\n\t{\n\t\tconst pos = new VectorInteger;\n\n\t\t// Rackets\n\t\tpos.assign(0+c.pw, c.h_mid-c.ph/2);\n\t\tthis.playerLeft = new Racket(pos, c.pw, c.ph, c.racketSpeed);\n\t\tpos.assign(c.w-c.pw-c.pw, c.h_mid-c.ph/2);\n\t\tthis.playerRight = new Racket(pos, c.pw, c.ph, c.racketSpeed);\n\t\n\t\t// Balls\n\t\tlet ballsCount = 1;\n\t\tif (options & en.MatchOptions.multiBalls) {\n\t\t\tballsCount = c.multiBallsCount;\n\t\t}\n\t\tpos.assign(-c.ballSize, -c.ballSize); // ball out =)\n\t\twhile (this.ballsArr.length < ballsCount) {\n\t\t\tthis.ballsArr.push(new Ball(pos, c.ballSize, c.ballSpeed, c.ballSpeedIncrease))\n\t\t}\n\t\tthis.ballsArr.forEach((ball) => {\n\t\t\tball.dir.x = 1;\n\t\t\tif (random() > 0.5) {\n\t\t\t\tball.dir.x *= -1;\n\t\t\t}\n\n\t\t\tball.dir.y = random(0, 0.2);\n\t\t\tif (random() > 0.5) {\n\t\t\t\tball.dir.y *= -1;\n\t\t\t}\n\n\t\t\tball.dir = ball.dir.normalized();\n\t\t});\n\n\t\t// Walls\n\t\tif (options & en.MatchOptions.movingWalls) {\n\t\t\tpos.assign(0, 0);\n\t\t\tthis.wallTop = new MovingRectangle(pos, c.w, c.wallSize, c.movingWallSpeed);\n\t\t\t(this.wallTop).dir.y = -1;\n\t\t\tpos.assign(0, c.h-c.wallSize);\n\t\t\tthis.wallBottom = new MovingRectangle(pos, c.w, c.wallSize, c.movingWallSpeed);\n\t\t\t(this.wallBottom).dir.y = 1;\n\t\t}\n\t\telse {\n\t\t\tpos.assign(0, 0);\n\t\t\tthis.wallTop = new Rectangle(pos, c.w, c.wallSize);\n\t\t\tpos.assign(0, c.h-c.wallSize);\n\t\t\tthis.wallBottom = new Rectangle(pos, c.w, c.wallSize);\n\t\t}\n\t}\n}\n","\nimport * as c from \"../constants.js\"\nimport * as en from \"../../shared_js/enums.js\"\nimport { Vector, VectorInteger } from \"../../shared_js/class/Vector.js\";\nimport { TextElem, TextNumericValue } from \"./Text.js\";\nimport { RectangleClient, MovingRectangleClient, RacketClient, BallClient, Line } from \"./RectangleClient.js\";\nimport { GameComponents } from \"../../shared_js/class/GameComponents.js\";\nimport type { MovingRectangle } from \"../../shared_js/class/Rectangle.js\";\n\nclass GameComponentsExtensionForClient extends GameComponents {\n\twallTop: RectangleClient | MovingRectangleClient;\n\twallBottom: RectangleClient | MovingRectangleClient;\n\tplayerLeft: RacketClient;\n\tplayerRight: RacketClient;\n\tballsArr: BallClient[];\n\tconstructor(options: en.MatchOptions, ctx: CanvasRenderingContext2D)\n\t{\n\t\tsuper(options);\n\n\t\t// Rackets\n\t\tconst basePL = this.playerLeft;\n\t\tconst basePR = this.playerRight;\n\t\tthis.playerLeft = new RacketClient(\n\t\tbasePL.pos, basePL.width, basePL.height, basePL.baseSpeed,\n\t\tctx, \"white\");\n\t\tthis.playerRight = new RacketClient(\n\t\tbasePR.pos, basePR.width, basePR.height, basePR.baseSpeed,\n\t\tctx, \"white\");\n\n\t\t// Balls\n\t\tconst newBallsArr: BallClient[] = [];\n\t\tthis.ballsArr.forEach((ball) => {\n\t\t\tnewBallsArr.push(new BallClient(ball.pos, ball.width, ball.baseSpeed, ball.speedIncrease,\n\t\t\tctx, \"white\")\n\t\t\t);\n\t\t});\n\t\tthis.ballsArr = newBallsArr;\n\n\t\t// Walls\n\t\tif (options & en.MatchOptions.movingWalls)\n\t\t{\n\t\t\tconst baseWT = this.wallTop;\n\t\t\tconst baseWB = this.wallBottom;\n\n\t\t\tthis.wallTop = new MovingRectangleClient(baseWT.pos, baseWT.width, baseWT.height, baseWT.baseSpeed,\n\t\t\tctx, \"grey\");\n\t\t\t(this.wallTop).dir.assign(baseWT.dir.x, baseWT.dir.y);\n\t\t\t\n\t\t\tthis.wallBottom = new MovingRectangleClient(baseWB.pos, baseWB.width, baseWB.height, baseWB.baseSpeed,\n\t\t\tctx, \"grey\");\n\t\t\t(this.wallBottom).dir.assign(baseWB.dir.x, baseWB.dir.y);\n\t\t}\n\t\telse\n\t\t{\n\t\t\tconst baseWT = this.wallTop;\n\t\t\tconst baseWB = this.wallBottom;\n\t\t\tthis.wallTop = new RectangleClient(baseWT.pos, baseWT.width, baseWT.height,\n\t\t\tctx, \"grey\");\n\t\t\tthis.wallBottom = new RectangleClient(baseWB.pos, baseWB.width, baseWB.height,\n\t\t\tctx, \"grey\");\n\t\t}\n\t}\n}\n\nexport class GameComponentsClient extends GameComponentsExtensionForClient {\n\tmidLine: Line;\n\tscoreLeft: TextNumericValue;\n\tscoreRight: TextNumericValue;\n\ttext1: TextElem;\n\ttext2: TextElem;\n\ttext3: TextElem;\n\n\tw_grid_mid: RectangleClient;\n\tw_grid_u1: RectangleClient;\n\tw_grid_d1: RectangleClient;\n\th_grid_mid: RectangleClient;\n\th_grid_u1: RectangleClient;\n\th_grid_d1: RectangleClient;\n\tconstructor(options: en.MatchOptions, ctx: CanvasRenderingContext2D)\n\t{\n\t\tsuper(options, ctx);\n\t\tlet pos = new VectorInteger;\n\t\t// Scores\n\t\tpos.assign(c.w_mid-c.scoreSize*1.6, c.scoreSize*1.5);\n\t\tthis.scoreLeft = new TextNumericValue(pos, c.scoreSize, ctx, \"white\");\n\t\tpos.assign(c.w_mid+c.scoreSize*1.1, c.scoreSize*1.5);\n\t\tthis.scoreRight = new TextNumericValue(pos, c.scoreSize, ctx, \"white\");\n\t\tthis.scoreLeft.value = 0;\n\t\tthis.scoreRight.value = 0;\n\t\t\n\t\t// Text\n\t\tpos.assign(0, c.h_mid);\n\t\tthis.text1 = new TextElem(pos, Math.floor(c.w/8), ctx, \"white\");\n\t\tthis.text2 = new TextElem(pos, Math.floor(c.w/24), ctx, \"white\");\n\t\tthis.text3 = new TextElem(pos, Math.floor(c.w/24), ctx, \"white\");\n\t\n\t\t// Dotted Midline\n\t\tpos.assign(c.w_mid-c.midLineSize/2, 0+c.wallSize);\n\t\tthis.midLine = new Line(pos, c.midLineSize, c.h-c.wallSize*2, ctx, \"white\", 15);\n\t\n\t\t// Grid\n\t\tpos.assign(0, c.h_mid);\n\t\tthis.w_grid_mid = new RectangleClient(pos, c.w, c.gridSize, ctx, \"darkgreen\");\n\t\tpos.assign(0, c.h/4);\n\t\tthis.w_grid_u1 = new RectangleClient(pos, c.w, c.gridSize, ctx, \"darkgreen\");\n\t\tpos.assign(0, c.h-c.h/4);\n\t\tthis.w_grid_d1 = new RectangleClient(pos, c.w, c.gridSize, ctx, \"darkgreen\");\n\t\tpos.assign(c.w_mid, 0);\n\t\tthis.h_grid_mid = new RectangleClient(pos, c.gridSize, c.h, ctx, \"darkgreen\");\n\t\tpos.assign(c.w/4, 0);\n\t\tthis.h_grid_u1 = new RectangleClient(pos, c.gridSize, c.h, ctx, \"darkgreen\");\n\t\tpos.assign(c.w-c.w/4, 0);\n\t\tthis.h_grid_d1 = new RectangleClient(pos, c.gridSize, c.h, ctx, \"darkgreen\");\n\t}\n}\n","\nimport * as c from \"./constants.js\"\nimport * as en from \"../shared_js/enums.js\"\nimport { GameArea } from \"./class/GameArea.js\";\nimport { GameComponentsClient } from \"./class/GameComponentsClient.js\";\nimport { socket, resetGameState } from \"./ws.js\";\nimport { initAudio } from \"./audio.js\";\nimport type { InitOptions } from \"./class/InitOptions.js\";\n\nimport { pong } from \"./global.js\"\nimport { setPong, setGc, setMatchOptions } from \"./global.js\"\n\nexport function computeMatchOptions(options: InitOptions)\n{\n\tlet matchOptions = en.MatchOptions.noOption;\n\n\tif (options.multi_balls === true) {\n\t\tmatchOptions |= en.MatchOptions.multiBalls\n\t}\n\tif (options.moving_walls === true) {\n\t\tmatchOptions |= en.MatchOptions.movingWalls\n\t}\n\n\treturn matchOptions;\n}\n\nexport function initBase(matchOptions: en.MatchOptions, sound: string, gameAreaId: string)\n{\n\tinitAudio(sound);\n\tsetMatchOptions(matchOptions);\n\tsetPong(new GameArea(gameAreaId));\n\tsetGc(new GameComponentsClient(matchOptions, pong.ctx));\n}\n\nexport function destroyBase()\n{\n\tif (socket && (socket.OPEN || socket.CONNECTING)) {\n\t\tsocket.close();\n\t}\n\tif (pong)\n\t{\n\t\tpong.timeoutArr.forEach((value) => {\n\t\t\tclearTimeout(value);\n\t\t});\n\t\tpong.timeoutArr = [];\n\n\t\tclearInterval(pong.handleInputInterval);\n\t\tpong.handleInputInterval = null;\n\n\t\tclearInterval(pong.gameLoopInterval);\n\t\tpong.gameLoopInterval = null;\n\n\t\tclearInterval(pong.drawLoopInterval);\n\t\tpong.drawLoopInterval = null;\n\n\t\tsetPong(null);\n\t}\n\tsetGc(null);\n\tsetMatchOptions(null);\n\tresetGameState();\n}\n","\nimport * as c from \"./constants.js\"\nimport type * as en from \"../shared_js/enums.js\"\nimport { handleInput } from \"./handleInput.js\";\nimport { gameLoop } from \"./gameLoop.js\"\nimport { drawLoop } from \"./draw.js\";\nimport { countdown } from \"./utils.js\";\nimport { gameState, initWebSocket } from \"./ws.js\";\nimport type { InitOptions } from \"./class/InitOptions.js\";\nexport { InitOptions } from \"./class/InitOptions.js\";\nimport { initBase, destroyBase, computeMatchOptions } from \"./init.js\";\nexport { computeMatchOptions } from \"./init.js\";\n\nimport { pong, gc } from \"./global.js\"\nimport { setStartFunction } from \"./global.js\"\n\nlet abortControllerKeydown: AbortController;\nlet abortControllerKeyup: AbortController;\n\nexport function init(matchOptions: en.MatchOptions, options: InitOptions, gameAreaId: string, token: string)\n{\n\tinitBase(matchOptions, options.sound, gameAreaId);\n\n\tsetStartFunction(start);\n\tif (options.isSomeoneIsInvited) {\n\t\tinitWebSocket(matchOptions, token, options.playerOneUsername, true, options.playerTwoUsername, options.isInvitedPerson);\n\t}\n\telse {\n\t\tinitWebSocket(matchOptions, token, options.playerOneUsername);\n\t}\n}\n\nexport function destroy()\n{\n\tdestroyBase();\n\tif (abortControllerKeydown) {\n\t\tabortControllerKeydown.abort();\n\t\tabortControllerKeydown = null;\n\t}\n\tif (abortControllerKeyup) {\n\t\tabortControllerKeyup.abort();\n\t\tabortControllerKeyup = null;\n\t}\n}\n\nfunction start()\n{\n\tgc.text1.pos.assign(c.w*0.5, c.h*0.75);\n\tconst countdownArr = countdown(c.matchStartDelay, 1000, (count: number) => {\n\t\tgc.text1.clear();\n\t\tgc.text1.text = `${count/1000}`;\n\t\tgc.text1.update();\n\t}, start_after_countdown);\n\tpong.timeoutArr = pong.timeoutArr.concat(countdownArr);\n}\n\nfunction start_after_countdown()\n{\n\tabortControllerKeydown = new AbortController();\n\twindow.addEventListener(\n\t\t'keydown',\n\t\t(e) => { pong.addKey(e.key); },\n\t\t{signal: abortControllerKeydown.signal}\n\t);\n\n\tabortControllerKeyup = new AbortController();\n\twindow.addEventListener(\n\t\t'keyup',\n\t\t(e) => { pong.deleteKey(e.key); },\n\t\t{signal: abortControllerKeyup.signal}\n\t);\n\n\tresume();\n}\n\nfunction resume()\n{\n\tgc.text1.text = \"\";\n\tpong.handleInputInterval = window.setInterval(handleInput, c.handleInputIntervalMS);\n\t// pong.handleInputInterval = window.setInterval(sendLoop, c.sendLoopIntervalMS);\n\tpong.gameLoopInterval = window.setInterval(gameLoop, c.gameLoopIntervalMS);\n\tpong.drawLoopInterval = window.setInterval(drawLoop, c.drawLoopIntervalMS);\n}\n\nfunction pause() // unused\n{\n\tclearInterval(pong.handleInputInterval);\n\tclearInterval(pong.gameLoopInterval);\n\tclearInterval(pong.drawLoopInterval);\n}\n","\n\n\n
    \n\n
    \n\n\t{#if showError}\n\t\t
    \n\t\t\t
    \n\t\t\t\tError\n\t\t\t\t

    {errorMessage}

    \n\t\t\t
    \n\t\t
    \n\t{/if}\n\n\t{#if !hiddenGame}\n\t\t{#if gameState.matchEnded}\n\t\t\t
    \n\t\t\t\t

    The match is finished !

    \n\t\t\t
    \n\t\t{:else if gameState.matchAborted}\n\t\t\t
    \n\t\t\t\t

    The match has been aborted

    \n\t\t\t
    \n\t\t{/if}\n\t{/if}\n\n\t\n\n\t{#if !hiddenGame}\n\t\t{#if gameState.matchStarted && !gameState.matchEnded}\n\t\t\t
    \n\t\t\t\t\n\t\t\t
    \n\t\t{:else if !gameState.matchStarted}\n\t\t\t
    \n\t\t\t\t\n\t\t\t
    \n\t\t{/if}\n\t{/if}\n\n\n\t{#if showWaitPage}\n\t\t
    \n\t\t\t
    \n\t\t\t\tConnecting to the game...\n\t\t\t\t

    Please wait...

    \n\t\t\t
    \n\t\t
    \n\t{/if}\n\n\n\n\t{#if optionsAreNotSet}\n\t\t{#if showGameOptions}\n\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t\t
    \n\t\t\t\t\t\tgame options\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t

    sound :

    \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t{#if options.isSomeoneIsInvited}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t{/if}\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t
    \n\t\t{/if}\n\n\t\t{#if showInvitations}\n\t\t\t
    \n\t\t\t\t\n\t\t\t\t
    \n\t\t\t\t\tinvitations\n\t\t\t\t\t\n\t\t\t\t\t{#if invitations.length !== 0}\n\t\t\t\t\t\t{#each invitations as invitation}\n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t{invitation.playerOneUsername} has invited you to play a pong !\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t{/each}\n\t\t\t\t\t{:else}\n\t\t\t\t\t\t

    Currently, no one asked to play with you.

    \n\t\t\t\t\t{/if}\n\t\t\t\t
    \n\t\t\t
    \n\t\t{/if}\n\t{/if}\n\n
    \n\n\n","\n\n
    \n
    \n\n
    \n\t\n\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t\t\n\t\t\t{#each allUsers as user, i}\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t{#if user.username === currentUser.username}\n\t\t\t\t\t\t\n\t\t\t\t\t{:else}\n\t\t\t\t\t\n\t\t\t\t\t{/if}\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t{/each}\n\t\t\n\t
    #UsernameWinLoseDrawGames Played
    {i + 1}You ({user.username}){user.username}{user.stats.winGame}{user.stats.loseGame}{user.stats.drawGame}{user.stats.totalGame}
    \n
    \n\n\n","\nimport * as c from \"./constants.js\"\nimport type * as en from \"../shared_js/enums.js\"\nimport { gameLoopSpectator } from \"./gameLoop.js\"\nimport { drawLoop } from \"./draw.js\";\nimport { initWebSocketSpectator } from \"./ws.js\";\nimport { initBase, destroyBase, computeMatchOptions } from \"./init.js\";\nexport { computeMatchOptions } from \"./init.js\";\nexport { MatchOptions } from \"../shared_js/enums.js\"\n\n/* TODO: A way to delay the init of variables, but still use \"const\" not \"let\" ? */\nimport { pong, gc } from \"./global.js\"\nimport { setStartFunction } from \"./global.js\"\n\n\nexport function init(matchOptions: en.MatchOptions, sound: string, gameAreaId: string, gameSessionId: string)\n{\n\tinitBase(matchOptions, sound, gameAreaId);\n\n\tsetStartFunction(start);\n\tinitWebSocketSpectator(gameSessionId);\n}\n\nexport function destroy()\n{\n\tdestroyBase();\n}\n\nfunction start()\n{\n\tresume();\n}\n\nfunction resume()\n{\n\tpong.gameLoopInterval = window.setInterval(gameLoopSpectator, c.gameLoopIntervalMS);\n\tpong.drawLoopInterval = window.setInterval(drawLoop, c.drawLoopIntervalMS);\n}\n\nfunction pause() // unused\n{\n\tclearInterval(pong.gameLoopInterval);\n\tclearInterval(pong.drawLoopInterval);\n}\n","\n\n\n\n
  • \n\t\n
  • \n\n\n\n\n","\n\n\n\n
    \n\n
    \n\n\t{#if !hiddenGame}\n\t\t{#if gameState.matchEnded}\n\t\t\t
    \n\t\t\t\t

    The match is finished !

    \n\t\t\t
    \n\t\t{/if}\n\t{/if}\n\n\t\n\n\t{#if !hiddenGame}\n\t\t{#if !gameState.matchEnded}\n\t\t\t
    \n\t\t\t\t\n\t\t\t
    \n\t\t{/if}\n\t{/if}\n\n\n\n\t{#if hiddenGame}\n\t\t
    \n\t\t\t
    \n\t\t\t\toptions\n\t\t\t\t\n\t\t\t\t
    \n\t\t\t\t\t

    sound :

    \n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t
    \n\t\t\t
    \n\t\t\t{#if matchList.length !== 0}\n\t\t\t\t\n\t\t\t\t\t{#each matchList as match}\n\t\t\t\t\t\t initGameSpectator(match.gameServerIdOfTheMatch, match.gameOptions)} />\n\t\t\t\t\t{/each}\n\t\t\t\t\n\t\t\t{:else}\n\t\t\t\t

    no match ongoing

    \n\t\t\t{/if}\n\t\t
    \n\t{/if}\n\n
    \n\n\n\n","import NotFound from \"../pages/NotFound.svelte\";\nimport ProfilePage from \"../pages/profile/ProfilePage.svelte\";\nimport SplashPage from \"../pages/SplashPage.svelte\";\nimport TwoFactorAuthentication from '../pages/TwoFactorAuthentication.svelte';\nimport UnauthorizedAccessPage from '../pages/UnauthorizedAccessPage.svelte';\nimport { wrap } from 'svelte-spa-router/wrap'\nimport Game from '../pages/game/Game.svelte';\nimport Ranking from '../pages/game/Ranking.svelte';\nimport GameSpectator from '../pages/game/GameSpectator.svelte';\n\nimport JumpingPotatoes from '../pieces/JumpingPotatoes.svelte';\n\n\nexport const primaryRoutes = {\n '/': SplashPage,\n '/test': JumpingPotatoes,\n '/2fa': TwoFactorAuthentication,\n '/game': wrap({\n component: Game,\n conditions: [\n async(detail) => {\n const user = await fetch('http://' + process.env.WEBSITE_HOST + \":\" + process.env.WEBSITE_PORT + '/api/v2/user')\n .then((resp) => resp.json())\n\n console.log('in /profile what is in user')\n console.log(user)\n\n if (user && user.username)\n return true;\n else\n return false;\n }\n ]\n }),\n '/spectator': wrap({\n component: GameSpectator,\n conditions: [\n async(detail) => {\n const user = await fetch('http://' + process.env.WEBSITE_HOST + \":\" + process.env.WEBSITE_PORT + '/api/v2/user')\n .then((resp) => resp.json())\n\n console.log('in /profile what is in user')\n console.log(user)\n\n if (user && user.username)\n return true;\n else\n return false;\n }\n ]\n }),\n '/ranking': wrap({\n component: Ranking,\n conditions: [\n async(detail) => {\n const user = await fetch('http://' + process.env.WEBSITE_HOST + \":\" + process.env.WEBSITE_PORT + '/api/v2/user')\n .then((resp) => resp.json())\n\n console.log('in /profile what is in user')\n console.log(user)\n\n if (user && user.username)\n return true;\n else\n return false;\n }\n ]\n }),\n '/profile': wrap({\n component: ProfilePage,\n conditions: [\n async(detail) => {\n const user = await fetch('http://' + process.env.WEBSITE_HOST + \":\" + process.env.WEBSITE_PORT + '/api/v2/user')\n .then((resp) => resp.json())\n\n console.log('in /profile what is in user')\n console.log(user)\n\n if (user && user.username)\n return true;\n else\n return false;\n }\n ]\n }),\n '/profile/*': wrap({\n component: ProfilePage,\n conditions: [\n async(detail) => {\n const user = await fetch('http://' + process.env.WEBSITE_HOST + \":\" + process.env.WEBSITE_PORT + '/api/v2/user')\n .then((resp) => resp.json())\n\n console.log('in /profile/* what is in user')\n console.log(user)\n\n if (user && user.username)\n return true;\n else\n return false;\n }\n ]\n }),\n '/unauthorized-access': UnauthorizedAccessPage,\n '*': NotFound\n};\n","\n\n\n\n\n","import App from './App.svelte';\n\nconst app = new App({\n\ttarget: document.body,\n\tprops: {\n\t\t// name: 'world'\n\t}\n});\n\nexport default app;\n"],"names":["empty","init","wrap","parse","_wrap","location","create_if_block","create_if_block_1","socket","withNativeBlob","withNativeArrayBuffer","isView","lookup","decode","protocol","globalThis","encode","XMLHttpRequest","WebSocket","Socket","Engine","io","create_if_block_12","create_if_block_8","create_if_block_9","create_if_block_11","pong","en.MatchOptions","en.EventTypes","en.ClientRole","en.InputEnum","c.w","c.h","en.PlayerSide","c.soundRobloxVolume","ev.ClientAnnouncePlayer","msg.error","msg.matchmaking","ev.ClientEvent","msg.matchmakingComplete","msg.matchAbort","msg.win","msg.forfeit","msg.lose","ev.ClientAnnounceSpectator","delta_time","ev.EventInput","c.fixedDeltaTime","c.movingWallPosMax","c.wallSize","c.CanvasWidth","c.CanvasRatio","c.pw","c.h_mid","c.ph","c.racketSpeed","c.multiBallsCount","c.ballSize","c.ballSpeed","c.ballSpeedIncrease","c.movingWallSpeed","c.w_mid","c.scoreSize","c.midLineSize","c.gridSize","start","destroy","c.matchStartDelay","resume","c.handleInputIntervalMS","c.gameLoopIntervalMS","c.drawLoopIntervalMS","create_if_block_3","create_if_block_4","create_if_block_2","create_if_block_5","gameAreaId","watchGameStateIntervalRate","pong.InitOptions","pong.destroy","pong.computeMatchOptions","pong.init","pongSpectator.destroy","pongSpectator.init"],"mappings":"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AA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;;OAI/B,UAqDO,CAAA,IAAA,EAAA,MAAA,CAAA,CAAA;OApDN,UAAa,CAAA,MAAA,EAAA,EAAA,CAAA,CAAA;;OACb,UAkDQ,CAAA,MAAA,EAAA,OAAA,CAAA,CAAA;OAjDP,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;;OAI/B,UA8BO,CAAA,IAAA,EAAA,MAAA,CAAA,CAAA;OA7BN,UAAY,CAAA,MAAA,EAAA,EAAA,CAAA,CAAA;;OACZ,UA2BQ,CAAA,MAAA,EAAA,OAAA,CAAA,CAAA;OA1BP,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,SAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,SAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,SAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,SAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,SAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,SAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,SAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,SAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,SAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,SAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,SAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,SAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,SAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,SAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,SAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,SAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,SAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,SAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,SAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,SAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,SAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,SAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,SAAA,CAAA,CAAA;OAC7B,UAA6B,CAAA,OAAA,EAAA,SAAA,CAAA,CAAA;;OAIhC,UAAoC,CAAA,IAAA,EAAA,MAAA,CAAA,CAAA;;;;;qEAvKlB,GAAI,CAAA,CAAA,CAAA,CAAA;gFAA0C,GAAI,CAAA,CAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAP3D,CAAA,IAAA,EAAA,IAAI,GAAG,EAAE,EAAA,GAAA,OAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;gBCWoD,MAExE,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;gBAGkC,QAElC,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;gBAGgD,OAEhD,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;gBAIqD,aAEpD,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;gBAMO,cAEP,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;gBACO,iBAEP,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;0BAEE,GAAK,CAAA,CAAA,CAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;gBAIC,YAEP,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;yBAEE,GAAI,CAAA,CAAA,CAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6BAvCY,GAAI,CAAA,CAAA,CAAA;;wCAA0C,GAAI,CAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;IAejE,CAAA,IAAA,SAAA,YAAA,GAAI,QAAK,UAAU,IAAAC,mBAAA,CAAA,GAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;IAmBlB,CAAA,IAAA,SAAA,YAAA,GAAI,QAAK,UAAU,IAAAD,iBAAA,CAAA,GAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OArC1B,UAgDK,CAAA,MAAA,EAAA,IAAA,EAAA,MAAA,CAAA,CAAA;;;;;;;;;OAvBJ,UAqBK,CAAA,IAAA,EAAA,IAAA,CAAA,CAAA;OApBJ,UAAqC,CAAA,IAAA,EAAA,CAAA,CAAA,CAAA;;;;;;;;;;;;;qEAvBlB,GAAI,CAAA,CAAA,CAAA,CAAA;gFAA0C,GAAI,CAAA,CAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;IAejE,GAAA,aAAA,GAAI,QAAK,UAAU,EAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAmBlB,GAAA,aAAA,GAAI,QAAK,UAAU,EAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IA7Cd,CAAA,IAAA,EAAA,IAAI,GAAG,EAAE,EAAA,GAAA,OAAA,CAAA;IAEhB,CAAA,IAAA,IAAI,GAAG,MAAM,CAAA;IACb,CAAA,IAAA,KAAK,GAAG,OAAO,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ICuEA,GAAA,KAAA,EAAA,EAAA,IAAA,cAAA,GAAO,IAAC,CAAC,CAAA,EAAA;;;;;;;;;;;;;;IAAT,GAAA,IAAA,KAAA,eAAA,CAAA,EAAA,kBAAA,CAAA,IAAA,eAAA,GAAO,IAAC,CAAC,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAHT,GAAA,KAAA,EAAA,EAAA,IAAA,cAAA,GAAO,IAAC,CAAC,CAAA,EAAA;;;;;;;;;;;;;;IAAT,GAAA,IAAA,KAAA,eAAA,CAAA,EAAA,kBAAA,CAAA,IAAA,eAAA,GAAO,IAAC,CAAC,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAHP,GAAA,KAAA,EAAA,EAAA,IAAA,cAAA,GAAO,IAAC,CAAC,CAAA,EAAA;;;;;;;;;;;;;;IAAT,GAAA,IAAA,KAAA,eAAA,CAAA,EAAA,oBAAA,CAAA,IAAA,eAAA,GAAO,IAAC,CAAC,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAHN,GAAA,KAAA,EAAA,EAAA,IAAA,cAAA,GAAO,IAAC,CAAC,CAAA,EAAA;;;;;;;;;;;;;;IAAT,GAAA,IAAA,KAAA,eAAA,CAAA,EAAA,uBAAA,CAAA,IAAA,eAAA,GAAO,IAAC,CAAC,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAHX,GAAA,KAAA,EAAA,EAAA,IAAA,cAAA,GAAO,IAAC,CAAC,CAAA,EAAA;;;;;;;;;;;;;;IAAT,GAAA,IAAA,KAAA,eAAA,CAAA,EAAA,qBAAA,CAAA,IAAA,eAAA,GAAO,IAAC,CAAC,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAHR,GAAA,KAAA,EAAA,EAAA,IAAA,cAAA,GAAO,IAAC,CAAC,CAAA,EAAA;;;;;;;;;;;;;;IAAT,GAAA,IAAA,KAAA,eAAA,CAAA,EAAA,sBAAA,CAAA,IAAA,eAAA,GAAO,IAAC,CAAC,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAHd,GAAA,KAAA,EAAA,EAAA,IAAA,cAAA,GAAO,IAAC,CAAC,CAAA,EAAA;;;;;;;;;;;;;;IAAT,GAAA,IAAA,KAAA,eAAA,CAAA,EAAA,iBAAA,CAAA,IAAA,eAAA,GAAO,IAAC,CAAC,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAHR,GAAA,KAAA,EAAA,EAAA,IAAA,cAAA,GAAO,IAAC,CAAC,CAAA,EAAA;;;;;;;;;;;;;;IAAT,GAAA,IAAA,KAAA,eAAA,CAAA,EAAA,kBAAA,CAAA,IAAA,eAAA,GAAO,IAAC,CAAC,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAHR,GAAA,KAAA,EAAA,EAAA,IAAA,cAAA,GAAO,IAAC,CAAC,CAAA,EAAA;;;;;;;;;;;;;;IAAT,GAAA,IAAA,KAAA,eAAA,CAAA,EAAA,mBAAA,CAAA,IAAA,eAAA,GAAO,IAAC,CAAC,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAJxB,EAAA,gBAAA,GAAO,QAAK,MAAM,EAAA,OAAA,CAAA,CAAA;IAGb,EAAA,gBAAA,GAAO,QAAK,OAAO,EAAA,OAAA,CAAA,CAAA;IAGnB,EAAA,gBAAA,GAAO,QAAK,MAAM,EAAA,OAAA,CAAA,CAAA;IAGlB,EAAA,gBAAA,GAAO,QAAK,KAAK,EAAA,OAAA,CAAA,CAAA;IAGjB,EAAA,gBAAA,GAAO,QAAK,UAAU,EAAA,OAAA,CAAA,CAAA;IAGtB,EAAA,gBAAA,GAAO,QAAK,UAAU,EAAA,OAAA,CAAA,CAAA;IAGtB,EAAA,gBAAA,GAAO,QAAK,WAAW,EAAA,OAAA,CAAA,CAAA;IAGvB,EAAA,gBAAA,GAAO,QAAK,QAAQ,EAAA,OAAA,CAAA,CAAA;IAGpB,EAAA,gBAAA,GAAO,QAAK,MAAM,EAAA,OAAA,CAAA,CAAA;IAGlB,EAAA,gBAAA,GAAO,QAAK,MAAM,EAAA,OAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;yBA7Bb,GAAK,CAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kEAAL,GAAK,CAAA,CAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;WA3BT,KAAK,EAAA,GAAA,OAAA,CAAA;IACZ,CAAA,IAAA,IAAI,GAAG,EAAE,CAAA;IACT,CAAA,IAAA,KAAK,GAAG,KAAK,CAAA;SACb,OAAO,GAAA,CAAI,MAAM,EAAE,MAAM,CAAA,CAAA;;;;IAIpB,CAAA,SAAA,WAAW,CAAC,OAAO,EAAA;IAE3B,EAAA,OAAO,CAAC,GAAG,CAAC,UAAU,EAAE,OAAO,CAAA,CAAA;IAC/B,EAAA,OAAO,CAAC,GAAG,CAAC,SAAS,EAAE,OAAO,CAAA,CAAA;IAC1B,EAAA,IAAA,OAAO,CAAC,MAAM,KAAK,CAAC,EACvB,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CACZ,CAAA,CAAA,MAAA,IAAA,OAAO,KAAK,OAAO,EAAA,OAAA,MAAA,IAEnB,OAAO,KAAK,OAAO,CAAC,CAAC,oBAErB,OAAO,KAAK,OAAO,CAAC,CAAC,mBAC7B,OAAO,GAAA,CAAI,OAAO,EAAE,MAAM,yBAE1B,OAAO,GAAA,CAAI,OAAO,EAAE,OAAO,CAAC,CAAC,CAAA,CAAA,CAAA,CAAA;IAC9B,EAAA,OAAO,CAAC,GAAG,CAAC,YAAY,EAAE,OAAO,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAE/B,WAAW,CAAC,OAAO,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IC7CvB,MAAM,YAAY,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IACzC,YAAY,CAAC,MAAM,CAAC,GAAG,GAAG,CAAC;IAC3B,YAAY,CAAC,OAAO,CAAC,GAAG,GAAG,CAAC;IAC5B,YAAY,CAAC,MAAM,CAAC,GAAG,GAAG,CAAC;IAC3B,YAAY,CAAC,MAAM,CAAC,GAAG,GAAG,CAAC;IAC3B,YAAY,CAAC,SAAS,CAAC,GAAG,GAAG,CAAC;IAC9B,YAAY,CAAC,SAAS,CAAC,GAAG,GAAG,CAAC;IAC9B,YAAY,CAAC,MAAM,CAAC,GAAG,GAAG,CAAC;IAC3B,MAAM,oBAAoB,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IACjD,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,OAAO,CAAC,GAAG,IAAI;IACzC,IAAI,oBAAoB,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC;IAClD,CAAC,CAAC,CAAC;IACH,MAAM,YAAY,GAAG,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE;;ICX5D,MAAMG,gBAAc,GAAG,OAAO,IAAI,KAAK,UAAU;IACjD,KAAK,OAAO,IAAI,KAAK,WAAW;IAChC,QAAQ,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,0BAA0B,CAAC,CAAC;IAC7E,MAAMC,uBAAqB,GAAG,OAAO,WAAW,KAAK,UAAU,CAAC;IAChE;IACA,MAAMC,QAAM,GAAG,GAAG,IAAI;IACtB,IAAI,OAAO,OAAO,WAAW,CAAC,MAAM,KAAK,UAAU;IACnD,UAAU,WAAW,CAAC,MAAM,CAAC,GAAG,CAAC;IACjC,UAAU,GAAG,IAAI,GAAG,CAAC,MAAM,YAAY,WAAW,CAAC;IACnD,CAAC,CAAC;IACF,MAAM,YAAY,GAAG,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,cAAc,EAAE,QAAQ,KAAK;IACnE,IAAI,IAAIF,gBAAc,IAAI,IAAI,YAAY,IAAI,EAAE;IAChD,QAAQ,IAAI,cAAc,EAAE;IAC5B,YAAY,OAAO,QAAQ,CAAC,IAAI,CAAC,CAAC;IAClC,SAAS;IACT,aAAa;IACb,YAAY,OAAO,kBAAkB,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;IACtD,SAAS;IACT,KAAK;IACL,SAAS,IAAIC,uBAAqB;IAClC,SAAS,IAAI,YAAY,WAAW,IAAIC,QAAM,CAAC,IAAI,CAAC,CAAC,EAAE;IACvD,QAAQ,IAAI,cAAc,EAAE;IAC5B,YAAY,OAAO,QAAQ,CAAC,IAAI,CAAC,CAAC;IAClC,SAAS;IACT,aAAa;IACb,YAAY,OAAO,kBAAkB,CAAC,IAAI,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC;IAClE,SAAS;IACT,KAAK;IACL;IACA,IAAI,OAAO,QAAQ,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,IAAI,IAAI,EAAE,CAAC,CAAC,CAAC;IACvD,CAAC,CAAC;IACF,MAAM,kBAAkB,GAAG,CAAC,IAAI,EAAE,QAAQ,KAAK;IAC/C,IAAI,MAAM,UAAU,GAAG,IAAI,UAAU,EAAE,CAAC;IACxC,IAAI,UAAU,CAAC,MAAM,GAAG,YAAY;IACpC,QAAQ,MAAM,OAAO,GAAG,UAAU,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IACxD,QAAQ,QAAQ,CAAC,GAAG,GAAG,OAAO,CAAC,CAAC;IAChC,KAAK,CAAC;IACN,IAAI,OAAO,UAAU,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;IAC1C,CAAC;;ICvCD,MAAM,KAAK,GAAG,kEAAkE,CAAC;IACjF;IACA,MAAMC,QAAM,GAAG,OAAO,UAAU,KAAK,WAAW,GAAG,EAAE,GAAG,IAAI,UAAU,CAAC,GAAG,CAAC,CAAC;IAC5E,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;IACvC,IAAIA,QAAM,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;IACpC,CAAC;IAiBM,MAAMC,QAAM,GAAG,CAAC,MAAM,KAAK;IAClC,IAAI,IAAI,YAAY,GAAG,MAAM,CAAC,MAAM,GAAG,IAAI,EAAE,GAAG,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,CAAC;IACnH,IAAI,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,KAAK,GAAG,EAAE;IAC3C,QAAQ,YAAY,EAAE,CAAC;IACvB,QAAQ,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,KAAK,GAAG,EAAE;IAC/C,YAAY,YAAY,EAAE,CAAC;IAC3B,SAAS;IACT,KAAK;IACL,IAAI,MAAM,WAAW,GAAG,IAAI,WAAW,CAAC,YAAY,CAAC,EAAE,KAAK,GAAG,IAAI,UAAU,CAAC,WAAW,CAAC,CAAC;IAC3F,IAAI,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC,EAAE;IACjC,QAAQ,QAAQ,GAAGD,QAAM,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;IAChD,QAAQ,QAAQ,GAAGA,QAAM,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IACpD,QAAQ,QAAQ,GAAGA,QAAM,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IACpD,QAAQ,QAAQ,GAAGA,QAAM,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IACpD,QAAQ,KAAK,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,QAAQ,IAAI,CAAC,KAAK,QAAQ,IAAI,CAAC,CAAC,CAAC;IACvD,QAAQ,KAAK,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,QAAQ,GAAG,EAAE,KAAK,CAAC,KAAK,QAAQ,IAAI,CAAC,CAAC,CAAC;IAC9D,QAAQ,KAAK,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,QAAQ,GAAG,CAAC,KAAK,CAAC,KAAK,QAAQ,GAAG,EAAE,CAAC,CAAC;IAC7D,KAAK;IACL,IAAI,OAAO,WAAW,CAAC;IACvB,CAAC;;ICvCD,MAAMF,uBAAqB,GAAG,OAAO,WAAW,KAAK,UAAU,CAAC;IAChE,MAAM,YAAY,GAAG,CAAC,aAAa,EAAE,UAAU,KAAK;IACpD,IAAI,IAAI,OAAO,aAAa,KAAK,QAAQ,EAAE;IAC3C,QAAQ,OAAO;IACf,YAAY,IAAI,EAAE,SAAS;IAC3B,YAAY,IAAI,EAAE,SAAS,CAAC,aAAa,EAAE,UAAU,CAAC;IACtD,SAAS,CAAC;IACV,KAAK;IACL,IAAI,MAAM,IAAI,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;IACzC,IAAI,IAAI,IAAI,KAAK,GAAG,EAAE;IACtB,QAAQ,OAAO;IACf,YAAY,IAAI,EAAE,SAAS;IAC3B,YAAY,IAAI,EAAE,kBAAkB,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,UAAU,CAAC;IAC5E,SAAS,CAAC;IACV,KAAK;IACL,IAAI,MAAM,UAAU,GAAG,oBAAoB,CAAC,IAAI,CAAC,CAAC;IAClD,IAAI,IAAI,CAAC,UAAU,EAAE;IACrB,QAAQ,OAAO,YAAY,CAAC;IAC5B,KAAK;IACL,IAAI,OAAO,aAAa,CAAC,MAAM,GAAG,CAAC;IACnC,UAAU;IACV,YAAY,IAAI,EAAE,oBAAoB,CAAC,IAAI,CAAC;IAC5C,YAAY,IAAI,EAAE,aAAa,CAAC,SAAS,CAAC,CAAC,CAAC;IAC5C,SAAS;IACT,UAAU;IACV,YAAY,IAAI,EAAE,oBAAoB,CAAC,IAAI,CAAC;IAC5C,SAAS,CAAC;IACV,CAAC,CAAC;IACF,MAAM,kBAAkB,GAAG,CAAC,IAAI,EAAE,UAAU,KAAK;IACjD,IAAI,IAAIA,uBAAqB,EAAE;IAC/B,QAAQ,MAAM,OAAO,GAAGG,QAAM,CAAC,IAAI,CAAC,CAAC;IACrC,QAAQ,OAAO,SAAS,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;IAC9C,KAAK;IACL,SAAS;IACT,QAAQ,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;IACtC,KAAK;IACL,CAAC,CAAC;IACF,MAAM,SAAS,GAAG,CAAC,IAAI,EAAE,UAAU,KAAK;IACxC,IAAI,QAAQ,UAAU;IACtB,QAAQ,KAAK,MAAM;IACnB,YAAY,OAAO,IAAI,YAAY,WAAW,GAAG,IAAI,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC;IACzE,QAAQ,KAAK,aAAa,CAAC;IAC3B,QAAQ;IACR,YAAY,OAAO,IAAI,CAAC;IACxB,KAAK;IACL,CAAC;;IC7CD,MAAM,SAAS,GAAG,MAAM,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC;IAC1C,MAAM,aAAa,GAAG,CAAC,OAAO,EAAE,QAAQ,KAAK;IAC7C;IACA,IAAI,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAClC,IAAI,MAAM,cAAc,GAAG,IAAI,KAAK,CAAC,MAAM,CAAC,CAAC;IAC7C,IAAI,IAAI,KAAK,GAAG,CAAC,CAAC;IAClB,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK;IACnC;IACA,QAAQ,YAAY,CAAC,MAAM,EAAE,KAAK,EAAE,aAAa,IAAI;IACrD,YAAY,cAAc,CAAC,CAAC,CAAC,GAAG,aAAa,CAAC;IAC9C,YAAY,IAAI,EAAE,KAAK,KAAK,MAAM,EAAE;IACpC,gBAAgB,QAAQ,CAAC,cAAc,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;IACzD,aAAa;IACb,SAAS,CAAC,CAAC;IACX,KAAK,CAAC,CAAC;IACP,CAAC,CAAC;IACF,MAAM,aAAa,GAAG,CAAC,cAAc,EAAE,UAAU,KAAK;IACtD,IAAI,MAAM,cAAc,GAAG,cAAc,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;IAC3D,IAAI,MAAM,OAAO,GAAG,EAAE,CAAC;IACvB,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,cAAc,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;IACpD,QAAQ,MAAM,aAAa,GAAG,YAAY,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC;IAC1E,QAAQ,OAAO,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;IACpC,QAAQ,IAAI,aAAa,CAAC,IAAI,KAAK,OAAO,EAAE;IAC5C,YAAY,MAAM;IAClB,SAAS;IACT,KAAK;IACL,IAAI,OAAO,OAAO,CAAC;IACnB,CAAC,CAAC;IACK,MAAMC,UAAQ,GAAG,CAAC;;IC9BzB;IACA;IACA;IACA;IACA;AACA;IACO,SAAS,OAAO,CAAC,GAAG,EAAE;IAC7B,EAAE,IAAI,GAAG,EAAE,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC;IAC7B,CAAC;AACD;IACA;IACA;IACA;IACA;IACA;IACA;IACA;AACA;IACA,SAAS,KAAK,CAAC,GAAG,EAAE;IACpB,EAAE,KAAK,IAAI,GAAG,IAAI,OAAO,CAAC,SAAS,EAAE;IACrC,IAAI,GAAG,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;IACtC,GAAG;IACH,EAAE,OAAO,GAAG,CAAC;IACb,CAAC;AACD;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;AACA;IACA,OAAO,CAAC,SAAS,CAAC,EAAE;IACpB,OAAO,CAAC,SAAS,CAAC,gBAAgB,GAAG,SAAS,KAAK,EAAE,EAAE,CAAC;IACxD,EAAE,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,IAAI,EAAE,CAAC;IAC1C,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,GAAG,KAAK,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,GAAG,KAAK,CAAC,IAAI,EAAE;IACpE,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC;IACd,EAAE,OAAO,IAAI,CAAC;IACd,CAAC,CAAC;AACF;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;AACA;IACA,OAAO,CAAC,SAAS,CAAC,IAAI,GAAG,SAAS,KAAK,EAAE,EAAE,CAAC;IAC5C,EAAE,SAAS,EAAE,GAAG;IAChB,IAAI,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;IACxB,IAAI,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;IAC9B,GAAG;AACH;IACA,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;IACb,EAAE,IAAI,CAAC,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;IACrB,EAAE,OAAO,IAAI,CAAC;IACd,CAAC,CAAC;AACF;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;AACA;IACA,OAAO,CAAC,SAAS,CAAC,GAAG;IACrB,OAAO,CAAC,SAAS,CAAC,cAAc;IAChC,OAAO,CAAC,SAAS,CAAC,kBAAkB;IACpC,OAAO,CAAC,SAAS,CAAC,mBAAmB,GAAG,SAAS,KAAK,EAAE,EAAE,CAAC;IAC3D,EAAE,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,IAAI,EAAE,CAAC;AAC1C;IACA;IACA,EAAE,IAAI,CAAC,IAAI,SAAS,CAAC,MAAM,EAAE;IAC7B,IAAI,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC;IACzB,IAAI,OAAO,IAAI,CAAC;IAChB,GAAG;AACH;IACA;IACA,EAAE,IAAI,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,GAAG,KAAK,CAAC,CAAC;IAC/C,EAAE,IAAI,CAAC,SAAS,EAAE,OAAO,IAAI,CAAC;AAC9B;IACA;IACA,EAAE,IAAI,CAAC,IAAI,SAAS,CAAC,MAAM,EAAE;IAC7B,IAAI,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,GAAG,KAAK,CAAC,CAAC;IACxC,IAAI,OAAO,IAAI,CAAC;IAChB,GAAG;AACH;IACA;IACA,EAAE,IAAI,EAAE,CAAC;IACT,EAAE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;IAC7C,IAAI,EAAE,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;IACtB,IAAI,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,EAAE;IACnC,MAAM,SAAS,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAC7B,MAAM,MAAM;IACZ,KAAK;IACL,GAAG;AACH;IACA;IACA;IACA,EAAE,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE;IAC9B,IAAI,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,GAAG,KAAK,CAAC,CAAC;IACxC,GAAG;AACH;IACA,EAAE,OAAO,IAAI,CAAC;IACd,CAAC,CAAC;AACF;IACA;IACA;IACA;IACA;IACA;IACA;IACA;AACA;IACA,OAAO,CAAC,SAAS,CAAC,IAAI,GAAG,SAAS,KAAK,CAAC;IACxC,EAAE,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,IAAI,EAAE,CAAC;AAC1C;IACA,EAAE,IAAI,IAAI,GAAG,IAAI,KAAK,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC;IAC5C,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,GAAG,KAAK,CAAC,CAAC;AAC/C;IACA,EAAE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;IAC7C,IAAI,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;IAC/B,GAAG;AACH;IACA,EAAE,IAAI,SAAS,EAAE;IACjB,IAAI,SAAS,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IACnC,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,GAAG,GAAG,EAAE,EAAE,CAAC,EAAE;IAC1D,MAAM,SAAS,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IACrC,KAAK;IACL,GAAG;AACH;IACA,EAAE,OAAO,IAAI,CAAC;IACd,CAAC,CAAC;AACF;IACA;IACA,OAAO,CAAC,SAAS,CAAC,YAAY,GAAG,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC;AACxD;IACA;IACA;IACA;IACA;IACA;IACA;IACA;AACA;IACA,OAAO,CAAC,SAAS,CAAC,SAAS,GAAG,SAAS,KAAK,CAAC;IAC7C,EAAE,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,IAAI,EAAE,CAAC;IAC1C,EAAE,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;IAC5C,CAAC,CAAC;AACF;IACA;IACA;IACA;IACA;IACA;IACA;IACA;AACA;IACA,OAAO,CAAC,SAAS,CAAC,YAAY,GAAG,SAAS,KAAK,CAAC;IAChD,EAAE,OAAO,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC;IACzC,CAAC;;ICxKM,MAAM,cAAc,GAAG,CAAC,MAAM;IACrC,IAAI,IAAI,OAAO,IAAI,KAAK,WAAW,EAAE;IACrC,QAAQ,OAAO,IAAI,CAAC;IACpB,KAAK;IACL,SAAS,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE;IAC5C,QAAQ,OAAO,MAAM,CAAC;IACtB,KAAK;IACL,SAAS;IACT,QAAQ,OAAO,QAAQ,CAAC,aAAa,CAAC,EAAE,CAAC;IACzC,KAAK;IACL,CAAC,GAAG;;ICTG,SAAS,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,EAAE;IACnC,IAAI,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,KAAK;IACnC,QAAQ,IAAI,GAAG,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE;IACnC,YAAY,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;IAC5B,SAAS;IACT,QAAQ,OAAO,GAAG,CAAC;IACnB,KAAK,EAAE,EAAE,CAAC,CAAC;IACX,CAAC;IACD;IACA,MAAM,kBAAkB,GAAG,UAAU,CAAC;IACtC,MAAM,oBAAoB,GAAG,YAAY,CAAC;IACnC,SAAS,qBAAqB,CAAC,GAAG,EAAE,IAAI,EAAE;IACjD,IAAI,IAAI,IAAI,CAAC,eAAe,EAAE;IAC9B,QAAQ,GAAG,CAAC,YAAY,GAAG,kBAAkB,CAAC,IAAI,CAACC,cAAU,CAAC,CAAC;IAC/D,QAAQ,GAAG,CAAC,cAAc,GAAG,oBAAoB,CAAC,IAAI,CAACA,cAAU,CAAC,CAAC;IACnE,KAAK;IACL,SAAS;IACT,QAAQ,GAAG,CAAC,YAAY,GAAG,UAAU,CAAC,IAAI,CAACA,cAAU,CAAC,CAAC;IACvD,QAAQ,GAAG,CAAC,cAAc,GAAG,YAAY,CAAC,IAAI,CAACA,cAAU,CAAC,CAAC;IAC3D,KAAK;IACL,CAAC;IACD;IACA,MAAM,eAAe,GAAG,IAAI,CAAC;IAC7B;IACO,SAAS,UAAU,CAAC,GAAG,EAAE;IAChC,IAAI,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE;IACjC,QAAQ,OAAO,UAAU,CAAC,GAAG,CAAC,CAAC;IAC/B,KAAK;IACL;IACA,IAAI,OAAO,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,UAAU,IAAI,GAAG,CAAC,IAAI,IAAI,eAAe,CAAC,CAAC;IACrE,CAAC;IACD,SAAS,UAAU,CAAC,GAAG,EAAE;IACzB,IAAI,IAAI,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG,CAAC,CAAC;IAC1B,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;IAChD,QAAQ,CAAC,GAAG,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;IAC9B,QAAQ,IAAI,CAAC,GAAG,IAAI,EAAE;IACtB,YAAY,MAAM,IAAI,CAAC,CAAC;IACxB,SAAS;IACT,aAAa,IAAI,CAAC,GAAG,KAAK,EAAE;IAC5B,YAAY,MAAM,IAAI,CAAC,CAAC;IACxB,SAAS;IACT,aAAa,IAAI,CAAC,GAAG,MAAM,IAAI,CAAC,IAAI,MAAM,EAAE;IAC5C,YAAY,MAAM,IAAI,CAAC,CAAC;IACxB,SAAS;IACT,aAAa;IACb,YAAY,CAAC,EAAE,CAAC;IAChB,YAAY,MAAM,IAAI,CAAC,CAAC;IACxB,SAAS;IACT,KAAK;IACL,IAAI,OAAO,MAAM,CAAC;IAClB;;IChDA,MAAM,cAAc,SAAS,KAAK,CAAC;IACnC,IAAI,WAAW,CAAC,MAAM,EAAE,WAAW,EAAE,OAAO,EAAE;IAC9C,QAAQ,KAAK,CAAC,MAAM,CAAC,CAAC;IACtB,QAAQ,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;IACvC,QAAQ,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IAC/B,QAAQ,IAAI,CAAC,IAAI,GAAG,gBAAgB,CAAC;IACrC,KAAK;IACL,CAAC;IACM,MAAM,SAAS,SAAS,OAAO,CAAC;IACvC;IACA;IACA;IACA;IACA;IACA;IACA,IAAI,WAAW,CAAC,IAAI,EAAE;IACtB,QAAQ,KAAK,EAAE,CAAC;IAChB,QAAQ,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;IAC9B,QAAQ,qBAAqB,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IAC1C,QAAQ,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACzB,QAAQ,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;IAChC,QAAQ,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC;IAC7B,QAAQ,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;IAClC,KAAK;IACL;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA,IAAI,OAAO,CAAC,MAAM,EAAE,WAAW,EAAE,OAAO,EAAE;IAC1C,QAAQ,KAAK,CAAC,YAAY,CAAC,OAAO,EAAE,IAAI,cAAc,CAAC,MAAM,EAAE,WAAW,EAAE,OAAO,CAAC,CAAC,CAAC;IACtF,QAAQ,OAAO,IAAI,CAAC;IACpB,KAAK;IACL;IACA;IACA;IACA;IACA;IACA,IAAI,IAAI,GAAG;IACX,QAAQ,IAAI,QAAQ,KAAK,IAAI,CAAC,UAAU,IAAI,EAAE,KAAK,IAAI,CAAC,UAAU,EAAE;IACpE,YAAY,IAAI,CAAC,UAAU,GAAG,SAAS,CAAC;IACxC,YAAY,IAAI,CAAC,MAAM,EAAE,CAAC;IAC1B,SAAS;IACT,QAAQ,OAAO,IAAI,CAAC;IACpB,KAAK;IACL;IACA;IACA;IACA;IACA;IACA,IAAI,KAAK,GAAG;IACZ,QAAQ,IAAI,SAAS,KAAK,IAAI,CAAC,UAAU,IAAI,MAAM,KAAK,IAAI,CAAC,UAAU,EAAE;IACzE,YAAY,IAAI,CAAC,OAAO,EAAE,CAAC;IAC3B,YAAY,IAAI,CAAC,OAAO,EAAE,CAAC;IAC3B,SAAS;IACT,QAAQ,OAAO,IAAI,CAAC;IACpB,KAAK;IACL;IACA;IACA;IACA;IACA;IACA;IACA,IAAI,IAAI,CAAC,OAAO,EAAE;IAClB,QAAQ,IAAI,MAAM,KAAK,IAAI,CAAC,UAAU,EAAE;IACxC,YAAY,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IAChC,SAGS;IACT,KAAK;IACL;IACA;IACA;IACA;IACA;IACA,IAAI,MAAM,GAAG;IACb,QAAQ,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC;IACjC,QAAQ,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;IAC7B,QAAQ,KAAK,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;IACnC,KAAK;IACL;IACA;IACA;IACA;IACA;IACA;IACA,IAAI,MAAM,CAAC,IAAI,EAAE;IACjB,QAAQ,MAAM,MAAM,GAAG,YAAY,CAAC,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;IAClE,QAAQ,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;IAC9B,KAAK;IACL;IACA;IACA;IACA;IACA;IACA,IAAI,QAAQ,CAAC,MAAM,EAAE;IACrB,QAAQ,KAAK,CAAC,YAAY,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;IAC7C,KAAK;IACL;IACA;IACA;IACA;IACA;IACA,IAAI,OAAO,CAAC,OAAO,EAAE;IACrB,QAAQ,IAAI,CAAC,UAAU,GAAG,QAAQ,CAAC;IACnC,QAAQ,KAAK,CAAC,YAAY,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IAC7C,KAAK;IACL;;ICnHA;IAEA,MAAM,QAAQ,GAAG,kEAAkE,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,MAAM,GAAG,EAAE,EAAE,GAAG,GAAG,EAAE,CAAC;IACrH,IAAI,IAAI,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC;IAC1B;IACA;IACA;IACA;IACA;IACA;IACA;IACO,SAASC,QAAM,CAAC,GAAG,EAAE;IAC5B,IAAI,IAAI,OAAO,GAAG,EAAE,CAAC;IACrB,IAAI,GAAG;IACP,QAAQ,OAAO,GAAG,QAAQ,CAAC,GAAG,GAAG,MAAM,CAAC,GAAG,OAAO,CAAC;IACnD,QAAQ,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,MAAM,CAAC,CAAC;IACvC,KAAK,QAAQ,GAAG,GAAG,CAAC,EAAE;IACtB,IAAI,OAAO,OAAO,CAAC;IACnB,CAAC;IAeD;IACA;IACA;IACA;IACA;IACA;IACO,SAAS,KAAK,GAAG;IACxB,IAAI,MAAM,GAAG,GAAGA,QAAM,CAAC,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC;IACpC,IAAI,IAAI,GAAG,KAAK,IAAI;IACpB,QAAQ,OAAO,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,GAAG,CAAC;IACpC,IAAI,OAAO,GAAG,GAAG,GAAG,GAAGA,QAAM,CAAC,IAAI,EAAE,CAAC,CAAC;IACtC,CAAC;IACD;IACA;IACA;IACA,OAAO,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE;IACtB,IAAI,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;;ICjDxB;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACO,SAAS,MAAM,CAAC,GAAG,EAAE;IAC5B,IAAI,IAAI,GAAG,GAAG,EAAE,CAAC;IACjB,IAAI,KAAK,IAAI,CAAC,IAAI,GAAG,EAAE;IACvB,QAAQ,IAAI,GAAG,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE;IACnC,YAAY,IAAI,GAAG,CAAC,MAAM;IAC1B,gBAAgB,GAAG,IAAI,GAAG,CAAC;IAC3B,YAAY,GAAG,IAAI,kBAAkB,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,kBAAkB,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IAC5E,SAAS;IACT,KAAK;IACL,IAAI,OAAO,GAAG,CAAC;IACf,CAAC;IACD;IACA;IACA;IACA;IACA;IACA;IACO,SAAS,MAAM,CAAC,EAAE,EAAE;IAC3B,IAAI,IAAI,GAAG,GAAG,EAAE,CAAC;IACjB,IAAI,IAAI,KAAK,GAAG,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAC9B,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;IAClD,QAAQ,IAAI,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACvC,QAAQ,GAAG,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,kBAAkB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;IACvE,KAAK;IACL,IAAI,OAAO,GAAG,CAAC;IACf;;ICjCA;IACA,IAAI,KAAK,GAAG,KAAK,CAAC;IAClB,IAAI;IACJ,IAAI,KAAK,GAAG,OAAO,cAAc,KAAK,WAAW;IACjD,QAAQ,iBAAiB,IAAI,IAAI,cAAc,EAAE,CAAC;IAClD,CAAC;IACD,OAAO,GAAG,EAAE;IACZ;IACA;IACA,CAAC;IACM,MAAM,OAAO,GAAG,KAAK;;ICV5B;IAGO,SAAS,GAAG,CAAC,IAAI,EAAE;IAC1B,IAAI,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;IACjC;IACA,IAAI,IAAI;IACR,QAAQ,IAAI,WAAW,KAAK,OAAO,cAAc,KAAK,CAAC,OAAO,IAAI,OAAO,CAAC,EAAE;IAC5E,YAAY,OAAO,IAAI,cAAc,EAAE,CAAC;IACxC,SAAS;IACT,KAAK;IACL,IAAI,OAAO,CAAC,EAAE,GAAG;IACjB,IAAI,IAAI,CAAC,OAAO,EAAE;IAClB,QAAQ,IAAI;IACZ,YAAY,OAAO,IAAID,cAAU,CAAC,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC;IAC9F,SAAS;IACT,QAAQ,OAAO,CAAC,EAAE,GAAG;IACrB,KAAK;IACL;;ICVA,SAAS,KAAK,GAAG,GAAG;IACpB,MAAM,OAAO,GAAG,CAAC,YAAY;IAC7B,IAAI,MAAM,GAAG,GAAG,IAAIE,GAAc,CAAC;IACnC,QAAQ,OAAO,EAAE,KAAK;IACtB,KAAK,CAAC,CAAC;IACP,IAAI,OAAO,IAAI,IAAI,GAAG,CAAC,YAAY,CAAC;IACpC,CAAC,GAAG,CAAC;IACE,MAAM,OAAO,SAAS,SAAS,CAAC;IACvC;IACA;IACA;IACA;IACA;IACA;IACA,IAAI,WAAW,CAAC,IAAI,EAAE;IACtB,QAAQ,KAAK,CAAC,IAAI,CAAC,CAAC;IACpB,QAAQ,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;IAC7B,QAAQ,IAAI,OAAO,QAAQ,KAAK,WAAW,EAAE;IAC7C,YAAY,MAAM,KAAK,GAAG,QAAQ,KAAK,QAAQ,CAAC,QAAQ,CAAC;IACzD,YAAY,IAAI,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC;IACrC;IACA,YAAY,IAAI,CAAC,IAAI,EAAE;IACvB,gBAAgB,IAAI,GAAG,KAAK,GAAG,KAAK,GAAG,IAAI,CAAC;IAC5C,aAAa;IACb,YAAY,IAAI,CAAC,EAAE;IACnB,gBAAgB,CAAC,OAAO,QAAQ,KAAK,WAAW;IAChD,oBAAoB,IAAI,CAAC,QAAQ,KAAK,QAAQ,CAAC,QAAQ;IACvD,oBAAoB,IAAI,KAAK,IAAI,CAAC,IAAI,CAAC;IACvC,YAAY,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,MAAM,KAAK,KAAK,CAAC;IAC5C,SAAS;IACT;IACA;IACA;IACA,QAAQ,MAAM,WAAW,GAAG,IAAI,IAAI,IAAI,CAAC,WAAW,CAAC;IACrD,QAAQ,IAAI,CAAC,cAAc,GAAG,OAAO,IAAI,CAAC,WAAW,CAAC;IACtD,KAAK;IACL;IACA;IACA;IACA,IAAI,IAAI,IAAI,GAAG;IACf,QAAQ,OAAO,SAAS,CAAC;IACzB,KAAK;IACL;IACA;IACA;IACA;IACA;IACA;IACA,IAAI,MAAM,GAAG;IACb,QAAQ,IAAI,CAAC,IAAI,EAAE,CAAC;IACpB,KAAK;IACL;IACA;IACA;IACA;IACA;IACA;IACA,IAAI,KAAK,CAAC,OAAO,EAAE;IACnB,QAAQ,IAAI,CAAC,UAAU,GAAG,SAAS,CAAC;IACpC,QAAQ,MAAM,KAAK,GAAG,MAAM;IAC5B,YAAY,IAAI,CAAC,UAAU,GAAG,QAAQ,CAAC;IACvC,YAAY,OAAO,EAAE,CAAC;IACtB,SAAS,CAAC;IACV,QAAQ,IAAI,IAAI,CAAC,OAAO,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;IAC5C,YAAY,IAAI,KAAK,GAAG,CAAC,CAAC;IAC1B,YAAY,IAAI,IAAI,CAAC,OAAO,EAAE;IAC9B,gBAAgB,KAAK,EAAE,CAAC;IACxB,gBAAgB,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,YAAY;IACtD,oBAAoB,EAAE,KAAK,IAAI,KAAK,EAAE,CAAC;IACvC,iBAAiB,CAAC,CAAC;IACnB,aAAa;IACb,YAAY,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;IAChC,gBAAgB,KAAK,EAAE,CAAC;IACxB,gBAAgB,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,YAAY;IAC/C,oBAAoB,EAAE,KAAK,IAAI,KAAK,EAAE,CAAC;IACvC,iBAAiB,CAAC,CAAC;IACnB,aAAa;IACb,SAAS;IACT,aAAa;IACb,YAAY,KAAK,EAAE,CAAC;IACpB,SAAS;IACT,KAAK;IACL;IACA;IACA;IACA;IACA;IACA,IAAI,IAAI,GAAG;IACX,QAAQ,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;IAC5B,QAAQ,IAAI,CAAC,MAAM,EAAE,CAAC;IACtB,QAAQ,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;IAClC,KAAK;IACL;IACA;IACA;IACA;IACA;IACA,IAAI,MAAM,CAAC,IAAI,EAAE;IACjB,QAAQ,MAAM,QAAQ,GAAG,MAAM,IAAI;IACnC;IACA,YAAY,IAAI,SAAS,KAAK,IAAI,CAAC,UAAU,IAAI,MAAM,CAAC,IAAI,KAAK,MAAM,EAAE;IACzE,gBAAgB,IAAI,CAAC,MAAM,EAAE,CAAC;IAC9B,aAAa;IACb;IACA,YAAY,IAAI,OAAO,KAAK,MAAM,CAAC,IAAI,EAAE;IACzC,gBAAgB,IAAI,CAAC,OAAO,CAAC,EAAE,WAAW,EAAE,gCAAgC,EAAE,CAAC,CAAC;IAChF,gBAAgB,OAAO,KAAK,CAAC;IAC7B,aAAa;IACb;IACA,YAAY,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;IAClC,SAAS,CAAC;IACV;IACA,QAAQ,aAAa,CAAC,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IACtE;IACA,QAAQ,IAAI,QAAQ,KAAK,IAAI,CAAC,UAAU,EAAE;IAC1C;IACA,YAAY,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;IACjC,YAAY,IAAI,CAAC,YAAY,CAAC,cAAc,CAAC,CAAC;IAC9C,YAAY,IAAI,MAAM,KAAK,IAAI,CAAC,UAAU,EAAE;IAC5C,gBAAgB,IAAI,CAAC,IAAI,EAAE,CAAC;IAC5B,aAEa;IACb,SAAS;IACT,KAAK;IACL;IACA;IACA;IACA;IACA;IACA,IAAI,OAAO,GAAG;IACd,QAAQ,MAAM,KAAK,GAAG,MAAM;IAC5B,YAAY,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC;IAC5C,SAAS,CAAC;IACV,QAAQ,IAAI,MAAM,KAAK,IAAI,CAAC,UAAU,EAAE;IACxC,YAAY,KAAK,EAAE,CAAC;IACpB,SAAS;IACT,aAAa;IACb;IACA;IACA,YAAY,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;IACrC,SAAS;IACT,KAAK;IACL;IACA;IACA;IACA;IACA;IACA;IACA;IACA,IAAI,KAAK,CAAC,OAAO,EAAE;IACnB,QAAQ,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;IAC9B,QAAQ,aAAa,CAAC,OAAO,EAAE,IAAI,IAAI;IACvC,YAAY,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,MAAM;IACrC,gBAAgB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;IACrC,gBAAgB,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;IAC3C,aAAa,CAAC,CAAC;IACf,SAAS,CAAC,CAAC;IACX,KAAK;IACL;IACA;IACA;IACA;IACA;IACA,IAAI,GAAG,GAAG;IACV,QAAQ,IAAI,KAAK,GAAG,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC;IACrC,QAAQ,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,OAAO,GAAG,MAAM,CAAC;IAC3D,QAAQ,IAAI,IAAI,GAAG,EAAE,CAAC;IACtB;IACA,QAAQ,IAAI,KAAK,KAAK,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE;IACnD,YAAY,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,GAAG,KAAK,EAAE,CAAC;IACtD,SAAS;IACT,QAAQ,IAAI,CAAC,IAAI,CAAC,cAAc,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE;IAChD,YAAY,KAAK,CAAC,GAAG,GAAG,CAAC,CAAC;IAC1B,SAAS;IACT;IACA,QAAQ,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI;IAC1B,aAAa,CAAC,OAAO,KAAK,MAAM,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,GAAG;IAClE,iBAAiB,MAAM,KAAK,MAAM,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,EAAE;IACvE,YAAY,IAAI,GAAG,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;IACxC,SAAS;IACT,QAAQ,MAAM,YAAY,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;IAC3C,QAAQ,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC;IAC5D,QAAQ,QAAQ,MAAM;IACtB,YAAY,KAAK;IACjB,aAAa,IAAI,GAAG,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,GAAG,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC;IACxE,YAAY,IAAI;IAChB,YAAY,IAAI,CAAC,IAAI,CAAC,IAAI;IAC1B,aAAa,YAAY,CAAC,MAAM,GAAG,GAAG,GAAG,YAAY,GAAG,EAAE,CAAC,EAAE;IAC7D,KAAK;IACL;IACA;IACA;IACA;IACA;IACA;IACA,IAAI,OAAO,CAAC,IAAI,GAAG,EAAE,EAAE;IACvB,QAAQ,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;IACrE,QAAQ,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE,EAAE,IAAI,CAAC,CAAC;IAC7C,KAAK;IACL;IACA;IACA;IACA;IACA;IACA;IACA;IACA,IAAI,OAAO,CAAC,IAAI,EAAE,EAAE,EAAE;IACtB,QAAQ,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC;IACjC,YAAY,MAAM,EAAE,MAAM;IAC1B,YAAY,IAAI,EAAE,IAAI;IACtB,SAAS,CAAC,CAAC;IACX,QAAQ,GAAG,CAAC,EAAE,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;IAC9B,QAAQ,GAAG,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,SAAS,EAAE,OAAO,KAAK;IAChD,YAAY,IAAI,CAAC,OAAO,CAAC,gBAAgB,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;IAC/D,SAAS,CAAC,CAAC;IACX,KAAK;IACL;IACA;IACA;IACA;IACA;IACA,IAAI,MAAM,GAAG;IACb,QAAQ,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;IACnC,QAAQ,GAAG,CAAC,EAAE,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IAC/C,QAAQ,GAAG,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,SAAS,EAAE,OAAO,KAAK;IAChD,YAAY,IAAI,CAAC,OAAO,CAAC,gBAAgB,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;IAC/D,SAAS,CAAC,CAAC;IACX,QAAQ,IAAI,CAAC,OAAO,GAAG,GAAG,CAAC;IAC3B,KAAK;IACL,CAAC;IACM,MAAM,OAAO,SAAS,OAAO,CAAC;IACrC;IACA;IACA;IACA;IACA;IACA;IACA,IAAI,WAAW,CAAC,GAAG,EAAE,IAAI,EAAE;IAC3B,QAAQ,KAAK,EAAE,CAAC;IAChB,QAAQ,qBAAqB,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IAC1C,QAAQ,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACzB,QAAQ,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,IAAI,KAAK,CAAC;IAC3C,QAAQ,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;IACvB,QAAQ,IAAI,CAAC,KAAK,GAAG,KAAK,KAAK,IAAI,CAAC,KAAK,CAAC;IAC1C,QAAQ,IAAI,CAAC,IAAI,GAAG,SAAS,KAAK,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IAC/D,QAAQ,IAAI,CAAC,MAAM,EAAE,CAAC;IACtB,KAAK;IACL;IACA;IACA;IACA;IACA;IACA,IAAI,MAAM,GAAG;IACb,QAAQ,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,YAAY,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,oBAAoB,EAAE,WAAW,CAAC,CAAC;IACtI,QAAQ,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;IACtC,QAAQ,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;IACtC,QAAQ,MAAM,GAAG,IAAI,IAAI,CAAC,GAAG,GAAG,IAAIA,GAAc,CAAC,IAAI,CAAC,CAAC,CAAC;IAC1D,QAAQ,IAAI;IACZ,YAAY,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;IACxD,YAAY,IAAI;IAChB,gBAAgB,IAAI,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE;IAC5C,oBAAoB,GAAG,CAAC,qBAAqB,IAAI,GAAG,CAAC,qBAAqB,CAAC,IAAI,CAAC,CAAC;IACjF,oBAAoB,KAAK,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE;IAC1D,wBAAwB,IAAI,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE;IACtE,4BAA4B,GAAG,CAAC,gBAAgB,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC;IAC/E,yBAAyB;IACzB,qBAAqB;IACrB,iBAAiB;IACjB,aAAa;IACb,YAAY,OAAO,CAAC,EAAE,GAAG;IACzB,YAAY,IAAI,MAAM,KAAK,IAAI,CAAC,MAAM,EAAE;IACxC,gBAAgB,IAAI;IACpB,oBAAoB,GAAG,CAAC,gBAAgB,CAAC,cAAc,EAAE,0BAA0B,CAAC,CAAC;IACrF,iBAAiB;IACjB,gBAAgB,OAAO,CAAC,EAAE,GAAG;IAC7B,aAAa;IACb,YAAY,IAAI;IAChB,gBAAgB,GAAG,CAAC,gBAAgB,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;IACtD,aAAa;IACb,YAAY,OAAO,CAAC,EAAE,GAAG;IACzB;IACA,YAAY,IAAI,iBAAiB,IAAI,GAAG,EAAE;IAC1C,gBAAgB,GAAG,CAAC,eAAe,GAAG,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC;IAChE,aAAa;IACb,YAAY,IAAI,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE;IAC1C,gBAAgB,GAAG,CAAC,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC;IACvD,aAAa;IACb,YAAY,GAAG,CAAC,kBAAkB,GAAG,MAAM;IAC3C,gBAAgB,IAAI,CAAC,KAAK,GAAG,CAAC,UAAU;IACxC,oBAAoB,OAAO;IAC3B,gBAAgB,IAAI,GAAG,KAAK,GAAG,CAAC,MAAM,IAAI,IAAI,KAAK,GAAG,CAAC,MAAM,EAAE;IAC/D,oBAAoB,IAAI,CAAC,MAAM,EAAE,CAAC;IAClC,iBAAiB;IACjB,qBAAqB;IACrB;IACA;IACA,oBAAoB,IAAI,CAAC,YAAY,CAAC,MAAM;IAC5C,wBAAwB,IAAI,CAAC,OAAO,CAAC,OAAO,GAAG,CAAC,MAAM,KAAK,QAAQ,GAAG,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IACtF,qBAAqB,EAAE,CAAC,CAAC,CAAC;IAC1B,iBAAiB;IACjB,aAAa,CAAC;IACd,YAAY,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAChC,SAAS;IACT,QAAQ,OAAO,CAAC,EAAE;IAClB;IACA;IACA;IACA,YAAY,IAAI,CAAC,YAAY,CAAC,MAAM;IACpC,gBAAgB,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;IAChC,aAAa,EAAE,CAAC,CAAC,CAAC;IAClB,YAAY,OAAO;IACnB,SAAS;IACT,QAAQ,IAAI,OAAO,QAAQ,KAAK,WAAW,EAAE;IAC7C,YAAY,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC;IACjD,YAAY,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC;IAChD,SAAS;IACT,KAAK;IACL;IACA;IACA;IACA;IACA;IACA,IAAI,OAAO,CAAC,GAAG,EAAE;IACjB,QAAQ,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;IAClD,QAAQ,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IAC3B,KAAK;IACL;IACA;IACA;IACA;IACA;IACA,IAAI,OAAO,CAAC,SAAS,EAAE;IACvB,QAAQ,IAAI,WAAW,KAAK,OAAO,IAAI,CAAC,GAAG,IAAI,IAAI,KAAK,IAAI,CAAC,GAAG,EAAE;IAClE,YAAY,OAAO;IACnB,SAAS;IACT,QAAQ,IAAI,CAAC,GAAG,CAAC,kBAAkB,GAAG,KAAK,CAAC;IAC5C,QAAQ,IAAI,SAAS,EAAE;IACvB,YAAY,IAAI;IAChB,gBAAgB,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC;IACjC,aAAa;IACb,YAAY,OAAO,CAAC,EAAE,GAAG;IACzB,SAAS;IACT,QAAQ,IAAI,OAAO,QAAQ,KAAK,WAAW,EAAE;IAC7C,YAAY,OAAO,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAChD,SAAS;IACT,QAAQ,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC;IACxB,KAAK;IACL;IACA;IACA;IACA;IACA;IACA,IAAI,MAAM,GAAG;IACb,QAAQ,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC;IAC3C,QAAQ,IAAI,IAAI,KAAK,IAAI,EAAE;IAC3B,YAAY,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IAC5C,YAAY,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC;IACzC,YAAY,IAAI,CAAC,OAAO,EAAE,CAAC;IAC3B,SAAS;IACT,KAAK;IACL;IACA;IACA;IACA;IACA;IACA,IAAI,KAAK,GAAG;IACZ,QAAQ,IAAI,CAAC,OAAO,EAAE,CAAC;IACvB,KAAK;IACL,CAAC;IACD,OAAO,CAAC,aAAa,GAAG,CAAC,CAAC;IAC1B,OAAO,CAAC,QAAQ,GAAG,EAAE,CAAC;IACtB;IACA;IACA;IACA;IACA;IACA,IAAI,OAAO,QAAQ,KAAK,WAAW,EAAE;IACrC;IACA,IAAI,IAAI,OAAO,WAAW,KAAK,UAAU,EAAE;IAC3C;IACA,QAAQ,WAAW,CAAC,UAAU,EAAE,aAAa,CAAC,CAAC;IAC/C,KAAK;IACL,SAAS,IAAI,OAAO,gBAAgB,KAAK,UAAU,EAAE;IACrD,QAAQ,MAAM,gBAAgB,GAAG,YAAY,IAAIF,cAAU,GAAG,UAAU,GAAG,QAAQ,CAAC;IACpF,QAAQ,gBAAgB,CAAC,gBAAgB,EAAE,aAAa,EAAE,KAAK,CAAC,CAAC;IACjE,KAAK;IACL,CAAC;IACD,SAAS,aAAa,GAAG;IACzB,IAAI,KAAK,IAAI,CAAC,IAAI,OAAO,CAAC,QAAQ,EAAE;IACpC,QAAQ,IAAI,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE;IAChD,YAAY,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC;IACxC,SAAS;IACT,KAAK;IACL;;ICjZO,MAAM,QAAQ,GAAG,CAAC,MAAM;IAC/B,IAAI,MAAM,kBAAkB,GAAG,OAAO,OAAO,KAAK,UAAU,IAAI,OAAO,OAAO,CAAC,OAAO,KAAK,UAAU,CAAC;IACtG,IAAI,IAAI,kBAAkB,EAAE;IAC5B,QAAQ,OAAO,EAAE,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAChD,KAAK;IACL,SAAS;IACT,QAAQ,OAAO,CAAC,EAAE,EAAE,YAAY,KAAK,YAAY,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;IACzD,KAAK;IACL,CAAC,GAAG,CAAC;IACE,MAAMG,WAAS,GAAGH,cAAU,CAAC,SAAS,IAAIA,cAAU,CAAC,YAAY,CAAC;IAClE,MAAM,qBAAqB,GAAG,IAAI,CAAC;IACnC,MAAM,iBAAiB,GAAG,aAAa;;ICN9C;IACA,MAAM,aAAa,GAAG,OAAO,SAAS,KAAK,WAAW;IACtD,IAAI,OAAO,SAAS,CAAC,OAAO,KAAK,QAAQ;IACzC,IAAI,SAAS,CAAC,OAAO,CAAC,WAAW,EAAE,KAAK,aAAa,CAAC;IAC/C,MAAM,EAAE,SAAS,SAAS,CAAC;IAClC;IACA;IACA;IACA;IACA;IACA;IACA,IAAI,WAAW,CAAC,IAAI,EAAE;IACtB,QAAQ,KAAK,CAAC,IAAI,CAAC,CAAC;IACpB,QAAQ,IAAI,CAAC,cAAc,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC;IAChD,KAAK;IACL;IACA;IACA;IACA;IACA;IACA,IAAI,IAAI,IAAI,GAAG;IACf,QAAQ,OAAO,WAAW,CAAC;IAC3B,KAAK;IACL;IACA;IACA;IACA;IACA;IACA,IAAI,MAAM,GAAG;IACb,QAAQ,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,EAAE;IAC3B;IACA,YAAY,OAAO;IACnB,SAAS;IACT,QAAQ,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IAC/B,QAAQ,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC;IAC9C;IACA,QAAQ,MAAM,IAAI,GAAG,aAAa;IAClC,cAAc,EAAE;IAChB,cAAc,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,EAAE,mBAAmB,EAAE,KAAK,EAAE,KAAK,EAAE,YAAY,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,oBAAoB,EAAE,cAAc,EAAE,iBAAiB,EAAE,QAAQ,EAAE,YAAY,EAAE,QAAQ,EAAE,qBAAqB,CAAC,CAAC;IACnO,QAAQ,IAAI,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE;IACpC,YAAY,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC;IAClD,SAAS;IACT,QAAQ,IAAI;IACZ,YAAY,IAAI,CAAC,EAAE;IACnB,gBAAgB,qBAAqB,IAAI,CAAC,aAAa;IACvD,sBAAsB,SAAS;IAC/B,0BAA0B,IAAIG,WAAS,CAAC,GAAG,EAAE,SAAS,CAAC;IACvD,0BAA0B,IAAIA,WAAS,CAAC,GAAG,CAAC;IAC5C,sBAAsB,IAAIA,WAAS,CAAC,GAAG,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC;IAC1D,SAAS;IACT,QAAQ,OAAO,GAAG,EAAE;IACpB,YAAY,OAAO,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;IACnD,SAAS;IACT,QAAQ,IAAI,CAAC,EAAE,CAAC,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC,UAAU,IAAI,iBAAiB,CAAC;IACzE,QAAQ,IAAI,CAAC,iBAAiB,EAAE,CAAC;IACjC,KAAK;IACL;IACA;IACA;IACA;IACA;IACA,IAAI,iBAAiB,GAAG;IACxB,QAAQ,IAAI,CAAC,EAAE,CAAC,MAAM,GAAG,MAAM;IAC/B,YAAY,IAAI,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;IACrC,gBAAgB,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;IACxC,aAAa;IACb,YAAY,IAAI,CAAC,MAAM,EAAE,CAAC;IAC1B,SAAS,CAAC;IACV,QAAQ,IAAI,CAAC,EAAE,CAAC,OAAO,GAAG,UAAU,IAAI,IAAI,CAAC,OAAO,CAAC;IACrD,YAAY,WAAW,EAAE,6BAA6B;IACtD,YAAY,OAAO,EAAE,UAAU;IAC/B,SAAS,CAAC,CAAC;IACX,QAAQ,IAAI,CAAC,EAAE,CAAC,SAAS,GAAG,EAAE,IAAI,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;IACvD,QAAQ,IAAI,CAAC,EAAE,CAAC,OAAO,GAAG,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,iBAAiB,EAAE,CAAC,CAAC,CAAC;IAClE,KAAK;IACL;IACA;IACA;IACA;IACA;IACA;IACA,IAAI,KAAK,CAAC,OAAO,EAAE;IACnB,QAAQ,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;IAC9B;IACA;IACA,QAAQ,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;IACjD,YAAY,MAAM,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;IACtC,YAAY,MAAM,UAAU,GAAG,CAAC,KAAK,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC;IACxD,YAAY,YAAY,CAAC,MAAM,EAAE,IAAI,CAAC,cAAc,EAAE,IAAI,IAAI;IAC9D;IACA,gBAAgB,MAAM,IAAI,GAAG,EAAE,CAAC;IAchC;IACA;IACA;IACA,gBAAgB,IAAI;IACpB,oBAAoB,IAAI,qBAAqB,EAAE;IAC/C;IACA,wBAAwB,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC3C,qBAGqB;IACrB,iBAAiB;IACjB,gBAAgB,OAAO,CAAC,EAAE;IAC1B,iBAAiB;IACjB,gBAAgB,IAAI,UAAU,EAAE;IAChC;IACA;IACA,oBAAoB,QAAQ,CAAC,MAAM;IACnC,wBAAwB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;IAC7C,wBAAwB,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;IACnD,qBAAqB,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;IAC1C,iBAAiB;IACjB,aAAa,CAAC,CAAC;IACf,SAAS;IACT,KAAK;IACL;IACA;IACA;IACA;IACA;IACA,IAAI,OAAO,GAAG;IACd,QAAQ,IAAI,OAAO,IAAI,CAAC,EAAE,KAAK,WAAW,EAAE;IAC5C,YAAY,IAAI,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC;IAC5B,YAAY,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC;IAC3B,SAAS;IACT,KAAK;IACL;IACA;IACA;IACA;IACA;IACA,IAAI,GAAG,GAAG;IACV,QAAQ,IAAI,KAAK,GAAG,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC;IACrC,QAAQ,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,KAAK,GAAG,IAAI,CAAC;IACvD,QAAQ,IAAI,IAAI,GAAG,EAAE,CAAC;IACtB;IACA,QAAQ,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI;IAC1B,aAAa,CAAC,KAAK,KAAK,MAAM,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,GAAG;IAChE,iBAAiB,IAAI,KAAK,MAAM,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,EAAE;IACrE,YAAY,IAAI,GAAG,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;IACxC,SAAS;IACT;IACA,QAAQ,IAAI,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE;IACzC,YAAY,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,GAAG,KAAK,EAAE,CAAC;IACtD,SAAS;IACT;IACA,QAAQ,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE;IAClC,YAAY,KAAK,CAAC,GAAG,GAAG,CAAC,CAAC;IAC1B,SAAS;IACT,QAAQ,MAAM,YAAY,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;IAC3C,QAAQ,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC;IAC5D,QAAQ,QAAQ,MAAM;IACtB,YAAY,KAAK;IACjB,aAAa,IAAI,GAAG,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,GAAG,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC;IACxE,YAAY,IAAI;IAChB,YAAY,IAAI,CAAC,IAAI,CAAC,IAAI;IAC1B,aAAa,YAAY,CAAC,MAAM,GAAG,GAAG,GAAG,YAAY,GAAG,EAAE,CAAC,EAAE;IAC7D,KAAK;IACL;IACA;IACA;IACA;IACA;IACA;IACA,IAAI,KAAK,GAAG;IACZ,QAAQ,OAAO,CAAC,CAACA,WAAS,CAAC;IAC3B,KAAK;IACL;;ICzLO,MAAM,UAAU,GAAG;IAC1B,IAAI,SAAS,EAAE,EAAE;IACjB,IAAI,OAAO,EAAE,OAAO;IACpB,CAAC;;ICLD;IACA;IACA;IACA;IACA;IACA;IACA;IACA,MAAM,EAAE,GAAG,yOAAyO,CAAC;IACrP,MAAM,KAAK,GAAG;IACd,IAAI,QAAQ,EAAE,UAAU,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ;IACjJ,CAAC,CAAC;IACK,SAAS,KAAK,CAAC,GAAG,EAAE;IAC3B,IAAI,MAAM,GAAG,GAAG,GAAG,EAAE,CAAC,GAAG,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IAChE,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE;IAC5B,QAAQ,GAAG,GAAG,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,GAAG,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAC1G,KAAK;IACL,IAAI,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,GAAG,GAAG,EAAE,EAAE,CAAC,GAAG,EAAE,CAAC;IACjD,IAAI,OAAO,CAAC,EAAE,EAAE;IAChB,QAAQ,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;IACnC,KAAK;IACL,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE;IAC5B,QAAQ,GAAG,CAAC,MAAM,GAAG,GAAG,CAAC;IACzB,QAAQ,GAAG,CAAC,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,GAAG,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IACjF,QAAQ,GAAG,CAAC,SAAS,GAAG,GAAG,CAAC,SAAS,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IAC3F,QAAQ,GAAG,CAAC,OAAO,GAAG,IAAI,CAAC;IAC3B,KAAK;IACL,IAAI,GAAG,CAAC,SAAS,GAAG,SAAS,CAAC,GAAG,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC;IAChD,IAAI,GAAG,CAAC,QAAQ,GAAG,QAAQ,CAAC,GAAG,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC;IAC/C,IAAI,OAAO,GAAG,CAAC;IACf,CAAC;IACD,SAAS,SAAS,CAAC,GAAG,EAAE,IAAI,EAAE;IAC9B,IAAI,MAAM,IAAI,GAAG,UAAU,EAAE,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACxE,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE;IACtD,QAAQ,KAAK,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAC3B,KAAK;IACL,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,EAAE;IAC/B,QAAQ,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;IAC1C,KAAK;IACL,IAAI,OAAO,KAAK,CAAC;IACjB,CAAC;IACD,SAAS,QAAQ,CAAC,GAAG,EAAE,KAAK,EAAE;IAC9B,IAAI,MAAM,IAAI,GAAG,EAAE,CAAC;IACpB,IAAI,KAAK,CAAC,OAAO,CAAC,2BAA2B,EAAE,UAAU,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE;IACrE,QAAQ,IAAI,EAAE,EAAE;IAChB,YAAY,IAAI,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC;IAC1B,SAAS;IACT,KAAK,CAAC,CAAC;IACP,IAAI,OAAO,IAAI,CAAC;IAChB;;IC1CO,MAAMC,QAAM,SAAS,OAAO,CAAC;IACpC;IACA;IACA;IACA;IACA;IACA;IACA;IACA,IAAI,WAAW,CAAC,GAAG,EAAE,IAAI,GAAG,EAAE,EAAE;IAChC,QAAQ,KAAK,EAAE,CAAC;IAChB,QAAQ,IAAI,GAAG,IAAI,QAAQ,KAAK,OAAO,GAAG,EAAE;IAC5C,YAAY,IAAI,GAAG,GAAG,CAAC;IACvB,YAAY,GAAG,GAAG,IAAI,CAAC;IACvB,SAAS;IACT,QAAQ,IAAI,GAAG,EAAE;IACjB,YAAY,GAAG,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC;IAC7B,YAAY,IAAI,CAAC,QAAQ,GAAG,GAAG,CAAC,IAAI,CAAC;IACrC,YAAY,IAAI,CAAC,MAAM,GAAG,GAAG,CAAC,QAAQ,KAAK,OAAO,IAAI,GAAG,CAAC,QAAQ,KAAK,KAAK,CAAC;IAC7E,YAAY,IAAI,CAAC,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC;IACjC,YAAY,IAAI,GAAG,CAAC,KAAK;IACzB,gBAAgB,IAAI,CAAC,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC;IACvC,SAAS;IACT,aAAa,IAAI,IAAI,CAAC,IAAI,EAAE;IAC5B,YAAY,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC;IAClD,SAAS;IACT,QAAQ,qBAAqB,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IAC1C,QAAQ,IAAI,CAAC,MAAM;IACnB,YAAY,IAAI,IAAI,IAAI,CAAC,MAAM;IAC/B,kBAAkB,IAAI,CAAC,MAAM;IAC7B,kBAAkB,OAAO,QAAQ,KAAK,WAAW,IAAI,QAAQ,KAAK,QAAQ,CAAC,QAAQ,CAAC;IACpF,QAAQ,IAAI,IAAI,CAAC,QAAQ,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;IACzC;IACA,YAAY,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,MAAM,GAAG,KAAK,GAAG,IAAI,CAAC;IACnD,SAAS;IACT,QAAQ,IAAI,CAAC,QAAQ;IACrB,YAAY,IAAI,CAAC,QAAQ;IACzB,iBAAiB,OAAO,QAAQ,KAAK,WAAW,GAAG,QAAQ,CAAC,QAAQ,GAAG,WAAW,CAAC,CAAC;IACpF,QAAQ,IAAI,CAAC,IAAI;IACjB,YAAY,IAAI,CAAC,IAAI;IACrB,iBAAiB,OAAO,QAAQ,KAAK,WAAW,IAAI,QAAQ,CAAC,IAAI;IACjE,sBAAsB,QAAQ,CAAC,IAAI;IACnC,sBAAsB,IAAI,CAAC,MAAM;IACjC,0BAA0B,KAAK;IAC/B,0BAA0B,IAAI,CAAC,CAAC;IAChC,QAAQ,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,IAAI,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC;IACtE,QAAQ,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC;IAC7B,QAAQ,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;IAC9B,QAAQ,IAAI,CAAC,aAAa,GAAG,CAAC,CAAC;IAC/B,QAAQ,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC;IAClC,YAAY,IAAI,EAAE,YAAY;IAC9B,YAAY,KAAK,EAAE,KAAK;IACxB,YAAY,eAAe,EAAE,KAAK;IAClC,YAAY,OAAO,EAAE,IAAI;IACzB,YAAY,cAAc,EAAE,GAAG;IAC/B,YAAY,eAAe,EAAE,KAAK;IAClC,YAAY,kBAAkB,EAAE,IAAI;IACpC,YAAY,iBAAiB,EAAE;IAC/B,gBAAgB,SAAS,EAAE,IAAI;IAC/B,aAAa;IACb,YAAY,gBAAgB,EAAE,EAAE;IAChC,YAAY,mBAAmB,EAAE,IAAI;IACrC,SAAS,EAAE,IAAI,CAAC,CAAC;IACjB,QAAQ,IAAI,CAAC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC;IACjE,QAAQ,IAAI,OAAO,IAAI,CAAC,IAAI,CAAC,KAAK,KAAK,QAAQ,EAAE;IACjD,YAAY,IAAI,CAAC,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACtD,SAAS;IACT;IACA,QAAQ,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC;IACvB,QAAQ,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;IAC7B,QAAQ,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;IACjC,QAAQ,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;IAChC;IACA,QAAQ,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC;IACrC,QAAQ,IAAI,OAAO,gBAAgB,KAAK,UAAU,EAAE;IACpD,YAAY,IAAI,IAAI,CAAC,IAAI,CAAC,mBAAmB,EAAE;IAC/C;IACA;IACA;IACA,gBAAgB,IAAI,CAAC,yBAAyB,GAAG,MAAM;IACvD,oBAAoB,IAAI,IAAI,CAAC,SAAS,EAAE;IACxC;IACA,wBAAwB,IAAI,CAAC,SAAS,CAAC,kBAAkB,EAAE,CAAC;IAC5D,wBAAwB,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;IAC/C,qBAAqB;IACrB,iBAAiB,CAAC;IAClB,gBAAgB,gBAAgB,CAAC,cAAc,EAAE,IAAI,CAAC,yBAAyB,EAAE,KAAK,CAAC,CAAC;IACxF,aAAa;IACb,YAAY,IAAI,IAAI,CAAC,QAAQ,KAAK,WAAW,EAAE;IAC/C,gBAAgB,IAAI,CAAC,oBAAoB,GAAG,MAAM;IAClD,oBAAoB,IAAI,CAAC,OAAO,CAAC,iBAAiB,EAAE;IACpD,wBAAwB,WAAW,EAAE,yBAAyB;IAC9D,qBAAqB,CAAC,CAAC;IACvB,iBAAiB,CAAC;IAClB,gBAAgB,gBAAgB,CAAC,SAAS,EAAE,IAAI,CAAC,oBAAoB,EAAE,KAAK,CAAC,CAAC;IAC9E,aAAa;IACb,SAAS;IACT,QAAQ,IAAI,CAAC,IAAI,EAAE,CAAC;IACpB,KAAK;IACL;IACA;IACA;IACA;IACA;IACA;IACA;IACA,IAAI,eAAe,CAAC,IAAI,EAAE;IAC1B,QAAQ,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACzD;IACA,QAAQ,KAAK,CAAC,GAAG,GAAGL,UAAQ,CAAC;IAC7B;IACA,QAAQ,KAAK,CAAC,SAAS,GAAG,IAAI,CAAC;IAC/B;IACA,QAAQ,IAAI,IAAI,CAAC,EAAE;IACnB,YAAY,KAAK,CAAC,GAAG,GAAG,IAAI,CAAC,EAAE,CAAC;IAChC,QAAQ,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,IAAI,EAAE;IACpF,YAAY,KAAK;IACjB,YAAY,MAAM,EAAE,IAAI;IACxB,YAAY,QAAQ,EAAE,IAAI,CAAC,QAAQ;IACnC,YAAY,MAAM,EAAE,IAAI,CAAC,MAAM;IAC/B,YAAY,IAAI,EAAE,IAAI,CAAC,IAAI;IAC3B,SAAS,CAAC,CAAC;IACX,QAAQ,OAAO,IAAI,UAAU,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC;IAC1C,KAAK;IACL;IACA;IACA;IACA;IACA;IACA,IAAI,IAAI,GAAG;IACX,QAAQ,IAAI,SAAS,CAAC;IACtB,QAAQ,IAAI,IAAI,CAAC,IAAI,CAAC,eAAe;IACrC,YAAYK,QAAM,CAAC,qBAAqB;IACxC,YAAY,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,EAAE;IACzD,YAAY,SAAS,GAAG,WAAW,CAAC;IACpC,SAAS;IACT,aAAa,IAAI,CAAC,KAAK,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE;IAC/C;IACA,YAAY,IAAI,CAAC,YAAY,CAAC,MAAM;IACpC,gBAAgB,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,yBAAyB,CAAC,CAAC;IACtE,aAAa,EAAE,CAAC,CAAC,CAAC;IAClB,YAAY,OAAO;IACnB,SAAS;IACT,aAAa;IACb,YAAY,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;IAC3C,SAAS;IACT,QAAQ,IAAI,CAAC,UAAU,GAAG,SAAS,CAAC;IACpC;IACA,QAAQ,IAAI;IACZ,YAAY,SAAS,GAAG,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC;IACxD,SAAS;IACT,QAAQ,OAAO,CAAC,EAAE;IAClB,YAAY,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;IACpC,YAAY,IAAI,CAAC,IAAI,EAAE,CAAC;IACxB,YAAY,OAAO;IACnB,SAAS;IACT,QAAQ,SAAS,CAAC,IAAI,EAAE,CAAC;IACzB,QAAQ,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC;IACrC,KAAK;IACL;IACA;IACA;IACA;IACA;IACA,IAAI,YAAY,CAAC,SAAS,EAAE;IAC5B,QAAQ,IAAI,IAAI,CAAC,SAAS,EAAE;IAC5B,YAAY,IAAI,CAAC,SAAS,CAAC,kBAAkB,EAAE,CAAC;IAChD,SAAS;IACT;IACA,QAAQ,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;IACnC;IACA,QAAQ,SAAS;IACjB,aAAa,EAAE,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACjD,aAAa,EAAE,CAAC,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACnD,aAAa,EAAE,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACjD,aAAa,EAAE,CAAC,OAAO,EAAE,MAAM,IAAI,IAAI,CAAC,OAAO,CAAC,iBAAiB,EAAE,MAAM,CAAC,CAAC,CAAC;IAC5E,KAAK;IACL;IACA;IACA;IACA;IACA;IACA;IACA,IAAI,KAAK,CAAC,IAAI,EAAE;IAChB,QAAQ,IAAI,SAAS,GAAG,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;IACnD,QAAQ,IAAI,MAAM,GAAG,KAAK,CAAC;IAC3B,QAAQA,QAAM,CAAC,qBAAqB,GAAG,KAAK,CAAC;IAC7C,QAAQ,MAAM,eAAe,GAAG,MAAM;IACtC,YAAY,IAAI,MAAM;IACtB,gBAAgB,OAAO;IACvB,YAAY,SAAS,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC;IAC9D,YAAY,SAAS,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,IAAI;IAC5C,gBAAgB,IAAI,MAAM;IAC1B,oBAAoB,OAAO;IAC3B,gBAAgB,IAAI,MAAM,KAAK,GAAG,CAAC,IAAI,IAAI,OAAO,KAAK,GAAG,CAAC,IAAI,EAAE;IACjE,oBAAoB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;IAC1C,oBAAoB,IAAI,CAAC,YAAY,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC;IAC9D,oBAAoB,IAAI,CAAC,SAAS;IAClC,wBAAwB,OAAO;IAC/B,oBAAoBA,QAAM,CAAC,qBAAqB,GAAG,WAAW,KAAK,SAAS,CAAC,IAAI,CAAC;IAClF,oBAAoB,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,MAAM;IAC/C,wBAAwB,IAAI,MAAM;IAClC,4BAA4B,OAAO;IACnC,wBAAwB,IAAI,QAAQ,KAAK,IAAI,CAAC,UAAU;IACxD,4BAA4B,OAAO;IACnC,wBAAwB,OAAO,EAAE,CAAC;IAClC,wBAAwB,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC;IACrD,wBAAwB,SAAS,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC;IAC9D,wBAAwB,IAAI,CAAC,YAAY,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;IAChE,wBAAwB,SAAS,GAAG,IAAI,CAAC;IACzC,wBAAwB,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;IAC/C,wBAAwB,IAAI,CAAC,KAAK,EAAE,CAAC;IACrC,qBAAqB,CAAC,CAAC;IACvB,iBAAiB;IACjB,qBAAqB;IACrB,oBAAoB,MAAM,GAAG,GAAG,IAAI,KAAK,CAAC,aAAa,CAAC,CAAC;IACzD;IACA,oBAAoB,GAAG,CAAC,SAAS,GAAG,SAAS,CAAC,IAAI,CAAC;IACnD,oBAAoB,IAAI,CAAC,YAAY,CAAC,cAAc,EAAE,GAAG,CAAC,CAAC;IAC3D,iBAAiB;IACjB,aAAa,CAAC,CAAC;IACf,SAAS,CAAC;IACV,QAAQ,SAAS,eAAe,GAAG;IACnC,YAAY,IAAI,MAAM;IACtB,gBAAgB,OAAO;IACvB;IACA,YAAY,MAAM,GAAG,IAAI,CAAC;IAC1B,YAAY,OAAO,EAAE,CAAC;IACtB,YAAY,SAAS,CAAC,KAAK,EAAE,CAAC;IAC9B,YAAY,SAAS,GAAG,IAAI,CAAC;IAC7B,SAAS;IACT;IACA,QAAQ,MAAM,OAAO,GAAG,GAAG,IAAI;IAC/B,YAAY,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC,eAAe,GAAG,GAAG,CAAC,CAAC;IAC3D;IACA,YAAY,KAAK,CAAC,SAAS,GAAG,SAAS,CAAC,IAAI,CAAC;IAC7C,YAAY,eAAe,EAAE,CAAC;IAC9B,YAAY,IAAI,CAAC,YAAY,CAAC,cAAc,EAAE,KAAK,CAAC,CAAC;IACrD,SAAS,CAAC;IACV,QAAQ,SAAS,gBAAgB,GAAG;IACpC,YAAY,OAAO,CAAC,kBAAkB,CAAC,CAAC;IACxC,SAAS;IACT;IACA,QAAQ,SAAS,OAAO,GAAG;IAC3B,YAAY,OAAO,CAAC,eAAe,CAAC,CAAC;IACrC,SAAS;IACT;IACA,QAAQ,SAAS,SAAS,CAAC,EAAE,EAAE;IAC/B,YAAY,IAAI,SAAS,IAAI,EAAE,CAAC,IAAI,KAAK,SAAS,CAAC,IAAI,EAAE;IACzD,gBAAgB,eAAe,EAAE,CAAC;IAClC,aAAa;IACb,SAAS;IACT;IACA,QAAQ,MAAM,OAAO,GAAG,MAAM;IAC9B,YAAY,SAAS,CAAC,cAAc,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;IAC9D,YAAY,SAAS,CAAC,cAAc,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IACvD,YAAY,SAAS,CAAC,cAAc,CAAC,OAAO,EAAE,gBAAgB,CAAC,CAAC;IAChE,YAAY,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IACvC,YAAY,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC;IAC7C,SAAS,CAAC;IACV,QAAQ,SAAS,CAAC,IAAI,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;IAChD,QAAQ,SAAS,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IACzC,QAAQ,SAAS,CAAC,IAAI,CAAC,OAAO,EAAE,gBAAgB,CAAC,CAAC;IAClD,QAAQ,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IACpC,QAAQ,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC;IAC1C,QAAQ,SAAS,CAAC,IAAI,EAAE,CAAC;IACzB,KAAK;IACL;IACA;IACA;IACA;IACA;IACA,IAAI,MAAM,GAAG;IACb,QAAQ,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC;IACjC,QAAQA,QAAM,CAAC,qBAAqB,GAAG,WAAW,KAAK,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;IAC3E,QAAQ,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;IAClC,QAAQ,IAAI,CAAC,KAAK,EAAE,CAAC;IACrB;IACA;IACA,QAAQ,IAAI,MAAM,KAAK,IAAI,CAAC,UAAU;IACtC,YAAY,IAAI,CAAC,IAAI,CAAC,OAAO;IAC7B,YAAY,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE;IAClC,YAAY,IAAI,CAAC,GAAG,CAAC,CAAC;IACtB,YAAY,MAAM,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC;IAC3C,YAAY,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;IAC/B,gBAAgB,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;IAC7C,aAAa;IACb,SAAS;IACT,KAAK;IACL;IACA;IACA;IACA;IACA;IACA,IAAI,QAAQ,CAAC,MAAM,EAAE;IACrB,QAAQ,IAAI,SAAS,KAAK,IAAI,CAAC,UAAU;IACzC,YAAY,MAAM,KAAK,IAAI,CAAC,UAAU;IACtC,YAAY,SAAS,KAAK,IAAI,CAAC,UAAU,EAAE;IAC3C,YAAY,IAAI,CAAC,YAAY,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;IAChD;IACA,YAAY,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC;IAC3C,YAAY,QAAQ,MAAM,CAAC,IAAI;IAC/B,gBAAgB,KAAK,MAAM;IAC3B,oBAAoB,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;IAC9D,oBAAoB,MAAM;IAC1B,gBAAgB,KAAK,MAAM;IAC3B,oBAAoB,IAAI,CAAC,gBAAgB,EAAE,CAAC;IAC5C,oBAAoB,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;IAC5C,oBAAoB,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;IAC9C,oBAAoB,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;IAC9C,oBAAoB,MAAM;IAC1B,gBAAgB,KAAK,OAAO;IAC5B,oBAAoB,MAAM,GAAG,GAAG,IAAI,KAAK,CAAC,cAAc,CAAC,CAAC;IAC1D;IACA,oBAAoB,GAAG,CAAC,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC;IAC3C,oBAAoB,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IACtC,oBAAoB,MAAM;IAC1B,gBAAgB,KAAK,SAAS;IAC9B,oBAAoB,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;IAC3D,oBAAoB,IAAI,CAAC,YAAY,CAAC,SAAS,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;IAC9D,oBAAoB,MAAM;IAC1B,aAAa;IACb,SAES;IACT,KAAK;IACL;IACA;IACA;IACA;IACA;IACA;IACA,IAAI,WAAW,CAAC,IAAI,EAAE;IACtB,QAAQ,IAAI,CAAC,YAAY,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;IAC7C,QAAQ,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC;IAC3B,QAAQ,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC;IAC5C,QAAQ,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAC3D,QAAQ,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;IAC9C,QAAQ,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;IAC5C,QAAQ,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC;IAC1C,QAAQ,IAAI,CAAC,MAAM,EAAE,CAAC;IACtB;IACA,QAAQ,IAAI,QAAQ,KAAK,IAAI,CAAC,UAAU;IACxC,YAAY,OAAO;IACnB,QAAQ,IAAI,CAAC,gBAAgB,EAAE,CAAC;IAChC,KAAK;IACL;IACA;IACA;IACA;IACA;IACA,IAAI,gBAAgB,GAAG;IACvB,QAAQ,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;IACnD,QAAQ,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM;IACxD,YAAY,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;IACzC,SAAS,EAAE,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,WAAW,CAAC,CAAC;IACjD,QAAQ,IAAI,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;IACjC,YAAY,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE,CAAC;IAC1C,SAAS;IACT,KAAK;IACL;IACA;IACA;IACA;IACA;IACA,IAAI,OAAO,GAAG;IACd,QAAQ,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;IACvD;IACA;IACA;IACA,QAAQ,IAAI,CAAC,aAAa,GAAG,CAAC,CAAC;IAC/B,QAAQ,IAAI,CAAC,KAAK,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE;IAC3C,YAAY,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;IACvC,SAAS;IACT,aAAa;IACb,YAAY,IAAI,CAAC,KAAK,EAAE,CAAC;IACzB,SAAS;IACT,KAAK;IACL;IACA;IACA;IACA;IACA;IACA,IAAI,KAAK,GAAG;IACZ,QAAQ,IAAI,QAAQ,KAAK,IAAI,CAAC,UAAU;IACxC,YAAY,IAAI,CAAC,SAAS,CAAC,QAAQ;IACnC,YAAY,CAAC,IAAI,CAAC,SAAS;IAC3B,YAAY,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE;IACrC,YAAY,MAAM,OAAO,GAAG,IAAI,CAAC,kBAAkB,EAAE,CAAC;IACtD,YAAY,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACzC;IACA;IACA,YAAY,IAAI,CAAC,aAAa,GAAG,OAAO,CAAC,MAAM,CAAC;IAChD,YAAY,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;IACvC,SAAS;IACT,KAAK;IACL;IACA;IACA;IACA;IACA;IACA;IACA,IAAI,kBAAkB,GAAG;IACzB,QAAQ,MAAM,sBAAsB,GAAG,IAAI,CAAC,UAAU;IACtD,YAAY,IAAI,CAAC,SAAS,CAAC,IAAI,KAAK,SAAS;IAC7C,YAAY,IAAI,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC;IACxC,QAAQ,IAAI,CAAC,sBAAsB,EAAE;IACrC,YAAY,OAAO,IAAI,CAAC,WAAW,CAAC;IACpC,SAAS;IACT,QAAQ,IAAI,WAAW,GAAG,CAAC,CAAC;IAC5B,QAAQ,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;IAC1D,YAAY,MAAM,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IAClD,YAAY,IAAI,IAAI,EAAE;IACtB,gBAAgB,WAAW,IAAI,UAAU,CAAC,IAAI,CAAC,CAAC;IAChD,aAAa;IACb,YAAY,IAAI,CAAC,GAAG,CAAC,IAAI,WAAW,GAAG,IAAI,CAAC,UAAU,EAAE;IACxD,gBAAgB,OAAO,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACpD,aAAa;IACb,YAAY,WAAW,IAAI,CAAC,CAAC;IAC7B,SAAS;IACT,QAAQ,OAAO,IAAI,CAAC,WAAW,CAAC;IAChC,KAAK;IACL;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA,IAAI,KAAK,CAAC,GAAG,EAAE,OAAO,EAAE,EAAE,EAAE;IAC5B,QAAQ,IAAI,CAAC,UAAU,CAAC,SAAS,EAAE,GAAG,EAAE,OAAO,EAAE,EAAE,CAAC,CAAC;IACrD,QAAQ,OAAO,IAAI,CAAC;IACpB,KAAK;IACL,IAAI,IAAI,CAAC,GAAG,EAAE,OAAO,EAAE,EAAE,EAAE;IAC3B,QAAQ,IAAI,CAAC,UAAU,CAAC,SAAS,EAAE,GAAG,EAAE,OAAO,EAAE,EAAE,CAAC,CAAC;IACrD,QAAQ,OAAO,IAAI,CAAC;IACpB,KAAK;IACL;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA,IAAI,UAAU,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE;IACxC,QAAQ,IAAI,UAAU,KAAK,OAAO,IAAI,EAAE;IACxC,YAAY,EAAE,GAAG,IAAI,CAAC;IACtB,YAAY,IAAI,GAAG,SAAS,CAAC;IAC7B,SAAS;IACT,QAAQ,IAAI,UAAU,KAAK,OAAO,OAAO,EAAE;IAC3C,YAAY,EAAE,GAAG,OAAO,CAAC;IACzB,YAAY,OAAO,GAAG,IAAI,CAAC;IAC3B,SAAS;IACT,QAAQ,IAAI,SAAS,KAAK,IAAI,CAAC,UAAU,IAAI,QAAQ,KAAK,IAAI,CAAC,UAAU,EAAE;IAC3E,YAAY,OAAO;IACnB,SAAS;IACT,QAAQ,OAAO,GAAG,OAAO,IAAI,EAAE,CAAC;IAChC,QAAQ,OAAO,CAAC,QAAQ,GAAG,KAAK,KAAK,OAAO,CAAC,QAAQ,CAAC;IACtD,QAAQ,MAAM,MAAM,GAAG;IACvB,YAAY,IAAI,EAAE,IAAI;IACtB,YAAY,IAAI,EAAE,IAAI;IACtB,YAAY,OAAO,EAAE,OAAO;IAC5B,SAAS,CAAC;IACV,QAAQ,IAAI,CAAC,YAAY,CAAC,cAAc,EAAE,MAAM,CAAC,CAAC;IAClD,QAAQ,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACtC,QAAQ,IAAI,EAAE;IACd,YAAY,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;IACnC,QAAQ,IAAI,CAAC,KAAK,EAAE,CAAC;IACrB,KAAK;IACL;IACA;IACA;IACA;IACA;IACA,IAAI,KAAK,GAAG;IACZ,QAAQ,MAAM,KAAK,GAAG,MAAM;IAC5B,YAAY,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;IACzC,YAAY,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;IACnC,SAAS,CAAC;IACV,QAAQ,MAAM,eAAe,GAAG,MAAM;IACtC,YAAY,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,eAAe,CAAC,CAAC;IACjD,YAAY,IAAI,CAAC,GAAG,CAAC,cAAc,EAAE,eAAe,CAAC,CAAC;IACtD,YAAY,KAAK,EAAE,CAAC;IACpB,SAAS,CAAC;IACV,QAAQ,MAAM,cAAc,GAAG,MAAM;IACrC;IACA,YAAY,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,eAAe,CAAC,CAAC;IAClD,YAAY,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,eAAe,CAAC,CAAC;IACvD,SAAS,CAAC;IACV,QAAQ,IAAI,SAAS,KAAK,IAAI,CAAC,UAAU,IAAI,MAAM,KAAK,IAAI,CAAC,UAAU,EAAE;IACzE,YAAY,IAAI,CAAC,UAAU,GAAG,SAAS,CAAC;IACxC,YAAY,IAAI,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE;IACzC,gBAAgB,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM;IACzC,oBAAoB,IAAI,IAAI,CAAC,SAAS,EAAE;IACxC,wBAAwB,cAAc,EAAE,CAAC;IACzC,qBAAqB;IACrB,yBAAyB;IACzB,wBAAwB,KAAK,EAAE,CAAC;IAChC,qBAAqB;IACrB,iBAAiB,CAAC,CAAC;IACnB,aAAa;IACb,iBAAiB,IAAI,IAAI,CAAC,SAAS,EAAE;IACrC,gBAAgB,cAAc,EAAE,CAAC;IACjC,aAAa;IACb,iBAAiB;IACjB,gBAAgB,KAAK,EAAE,CAAC;IACxB,aAAa;IACb,SAAS;IACT,QAAQ,OAAO,IAAI,CAAC;IACpB,KAAK;IACL;IACA;IACA;IACA;IACA;IACA,IAAI,OAAO,CAAC,GAAG,EAAE;IACjB,QAAQA,QAAM,CAAC,qBAAqB,GAAG,KAAK,CAAC;IAC7C,QAAQ,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;IACxC,QAAQ,IAAI,CAAC,OAAO,CAAC,iBAAiB,EAAE,GAAG,CAAC,CAAC;IAC7C,KAAK;IACL;IACA;IACA;IACA;IACA;IACA,IAAI,OAAO,CAAC,MAAM,EAAE,WAAW,EAAE;IACjC,QAAQ,IAAI,SAAS,KAAK,IAAI,CAAC,UAAU;IACzC,YAAY,MAAM,KAAK,IAAI,CAAC,UAAU;IACtC,YAAY,SAAS,KAAK,IAAI,CAAC,UAAU,EAAE;IAC3C;IACA,YAAY,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;IACvD;IACA,YAAY,IAAI,CAAC,SAAS,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC;IACvD;IACA,YAAY,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;IACnC;IACA,YAAY,IAAI,CAAC,SAAS,CAAC,kBAAkB,EAAE,CAAC;IAChD,YAAY,IAAI,OAAO,mBAAmB,KAAK,UAAU,EAAE;IAC3D,gBAAgB,mBAAmB,CAAC,cAAc,EAAE,IAAI,CAAC,yBAAyB,EAAE,KAAK,CAAC,CAAC;IAC3F,gBAAgB,mBAAmB,CAAC,SAAS,EAAE,IAAI,CAAC,oBAAoB,EAAE,KAAK,CAAC,CAAC;IACjF,aAAa;IACb;IACA,YAAY,IAAI,CAAC,UAAU,GAAG,QAAQ,CAAC;IACvC;IACA,YAAY,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC;IAC3B;IACA,YAAY,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC;IAC5D;IACA;IACA,YAAY,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;IAClC,YAAY,IAAI,CAAC,aAAa,GAAG,CAAC,CAAC;IACnC,SAAS;IACT,KAAK;IACL;IACA;IACA;IACA;IACA;IACA;IACA;IACA,IAAI,cAAc,CAAC,QAAQ,EAAE;IAC7B,QAAQ,MAAM,gBAAgB,GAAG,EAAE,CAAC;IACpC,QAAQ,IAAI,CAAC,GAAG,CAAC,CAAC;IAClB,QAAQ,MAAM,CAAC,GAAG,QAAQ,CAAC,MAAM,CAAC;IAClC,QAAQ,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;IAC3B,YAAY,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;IACrD,gBAAgB,gBAAgB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;IACnD,SAAS;IACT,QAAQ,OAAO,gBAAgB,CAAC;IAChC,KAAK;IACL,CAAC;AACDA,YAAM,CAAC,QAAQ,GAAGL,UAAQ;;ICnkB1B;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACO,SAAS,GAAG,CAAC,GAAG,EAAE,IAAI,GAAG,EAAE,EAAE,GAAG,EAAE;IACzC,IAAI,IAAI,GAAG,GAAG,GAAG,CAAC;IAClB;IACA,IAAI,GAAG,GAAG,GAAG,KAAK,OAAO,QAAQ,KAAK,WAAW,IAAI,QAAQ,CAAC,CAAC;IAC/D,IAAI,IAAI,IAAI,IAAI,GAAG;IACnB,QAAQ,GAAG,GAAG,GAAG,CAAC,QAAQ,GAAG,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC;IAC7C;IACA,IAAI,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE;IACjC,QAAQ,IAAI,GAAG,KAAK,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE;IACnC,YAAY,IAAI,GAAG,KAAK,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE;IACvC,gBAAgB,GAAG,GAAG,GAAG,CAAC,QAAQ,GAAG,GAAG,CAAC;IACzC,aAAa;IACb,iBAAiB;IACjB,gBAAgB,GAAG,GAAG,GAAG,CAAC,IAAI,GAAG,GAAG,CAAC;IACrC,aAAa;IACb,SAAS;IACT,QAAQ,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE;IAC9C,YAAY,IAAI,WAAW,KAAK,OAAO,GAAG,EAAE;IAC5C,gBAAgB,GAAG,GAAG,GAAG,CAAC,QAAQ,GAAG,IAAI,GAAG,GAAG,CAAC;IAChD,aAAa;IACb,iBAAiB;IACjB,gBAAgB,GAAG,GAAG,UAAU,GAAG,GAAG,CAAC;IACvC,aAAa;IACb,SAAS;IACT;IACA,QAAQ,GAAG,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC;IACzB,KAAK;IACL;IACA,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE;IACnB,QAAQ,IAAI,aAAa,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE;IAC9C,YAAY,GAAG,CAAC,IAAI,GAAG,IAAI,CAAC;IAC5B,SAAS;IACT,aAAa,IAAI,cAAc,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE;IACpD,YAAY,GAAG,CAAC,IAAI,GAAG,KAAK,CAAC;IAC7B,SAAS;IACT,KAAK;IACL,IAAI,GAAG,CAAC,IAAI,GAAG,GAAG,CAAC,IAAI,IAAI,GAAG,CAAC;IAC/B,IAAI,MAAM,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC;IAC9C,IAAI,MAAM,IAAI,GAAG,IAAI,GAAG,GAAG,GAAG,GAAG,CAAC,IAAI,GAAG,GAAG,GAAG,GAAG,CAAC,IAAI,CAAC;IACxD;IACA,IAAI,GAAG,CAAC,EAAE,GAAG,GAAG,CAAC,QAAQ,GAAG,KAAK,GAAG,IAAI,GAAG,GAAG,GAAG,GAAG,CAAC,IAAI,GAAG,IAAI,CAAC;IACjE;IACA,IAAI,GAAG,CAAC,IAAI;IACZ,QAAQ,GAAG,CAAC,QAAQ;IACpB,YAAY,KAAK;IACjB,YAAY,IAAI;IAChB,aAAa,GAAG,IAAI,GAAG,CAAC,IAAI,KAAK,GAAG,CAAC,IAAI,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,CAAC,IAAI,CAAC,CAAC;IACjE,IAAI,OAAO,GAAG,CAAC;IACf;;IC1DA,MAAM,qBAAqB,GAAG,OAAO,WAAW,KAAK,UAAU,CAAC;IAChE,MAAM,MAAM,GAAG,CAAC,GAAG,KAAK;IACxB,IAAI,OAAO,OAAO,WAAW,CAAC,MAAM,KAAK,UAAU;IACnD,UAAU,WAAW,CAAC,MAAM,CAAC,GAAG,CAAC;IACjC,UAAU,GAAG,CAAC,MAAM,YAAY,WAAW,CAAC;IAC5C,CAAC,CAAC;IACF,MAAM,QAAQ,GAAG,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC;IAC3C,MAAM,cAAc,GAAG,OAAO,IAAI,KAAK,UAAU;IACjD,KAAK,OAAO,IAAI,KAAK,WAAW;IAChC,QAAQ,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,0BAA0B,CAAC,CAAC;IAC5D,MAAM,cAAc,GAAG,OAAO,IAAI,KAAK,UAAU;IACjD,KAAK,OAAO,IAAI,KAAK,WAAW;IAChC,QAAQ,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,0BAA0B,CAAC,CAAC;IAC5D;IACA;IACA;IACA;IACA;IACO,SAAS,QAAQ,CAAC,GAAG,EAAE;IAC9B,IAAI,QAAQ,CAAC,qBAAqB,KAAK,GAAG,YAAY,WAAW,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC;IACjF,SAAS,cAAc,IAAI,GAAG,YAAY,IAAI,CAAC;IAC/C,SAAS,cAAc,IAAI,GAAG,YAAY,IAAI,CAAC,EAAE;IACjD,CAAC;IACM,SAAS,SAAS,CAAC,GAAG,EAAE,MAAM,EAAE;IACvC,IAAI,IAAI,CAAC,GAAG,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE;IACzC,QAAQ,OAAO,KAAK,CAAC;IACrB,KAAK;IACL,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;IAC5B,QAAQ,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;IACpD,YAAY,IAAI,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE;IACnC,gBAAgB,OAAO,IAAI,CAAC;IAC5B,aAAa;IACb,SAAS;IACT,QAAQ,OAAO,KAAK,CAAC;IACrB,KAAK;IACL,IAAI,IAAI,QAAQ,CAAC,GAAG,CAAC,EAAE;IACvB,QAAQ,OAAO,IAAI,CAAC;IACpB,KAAK;IACL,IAAI,IAAI,GAAG,CAAC,MAAM;IAClB,QAAQ,OAAO,GAAG,CAAC,MAAM,KAAK,UAAU;IACxC,QAAQ,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE;IAChC,QAAQ,OAAO,SAAS,CAAC,GAAG,CAAC,MAAM,EAAE,EAAE,IAAI,CAAC,CAAC;IAC7C,KAAK;IACL,IAAI,KAAK,MAAM,GAAG,IAAI,GAAG,EAAE;IAC3B,QAAQ,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE;IACnF,YAAY,OAAO,IAAI,CAAC;IACxB,SAAS;IACT,KAAK;IACL,IAAI,OAAO,KAAK,CAAC;IACjB;;IChDA;IACA;IACA;IACA;IACA;IACA;IACA;IACO,SAAS,iBAAiB,CAAC,MAAM,EAAE;IAC1C,IAAI,MAAM,OAAO,GAAG,EAAE,CAAC;IACvB,IAAI,MAAM,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC;IACnC,IAAI,MAAM,IAAI,GAAG,MAAM,CAAC;IACxB,IAAI,IAAI,CAAC,IAAI,GAAG,kBAAkB,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;IACxD,IAAI,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC,MAAM,CAAC;IACtC,IAAI,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC;IAC9C,CAAC;IACD,SAAS,kBAAkB,CAAC,IAAI,EAAE,OAAO,EAAE;IAC3C,IAAI,IAAI,CAAC,IAAI;IACb,QAAQ,OAAO,IAAI,CAAC;IACpB,IAAI,IAAI,QAAQ,CAAC,IAAI,CAAC,EAAE;IACxB,QAAQ,MAAM,WAAW,GAAG,EAAE,YAAY,EAAE,IAAI,EAAE,GAAG,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC;IACxE,QAAQ,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC3B,QAAQ,OAAO,WAAW,CAAC;IAC3B,KAAK;IACL,SAAS,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;IAClC,QAAQ,MAAM,OAAO,GAAG,IAAI,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAC/C,QAAQ,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;IAC9C,YAAY,OAAO,CAAC,CAAC,CAAC,GAAG,kBAAkB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;IAC9D,SAAS;IACT,QAAQ,OAAO,OAAO,CAAC;IACvB,KAAK;IACL,SAAS,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,EAAE,IAAI,YAAY,IAAI,CAAC,EAAE;IAClE,QAAQ,MAAM,OAAO,GAAG,EAAE,CAAC;IAC3B,QAAQ,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE;IAChC,YAAY,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE;IACjE,gBAAgB,OAAO,CAAC,GAAG,CAAC,GAAG,kBAAkB,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,OAAO,CAAC,CAAC;IACtE,aAAa;IACb,SAAS;IACT,QAAQ,OAAO,OAAO,CAAC;IACvB,KAAK;IACL,IAAI,OAAO,IAAI,CAAC;IAChB,CAAC;IACD;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACO,SAAS,iBAAiB,CAAC,MAAM,EAAE,OAAO,EAAE;IACnD,IAAI,MAAM,CAAC,IAAI,GAAG,kBAAkB,CAAC,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IAC3D,IAAI,MAAM,CAAC,WAAW,GAAG,SAAS,CAAC;IACnC,IAAI,OAAO,MAAM,CAAC;IAClB,CAAC;IACD,SAAS,kBAAkB,CAAC,IAAI,EAAE,OAAO,EAAE;IAC3C,IAAI,IAAI,CAAC,IAAI;IACb,QAAQ,OAAO,IAAI,CAAC;IACpB,IAAI,IAAI,IAAI,IAAI,IAAI,CAAC,YAAY,KAAK,IAAI,EAAE;IAC5C,QAAQ,MAAM,YAAY,GAAG,OAAO,IAAI,CAAC,GAAG,KAAK,QAAQ;IACzD,YAAY,IAAI,CAAC,GAAG,IAAI,CAAC;IACzB,YAAY,IAAI,CAAC,GAAG,GAAG,OAAO,CAAC,MAAM,CAAC;IACtC,QAAQ,IAAI,YAAY,EAAE;IAC1B,YAAY,OAAO,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACrC,SAAS;IACT,aAAa;IACb,YAAY,MAAM,IAAI,KAAK,CAAC,qBAAqB,CAAC,CAAC;IACnD,SAAS;IACT,KAAK;IACL,SAAS,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;IAClC,QAAQ,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;IAC9C,YAAY,IAAI,CAAC,CAAC,CAAC,GAAG,kBAAkB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;IAC3D,SAAS;IACT,KAAK;IACL,SAAS,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE;IACvC,QAAQ,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE;IAChC,YAAY,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE;IACjE,gBAAgB,IAAI,CAAC,GAAG,CAAC,GAAG,kBAAkB,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,OAAO,CAAC,CAAC;IACnE,aAAa;IACb,SAAS;IACT,KAAK;IACL,IAAI,OAAO,IAAI,CAAC;IAChB;;IC/EA;IACA;IACA;IACA;IACA;IACO,MAAM,QAAQ,GAAG,CAAC,CAAC;IACnB,IAAI,UAAU,CAAC;IACtB,CAAC,UAAU,UAAU,EAAE;IACvB,IAAI,UAAU,CAAC,UAAU,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,GAAG,SAAS,CAAC;IACtD,IAAI,UAAU,CAAC,UAAU,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,GAAG,YAAY,CAAC;IAC5D,IAAI,UAAU,CAAC,UAAU,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,OAAO,CAAC;IAClD,IAAI,UAAU,CAAC,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC;IAC9C,IAAI,UAAU,CAAC,UAAU,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC,GAAG,eAAe,CAAC;IAClE,IAAI,UAAU,CAAC,UAAU,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,GAAG,cAAc,CAAC;IAChE,IAAI,UAAU,CAAC,UAAU,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,GAAG,YAAY,CAAC;IAC5D,CAAC,EAAE,UAAU,KAAK,UAAU,GAAG,EAAE,CAAC,CAAC,CAAC;IACpC;IACA;IACA;IACO,MAAM,OAAO,CAAC;IACrB;IACA;IACA;IACA;IACA;IACA,IAAI,WAAW,CAAC,QAAQ,EAAE;IAC1B,QAAQ,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;IACjC,KAAK;IACL;IACA;IACA;IACA;IACA;IACA;IACA,IAAI,MAAM,CAAC,GAAG,EAAE;IAChB,QAAQ,IAAI,GAAG,CAAC,IAAI,KAAK,UAAU,CAAC,KAAK,IAAI,GAAG,CAAC,IAAI,KAAK,UAAU,CAAC,GAAG,EAAE;IAC1E,YAAY,IAAI,SAAS,CAAC,GAAG,CAAC,EAAE;IAChC,gBAAgB,GAAG,CAAC,IAAI;IACxB,oBAAoB,GAAG,CAAC,IAAI,KAAK,UAAU,CAAC,KAAK;IACjD,0BAA0B,UAAU,CAAC,YAAY;IACjD,0BAA0B,UAAU,CAAC,UAAU,CAAC;IAChD,gBAAgB,OAAO,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC;IAChD,aAAa;IACb,SAAS;IACT,QAAQ,OAAO,CAAC,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC;IAC1C,KAAK;IACL;IACA;IACA;IACA,IAAI,cAAc,CAAC,GAAG,EAAE;IACxB;IACA,QAAQ,IAAI,GAAG,GAAG,EAAE,GAAG,GAAG,CAAC,IAAI,CAAC;IAChC;IACA,QAAQ,IAAI,GAAG,CAAC,IAAI,KAAK,UAAU,CAAC,YAAY;IAChD,YAAY,GAAG,CAAC,IAAI,KAAK,UAAU,CAAC,UAAU,EAAE;IAChD,YAAY,GAAG,IAAI,GAAG,CAAC,WAAW,GAAG,GAAG,CAAC;IACzC,SAAS;IACT;IACA;IACA,QAAQ,IAAI,GAAG,CAAC,GAAG,IAAI,GAAG,KAAK,GAAG,CAAC,GAAG,EAAE;IACxC,YAAY,GAAG,IAAI,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC;IACjC,SAAS;IACT;IACA,QAAQ,IAAI,IAAI,IAAI,GAAG,CAAC,EAAE,EAAE;IAC5B,YAAY,GAAG,IAAI,GAAG,CAAC,EAAE,CAAC;IAC1B,SAAS;IACT;IACA,QAAQ,IAAI,IAAI,IAAI,GAAG,CAAC,IAAI,EAAE;IAC9B,YAAY,GAAG,IAAI,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;IAC3D,SAAS;IACT,QAAQ,OAAO,GAAG,CAAC;IACnB,KAAK;IACL;IACA;IACA;IACA;IACA;IACA,IAAI,cAAc,CAAC,GAAG,EAAE;IACxB,QAAQ,MAAM,cAAc,GAAG,iBAAiB,CAAC,GAAG,CAAC,CAAC;IACtD,QAAQ,MAAM,IAAI,GAAG,IAAI,CAAC,cAAc,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;IAChE,QAAQ,MAAM,OAAO,GAAG,cAAc,CAAC,OAAO,CAAC;IAC/C,QAAQ,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IAC9B,QAAQ,OAAO,OAAO,CAAC;IACvB,KAAK;IACL,CAAC;IACD;IACA;IACA;IACA;IACA;IACO,MAAM,OAAO,SAAS,OAAO,CAAC;IACrC;IACA;IACA;IACA;IACA;IACA,IAAI,WAAW,CAAC,OAAO,EAAE;IACzB,QAAQ,KAAK,EAAE,CAAC;IAChB,QAAQ,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IAC/B,KAAK;IACL;IACA;IACA;IACA;IACA;IACA,IAAI,GAAG,CAAC,GAAG,EAAE;IACb,QAAQ,IAAI,MAAM,CAAC;IACnB,QAAQ,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE;IACrC,YAAY,IAAI,IAAI,CAAC,aAAa,EAAE;IACpC,gBAAgB,MAAM,IAAI,KAAK,CAAC,iDAAiD,CAAC,CAAC;IACnF,aAAa;IACb,YAAY,MAAM,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;IAC5C,YAAY,IAAI,MAAM,CAAC,IAAI,KAAK,UAAU,CAAC,YAAY;IACvD,gBAAgB,MAAM,CAAC,IAAI,KAAK,UAAU,CAAC,UAAU,EAAE;IACvD;IACA,gBAAgB,IAAI,CAAC,aAAa,GAAG,IAAI,mBAAmB,CAAC,MAAM,CAAC,CAAC;IACrE;IACA,gBAAgB,IAAI,MAAM,CAAC,WAAW,KAAK,CAAC,EAAE;IAC9C,oBAAoB,KAAK,CAAC,YAAY,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;IAC1D,iBAAiB;IACjB,aAAa;IACb,iBAAiB;IACjB;IACA,gBAAgB,KAAK,CAAC,YAAY,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;IACtD,aAAa;IACb,SAAS;IACT,aAAa,IAAI,QAAQ,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,MAAM,EAAE;IAC9C;IACA,YAAY,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE;IACrC,gBAAgB,MAAM,IAAI,KAAK,CAAC,kDAAkD,CAAC,CAAC;IACpF,aAAa;IACb,iBAAiB;IACjB,gBAAgB,MAAM,GAAG,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC;IAChE,gBAAgB,IAAI,MAAM,EAAE;IAC5B;IACA,oBAAoB,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;IAC9C,oBAAoB,KAAK,CAAC,YAAY,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;IAC1D,iBAAiB;IACjB,aAAa;IACb,SAAS;IACT,aAAa;IACb,YAAY,MAAM,IAAI,KAAK,CAAC,gBAAgB,GAAG,GAAG,CAAC,CAAC;IACpD,SAAS;IACT,KAAK;IACL;IACA;IACA;IACA;IACA;IACA;IACA,IAAI,YAAY,CAAC,GAAG,EAAE;IACtB,QAAQ,IAAI,CAAC,GAAG,CAAC,CAAC;IAClB;IACA,QAAQ,MAAM,CAAC,GAAG;IAClB,YAAY,IAAI,EAAE,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;IACvC,SAAS,CAAC;IACV,QAAQ,IAAI,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,SAAS,EAAE;IAC9C,YAAY,MAAM,IAAI,KAAK,CAAC,sBAAsB,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC;IAC7D,SAAS;IACT;IACA,QAAQ,IAAI,CAAC,CAAC,IAAI,KAAK,UAAU,CAAC,YAAY;IAC9C,YAAY,CAAC,CAAC,IAAI,KAAK,UAAU,CAAC,UAAU,EAAE;IAC9C,YAAY,MAAM,KAAK,GAAG,CAAC,GAAG,CAAC,CAAC;IAChC,YAAY,OAAO,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,KAAK,GAAG,IAAI,CAAC,IAAI,GAAG,CAAC,MAAM,EAAE,GAAG;IAClE,YAAY,MAAM,GAAG,GAAG,GAAG,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;IAChD,YAAY,IAAI,GAAG,IAAI,MAAM,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE;IAC7D,gBAAgB,MAAM,IAAI,KAAK,CAAC,qBAAqB,CAAC,CAAC;IACvD,aAAa;IACb,YAAY,CAAC,CAAC,WAAW,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;IACxC,SAAS;IACT;IACA,QAAQ,IAAI,GAAG,KAAK,GAAG,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE;IACvC,YAAY,MAAM,KAAK,GAAG,CAAC,GAAG,CAAC,CAAC;IAChC,YAAY,OAAO,EAAE,CAAC,EAAE;IACxB,gBAAgB,MAAM,CAAC,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;IACxC,gBAAgB,IAAI,GAAG,KAAK,CAAC;IAC7B,oBAAoB,MAAM;IAC1B,gBAAgB,IAAI,CAAC,KAAK,GAAG,CAAC,MAAM;IACpC,oBAAoB,MAAM;IAC1B,aAAa;IACb,YAAY,CAAC,CAAC,GAAG,GAAG,GAAG,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;IAC5C,SAAS;IACT,aAAa;IACb,YAAY,CAAC,CAAC,GAAG,GAAG,GAAG,CAAC;IACxB,SAAS;IACT;IACA,QAAQ,MAAM,IAAI,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IACvC,QAAQ,IAAI,EAAE,KAAK,IAAI,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,IAAI,EAAE;IACjD,YAAY,MAAM,KAAK,GAAG,CAAC,GAAG,CAAC,CAAC;IAChC,YAAY,OAAO,EAAE,CAAC,EAAE;IACxB,gBAAgB,MAAM,CAAC,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;IACxC,gBAAgB,IAAI,IAAI,IAAI,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE;IACjD,oBAAoB,EAAE,CAAC,CAAC;IACxB,oBAAoB,MAAM;IAC1B,iBAAiB;IACjB,gBAAgB,IAAI,CAAC,KAAK,GAAG,CAAC,MAAM;IACpC,oBAAoB,MAAM;IAC1B,aAAa;IACb,YAAY,CAAC,CAAC,EAAE,GAAG,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IACvD,SAAS;IACT;IACA,QAAQ,IAAI,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,EAAE;IAC7B,YAAY,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;IACzD,YAAY,IAAI,OAAO,CAAC,cAAc,CAAC,CAAC,CAAC,IAAI,EAAE,OAAO,CAAC,EAAE;IACzD,gBAAgB,CAAC,CAAC,IAAI,GAAG,OAAO,CAAC;IACjC,aAAa;IACb,iBAAiB;IACjB,gBAAgB,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAC;IACnD,aAAa;IACb,SAAS;IACT,QAAQ,OAAO,CAAC,CAAC;IACjB,KAAK;IACL,IAAI,QAAQ,CAAC,GAAG,EAAE;IAClB,QAAQ,IAAI;IACZ,YAAY,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;IACjD,SAAS;IACT,QAAQ,OAAO,CAAC,EAAE;IAClB,YAAY,OAAO,KAAK,CAAC;IACzB,SAAS;IACT,KAAK;IACL,IAAI,OAAO,cAAc,CAAC,IAAI,EAAE,OAAO,EAAE;IACzC,QAAQ,QAAQ,IAAI;IACpB,YAAY,KAAK,UAAU,CAAC,OAAO;IACnC,gBAAgB,OAAO,OAAO,OAAO,KAAK,QAAQ,CAAC;IACnD,YAAY,KAAK,UAAU,CAAC,UAAU;IACtC,gBAAgB,OAAO,OAAO,KAAK,SAAS,CAAC;IAC7C,YAAY,KAAK,UAAU,CAAC,aAAa;IACzC,gBAAgB,OAAO,OAAO,OAAO,KAAK,QAAQ,IAAI,OAAO,OAAO,KAAK,QAAQ,CAAC;IAClF,YAAY,KAAK,UAAU,CAAC,KAAK,CAAC;IAClC,YAAY,KAAK,UAAU,CAAC,YAAY;IACxC,gBAAgB,OAAO,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC;IACpE,YAAY,KAAK,UAAU,CAAC,GAAG,CAAC;IAChC,YAAY,KAAK,UAAU,CAAC,UAAU;IACtC,gBAAgB,OAAO,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IAC9C,SAAS;IACT,KAAK;IACL;IACA;IACA;IACA,IAAI,OAAO,GAAG;IACd,QAAQ,IAAI,IAAI,CAAC,aAAa,EAAE;IAChC,YAAY,IAAI,CAAC,aAAa,CAAC,sBAAsB,EAAE,CAAC;IACxD,SAAS;IACT,KAAK;IACL,CAAC;IACD;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA,MAAM,mBAAmB,CAAC;IAC1B,IAAI,WAAW,CAAC,MAAM,EAAE;IACxB,QAAQ,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IAC7B,QAAQ,IAAI,CAAC,OAAO,GAAG,EAAE,CAAC;IAC1B,QAAQ,IAAI,CAAC,SAAS,GAAG,MAAM,CAAC;IAChC,KAAK;IACL;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA,IAAI,cAAc,CAAC,OAAO,EAAE;IAC5B,QAAQ,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACnC,QAAQ,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,KAAK,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE;IAChE;IACA,YAAY,MAAM,MAAM,GAAG,iBAAiB,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;IAC3E,YAAY,IAAI,CAAC,sBAAsB,EAAE,CAAC;IAC1C,YAAY,OAAO,MAAM,CAAC;IAC1B,SAAS;IACT,QAAQ,OAAO,IAAI,CAAC;IACpB,KAAK;IACL;IACA;IACA;IACA,IAAI,sBAAsB,GAAG;IAC7B,QAAQ,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;IAC9B,QAAQ,IAAI,CAAC,OAAO,GAAG,EAAE,CAAC;IAC1B,KAAK;IACL;;;;;;;;;;IC/RO,SAAS,EAAE,CAAC,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE;IAChC,IAAI,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;IACnB,IAAI,OAAO,SAAS,UAAU,GAAG;IACjC,QAAQ,GAAG,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;IACxB,KAAK,CAAC;IACN;;ICFA;IACA;IACA;IACA;IACA,MAAM,eAAe,GAAG,MAAM,CAAC,MAAM,CAAC;IACtC,IAAI,OAAO,EAAE,CAAC;IACd,IAAI,aAAa,EAAE,CAAC;IACpB,IAAI,UAAU,EAAE,CAAC;IACjB,IAAI,aAAa,EAAE,CAAC;IACpB;IACA,IAAI,WAAW,EAAE,CAAC;IAClB,IAAI,cAAc,EAAE,CAAC;IACrB,CAAC,CAAC,CAAC;IACH;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACO,MAAM,MAAM,SAAS,OAAO,CAAC;IACpC;IACA;IACA;IACA,IAAI,WAAW,CAAC,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE;IAC/B,QAAQ,KAAK,EAAE,CAAC;IAChB;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA,QAAQ,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;IAC/B;IACA;IACA;IACA,QAAQ,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;IAChC;IACA;IACA;IACA,QAAQ,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC;IAC7B,QAAQ,IAAI,CAAC,GAAG,GAAG,CAAC,CAAC;IACrB,QAAQ,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC;IACvB,QAAQ,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;IACxB,QAAQ,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC;IACrB,QAAQ,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;IACvB,QAAQ,IAAI,IAAI,IAAI,IAAI,CAAC,IAAI,EAAE;IAC/B,YAAY,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;IAClC,SAAS;IACT,QAAQ,IAAI,IAAI,CAAC,EAAE,CAAC,YAAY;IAChC,YAAY,IAAI,CAAC,IAAI,EAAE,CAAC;IACxB,KAAK;IACL;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA,IAAI,IAAI,YAAY,GAAG;IACvB,QAAQ,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC;IAC/B,KAAK;IACL;IACA;IACA;IACA;IACA;IACA,IAAI,SAAS,GAAG;IAChB,QAAQ,IAAI,IAAI,CAAC,IAAI;IACrB,YAAY,OAAO;IACnB,QAAQ,MAAM,EAAE,GAAG,IAAI,CAAC,EAAE,CAAC;IAC3B,QAAQ,IAAI,CAAC,IAAI,GAAG;IACpB,YAAY,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAClD,YAAY,EAAE,CAAC,EAAE,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACtD,YAAY,EAAE,CAAC,EAAE,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACpD,YAAY,EAAE,CAAC,EAAE,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACpD,SAAS,CAAC;IACV,KAAK;IACL;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA,IAAI,IAAI,MAAM,GAAG;IACjB,QAAQ,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;IAC3B,KAAK;IACL;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA,IAAI,OAAO,GAAG;IACd,QAAQ,IAAI,IAAI,CAAC,SAAS;IAC1B,YAAY,OAAO,IAAI,CAAC;IACxB,QAAQ,IAAI,CAAC,SAAS,EAAE,CAAC;IACzB,QAAQ,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,eAAe,CAAC;IACrC,YAAY,IAAI,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC;IAC3B,QAAQ,IAAI,MAAM,KAAK,IAAI,CAAC,EAAE,CAAC,WAAW;IAC1C,YAAY,IAAI,CAAC,MAAM,EAAE,CAAC;IAC1B,QAAQ,OAAO,IAAI,CAAC;IACpB,KAAK;IACL;IACA;IACA;IACA,IAAI,IAAI,GAAG;IACX,QAAQ,OAAO,IAAI,CAAC,OAAO,EAAE,CAAC;IAC9B,KAAK;IACL;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA,IAAI,IAAI,CAAC,GAAG,IAAI,EAAE;IAClB,QAAQ,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IAChC,QAAQ,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IACpC,QAAQ,OAAO,IAAI,CAAC;IACpB,KAAK;IACL;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA,IAAI,IAAI,CAAC,EAAE,EAAE,GAAG,IAAI,EAAE;IACtB,QAAQ,IAAI,eAAe,CAAC,cAAc,CAAC,EAAE,CAAC,EAAE;IAChD,YAAY,MAAM,IAAI,KAAK,CAAC,GAAG,GAAG,EAAE,CAAC,QAAQ,EAAE,GAAG,4BAA4B,CAAC,CAAC;IAChF,SAAS;IACT,QAAQ,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IACzB,QAAQ,MAAM,MAAM,GAAG;IACvB,YAAY,IAAI,EAAE,UAAU,CAAC,KAAK;IAClC,YAAY,IAAI,EAAE,IAAI;IACtB,SAAS,CAAC;IACV,QAAQ,MAAM,CAAC,OAAO,GAAG,EAAE,CAAC;IAC5B,QAAQ,MAAM,CAAC,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,KAAK,KAAK,CAAC;IAChE;IACA,QAAQ,IAAI,UAAU,KAAK,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,EAAE;IACzD,YAAY,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IAClC,YAAY,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IACnC,YAAY,IAAI,CAAC,oBAAoB,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC;IAC/C,YAAY,MAAM,CAAC,EAAE,GAAG,EAAE,CAAC;IAC3B,SAAS;IACT,QAAQ,MAAM,mBAAmB,GAAG,IAAI,CAAC,EAAE,CAAC,MAAM;IAClD,YAAY,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,SAAS;IACpC,YAAY,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC;IAC9C,QAAQ,MAAM,aAAa,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,KAAK,CAAC,mBAAmB,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IAC/F,QAAQ,IAAI,aAAa,EAAE,CAClB;IACT,aAAa,IAAI,IAAI,CAAC,SAAS,EAAE;IACjC,YAAY,IAAI,CAAC,uBAAuB,CAAC,MAAM,CAAC,CAAC;IACjD,YAAY,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IAChC,SAAS;IACT,aAAa;IACb,YAAY,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACzC,SAAS;IACT,QAAQ,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;IACxB,QAAQ,OAAO,IAAI,CAAC;IACpB,KAAK;IACL;IACA;IACA;IACA,IAAI,oBAAoB,CAAC,EAAE,EAAE,GAAG,EAAE;IAClC,QAAQ,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC;IAC3C,QAAQ,IAAI,OAAO,KAAK,SAAS,EAAE;IACnC,YAAY,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC;IAChC,YAAY,OAAO;IACnB,SAAS;IACT;IACA,QAAQ,MAAM,KAAK,GAAG,IAAI,CAAC,EAAE,CAAC,YAAY,CAAC,MAAM;IACjD,YAAY,OAAO,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACjC,YAAY,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;IAC7D,gBAAgB,IAAI,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE;IAClD,oBAAoB,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACjD,iBAAiB;IACjB,aAAa;IACb,YAAY,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC,CAAC;IACjE,SAAS,EAAE,OAAO,CAAC,CAAC;IACpB,QAAQ,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,IAAI,KAAK;IACrC;IACA,YAAY,IAAI,CAAC,EAAE,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;IAC1C,YAAY,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC;IAC7C,SAAS,CAAC;IACV,KAAK;IACL;IACA;IACA;IACA;IACA;IACA;IACA,IAAI,MAAM,CAAC,MAAM,EAAE;IACnB,QAAQ,MAAM,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC;IAC9B,QAAQ,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IAChC,KAAK;IACL;IACA;IACA;IACA;IACA;IACA,IAAI,MAAM,GAAG;IACb,QAAQ,IAAI,OAAO,IAAI,CAAC,IAAI,IAAI,UAAU,EAAE;IAC5C,YAAY,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,KAAK;IAChC,gBAAgB,IAAI,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,UAAU,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;IAChE,aAAa,CAAC,CAAC;IACf,SAAS;IACT,aAAa;IACb,YAAY,IAAI,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,UAAU,CAAC,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;IACvE,SAAS;IACT,KAAK;IACL;IACA;IACA;IACA;IACA;IACA;IACA,IAAI,OAAO,CAAC,GAAG,EAAE;IACjB,QAAQ,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;IAC7B,YAAY,IAAI,CAAC,YAAY,CAAC,eAAe,EAAE,GAAG,CAAC,CAAC;IACpD,SAAS;IACT,KAAK;IACL;IACA;IACA;IACA;IACA;IACA;IACA;IACA,IAAI,OAAO,CAAC,MAAM,EAAE,WAAW,EAAE;IACjC,QAAQ,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;IAC/B,QAAQ,OAAO,IAAI,CAAC,EAAE,CAAC;IACvB,QAAQ,IAAI,CAAC,YAAY,CAAC,YAAY,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC;IAC7D,KAAK;IACL;IACA;IACA;IACA;IACA;IACA;IACA,IAAI,QAAQ,CAAC,MAAM,EAAE;IACrB,QAAQ,MAAM,aAAa,GAAG,MAAM,CAAC,GAAG,KAAK,IAAI,CAAC,GAAG,CAAC;IACtD,QAAQ,IAAI,CAAC,aAAa;IAC1B,YAAY,OAAO;IACnB,QAAQ,QAAQ,MAAM,CAAC,IAAI;IAC3B,YAAY,KAAK,UAAU,CAAC,OAAO;IACnC,gBAAgB,IAAI,MAAM,CAAC,IAAI,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE;IACpD,oBAAoB,MAAM,EAAE,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC;IAC/C,oBAAoB,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;IACvC,iBAAiB;IACjB,qBAAqB;IACrB,oBAAoB,IAAI,CAAC,YAAY,CAAC,eAAe,EAAE,IAAI,KAAK,CAAC,2LAA2L,CAAC,CAAC,CAAC;IAC/P,iBAAiB;IACjB,gBAAgB,MAAM;IACtB,YAAY,KAAK,UAAU,CAAC,KAAK,CAAC;IAClC,YAAY,KAAK,UAAU,CAAC,YAAY;IACxC,gBAAgB,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IACrC,gBAAgB,MAAM;IACtB,YAAY,KAAK,UAAU,CAAC,GAAG,CAAC;IAChC,YAAY,KAAK,UAAU,CAAC,UAAU;IACtC,gBAAgB,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IACnC,gBAAgB,MAAM;IACtB,YAAY,KAAK,UAAU,CAAC,UAAU;IACtC,gBAAgB,IAAI,CAAC,YAAY,EAAE,CAAC;IACpC,gBAAgB,MAAM;IACtB,YAAY,KAAK,UAAU,CAAC,aAAa;IACzC,gBAAgB,IAAI,CAAC,OAAO,EAAE,CAAC;IAC/B,gBAAgB,MAAM,GAAG,GAAG,IAAI,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAC3D;IACA,gBAAgB,GAAG,CAAC,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC;IAC5C,gBAAgB,IAAI,CAAC,YAAY,CAAC,eAAe,EAAE,GAAG,CAAC,CAAC;IACxD,gBAAgB,MAAM;IACtB,SAAS;IACT,KAAK;IACL;IACA;IACA;IACA;IACA;IACA;IACA,IAAI,OAAO,CAAC,MAAM,EAAE;IACpB,QAAQ,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC;IACvC,QAAQ,IAAI,IAAI,IAAI,MAAM,CAAC,EAAE,EAAE;IAC/B,YAAY,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;IAC3C,SAAS;IACT,QAAQ,IAAI,IAAI,CAAC,SAAS,EAAE;IAC5B,YAAY,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;IACjC,SAAS;IACT,aAAa;IACb,YAAY,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;IACzD,SAAS;IACT,KAAK;IACL,IAAI,SAAS,CAAC,IAAI,EAAE;IACpB,QAAQ,IAAI,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE;IAC7D,YAAY,MAAM,SAAS,GAAG,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC;IACzD,YAAY,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE;IAC9C,gBAAgB,QAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IAC3C,aAAa;IACb,SAAS;IACT,QAAQ,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IACrC,KAAK;IACL;IACA;IACA;IACA;IACA;IACA,IAAI,GAAG,CAAC,EAAE,EAAE;IACZ,QAAQ,MAAM,IAAI,GAAG,IAAI,CAAC;IAC1B,QAAQ,IAAI,IAAI,GAAG,KAAK,CAAC;IACzB,QAAQ,OAAO,UAAU,GAAG,IAAI,EAAE;IAClC;IACA,YAAY,IAAI,IAAI;IACpB,gBAAgB,OAAO;IACvB,YAAY,IAAI,GAAG,IAAI,CAAC;IACxB,YAAY,IAAI,CAAC,MAAM,CAAC;IACxB,gBAAgB,IAAI,EAAE,UAAU,CAAC,GAAG;IACpC,gBAAgB,EAAE,EAAE,EAAE;IACtB,gBAAgB,IAAI,EAAE,IAAI;IAC1B,aAAa,CAAC,CAAC;IACf,SAAS,CAAC;IACV,KAAK;IACL;IACA;IACA;IACA;IACA;IACA;IACA,IAAI,KAAK,CAAC,MAAM,EAAE;IAClB,QAAQ,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IACzC,QAAQ,IAAI,UAAU,KAAK,OAAO,GAAG,EAAE;IACvC,YAAY,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;IACzC,YAAY,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IACxC,SAES;IACT,KAAK;IACL;IACA;IACA;IACA;IACA;IACA,IAAI,SAAS,CAAC,EAAE,EAAE;IAClB,QAAQ,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC;IACrB,QAAQ,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;IAC9B,QAAQ,IAAI,CAAC,YAAY,EAAE,CAAC;IAC5B,QAAQ,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC;IACrC,KAAK;IACL;IACA;IACA;IACA;IACA;IACA,IAAI,YAAY,GAAG;IACnB,QAAQ,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC;IACnE,QAAQ,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;IAChC,QAAQ,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,MAAM,KAAK;IAC5C,YAAY,IAAI,CAAC,uBAAuB,CAAC,MAAM,CAAC,CAAC;IACjD,YAAY,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IAChC,SAAS,CAAC,CAAC;IACX,QAAQ,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC;IAC7B,KAAK;IACL;IACA;IACA;IACA;IACA;IACA,IAAI,YAAY,GAAG;IACnB,QAAQ,IAAI,CAAC,OAAO,EAAE,CAAC;IACvB,QAAQ,IAAI,CAAC,OAAO,CAAC,sBAAsB,CAAC,CAAC;IAC7C,KAAK;IACL;IACA;IACA;IACA;IACA;IACA;IACA;IACA,IAAI,OAAO,GAAG;IACd,QAAQ,IAAI,IAAI,CAAC,IAAI,EAAE;IACvB;IACA,YAAY,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,UAAU,KAAK,UAAU,EAAE,CAAC,CAAC;IAC5D,YAAY,IAAI,CAAC,IAAI,GAAG,SAAS,CAAC;IAClC,SAAS;IACT,QAAQ,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,CAAC;IAClC,KAAK;IACL;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA,IAAI,UAAU,GAAG;IACjB,QAAQ,IAAI,IAAI,CAAC,SAAS,EAAE;IAC5B,YAAY,IAAI,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,UAAU,CAAC,UAAU,EAAE,CAAC,CAAC;IACzD,SAAS;IACT;IACA,QAAQ,IAAI,CAAC,OAAO,EAAE,CAAC;IACvB,QAAQ,IAAI,IAAI,CAAC,SAAS,EAAE;IAC5B;IACA,YAAY,IAAI,CAAC,OAAO,CAAC,sBAAsB,CAAC,CAAC;IACjD,SAAS;IACT,QAAQ,OAAO,IAAI,CAAC;IACpB,KAAK;IACL;IACA;IACA;IACA;IACA;IACA,IAAI,KAAK,GAAG;IACZ,QAAQ,OAAO,IAAI,CAAC,UAAU,EAAE,CAAC;IACjC,KAAK;IACL;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA,IAAI,QAAQ,CAAC,QAAQ,EAAE;IACvB,QAAQ,IAAI,CAAC,KAAK,CAAC,QAAQ,GAAG,QAAQ,CAAC;IACvC,QAAQ,OAAO,IAAI,CAAC;IACpB,KAAK;IACL;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA,IAAI,IAAI,QAAQ,GAAG;IACnB,QAAQ,IAAI,CAAC,KAAK,CAAC,QAAQ,GAAG,IAAI,CAAC;IACnC,QAAQ,OAAO,IAAI,CAAC;IACpB,KAAK;IACL;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA,IAAI,OAAO,CAAC,OAAO,EAAE;IACrB,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,OAAO,CAAC;IACrC,QAAQ,OAAO,IAAI,CAAC;IACpB,KAAK;IACL;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA,IAAI,KAAK,CAAC,QAAQ,EAAE;IACpB,QAAQ,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,aAAa,IAAI,EAAE,CAAC;IACtD,QAAQ,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAC1C,QAAQ,OAAO,IAAI,CAAC;IACpB,KAAK;IACL;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA,IAAI,UAAU,CAAC,QAAQ,EAAE;IACzB,QAAQ,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,aAAa,IAAI,EAAE,CAAC;IACtD,QAAQ,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IAC7C,QAAQ,OAAO,IAAI,CAAC;IACpB,KAAK;IACL;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA,IAAI,MAAM,CAAC,QAAQ,EAAE;IACrB,QAAQ,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE;IACjC,YAAY,OAAO,IAAI,CAAC;IACxB,SAAS;IACT,QAAQ,IAAI,QAAQ,EAAE;IACtB,YAAY,MAAM,SAAS,GAAG,IAAI,CAAC,aAAa,CAAC;IACjD,YAAY,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;IACvD,gBAAgB,IAAI,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE;IAC/C,oBAAoB,SAAS,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAC3C,oBAAoB,OAAO,IAAI,CAAC;IAChC,iBAAiB;IACjB,aAAa;IACb,SAAS;IACT,aAAa;IACb,YAAY,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;IACpC,SAAS;IACT,QAAQ,OAAO,IAAI,CAAC;IACpB,KAAK;IACL;IACA;IACA;IACA;IACA,IAAI,YAAY,GAAG;IACnB,QAAQ,OAAO,IAAI,CAAC,aAAa,IAAI,EAAE,CAAC;IACxC,KAAK;IACL;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA,IAAI,aAAa,CAAC,QAAQ,EAAE;IAC5B,QAAQ,IAAI,CAAC,qBAAqB,GAAG,IAAI,CAAC,qBAAqB,IAAI,EAAE,CAAC;IACtE,QAAQ,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAClD,QAAQ,OAAO,IAAI,CAAC;IACpB,KAAK;IACL;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA,IAAI,kBAAkB,CAAC,QAAQ,EAAE;IACjC,QAAQ,IAAI,CAAC,qBAAqB,GAAG,IAAI,CAAC,qBAAqB,IAAI,EAAE,CAAC;IACtE,QAAQ,IAAI,CAAC,qBAAqB,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IACrD,QAAQ,OAAO,IAAI,CAAC;IACpB,KAAK;IACL;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA,IAAI,cAAc,CAAC,QAAQ,EAAE;IAC7B,QAAQ,IAAI,CAAC,IAAI,CAAC,qBAAqB,EAAE;IACzC,YAAY,OAAO,IAAI,CAAC;IACxB,SAAS;IACT,QAAQ,IAAI,QAAQ,EAAE;IACtB,YAAY,MAAM,SAAS,GAAG,IAAI,CAAC,qBAAqB,CAAC;IACzD,YAAY,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;IACvD,gBAAgB,IAAI,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE;IAC/C,oBAAoB,SAAS,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAC3C,oBAAoB,OAAO,IAAI,CAAC;IAChC,iBAAiB;IACjB,aAAa;IACb,SAAS;IACT,aAAa;IACb,YAAY,IAAI,CAAC,qBAAqB,GAAG,EAAE,CAAC;IAC5C,SAAS;IACT,QAAQ,OAAO,IAAI,CAAC;IACpB,KAAK;IACL;IACA;IACA;IACA;IACA,IAAI,oBAAoB,GAAG;IAC3B,QAAQ,OAAO,IAAI,CAAC,qBAAqB,IAAI,EAAE,CAAC;IAChD,KAAK;IACL;IACA;IACA;IACA;IACA;IACA;IACA;IACA,IAAI,uBAAuB,CAAC,MAAM,EAAE;IACpC,QAAQ,IAAI,IAAI,CAAC,qBAAqB,IAAI,IAAI,CAAC,qBAAqB,CAAC,MAAM,EAAE;IAC7E,YAAY,MAAM,SAAS,GAAG,IAAI,CAAC,qBAAqB,CAAC,KAAK,EAAE,CAAC;IACjE,YAAY,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE;IAC9C,gBAAgB,QAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;IAClD,aAAa;IACb,SAAS;IACT,KAAK;IACL;;IC9rBA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACO,SAAS,OAAO,CAAC,IAAI,EAAE;IAC9B,IAAI,IAAI,GAAG,IAAI,IAAI,EAAE,CAAC;IACtB,IAAI,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,GAAG,IAAI,GAAG,CAAC;IAC9B,IAAI,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,IAAI,KAAK,CAAC;IACjC,IAAI,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,IAAI,CAAC,CAAC;IACnC,IAAI,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,IAAI,IAAI,CAAC,MAAM,IAAI,CAAC,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;IACxE,IAAI,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC;IACtB,CAAC;IACD;IACA;IACA;IACA;IACA;IACA;IACA,OAAO,CAAC,SAAS,CAAC,QAAQ,GAAG,YAAY;IACzC,IAAI,IAAI,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;IAC9D,IAAI,IAAI,IAAI,CAAC,MAAM,EAAE;IACrB,QAAQ,IAAI,IAAI,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;IACjC,QAAQ,IAAI,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC;IAC5D,QAAQ,EAAE,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,EAAE,GAAG,SAAS,GAAG,EAAE,GAAG,SAAS,CAAC;IAChF,KAAK;IACL,IAAI,OAAO,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IACtC,CAAC,CAAC;IACF;IACA;IACA;IACA;IACA;IACA,OAAO,CAAC,SAAS,CAAC,KAAK,GAAG,YAAY;IACtC,IAAI,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC;IACtB,CAAC,CAAC;IACF;IACA;IACA;IACA;IACA;IACA,OAAO,CAAC,SAAS,CAAC,MAAM,GAAG,UAAU,GAAG,EAAE;IAC1C,IAAI,IAAI,CAAC,EAAE,GAAG,GAAG,CAAC;IAClB,CAAC,CAAC;IACF;IACA;IACA;IACA;IACA;IACA,OAAO,CAAC,SAAS,CAAC,MAAM,GAAG,UAAU,GAAG,EAAE;IAC1C,IAAI,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;IACnB,CAAC,CAAC;IACF;IACA;IACA;IACA;IACA;IACA,OAAO,CAAC,SAAS,CAAC,SAAS,GAAG,UAAU,MAAM,EAAE;IAChD,IAAI,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACzB,CAAC;;IC3DM,MAAM,OAAO,SAAS,OAAO,CAAC;IACrC,IAAI,WAAW,CAAC,GAAG,EAAE,IAAI,EAAE;IAC3B,QAAQ,IAAI,EAAE,CAAC;IACf,QAAQ,KAAK,EAAE,CAAC;IAChB,QAAQ,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC;IACvB,QAAQ,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC;IACvB,QAAQ,IAAI,GAAG,IAAI,QAAQ,KAAK,OAAO,GAAG,EAAE;IAC5C,YAAY,IAAI,GAAG,GAAG,CAAC;IACvB,YAAY,GAAG,GAAG,SAAS,CAAC;IAC5B,SAAS;IACT,QAAQ,IAAI,GAAG,IAAI,IAAI,EAAE,CAAC;IAC1B,QAAQ,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,IAAI,YAAY,CAAC;IAC9C,QAAQ,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACzB,QAAQ,qBAAqB,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IAC1C,QAAQ,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,YAAY,KAAK,KAAK,CAAC,CAAC;IACvD,QAAQ,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,oBAAoB,IAAI,QAAQ,CAAC,CAAC;IACzE,QAAQ,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,iBAAiB,IAAI,IAAI,CAAC,CAAC;IAC/D,QAAQ,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,oBAAoB,IAAI,IAAI,CAAC,CAAC;IACrE,QAAQ,IAAI,CAAC,mBAAmB,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC,mBAAmB,MAAM,IAAI,IAAI,EAAE,KAAK,KAAK,CAAC,GAAG,EAAE,GAAG,GAAG,CAAC,CAAC;IACvG,QAAQ,IAAI,CAAC,OAAO,GAAG,IAAI,OAAO,CAAC;IACnC,YAAY,GAAG,EAAE,IAAI,CAAC,iBAAiB,EAAE;IACzC,YAAY,GAAG,EAAE,IAAI,CAAC,oBAAoB,EAAE;IAC5C,YAAY,MAAM,EAAE,IAAI,CAAC,mBAAmB,EAAE;IAC9C,SAAS,CAAC,CAAC;IACX,QAAQ,IAAI,CAAC,OAAO,CAAC,IAAI,IAAI,IAAI,CAAC,OAAO,GAAG,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC;IAClE,QAAQ,IAAI,CAAC,WAAW,GAAG,QAAQ,CAAC;IACpC,QAAQ,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;IACvB,QAAQ,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC;IAC9C,QAAQ,IAAI,CAAC,OAAO,GAAG,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;IAC7C,QAAQ,IAAI,CAAC,OAAO,GAAG,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;IAC7C,QAAQ,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,WAAW,KAAK,KAAK,CAAC;IACvD,QAAQ,IAAI,IAAI,CAAC,YAAY;IAC7B,YAAY,IAAI,CAAC,IAAI,EAAE,CAAC;IACxB,KAAK;IACL,IAAI,YAAY,CAAC,CAAC,EAAE;IACpB,QAAQ,IAAI,CAAC,SAAS,CAAC,MAAM;IAC7B,YAAY,OAAO,IAAI,CAAC,aAAa,CAAC;IACtC,QAAQ,IAAI,CAAC,aAAa,GAAG,CAAC,CAAC,CAAC,CAAC;IACjC,QAAQ,OAAO,IAAI,CAAC;IACpB,KAAK;IACL,IAAI,oBAAoB,CAAC,CAAC,EAAE;IAC5B,QAAQ,IAAI,CAAC,KAAK,SAAS;IAC3B,YAAY,OAAO,IAAI,CAAC,qBAAqB,CAAC;IAC9C,QAAQ,IAAI,CAAC,qBAAqB,GAAG,CAAC,CAAC;IACvC,QAAQ,OAAO,IAAI,CAAC;IACpB,KAAK;IACL,IAAI,iBAAiB,CAAC,CAAC,EAAE;IACzB,QAAQ,IAAI,EAAE,CAAC;IACf,QAAQ,IAAI,CAAC,KAAK,SAAS;IAC3B,YAAY,OAAO,IAAI,CAAC,kBAAkB,CAAC;IAC3C,QAAQ,IAAI,CAAC,kBAAkB,GAAG,CAAC,CAAC;IACpC,QAAQ,CAAC,EAAE,GAAG,IAAI,CAAC,OAAO,MAAM,IAAI,IAAI,EAAE,KAAK,KAAK,CAAC,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;IAC9E,QAAQ,OAAO,IAAI,CAAC;IACpB,KAAK;IACL,IAAI,mBAAmB,CAAC,CAAC,EAAE;IAC3B,QAAQ,IAAI,EAAE,CAAC;IACf,QAAQ,IAAI,CAAC,KAAK,SAAS;IAC3B,YAAY,OAAO,IAAI,CAAC,oBAAoB,CAAC;IAC7C,QAAQ,IAAI,CAAC,oBAAoB,GAAG,CAAC,CAAC;IACtC,QAAQ,CAAC,EAAE,GAAG,IAAI,CAAC,OAAO,MAAM,IAAI,IAAI,EAAE,KAAK,KAAK,CAAC,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;IACjF,QAAQ,OAAO,IAAI,CAAC;IACpB,KAAK;IACL,IAAI,oBAAoB,CAAC,CAAC,EAAE;IAC5B,QAAQ,IAAI,EAAE,CAAC;IACf,QAAQ,IAAI,CAAC,KAAK,SAAS;IAC3B,YAAY,OAAO,IAAI,CAAC,qBAAqB,CAAC;IAC9C,QAAQ,IAAI,CAAC,qBAAqB,GAAG,CAAC,CAAC;IACvC,QAAQ,CAAC,EAAE,GAAG,IAAI,CAAC,OAAO,MAAM,IAAI,IAAI,EAAE,KAAK,KAAK,CAAC,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;IAC9E,QAAQ,OAAO,IAAI,CAAC;IACpB,KAAK;IACL,IAAI,OAAO,CAAC,CAAC,EAAE;IACf,QAAQ,IAAI,CAAC,SAAS,CAAC,MAAM;IAC7B,YAAY,OAAO,IAAI,CAAC,QAAQ,CAAC;IACjC,QAAQ,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC;IAC1B,QAAQ,OAAO,IAAI,CAAC;IACpB,KAAK;IACL;IACA;IACA;IACA;IACA;IACA;IACA,IAAI,oBAAoB,GAAG;IAC3B;IACA,QAAQ,IAAI,CAAC,IAAI,CAAC,aAAa;IAC/B,YAAY,IAAI,CAAC,aAAa;IAC9B,YAAY,IAAI,CAAC,OAAO,CAAC,QAAQ,KAAK,CAAC,EAAE;IACzC;IACA,YAAY,IAAI,CAAC,SAAS,EAAE,CAAC;IAC7B,SAAS;IACT,KAAK;IACL;IACA;IACA;IACA;IACA;IACA;IACA;IACA,IAAI,IAAI,CAAC,EAAE,EAAE;IACb,QAAQ,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,MAAM,CAAC;IAC7C,YAAY,OAAO,IAAI,CAAC;IACxB,QAAQ,IAAI,CAAC,MAAM,GAAG,IAAIM,QAAM,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;IACtD,QAAQ,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;IACnC,QAAQ,MAAM,IAAI,GAAG,IAAI,CAAC;IAC1B,QAAQ,IAAI,CAAC,WAAW,GAAG,SAAS,CAAC;IACrC,QAAQ,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;IACnC;IACA,QAAQ,MAAM,cAAc,GAAG,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,YAAY;IAC9D,YAAY,IAAI,CAAC,MAAM,EAAE,CAAC;IAC1B,YAAY,EAAE,IAAI,EAAE,EAAE,CAAC;IACvB,SAAS,CAAC,CAAC;IACX;IACA,QAAQ,MAAM,QAAQ,GAAG,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,CAAC,GAAG,KAAK;IACtD,YAAY,IAAI,CAAC,OAAO,EAAE,CAAC;IAC3B,YAAY,IAAI,CAAC,WAAW,GAAG,QAAQ,CAAC;IACxC,YAAY,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;IAC5C,YAAY,IAAI,EAAE,EAAE;IACpB,gBAAgB,EAAE,CAAC,GAAG,CAAC,CAAC;IACxB,aAAa;IACb,iBAAiB;IACjB;IACA,gBAAgB,IAAI,CAAC,oBAAoB,EAAE,CAAC;IAC5C,aAAa;IACb,SAAS,CAAC,CAAC;IACX,QAAQ,IAAI,KAAK,KAAK,IAAI,CAAC,QAAQ,EAAE;IACrC,YAAY,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC;IAC1C,YAAY,IAAI,OAAO,KAAK,CAAC,EAAE;IAC/B,gBAAgB,cAAc,EAAE,CAAC;IACjC,aAAa;IACb;IACA,YAAY,MAAM,KAAK,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM;IAClD,gBAAgB,cAAc,EAAE,CAAC;IACjC,gBAAgB,MAAM,CAAC,KAAK,EAAE,CAAC;IAC/B;IACA,gBAAgB,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC;IAC3D,aAAa,EAAE,OAAO,CAAC,CAAC;IACxB,YAAY,IAAI,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;IACrC,gBAAgB,KAAK,CAAC,KAAK,EAAE,CAAC;IAC9B,aAAa;IACb,YAAY,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,UAAU,GAAG;IACjD,gBAAgB,YAAY,CAAC,KAAK,CAAC,CAAC;IACpC,aAAa,CAAC,CAAC;IACf,SAAS;IACT,QAAQ,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;IACvC,QAAQ,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACjC,QAAQ,OAAO,IAAI,CAAC;IACpB,KAAK;IACL;IACA;IACA;IACA;IACA;IACA;IACA,IAAI,OAAO,CAAC,EAAE,EAAE;IAChB,QAAQ,OAAO,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAC7B,KAAK;IACL;IACA;IACA;IACA;IACA;IACA,IAAI,MAAM,GAAG;IACb;IACA,QAAQ,IAAI,CAAC,OAAO,EAAE,CAAC;IACvB;IACA,QAAQ,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC;IAClC,QAAQ,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;IAClC;IACA,QAAQ,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;IACnC,QAAQ,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACnQ,KAAK;IACL;IACA;IACA;IACA;IACA;IACA,IAAI,MAAM,GAAG;IACb,QAAQ,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;IAClC,KAAK;IACL;IACA;IACA;IACA;IACA;IACA,IAAI,MAAM,CAAC,IAAI,EAAE;IACjB,QAAQ,IAAI;IACZ,YAAY,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACnC,SAAS;IACT,QAAQ,OAAO,CAAC,EAAE;IAClB,YAAY,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC;IAC3C,SAAS;IACT,KAAK;IACL;IACA;IACA;IACA;IACA;IACA,IAAI,SAAS,CAAC,MAAM,EAAE;IACtB;IACA,QAAQ,QAAQ,CAAC,MAAM;IACvB,YAAY,IAAI,CAAC,YAAY,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;IAChD,SAAS,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;IAC9B,KAAK;IACL;IACA;IACA;IACA;IACA;IACA,IAAI,OAAO,CAAC,GAAG,EAAE;IACjB,QAAQ,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;IACxC,KAAK;IACL;IACA;IACA;IACA;IACA;IACA;IACA,IAAI,MAAM,CAAC,GAAG,EAAE,IAAI,EAAE;IACtB,QAAQ,IAAI,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACpC,QAAQ,IAAI,CAAC,MAAM,EAAE;IACrB,YAAY,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC;IACjD,YAAY,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC;IACpC,SAAS;IACT,QAAQ,OAAO,MAAM,CAAC;IACtB,KAAK;IACL;IACA;IACA;IACA;IACA;IACA;IACA,IAAI,QAAQ,CAAC,MAAM,EAAE;IACrB,QAAQ,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC5C,QAAQ,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE;IAChC,YAAY,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC1C,YAAY,IAAI,MAAM,CAAC,MAAM,EAAE;IAC/B,gBAAgB,OAAO;IACvB,aAAa;IACb,SAAS;IACT,QAAQ,IAAI,CAAC,MAAM,EAAE,CAAC;IACtB,KAAK;IACL;IACA;IACA;IACA;IACA;IACA;IACA,IAAI,OAAO,CAAC,MAAM,EAAE;IACpB,QAAQ,MAAM,cAAc,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IAC3D,QAAQ,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,cAAc,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;IACxD,YAAY,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;IACjE,SAAS;IACT,KAAK;IACL;IACA;IACA;IACA;IACA;IACA,IAAI,OAAO,GAAG;IACd,QAAQ,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,UAAU,KAAK,UAAU,EAAE,CAAC,CAAC;IACxD,QAAQ,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;IAC7B,QAAQ,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;IAC/B,KAAK;IACL;IACA;IACA;IACA;IACA;IACA,IAAI,MAAM,GAAG;IACb,QAAQ,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;IAClC,QAAQ,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;IACnC,QAAQ,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;IACrC,QAAQ,IAAI,IAAI,CAAC,MAAM;IACvB,YAAY,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;IAChC,KAAK;IACL;IACA;IACA;IACA;IACA;IACA,IAAI,UAAU,GAAG;IACjB,QAAQ,OAAO,IAAI,CAAC,MAAM,EAAE,CAAC;IAC7B,KAAK;IACL;IACA;IACA;IACA;IACA;IACA,IAAI,OAAO,CAAC,MAAM,EAAE,WAAW,EAAE;IACjC,QAAQ,IAAI,CAAC,OAAO,EAAE,CAAC;IACvB,QAAQ,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;IAC7B,QAAQ,IAAI,CAAC,WAAW,GAAG,QAAQ,CAAC;IACpC,QAAQ,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC;IACxD,QAAQ,IAAI,IAAI,CAAC,aAAa,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE;IACvD,YAAY,IAAI,CAAC,SAAS,EAAE,CAAC;IAC7B,SAAS;IACT,KAAK;IACL;IACA;IACA;IACA;IACA;IACA,IAAI,SAAS,GAAG;IAChB,QAAQ,IAAI,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,aAAa;IACpD,YAAY,OAAO,IAAI,CAAC;IACxB,QAAQ,MAAM,IAAI,GAAG,IAAI,CAAC;IAC1B,QAAQ,IAAI,IAAI,CAAC,OAAO,CAAC,QAAQ,IAAI,IAAI,CAAC,qBAAqB,EAAE;IACjE,YAAY,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;IACjC,YAAY,IAAI,CAAC,YAAY,CAAC,kBAAkB,CAAC,CAAC;IAClD,YAAY,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;IACvC,SAAS;IACT,aAAa;IACb,YAAY,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC;IAClD,YAAY,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;IACtC,YAAY,MAAM,KAAK,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM;IAClD,gBAAgB,IAAI,IAAI,CAAC,aAAa;IACtC,oBAAoB,OAAO;IAC3B,gBAAgB,IAAI,CAAC,YAAY,CAAC,mBAAmB,EAAE,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IAC9E;IACA,gBAAgB,IAAI,IAAI,CAAC,aAAa;IACtC,oBAAoB,OAAO;IAC3B,gBAAgB,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,KAAK;IACnC,oBAAoB,IAAI,GAAG,EAAE;IAC7B,wBAAwB,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;IACnD,wBAAwB,IAAI,CAAC,SAAS,EAAE,CAAC;IACzC,wBAAwB,IAAI,CAAC,YAAY,CAAC,iBAAiB,EAAE,GAAG,CAAC,CAAC;IAClE,qBAAqB;IACrB,yBAAyB;IACzB,wBAAwB,IAAI,CAAC,WAAW,EAAE,CAAC;IAC3C,qBAAqB;IACrB,iBAAiB,CAAC,CAAC;IACnB,aAAa,EAAE,KAAK,CAAC,CAAC;IACtB,YAAY,IAAI,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;IACrC,gBAAgB,KAAK,CAAC,KAAK,EAAE,CAAC;IAC9B,aAAa;IACb,YAAY,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,UAAU,GAAG;IACjD,gBAAgB,YAAY,CAAC,KAAK,CAAC,CAAC;IACpC,aAAa,CAAC,CAAC;IACf,SAAS;IACT,KAAK;IACL;IACA;IACA;IACA;IACA;IACA,IAAI,WAAW,GAAG;IAClB,QAAQ,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC;IAC9C,QAAQ,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;IACnC,QAAQ,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;IAC7B,QAAQ,IAAI,CAAC,YAAY,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;IAChD,KAAK;IACL;;IClWA;IACA;IACA;IACA,MAAM,KAAK,GAAG,EAAE,CAAC;IACjB,SAAS,MAAM,CAAC,GAAG,EAAE,IAAI,EAAE;IAC3B,IAAI,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE;IACjC,QAAQ,IAAI,GAAG,GAAG,CAAC;IACnB,QAAQ,GAAG,GAAG,SAAS,CAAC;IACxB,KAAK;IACL,IAAI,IAAI,GAAG,IAAI,IAAI,EAAE,CAAC;IACtB,IAAI,MAAM,MAAM,GAAG,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,IAAI,YAAY,CAAC,CAAC;IACvD,IAAI,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;IACjC,IAAI,MAAM,EAAE,GAAG,MAAM,CAAC,EAAE,CAAC;IACzB,IAAI,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC;IAC7B,IAAI,MAAM,aAAa,GAAG,KAAK,CAAC,EAAE,CAAC,IAAI,IAAI,IAAI,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC;IACjE,IAAI,MAAM,aAAa,GAAG,IAAI,CAAC,QAAQ;IACvC,QAAQ,IAAI,CAAC,sBAAsB,CAAC;IACpC,QAAQ,KAAK,KAAK,IAAI,CAAC,SAAS;IAChC,QAAQ,aAAa,CAAC;IACtB,IAAI,IAAI,EAAE,CAAC;IACX,IAAI,IAAI,aAAa,EAAE;IACvB,QAAQ,EAAE,GAAG,IAAI,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IACvC,KAAK;IACL,SAAS;IACT,QAAQ,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE;IACxB,YAAY,KAAK,CAAC,EAAE,CAAC,GAAG,IAAI,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IAClD,SAAS;IACT,QAAQ,EAAE,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC;IACvB,KAAK;IACL,IAAI,IAAI,MAAM,CAAC,KAAK,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE;IACrC,QAAQ,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,QAAQ,CAAC;IACrC,KAAK;IACL,IAAI,OAAO,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IACxC,CAAC;IACD;IACA;IACA,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE;IACtB,IAAI,OAAO;IACX,IAAI,MAAM;IACV,IAAI,EAAE,EAAE,MAAM;IACd,IAAI,OAAO,EAAE,MAAM;IACnB,CAAC,CAAC;;IC1CI,SAAU,aAAa,CAAC,MAAM,EAAA;QAEnC,MAAM,CAAC,EAAE,CAAC,SAAS,EAAE,UAAS,IAAI,EAAE,OAAO,EAAA;YAE1C,OAAO,CAAC,GAAG,CAAC,eAAe,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;IAC5C,QAAA,IAAI,IAAI,KAAK,IAAI,CAAC,QAAQ;gBACzB,IAAI,GAAG,IAAI,CAAC;YACb,IAAI,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,GAAG,IAAI,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC;IAClE,KAAC,CAAC,CAAC;IACJ;;ICPA,MAAM,OAAO,GAAG,CAAU,OAAA,EAAA,eAAwB,CAAA,CAAA,EAAI,MAAwB,EAAE,CAAC;IAE1E,eAAe,WAAW,GAAA;QAEhC,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,CAAG,EAAA,OAAO,CAAc,YAAA,CAAA,CAAC,CAAC;IACvD,IAAA,MAAM,aAAa,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;QAE5C,QAAQ,CAAC,aAAa,CAAC,CAAC;IAExB,IAAA,IAAI,MAAM,GAAG,MAAMC,MAAE,CAAC,OAAO,EAC7B;IACC,QAAA,IAAI,EAAE,OAAO;IACb,QAAA,KAAK,EACL;gBACC,QAAQ,EAAE,aAAa,CAAC,QAAQ;IAChC,SAAA;IACD,KAAA,CAAC,CAAC;QACH,UAAU,CAAC,MAAM,CAAC,CAAC;IAEnB,IAAA,MAAM,CAAC,EAAE,CAAC,SAAS,EAAY,cAAY,OAAO,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAC,EAAE,CAAC,CAAC;IAClF,IAAA,MAAM,CAAC,EAAE,CAAC,YAAY,EAAS,cAAY,OAAO,CAAC,GAAG,CAAC,wBAAwB,CAAC,CAAC,EAAE,CAAC,CAAC;IACrF,IAAA,MAAM,CAAC,EAAE,CAAC,eAAe,EAAM,cAAY,OAAO,CAAC,GAAG,CAAC,yBAAyB,CAAC,CAAC,EAAE,CAAC,CAAC;IACtF,IAAA,MAAM,CAAC,EAAE,CAAC,iBAAiB,EAAI,cAAY,OAAO,CAAC,GAAG,CAAC,2BAA2B,CAAC,CAAC,EAAE,CAAC,CAAC;IACxF,IAAA,MAAM,CAAC,EAAE,CAAC,OAAO,EAAc,cAAY,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC,EAAE,CAAC,CAAC;IAC9E,IAAA,MAAM,CAAC,EAAE,CAAC,WAAW,EAAU,cAAY,OAAO,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAC,EAAE,CAAC,CAAC;IAClF,IAAA,MAAM,CAAC,EAAE,CAAC,mBAAmB,EAAE,cAAY,OAAO,CAAC,GAAG,CAAC,6BAA6B,CAAC,CAAC,EAAE,CAAC,CAAC;IAC1F,IAAA,MAAM,CAAC,EAAE,CAAC,cAAc,EAAO,cAAY,OAAO,CAAC,GAAG,CAAC,wBAAwB,CAAC,CAAC,EAAE,CAAC,CAAC;IACrF,IAAA,MAAM,CAAC,EAAE,CAAC,iBAAiB,EAAI,cAAY,OAAO,CAAC,GAAG,CAAC,2BAA2B,CAAC,CAAC,EAAE,CAAC,CAAC;IACxF,IAAA,MAAM,CAAC,EAAE,CAAC,kBAAkB,EAAG,cAAY,OAAO,CAAC,GAAG,CAAC,4BAA4B,CAAC,CAAC,EAAE,CAAC,CAAC;IACzF,IAAA,MAAM,CAAC,EAAE,CAAC,MAAM,EAAe,cAAY,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC,EAAE,CAAC,CAAC;IAC7E,IAAA,MAAM,CAAC,EAAE,CAAC,MAAM,EAAe,cAAY,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC,EAAE,CAAC,CAAC;QAE7E,aAAa,CAAC,MAAM,CAAC,CAAC;IACvB;;;;;;;;;iCC1BgB,GAAK,CAAA,CAAA,CAAA,EAAA;;;;;;;;;;;;;;;;;kEAAL,GAAK,CAAA,CAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IANT,CAAA,IAAA,EAAA,KAAK,GAAG,aAAa,EAAA,GAAA,OAAA,CAAA;KAEhC,WAAW,EAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OCqBR,UAAa,CAAA,MAAA,EAAA,EAAA,EAAA,MAAA,CAAA,CAAA;;OACb,UAAgC,CAAA,MAAA,EAAA,GAAA,EAAA,MAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAJL,GAAA,KAAA,EAAA,EAAA,IAAA,WAAA,GAAI,cAAW,IAAI,EAAA;;;;;;;;;;;;;;2EAAnB,GAAI,CAAA,CAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAD5B,EAAA,aAAA,GAAI,QAAK,SAAS,EAAA,OAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;OAFzB,UASK,CAAA,MAAA,EAAA,GAAA,EAAA,MAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;SAvBC,IAAI,CAAA;;KAER,OAAO,CAAA,YAAA;;sBAEL,IAAI,GAAA,MAAS,KAAK,CAAW,CAAA,OAAA,EAAA,eAAwB,CAAI,CAAA,EAAA,MAAwB,CAC9E,YAAA,CAAA,CAAA,CAAA,IAAI,CAAG,CAAC,IAAK,CAAC,CAAC,IAAI,EAAA,CAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OCb1B,UAEK,CAAA,MAAA,EAAA,GAAA,EAAA,MAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;mFCWU,GAAI,CAAA,CAAA,CAAA,CAAA,GAAA,iBAAA,CAAA,CAAA,CAAA;6CAAc,GAAI,CAAA,CAAA,CAAA,CAAA,CAAA;mDAAiB,GAAO,CAAA,CAAA,CAAA,CAAA,CAAA;;;;;;;OAA7D,UAEQ,CAAA,MAAA,EAAA,MAAA,EAAA,MAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;uHAFO,GAAI,CAAA,CAAA,CAAA,CAAA,GAAA,iBAAA,CAAA,CAAA,EAAA;;;;;8CAAc,GAAI,CAAA,CAAA,CAAA,CAAA,CAAA;;;;oDAAiB,GAAO,CAAA,CAAA,CAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAXhD,CAAA,IAAA,EAAA,IAAI,GAAU,SAAS,EAAA,GAAA,OAAA,CAAA;IACvB,CAAA,IAAA,EAAA,IAAI,GAAW,KAAK,EAAA,GAAA,OAAA,CAAA;IACpB,CAAA,IAAA,EAAA,OAAO,GAAW,KAAK,EAAA,GAAA,OAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;gBCiJH,iBAAe,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IARlB,CAAA,IAAA,QAAA,eAAA,GAAO,IAAC,QAAQ,GAAA,EAAA,CAAA;;;;IAChB,CAAA,IAAA,QAAA,cAAA,GAAM,IAAC,QAAQ,GAAA,EAAA,CAAA;;;;;;;;;IAKf,CAAA,IAAA,SAAA,cAAA,GAAM,IAAC,QAAQ,GAAA,EAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;qGAPgB,GAAO,CAAA,CAAA,CAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;OAL9D,UAeM,CAAA,MAAA,EAAA,IAAA,EAAA,MAAA,CAAA,CAAA;OAdJ,UAOK,CAAA,IAAA,EAAA,IAAA,CAAA,CAAA;OANH,UAAoC,CAAA,IAAA,EAAA,IAAA,CAAA,CAAA;;OAGpC,UAAsF,CAAA,IAAA,EAAA,MAAA,CAAA,CAAA;IAAb,GAAA,eAAA,CAAA,MAAA,UAAA,GAAG,IAAC,QAAQ,CAAA,CAAA;;OACvF,UAA4C,CAAA,IAAA,EAAA,IAAA,CAAA,CAAA;;;OAC1C,UAAyC,CAAA,IAAA,EAAA,IAAA,CAAA,CAAA;;;OAE3C,UAIK,CAAA,IAAA,EAAA,IAAA,CAAA,CAAA;OAHH,UAAkE,CAAA,IAAA,EAAA,IAAA,CAAA,CAAA;;OAClE,UAAkE,CAAA,IAAA,EAAA,MAAA,CAAA,CAAA;IAAR,GAAA,MAAA,CAAA,OAAA,WAAA,GAAG,IAAC,GAAG,CAAA;;OACjE,UAAyC,CAAA,IAAA,EAAA,IAAA,CAAA,CAAA;;;;;;;;;;wEAZb,GAAe,CAAA,CAAA,CAAA,CAAA,EAAA,KAAA,EAAA,IAAA,EAAA,KAAA,CAAA;;;;;;;4IAKQ,GAAO,CAAA,CAAA,CAAA,CAAA,EAAA;;;;IAAe,GAAA,IAAA,KAAA,WAAA,CAAA,IAAA,MAAA,CAAA,KAAA,aAAA,GAAG,IAAC,QAAQ,EAAA;IAAZ,IAAA,eAAA,CAAA,MAAA,UAAA,GAAG,IAAC,QAAQ,CAAA,CAAA;;;IACjE,GAAA,IAAA,CAAA,CAAA,OAAA,IAAA,KAAA,eAAA,EAAA,KAAA,QAAA,MAAA,QAAA,eAAA,GAAO,IAAC,QAAQ,GAAA,EAAA,CAAA,EAAA,YAAA,CAAA,EAAA,EAAA,QAAA,CAAA,CAAA;IAChB,GAAA,IAAA,CAAA,CAAA,OAAA,IAAA,KAAA,cAAA,EAAA,KAAA,QAAA,MAAA,QAAA,cAAA,GAAM,IAAC,QAAQ,GAAA,EAAA,CAAA,EAAA,YAAA,CAAA,EAAA,EAAA,QAAA,CAAA,CAAA;;;IAIuB,IAAA,MAAA,CAAA,OAAA,WAAA,GAAG,IAAC,GAAG,CAAA;;;IAC7C,GAAA,IAAA,CAAA,CAAA,OAAA,IAAA,KAAA,cAAA,EAAA,KAAA,SAAA,MAAA,SAAA,cAAA,GAAM,IAAC,QAAQ,GAAA,EAAA,CAAA,EAAA,YAAA,CAAA,GAAA,EAAA,SAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8DASZ,GAAM,CAAA,CAAA,CAAA,CAAA,EAAA,QAAA,CAAA,GAAA,EAAA,KAAA,EAAA,aAAA,CAAA,CAAA;;;;;OAA/B,UAAmD,CAAA,MAAA,EAAA,GAAA,EAAA,MAAA,CAAA,CAAA;;;sFAA1B,GAAM,CAAA,CAAA,CAAA,CAAA,EAAA;;;;;;;;;;;;;;;;;;;;;;;;;;gBAUkC,eAAa,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAFxD,CAAA,IAAA,QAAA,cAAA,GAAM,IAAC,MAAM,GAAA,EAAA,CAAA;;;;;;;IAThC,CAAA,IAAA,QAAA,cAAA,GAAM,QAAK,SAAS,IAAAf,iBAAA,CAAA,GAAA,CAAA,CAAA;;;;IAWT,IAAA,IAAA,gBAAA,GAAS,QAAK,SAAS;UAAG,SAAS;UAAG,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OARjE,UASM,CAAA,MAAA,EAAA,IAAA,EAAA,MAAA,CAAA,CAAA;OANJ,UAIK,CAAA,IAAA,EAAA,IAAA,CAAA,CAAA;OAHH,UAAyC,CAAA,IAAA,EAAA,IAAA,CAAA,CAAA;;OACzC,UAA0C,CAAA,IAAA,EAAA,KAAA,CAAA,CAAA;;OAC1C,UAAuC,CAAA,IAAA,EAAA,IAAA,CAAA,CAAA;;;;;;;;;qEANX,GAAY,CAAA,CAAA,CAAA,CAAA,EAAA,KAAA,EAAA,IAAA,EAAA,KAAA,CAAA;;;;;;;IAHvC,GAAA,eAAA,GAAM,QAAK,SAAS,EAAA;;;;;;;;;;;;;IASD,GAAA,IAAA,CAAA,CAAA,OAAA,IAAA,KAAA,cAAA,EAAA,KAAA,QAAA,MAAA,QAAA,cAAA,GAAM,IAAC,MAAM,GAAA,EAAA,CAAA,EAAA,YAAA,CAAA,EAAA,EAAA,QAAA,CAAA,CAAA;;;IAErB,GAAA,IAAA,KAAA,iBAAA,CAAA,EAAA,cAAA,CAAA,IAAA,iBAAA,GAAS,QAAK,SAAS;SAAG,SAAS;SAAG,WAAW,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAnCvE,UAwCM,CAAA,MAAA,EAAA,IAAA,EAAA,MAAA,CAAA,CAAA;OAvCJ,UAAkC,CAAA,IAAA,EAAA,EAAA,CAAA,CAAA;;OAClC,UAoCK,CAAA,IAAA,EAAA,GAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;SAjKD,IAAI,CAAA;IACJ,CAAA,IAAA,MAAM,EAAE,SAAS,CAAA;IACjB,CAAA,IAAA,mBAAmB,GAAG,KAAK,CAAA;;;IAG3B,CAAA,IAAA,GAAG,KAAK,QAAQ,EAAE,EAAE,EAAE,GAAG,EAAE,KAAK,EAAA,CAAA;;SAChC,OAAO,CAAA;WACL,MAAM,GAAA,EAAK,QAAQ,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAA,CAAA;IACnD,CAAA,IAAA,OAAO,KAAI,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAA,CAAA;;KAEvC,OAAO,CAAA,YAAA;MACL,IAAI,GAAA,MAAS,KAAK,CAAW,CAAA,OAAA,EAAA,eAAwB,CAAI,CAAA,EAAA,MAAwB,CAC9E,YAAA,CAAA,CAAA,CAAA,IAAI,CAAG,CAAC,IAAK,CAAC,CAAC,IAAI,EAAA,CAAA,CAAA;;;IAGlB,EAAA,IAAA,IAAI,KAAK,SAAS,EAAA;OACpB,OAAO,CAAC,GAAG,CAAC,iEAAiE,CAAA,CAAA;;;;sBAG/E,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAA,CAAA;;IACvB,EAAA,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAA,CAAA;IAEzB,EAAA,YAAA,CAAA,CAAA,EAAA,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,sBAAsB,EAAA,GAAA,CAAA,CAAA;;;;;IAM/B,EAAA,MAAA,KAAK,WAAW,eAAwB,IAAI,MAAwB,yBAAwB,MAAM,EAAE,KAAK,EAC9G,CAAA,CAAA,IAAI,CAAC,QAAQ,IAAA;IAAY,GAAA,OAAA,QAAQ,CAAC,IAAI,EAAA,CAAA;IACtC,GAAA,CAAA,CAAA,IAAI,CAAC,IAAI,IAAA;IACH,GAAA,MAAA,GAAG,GAAG,GAAG,CAAC,eAAe,CAAC,IAAI,CAAA,CAAA;IACpC,GAAA,YAAA,CAAA,CAAA,EAAA,MAAM,GAAG,GAAG,CAAA,CAAA;IAEV,GAAA,CAAA,CAAA,KAAK,CAAO,MAAA,YAAA,CAAA,CAAA,EAAA,MAAM,CAAC,MAAM,GAAG,uCAAuC,EAAA,MAAA,CAAA,CAAA,CAAA;;;;;;;;WAWlE,eAAe,GAAA,YAAA;;;IAGd,EAAA,IAAA,GAAG,CAAC,QAAQ,CAAC,IAAI,EAAO,KAAA,EAAE,IAAK,GAAG,CAAC,GAAG,KAAK,IAAI,CAAC,sBAAsB,EAAA;uBACzE,MAAM,CAAC,QAAQ,GAAG,sBAAsB,EAAA,MAAA,CAAA,CAAA;;IAGnC,GAAA,MAAA,IAAA,GAAG,CAAC,QAAQ,CAAC,IAAI,EAAO,KAAA,EAAE,IAAK,GAAG,CAAC,GAAG,KAAK,IAAI,CAAC,sBAAsB,EAAA;IAC/E,GAAA,YAAA,CAAA,CAAA,EAAA,GAAG,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,EAAA,GAAA,CAAA,CAAA;;uBAGxB,MAAM,CAAC,QAAQ,GAAG,EAAE,EAAA,MAAA,CAAA,CAAA;;;YAEnB,KAAK,CAAA,CAAA,OAAA,EAAW,eAAwB,CAAA,CAAA,EAAI,MAAwB,CAAA,YAAA,CAAA,EAAA;IACzE,GAAA,MAAM,EAAE,OAAO;OACf,OAAO,EAAA,EACP,cAAc,EAAE,kBAAlB,EAAA;OAEE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAA;QACpB,UAAU,EAAE,GAAG,CAAC,QAAQ;QACxB,wBAAwB,EAAG,GAAG,CAAC,GAAA;;IAG/B,GAAA,CAAA,CAAA,IAAI,CAAE,QAAQ,IAAA;IACV,GAAA,IAAA,QAAQ,CAAC,MAAM,KAAK,GAAG,EAAA,YAAA,CAAA,CAAA,EAC1B,OAAO,CAAC,QAAQ,GAAG,8BAA8B,qBACzC,QAAQ,CAAC,MAAM,KAAK,GAAG,EAC/B,IAAI,CAAC,MAAM,CAAA,CAAA,MAAA,IACD,QAAQ,CAAC,MAAM,KAAK,GAAG,EAAA,YAAA,CAAA,CAAA,EAC9B,MAAM,CAAC,QAAQ,GAAM,CAAA,EAAA,GAAG,CAAC,QAAQ,CAAA,yCAAA,CAAA,EAAA,MAAA,CAAA,CAAA,MAAA,YAAA,CAAA,CAAA,EAEpC,MAAM,CAAC,QAAQ,GAAG,sBAAsB,EAAA,MAAA,CAAA,CAAA;IAGzC,GAAA,CAAA,CAAA,KAAK,CAAE,GAAG,IAAA,YAAA,CAAA,CAAA,EAAK,MAAM,CAAC,QAAQ,GAAG,GAAG,EAAA,MAAA,CAAA,CAAA,CAAA;;;;WAM9B,YAAY,GAAA,YAAA;sBAChB,MAAM,CAAC,MAAM,GAAG,EAAE,EAAA,MAAA,CAAA,CAAA;;IACd,EAAA,IAAA,SAAS,KAAK,SAAS,EAAA;uBACzB,MAAM,CAAC,MAAM,GAAG,0BAA0B,EAAA,MAAA,CAAA,CAAA;;;;IAGzC,EAAA,MAAA,IAAI,OAAO,QAAQ,EAAA,CAAA;IACzB,EAAA,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC,CAAA,CAAA,CAAA;;;MAG/B,OAAO,CAAC,GAAG,CAAC,IAAI,CAAA,CAAA;;YAEV,wBAAwB,GAAG,KAAK,CAAW,CAAA,OAAA,EAAA,eAAwB,CAAI,CAAA,EAAA,MAAwB,CAEpG,mBAAA,CAAA,EAAA,EAAA,MAAM,EAAG,MAAM,EACf,IAAI,EAAG,IAAI,EAAA,CAAA,CAAA;IAEN,EAAA,MAAA,kBAAkB,SAAS,wBAAwB,CAAA;;UACrD,kBAAkB,CAAC,EAAE,KAAK,IAAI,EAAA;IACjC,GAAA,mBAAmB,GAAG,IAAI,CAAA;uBAC1B,OAAO,CAAC,MAAM,GAAG,8BAA8B,EAAA,OAAA,CAAA,CAAA;;IAG/C,GAAA,YAAA,CAAA,CAAA,EAAA,MAAM,CAAC,MAAM,GAAG,kBAAkB,CAAC,UAAU,EAAA,MAAA,CAAA,CAAA;;;IAGxC,EAAA,MAAA,KAAK,WAAW,eAAwB,IAAI,MAAwB,yBAAwB,MAAM,EAAE,KAAK,EAC7G,CAAA,CAAA,IAAI,CAAC,QAAQ,IAAA;IAAY,GAAA,OAAA,QAAQ,CAAC,IAAI,EAAA,CAAA;IACtC,GAAA,CAAA,CAAA,IAAI,CAAC,IAAI,IAAA;IACH,GAAA,MAAA,GAAG,GAAG,GAAG,CAAC,eAAe,CAAC,IAAI,CAAA,CAAA;IACpC,GAAA,YAAA,CAAA,CAAA,EAAA,MAAM,GAAG,GAAG,CAAA,CAAA;IAEb,GAAA,CAAA,CAAA,KAAK,CAAO,MAAA,YAAA,CAAA,CAAA,EAAA,MAAM,CAAC,MAAM,GAAG,uCAAuC,EAAA,MAAA,CAAA,CAAA,CAAA;;;;;;;;;;IAec,EAAA,GAAG,CAAC,QAAQ,GAAA,IAAA,CAAA,KAAA,CAAA;;;;;IAM3B,EAAA,GAAG,CAAC,GAAG,GAAA,IAAA,CAAA,OAAA,CAAA;;;;;MAiBlC,SAAS,GAAA,IAAA,CAAA,KAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBCtH3C,sBAAoB,CAAA,CAAA;+BAAC,GAAS,CAAA,CAAA,CAAA,CAAA,CAAA;;;;;OADnC,UAAa,CAAA,MAAA,EAAA,EAAA,EAAA,MAAA,CAAA,CAAA;;OACb,UAAyC,CAAA,MAAA,EAAA,GAAA,EAAA,MAAA,CAAA,CAAA;;;;;mEAAf,GAAS,CAAA,CAAA,CAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAJR,GAAA,KAAA,EAAA,EAAA,IAAA,WAAA,GAAI,cAAW,KAAK,EAAA;;;;;;;;;;;;;;2EAApB,GAAI,CAAA,CAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAD5B,EAAA,aAAA,GAAI,QAAK,SAAS,EAAA,OAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;WAlCV,SAAS,EAAA,GAAA,OAAA,CAAA;SAChB,IAAI,CAAA;;KAER,OAAO,CAAA,YAAA;IACL,EAAA,OAAO,CAAC,GAAG,CAAC,0BAA0B,GAAE,SAAS,CAAA,CAAA;;;sBAEjD,IAAI,GAAA,MAAS,KAAK,CAAW,CAAA,OAAA,EAAA,eAAwB,CAAA,CAAA,EAAI,MAAwB,CAAyB,sBAAA,EAAA,SAAS,CAChH,CAAA,CAAA,CAAA,IAAI,CAAG,CAAC,IAAK,CAAC,CAAC,IAAI,EAAA,CAAA,CAAA,CAAA;;;WAYX,UAAU,GAAA,YAAA;;;;sBAIrB,IAAI,GAAA,MAAS,KAAK,CAAW,CAAA,OAAA,EAAA,eAAwB,CAAA,CAAA,EAAI,MAAwB,CAAyB,sBAAA,EAAA,SAAS,CAChH,CAAA,CAAA,CAAA,IAAI,CAAG,CAAC,IAAK,CAAC,CAAC,IAAI,EAAA,CAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAIvB,CAAa,UAAU,EAAA,EAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6BChBuB,GAAI,CAAA,CAAA,CAAA,GAAA,EAAA,CAAA;;;;;;;;;;;;;;;;;;IAA1B,GAAA,YAAA,CAAA,GAAA,EAAA,QAAA,iBAAA,GAAU,iBAAK,GAAI,CAAA,CAAA,CAAA,CAAA,CAAA;;2EAF7B,GAAI,CAAA,CAAA,CAAA,CAAA,GAAA,iBAAA,CAAA,CAAA,CAAA;;;;OAAf,UAGI,CAAA,MAAA,EAAA,EAAA,EAAA,MAAA,CAAA,CAAA;OADF,UAAmD,CAAA,EAAA,EAAA,GAAA,CAAA,CAAA;;;;;;;;;;;oEAAV,GAAI,CAAA,CAAA,CAAA,GAAA,EAAA,CAAA,EAAA,YAAA,CAAA,EAAA,EAAA,QAAA,CAAA,CAAA;;;IAA1B,IAAA,YAAA,CAAA,GAAA,EAAA,QAAA,iBAAA,GAAU,iBAAK,GAAI,CAAA,CAAA,CAAA,CAAA,CAAA;;;mGAF7B,GAAI,CAAA,CAAA,CAAA,CAAA,GAAA,iBAAA,CAAA,CAAA,EAAA;;;;;;;;;;;;;;;;;;;;;;;;;gCADV,GAAK,CAAA,CAAA,CAAA,CAAA;;;;oCAAV,MAAI,EAAA,CAAA,IAAA,CAAA,EAAA;;;;;;;;;;;;;;;;0CAHoB,GAAI,CAAA,CAAA,CAAA,CAAA,CAAA;;;;;;;OAAlC,UAUK,CAAA,MAAA,EAAA,GAAA,EAAA,MAAA,CAAA,CAAA;OARH,UAOI,CAAA,GAAA,EAAA,EAAA,CAAA,CAAA;;;;;;;;+BANK,GAAK,CAAA,CAAA,CAAA,CAAA;;;;mCAAV,MAAI,EAAA,CAAA,IAAA,CAAA,EAAA;;;;;;;;;;;;;;;;wCAAJ,MAAI,CAAA;;;;2CAHoB,GAAI,CAAA,CAAA,CAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;WAVrB,KAAK,EAAA,GAAA,OAAA,CAAA;WACL,UAAU,EAAA,GAAA,OAAA,CAAA;IACV,CAAA,IAAA,EAAA,IAAI,GAAG,QAAQ,EAAA,GAAA,OAAA,CAAA;;;IAGpB,CAAA,MAAA,QAAQ,GAAG,qBAAqB,EAAA,CAAA;;;;;;;;;;;;;;;;;;mCASD,QAAQ,CAAC,WAAW,EAAE,IAAI,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ICsRtD,CAAA,IAAA,OAAA,GAAA,MAAM,CAAC,IAAI,kBAAC,GAAY,CAAE,CAAA,CAAA,CAAA,CAAA,MAAM,KAAK,CAAC,CAAA;;;;yCAIpC,GAAY,CAAA,CAAA,CAAA,CAAA;;;;sCAAjB,MAAI,EAAA,CAAA,IAAA,CAAA,EAAA;;;;;;;mCAND,GAAa,CAAA,CAAA,CAAA,CAAA,CAAA;;;;;;;;;;;;;OAAlB,UAAuB,CAAA,MAAA,EAAA,EAAA,EAAA,MAAA,CAAA,CAAA;;;;;;;;;;;;;gFAAlB,GAAa,CAAA,CAAA,CAAA,CAAA,CAAA;IAEb,GAAA,IAAA,KAAA,CAAA,CAAA,CAAA,oBAAA,EAAA,EAAA,OAAA,GAAA,MAAM,CAAC,IAAI,kBAAC,GAAY,CAAE,CAAA,CAAA,CAAA,CAAA,MAAM,KAAK,CAAC,CAAA;;;;;;;;;;;;;;wCAIpC,GAAY,CAAA,CAAA,CAAA,CAAA;;;;qCAAjB,MAAI,EAAA,CAAA,IAAA,CAAA,EAAA;;;;;;;;;;;;;;;;0CAAJ,MAAI,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAhBD,CAAA,IAAA,OAAA,GAAA,MAAM,CAAC,IAAI,sBAAC,GAAgB,CAAE,CAAA,CAAA,CAAA,CAAA,MAAM,KAAK,CAAC,CAAA;;;;6CAIxC,GAAgB,CAAA,CAAA,CAAA,CAAA;;;;sCAArB,MAAI,EAAA,CAAA,IAAA,CAAA,EAAA;;;;;;;mCALD,GAAa,CAAA,CAAA,CAAA,CAAA,CAAA;;;;;;;;;;;;;OAAlB,UAAuB,CAAA,MAAA,EAAA,EAAA,EAAA,MAAA,CAAA,CAAA;;;;;;;;;;;;;gFAAlB,GAAa,CAAA,CAAA,CAAA,CAAA,CAAA;IACb,GAAA,IAAA,KAAA,CAAA,CAAA,CAAA,wBAAA,CAAA,EAAA,OAAA,GAAA,MAAM,CAAC,IAAI,sBAAC,GAAgB,CAAE,CAAA,CAAA,CAAA,CAAA,MAAM,KAAK,CAAC,CAAA;;;;;;;;;;;;;;4CAIxC,GAAgB,CAAA,CAAA,CAAA,CAAA;;;;qCAArB,MAAI,EAAA,CAAA,IAAA,CAAA,EAAA;;;;;;;;;;;;;;;;0CAAJ,MAAI,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAlBD,CAAA,IAAA,OAAA,GAAA,MAAM,CAAC,IAAI,mBAAC,GAAa,CAAE,CAAA,CAAA,CAAA,CAAA,MAAM,KAAK,CAAC,CAAA;;;;0CAIrC,GAAa,CAAA,CAAA,CAAA,CAAA;;;;sCAAlB,MAAI,EAAA,CAAA,IAAA,CAAA,EAAA;;;;;;;mCALD,GAAa,CAAA,CAAA,CAAA,CAAA,CAAA;;;;;;;;;;;;;OAAlB,UAAuB,CAAA,MAAA,EAAA,EAAA,EAAA,MAAA,CAAA,CAAA;;;;;;;;;;;;;gFAAlB,GAAa,CAAA,CAAA,CAAA,CAAA,CAAA;IACb,GAAA,IAAA,KAAA,CAAA,CAAA,CAAA,qBAAA,CAAA,EAAA,OAAA,GAAA,MAAM,CAAC,IAAI,mBAAC,GAAa,CAAE,CAAA,CAAA,CAAA,CAAA,MAAM,KAAK,CAAC,CAAA;;;;;;;;;;;;;;yCAIrC,GAAa,CAAA,CAAA,CAAA,CAAA;;;;qCAAlB,MAAI,EAAA,CAAA,IAAA,CAAA,EAAA;;;;;;;;;;;;;;;;0CAAJ,MAAI,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IApBD,CAAA,IAAA,OAAA,GAAA,MAAM,CAAC,IAAI,cAAC,GAAQ,CAAE,CAAA,CAAA,CAAA,CAAA,MAAM,KAAK,CAAC,CAAA;;;;mCAMhC,GAAQ,CAAA,CAAA,CAAA,CAAA;;;;oCAAb,MAAI,EAAA,CAAA,IAAA,CAAA,EAAA;;;;;;;mCAXD,GAAa,CAAA,CAAA,CAAA,CAAA,CAAA;;;;;;;;;;;;;OAAlB,UAAuB,CAAA,MAAA,EAAA,EAAA,EAAA,MAAA,CAAA,CAAA;;;;;;;;;;;;;gFAAlB,GAAa,CAAA,CAAA,CAAA,CAAA,CAAA;IAKb,GAAA,IAAA,KAAA,CAAA,CAAA,CAAA,gBAAA,CAAA,EAAA,OAAA,GAAA,MAAM,CAAC,IAAI,cAAC,GAAQ,CAAE,CAAA,CAAA,CAAA,CAAA,MAAM,KAAK,CAAC,CAAA;;;;;;;;;;;;;;kCAMhC,GAAQ,CAAA,CAAA,CAAA,CAAA;;;;mCAAb,MAAI,EAAA,CAAA,IAAA,CAAA,EAAA;;;;;;;;;;;;;;;;wCAAJ,MAAI,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAqCJ,UAAoD,CAAA,MAAA,EAAA,GAAA,EAAA,MAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;IAI0B,CAAA,IAAA,QAAA,aAAA,GAAK,KAAC,gBAAgB,GAAA,EAAA,CAAA;;;;IAClE,CAAA,IAAA,QAAA,aAAA,GAAK,KAAC,MAAM,GAAA,EAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;OAD9C,UAA0G,CAAA,MAAA,EAAA,IAAA,EAAA,MAAA,CAAA,CAAA;;;OAC1G,UAAoD,CAAA,MAAA,EAAA,IAAA,EAAA,MAAA,CAAA,CAAA;;;OACpD,UAAG,CAAA,MAAA,EAAA,EAAA,EAAA,MAAA,CAAA,CAAA;;;;;;;;;IAF2E,GAAA,IAAA,KAAA,CAAA,CAAA,CAAA,oBAAA,EAAA,IAAA,QAAA,MAAA,QAAA,aAAA,GAAK,KAAC,gBAAgB,GAAA,EAAA,CAAA,EAAA,YAAA,CAAA,EAAA,EAAA,QAAA,CAAA,CAAA;IAClE,GAAA,IAAA,KAAA,CAAA,CAAA,CAAA,oBAAA,EAAA,IAAA,QAAA,MAAA,QAAA,aAAA,GAAK,KAAC,MAAM,GAAA,EAAA,CAAA,EAAA,YAAA,CAAA,EAAA,EAAA,QAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAjB9C,UAAwD,CAAA,MAAA,EAAA,GAAA,EAAA,MAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;IAIoB,CAAA,IAAA,QAAA,aAAA,GAAK,KAAC,cAAc,GAAA,EAAA,CAAA;;;;IAC9D,CAAA,IAAA,QAAA,aAAA,GAAK,KAAC,MAAM,GAAA,EAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;OAD9C,UAAsG,CAAA,MAAA,EAAA,IAAA,EAAA,MAAA,CAAA,CAAA;;;OACtG,UAAoD,CAAA,MAAA,EAAA,IAAA,EAAA,MAAA,CAAA,CAAA;;;OACpD,UAAG,CAAA,MAAA,EAAA,EAAA,EAAA,MAAA,CAAA,CAAA;;;;;;;;;IAFyE,GAAA,IAAA,KAAA,CAAA,CAAA,CAAA,wBAAA,CAAA,IAAA,QAAA,MAAA,QAAA,aAAA,GAAK,KAAC,cAAc,GAAA,EAAA,CAAA,EAAA,YAAA,CAAA,EAAA,EAAA,QAAA,CAAA,CAAA;IAC9D,GAAA,IAAA,KAAA,CAAA,CAAA,CAAA,wBAAA,CAAA,IAAA,QAAA,MAAA,QAAA,aAAA,GAAK,KAAC,MAAM,GAAA,EAAA,CAAA,EAAA,YAAA,CAAA,EAAA,EAAA,QAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAnB9C,UAAwD,CAAA,MAAA,EAAA,GAAA,EAAA,MAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;IAO8B,CAAA,IAAA,OAAA,mBAAA,GAAW,KAAC,gBAAgB,GAAA,EAAA,CAAA;;;;;;;;;;;;;;;;;OAAhH,UAAsH,CAAA,MAAA,EAAA,GAAA,EAAA,MAAA,CAAA,CAAA;;;;;;;;;;IAAlC,GAAA,IAAA,KAAA,CAAA,CAAA,CAAA,qBAAA,CAAA,IAAA,OAAA,MAAA,OAAA,mBAAA,GAAW,KAAC,gBAAgB,GAAA,EAAA,CAAA,EAAA,YAAA,CAAA,CAAA,EAAA,OAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;IAF9B,CAAA,IAAA,OAAA,mBAAA,GAAW,KAAC,cAAc,GAAA,EAAA,CAAA;;;;;;;;;;;;;;;;;OAA5G,UAAkH,CAAA,MAAA,EAAA,GAAA,EAAA,MAAA,CAAA,CAAA;;;;;;;;;;IAAhC,GAAA,IAAA,KAAA,CAAA,CAAA,CAAA,qBAAA,CAAA,IAAA,OAAA,MAAA,OAAA,mBAAA,GAAW,KAAC,cAAc,GAAA,EAAA,CAAA,EAAA,YAAA,CAAA,CAAA,EAAA,OAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;IADzG,EAAA,oBAAA,GAAW,CAAC,EAAA,CAAA,CAAA,cAAc,cAAK,GAAI,IAAC,QAAQ,EAAA,OAAAgB,oBAAA,CAAA;IAEvC,EAAA,oBAAA,GAAW,CAAC,EAAA,CAAA,CAAA,gBAAgB,cAAK,GAAI,IAAC,QAAQ,EAAA,OAAA,kBAAA,CAAA;;;;;;;;;;;;;;;;OAGxD,UAAG,CAAA,MAAA,EAAA,EAAA,EAAA,MAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAzBH,UAAuD,CAAA,MAAA,EAAA,GAAA,EAAA,MAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;IAMe,CAAA,IAAA,QAAA,aAAA,GAAK,KAAC,QAAQ,GAAA,EAAA,CAAA;;;;IAIlD,CAAA,IAAA,QAAA,aAAA,GAAK,KAAC,MAAM,GAAA,EAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;OAJ9C,UAA0F,CAAA,MAAA,EAAA,IAAA,EAAA,MAAA,CAAA,CAAA;;;OAI1F,UAAoD,CAAA,MAAA,EAAA,IAAA,EAAA,MAAA,CAAA,CAAA;;;OACpD,UAAG,CAAA,MAAA,EAAA,EAAA,EAAA,MAAA,CAAA,CAAA;;;;;;;;;IALmE,GAAA,IAAA,KAAA,CAAA,CAAA,CAAA,gBAAA,CAAA,IAAA,QAAA,MAAA,QAAA,aAAA,GAAK,KAAC,QAAQ,GAAA,EAAA,CAAA,EAAA,YAAA,CAAA,EAAA,EAAA,QAAA,CAAA,CAAA;IAIlD,GAAA,IAAA,KAAA,CAAA,CAAA,CAAA,gBAAA,CAAA,IAAA,QAAA,MAAA,QAAA,aAAA,GAAK,KAAC,MAAM,GAAA,EAAA,CAAA,EAAA,YAAA,CAAA,EAAA,EAAA,QAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAoFhD,UAGK,CAAA,MAAA,EAAA,GAAA,EAAA,MAAA,CAAA,CAAA;OAFH,UAAwB,CAAA,GAAA,EAAA,EAAA,CAAA,CAAA;;OACxB,UAAsC,CAAA,GAAA,EAAA,EAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2CAvCf,GAAmB,CAAA,CAAA,CAAA;;;;;;;;;mCAGrC,GAAoB,CAAA,CAAA,CAAA,6BAAI,GAAoB,CAAA,CAAA,CAAA,CAAC,EAAE,EAAA,OAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;OADtD,UAiCK,CAAA,MAAA,EAAA,GAAA,EAAA,MAAA,CAAA,CAAA;;;;;;2GAnCoB,GAAmB,CAAA,CAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;mCAInC,GAAoB,CAAA,CAAA,CAAA,CAAC,MAAM,KAAK,GAAG,EAAA,OAAA,CAAA,CAAA;mCAS9B,GAAoB,CAAA,CAAA,CAAA,CAAC,MAAM,KAAK,GAAG,EAAA,OAAA,CAAA,CAAA;mCAInC,GAAoB,CAAA,CAAA,CAAA,CAAC,MAAM,KAAK,GAAG,EAAA,OAAA,CAAA,CAAA;mCAQnC,GAAoB,CAAA,CAAA,CAAA,CAAC,MAAM,KAAK,GAAG,EAAA,OAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;gBAMoC,YAAU,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;gBACzB,YAAU,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;IANrE,CAAA,IAAA,QAAA,4BAAA,GAAoB,CAAC,CAAA,CAAA,CAAA,cAAc,cAAK,GAAI,IAAC,QAAQ,IAAAC,mBAAA,CAAA,GAAA,CAAA,CAAA;;;;;;;;;;;;;IAArD,GAAA,6BAAA,GAAoB,CAAC,CAAA,CAAA,CAAA,cAAc,cAAK,GAAI,IAAC,QAAQ,EAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IARrD,EAAA,6BAAA,GAAoB,CAAC,CAAA,CAAA,CAAA,cAAc,cAAK,GAAI,IAAC,QAAQ,EAAA,OAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAJ1D,UAAsC,CAAA,MAAA,EAAA,GAAA,EAAA,MAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IATjC,EAAA,6BAAA,GAAoB,CAAC,CAAA,CAAA,CAAA,cAAc,cAAK,GAAI,IAAC,QAAQ,EAAA,OAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;gBAsBO,cAAY,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAN3E,UAA4F,CAAA,MAAA,EAAA,GAAA,EAAA,MAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAF5F,UAA2E,CAAA,MAAA,EAAA,GAAA,EAAA,MAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;gBAGL,uBAAqB,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;gBAE9B,YAAU,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;gBATd,UAAQ,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;gBACJ,YAAU,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAVvE,UAA0C,CAAA,MAAA,EAAA,GAAA,EAAA,MAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;gBAG6C,uBAAqB,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;gBACrC,wBAAsB,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;gBAEhC,YAAU,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4BA7EpE,GAAQ,CAAA,CAAA,CAAA;sCAAc,GAAa,CAAA,CAAA,CAAA;;;;;;yCAA6B,GAAS,CAAA,EAAA,CAAA,CAAA,CAAA;;;IACjF,EAAA,sBAAA,GAAa,CAAK,CAAA,CAAA,KAAA,WAAW,iBAAI,GAAQ,QAAK,SAAS,EAAA,OAAAC,mBAAA,CAAA;IAoBlD,EAAA,sBAAA,GAAa,CAAK,CAAA,CAAA,KAAA,YAAY,sBAAI,GAAa,QAAK,SAAS,EAAA,OAAAC,oBAAA,CAAA;IAc7D,EAAA,sBAAA,GAAa,CAAK,CAAA,CAAA,KAAA,iBAAiB,yBAAI,GAAgB,QAAK,SAAS,EAAA,OAAA,kBAAA,CAAA;IAWrE,EAAA,sBAAA,GAAa,CAAK,CAAA,CAAA,KAAA,eAAe,qBAAI,GAAY,QAAK,SAAS,EAAA,OAAA,kBAAA,CAAA;;;;;;;;;IAiBpE,EAAA,4BAAA,GAAmB,QAAK,SAAS,EAAA,OAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAvE1C,UAqHK,CAAA,MAAA,EAAA,IAAA,EAAA,MAAA,CAAA,CAAA;OA9GH,UA4DK,CAAA,IAAA,EAAA,IAAA,CAAA,CAAA;;;;;OAGL,UA8CK,CAAA,IAAA,EAAA,IAAA,CAAA,CAAA;;;;;;yFA5GgC,GAAa,CAAA,CAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;SA7O9C,MAAM,GAAA,EAAI,aAAa,EAAE,EAAE,EAAA,CAAA;SAC3B,GAAG,GAAA,EAAI,cAAc,EAAE,EAAE,EAAA,CAAA;SAEzB,IAAI,CAAA;SACJ,QAAQ,CAAA;SACR,aAAa,CAAA;IACb,CAAA,IAAA,YAAY,EAAE,gBAAgB,CAAA;SAC9B,YAAY,CAAA;SACZ,mBAAmB,CAAA;SACnB,oBAAoB,CAAA;;;IAGpB,CAAA,IAAA,QAAQ,IAAc,WAAW,EAAE,YAAY,EAAE,iBAAiB,EAAE,eAAe,CAAA,CAAA;;IACnF,CAAA,IAAA,aAAa,GAAW,WAAW,CAAA;;KAGvC,OAAO,CAAA,YAAA;;;;;sBAQL,IAAI,GAAA,MAAS,KAAK,CAAW,CAAA,OAAA,EAAA,eAAwB,CAAI,CAAA,EAAA,MAAwB,CAC9E,YAAA,CAAA,CAAA,CAAA,IAAI,CAAG,CAAC,IAAK,CAAC,CAAC,IAAI,EAAA,CAAA,CAAA,CAAA;;MAEtB,QAAQ,EAAA,CAAA;;;;;;;WASJ,QAAQ,GAAA,YAAA;;MAEZ,aAAa,EAAA,CAAA;;MACb,kBAAkB,EAAA,CAAA;MAClB,iBAAiB,EAAA,CAAA;MACjB,qBAAqB,EAAA,CAAA;MACrB,iBAAiB,EAAA,CAAA;;;;WAIb,aAAa,GAAA,YAAA;sBACjB,QAAQ,GAAA,MAAS,KAAK,CAAW,CAAA,OAAA,EAAA,eAAwB,CAAI,CAAA,EAAA,MAAwB,CAClF,gBAAA,CAAA,CAAA,CAAA,IAAI,CAAE,CAAC,IAAI,CAAC,CAAC,IAAI,EAAA,CAAA,CAAA,CAAA;MACpB,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAA,CAAA;IAC5B,EAAA,OAAO,CAAC,GAAG,CAAf,MAAA,CAAA,MAAA,KAAoB,QAAQ,CAAA,CAAA,CAAA;;;;;WAKpB,kBAAkB,GAAA,YAAA;sBACtB,aAAa,GAAA,MAAS,KAAK,CAAW,CAAA,OAAA,EAAA,eAAwB,CAAI,CAAA,EAAA,MAAwB,CACvF,yBAAA,CAAA,CAAA,CAAA,IAAI,CAAE,CAAC,IAAI,CAAC,CAAC,IAAI,EAAA,CAAA,CAAA,CAAA;MACpB,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAA,CAAA;IAC7B,EAAA,OAAO,CAAC,GAAG,CAAf,MAAA,CAAA,MAAA,KAAoB,aAAa,CAAA,CAAA,CAAA;;;WAGzB,iBAAiB,GAAA,YAAA;MACrB,YAAY,GAAA,MAAS,KAAK,CAAW,CAAA,OAAA,EAAA,eAAwB,CAAI,CAAA,EAAA,MAAwB,CACtF,uBAAA,CAAA,CAAA,CAAA,IAAI,CAAE,CAAC,IAAI,CAAC,CAAC,IAAI,EAAA,CAAA,CAAA;MACpB,OAAO,CAAC,GAAG,CAAC,oBAAoB,CAAA,CAAA;IAChC,EAAA,OAAO,CAAC,GAAG,CAAf,MAAA,CAAA,MAAA,KAAoB,YAAY,CAAA,CAAA,CAAA;;;WAGxB,qBAAqB,GAAA,YAAA;sBACzB,gBAAgB,GAAA,MAAS,KAAK,CAAW,CAAA,OAAA,EAAA,eAAwB,CAAI,CAAA,EAAA,MAAwB,CAC1F,wBAAA,CAAA,CAAA,CAAA,IAAI,CAAE,CAAC,IAAI,CAAC,CAAC,IAAI,EAAA,CAAA,CAAA,CAAA;MACpB,OAAO,CAAC,GAAG,CAAC,wBAAwB,CAAA,CAAA;IACpC,EAAA,OAAO,CAAC,GAAG,CAAf,MAAA,CAAA,MAAA,KAAoB,gBAAgB,CAAA,CAAA,CAAA;;;WAG5B,iBAAiB,GAAA,YAAA;sBACrB,YAAY,GAAA,MAAS,KAAK,CAAW,CAAA,OAAA,EAAA,eAAwB,CAAI,CAAA,EAAA,MAAwB,CACtF,uBAAA,CAAA,CAAA,CAAA,IAAI,CAAE,CAAC,IAAI,CAAC,CAAC,IAAI,EAAA,CAAA,CAAA,CAAA;MACpB,OAAO,CAAC,GAAG,CAAC,iCAAiC,CAAA,CAAA;IAC7C,EAAA,OAAO,CAAC,GAAG,CAAf,MAAA,CAAA,MAAA,KAAoB,YAAY,CAAA,CAAA,CAAA;IAC5B,EAAA,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,YAAY,CAAA,CAAA,CAAA;;;;;IAKhC,CAAA,MAAA,mBAAmB,SAAS,SAAS,IAAA;MACzC,OAAO,CAAC,GAAG,CAAC,kCAAkC,CAAA,CAAA;MAC9C,OAAO,CAAC,GAAG,CAAC,SAAS,CAAA,CAAA;sBACrB,oBAAoB,GAAA,MAAS,KAAK,CAAW,CAAA,OAAA,EAAA,eAAwB,CAAA,CAAA,EAAI,MAAwB,CAAsC,mCAAA,EAAA,SAAS,CAC7I,CAAA,CAAA,CAAA,IAAI,CAAE,CAAC,IAAI,CAAC,CAAC,IAAI,EAAA,CAAA,CAAA,CAAA;IACpB,EAAA,OAAO,CAAC,GAAG,CAAf,MAAA,CAAA,MAAA,KAAoB,oBAAoB,CAAA,CAAA,CAAA;;;IAIhC,CAAA,MAAA,iBAAiB,SAAS,SAAS,IAAA;MACvC,OAAO,CAAC,GAAG,CAAC,0BAA0B,CAAA,CAAA;MACtC,OAAO,CAAC,GAAG,CAAC,SAAS,CAAA,CAAA;;IACf,EAAA,MAAA,IAAI,GAAS,MAAA,KAAK,CAAW,CAAA,OAAA,EAAA,eAAwB,CAAI,CAAA,EAAA,MAAwB,CAAA,yBAAA,CAAA,EAAA;IACnF,GAAA,MAAM,EAAG,MAAM;OACf,OAAO,EAAA,EAAI,cAAc,EAAE,kBAAkB,EAAA;OAC3C,IAAI,EAAE,IAAI,CAAC,SAAS,CAAA;IACpB,IAAA,kBAAkB,EAAE,SAAS;IAC7B,IAAA,QAAQ,EAAE,GAApB;;IAGO,GAAA,CAAA,CAAA,IAAI,CAAE,CAAC,IAAI,CAAC,CAAC,IAAI,EAAA,CAAA,CAAA;;;;IAGlB,EAAA,OAAO,CAAC,GAAG,CAAjB,MAAA,CAAA,MAAA,KAAsB,IAAI,CAAA,CAAA,CAAA;;IACpB,EAAA,mBAAmB,CAAC,SAAS,CAAA,CAAA;;;IAG3B,CAAA,MAAA,SAAS,SAAS,SAAS,IAAA;MAC/B,OAAO,CAAC,GAAG,CAAC,yCAAyC,CAAA,CAAA;IACrD,EAAA,YAAA,CAAA,CAAA,EAAA,mBAAmB,GAAG,SAAS,CAAA,CAAA;;;;IAIzB,EAAA,MAAA,mBAAmB,CAAC,SAAS,CAAA,CAAA;;MAEnC,OAAO,CAAC,GAAG,CAAC,wBAAwB,CAAA,CAAA;IACpC,EAAA,OAAO,CAAC,GAAG,CAAf,MAAA,CAAA,MAAA,KAAoB,oBAAoB,CAAA,CAAA,CAAA;;;IAGhC,CAAA,MAAA,mBAAmB,SAAS,cAAc,IAAA;MAC9C,OAAO,CAAC,GAAG,CAAC,uBAAuB,CAAA,CAAA;YAE7B,IAAI,GAAA,MAAS,KAAK,CAAA,CAAA,OAAA,EAAW,eAAwB,CAAA,CAAA,EAAI,MAAwB,CAAA,0BAAA,EAA6B,cAAc,CAAA,OAAA,CAAA,EAAA,EAC9H,MAAM,EAAE,OAAhB,EAAA,CAAA,CACO,IAAI,CAAE,CAAC,IAAI,CAAC,CAAC,IAAI,EAAA,CAAA,CAAA;;;MAEpB,OAAO,CAAC,GAAG,CAAC,uCAAuC,CAAA,CAAA;;IACnD,EAAA,OAAO,CAAC,GAAG,CAAf,MAAA,CAAA,MAAA,KAAoB,IAAI,CAAA,CAAA,CAAA;IACd,EAAA,MAAA,mBAAmB,CAAC,mBAAmB,CAAA,CAAA;;;;;;IAMzC,CAAA,MAAA,oBAAoB,SAAS,cAAc,IAAA;MAC/C,OAAO,CAAC,GAAG,CAAC,wBAAwB,CAAA,CAAA;YAC9B,IAAI,GAAA,MAAS,KAAK,CAAA,CAAA,OAAA,EAAW,eAAwB,CAAA,CAAA,EAAI,MAAwB,CAAA,0BAAA,EAA6B,cAAc,CAAA,QAAA,CAAA,EAAA,EAC9H,MAAM,EAAE,OAAhB,EAAA,CAAA,CACO,IAAI,CAAE,CAAC,IAAI,CAAC,CAAC,IAAI,EAAA,CAAA,CAAA;;;MAEpB,OAAO,CAAC,GAAG,CAAC,uCAAuC,CAAA,CAAA;;IACnD,EAAA,OAAO,CAAC,GAAG,CAAf,MAAA,CAAA,MAAA,KAAoB,IAAI,CAAA,CAAA,CAAA;IACd,EAAA,MAAA,mBAAmB,CAAC,mBAAmB,CAAA,CAAA;;;IAGzC,CAAA,MAAA,QAAQ,SAAS,cAAc,IAAA;MACnC,OAAO,CAAC,GAAG,CAAC,UAAU,CAAA,CAAA;MACZ,MAAS,KAAK,CAAA,CAAA,OAAA,EAAW,eAAwB,CAAA,CAAA,EAAI,MAAwB,CAAA,0BAAA,EAA6B,cAAc,CAAA,CAAA,EAAA,EAC9H,MAAM,EAAE,QAAhB,EAAA,CAAA,CACO,IAAI,CAAE,CAAC,IAAI,CAAC,CAAC,IAAI,EAAA,EAAA;;;;IAId,EAAA,MAAA,mBAAmB,CAAC,mBAAmB,CAAA,CAAA;;UACzC,MAAM,CAAC,IAAI,CAAC,oBAAoB,CAAA,CAAE,MAAM,KAAK,CAAC,EAAA,YAAA,CAAA,CAAA,EAChD,oBAAoB,GAAG,SAAS,CAAA,CAAA;;;;;;IAM9B,CAAA,MAAA,mBAAmB,SAAS,SAAS,IAAA;MACzC,OAAO,CAAC,GAAG,CAAC,yCAAyC,CAAA,CAAA;MACrD,OAAO,CAAC,GAAG,CAAC,SAAS,CAAA,CAAA;;IAErB,EAAA,iBAAiB,GAAS,MAAA,KAAK,CAAW,CAAA,OAAA,EAAA,eAAwB,CAAI,CAAA,EAAA,MAAwB,CAAA,yBAAA,CAAA,EAAA;IAC1F,GAAA,MAAM,EAAG,MAAM;OACf,OAAO,EAAA,EAAI,cAAc,EAAE,kBAAkB,EAAA;OAC3C,IAAI,EAAE,IAAI,CAAC,SAAS,CAAA;IACpB,IAAA,kBAAkB,EAAE,SAAS;IAC7B,IAAA,QAAQ,EAAE,GAApB;;IAGO,GAAA,CAAA,CAAA,IAAI,CAAE,CAAC,IAAI,CAAC,CAAC,IAAI,EAAA,CAAA,CAAA;;YACd,iBAAiB,EAAA,CAAA;YACjB,aAAa,EAAA,CAAA;IACnB,EAAA,YAAA,CAAA,CAAA,EAAA,mBAAmB,GAAG,SAAS,CAAA,CAAA;IAC/B,EAAA,YAAA,CAAA,CAAA,EAAA,oBAAoB,GAAG,SAAS,CAAA,CAAA;;;;;;IAM5B,CAAA,MAAA,YAAY,SAAS,cAAc,IAAA;MACvC,OAAO,CAAC,GAAG,CAAC,uCAAuC,CAAA,CAAA;MACnD,OAAO,CAAC,GAAG,CAAC,cAAc,CAAA,CAAA;YACpB,IAAI,GAAA,MAAS,KAAK,CAAA,CAAA,OAAA,EAAW,eAAwB,CAAA,CAAA,EAAI,MAAwB,CAAA,0BAAA,EAA6B,cAAc,CAAA,MAAA,CAAA,EAAA,EAAW,MAAM,EAAE,OAAO,EAAA,CAAA,CACzJ,IAAI,CAAE,CAAC,IAAI,CAAC,CAAC,IAAI,EAAA,CAAA,CAAA;MACpB,OAAO,CAAC,GAAG,CAAC,yBAAyB,CAAA,CAAA;IACrC,EAAA,OAAO,CAAC,GAAG,CAAf,MAAA,CAAA,MAAA,KAAoB,IAAI,CAAA,CAAA,CAAA;YACd,iBAAiB,EAAA,CAAA;YACjB,aAAa,EAAA,CAAA;IACnB,EAAA,YAAA,CAAA,CAAA,EAAA,mBAAmB,GAAG,SAAS,CAAA,CAAA;IAC/B,EAAA,YAAA,CAAA,CAAA,EAAA,oBAAoB,GAAG,SAAS,CAAA,CAAA;;;;;;IAM5B,CAAA,MAAA,YAAY,SAAS,cAAc,IAAA;;IAEjC,EAAA,MAAA,QAAQ,CAAC,cAAc,CAAA,CAAA;;;IAGzB,CAAA,MAAA,SAAS,SAAS,CAAC,IAAA;sBACvB,aAAa,GAAG,CAAC,CAAC,MAAM,CAAA,CAAA;;IACpB,EAAA,IAAA,aAAa,KAAK,WAAW,EAAA;aACzB,aAAa,EAAA,CAAA;IACV,GAAA,MAAA,IAAA,aAAa,KAAK,YAAY,EAAA;aACjC,kBAAkB,EAAA,CAAA;IACf,GAAA,MAAA,IAAA,aAAa,KAAK,iBAAiB,EAAA;aACtC,qBAAqB,EAAA,CAAA;IAClB,GAAA,MAAA,IAAA,aAAa,KAAK,eAAe,EAAA;aACpC,iBAAiB,EAAA,CAAA;OACvB,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAA,CAAA;IAC7B,GAAA,OAAO,CAAC,GAAG,CAAjB,MAAA,CAAA,MAAA,KAAsB,YAAY,CAAA,CAAA,CAAA;;;;;;;;;;oCA8BgB,SAAS,CAAC,KAAK,CAAC,QAAQ,CAAA,CAAA;4CAetB,SAAS,CAAC,WAAW,CAAC,cAAc,CAAA,CAAA;4CAEpC,SAAS,CAAC,WAAW,CAAC,gBAAgB,CAAA,CAAA;sCAWxC,SAAS,CAAC,KAAK,CAAC,cAAc,CAAA,CAAA;sCAY9B,SAAS,CAAC,KAAK,CAAC,gBAAgB,CAAA,CAAA;mCAoB3B,mBAAmB,CAAC,oBAAoB,CAAC,EAAE,CAAA,CAAA;mCAC5D,oBAAoB,CAAC,oBAAoB,CAAC,EAAE,CAAA,CAAA;mCAE9C,YAAY,CAAC,oBAAoB,CAAC,EAAE,CAAA,CAAA;mCAGpC,QAAQ,CAAC,oBAAoB,CAAC,EAAE,CAAA,CAAA;mCAChC,YAAY,CAAC,oBAAoB,CAAC,EAAE,CAAA,CAAA;oCAMlC,mBAAmB,CAAC,oBAAoB,CAAC,EAAE,CAAA,CAAA;oCAE7C,YAAY,CAAC,oBAAoB,CAAC,EAAE,CAAA,CAAA;oCAGlC,YAAY,CAAC,oBAAoB,CAAC,EAAE,CAAA,CAAA;IAIvB,CAAA,MAAA,gBAAA,GAAA,MAAA,iBAAiB,CAAC,mBAAmB,CAAA,CAAA;IACtD,CAAA,MAAA,gBAAA,GAAA,MAAA,mBAAmB,CAAC,mBAAmB,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IC/UzE;IACO,MAAM,MAAM,GAAG,UAAU,CAAC;AACjC;IACO,MAAM,aAAa,GAAG;IAC7B,EAAE,GAAG,EAAE,cAAc;IACrB,EAAE,WAAW,EAAE,eAAe;IAC9B,EAAE,UAAU,EAAE,cAAc;IAC5B,EAAE,GAAG,EAAE,QAAQ;IACf,CAAC,CAAC;AACF;IACA;AACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;AACA;IACA;;;;;;;;;;;;;;wBCrCkB,aAAa,EAAA,MAAA,EAAA;;;;;;;;;;;;;;;;;;OAD/B,UAEK,CAAA,MAAA,EAAA,GAAA,EAAA,MAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ICyFG,GAAA,QAAA,CAAA,QAAA,EAAA,OAAA,EAAA,MAAM,CAAC,UAAU,CAAA,CAAA;IAChB,GAAA,QAAA,CAAA,QAAA,EAAA,QAAA,EAAA,MAAM,CAAC,WAAW,CAAA,CAAA;;;;;;;;OAH3B,UAIS,CAAA,MAAA,EAAA,QAAA,EAAA,MAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;SAnGJ,MAAM,CAAA;;;IAEL,CAAA,IAAA,MAAM,GAAG,KAAK,CAAA;;;;;IAIZ,CAAA,MAAA,GAAG,OAAO,KAAK,EAAA,CAAA;;KACrB,GAAG,CAAC,GAAG,GAAG,qBAAqB,CAAA;;IAC/B,CAAA,GAAG,CAAC,MAAM,GAAA,MAAA;IACR,EAAA,MAAM,GAAG,IAAI,CAAA;;;;;KAef,OAAO,CAAA,MAAA;;IAID,EAAA,MAAA,GAAG,GAAG,MAAM,CAAC,UAAU,CAAC,IAAI,CAAA,CAAA;;;IAEhC,EAAA,GAAG,CAAC,KAAK,GAAG,MAAM,CAAC,UAAU,CAAA;;IAC7B,EAAA,GAAG,CAAC,MAAM,GAAG,MAAM,CAAC,WAAW,CAAA;;;;;;;IAU3B,EAAA,IAAA,OAAO,GAAI,CAAA,MAAM,CAAC,MAAM,GAAI,GAAG,CAAC,MAAM,GAAG,UAAU,IAAI,YAAY,GAAG,CAAC,KAAO,YAAY,CAAA;;;;;;UAiB1F,MAAM,GAAA,EAAK,OAAO,GAAG,GAAG,CAAA,CAAA;;UACxB,MAAM,GAAA,EAAK,OAAO,GAAG,GAAG,CAAA,CAAA;IACxB,EAAA,IAAA,CAAC,GAAG,MAAM,CAAA;IACV,EAAA,IAAA,CAAC,GAAG,MAAM,CAAA;UAEV,KAAK,GAAG,qBAAqB,CAAC,IAAI,CAAA,CAAA;;;IAE/B,EAAA,SAAA,IAAI,CAAC,CAAC,EAAA;;IAEX,GAAA,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,CAAA,CAAA;;;OAE/C,KAAK,GAAG,qBAAqB,CAAC,IAAI,CAAA,CAAA;;;;;;;;;;IAUzB,GAAA,KAAA,IAAA,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,EAAA,EAAA;IACd,IAAA,KAAA,IAAA,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,EAAA,EAAA;;SAEvB,GAAG,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC,GAAI,CAAC,GAAG,OAAO,EAAG,CAAC,GAAI,CAAC,GAAG,OAAO,EAAG,GAAG,CAAC,KAAK,GAAG,UAAU,EAAE,GAAG,CAAC,MAAM,GAAG,UAAU,CAAA,CAAA;;;;;;IAO/G,GAAA,oBAAoB,CAAC,KAAK,CAAA,CAAA;;;;;;;;;;;;OAOjB,MAAM,GAAA,OAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;KAlFb,UAAU,GAAG,EAAE,CAAA;KACf,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,WAAW,GAAG,GAAG,CAAA,CAAA;KAClD,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,UAAU,GAAG,GAAG,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OCqBtD,UAAU,CAAA,MAAA,EAAA,GAAA,EAAA,MAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;IA9BJ,CAAA,IAAA,MAAM,GAAG,KAAK,CAAA;;;;;IAIZ,CAAA,MAAA,GAAG,OAAO,KAAK,EAAA,CAAA;;KACrB,GAAG,CAAC,GAAG,GAAG,qBAAqB,CAAA;;IAC/B,CAAA,GAAG,CAAC,MAAM,GAAA,MAAA;IACR,EAAA,MAAM,GAAG,IAAI,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;KAKZ,UAAU,GAAG,EAAE,CAAA;KACf,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,WAAW,GAAG,GAAG,CAAA,CAAA;KAClD,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,UAAU,GAAG,GAAG,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OCiChD,UAAgC,CAAA,MAAA,EAAA,GAAA,EAAA,MAAA,CAAA,CAAA;;;qDAAjB,GAAK,CAAA,CAAA,CAAA,EAAA,KAAA,EAAA,KAAA,EAAA,KAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAHpB,UAAuD,CAAA,MAAA,EAAA,IAAA,EAAA,MAAA,CAAA,CAAA;;OACvD,UAAkC,CAAA,MAAA,EAAA,IAAA,EAAA,MAAA,CAAA,CAAA;;;;;8CAAnB,GAAM,CAAA,CAAA,CAAA,EAAA,KAAA,EAAA,KAAA,EAAA,KAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;mBAFlB,GAAI,CAAA,CAAA,CAAA,aAAI,GAAI,CAAA,CAAA,CAAA,CAAC,QAAQ,EAAA,OAAAnB,iBAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAJ9B,UAeQ,CAAA,MAAA,EAAA,MAAA,EAAA,MAAA,CAAA,CAAA;OAdN,UAAmB,CAAA,MAAA,EAAA,EAAA,CAAA,CAAA;;OACnB,UAQK,CAAA,MAAA,EAAA,GAAA,CAAA,CAAA;;;OACL,UAGI,CAAA,MAAA,EAAA,EAAA,CAAA,CAAA;OAFF,UAAoB,CAAA,EAAA,EAAA,IAAA,CAAA,CAAA;;OACpB,UAAqB,CAAA,EAAA,EAAA,IAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;SAxDnB,IAAI,CAAA;;KAET,OAAO,CAAA,YAAA;sBACJ,IAAI,GAAA,MAAS,KAAK,CAAW,CAAA,OAAA,EAAA,eAAwB,CAAI,CAAA,EAAA,MAAwB,CAC9E,YAAA,CAAA,CAAA,CAAA,IAAI,CAAE,IAAI,IAAK,IAAI,CAAC,IAAI,EAAA,CAAA,CAAA,CAAA;;;MAIzB,OAAO,CAAC,GAAG,CAAC,UAAU,CAAA,CAAA;;MACtB,OAAO,CAAC,GAAG,CAAC,IAAI,CAAA,CAAA;;;;;;;;;;UAUd,IAAI,IAAI,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,UAAU,KAAK,GAAG,EAAA;OACpD,OAAO,CAAC,GAAG,CAAC,wEAAwE,CAAA,CAAA;;;;WAMlF,KAAK,GAAA,YAAA;IACT,EAAA,MAAM,CAAC,QAAQ,CAAC,IAAI,aAAa,eAAwB,CAAI,CAAA,EAAA,MAAwB,CAAA,YAAA,CAAA,CAAA;MACrF,OAAO,CAAC,GAAG,CAAC,uBAAuB,CAAA,CAAA;;;;;WAK/B,MAAM,GAAA,YAAA;IACN,EAAA,MAAA,KAAK,CAAW,CAAA,OAAA,EAAA,eAAwB,CAAA,CAAA,EAAI,MAAwB,CACpE,mBAAA,CAAA,EAAA,EAAA,MAAM,EAAE,MAAM,EAAA,CAAA,CAAA;IAElB,EAAA,YAAA,CAAA,CAAA,EAAA,IAAI,GAAG,SAAS,CAAA,CAAA;;;;;;;;;IAWS,CAAA,MAAA,aAAA,GAAA,MAAA,IAAI,CAAC,UAAU,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OCSxC,UAA6B,CAAA,MAAA,EAAA,CAAA,EAAA,MAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kCAPxB,GAAS,CAAA,CAAA,CAAA,IAAAA,iBAAA,CAAA,GAAA,CAAA,CAAA;;;;;;;;;;;;;;iEALJ,GAAS,CAAA,CAAA,CAAA,CAAA,EAAA,QAAA,CAAA,GAAA,EAAA,KAAA,EAAA,aAAA,CAAA,CAAA;;;;;;;;;;;;;;;OAAnB,UAA+F,CAAA,MAAA,EAAA,GAAA,EAAA,MAAA,CAAA,CAAA;;OAC/F,UAGM,CAAA,MAAA,EAAA,IAAA,EAAA,MAAA,CAAA,CAAA;OAFJ,UAA0E,CAAA,IAAA,EAAA,KAAA,CAAA,CAAA;yCAA7C,GAAM,CAAA,CAAA,CAAA,CAAA,CAAA;;OACnC,UAAkC,CAAA,IAAA,EAAA,MAAA,CAAA,CAAA;;;;;;;;mEAFJ,GAAU,CAAA,CAAA,CAAA,CAAA,EAAA,KAAA,EAAA,IAAA,EAAA,KAAA,CAAA;;;;;;;4FADhC,GAAS,CAAA,CAAA,CAAA,CAAA,EAAA;;;;8DAEY,GAAM,CAAA,CAAA,CAAA,EAAA;0CAAN,GAAM,CAAA,CAAA,CAAA,CAAA,CAAA;;;yBAGhC,GAAS,CAAA,CAAA,CAAA,EAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8BAGT,GAAS,CAAA,CAAA,CAAA,CAAA,CAAA;;;;;OADZ,UAEK,CAAA,MAAA,EAAA,GAAA,EAAA,MAAA,CAAA,CAAA;;;;kEADF,GAAS,CAAA,CAAA,CAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAXd,UAAoB,CAAA,MAAA,EAAA,CAAA,EAAA,MAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;uCADd,GAAc,CAAA,CAAA,CAAA,EAAA,IAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;OAHxB,UAqBM,CAAA,MAAA,EAAA,IAAA,EAAA,MAAA,CAAA,CAAA;OApBJ,UAAmB,CAAA,IAAA,EAAA,EAAA,CAAA,CAAA;;OACnB,UAA8B,CAAA,IAAA,EAAA,CAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;SAzC1B,SAAS,CAAA;IACT,CAAA,IAAA,MAAM,GAAG,EAAE,CAAA;IACX,CAAA,IAAA,SAAS,GAAG,EAAE,CAAA;;WACZ,cAAc,GAAA,CAAA,YAAA;IACZ,EAAA,MAAA,KAAK,WAAW,eAAwB,IAAI,MAAwB,+BAExE,MAAM,EAAE,MAAM,EAEf,CAAA,CAAA,IAAI,CAAC,QAAQ,IAAA;IAAY,GAAA,OAAA,QAAQ,CAAC,IAAI,EAAA,CAAA;IACtC,GAAA,CAAA,CAAA,IAAI,CAAC,IAAI,IAAA;IACF,GAAA,MAAA,GAAG,GAAG,GAAG,CAAC,eAAe,CAAC,IAAI,CAAA,CAAA;IACpC,GAAA,YAAA,CAAA,CAAA,EAAA,SAAS,GAAG,GAAG,CAAA,CAAA;;;;WAIb,UAAU,GAAA,YAAA;IACR,EAAA,MAAA,QAAQ,GAAS,MAAA,KAAK,CAAW,CAAA,OAAA,EAAA,eAAwB,CAAI,CAAA,EAAA,MAAwB,CAAA,sBAAA,CAAA,EAAA;IAEvF,GAAA,MAAM,EAAG,MAAM;OACf,OAAO,EAAA,EACL,cAAc,EAAE,kBAAkB,EAAA;IAEpC,GAAA,IAAI,EAAG,IAAI,CAAC,SAAS,CACnB,EAAA,WAAW,EAAG,MAAM,EAAA,CAAA;;;UAGtB,QAAQ,CAAC,MAAM,KAAK,GAAG,EAAA;IACzB,GAAA,YAAA,CAAA,CAAA,EAAA,MAAM,GAAG,EAAE,CAAA,CAAA;uBACX,SAAS,GAAA,CAAA,UAAA,CAAA,CAAA,CAAA;;;UAEP,QAAQ,CAAC,MAAM,KAAK,GAAG,EAAA;IACzB,GAAA,IAAI,CAAC,UAAU,CAAA,CAAA;OACf,OAAO,CAAC,GAAG,CAAC,oBAAoB,CAAA,CAAA;;;;;;;;;;;MAgBH,MAAM,GAAA,IAAA,CAAA,KAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OClDzC,UAGK,CAAA,MAAA,EAAA,GAAA,EAAA,MAAA,CAAA,CAAA;OAFH,UAAyC,CAAA,GAAA,EAAA,EAAA,CAAA,CAAA;;OACzC,UAAwD,CAAA,GAAA,EAAA,MAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAA9B,CAAA,MAAA,aAAA,GAAA,MAAA,OAAO,CAAC,GAAG,CAAA,CAAA;;;;;;;;;;;;;;;;;;;ICuDvC,SAAS,QAAQ,CAAC,CAAC,EAAE;IACrB,IAAI,MAAM,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC;IACtB,IAAI,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC;IAC3B;;ICbA,SAAS,GAAG,CAAC,IAAI,EAAE,EAAE,KAAK,GAAG,CAAC,EAAE,QAAQ,GAAG,GAAG,EAAE,MAAM,GAAG,QAAQ,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,OAAO,GAAG,CAAC,EAAE,GAAG,EAAE,EAAE;IACrG,IAAI,MAAM,KAAK,GAAG,gBAAgB,CAAC,IAAI,CAAC,CAAC;IACzC,IAAI,MAAM,cAAc,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC;IAC1C,IAAI,MAAM,SAAS,GAAG,KAAK,CAAC,SAAS,KAAK,MAAM,GAAG,EAAE,GAAG,KAAK,CAAC,SAAS,CAAC;IACxE,IAAI,MAAM,EAAE,GAAG,cAAc,IAAI,CAAC,GAAG,OAAO,CAAC,CAAC;IAC9C,IAAI,OAAO;IACX,QAAQ,KAAK;IACb,QAAQ,QAAQ;IAChB,QAAQ,MAAM;IACd,QAAQ,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC;AACxB,cAAc,EAAE,SAAS,CAAC,WAAW,EAAE,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;AACrE,YAAY,EAAE,cAAc,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;IACzC,KAAK,CAAC;IACN;;IC/DO,MAAM,WAAW,GAAG,IAAI,CAAC;IACzB,MAAM,WAAW,GAAG,OAAO,CAAC;IACnC;IAEO,MAAM,CAAC,GAAG,WAAW,CAAC;IACtB,MAAM,CAAC,GAAG,WAAW,GAAG,WAAW,CAAC;IACpC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAC,CAAC,CAAC,CAAC;IAC9B,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAC,CAAC,CAAC,CAAC;IAC9B,MAAM,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAC,KAAK,CAAC,CAAC;IAC/B,MAAM,EAAE,GAAG,EAAE,GAAC,CAAC,CAAC;IAChB,MAAM,QAAQ,GAAG,EAAE,CAAC;IACpB,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAC,IAAI,CAAC,CAAC;IACpC,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAC,IAAI,CAAC,CAAC;IACvC,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAC,IAAI,CAAC,CAAC;IACrC,MAAM,iBAAiB,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,GAAC,IAAI,CAAC,CAAC;IAIrD,MAAM,eAAe,GAAG,IAAI,CAAC;IAGpC;IACO,MAAM,eAAe,GAAG,CAAC,CAAC;IAC1B,MAAM,gBAAgB,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAC,IAAI,CAAC,CAAC;IAC5C,MAAM,eAAe,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAC,IAAI,CAAC,CAAC;IAIlD;;ICzBO,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAC,GAAG,CAAC,CAAC;IACtC,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAC,EAAE,CAAC,CAAC;IACnC,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAC,GAAG,CAAC,CAAC;IAE1C;IACO,MAAM,qBAAqB,GAAG,EAAE,CAAC;IAEjC,MAAM,kBAAkB,GAAG,EAAE,CAAC;IAC9B,MAAM,kBAAkB,GAAG,EAAE,CAAC;IAE9B,MAAM,cAAc,GAAG,kBAAkB,GAAC,IAAI,CAAC;IAE/C,MAAM,iBAAiB,GAAG,GAAG,CAAC;;ICfrC,IAAY,UAuBX,CAAA;IAvBD,CAAA,UAAY,UAAU,EAAA;;IAErB,IAAA,UAAA,CAAA,UAAA,CAAA,YAAA,CAAA,GAAA,CAAA,CAAA,GAAA,YAAc,CAAA;IACd,IAAA,UAAA,CAAA,UAAA,CAAA,aAAA,CAAA,GAAA,CAAA,CAAA,GAAA,aAAW,CAAA;IACX,IAAA,UAAA,CAAA,UAAA,CAAA,UAAA,CAAA,GAAA,CAAA,CAAA,GAAA,UAAQ,CAAA;IACR,IAAA,UAAA,CAAA,UAAA,CAAA,UAAA,CAAA,GAAA,CAAA,CAAA,GAAA,UAAQ,CAAA;IACR,IAAA,UAAA,CAAA,UAAA,CAAA,qBAAA,CAAA,GAAA,CAAA,CAAA,GAAA,qBAAmB,CAAA;IACnB,IAAA,UAAA,CAAA,UAAA,CAAA,OAAA,CAAA,GAAA,CAAA,CAAA,GAAA,OAAK,CAAA;;IAGL,IAAA,UAAA,CAAA,UAAA,CAAA,uBAAA,CAAA,GAAA,CAAA,CAAA,GAAA,uBAAqB,CAAA;IACrB,IAAA,UAAA,CAAA,UAAA,CAAA,YAAA,CAAA,GAAA,CAAA,CAAA,GAAA,YAAU,CAAA;IACV,IAAA,UAAA,CAAA,UAAA,CAAA,YAAA,CAAA,GAAA,CAAA,CAAA,GAAA,YAAU,CAAA;IACV,IAAA,UAAA,CAAA,UAAA,CAAA,eAAA,CAAA,GAAA,EAAA,CAAA,GAAA,eAAa,CAAA;IACb,IAAA,UAAA,CAAA,UAAA,CAAA,YAAA,CAAA,GAAA,EAAA,CAAA,GAAA,YAAU,CAAA;IACV,IAAA,UAAA,CAAA,UAAA,CAAA,aAAA,CAAA,GAAA,EAAA,CAAA,GAAA,aAAW,CAAA;;IAGX,IAAA,UAAA,CAAA,UAAA,CAAA,gBAAA,CAAA,GAAA,EAAA,CAAA,GAAA,gBAAc,CAAA;IACd,IAAA,UAAA,CAAA,UAAA,CAAA,mBAAA,CAAA,GAAA,EAAA,CAAA,GAAA,mBAAiB,CAAA;IACjB,IAAA,UAAA,CAAA,UAAA,CAAA,sBAAA,CAAA,GAAA,EAAA,CAAA,GAAA,sBAAoB,CAAA;IACpB,IAAA,UAAA,CAAA,UAAA,CAAA,aAAA,CAAA,GAAA,EAAA,CAAA,GAAA,aAAW,CAAA;IAEZ,CAAC,EAvBW,UAAU,KAAV,UAAU,GAuBrB,EAAA,CAAA,CAAA,CAAA;IAED,IAAY,SAIX,CAAA;IAJD,CAAA,UAAY,SAAS,EAAA;IACpB,IAAA,SAAA,CAAA,SAAA,CAAA,SAAA,CAAA,GAAA,CAAA,CAAA,GAAA,SAAW,CAAA;IACX,IAAA,SAAA,CAAA,SAAA,CAAA,IAAA,CAAA,GAAA,CAAA,CAAA,GAAA,IAAM,CAAA;IACN,IAAA,SAAA,CAAA,SAAA,CAAA,MAAA,CAAA,GAAA,CAAA,CAAA,GAAA,MAAI,CAAA;IACL,CAAC,EAJW,SAAS,KAAT,SAAS,GAIpB,EAAA,CAAA,CAAA,CAAA;IAED,IAAY,UAIX,CAAA;IAJD,CAAA,UAAY,UAAU,EAAA;IACrB,IAAA,UAAA,CAAA,UAAA,CAAA,QAAA,CAAA,GAAA,CAAA,CAAA,GAAA,QAAU,CAAA;IACV,IAAA,UAAA,CAAA,UAAA,CAAA,MAAA,CAAA,GAAA,CAAA,CAAA,GAAA,MAAQ,CAAA;IACR,IAAA,UAAA,CAAA,UAAA,CAAA,OAAA,CAAA,GAAA,CAAA,CAAA,GAAA,OAAK,CAAA;IACN,CAAC,EAJW,UAAU,KAAV,UAAU,GAIrB,EAAA,CAAA,CAAA,CAAA;IAED,IAAY,UAGX,CAAA;IAHD,CAAA,UAAY,UAAU,EAAA;IACrB,IAAA,UAAA,CAAA,UAAA,CAAA,QAAA,CAAA,GAAA,CAAA,CAAA,GAAA,QAAU,CAAA;IACV,IAAA,UAAA,CAAA,UAAA,CAAA,WAAA,CAAA,GAAA,CAAA,CAAA,GAAA,WAAS,CAAA;IACV,CAAC,EAHW,UAAU,KAAV,UAAU,GAGrB,EAAA,CAAA,CAAA,CAAA;IAED,IAAY,YAKX,CAAA;IALD,CAAA,UAAY,YAAY,EAAA;;IAEvB,IAAA,YAAA,CAAA,YAAA,CAAA,UAAA,CAAA,GAAA,CAAA,CAAA,GAAA,UAAc,CAAA;IACd,IAAA,YAAA,CAAA,YAAA,CAAA,YAAA,CAAA,GAAA,CAAA,CAAA,GAAA,YAAmB,CAAA;IACnB,IAAA,YAAA,CAAA,YAAA,CAAA,aAAA,CAAA,GAAA,CAAA,CAAA,GAAA,aAAoB,CAAA;IACrB,CAAC,EALW,YAAY,KAAZ,YAAY,GAKvB,EAAA,CAAA,CAAA;;IC3CM,IAAIoB,MAAc,CAAC;IACnB,IAAI,EAAwB,CAAC;IAC7B,IAAI,YAAY,GAAoBC,YAAe,CAAC,QAAQ,CAAC;IAE9D,SAAU,OAAO,CAAC,KAAe,EAAA;QACtCD,MAAI,GAAG,KAAK,CAAC;IACd,CAAC;IAEK,SAAU,KAAK,CAAC,KAA2B,EAAA;QAChD,EAAE,GAAG,KAAK,CAAC;IACZ,CAAC;IAEK,SAAU,eAAe,CAAC,KAAsB,EAAA;QACrD,YAAY,GAAG,KAAK,CAAC;IACtB,CAAC;IAEM,IAAI,aAAyB,CAAC;IAE/B,SAAU,gBAAgB,CAAC,KAAiB,EAAA;QACjD,aAAa,GAAG,KAAK,CAAC;IACvB;;IC+DA;UACa,WAAW,CAAA;IAEvB,IAAA,WAAA,CAAY,OAAsB,CAAC,EAAA;IAClC,QAAA,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;SACjB;IACD,CAAA;IAEK,MAAO,cAAe,SAAQ,WAAW,CAAA;IAE9C,IAAA,WAAA,CAAY,IAAmB,EAAA;IAC9B,QAAA,KAAK,CAACE,UAAa,CAAC,cAAc,CAAC,CAAC;IACpC,QAAA,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;SACjB;IACD,CAAA;IAEK,MAAO,oBAAqB,SAAQ,cAAc,CAAA;QAQvD,WAAY,CAAA,YAA6B,EAAE,KAAa,EAAE,QAAgB,EAAE,YAAA,GAAwB,KAAK,EAAE,iBAA0B,EAAE,eAA0B,EAAA;IAChK,QAAA,KAAK,CAACC,UAAa,CAAC,MAAM,CAAC,CAAC;IAC5B,QAAA,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;IACjC,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACnB,QAAA,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;IACzB,QAAA,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;IACjC,QAAA,IAAI,eAAe,EAAE;IACpB,YAAA,IAAI,CAAC,eAAe,GAAG,eAAe,CAAC;IACvC,SAAA;IACD,QAAA,IAAI,iBAAiB,EAAE;IACtB,YAAA,IAAI,CAAC,iBAAiB,GAAG,iBAAiB,CAAC;IAC3C,SAAA;SACD;IACD,CAAA;IAEK,MAAO,uBAAwB,SAAQ,cAAc,CAAA;IAE1D,IAAA,WAAA,CAAY,aAAqB,EAAA;IAChC,QAAA,KAAK,CAACA,UAAa,CAAC,SAAS,CAAC,CAAC;IAC/B,QAAA,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC;SACnC;IACD,CAAA;IAEK,MAAO,UAAW,SAAQ,WAAW,CAAA;QAG1C,WAAY,CAAA,KAAA,GAAsBC,SAAY,CAAC,OAAO,EAAE,KAAa,CAAC,EAAA;IACrE,QAAA,KAAK,CAACF,UAAa,CAAC,WAAW,CAAC,CAAC;IACjC,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACnB,QAAA,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC;SACb;IACD;;IC1ID;;IAEE;IACI,SAAU,KAAK,CAAC,OAAe,EAAA;IAEpC,IAAA,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;QAC3BF,MAAI,CAAC,KAAK,EAAE,CAAC;IACb,IAAA,MAAM,IAAI,GAAG,SAAS,GAAG,OAAO,CAAC;IACjC,IAAA,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAClB,IAAA,EAAE,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;IACjB,IAAA,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAACK,CAAG,GAAC,GAAG,EAAEC,CAAG,GAAC,GAAG,CAAC,CAAC;IACtC,IAAA,EAAE,CAAC,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC;IACrB,IAAA,EAAE,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;IACnB,CAAC;aAEe,WAAW,GAAA;QAE1B,MAAM,IAAI,GAAG,cAAc,CAAC;IAC5B,IAAA,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAClB,IAAA,EAAE,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;IACjB,IAAA,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAACD,CAAG,GAAC,GAAG,EAAEC,CAAG,GAAC,GAAG,CAAC,CAAC;IACtC,IAAA,EAAE,CAAC,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC;IACrB,IAAA,EAAE,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;IACnB,CAAC;aAEe,mBAAmB,GAAA;QAElC,MAAM,IAAI,GAAG,eAAe,CAAC;IAC7B,IAAA,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAClB,IAAA,EAAE,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;IACjB,IAAA,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAACD,CAAG,GAAC,IAAI,EAAEC,CAAG,GAAC,GAAG,CAAC,CAAC;IACvC,IAAA,EAAE,CAAC,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC;IACrB,IAAA,EAAE,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;IACnB,CAAC;aAEe,UAAU,GAAA;QAEzB,MAAM,IAAI,GAAG,aAAa,CAAC;IAC3B,IAAA,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAClB,IAAA,EAAE,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;IACjB,IAAA,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAACD,CAAG,GAAC,IAAI,EAAEC,CAAG,GAAC,GAAG,CAAC,CAAC;IACvC,IAAA,EAAE,CAAC,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC;IACrB,IAAA,EAAE,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;QAElB,UAAU,CAAC,MAAK;IACf,QAAA,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAACD,CAAG,GAAC,IAAI,EAAEC,CAAG,GAAC,GAAG,CAAC,CAAC;IACvC,QAAA,EAAE,CAAC,KAAK,CAAC,IAAI,GAAG,WAAW,CAAC;IAC5B,QAAA,MAAM,OAAO,GAAG,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC;YAC9B,EAAE,CAAC,KAAK,CAAC,IAAI,GAAGD,CAAG,GAAC,KAAK,CAAC;IAC1B,QAAA,EAAE,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;IAClB,QAAA,EAAE,CAAC,KAAK,CAAC,IAAI,GAAG,OAAO,CAAC;SACxB,EAAE,IAAI,CAAC,CAAC;IACV,CAAC;IAGD;;IAEE;aACc,GAAG,GAAA;IAElB,IAAA,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAACA,CAAG,GAAC,KAAK,EAAEC,CAAG,GAAC,GAAG,CAAC,CAAC;IACxC,IAAA,EAAE,CAAC,KAAK,CAAC,IAAI,GAAG,KAAK,CAAC;IACvB,CAAC;aAEe,IAAI,GAAA;IAEnB,IAAA,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAACD,CAAG,GAAC,KAAK,EAAEC,CAAG,GAAC,GAAG,CAAC,CAAC;IACxC,IAAA,EAAE,CAAC,KAAK,CAAC,IAAI,GAAG,MAAM,CAAC;IACxB,CAAC;IAEK,SAAU,OAAO,CAAC,UAAyB,EAAA;IAEhD,IAAA,IAAI,UAAU,KAAKC,UAAa,CAAC,IAAI,EAAE;IACtC,QAAA,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAACF,CAAG,GAAC,IAAI,EAAEC,CAAG,GAAC,IAAI,CAAC,CAAC;IACxC,QAAA,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAACD,CAAG,GAAC,IAAI,EAAEC,CAAG,GAAC,IAAI,CAAC,CAAC;IACxC,KAAA;IACI,SAAA;IACJ,QAAA,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAACD,CAAG,GAAC,IAAI,EAAEC,CAAG,GAAC,IAAI,CAAC,CAAC;IACxC,QAAA,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAACD,CAAG,GAAC,IAAI,EAAEC,CAAG,GAAC,IAAI,CAAC,CAAC;IACxC,KAAA;QACD,UAAU,CAAC,MAAK;IACf,QAAA,EAAE,CAAC,KAAK,CAAC,IAAI,GAAG,aAAa,CAAC;SAC9B,EAAE,IAAI,CAAC,CAAC;QACT,UAAU,CAAC,MAAK;IACf,QAAA,EAAE,CAAC,KAAK,CAAC,IAAI,GAAG,eAAe,CAAC;SAChC,EAAE,IAAI,CAAC,CAAC;IACV;;ICxFA;IACO,IAAI,QAAiB,CAAC;IACtB,MAAM,YAAY,GAAuB,EAAE,CAAC;IAC5C,IAAI,WAA6B,CAAC;IAEnC,SAAU,SAAS,CAAC,KAAa,EAAA;IAEtC,IAAA,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC;QACxB,WAAW,GAAG,IAAI,CAAC;QAEnB,IAAI,KAAK,KAAK,IAAI,EAAE;YACnB,QAAQ,GAAG,KAAK,CAAC;IACjB,KAAA;IACI,SAAA;YACJ,QAAQ,GAAG,IAAI,CAAC;IAChB,QAAA,OAAO;IACP;;;;;IAKE;IACF,KAAA;IAED,IAAA,YAAY,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC,SAAS,GAAG,eAAwB,GAAI,GAAG,GAAG,MAAwB,GAAG,cAAc,GAAC,CAAC,GAAC,MAAM,CAAC,CAAC,CAAC;IAC/H,IAAA,YAAY,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC,SAAS,GAAG,eAAwB,GAAI,GAAG,GAAG,MAAwB,GAAG,cAAc,GAAC,CAAC,GAAC,MAAM,CAAC,CAAC,CAAC;IAC/H,IAAA,YAAY,CAAC,OAAO,CAAC,CAAC,KAAK,KAAI;IAC9B,QAAA,KAAK,CAAC,MAAM,GAAGE,iBAAmB,CAAC;IACnC,QAAA,KAAK,CAAC,KAAK,GAAG,QAAQ,CAAC;IACxB,KAAC,CAAC,CAAC;QAEH,WAAW,GAAG,IAAI,KAAK,CAAC,SAAS,GAAG,eAAwB,GAAI,GAAG,GAAG,MAAwB,GAAG,uBAAuB,CAAC,CAAC;IAC1H,IAAA,WAAW,CAAC,MAAM,GAAGA,iBAAmB,CAAC;IACzC,IAAA,WAAW,CAAC,KAAK,GAAG,QAAQ,CAAC;IAC9B;;aClCgB,MAAM,CAAC,MAAc,CAAC,EAAE,MAAc,CAAC,EAAA;IACtD,IAAA,OAAO,IAAI,CAAC,MAAM,EAAE,IAAI,GAAG,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC;IAC1C;;ICFM,SAAU,SAAS,CAAC,KAAa,EAAE,IAAY,EAAE,QAAiC,EAAE,WAAwB,EAAA;QAEjH,MAAM,UAAU,GAAa,EAAE,CAAC;IAEhC,IAAA,IAAI,WAAW,EAAE;IAChB,QAAA,UAAU,CAAC,IAAI,CAAE,MAAM,CAAC,UAAU,CAAC,WAAW,EAAE,KAAK,CAAC,CAAE,CAAC;IACzD,KAAA;QAED,IAAI,YAAY,GAAG,CAAC,CAAC;QACrB,OAAO,KAAK,GAAG,CAAC,EAChB;YACC,UAAU,CAAC,IAAI,CAAE,MAAM,CAAC,UAAU,CAAC,CAAC,KAAa,KAAI;IACpD,YAAA,OAAO,CAAC,GAAG,CAAC,YAAY,EAAE,KAAK,CAAC,CAAC;gBACjC,QAAQ,CAAC,KAAK,CAAC,CAAC;IACjB,SAAC,EAAE,YAAY,EAAE,KAAK,CAAC,CACtB,CAAC;YACF,KAAK,IAAI,IAAI,CAAC;YACd,YAAY,IAAI,IAAI,CAAC;IACrB,KAAA;IAED,IAAA,OAAO,UAAU,CAAC;IACnB;;UCvBa,MAAM,CAAA;IAGlB,IAAA,WAAA,CAAY,CAAY,GAAA,CAAC,EAAE,CAAA,GAAY,CAAC,EAAA;IACvC,QAAA,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;IACX,QAAA,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;SACX;QACD,MAAM,CAAC,CAAS,EAAE,CAAS,EAAA;IAC1B,QAAA,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;IACX,QAAA,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;SACX;QACD,UAAU,GAAA;IACT,QAAA,MAAM,mBAAmB,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAChE,QAAA,OAAO,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC,GAAC,mBAAmB,EAAE,IAAI,CAAC,CAAC,GAAC,mBAAmB,CAAC,CAAC;SAC1E;IACD,CAAA;IAEK,MAAO,aAAc,SAAQ,MAAM,CAAA;IAGxC,CAAA;IAED;;;;;;;;;;;;;;;;;;;;;;;IAuBE;;IClCK,MAAM,SAAS,GAAG;IACxB,IAAA,YAAY,EAAE,KAAK;IACnB,IAAA,UAAU,EAAE,KAAK;IACjB,IAAA,YAAY,EAAE,KAAK;KACnB,CAAA;aAEe,cAAc,GAAA;IAC7B,IAAA,SAAS,CAAC,YAAY,GAAG,KAAK,CAAC;IAC/B,IAAA,SAAS,CAAC,UAAU,GAAG,KAAK,CAAC;IAC7B,IAAA,SAAS,CAAC,YAAY,GAAG,KAAK,CAAC;IAChC,CAAC;IAED,MAAM,UAAU,CAAA;IAAhB,IAAA,WAAA,GAAA;YACC,IAAE,CAAA,EAAA,GAAG,EAAE,CAAC;SAKR;IAAA,CAAA;IAED,MAAM,mBAAmB,CAAA;IAKxB,CAAA;IAED,MAAM,KAAK,GAAG,OAAO,GAAG,eAAwB,GAAG,GAAG,GAAG,MAAwB,GAAG,OAAO,CAAC;IACrF,IAAI,MAAiB,CAAC;IACtB,MAAM,UAAU,GAAG,IAAI,UAAU,EAAE,CAAC;IACpC,MAAM,mBAAmB,GAAG,IAAI,mBAAmB,EAAE,CAAC;IAG7C,SAAA,aAAa,CAAC,OAAwB,EAAE,KAAa,EAAE,QAAgB,EAAE,YAAY,GAAG,KAAK,EAAE,iBAA0B,EAAE,eAA0B,EAAA;QAEpK,MAAM,GAAG,IAAI,SAAS,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IACtC,IAAA,OAAO,CAAC,GAAG,CAAC,gCAAgC,GAAG,OAAO,GAAG,YAAY,GAAG,KAAK,GAAG,eAAe,GAAG,QAAQ,GAAG,oBAAoB,GAAI,YAAY;cAC9I,iBAAiB,GAAG,iBAAiB,CAAC,CAAA;QACzC,MAAM,CAAC,gBAAgB,CAAC,MAAM,EAAE,CAAC,KAAK,KAAI;IACzC,QAAA,IAAI,YAAY,EAAE;gBACjB,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAE,IAAIC,oBAAuB,CAAC,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,YAAY,EAAE,iBAAiB,EAAE,eAAe,CAAC,CAAE,CAAC,CAAC;IACvI,SAAA;IACI,aAAA;gBACJ,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAE,IAAIA,oBAAuB,CAAC,OAAO,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAE,CAAC,CAAC;IACrF,SAAA;IACF,KAAC,CAAC,CAAC;;IAEH,IAAA,MAAM,CAAC,gBAAgB,CAAC,SAAS,EAAE,aAAa,CAAC,CAAC;IAClD,IAAA,MAAM,CAAC,gBAAgB,CAAC,SAAS,EAAE,gBAAgB,CAAC,CAAC;IACtD,CAAC;IAMD,SAAS,aAAa,CAAkB,KAAmB,EAAA;QAC1D,MAAM,IAAI,GAAmB,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACpD,IAAI,IAAI,CAAC,IAAI,KAAKP,UAAa,CAAC,KAAK,EAAE;IACtC,QAAA,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;IAC5B,QAAAQ,KAAS,CAAE,IAAsB,CAAC,OAAO,CAAC,CAAC;IAC3C,KAAA;IACF,CAAC;IAED,SAAS,gBAAgB,CAAkB,KAAmB,EAAA;QAE7D,MAAM,IAAI,GAAmB,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACpD,QAAQ,IAAI,CAAC,IAAI;IAChB,QAAA,KAAKR,UAAa,CAAC,QAAQ;IAC1B,YAAA,UAAU,CAAC,EAAE,GAAsB,IAAK,CAAC,EAAE,CAAC;gBAC5C,MAAM;IACP,QAAA,KAAKA,UAAa,CAAC,qBAAqB;gBACvCS,WAAe,EAAE,CAAC;gBAClB,MAAM;IACP,QAAA,KAAKT,UAAa,CAAC,mBAAmB;IACrC,YAAA,UAAU,CAAC,IAAI,GAAiC,IAAK,CAAC,IAAI,CAAC;gBAC3D,IAAI,UAAU,CAAC,IAAI,KAAKK,UAAa,CAAC,IAAI,EAC1C;IACC,gBAAA,UAAU,CAAC,MAAM,GAAG,EAAE,CAAC,UAAU,CAAC;IAClC,gBAAA,UAAU,CAAC,QAAQ,GAAG,EAAE,CAAC,WAAW,CAAC;IACrC,aAAA;qBACI,IAAI,UAAU,CAAC,IAAI,KAAKA,UAAa,CAAC,KAAK,EAChD;IACC,gBAAA,UAAU,CAAC,MAAM,GAAG,EAAE,CAAC,WAAW,CAAC;IACnC,gBAAA,UAAU,CAAC,QAAQ,GAAG,EAAE,CAAC,UAAU,CAAC;IACpC,aAAA;gBACD,UAAU,CAAC,eAAe,GAAG,IAAI,aAAa,CAAC,UAAU,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,EAAE,UAAU,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;gBACrG,UAAU,CAAC,MAAM,CAAC,KAAK,GAAG,WAAW,CAAC;gBACtC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAE,IAAIK,WAAc,CAACV,UAAa,CAAC,iBAAiB,CAAC,CAAE,CAAC,CAAC;gBACnFW,mBAAuB,EAAE,CAAC;gBAC1B,MAAM;IACP,QAAA,KAAKX,UAAa,CAAC,UAAU;IAC5B,YAAA,SAAS,CAAC,YAAY,GAAG,IAAI,CAAC;IAC9B,YAAA,MAAM,CAAC,mBAAmB,CAAC,SAAS,EAAE,gBAAgB,CAAC,CAAC;IACxD,YAAA,MAAM,CAAC,gBAAgB,CAAC,SAAS,EAAE,cAAc,CAAC,CAAC;IACnD,YAAA,aAAa,EAAE,CAAC;gBAChB,MAAM;IACP,QAAA,KAAKA,UAAa,CAAC,UAAU;IAC5B,YAAA,SAAS,CAAC,YAAY,GAAG,IAAI,CAAC;IAC9B,YAAA,MAAM,CAAC,mBAAmB,CAAC,SAAS,EAAE,gBAAgB,CAAC,CAAC;gBACxDY,UAAc,EAAE,CAAC;gBACjB,MAAM;IACP,KAAA;IACF,CAAC;IAED,SAAS,cAAc,CAAkB,KAAmB,EAAA;QAE3D,MAAM,IAAI,GAAmB,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACpD,QAAQ,IAAI,CAAC,IAAI;IAChB,QAAA,KAAKZ,UAAa,CAAC,UAAU;;gBAE5B,UAAU,CAAC,IAA0B,CAAC,CAAC;gBACvC,MAAM;IACP,QAAA,KAAKA,UAAa,CAAC,WAAW;gBAC7B,WAAW,CAAC,IAA2B,CAAC,CAAC;gBACzC,MAAM;IACP,QAAA,KAAKA,UAAa,CAAC,QAAQ;gBAC1B,QAAQ,CAAC,IAAwB,CAAC,CAAC;gBACnC,MAAM;IACP,KAAA;IACF,CAAC;IAED,SAAS,UAAU,CAAC,IAAwB,EAAA;IAE3C,IAAA,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;IAE1B,IAAA,IAAI,YAAY,GAAGD,YAAe,CAAC,WAAW,EAAE;IAC/C,QAAA,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;IAClC,QAAA,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;IACxC,KAAA;QAED,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC,KAAI;IACjC,QAAA,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;IAC1C,QAAA,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;YAChD,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;IACnC,KAAC,CAAC,CAAC;IACH;;;;;IAKM;QAEN,MAAM,aAAa,GAAG,IAAI,aAAa,CAAC,UAAU,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,UAAU,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QAE1F,IAAI,UAAU,CAAC,IAAI,KAAKM,UAAa,CAAC,IAAI,EAAE;YAC3C,UAAU,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;IACzE,KAAA;aACI,IAAI,UAAU,CAAC,IAAI,KAAKA,UAAa,CAAC,KAAK,EAAE;YACjD,UAAU,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;IAC1E,KAAA;;IAGD,IAAA,UAAU,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,UAAU,CAAC,eAAe,CAAC,CAAC,EAAE,UAAU,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;QAC3F,IAAI,UAAU,CAAC,IAAI,KAAKA,UAAa,CAAC,IAAI,EAAE;IAC3C,QAAA,UAAU,CAAC,eAAe,CAAC,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;IACjF,KAAA;aACI,IAAI,UAAU,CAAC,IAAI,KAAKA,UAAa,CAAC,KAAK,EAAE;IACjD,QAAA,UAAU,CAAC,eAAe,CAAC,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;IAChF,KAAA;IAED,IAAA,UAAU,CAAC,QAAQ,CAAC,GAAG,GAAG,IAAI,MAAM,CACnC,UAAU,CAAC,eAAe,CAAC,CAAC,GAAG,UAAU,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,EACxD,UAAU,CAAC,eAAe,CAAC,CAAC,GAAG,UAAU,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CACxD,CAAC;QAEF,IAAI,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE;IACpF,QAAA,UAAU,CAAC,QAAQ,CAAC,GAAG,GAAG,UAAU,CAAC,QAAQ,CAAC,GAAG,CAAC,UAAU,EAAE,CAAC;IAC/D,KAAA;;IAGD,IAAA,WAAW,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;;IAG9B,IAAA,IAAI,UAAU,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,aAAa,CAAC,CAAC,GAAG,CAAC;IAC7C,WAAA,UAAU,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,aAAa,CAAC,CAAC,GAAG,CAAC,EACjD;YACC,OAAO,CAAC,GAAG,CACV,CAAA;uBACoB,IAAI,CAAC,UAAU,CAAC,CAAC,CAAA;AACjB,qBAAA,EAAA,UAAU,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAA;AACvB,qBAAA,EAAA,aAAa,CAAC,CAAC,CAAE,CAAA,CACpC,CAAC;IACH,KAAA;IACF,CAAC;IAED,SAAS,WAAW,CAAC,IAAyB,EAAA;;QAG7C,IAAI,CAAC,QAAQ,EACb;IACC,QAAA,IAAI,UAAU,CAAC,IAAI,KAAKA,UAAa,CAAC,IAAI,IAAI,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC,UAAU,CAAC,KAAK,EAAE;gBACpF,WAAW,CAAC,IAAI,EAAE,CAAC;IACnB,SAAA;IACI,aAAA,IAAI,UAAU,CAAC,IAAI,KAAKA,UAAa,CAAC,KAAK,IAAI,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC,SAAS,CAAC,KAAK,EAAE;gBACxF,WAAW,CAAC,IAAI,EAAE,CAAC;IACnB,SAAA;IACD,KAAA;QACD,EAAE,CAAC,SAAS,CAAC,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC;QACpC,EAAE,CAAC,UAAU,CAAC,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC;IACvC,CAAC;IAED,SAAS,QAAQ,CAAC,IAAsB,EAAA;IAEvC,IAAA,SAAS,CAAC,UAAU,GAAG,IAAI,CAAC;QAC5B,MAAM,CAAC,KAAK,EAAE,CAAC;IACf,IAAA,IAAI,IAAI,CAAC,MAAM,KAAK,UAAU,CAAC,IAAI,EAAE;YACpCQ,GAAO,EAAE,CAAC;YACV,IAAI,IAAI,CAAC,OAAO,EAAE;IACjB,YAAAC,OAAW,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;IAC7B,SAAA;IACD,KAAA;IACI,SAAA;YACJC,IAAQ,EAAE,CAAC;IACX,KAAA;IACF,CAAC;IAED;IAEM,SAAU,sBAAsB,CAAC,aAAqB,EAAA;QAE3D,MAAM,GAAG,IAAI,SAAS,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;QACtC,MAAM,CAAC,gBAAgB,CAAC,MAAM,EAAE,CAAC,KAAK,KAAI;IACzC,QAAA,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAE,IAAIC,uBAA0B,CAAC,aAAa,CAAC,CAAE,CAAC,CAAC;IAC9E,KAAC,CAAC,CAAC;;IAEH,IAAA,MAAM,CAAC,gBAAgB,CAAC,SAAS,EAAE,aAAa,CAAC,CAAC;IAClD,IAAA,MAAM,CAAC,gBAAgB,CAAC,SAAS,EAAE,yBAAyB,CAAC,CAAC;QAE9D,mBAAmB,CAAC,iBAAiB,GAAG,IAAI,aAAa,CAAC,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QACpG,mBAAmB,CAAC,kBAAkB,GAAG,IAAI,aAAa,CAAC,EAAE,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IAExG,CAAC;IAEK,SAAU,yBAAyB,CAAkB,KAAmB,EAAA;QAE7E,MAAM,IAAI,GAAmB,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACpD,IAAI,IAAI,CAAC,IAAI,KAAKhB,UAAa,CAAC,UAAU,EAC1C;IACC,QAAA,SAAS,CAAC,YAAY,GAAG,IAAI,CAAC;IAC9B,QAAA,MAAM,CAAC,mBAAmB,CAAC,SAAS,EAAE,yBAAyB,CAAC,CAAC;IACjE,QAAA,MAAM,CAAC,gBAAgB,CAAC,SAAS,EAAE,uBAAuB,CAAC,CAAC;YAC5D,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAE,IAAIU,WAAc,CAACV,UAAa,CAAC,oBAAoB,CAAC,CAAE,CAAC,CAAC;IACtF,QAAA,aAAa,EAAE,CAAC;IAChB,KAAA;IACF,CAAC;IAED,SAAS,uBAAuB,CAAkB,KAAmB,EAAA;QAEpE,MAAM,IAAI,GAAmB,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACpD,QAAQ,IAAI,CAAC,IAAI;IAChB,QAAA,KAAKA,UAAa,CAAC,UAAU;gBAC5B,mBAAmB,CAAC,IAA0B,CAAC,CAAC;gBAChD,MAAM;IACP,QAAA,KAAKA,UAAa,CAAC,WAAW;gBAC7B,oBAAoB,CAAC,IAA2B,CAAC,CAAC;gBAClD,MAAM;IACP,QAAA,KAAKA,UAAa,CAAC,QAAQ;gBAC1B,iBAAiB,CAAyB,CAAC,CAAC;gBAC5C,MAAM;IACP,KAAA;IACF,CAAC;IAED,SAAS,mBAAmB,CAAC,IAAwB,EAAA;IAEpD,IAAA,OAAO,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAC;IAEnC,IAAA,IAAI,YAAY,GAAGD,YAAe,CAAC,WAAW,EAAE;IAC/C,QAAA,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;IAClC,QAAA,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;IACxC,KAAA;QAED,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC,KAAI;IACjC,QAAA,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;IAC1C,QAAA,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;YAChD,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;IACnC,KAAC,CAAC,CAAC;;IAGH,IAAA,KAAK,MAAM,MAAM,IAAI,CAAC,EAAE,CAAC,UAAU,EAAE,EAAE,CAAC,WAAW,CAAC,EACpD;IACC,QAAA,IAAI,OAAsB,CAAC;IAC3B,QAAA,IAAI,MAAM,KAAK,EAAE,CAAC,UAAU,EAAE;IAC7B,YAAA,OAAO,GAAG,mBAAmB,CAAC,iBAAiB,CAAC;IAChD,SAAA;IACI,aAAA;IACJ,YAAA,OAAO,GAAG,mBAAmB,CAAC,kBAAkB,CAAC;IACjD,SAAA;IAED,QAAA,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC;IACxC,QAAA,IAAI,MAAM,KAAK,EAAE,CAAC,UAAU,EAAE;IAC7B,YAAA,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;IAChD,SAAA;IACI,aAAA;IACJ,YAAA,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;IACjD,SAAA;YAED,MAAM,CAAC,GAAG,GAAG,IAAI,MAAM,CACtB,OAAO,CAAC,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,EACxB,OAAO,CAAC,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CACxB,CAAC;YAEF,IAAI,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE;gBAC1D,MAAM,CAAC,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC,UAAU,EAAE,CAAC;IACrC,SAAA;IACD,KAAA;IACF,CAAC;IAED,SAAS,oBAAoB,CAAC,IAAyB,EAAA;IAEtD,IAAA,OAAO,CAAC,GAAG,CAAC,sBAAsB,CAAC,CAAC;QACpC,EAAE,CAAC,SAAS,CAAC,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC;QACpC,EAAE,CAAC,UAAU,CAAC,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC;IACvC,CAAC;IAED,SAAS,iBAAiB,CAAC,IAAsB,EAAA;IAEhD,IAAA,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC;IACjC,IAAA,SAAS,CAAC,UAAU,GAAG,IAAI,CAAC;QAC5B,MAAM,CAAC,KAAK,EAAE,CAAC;IAChB;;UCvUa,YAAY,CAAA;QAIxB,WAAY,CAAA,UAAyB,EAAE,SAAiB,EAAA;IACvD,QAAA,IAAI,CAAC,KAAK,GAAG,UAAU,CAAC,KAAK,CAAC;IAC9B,QAAA,IAAI,CAAC,EAAE,GAAG,UAAU,CAAC,EAAE,CAAC;IACxB,QAAA,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;SAC3B;IACD;;ICLM,IAAI,WAAW,GAAG,KAAK,CAAC;IAI/B,IAAIkB,YAAkB,CAAC;IAEvB,MAAM,UAAU,GAAkB,IAAIC,UAAa,EAAE,CAAC;IACtD,MAAM,eAAe,GAAmB,EAAE,CAAC;IAE3C;IACA;;;IAGI;aAEY,WAAW,GAAA;IAE1B;;IAEiD;IAEjD,IAAAD,YAAU,GAAGE,cAAgB,CAAC;;IAG9B,IAAA,UAAU,CAAC,EAAE,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAC3B,UAAU,CAAC,KAAK,GAAGjB,SAAY,CAAC,OAAO,CAAC;IAExC,IAAA,MAAM,IAAI,GAAGJ,MAAI,CAAC,IAAI,CAAC;IACvB,IAAA,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EACrB;YACC,IAAI,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,EAC3B;gBACC,WAAW,GAAG,CAAC,WAAW,CAAC;IAC3B,YAAAA,MAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;IACpB,SAAA;IACD,QAAA,eAAe,CAACmB,YAAU,EAAE,IAAI,CAAC,CAAC;IAClC,KAAA;IAED,IAAA,IAAI,CAAC,SAAS,CAAC,UAAU,EAAE;YAC1B,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC;IACxC,KAAA;;QAED,eAAe,CAAC,IAAI,CAAC,IAAI,YAAY,CAAC,UAAU,EAAEA,YAAU,CAAC,CAAC,CAAC;;QAG/D,IAAI,UAAU,CAAC,KAAK,KAAKf,SAAY,CAAC,OAAO,EAAE;;;IAG9C,QAAA,oBAAoB,CAACe,YAAU,EAAE,UAAU,CAAC,KAAK,CAAC,CAAC;IACnD,KAAA;IACF,CAAC;IAED,SAAS,eAAe,CAAC,KAAa,EAAE,IAAc,EAAA;QAErD,IAAI,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,CAAC,EAC5E;YACC,IAAI,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE;gBAC/E,UAAU,CAAC,KAAK,GAAGf,SAAY,CAAC,EAAE,CAAC;IACnC,SAAA;IACD,KAAA;aACI,IAAI,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE;YACpF,UAAU,CAAC,KAAK,GAAGA,SAAY,CAAC,IAAI,CAAC;IACrC,KAAA;IACF,CAAC;IAOD,SAAS,oBAAoB,CAAC,KAAa,EAAE,KAAmB,EAAA;;IAG/D,IAAA,MAAM,MAAM,GAAG,UAAU,CAAC,MAAM,CAAC;IACjC,IAAA,IAAI,KAAK,KAAKA,SAAY,CAAC,EAAE,EAAE;IAC9B,QAAA,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IAClB,KAAA;IACI,SAAA,IAAI,KAAK,KAAKA,SAAY,CAAC,IAAI,EAAE;IACrC,QAAA,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;IACjB,KAAA;IACD,IAAA,MAAM,CAAC,cAAc,CAAC,KAAK,EAAE,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC;IAC3D,CAAC;IAEK,SAAU,WAAW,CAAC,WAAmB,EAAA;;QAG9C,IAAI,CAAC,GAAG,eAAe,CAAC,SAAS,CAAC,CAAC,KAAmB,KAAI;IACzD,QAAA,IAAI,KAAK,CAAC,EAAE,KAAK,WAAW,EAAE;IAC7B,YAAA,OAAO,IAAI,CAAC;IACZ,SAAA;IACD,QAAA,OAAO,KAAK,CAAC;IACd,KAAC,CAAC,CAAC;;QAGH,eAAe,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,GAAC,CAAC,CAAC,CAAC;;IAG/B,IAAA,eAAe,CAAC,OAAO,CAAC,CAAC,KAAmB,KAAI;YAC/C,IAAI,KAAK,CAAC,KAAK,KAAKA,SAAY,CAAC,OAAO,EAAE;gBACzC,oBAAoB,CAAC,KAAK,CAAC,SAAS,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;IACnD,SAAA;IACF,KAAC,CAAC,CAAC;IACJ;;ICzGgB,SAAA,cAAc,CAAC,KAAa,EAAE,EAAkB,EAAA;IAE/D,IAAA,MAAM,OAAO,GAAoB,EAAE,CAAC,OAAO,CAAC;IAC5C,IAAA,MAAM,UAAU,GAAoB,EAAE,CAAC,UAAU,CAAC;IAClD,IAAA,IAAI,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,OAAO,CAAC,GAAG,CAAC,CAAC,IAAIkB,gBAAkB,EAAE;IAC9D,QAAA,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;IACpB,KAAA;QACD,IAAI,UAAU,CAAC,GAAG,CAAC,CAAC,IAAIhB,CAAG,GAACiB,QAAU,IAAI,UAAU,CAAC,GAAG,CAAC,CAAC,IAAIjB,CAAG,GAACgB,gBAAkB,EAAE;IACrF,QAAA,UAAU,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;IACvB,KAAA;IACD,IAAA,OAAO,CAAC,cAAc,CAAC,KAAK,EAAE,CAAC,EAAE,CAAC,UAAU,EAAE,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC;IAC/D,IAAA,UAAU,CAAC,cAAc,CAAC,KAAK,EAAE,CAAC,EAAE,CAAC,UAAU,EAAE,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC;IACnE;;ICNA,IAAI,UAAkB,CAAC;aAEP,QAAQ,GAAA;IAEvB;;IAEiD;IAEjD,IAAA,UAAU,GAAGD,cAAgB,CAAC;;;;QAK9B,IAAI,UAAU,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAG;YACpC,mBAAmB,CAAC,UAAU,EAAE,UAAU,CAAC,QAAQ,EAAE,UAAU,CAAC,eAAe,CAAC,CAAC;IACjF,KAAA;;QAGD,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,IAAI,KAAI;YAC5B,IAAI,CAAC,aAAa,CAAC,UAAU,EAAE,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,EAAE,EAAE,CAAC,UAAU,EAAE,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC;IAC5F,KAAC,CAAC,CAAC;IAEH,IAAA,IAAI,YAAY,GAAGpB,YAAe,CAAC,WAAW,EAAE;IAC/C,QAAA,cAAc,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;IAC/B,KAAA;IACF,CAAC;aAEe,iBAAiB,GAAA;IAEhC,IAAA,UAAU,GAAGoB,cAAgB,CAAC;;QAG9B,IAAI,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAG;YAC9B,mBAAmB,CAAC,UAAU,EAAE,EAAE,CAAC,UAAU,EAAE,mBAAmB,CAAC,iBAAiB,CAAC,CAAC;IACtF,KAAA;QACD,IAAI,EAAE,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAG;YAC/B,mBAAmB,CAAC,UAAU,EAAE,EAAE,CAAC,WAAW,EAAE,mBAAmB,CAAC,kBAAkB,CAAC,CAAC;IACxF,KAAA;;QAGD,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,IAAI,KAAI;YAC5B,IAAI,CAAC,aAAa,CAAC,UAAU,EAAE,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,EAAE,EAAE,CAAC,UAAU,EAAE,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC;IAC5F,KAAC,CAAC,CAAC;IAEH,IAAA,IAAI,YAAY,GAAGpB,YAAe,CAAC,WAAW,EAAE;IAC/C,QAAA,cAAc,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;IAC/B,KAAA;IACF,CAAC;IAED,SAAS,mBAAmB,CAAC,KAAa,EAAE,MAAoB,EAAE,OAAsB,EAAA;;IAGvF,IAAA,MAAM,CAAC,cAAc,CAAC,KAAK,EAAE,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC;IAE1D,IAAA,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC;IAC7C,YAAC,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,EAClD;IACC,QAAA,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;YACjB,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;IACzB,KAAA;IACF;;aCnEgB,QAAQ,GAAA;QAEvBD,MAAI,CAAC,KAAK,EAAE,CAAC;IAEb,IAAA,IAAI,WAAW,EAAE;IAChB,QAAA,QAAQ,EAAE,CAAC;IACX,KAAA;IAED,IAAA,UAAU,EAAE,CAAC;IAEb,IAAA,EAAE,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;IAClB,IAAA,EAAE,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;IAClB,IAAA,EAAE,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;IAElB,IAAA,WAAW,EAAE,CAAC;IACf,CAAC;IAED,SAAS,WAAW,GAAA;IAEnB,IAAA,EAAE,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC;IACtB,IAAA,EAAE,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC;IACvB,IAAA,EAAE,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC;IACvB,IAAA,EAAE,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC;QACxB,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,IAAI,KAAI;YAC5B,IAAI,CAAC,MAAM,EAAE,CAAC;IACf,KAAC,CAAC,CAAC;IACJ,CAAC;IAED,SAAS,UAAU,GAAA;IAElB,IAAA,EAAE,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;IACpB,IAAA,EAAE,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;IACpB,IAAA,EAAE,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC;IACxB,CAAC;IAED,SAAS,QAAQ,GAAA;IAEhB,IAAA,EAAE,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC;IACvB,IAAA,EAAE,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC;IACtB,IAAA,EAAE,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC;IAEtB,IAAA,EAAE,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC;IACvB,IAAA,EAAE,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC;IACtB,IAAA,EAAE,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC;IACvB;;UC/Ca,WAAW,CAAA;IAAxB,IAAA,WAAA,GAAA;YACC,IAAK,CAAA,KAAA,GAAG,KAAK,CAAC;YACd,IAAW,CAAA,WAAA,GAAG,KAAK,CAAC;YACpB,IAAY,CAAA,YAAA,GAAG,KAAK,CAAC;YACrB,IAAkB,CAAA,kBAAA,GAAG,KAAK,CAAC;YAC3B,IAAe,CAAA,eAAA,GAAG,KAAK,CAAC;YACxB,IAAiB,CAAA,iBAAA,GAAG,EAAE,CAAC;YACvB,IAAiB,CAAA,iBAAA,GAAG,EAAE,CAAC;SAUvB;IATA,IAAA,KAAK,CAAC,iBAAyB,EAAA;IAC9B,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACnB,QAAA,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;IACzB,QAAA,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;IAC1B,QAAA,IAAI,CAAC,kBAAkB,GAAG,KAAK,CAAC;IAChC,QAAA,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC;IAC7B,QAAA,IAAI,CAAC,iBAAiB,GAAG,iBAAiB,CAAC;IAC3C,QAAA,IAAI,CAAC,iBAAiB,GAAG,EAAE,CAAC;SAC5B;IACD;;UCfY,QAAQ,CAAA;IAQpB,IAAA,WAAA,CAAY,SAAiB,EAAA;YAP7B,IAAI,CAAA,IAAA,GAAa,EAAE,CAAC;YACpB,IAAmB,CAAA,mBAAA,GAAW,CAAC,CAAC;YAChC,IAAgB,CAAA,gBAAA,GAAW,CAAC,CAAC;YAC7B,IAAgB,CAAA,gBAAA,GAAW,CAAC,CAAC;YAC7B,IAAU,CAAA,UAAA,GAAa,EAAE,CAAC;YAIzB,MAAM,MAAM,GAAG,QAAQ,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC;IACpD,QAAA,IAAI,MAAM,IAAI,MAAM,YAAY,iBAAiB,EAAE;IAClD,YAAA,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACrB,SAAA;IACI,aAAA;IACJ,YAAA,OAAO,CAAC,GAAG,CAAC,wCAAwC,CAAC,CAAC;gBACtD,OAAO;IACP,SAAA;YACD,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,CAA6B,CAAC;YACpE,IAAI,CAAC,MAAM,CAAC,KAAK,GAAGwB,WAAa,CAAC;IAClC,QAAA,IAAI,CAAC,MAAM,CAAC,MAAM,GAAGA,WAAa,GAAGC,WAAa,CAAC;SACnD;IACD,IAAA,MAAM,CAAC,GAAW,EAAA;IACjB,QAAA,GAAG,GAAG,GAAG,CAAC,WAAW,EAAE,CAAC;YACxB,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;YAC/B,IAAI,CAAC,IAAI,CAAC,CAAC;IACV,YAAA,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;SACrB;IACD,IAAA,SAAS,CAAC,GAAW,EAAA;IACpB,QAAA,GAAG,GAAG,GAAG,CAAC,WAAW,EAAE,CAAC;YACxB,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IAC/B,QAAA,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE;gBACZ,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACvB,SAAA;SACD;QACD,KAAK,GAAA;YACJ,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;SAChE;IACD;;ICpCD;UACa,QAAQ,CAAA;QAOpB,WAAY,CAAA,GAAkB,EAAE,IAAY,EAC1C,GAA6B,EAAE,KAAa,EAAE,IAAA,GAAe,QAAQ,EAAA;YAFvE,IAAI,CAAA,IAAA,GAAW,EAAE,CAAC;;IAKjB,QAAA,IAAI,CAAC,GAAG,GAAG,IAAI,aAAa,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;IAC3C,QAAA,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACjB,QAAA,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;IACf,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACnB,QAAA,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;SACjB;QACD,MAAM,GAAA;IACL,QAAA,IAAI,CAAC,GAAG,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,GAAG,IAAI,GAAG,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC;YACnD,IAAI,CAAC,GAAG,CAAC,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC;YAChC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;SACrD;QACD,KAAK,GAAA;;;IAGJ,QAAA,IAAI,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;;;;;IAKjD,QAAA,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,GAAC,IAAI,CAAC,IAAI,GAAG,CAAC,EAAE,UAAU,CAAC,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;;;SAG1F;IACD,CAAA;IAEK,MAAO,gBAAiB,SAAQ,QAAQ,CAAA;QAE7C,WAAY,CAAA,GAAkB,EAAE,IAAY,EAC1C,GAA6B,EAAE,KAAa,EAAE,IAAa,EAAA;YAE5D,KAAK,CAAC,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;YAJ5B,IAAM,CAAA,MAAA,GAAW,CAAC,CAAC;SAK1B;IACD,IAAA,IAAI,KAAK,GAAA;YACR,OAAO,IAAI,CAAC,MAAM,CAAC;SACnB;QACD,IAAI,KAAK,CAAC,CAAS,EAAA;IAClB,QAAA,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;IAChB,QAAA,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC,QAAQ,EAAE,CAAC;SACzB;IACD;;UClDY,SAAS,CAAA;IAIrB,IAAA,WAAA,CAAY,GAAkB,EAAE,KAAa,EAAE,MAAc,EAAA;IAC5D,QAAA,IAAI,CAAC,GAAG,GAAG,IAAI,aAAa,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;IAC3C,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACnB,QAAA,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;SACrB;IACD,IAAA,SAAS,CAAC,QAAmB,EAAA;IAC5B,QAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;YAC5B,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC;IAC1C,QAAA,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;YAC3B,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC;IAC5C,QAAA,MAAM,YAAY,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;YACpC,MAAM,aAAa,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC;IACtD,QAAA,MAAM,WAAW,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;YACnC,MAAM,cAAc,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,GAAG,QAAQ,CAAC,MAAM,CAAC;IACxD,QAAA,IAAI,CAAC,UAAU,GAAG,WAAW;oBACzB,OAAO,GAAG,cAAc,CAAC;oBACzB,SAAS,GAAG,YAAY,CAAC;IAC1B,gBAAC,QAAQ,GAAG,aAAa,CAAC,EAAE;IAC9B,YAAA,OAAO,KAAK,CAAC;IACb,SAAA;IACI,aAAA;IACJ,YAAA,OAAO,IAAI,CAAC;IACZ,SAAA;SACD;IACD,CAAA;IAEK,MAAO,eAAgB,SAAQ,SAAS,CAAA;IAI7C,IAAA,WAAA,CAAY,GAAkB,EAAE,KAAa,EAAE,MAAc,EAAE,SAAiB,EAAA;IAC/E,QAAA,KAAK,CAAC,GAAG,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;YAJ3B,IAAG,CAAA,GAAA,GAAW,IAAI,MAAM,CAAC,CAAC,EAAC,CAAC,CAAC,CAAC;IAK7B,QAAA,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;IAC3B,QAAA,IAAI,CAAC,KAAK,GAAG,SAAS,CAAC;SACvB;IACD,IAAA,IAAI,CAAC,KAAa,EAAA;;;;IAIjB,QAAA,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IAC9C,QAAA,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;SAC9C;QACD,cAAc,CAAC,KAAa,EAAE,WAAwB,EAAA;IACrD,QAAA,IAAI,CAAC,mBAAmB,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;SAC7C;QACS,mBAAmB,CAAC,KAAa,EAAE,WAAwB,EAAA;IACpE,QAAA,IAAI,MAAM,GAAG,IAAI,aAAa,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IACvD,QAAA,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACjB,IAAI,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,EAAE;IAC3C,YAAA,IAAI,CAAC,GAAG,GAAG,MAAM,CAAC;IAClB,SAAA;SACD;IACD,CAAA;IAEK,MAAO,MAAO,SAAQ,eAAe,CAAA;IAC1C,IAAA,WAAA,CAAY,GAAkB,EAAE,KAAa,EAAE,MAAc,EAAE,SAAiB,EAAA;YAC/E,KAAK,CAAC,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC;SACrC;QACD,cAAc,CAAC,KAAa,EAAE,WAAwB,EAAA;;IAErD,QAAA,IAAI,CAAC,mBAAmB,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;;SAE7C;IACD,CAAA;IAEK,MAAO,IAAK,SAAQ,eAAe,CAAA;IAGxC,IAAA,WAAA,CAAY,GAAkB,EAAE,IAAY,EAAE,SAAiB,EAAE,aAAqB,EAAA;YACrF,KAAK,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC;YAFnC,IAAU,CAAA,UAAA,GAAY,KAAK,CAAC;IAG3B,QAAA,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC;SACnC;QACD,aAAa,CAAC,KAAa,EAAE,WAAwB,EAAA;IACpD,QAAA,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACjB,QAAA,IAAI,CAAC,GAAG,WAAW,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;IACpD,QAAA,IAAI,CAAC,IAAI,CAAC,CAAC,EACX;gBACC,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC;IAC5B,YAAA,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACjB,SAAA;SACD;IACD,IAAA,MAAM,CAAC,QAAoB,EAAA;IAC1B,QAAA,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;SAC3B;IACS,IAAA,WAAW,CAAC,QAAoB,EAAA;IACzC;IACuD;YACvD,IAAI,QAAQ,YAAY,MAAM,EAAE;IAC/B,YAAA,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;IAC7B,SAAA;IACI,aAAA;gBACJ,IAAI,CAAC,WAAW,EAAE,CAAC;IACnB,SAAA;SACD;QACS,WAAW,GAAA;IACpB,QAAA,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;SAC7B;IACS,IAAA,aAAa,CAAC,MAAc,EAAA;IACrC,QAAA,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC;SAC/B;IACS,IAAA,iBAAiB,CAAC,MAAc,EAAA;IACzC,QAAA,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,aAAa,CAAC;YAEjC,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;YAExB,MAAM,iBAAiB,GAAG,EAAE,CAAC;IAC7B,QAAA,MAAM,WAAW,GAAG,iBAAiB,GAAG,EAAE,CAAC;IAC3C,QAAA,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,GAAC,CAAC,CAAC;IACnC,QAAA,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM,GAAC,CAAC,CAAC;YAC3C,MAAM,SAAS,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,UAAU,CAAC;IAE5C,QAAA,IAAI,MAAM,GAAG,OAAO,GAAG,SAAS,CAAC;IACjC,QAAA,MAAM,gBAAgB,GAAG,UAAU,GAAG,IAAI,CAAC;YAC3C,IAAI,MAAM,GAAG,gBAAgB,IAAI,MAAM,GAAG,CAAC,gBAAgB,EAAE;gBAC5D,MAAM,GAAG,CAAC,CAAC;IACX,SAAA;iBACI,IAAI,MAAM,GAAG,CAAC,EAAE;IACpB,YAAA,MAAM,GAAG,MAAM,GAAG,gBAAgB,CAAC;IACnC,SAAA;iBACI,IAAI,MAAM,GAAG,CAAC,EAAE;IACpB,YAAA,MAAM,GAAG,MAAM,GAAG,gBAAgB,CAAC;IACnC,SAAA;YAED,IAAI,CAAC,GAAG,MAAM,IAAI,UAAU,GAAG,gBAAgB,CAAC,GAAG,WAAW,CAAC;YAE/D,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;;SAMtB;IACD;;ICtID,SAAS,eAAe,GAAA;QACvB,IAAI,CAAC,GAAG,CAAC,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC;QAChC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;IACpE,CAAC;IAED,SAAS,cAAc,CAAwB,GAAmB,EAAA;IACjE,IAAA,IAAI,GAAG;YACN,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;;YAE1D,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;IACtE,CAAC;IAEK,MAAO,eAAgB,SAAQ,SAAS,CAAA;QAK7C,WAAY,CAAA,GAAkB,EAAE,KAAa,EAAE,MAAc,EAC3D,GAA6B,EAAE,KAAa,EAAA;IAE7C,QAAA,KAAK,CAAC,GAAG,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;IAC1B,QAAA,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;IACf,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACnB,QAAA,IAAI,CAAC,MAAM,GAAG,eAAe,CAAC;IAC9B,QAAA,IAAI,CAAC,KAAK,GAAG,cAAc,CAAC;SAC5B;IACD,CAAA;IAEK,MAAO,qBAAsB,SAAQ,eAAe,CAAA;QAKzD,WAAY,CAAA,GAAkB,EAAE,KAAa,EAAE,MAAc,EAAE,SAAiB,EAC9E,GAA6B,EAAE,KAAa,EAAA;YAE7C,KAAK,CAAC,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC;IACrC,QAAA,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;IACf,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACnB,QAAA,IAAI,CAAC,MAAM,GAAG,eAAe,CAAC;IAC9B,QAAA,IAAI,CAAC,KAAK,GAAG,cAAc,CAAC;SAC5B;IACD,CAAA;IAEK,MAAO,YAAa,SAAQ,MAAM,CAAA;QAKvC,WAAY,CAAA,GAAkB,EAAE,KAAa,EAAE,MAAc,EAAE,SAAiB,EAC9E,GAA6B,EAAE,KAAa,EAAA;YAE7C,KAAK,CAAC,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC;IACrC,QAAA,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;IACf,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACnB,QAAA,IAAI,CAAC,MAAM,GAAG,eAAe,CAAC;IAC9B,QAAA,IAAI,CAAC,KAAK,GAAG,cAAc,CAAC;SAC5B;IACD,CAAA;IAEK,MAAO,UAAW,SAAQ,IAAI,CAAA;QAMnC,WAAY,CAAA,GAAkB,EAAE,IAAY,EAAE,SAAiB,EAAE,aAAqB,EACrF,GAA6B,EAAE,KAAa,EAAA;YAE5C,KAAK,CAAC,GAAG,EAAE,IAAI,EAAE,SAAS,EAAE,aAAa,CAAC,CAAC;YAJ5C,IAAW,CAAA,WAAA,GAAG,KAAK,CAAC;IAKnB,QAAA,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;IACf,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACnB,QAAA,IAAI,CAAC,MAAM,GAAG,eAAe,CAAC;IAC9B,QAAA,IAAI,CAAC,KAAK,GAAG,cAAc,CAAC;SAC5B;IACD,IAAA,MAAM,CAAC,QAAoB,EAAA;IAC1B,QAAA,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;YAC3B,IAAI,CAAC,QAAQ,EACb;IACC,YAAA,IAAI,CAAC,WAAW,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC;IACrC,YAAA,YAAY,CAAC,IAAI,CAAC,WAAW,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;;;;IAI9C,SAAA;SACD;IACD,CAAA;IAED,SAAS,UAAU,GAAA;QAClB,IAAI,CAAC,GAAG,CAAC,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC;IAChC,IAAA,IAAI,GAAG,GAAkB,IAAI,aAAa,CAAC;QAC3C,IAAI,CAAC,GAAG,CAAC,CAAC;IACV,IAAA,OAAO,CAAC,GAAG,IAAI,CAAC,YAAY,EAC5B;;;;;YAMC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;IACnB,QAAA,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,aAAa,GAAG,CAAC,CAAC;YAE5C,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;YACvE,CAAC,IAAI,CAAC,CAAC;IACP,KAAA;IACF,CAAC;IAEK,MAAO,IAAK,SAAQ,eAAe,CAAA;QAKxC,WAAY,CAAA,GAAkB,EAAE,KAAa,EAAE,MAAc,EAC3D,GAA6B,EAAE,KAAa,EAAE,SAAkB,EAAA;YAEjE,KAAK,CAAC,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;YAPvC,IAAS,CAAA,SAAA,GAAW,CAAC,CAAC;IAQrB,QAAA,IAAI,CAAC,MAAM,GAAG,UAAU,CAAC;IACzB,QAAA,IAAI,SAAS;IACZ,YAAA,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;YAC5B,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,SAAS,GAAG,CAAC,GAAG,CAAC,CAAC;;IAG3C,QAAA,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC;YAC/B,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,YAAY,CAAC;;;;SAKrD;IACD;;UCjIY,cAAc,CAAA;IAM1B,IAAA,WAAA,CAAY,OAAwB,EAAA;YADpC,IAAQ,CAAA,QAAA,GAAW,EAAE,CAAC;IAGrB,QAAA,MAAM,GAAG,GAAG,IAAI,aAAa,CAAC;;IAG9B,QAAA,GAAG,CAAC,MAAM,CAAC,CAAC,GAACC,EAAI,EAAEC,KAAO,GAACC,EAAI,GAAC,CAAC,CAAC,CAAC;YACnC,IAAI,CAAC,UAAU,GAAG,IAAI,MAAM,CAAC,GAAG,EAAEF,EAAI,EAAEE,EAAI,EAAEC,WAAa,CAAC,CAAC;YAC7D,GAAG,CAAC,MAAM,CAACxB,CAAG,GAACqB,EAAI,GAACA,EAAI,EAAEC,KAAO,GAACC,EAAI,GAAC,CAAC,CAAC,CAAC;YAC1C,IAAI,CAAC,WAAW,GAAG,IAAI,MAAM,CAAC,GAAG,EAAEF,EAAI,EAAEE,EAAI,EAAEC,WAAa,CAAC,CAAC;;YAG9D,IAAI,UAAU,GAAG,CAAC,CAAC;IACnB,QAAA,IAAI,OAAO,GAAG5B,YAAe,CAAC,UAAU,EAAE;IACzC,YAAA,UAAU,GAAG6B,eAAiB,CAAC;IAC/B,SAAA;IACD,QAAA,GAAG,CAAC,MAAM,CAAC,CAACC,QAAU,EAAE,CAACA,QAAU,CAAC,CAAC;IACrC,QAAA,OAAO,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,UAAU,EAAE;gBACzC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,GAAG,EAAEA,QAAU,EAAEC,SAAW,EAAEC,iBAAmB,CAAC,CAAC,CAAA;IAC/E,SAAA;YACD,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,IAAI,KAAI;IAC9B,YAAA,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;IACf,YAAA,IAAI,MAAM,EAAE,GAAG,GAAG,EAAE;IACnB,gBAAA,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;IACjB,aAAA;gBAED,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;IAC5B,YAAA,IAAI,MAAM,EAAE,GAAG,GAAG,EAAE;IACnB,gBAAA,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;IACjB,aAAA;gBAED,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,UAAU,EAAE,CAAC;IAClC,SAAC,CAAC,CAAC;;IAGH,QAAA,IAAI,OAAO,GAAGhC,YAAe,CAAC,WAAW,EAAE;IAC1C,YAAA,GAAG,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;gBACjB,IAAI,CAAC,OAAO,GAAG,IAAI,eAAe,CAAC,GAAG,EAAEI,CAAG,EAAEkB,QAAU,EAAEW,eAAiB,CAAC,CAAC;gBAC1D,IAAI,CAAC,OAAQ,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IAC3C,YAAA,GAAG,CAAC,MAAM,CAAC,CAAC,EAAE5B,CAAG,GAACiB,QAAU,CAAC,CAAC;gBAC9B,IAAI,CAAC,UAAU,GAAG,IAAI,eAAe,CAAC,GAAG,EAAElB,CAAG,EAAEkB,QAAU,EAAEW,eAAiB,CAAC,CAAC;gBAC7D,IAAI,CAAC,UAAW,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;IAC7C,SAAA;IACI,aAAA;IACJ,YAAA,GAAG,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACjB,YAAA,IAAI,CAAC,OAAO,GAAG,IAAI,SAAS,CAAC,GAAG,EAAE7B,CAAG,EAAEkB,QAAU,CAAC,CAAC;IACnD,YAAA,GAAG,CAAC,MAAM,CAAC,CAAC,EAAEjB,CAAG,GAACiB,QAAU,CAAC,CAAC;IAC9B,YAAA,IAAI,CAAC,UAAU,GAAG,IAAI,SAAS,CAAC,GAAG,EAAElB,CAAG,EAAEkB,QAAU,CAAC,CAAC;IACtD,SAAA;SACD;IACD;;ICrDD,MAAM,gCAAiC,SAAQ,cAAc,CAAA;QAM5D,WAAY,CAAA,OAAwB,EAAE,GAA6B,EAAA;YAElE,KAAK,CAAC,OAAO,CAAC,CAAC;;IAGf,QAAA,MAAM,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC;IAC/B,QAAA,MAAM,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC;YAChC,IAAI,CAAC,UAAU,GAAG,IAAI,YAAY,CAClC,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,SAAS,EACzD,GAAG,EAAE,OAAO,CAAC,CAAC;YACd,IAAI,CAAC,WAAW,GAAG,IAAI,YAAY,CACnC,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,SAAS,EACzD,GAAG,EAAE,OAAO,CAAC,CAAC;;YAGd,MAAM,WAAW,GAAiB,EAAE,CAAC;YACrC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,IAAI,KAAI;gBAC9B,WAAW,CAAC,IAAI,CAAC,IAAI,UAAU,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,aAAa,EACxF,GAAG,EAAE,OAAO,CAAC,CACZ,CAAC;IACH,SAAC,CAAC,CAAC;IACH,QAAA,IAAI,CAAC,QAAQ,GAAG,WAAW,CAAC;;IAG5B,QAAA,IAAI,OAAO,GAAGtB,YAAe,CAAC,WAAW,EACzC;IACC,YAAA,MAAM,MAAM,GAAoB,IAAI,CAAC,OAAO,CAAC;IAC7C,YAAA,MAAM,MAAM,GAAoB,IAAI,CAAC,UAAU,CAAC;gBAEhD,IAAI,CAAC,OAAO,GAAG,IAAI,qBAAqB,CAAC,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,SAAS,EAClG,GAAG,EAAE,MAAM,CAAC,CAAC;IACW,YAAA,IAAI,CAAC,OAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;gBAE7E,IAAI,CAAC,UAAU,GAAG,IAAI,qBAAqB,CAAC,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,SAAS,EACrG,GAAG,EAAE,MAAM,CAAC,CAAC;IACW,YAAA,IAAI,CAAC,UAAW,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IAChF,SAAA;IAED,aAAA;IACC,YAAA,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC;IAC5B,YAAA,MAAM,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC;gBAC/B,IAAI,CAAC,OAAO,GAAG,IAAI,eAAe,CAAC,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAC1E,GAAG,EAAE,MAAM,CAAC,CAAC;gBACb,IAAI,CAAC,UAAU,GAAG,IAAI,eAAe,CAAC,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAC7E,GAAG,EAAE,MAAM,CAAC,CAAC;IACb,SAAA;SACD;IACD,CAAA;IAEK,MAAO,oBAAqB,SAAQ,gCAAgC,CAAA;QAczE,WAAY,CAAA,OAAwB,EAAE,GAA6B,EAAA;IAElE,QAAA,KAAK,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;IACpB,QAAA,IAAI,GAAG,GAAG,IAAI,aAAa,CAAC;;IAE5B,QAAA,GAAG,CAAC,MAAM,CAACkC,KAAO,GAACC,SAAW,GAAC,GAAG,EAAEA,SAAW,GAAC,GAAG,CAAC,CAAC;IACrD,QAAA,IAAI,CAAC,SAAS,GAAG,IAAI,gBAAgB,CAAC,GAAG,EAAEA,SAAW,EAAE,GAAG,EAAE,OAAO,CAAC,CAAC;IACtE,QAAA,GAAG,CAAC,MAAM,CAACD,KAAO,GAACC,SAAW,GAAC,GAAG,EAAEA,SAAW,GAAC,GAAG,CAAC,CAAC;IACrD,QAAA,IAAI,CAAC,UAAU,GAAG,IAAI,gBAAgB,CAAC,GAAG,EAAEA,SAAW,EAAE,GAAG,EAAE,OAAO,CAAC,CAAC;IACvE,QAAA,IAAI,CAAC,SAAS,CAAC,KAAK,GAAG,CAAC,CAAC;IACzB,QAAA,IAAI,CAAC,UAAU,CAAC,KAAK,GAAG,CAAC,CAAC;;YAG1B,GAAG,CAAC,MAAM,CAAC,CAAC,EAAET,KAAO,CAAC,CAAC;YACvB,IAAI,CAAC,KAAK,GAAG,IAAI,QAAQ,CAAC,GAAG,EAAE,IAAI,CAAC,KAAK,CAACtB,CAAG,GAAC,CAAC,CAAC,EAAE,GAAG,EAAE,OAAO,CAAC,CAAC;YAChE,IAAI,CAAC,KAAK,GAAG,IAAI,QAAQ,CAAC,GAAG,EAAE,IAAI,CAAC,KAAK,CAACA,CAAG,GAAC,EAAE,CAAC,EAAE,GAAG,EAAE,OAAO,CAAC,CAAC;YACjE,IAAI,CAAC,KAAK,GAAG,IAAI,QAAQ,CAAC,GAAG,EAAE,IAAI,CAAC,KAAK,CAACA,CAAG,GAAC,EAAE,CAAC,EAAE,GAAG,EAAE,OAAO,CAAC,CAAC;;IAGjE,QAAA,GAAG,CAAC,MAAM,CAAC8B,KAAO,GAACE,WAAa,GAAC,CAAC,EAAE,CAAC,GAACd,QAAU,CAAC,CAAC;IAClD,QAAA,IAAI,CAAC,OAAO,GAAG,IAAI,IAAI,CAAC,GAAG,EAAEc,WAAa,EAAE/B,CAAG,GAACiB,QAAU,GAAC,CAAC,EAAE,GAAG,EAAE,OAAO,EAAE,EAAE,CAAC,CAAC;;YAGhF,GAAG,CAAC,MAAM,CAAC,CAAC,EAAEI,KAAO,CAAC,CAAC;YACvB,IAAI,CAAC,UAAU,GAAG,IAAI,eAAe,CAAC,GAAG,EAAEtB,CAAG,EAAEiC,QAAU,EAAE,GAAG,EAAE,WAAW,CAAC,CAAC;YAC9E,GAAG,CAAC,MAAM,CAAC,CAAC,EAAEhC,CAAG,GAAC,CAAC,CAAC,CAAC;YACrB,IAAI,CAAC,SAAS,GAAG,IAAI,eAAe,CAAC,GAAG,EAAED,CAAG,EAAEiC,QAAU,EAAE,GAAG,EAAE,WAAW,CAAC,CAAC;IAC7E,QAAA,GAAG,CAAC,MAAM,CAAC,CAAC,EAAEhC,CAAG,GAACA,CAAG,GAAC,CAAC,CAAC,CAAC;YACzB,IAAI,CAAC,SAAS,GAAG,IAAI,eAAe,CAAC,GAAG,EAAED,CAAG,EAAEiC,QAAU,EAAE,GAAG,EAAE,WAAW,CAAC,CAAC;YAC7E,GAAG,CAAC,MAAM,CAACH,KAAO,EAAE,CAAC,CAAC,CAAC;YACvB,IAAI,CAAC,UAAU,GAAG,IAAI,eAAe,CAAC,GAAG,EAAEG,QAAU,EAAEhC,CAAG,EAAE,GAAG,EAAE,WAAW,CAAC,CAAC;YAC9E,GAAG,CAAC,MAAM,CAACD,CAAG,GAAC,CAAC,EAAE,CAAC,CAAC,CAAC;YACrB,IAAI,CAAC,SAAS,GAAG,IAAI,eAAe,CAAC,GAAG,EAAEiC,QAAU,EAAEhC,CAAG,EAAE,GAAG,EAAE,WAAW,CAAC,CAAC;IAC7E,QAAA,GAAG,CAAC,MAAM,CAACD,CAAG,GAACA,CAAG,GAAC,CAAC,EAAE,CAAC,CAAC,CAAC;YACzB,IAAI,CAAC,SAAS,GAAG,IAAI,eAAe,CAAC,GAAG,EAAEiC,QAAU,EAAEhC,CAAG,EAAE,GAAG,EAAE,WAAW,CAAC,CAAC;SAC7E;IACD;;ICtGK,SAAU,mBAAmB,CAAC,OAAoB,EAAA;IAEvD,IAAA,IAAI,YAAY,GAAGL,YAAe,CAAC,QAAQ,CAAC;IAE5C,IAAA,IAAI,OAAO,CAAC,WAAW,KAAK,IAAI,EAAE;IACjC,QAAA,YAAY,IAAIA,YAAe,CAAC,UAAU,CAAA;IAC1C,KAAA;IACD,IAAA,IAAI,OAAO,CAAC,YAAY,KAAK,IAAI,EAAE;IAClC,QAAA,YAAY,IAAIA,YAAe,CAAC,WAAW,CAAA;IAC3C,KAAA;IAED,IAAA,OAAO,YAAY,CAAC;IACrB,CAAC;aAEe,QAAQ,CAAC,YAA6B,EAAE,KAAa,EAAE,UAAkB,EAAA;QAExF,SAAS,CAAC,KAAK,CAAC,CAAC;QACjB,eAAe,CAAC,YAAY,CAAC,CAAC;IAC9B,IAAA,OAAO,CAAC,IAAI,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC;QAClC,KAAK,CAAC,IAAI,oBAAoB,CAAC,YAAY,EAAED,MAAI,CAAC,GAAG,CAAC,CAAC,CAAC;IACzD,CAAC;aAEe,WAAW,GAAA;QAE1B,IAAI,MAAM,KAAK,MAAM,CAAC,IAAI,IAAI,MAAM,CAAC,UAAU,CAAC,EAAE;YACjD,MAAM,CAAC,KAAK,EAAE,CAAC;IACf,KAAA;IACD,IAAA,IAAIA,MAAI,EACR;YACCA,MAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,KAAK,KAAI;gBACjC,YAAY,CAAC,KAAK,CAAC,CAAC;IACrB,SAAC,CAAC,CAAC;IACH,QAAAA,MAAI,CAAC,UAAU,GAAG,EAAE,CAAC;IAErB,QAAA,aAAa,CAACA,MAAI,CAAC,mBAAmB,CAAC,CAAC;IACxC,QAAAA,MAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC;IAEhC,QAAA,aAAa,CAACA,MAAI,CAAC,gBAAgB,CAAC,CAAC;IACrC,QAAAA,MAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC;IAE7B,QAAA,aAAa,CAACA,MAAI,CAAC,gBAAgB,CAAC,CAAC;IACrC,QAAAA,MAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC;YAE7B,OAAO,CAAC,IAAI,CAAC,CAAC;IACd,KAAA;QACD,KAAK,CAAC,IAAI,CAAC,CAAC;QACZ,eAAe,CAAC,IAAI,CAAC,CAAC;IACtB,IAAA,cAAc,EAAE,CAAC;IAClB;;IC5CA,IAAI,sBAAuC,CAAC;IAC5C,IAAI,oBAAqC,CAAC;IAEpC,SAAUzB,MAAI,CAAC,YAA6B,EAAE,OAAoB,EAAE,UAAkB,EAAE,KAAa,EAAA;QAE1G,QAAQ,CAAC,YAAY,EAAE,OAAO,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC;QAElD,gBAAgB,CAACgE,OAAK,CAAC,CAAC;QACxB,IAAI,OAAO,CAAC,kBAAkB,EAAE;IAC/B,QAAA,aAAa,CAAC,YAAY,EAAE,KAAK,EAAE,OAAO,CAAC,iBAAiB,EAAE,IAAI,EAAE,OAAO,CAAC,iBAAiB,EAAE,OAAO,CAAC,eAAe,CAAC,CAAC;IACxH,KAAA;IACI,SAAA;YACJ,aAAa,CAAC,YAAY,EAAE,KAAK,EAAE,OAAO,CAAC,iBAAiB,CAAC,CAAC;IAC9D,KAAA;IACF,CAAC;aAEeC,SAAO,GAAA;IAEtB,IAAA,WAAW,EAAE,CAAC;IACd,IAAA,IAAI,sBAAsB,EAAE;YAC3B,sBAAsB,CAAC,KAAK,EAAE,CAAC;YAC/B,sBAAsB,GAAG,IAAI,CAAC;IAC9B,KAAA;IACD,IAAA,IAAI,oBAAoB,EAAE;YACzB,oBAAoB,CAAC,KAAK,EAAE,CAAC;YAC7B,oBAAoB,GAAG,IAAI,CAAC;IAC5B,KAAA;IACF,CAAC;IAED,SAASD,OAAK,GAAA;IAEb,IAAA,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAClC,CAAG,GAAC,GAAG,EAAEC,CAAG,GAAC,IAAI,CAAC,CAAC;IACvC,IAAA,MAAM,YAAY,GAAG,SAAS,CAACmC,eAAiB,EAAE,IAAI,EAAE,CAAC,KAAa,KAAI;IACzE,QAAA,EAAE,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;YACjB,EAAE,CAAC,KAAK,CAAC,IAAI,GAAG,GAAG,KAAK,GAAC,IAAI,CAAA,CAAE,CAAC;IAChC,QAAA,EAAE,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;SAClB,EAAE,qBAAqB,CAAC,CAAC;QAC1BzC,MAAI,CAAC,UAAU,GAAGA,MAAI,CAAC,UAAU,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;IACxD,CAAC;IAED,SAAS,qBAAqB,GAAA;IAE7B,IAAA,sBAAsB,GAAG,IAAI,eAAe,EAAE,CAAC;IAC/C,IAAA,MAAM,CAAC,gBAAgB,CACtB,SAAS,EACT,CAAC,CAAC,KAAI,EAAGA,MAAI,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,EAC9B,EAAC,MAAM,EAAE,sBAAsB,CAAC,MAAM,EAAC,CACvC,CAAC;IAEF,IAAA,oBAAoB,GAAG,IAAI,eAAe,EAAE,CAAC;IAC7C,IAAA,MAAM,CAAC,gBAAgB,CACtB,OAAO,EACP,CAAC,CAAC,KAAI,EAAGA,MAAI,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,EACjC,EAAC,MAAM,EAAE,oBAAoB,CAAC,MAAM,EAAC,CACrC,CAAC;IAEF,IAAA0C,QAAM,EAAE,CAAC;IACV,CAAC;IAED,SAASA,QAAM,GAAA;IAEd,IAAA,EAAE,CAAC,KAAK,CAAC,IAAI,GAAG,EAAE,CAAC;IACnB,IAAA1C,MAAI,CAAC,mBAAmB,GAAG,MAAM,CAAC,WAAW,CAAC,WAAW,EAAE2C,qBAAuB,CAAC,CAAC;;IAEpF,IAAA3C,MAAI,CAAC,gBAAgB,GAAG,MAAM,CAAC,WAAW,CAAC,QAAQ,EAAE4C,kBAAoB,CAAC,CAAC;IAC3E,IAAA5C,MAAI,CAAC,gBAAgB,GAAG,MAAM,CAAC,WAAW,CAAC,QAAQ,EAAE6C,kBAAoB,CAAC,CAAC;IAC5E;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kCC+GQ,GAAY,CAAA,CAAA,CAAA,CAAA,CAAA;;;;;;;;;OAHlB,UAKK,CAAA,MAAA,EAAA,GAAA,EAAA,MAAA,CAAA,CAAA;OAJJ,UAGU,CAAA,GAAA,EAAA,QAAA,CAAA,CAAA;OAFT,UAAqB,CAAA,QAAA,EAAA,MAAA,CAAA,CAAA;;OACrB,UAAoB,CAAA,QAAA,EAAA,CAAA,CAAA,CAAA;;;;8EAAhB,GAAY,CAAA,CAAA,CAAA,CAAA,CAAA;;;;;IAHe,KAAA,SAAA,GAAA,oBAAA,CAAA,GAAA,EAAA,GAAA,EAAA,EAAA,CAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;IASjD,EAAA,kBAAA,GAAS,IAAC,UAAU,EAAA,OAAA,kBAAA,CAAA;IAIf,EAAA,kBAAA,GAAS,IAAC,YAAY,EAAA,OAAA,kBAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAC/B,UAEK,CAAA,MAAA,EAAA,GAAA,EAAA,MAAA,CAAA,CAAA;OADJ,UAAgC,CAAA,GAAA,EAAA,CAAA,CAAA,CAAA;;;;;IADA,KAAA,SAAA,GAAA,oBAAA,CAAA,GAAA,EAAA,GAAA,EAAA,EAAA,CAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAJtD,UAEK,CAAA,MAAA,EAAA,GAAA,EAAA,MAAA,CAAA,CAAA;OADJ,UAA6B,CAAA,GAAA,EAAA,CAAA,CAAA,CAAA;;;;;IADG,KAAA,SAAA,GAAA,oBAAA,CAAA,GAAA,EAAA,GAAA,EAAA,EAAA,CAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;IAelD,EAAA,kBAAA,GAAS,CAAC,CAAA,CAAA,CAAA,YAAY,IAAK,eAAA,GAAS,IAAC,UAAU,EAAA,OAAA,iBAAA,CAAA;IAIzC,EAAA,IAAA,eAAA,GAAS,IAAC,YAAY,EAAA,OAAA,iBAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAChC,UAEK,CAAA,MAAA,EAAA,GAAA,EAAA,MAAA,CAAA,CAAA;OADJ,UAA2E,CAAA,GAAA,EAAA,MAAA,CAAA,CAAA;;;6DAArC,GAAU,CAAA,EAAA,CAAA,EAAA,KAAA,EAAA,KAAA,EAAA,KAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OALjD,UAEK,CAAA,MAAA,EAAA,GAAA,EAAA,MAAA,CAAA,CAAA;OADJ,UAAiE,CAAA,GAAA,EAAA,MAAA,CAAA,CAAA;;;6DAA3B,GAAU,CAAA,EAAA,CAAA,EAAA,KAAA,EAAA,KAAA,EAAA,KAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAWlD,UAKK,CAAA,MAAA,EAAA,GAAA,EAAA,MAAA,CAAA,CAAA;OAJJ,UAGU,CAAA,GAAA,EAAA,QAAA,CAAA,CAAA;OAFT,UAAyC,CAAA,QAAA,EAAA,MAAA,CAAA,CAAA;;OACzC,UAAoB,CAAA,QAAA,EAAA,CAAA,CAAA,CAAA;;;;;IAHW,KAAA,SAAA,GAAA,oBAAA,CAAA,GAAA,EAAA,GAAA,EAAA,EAAA,CAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;yCAWjD,GAAe,CAAA,CAAA,CAAA,IAAAC,mBAAA,CAAA,GAAA,CAAA,CAAA;yCAwCf,GAAe,CAAA,CAAA,CAAA,IAAAjE,mBAAA,CAAA,GAAA,CAAA,CAAA;;;;;;;;;;;;;;;;+BAxCf,GAAe,CAAA,CAAA,CAAA,EAAA;;;;;;;;;;;;;;;;;;+BAwCf,GAAe,CAAA,CAAA,CAAA,EAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAfX,CAAA,IAAA,QAAA,eAAA,GAAO,IAAC,kBAAkB,IAAAkE,mBAAA,CAAA,GAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAxBlC,UAoCK,CAAA,MAAA,EAAA,IAAA,EAAA,MAAA,CAAA,CAAA;OAnCJ,UAkCK,CAAA,IAAA,EAAA,IAAA,CAAA,CAAA;OAjCJ,UAAgF,CAAA,IAAA,EAAA,OAAA,CAAA,CAAA;;OAChF,UA+BU,CAAA,IAAA,EAAA,QAAA,CAAA,CAAA;OA9BT,UAA4B,CAAA,QAAA,EAAA,MAAA,CAAA,CAAA;;OAC5B,UAGK,CAAA,QAAA,EAAA,IAAA,CAAA,CAAA;OAFJ,UAA6F,CAAA,IAAA,EAAA,MAAA,CAAA,CAAA;IAApB,GAAA,MAAA,CAAA,OAAA,eAAA,GAAO,IAAC,WAAW,CAAA;;OAC5F,UAA+C,CAAA,IAAA,EAAA,MAAA,CAAA,CAAA;;OAEhD,UAGK,CAAA,QAAA,EAAA,IAAA,CAAA,CAAA;OAFJ,UAAgG,CAAA,IAAA,EAAA,MAAA,CAAA,CAAA;IAArB,GAAA,MAAA,CAAA,OAAA,eAAA,GAAO,IAAC,YAAY,CAAA;;OAC/F,UAA6C,CAAA,IAAA,EAAA,MAAA,CAAA,CAAA;;OAE9C,UAMK,CAAA,QAAA,EAAA,IAAA,CAAA,CAAA;OALJ,UAAa,CAAA,IAAA,EAAA,CAAA,CAAA,CAAA;;OACb,UAA6F,CAAA,IAAA,EAAA,MAAA,CAAA,CAAA;IAAzB,GAAA,MAAA,CAAA,OAAA,GAAA,MAAA,CAAA,OAAA,iBAAA,GAAO,IAAC,KAAK,CAAA;;OACjF,UAA+B,CAAA,IAAA,EAAA,MAAA,CAAA,CAAA;;OAC/B,UAA+F,CAAA,IAAA,EAAA,MAAA,CAAA,CAAA;IAA1B,GAAA,MAAA,CAAA,OAAA,GAAA,MAAA,CAAA,OAAA,iBAAA,GAAO,IAAC,KAAK,CAAA;;OAClF,UAAiC,CAAA,IAAA,EAAA,MAAA,CAAA,CAAA;;OAElC,UAGK,CAAA,QAAA,EAAA,IAAA,CAAA,CAAA;OAFJ,UAAwF,CAAA,IAAA,EAAA,MAAA,CAAA,CAAA;IAA3B,GAAA,MAAA,CAAA,OAAA,eAAA,GAAO,IAAC,kBAAkB,CAAA;;OACvF,UAAgD,CAAA,IAAA,EAAA,MAAA,CAAA,CAAA;;;;OASjD,UAEK,CAAA,QAAA,EAAA,IAAA,CAAA,CAAA;OADJ,UAA4D,CAAA,IAAA,EAAA,OAAA,CAAA,CAAA;;;;2DA9BxB,GAAgB,CAAA,EAAA,CAAA,EAAA,KAAA,EAAA,KAAA,EAAA,KAAA,CAAA;;;;;;mDA8Bd,GAAQ,CAAA,EAAA,CAAA,EAAA,KAAA,EAAA,KAAA,EAAA,KAAA,CAAA;;;;;;;;IA1B2B,IAAA,MAAA,CAAA,OAAA,eAAA,GAAO,IAAC,WAAW,CAAA;;;;IAIjB,IAAA,MAAA,CAAA,OAAA,eAAA,GAAO,IAAC,YAAY,CAAA;;;;IAK3B,IAAA,MAAA,CAAA,OAAA,GAAA,MAAA,CAAA,OAAA,iBAAA,GAAO,IAAC,KAAK,CAAA;;;;IAEZ,IAAA,MAAA,CAAA,OAAA,GAAA,MAAA,CAAA,OAAA,iBAAA,GAAO,IAAC,KAAK,CAAA;;;;IAIrB,IAAA,MAAA,CAAA,OAAA,eAAA,GAAO,IAAC,kBAAkB,CAAA;;;IAGnF,GAAA,gBAAA,GAAO,IAAC,kBAAkB,EAAA;;;;;;;;;;;;;;;;IArBX,KAAA,cAAA,GAAA,oBAAA,CAAA,QAAA,EAAA,GAAA,EAAA,EAAA,CAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;qCAuBhC,GAAQ,CAAA,CAAA,CAAA,CAAA;;;;sCAAb,MAAI,EAAA,CAAA,IAAA,CAAA,EAAA;;;;;;;;;;;;IADa,GAAA,gBAAA,GAAO,IAAC,iBAAiB,KAAA,KAAA,CAAA,EAAA,mBAAA,CAAA,gCAAA,GAAA,CAAA,EAAA,CAAA,CAAA,IAAA,CAAA,MAAA,CAAA,CAAA,CAAA;;;;OAA7C,UAIQ,CAAA,MAAA,EAAA,MAAA,EAAA,MAAA,CAAA,CAAA;;;;;;IAJY,GAAA,aAAA,CAAA,MAAA,cAAA,GAAO,IAAC,iBAAiB,CAAA,CAAA;;;;;;;;;oCACrC,GAAQ,CAAA,CAAA,CAAA,CAAA;;;;qCAAb,MAAI,EAAA,CAAA,IAAA,CAAA,EAAA;;;;;;;;;;;;;;;;0CAAJ,MAAI,CAAA;;;;IADa,IAAA,aAAA,CAAA,MAAA,cAAA,GAAO,IAAC,iBAAiB,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;IAEZ,CAAA,IAAA,OAAA,YAAA,GAAI,KAAC,QAAQ,GAAA,EAAA,CAAA;;;;;;;;IAA7B,GAAA,MAAA,CAAA,OAAA,GAAA,kBAAA,YAAA,GAAI,KAAC,QAAQ,CAAA;;;;;OAA5B,UAAqD,CAAA,MAAA,EAAA,MAAA,EAAA,MAAA,CAAA,CAAA;;;;IAAtB,GAAA,IAAA,KAAA,CAAA,CAAA,CAAA,gBAAA,CAAA,IAAA,OAAA,MAAA,OAAA,YAAA,GAAI,KAAC,QAAQ,GAAA,EAAA,CAAA,EAAA,YAAA,CAAA,CAAA,EAAA,OAAA,CAAA,CAAA;;IAA7B,GAAA,IAAA,KAAA,CAAA,CAAA,CAAA,gBAAA,CAAA,IAAA,kBAAA,MAAA,kBAAA,YAAA,GAAI,KAAC,QAAQ,CAAA,EAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;0BAkB3B,GAAW,CAAA,EAAA,CAAA,CAAC,MAAM,KAAK,CAAC,EAAA,OAAAC,mBAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAL/B,UAiBK,CAAA,MAAA,EAAA,GAAA,EAAA,MAAA,CAAA,CAAA;OAhBJ,UAA8E,CAAA,GAAA,EAAA,OAAA,CAAA,CAAA;;OAC9E,UAcU,CAAA,GAAA,EAAA,QAAA,CAAA,CAAA;OAbT,UAA2B,CAAA,QAAA,EAAA,MAAA,CAAA,CAAA;;OAC3B,UAAsE,CAAA,QAAA,EAAA,OAAA,CAAA,CAAA;;;;;;8DAHjC,GAAmB,CAAA,EAAA,CAAA,EAAA,KAAA,EAAA,KAAA,EAAA,KAAA,CAAA;2DAGlB,GAAgB,CAAA,EAAA,CAAA,EAAA,KAAA,EAAA,KAAA,EAAA,KAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;IAFlC,KAAA,cAAA,GAAA,oBAAA,CAAA,QAAA,EAAA,GAAA,EAAA,EAAA,CAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAYxC,UAA+C,CAAA,MAAA,EAAA,CAAA,EAAA,MAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;sCARxC,GAAW,CAAA,EAAA,CAAA,CAAA;;;;oCAAhB,MAAI,EAAA,CAAA,IAAA,CAAA,EAAA;;;;;;;;;;;;;;;;;;;;;qCAAC,GAAW,CAAA,EAAA,CAAA,CAAA;;;;mCAAhB,MAAI,EAAA,CAAA,IAAA,CAAA,EAAA;;;;;;;;;;;;;;;;wCAAJ,MAAI,CAAA;;;;;;;;;;;;;;;;;;;;;;;IAEH,CAAA,IAAA,QAAA,kBAAA,GAAU,KAAC,iBAAiB,GAAA,EAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;iBAAC,qDAC9B,CAAA,CAAA;;;;;;;;;;;;;;;OAFD,UAIK,CAAA,MAAA,EAAA,GAAA,EAAA,MAAA,CAAA,CAAA;;;OAFJ,UAAmF,CAAA,GAAA,EAAA,OAAA,CAAA,CAAA;;OACnF,UAAmF,CAAA,GAAA,EAAA,OAAA,CAAA,CAAA;;;;;;;;;;;;;;IAFlF,GAAA,IAAA,KAAA,CAAA,CAAA,CAAA,mBAAA,IAAA,IAAA,QAAA,MAAA,QAAA,kBAAA,GAAU,KAAC,iBAAiB,GAAA,EAAA,CAAA,EAAA,YAAA,CAAA,EAAA,EAAA,QAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;mCAnG/B,GAAS,CAAA,CAAA,CAAA,IAAA,kBAAA,CAAA,GAAA,CAAA,CAAA;qCASR,GAAU,CAAA,CAAA,CAAA,IAAA,iBAAA,CAAA,GAAA,CAAA,CAAA;qCAgBV,GAAU,CAAA,CAAA,CAAA,IAAA,iBAAA,CAAA,GAAA,CAAA,CAAA;sCAaX,GAAY,CAAA,CAAA,CAAA,IAAAC,mBAAA,CAAA,GAAA,CAAA,CAAA;0CAWZ,GAAgB,CAAA,CAAA,CAAA,IAAArE,iBAAA,CAAA,GAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;8BA3BRsE,YAAU,CAAA,CAAA;;;;oCADY,GAAU,CAAA,CAAA,CAAA,CAAA;;;;;;;;;;;;;OAvB9C,UAkHM,CAAA,MAAA,EAAA,IAAA,EAAA,MAAA,CAAA,CAAA;;;;;OA3FL,UAEK,CAAA,IAAA,EAAA,IAAA,CAAA,CAAA;OADJ,UAAwB,CAAA,IAAA,EAAA,MAAA,CAAA,CAAA;;;;;;;;;;yBAtBpB,GAAS,CAAA,CAAA,CAAA,EAAA;;;;;;;;;;;;;;;;;;2BASR,GAAU,CAAA,CAAA,CAAA,EAAA;;;;;;;;;;;;;;;;;;;gDAYmB,GAAU,CAAA,CAAA,CAAA,CAAA,CAAA;;;2BAIvC,GAAU,CAAA,CAAA,CAAA,EAAA;;;;;;;;;;;;;4BAaX,GAAY,CAAA,CAAA,CAAA,EAAA;;;;;;;;;;;;;;;;gCAWZ,GAAgB,CAAA,CAAA,CAAA,EAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IA9Nf,MAAAA,YAAU,GAAG,WAAW,CAAA;IAcxB,MAAAC,4BAA0B,GAAG,GAAG,CAAA;;;;;SAnBlC,IAAI,CAAA;SACJ,QAAQ,CAAA;;;WAGN,OAAO,GAAA,IAAOC,WAAgB,EAAA,CAAA;;;IAIhC,CAAA,IAAA,UAAU,GAAG,IAAI,CAAA;;IACjB,CAAA,IAAA,gBAAgB,GAAG,IAAI,CAAA;IACvB,CAAA,IAAA,eAAe,GAAG,IAAI,CAAA;IACtB,CAAA,IAAA,eAAe,GAAG,KAAK,CAAA;IACvB,CAAA,IAAA,SAAS,GAAG,KAAK,CAAA;IACjB,CAAA,IAAA,YAAY,GAAG,EAAE,CAAA;IACjB,CAAA,IAAA,YAAY,GAAG,KAAK,CAAA;SAEpB,WAAW,GAAA,EAAA,CAAA;SAEX,sBAAsB,CAAA;;KAG1B,OAAO,CAAA,YAAA;uBACN,IAAI,GAAA,MAAS,KAAK,CAAW,CAAA,OAAA,EAAA,eAAwB,CAAI,CAAA,EAAA,MAAwB,CAChF,YAAA,CAAA,CAAA,CAAA,IAAI,CAAE,CAAC,IAAI,CAAC,CAAC,IAAI,EAAA,CAAA,CAAA,CAAA;sBAClB,QAAQ,GAAA,MAAS,KAAK,CAAW,CAAA,OAAA,EAAA,eAAwB,CAAI,CAAA,EAAA,MAAwB,CACpF,gBAAA,CAAA,CAAA,CAAA,IAAI,CAAE,CAAC,IAAI,CAAC,CAAC,IAAI,EAAA,CAAA,CAAA,CAAA;IAClB,EAAA,YAAA,CAAA,CAAA,EAAA,OAAO,CAAC,iBAAiB,GAAG,IAAI,CAAC,QAAQ,EAAA,OAAA,CAAA,CAAA;;;KAG1C,SAAS,CAAA,YAAA;IACR,EAAA,aAAa,CAAC,sBAAsB,CAAA,CAAA;IACpC,EAAAC,SAAY,EAAA,CAAA;;;cAGJ,SAAS,GAAA;IACjB,EAAA,YAAA,CAAA,CAAA,EAAA,UAAU,GAAG,IAAI,CAAA,CAAA;IACjB,EAAA,YAAA,CAAA,CAAA,EAAA,gBAAgB,GAAG,IAAI,CAAA,CAAA;IACvB,EAAA,YAAA,CAAA,CAAA,EAAA,eAAe,GAAG,IAAI,CAAA,CAAA;IACtB,EAAA,YAAA,CAAA,CAAA,EAAA,eAAe,GAAG,KAAK,CAAA,CAAA;IACvB,EAAA,YAAA,CAAA,CAAA,EAAA,SAAS,GAAG,KAAK,CAAA,CAAA;IACjB,EAAA,YAAA,CAAA,CAAA,EAAA,YAAY,GAAG,KAAK,CAAA,CAAA;IACpB,EAAA,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAA,CAAA;IAC3B,EAAAA,SAAY,EAAA,CAAA;;;WAGP,QAAQ,GAAA,YAAA;IAEb,EAAA,YAAA,CAAA,CAAA,EAAA,gBAAgB,GAAG,KAAK,CAAA,CAAA;IACxB,EAAA,YAAA,CAAA,CAAA,EAAA,YAAY,GAAG,IAAI,CAAA,CAAA;IACb,EAAA,MAAA,YAAY,GAAGC,mBAAwB,CAAC,OAAO,CAAA,CAAA;;;IAE9C,GAAA,MAAA,QAAQ,GAAS,MAAA,KAAK,CAAW,CAAA,OAAA,EAAA,eAAwB,CAAI,CAAA,EAAA,MAAwB,CAAA,mBAAA,CAAA,EAAA;IAC1F,IAAA,MAAM,EAAG,MAAM;QACf,OAAO,EAAA,EAAI,cAAc,EAAE,kBAAkB,EAAA;QAC7C,IAAI,EAAG,IAAI,CAAC,SAAS,CAAA;SACpB,iBAAiB,EAAG,OAAO,CAAC,iBAAiB;SAC7C,iBAAiB,EAAG,OAAO,CAAC,iBAAiB;IAC7C,KAAA,WAAW,EAAG,YAAY;SAC1B,sBAAsB,EAAG,OAAO,CAAC,kBAAA;;;;IAGnC,GAAA,OAAO,CAAC,GAAG,CAAC,WAAW,GAAG,QAAQ,CAAC,MAAM,CAAA,CAAA;aACnC,YAAY,GAAA,MAAS,QAAQ,CAAC,IAAI,EAAA,CAAA;aAClC,KAAK,GAAY,YAAY,CAAC,KAAK,CAAA;IACzC,GAAA,YAAA,CAAA,CAAA,EAAA,YAAY,GAAG,KAAK,CAAA,CAAA;;WAChB,QAAQ,CAAC,EAAE,IAAI,KAAK,EAAA;IAEvB,IAAA,sBAAsB,GAAG,WAAW,CAAC,cAAc,EAAEH,4BAA0B,CAAA,CAAA;QAC/EI,MAAS,CAAC,YAAY,EAAE,OAAO,EAAEL,YAAU,EAAE,KAAK,CAAA,CAAA;IAClD,IAAA,YAAA,CAAA,CAAA,EAAA,UAAU,GAAG,KAAK,CAAA,CAAA;;QAIlB,OAAO,CAAC,GAAG,CAAC,YAAY,CAAA,CAAA;QACxB,OAAO,CAAC,GAAG,CAAC,qBAAqB,CAAA,CAAA;wBACjC,YAAY,GAAG,YAAY,CAAC,OAAO,CAAA,CAAA;IACnC,IAAA,YAAA,CAAA,CAAA,EAAA,SAAS,GAAG,IAAI,CAAA,CAAA;IAChB,IAAA,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAA,CAAA;;QAC3B,UAAU;;IACT,MAAA,YAAA,CAAA,CAAA,EAAA,gBAAgB,GAAG,IAAI,CAAA,CAAA;IACvB,MAAA,YAAA,CAAA,CAAA,EAAA,SAAS,GAAG,KAAK,CAAA,CAAA;IACjB,MAAA,YAAA,CAAA,CAAA,EAAA,YAAY,GAAG,EAAE,CAAA,CAAA;;SACf,IAAI;;;cAEA,CAAC,EAAA;OACT,OAAO,CAAC,GAAG,CAAC,CAAC,CAAA,CAAA;;;;IAIT,CAAA,MAAA,wBAAwB,SAAS,UAAgB,IAAA;IAEtD,EAAA,YAAA,CAAA,CAAA,EAAA,gBAAgB,GAAG,KAAK,CAAA,CAAA;IACxB,EAAA,YAAA,CAAA,CAAA,EAAA,YAAY,GAAG,IAAI,CAAA,CAAA;MACnB,OAAO,CAAC,GAAG,CAAC,eAAe,CAAA,CAAA;MAC3B,OAAO,CAAC,GAAG,CAAC,UAAU,CAAA,CAAA;;IAClB,EAAA,IAAA,UAAU,CAAC,KAAK,EAAA;IAEnB,GAAA,sBAAsB,GAAG,WAAW,CAAC,cAAc,EAAEC,4BAA0B,CAAA,CAAA;IAC/E,GAAA,YAAA,CAAA,CAAA,EAAA,OAAO,CAAC,iBAAiB,GAAG,UAAU,CAAC,iBAAiB,EAAA,OAAA,CAAA,CAAA;IACxD,GAAA,YAAA,CAAA,CAAA,EAAA,OAAO,CAAC,iBAAiB,GAAG,UAAU,CAAC,iBAAiB,EAAA,OAAA,CAAA,CAAA;uBACxD,OAAO,CAAC,kBAAkB,GAAG,IAAI,EAAA,OAAA,CAAA,CAAA;uBACjC,OAAO,CAAC,eAAe,GAAG,IAAI,EAAA,OAAA,CAAA,CAAA;IAC9B,GAAAI,MAAS,CAAC,UAAU,CAAC,WAAW,EAAE,OAAO,EAAEL,YAAU,EAAE,UAAU,CAAC,KAAK,CAAA,CAAA;IACvE,GAAA,YAAA,CAAA,CAAA,EAAA,YAAY,GAAG,KAAK,CAAA,CAAA;IACpB,GAAA,YAAA,CAAA,CAAA,EAAA,UAAU,GAAG,KAAK,CAAA,CAAA;;;;WAId,cAAc,GAAA,MAAA;MACnB,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAA,CAAA;;UACxB,SAAS,EAAA;;;;;;;;IAKT,EAAA,IAAA,SAAS,CAAC,YAAY,IAAI,SAAS,CAAC,UAAU,EAAA;IAEjD,GAAA,aAAa,CAAC,sBAAsB,CAAA,CAAA;OACpC,OAAO,CAAC,GAAG,CAAC,qBAAqB,CAAA,CAAA;;OACjC,UAAU;;SACT,SAAS,EAAA,CAAA;SACT,OAAO,CAAC,GAAG,CAAC,6BAA6B,CAAA,CAAA;;QACvC,IAAI;;;;;WAIH,mBAAmB,GAAA,MAAA;IACxB,EAAA,YAAA,CAAA,CAAA,EAAA,eAAe,GAAG,IAAI,CAAA,CAAA;IACtB,EAAA,YAAA,CAAA,CAAA,EAAA,eAAe,GAAG,KAAK,CAAA,CAAA;;;WAGlB,gBAAgB,GAAA,YAAA;IACrB,EAAA,YAAA,CAAA,CAAA,EAAA,eAAe,GAAG,KAAK,CAAA,CAAA;IACvB,EAAA,YAAA,CAAA,CAAA,EAAA,eAAe,GAAG,IAAI,CAAA,CAAA;uBACtB,WAAW,GAAA,MAAS,KAAK,CAAW,CAAA,OAAA,EAAA,eAAwB,CAAI,CAAA,EAAA,MAAwB,CACvF,wBAAA,CAAA,CAAA,CAAA,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAA,CAAA,CAAA,CAAA;;;IAGZ,CAAA,MAAA,gBAAgB,SAAS,UAAU,IAAA;YAClC,KAAK,CAAA,CAAA,OAAA,EAAW,eAAwB,CAAA,CAAA,EAAI,MAAwB,CAAA,oBAAA,CAAA,EAAA;IACzE,GAAA,MAAM,EAAE,MAAM;OACd,OAAO,EAAA,EAAI,cAAc,EAAE,kBAAkB,EAAA;OAC7C,IAAI,EAAE,IAAI,CAAC,SAAS,GACnB,KAAK,EAAG,UAAU,CAAC,KAAA,EAAA,CAAA;IAGpB,GAAA,CAAA,CAAA,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAA,CAAA,CAChB,KAAK,CAAC,KAAK,IAAI,OAAO,CAAC,GAAG,CAAC,KAAK,CAAA,CAAA,CAAA;;MACjC,gBAAgB,EAAA,CAAA;;;IAGX,CAAA,MAAA,gBAAgB,SAAS,UAAgB,IAAA;IAExC,EAAA,MAAA,GAAG,GAAS,MAAA,KAAK,CAAW,CAAA,OAAA,EAAA,eAAwB,CAAI,CAAA,EAAA,MAAwB,CAAA,mBAAA,CAAA,EAAA;IACrF,GAAA,MAAM,EAAE,MAAM;OACd,OAAO,EAAA,EAAI,cAAc,EAAE,kBAAkB,EAAA;OAC7C,IAAI,EAAE,IAAI,CAAC,SAAS,GACnB,KAAK,EAAG,UAAU,CAAC,KAAA,EAAA,CAAA;IAElB,GAAA,CAAA,CAAA,KAAK,CAAC,KAAK,IAAI,OAAO,CAAC,GAAG,CAAC,KAAK,CAAA,CAAA,CAAA;;UAE/B,GAAG,IAAI,GAAG,CAAC,EAAE,EAAA;IAChB,GAAA,wBAAwB,CAAC,UAAU,CAAA,CAAA;;;;cAI5B,UAAU,GAAA;IAClB,EAAA,aAAa,CAAC,sBAAsB,CAAA,CAAA;MACpC,SAAS,EAAA,CAAA;;;;;;;;;;;IAmEqE,EAAA,OAAO,CAAC,WAAW,GAAA,IAAA,CAAA,OAAA,CAAA;;;;;;IAIjB,EAAA,OAAO,CAAC,YAAY,GAAA,IAAA,CAAA,OAAA,CAAA;;;;;;IAK3B,EAAA,OAAO,CAAC,KAAK,GAAA,IAAA,CAAA,OAAA,CAAA;;;;;;IAEZ,EAAA,OAAO,CAAC,KAAK,GAAA,IAAA,CAAA,OAAA,CAAA;;;;;;IAIrB,EAAA,OAAO,CAAC,kBAAkB,GAAA,IAAA,CAAA,OAAA,CAAA;;;;;;IAInE,EAAA,OAAO,CAAC,iBAAiB,GAAA,YAAA,CAAA,IAAA,CAAA,CAAA;;;;;IAwBA,CAAA,MAAA,aAAA,GAAA,UAAA,IAAA,gBAAgB,CAAC,UAAU,CAAA,CAAA;IAC3B,CAAA,MAAA,eAAA,GAAA,UAAA,IAAA,gBAAgB,CAAC,UAAU,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IChPrE,CAAA,IAAA,OAAA,YAAA,GAAI,IAAC,QAAQ,GAAA,EAAA,CAAA;;;;;;;;;;;OAAlB,UAAuB,CAAA,MAAA,EAAA,EAAA,EAAA,MAAA,CAAA,CAAA;;;;IAAlB,GAAA,IAAA,KAAA,gBAAA,CAAA,IAAA,OAAA,MAAA,OAAA,YAAA,GAAI,IAAC,QAAQ,GAAA,EAAA,CAAA,EAAA,YAAA,CAAA,CAAA,EAAA,OAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;IAFJ,CAAA,IAAA,QAAA,YAAA,GAAI,IAAC,QAAQ,GAAA,EAAA,CAAA;;;;;;;;iBAAnB,OAAK,CAAA,CAAA;;iBAAe,GAAC,CAAA,CAAA;;;;;;OAA5B,UAAoC,CAAA,MAAA,EAAA,EAAA,EAAA,MAAA,CAAA,CAAA;OAAhC,UAA4B,CAAA,EAAA,EAAA,CAAA,CAAA,CAAA;;;;;;IAAnB,GAAA,IAAA,KAAA,gBAAA,CAAA,IAAA,QAAA,MAAA,QAAA,YAAA,GAAI,IAAC,QAAQ,GAAA,EAAA,CAAA,EAAA,YAAA,CAAA,EAAA,EAAA,QAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;IAFtB,CAAA,IAAA,QAAA,SAAA,GAAC,MAAG,CAAC,GAAA,EAAA,CAAA;;;;;6BAML,GAAI,CAAA,CAAA,CAAA,CAAC,KAAK,CAAC,OAAO,GAAA,EAAA,CAAA;;;;6BAClB,GAAI,CAAA,CAAA,CAAA,CAAC,KAAK,CAAC,QAAQ,GAAA,EAAA,CAAA;;;;6BACnB,GAAI,CAAA,CAAA,CAAA,CAAC,KAAK,CAAC,QAAQ,GAAA,EAAA,CAAA;;;;6BACnB,GAAI,CAAA,CAAA,CAAA,CAAC,KAAK,CAAC,SAAS,GAAA,EAAA,CAAA;;;;;IARpB,EAAA,aAAA,GAAI,CAAC,CAAA,CAAA,CAAA,QAAQ,qBAAK,GAAW,IAAC,QAAQ,EAAA,OAAAtE,iBAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAF5C,UAWI,CAAA,MAAA,EAAA,EAAA,EAAA,MAAA,CAAA,CAAA;OAVH,UAAe,CAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;;;;OAMf,UAA4B,CAAA,EAAA,EAAA,GAAA,CAAA,CAAA;;;OAC5B,UAA6B,CAAA,EAAA,EAAA,GAAA,CAAA,CAAA;;;OAC7B,UAA6B,CAAA,EAAA,EAAA,GAAA,CAAA,CAAA;;;OAC7B,UAA8B,CAAA,EAAA,EAAA,GAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;uEAHzB,GAAI,CAAA,CAAA,CAAA,CAAC,KAAK,CAAC,OAAO,GAAA,EAAA,CAAA,EAAA,YAAA,CAAA,EAAA,EAAA,QAAA,CAAA,CAAA;uEAClB,GAAI,CAAA,CAAA,CAAA,CAAC,KAAK,CAAC,QAAQ,GAAA,EAAA,CAAA,EAAA,YAAA,CAAA,EAAA,EAAA,QAAA,CAAA,CAAA;uEACnB,GAAI,CAAA,CAAA,CAAA,CAAC,KAAK,CAAC,QAAQ,GAAA,EAAA,CAAA,EAAA,YAAA,CAAA,EAAA,EAAA,QAAA,CAAA,CAAA;uEACnB,GAAI,CAAA,CAAA,CAAA,CAAC,KAAK,CAAC,SAAS,GAAA,EAAA,CAAA,EAAA,YAAA,CAAA,EAAA,EAAA,QAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;mCAXpB,GAAQ,CAAA,CAAA,CAAA,CAAA;;;;oCAAb,MAAI,EAAA,CAAA,IAAA,CAAA,EAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAfT,UAAK,CAAA,MAAA,EAAA,EAAA,EAAA,MAAA,CAAA,CAAA;;OAEL,UA6BK,CAAA,MAAA,EAAA,GAAA,EAAA,MAAA,CAAA,CAAA;OA5BJ,UA2BO,CAAA,GAAA,EAAA,KAAA,CAAA,CAAA;OA1BN,UASO,CAAA,KAAA,EAAA,KAAA,CAAA,CAAA;OARN,UAOI,CAAA,KAAA,EAAA,EAAA,CAAA,CAAA;OANH,UAAS,CAAA,EAAA,EAAA,GAAA,CAAA,CAAA;;OACT,UAAgB,CAAA,EAAA,EAAA,GAAA,CAAA,CAAA;;OAChB,UAAW,CAAA,EAAA,EAAA,GAAA,CAAA,CAAA;;OACX,UAAY,CAAA,EAAA,EAAA,GAAA,CAAA,CAAA;;OACZ,UAAY,CAAA,EAAA,EAAA,GAAA,CAAA,CAAA;;OACZ,UAAoB,CAAA,EAAA,EAAA,GAAA,CAAA,CAAA;;OAGtB,UAeO,CAAA,KAAA,EAAA,KAAA,CAAA,CAAA;;;;;;;;;;kCAdC,GAAQ,CAAA,CAAA,CAAA,CAAA;;;;mCAAb,MAAI,EAAA,CAAA,IAAA,CAAA,EAAA;;;;;;;;;;;;;;;;wCAAJ,MAAI,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;SArCJ,WAAW,CAAA;SACX,QAAQ,GAAA,EAAA,CAAA;SACR,UAAU,CAAA;;KACd,OAAO,CAAA,YAAA;sBACN,WAAW,GAAA,MAAS,KAAK,CAAW,CAAA,OAAA,EAAA,eAAwB,CAAI,CAAA,EAAA,MAAwB,CACvF,YAAA,CAAA,CAAA,CAAA,IAAI,CAAE,CAAC,IAAI,CAAC,CAAC,IAAI,EAAA,CAAA,CAAA,CAAA;sBAClB,QAAQ,GAAA,MAAS,KAAK,CAAW,CAAA,OAAA,EAAA,eAAwB,CAAI,CAAA,EAAA,MAAwB,CACpF,oBAAA,CAAA,CAAA,CAAA,IAAI,CAAE,CAAC,IAAI,CAAC,CAAC,IAAI,EAAA,CAAA,CAAA,CAAA;IAClB,EAAA,UAAU,GAAG,WAAW,CAAC,WAAW,EAAE,KAAK,CAAA,CAAA;;;KAG5C,SAAS,CAAA,YAAA;IACR,EAAA,aAAa,CAAC,UAAU,CAAA,CAAA;;;cAGhB,WAAW,GAAA;MACnB,KAAK,CAAA,CAAA,OAAA,EAAW,eAAwB,CAAA,CAAA,EAAI,MAAwB,CAAA,oBAAA,CAAA,CAAA,CACnE,IAAI,CAAE,CAAC,IAAI,CAAC,CAAC,IAAI,EAAA,CAAA,CACjB,IAAI,CAAE,CAAC,IAAA,YAAA,CAAA,CAAA,EAAI,QAAQ,GAAG,CAAC,CAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ICVpB,SAAU,IAAI,CAAC,YAA6B,EAAE,KAAa,EAAE,UAAkB,EAAE,aAAqB,EAAA;IAE3G,IAAA,QAAQ,CAAC,YAAY,EAAE,KAAK,EAAE,UAAU,CAAC,CAAC;QAE1C,gBAAgB,CAAC,KAAK,CAAC,CAAC;QACxB,sBAAsB,CAAC,aAAa,CAAC,CAAC;IACvC,CAAC;aAEe,OAAO,GAAA;IAEtB,IAAA,WAAW,EAAE,CAAC;IACf,CAAC;IAED,SAAS,KAAK,GAAA;IAEb,IAAA,MAAM,EAAE,CAAC;IACV,CAAC;IAED,SAAS,MAAM,GAAA;IAEd,IAAAoB,MAAI,CAAC,gBAAgB,GAAG,MAAM,CAAC,WAAW,CAAC,iBAAiB,EAAE4C,kBAAoB,CAAC,CAAC;IACpF,IAAA5C,MAAI,CAAC,gBAAgB,GAAG,MAAM,CAAC,WAAW,CAAC,QAAQ,EAAE6C,kBAAoB,CAAC,CAAC;IAC5E;;;;;;;;;;;;;;;;;ICHI,CAAA,IAAA,QAAA,aAAA,GAAK,IAAC,iBAAiB,GAAA,EAAA,CAAA;;;IAAQ,CAAA,IAAA,QAAA,aAAA,GAAK,IAAC,iBAAiB,GAAA,EAAA,CAAA;;;;;;;;;;;;;;iBADzC,IACd,CAAA,CAAA;;iBAAyB,UAAM,CAAA,CAAA;;iBAAyB,UACzD,CAAA,CAAA;;iBAAK,IAAE,CAAA,CAAA;wCAAC,GAAkB,CAAA,CAAA,CAAA,CAAA,CAAA;iBAAC,GAC5B,CAAA,CAAA;;;;;;;;;OAJD,UAKI,CAAA,MAAA,EAAA,EAAA,EAAA,MAAA,CAAA,CAAA;OAJH,UAGQ,CAAA,EAAA,EAAA,MAAA,CAAA,CAAA;;;;;;OADP,UAAK,CAAA,MAAA,EAAA,EAAA,CAAA,CAAA;;;;;;;;;;;IADH,GAAA,IAAA,KAAA,aAAA,CAAA,IAAA,QAAA,MAAA,QAAA,aAAA,GAAK,IAAC,iBAAiB,GAAA,EAAA,CAAA,EAAA,YAAA,CAAA,EAAA,EAAA,QAAA,CAAA,CAAA;IAAQ,GAAA,IAAA,KAAA,aAAA,CAAA,IAAA,QAAA,MAAA,QAAA,aAAA,GAAK,IAAC,iBAAiB,GAAA,EAAA,CAAA,EAAA,YAAA,CAAA,EAAA,EAAA,QAAA,CAAA,CAAA;qFAChD,GAAkB,CAAA,CAAA,CAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;WA9BhB,KAKV,EAAA,GAAA,OAAA,CAAA;IAEG,CAAA,IAAA,kBAAkB,GAAG,EAAE,CAAA;;KAE3B,OAAO,CAAA,YAAA;IACF,EAAA,IAAA,KAAK,CAAC,WAAW,KAAK,YAAY,CAAC,QAAQ,EAAA;IAC9C,GAAA,YAAA,CAAA,CAAA,EAAA,kBAAkB,GAAG,UAAU,CAAA,CAAA;;IAG3B,GAAA,IAAA,KAAK,CAAC,WAAW,GAAG,YAAY,CAAC,UAAU,EAAA;IAC9C,IAAA,YAAA,CAAA,CAAA,EAAA,kBAAkB,IAAI,aAAa,CAAA,CAAA;;;IAEhC,GAAA,IAAA,KAAK,CAAC,WAAW,GAAG,YAAY,CAAC,WAAW,EAAA;YAC3C,kBAAkB,EAAA;IAAI,KAAA,YAAA,CAAA,CAAA,EAAA,kBAAkB,IAAI,IAAI,CAAA,CAAA;;;IACpD,IAAA,YAAA,CAAA,CAAA,EAAA,kBAAkB,IAAI,cAAc,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ICoEjC,CAAA,IAAA,QAAA,iBAAA,GAAS,IAAC,UAAU,IAAA,iBAAA,CAAA,GAAA,CAAA,CAAA;;;;;;;;;;;;IAApB,GAAA,kBAAA,GAAS,IAAC,UAAU,EAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OACxB,UAEK,CAAA,MAAA,EAAA,GAAA,EAAA,MAAA,CAAA,CAAA;OADJ,UAA6B,CAAA,GAAA,EAAA,CAAA,CAAA,CAAA;;;;;IADG,KAAA,SAAA,GAAA,oBAAA,CAAA,GAAA,EAAA,GAAA,EAAA,EAAA,CAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;IAWjD,CAAA,IAAA,QAAA,GAAA,eAAA,GAAS,IAAC,UAAU,IAAA,iBAAA,CAAA,GAAA,CAAA,CAAA;;;;;;;;;;;;IAApB,GAAA,IAAA,eAAA,GAAS,IAAC,UAAU,EAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OACzB,UAEK,CAAA,MAAA,EAAA,GAAA,EAAA,MAAA,CAAA,CAAA;OADJ,UAA+D,CAAA,GAAA,EAAA,MAAA,CAAA,CAAA;;;6DAAzB,GAAU,CAAA,CAAA,CAAA,EAAA,KAAA,EAAA,KAAA,EAAA,KAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;wBAoB5C,GAAS,CAAA,CAAA,CAAA,CAAC,MAAM,KAAK,CAAC,EAAA,OAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAZ5B,UAqBK,CAAA,MAAA,EAAA,IAAA,EAAA,MAAA,CAAA,CAAA;OApBJ,UAUU,CAAA,IAAA,EAAA,QAAA,CAAA,CAAA;OATT,UAAuB,CAAA,QAAA,EAAA,MAAA,CAAA,CAAA;;OACvB,UAAoE,CAAA,QAAA,EAAA,MAAA,CAAA,CAAA;;OACpE,UAMK,CAAA,QAAA,EAAA,IAAA,CAAA,CAAA;OALJ,UAAa,CAAA,IAAA,EAAA,CAAA,CAAA,CAAA;;OACb,UAAqF,CAAA,IAAA,EAAA,MAAA,CAAA,CAAA;qDAAjB,GAAK,CAAA,CAAA,CAAA,CAAA;;OACzE,UAA+B,CAAA,IAAA,EAAA,MAAA,CAAA,CAAA;;OAC/B,UAAuF,CAAA,IAAA,EAAA,MAAA,CAAA,CAAA;qDAAlB,GAAK,CAAA,CAAA,CAAA,CAAA;;OAC1E,UAAiC,CAAA,IAAA,EAAA,MAAA,CAAA,CAAA;;;;;;;wDANI,GAAc,CAAA,CAAA,CAAA,EAAA,KAAA,EAAA,KAAA,EAAA,KAAA,CAAA;;;;;;;;;;sDAGiB,GAAK,CAAA,CAAA,CAAA,CAAA;;;;sDAEJ,GAAK,CAAA,CAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAR5C,KAAA,UAAA,GAAA,oBAAA,CAAA,IAAA,EAAA,GAAA,EAAA,EAAA,CAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAmBpD,UAAsB,CAAA,MAAA,EAAA,CAAA,EAAA,MAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;oCALd,GAAS,CAAA,CAAA,CAAA,CAAA;;;;oCAAd,MAAI,EAAA,CAAA,IAAA,CAAA,EAAA;;;;;;;;;;;;;;;;;;;;;OADP,UAIM,CAAA,MAAA,EAAA,IAAA,EAAA,MAAA,CAAA,CAAA;;;;;;;;;;mCAHE,GAAS,CAAA,CAAA,CAAA,CAAA;;;;mCAAd,MAAI,EAAA,CAAA,IAAA,CAAA,EAAA;;;;;;;;;;;;;;;;4BAAJ,MAAI,EAAA,CAAA,GAAA,WAAA,CAAA,MAAA,EAAA,CAAA,IAAA,CAAA,EAAA;;;;;;;;;;sCAAJ,MAAI,EAAA,CAAA,IAAA,CAAA,EAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iCACiB,GAAK,CAAA,EAAA,CAAA,EAAA;;;;;;;;;;;;;;;;;4EAAL,GAAK,CAAA,EAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;qCAtC1B,GAAU,CAAA,CAAA,CAAA,IAAA,iBAAA,CAAA,GAAA,CAAA,CAAA;qCAYV,GAAU,CAAA,CAAA,CAAA,IAAA,iBAAA,CAAA,GAAA,CAAA,CAAA;oCAUX,GAAU,CAAA,CAAA,CAAA,IAAA,eAAA,CAAA,GAAA,CAAA,CAAA;;;;;;;;;;;;;;;8BAbF,UAAU,CAAA,CAAA;;;;oCADY,GAAU,CAAA,CAAA,CAAA,CAAA;;;;;;;;;;;;;OAV9C,UAiDM,CAAA,MAAA,EAAA,IAAA,EAAA,MAAA,CAAA,CAAA;;;OAvCL,UAEK,CAAA,IAAA,EAAA,IAAA,CAAA,CAAA;OADJ,UAAwB,CAAA,IAAA,EAAA,MAAA,CAAA,CAAA;;;;;;;;2BATnB,GAAU,CAAA,CAAA,CAAA,EAAA;;;;;;;;;;;;;;;;;;;gDAQmB,GAAU,CAAA,CAAA,CAAA,CAAA,CAAA;;;2BAIvC,GAAU,CAAA,CAAA,CAAA,EAAA;;;;;;;;;;;;;0BAUX,GAAU,CAAA,CAAA,CAAA,EAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAjGT,MAAA,UAAU,GAAG,WAAW,CAAA;IAQxB,MAAA,0BAA0B,GAAG,GAAG,CAAA;;;;;SAZlC,IAAI,CAAA;SACJ,QAAQ,CAAA;IAIR,CAAA,IAAA,KAAK,GAAG,KAAK,CAAA;SACb,SAAS,GAAA,EAAA,CAAA;;;IAGT,CAAA,IAAA,UAAU,GAAG,IAAI,CAAA;;SAEjB,sBAAsB,CAAA;;KAG1B,OAAO,CAAA,YAAA;MACN,IAAI,GAAA,MAAS,KAAK,CAAW,CAAA,OAAA,EAAA,eAAwB,CAAI,CAAA,EAAA,MAAwB,CAChF,YAAA,CAAA,CAAA,CAAA,IAAI,CAAE,CAAC,IAAI,CAAC,CAAC,IAAI,EAAA,CAAA,CAAA;MAClB,QAAQ,GAAA,MAAS,KAAK,CAAW,CAAA,OAAA,EAAA,eAAwB,CAAI,CAAA,EAAA,MAAwB,CACpF,gBAAA,CAAA,CAAA,CAAA,IAAI,CAAE,CAAC,IAAI,CAAC,CAAC,IAAI,EAAA,CAAA,CAAA;IACZ,EAAA,MAAA,oBAAoB,GAAS,MAAA,KAAK,CAAW,CAAA,OAAA,EAAA,eAAwB,CAAI,CAAA,EAAA,MAAwB,CAAA,sBAAA,CAAA,CAAA,CAAA;YACjG,gBAAgB,GAAA,MAAS,oBAAoB,CAAC,IAAI,EAAA,CAAA;IACxD,EAAA,YAAA,CAAA,CAAA,EAAA,SAAS,GAAG,gBAAgB,CAAA,CAAA;;;KAG7B,SAAS,CAAA,YAAA;IACR,EAAA,aAAa,CAAC,sBAAsB,CAAA,CAAA;IACpC,EAAAW,OAAqB,EAAA,CAAA;;;oBAGP,iBAAiB,CAAC,aAAqB,EAAE,YAAwC,EAAA;IAE/F,EAAA,sBAAsB,GAAG,WAAW,CAAC,cAAc,EAAE,0BAA0B,CAAA,CAAA;MAC/EC,IAAkB,CAAC,YAAY,EAAE,KAAK,EAAE,UAAU,EAAE,aAAa,CAAA,CAAA;IACjE,EAAA,YAAA,CAAA,CAAA,EAAA,UAAU,GAAG,KAAK,CAAA,CAAA;;;WAGb,cAAc,GAAA,MAAA;MACnB,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAA,CAAA;;UACxB,SAAS,EAAA;;;;;;;;IAKT,EAAA,IAAA,SAAS,CAAC,YAAY,IAAI,SAAS,CAAC,UAAU,EAAA;IAEjD,GAAA,aAAa,CAAC,sBAAsB,CAAA,CAAA;OACpC,OAAO,CAAC,GAAG,CAAC,qBAAqB,CAAA,CAAA;;OACjC,UAAU;;SACT,SAAS,EAAA,CAAA;SACT,OAAO,CAAC,GAAG,CAAC,6BAA6B,CAAA,CAAA;;QACvC,IAAI;;;;;cAIA,UAAU,GAAA;IAClB,EAAA,aAAa,CAAC,sBAAsB,CAAA,CAAA;MACpC,SAAS,EAAA,CAAA;;;oBAGK,SAAS,GAAA;IACvB,EAAA,YAAA,CAAA,CAAA,EAAA,UAAU,GAAG,IAAI,CAAA,CAAA;IACjB,EAAAD,OAAqB,EAAA,CAAA;MACrB,cAAc,EAAA,CAAA;;;oBAGA,cAAc,GAAA;sBAC5B,SAAS,GAAA,MAAS,KAAK,CAAW,CAAA,OAAA,EAAA,eAAwB,CAAI,CAAA,EAAA,MAAwB,CACrF,sBAAA,CAAA,CAAA,CAAA,IAAI,CAAE,CAAC,IAAI,CAAC,CAAC,IAAI,EAAA,CAAA,CAAA,CAAA;;;;;;;;;;;MAyCqD,KAAK,GAAA,IAAA,CAAA,OAAA,CAAA;;;;;MAEJ,KAAK,GAAA,IAAA,CAAA,OAAA,CAAA;;;;mCAOjC,CAAC,KAAK,iBAAiB,CAAC,KAAK,CAAC,sBAAsB,EAAE,KAAK,CAAC,WAAW,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ICpH9G,MAAM,aAAa,GAAG;IAC7B,EAAE,GAAG,EAAE,UAAU;IACjB,EAAE,OAAO,EAAE,eAAe;IAC1B,EAAE,MAAM,EAAE,uBAAuB;IACjC,EAAE,OAAO,EAAEhF,MAAI,CAAC;IAChB,IAAI,SAAS,EAAE,IAAI;IACnB,IAAI,UAAU,EAAE;IAChB,MAAM,MAAM,MAAM,KAAK;IACvB,QAAQ,MAAM,IAAI,GAAG,MAAM,KAAK,CAAC,SAAS,GAAG,eAAwB,IAAI,GAAG,GAAG,MAAwB,GAAG,cAAc,CAAC;IACzH,SAAS,IAAI,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,EAAE,EAAC;AACpC;IACA,QAAQ,OAAO,CAAC,GAAG,CAAC,6BAA6B,EAAC;IAClD,QAAQ,OAAO,CAAC,GAAG,CAAC,IAAI,EAAC;AACzB;IACA,QAAQ,IAAI,IAAI,IAAI,IAAI,CAAC,QAAQ;IACjC,UAAU,OAAO,IAAI,CAAC;IACtB;IACA,UAAU,OAAO,KAAK,CAAC;IACvB,OAAO;IACP,KAAK;IACL,GAAG,CAAC;IACJ,EAAE,YAAY,EAAEA,MAAI,CAAC;IACrB,IAAI,SAAS,EAAE,aAAa;IAC5B,IAAI,UAAU,EAAE;IAChB,MAAM,MAAM,MAAM,KAAK;IACvB,QAAQ,MAAM,IAAI,GAAG,MAAM,KAAK,CAAC,SAAS,GAAG,eAAwB,IAAI,GAAG,GAAG,MAAwB,GAAG,cAAc,CAAC;IACzH,SAAS,IAAI,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,EAAE,EAAC;AACpC;IACA,QAAQ,OAAO,CAAC,GAAG,CAAC,6BAA6B,EAAC;IAClD,QAAQ,OAAO,CAAC,GAAG,CAAC,IAAI,EAAC;AACzB;IACA,QAAQ,IAAI,IAAI,IAAI,IAAI,CAAC,QAAQ;IACjC,UAAU,OAAO,IAAI,CAAC;IACtB;IACA,UAAU,OAAO,KAAK,CAAC;IACvB,OAAO;IACP,KAAK;IACL,GAAG,CAAC;IACJ,EAAE,UAAU,EAAEA,MAAI,CAAC;IACnB,IAAI,SAAS,EAAE,OAAO;IACtB,IAAI,UAAU,EAAE;IAChB,MAAM,MAAM,MAAM,KAAK;IACvB,QAAQ,MAAM,IAAI,GAAG,MAAM,KAAK,CAAC,SAAS,GAAG,eAAwB,IAAI,GAAG,GAAG,MAAwB,GAAG,cAAc,CAAC;IACzH,SAAS,IAAI,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,EAAE,EAAC;AACpC;IACA,QAAQ,OAAO,CAAC,GAAG,CAAC,6BAA6B,EAAC;IAClD,QAAQ,OAAO,CAAC,GAAG,CAAC,IAAI,EAAC;AACzB;IACA,QAAQ,IAAI,IAAI,IAAI,IAAI,CAAC,QAAQ;IACjC,UAAU,OAAO,IAAI,CAAC;IACtB;IACA,UAAU,OAAO,KAAK,CAAC;IACvB,OAAO;IACP,KAAK;IACL,GAAG,CAAC;IACJ,EAAE,UAAU,EAAEA,MAAI,CAAC;IACnB,IAAI,SAAS,EAAE,WAAW;IAC1B,IAAI,UAAU,EAAE;IAChB,MAAM,MAAM,MAAM,KAAK;IACvB,QAAQ,MAAM,IAAI,GAAG,MAAM,KAAK,CAAC,SAAS,GAAG,eAAwB,IAAI,GAAG,GAAG,MAAwB,GAAG,cAAc,CAAC;IACzH,SAAS,IAAI,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,EAAE,EAAC;AACpC;IACA,QAAQ,OAAO,CAAC,GAAG,CAAC,6BAA6B,EAAC;IAClD,QAAQ,OAAO,CAAC,GAAG,CAAC,IAAI,EAAC;AACzB;IACA,QAAQ,IAAI,IAAI,IAAI,IAAI,CAAC,QAAQ;IACjC,UAAU,OAAO,IAAI,CAAC;IACtB;IACA,UAAU,OAAO,KAAK,CAAC;IACvB,OAAO;IACP,KAAK;IACL,GAAG,CAAC;IACJ,EAAE,YAAY,EAAEA,MAAI,CAAC;IACrB,IAAI,SAAS,EAAE,WAAW;IAC1B,IAAI,UAAU,EAAE;IAChB,MAAM,MAAM,MAAM,KAAK;IACvB,QAAQ,MAAM,IAAI,GAAG,MAAM,KAAK,CAAC,SAAS,GAAG,eAAwB,IAAI,GAAG,GAAG,MAAwB,GAAG,cAAc,CAAC;IACzH,SAAS,IAAI,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,EAAE,EAAC;AACpC;IACA,QAAQ,OAAO,CAAC,GAAG,CAAC,+BAA+B,EAAC;IACpD,QAAQ,OAAO,CAAC,GAAG,CAAC,IAAI,EAAC;AACzB;IACA,QAAQ,IAAI,IAAI,IAAI,IAAI,CAAC,QAAQ;IACjC,UAAU,OAAO,IAAI,CAAC;IACtB;IACA,UAAU,OAAO,KAAK,CAAC;IACvB,OAAO;IACP,KAAK;IACL,GAAG,CAAC;IACJ,EAAE,sBAAsB,EAAE,sBAAsB;IAChD,EAAE,GAAG,EAAE,QAAQ;IACf,CAAC;;;;;;;;;;;wBCtFe,aAAa,EAAA;;;;yDAAuB,GAAgB,CAAA,CAAA,CAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAX5D,CAAA,MAAA,gBAAgB,GAAI,KAAK,IAAA;IAC7B,EAAA,OAAO,CAAC,KAAK,CAAC,wBAAwB,EAAE,KAAK,CAAC,MAAM,CAAA,CAAA;;;;IAIpD,EAAA,OAAO,CAAC,GAAG,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACVf,UAAM,GAAG,GAAG,IAAI,GAAG,CAAC;QACnB,MAAM,EAAE,QAAQ,CAAC,IAAI;IACrB,IAAA,KAAK,EAAE;;IAEN,KAAA;IACD,CAAA;;;;;;;;"} \ No newline at end of file diff --git a/srcs/requirements/svelte/api_front/src/pages/SplashPage.svelte b/srcs/requirements/svelte/api_front/src/pages/SplashPage.svelte index f9510d17..ac94f1b9 100644 --- a/srcs/requirements/svelte/api_front/src/pages/SplashPage.svelte +++ b/srcs/requirements/svelte/api_front/src/pages/SplashPage.svelte @@ -65,8 +65,7 @@
    - - + @@ -77,23 +76,9 @@ overflow-y: hidden; } */ - - /*c'est une exemple d'animation, tu peux aussi etre plus precis avec des pourcentages au lieu de 'from' 'tot*/ - /* @keyframes potatoes_move { - from {background-position: 0 0;} - to {background-position: 100% 0;} - } */ - - /* body { - background: url('img/potato_logo.png') repeat; - animation: potatoes_move 5s linear infinite; - } */ - header { /* didn't work... */ - /* overflow-y: hidden; */ - /* background: url('img/potato_logo.png') repeat; - animation: potatoes_move 5s linear infinite; */ + overflow-y: hidden; } diff --git a/srcs/requirements/svelte/api_front/src/pieces/JumpingPotatoes.svelte b/srcs/requirements/svelte/api_front/src/pieces/JumpingPotatoes.svelte deleted file mode 100644 index 62349972..00000000 --- a/srcs/requirements/svelte/api_front/src/pieces/JumpingPotatoes.svelte +++ /dev/null @@ -1,69 +0,0 @@ - - -
    - - - - - - - diff --git a/srcs/requirements/svelte/api_front/src/routes/primaryRoutes.js b/srcs/requirements/svelte/api_front/src/routes/primaryRoutes.js index 80456d15..c6430260 100644 --- a/srcs/requirements/svelte/api_front/src/routes/primaryRoutes.js +++ b/srcs/requirements/svelte/api_front/src/routes/primaryRoutes.js @@ -13,7 +13,6 @@ import JumpingPotatoes from '../pieces/JumpingPotatoes.svelte'; export const primaryRoutes = { '/': SplashPage, - '/test': JumpingPotatoes, '/2fa': TwoFactorAuthentication, '/game': wrap({ component: Game,