(function(){const n=document.createElement("link").relList;if(n&&n.supports&&n.supports("modulepreload"))return;for(const a of document.querySelectorAll('link[rel="modulepreload"]'))t(a);new MutationObserver(a=>{for(const u of a)if(u.type==="childList")for(const o of u.addedNodes)o.tagName==="LINK"&&o.rel==="modulepreload"&&t(o)}).observe(document,{childList:!0,subtree:!0});function e(a){const u={};return a.integrity&&(u.integrity=a.integrity),a.referrerPolicy&&(u.referrerPolicy=a.referrerPolicy),a.crossOrigin==="use-credentials"?u.credentials="include":a.crossOrigin==="anonymous"?u.credentials="omit":u.credentials="same-origin",u}function t(a){if(a.ep)return;a.ep=!0;const u=e(a);fetch(a.href,u)}})();function ur(r,n,e){return e.a=r,e.f=n,e}function $(r){return ur(2,r,function(n){return function(e){return r(n,e)}})}function g(r){return ur(3,r,function(n){return function(e){return function(t){return r(n,e,t)}}})}function k(r){return ur(4,r,function(n){return function(e){return function(t){return function(a){return r(n,e,t,a)}}}})}function lr(r){return ur(5,r,function(n){return function(e){return function(t){return function(a){return function(u){return r(n,e,t,a,u)}}}}})}function Yr(r){return ur(6,r,function(n){return function(e){return function(t){return function(a){return function(u){return function(o){return r(n,e,t,a,u,o)}}}}}})}function gn(r){return ur(7,r,function(n){return function(e){return function(t){return function(a){return function(u){return function(o){return function(c){return r(n,e,t,a,u,o,c)}}}}}}})}function ge(r){return ur(8,r,function(n){return function(e){return function(t){return function(a){return function(u){return function(o){return function(c){return function(s){return r(n,e,t,a,u,o,c,s)}}}}}}}})}function de(r){return ur(9,r,function(n){return function(e){return function(t){return function(a){return function(u){return function(o){return function(c){return function(s){return function(f){return r(n,e,t,a,u,o,c,s,f)}}}}}}}}})}function i(r,n,e){return r.a===2?r.f(n,e):r(n)(e)}function m(r,n,e,t){return r.a===3?r.f(n,e,t):r(n)(e)(t)}function M(r,n,e,t,a){return r.a===4?r.f(n,e,t,a):r(n)(e)(t)(a)}function C(r,n,e,t,a,u){return r.a===5?r.f(n,e,t,a,u):r(n)(e)(t)(a)(u)}function cn(r,n,e,t,a,u,o){return r.a===6?r.f(n,e,t,a,u,o):r(n)(e)(t)(a)(u)(o)}function $t(r,n,e,t,a,u,o,c){return r.a===7?r.f(n,e,t,a,u,o,c):r(n)(e)(t)(a)(u)(o)(c)}function De(r,n,e,t,a,u,o,c,s){return r.a===8?r.f(n,e,t,a,u,o,c,s):r(n)(e)(t)(a)(u)(o)(c)(s)}var D={$:0};function x(r,n){return{$:1,a:r,b:n}}var ft=$(x);function l(r){for(var n=D,e=r.length;e--;)n=x(r[e],n);return n}function dn(r){for(var n=[];r.b;r=r.b)n.push(r.a);return n}var st=g(function(r,n,e){for(var t=[];n.b&&e.b;n=n.b,e=e.b)t.push(i(r,n.a,e.a));return l(t)});k(function(r,n,e,t){for(var a=[];n.b&&e.b&&t.b;n=n.b,e=e.b,t=t.b)a.push(m(r,n.a,e.a,t.a));return l(a)});lr(function(r,n,e,t,a){for(var u=[];n.b&&e.b&&t.b&&a.b;n=n.b,e=e.b,t=t.b,a=a.b)u.push(M(r,n.a,e.a,t.a,a.a));return l(u)});Yr(function(r,n,e,t,a,u){for(var o=[];n.b&&e.b&&t.b&&a.b&&u.b;n=n.b,e=e.b,t=t.b,a=a.b,u=u.b)o.push(C(r,n.a,e.a,t.a,a.a,u.a));return l(o)});$(function(r,n){return l(dn(n).sort(function(e,t){return z(r(e),r(t))}))});$(function(r,n){return l(dn(n).sort(function(e,t){var a=i(r,e,t);return a===Oe?0:a===Re?-1:1}))});var lt=[];function vt(r){return r.length}var _t=g(function(r,n,e){for(var t=new Array(r),a=0;a=0;t--)n=i(r,e[t],n);return n});$(function(r,n){for(var e=n.length,t=new Array(e),a=0;ae.length&&(a=e.length);for(var u=t+a,o=new Array(u),c=0;c"}function jr(r){throw new Error("https://github.com/elm/core/blob/1.0.0/hints/"+r+".md")}function X(r,n){for(var e,t=[],a=$n(r,n,0,t);a&&(e=t.pop());a=$n(e.a,e.b,0,t));return a}function $n(r,n,e,t){if(r===n)return!0;if(typeof r!="object"||r===null||n===null)return typeof r=="function"&&jr(5),!1;if(e>100)return t.push(d(r,n)),!0;r.$<0&&(r=ee(r),n=ee(n));for(var a in r)if(!$n(r[a],n[a],e+1,t))return!1;return!0}$(X);$(function(r,n){return!X(r,n)});function z(r,n,e){if(typeof r!="object")return r===n?0:r"u")return(e=z(r.a,n.a))||(e=z(r.b,n.b))?e:z(r.c,n.c);for(;r.b&&n.b&&!(e=z(r.a,n.a));r=r.b,n=n.b);return e||(r.b?1:n.b?-1:0)}$(function(r,n){return z(r,n)<0});$(function(r,n){return z(r,n)<1});$(function(r,n){return z(r,n)>0});$(function(r,n){return z(r,n)>=0});var pt=$(function(r,n){var e=z(r,n);return e<0?Re:e?Ia:Oe}),Tr=0;function d(r,n){return{a:r,b:n}}function W(r,n){var e={};for(var t in r)e[t]=r[t];for(var t in n)e[t]=n[t];return e}$(gt);function gt(r,n){if(typeof r=="string")return r+n;if(!r.b)return n;var e=x(r.a,n);r=r.b;for(var t=e;r.b;r=r.b)t=t.b=x(r.a,n);return e}$(function(r,n){return r+n});$(function(r,n){return r-n});$(function(r,n){return r*n});$(function(r,n){return r/n});$(function(r,n){return r/n|0});$(Math.pow);$(function(r,n){return n%r});$(function(r,n){var e=n%r;return r===0?jr(11):e>0&&r<0||e<0&&r>0?e+r:e});$(Math.atan2);var dt=Math.ceil,Dt=Math.floor,Yn=Math.log;$(function(r,n){return r&&n});$(function(r,n){return r||n});$(function(r,n){return r!==n});$(function(r,n){return r+n});function St(r){var n=r.charCodeAt(0);return isNaN(n)?p:T(55296<=n&&n<=56319?d(r[0]+r[1],r.slice(2)):d(r[0],r.slice(1)))}$(function(r,n){return r+n});function jt(r){return r.length}$(function(r,n){for(var e=n.length,t=new Array(e),a=0;a-1});$(function(r,n){return n.indexOf(r)===0});$(function(r,n){return n.length>=r.length&&n.lastIndexOf(r)===n.length-r.length});var Pt=$(function(r,n){var e=r.length;if(e<1)return D;for(var t=0,a=[];(t=n.indexOf(r,t))>-1;)a.push(t),t=t+e;return l(a)});function Se(r){return r+""}function Mt(r){for(var n=0,e=r.charCodeAt(0),t=e==43||e==45?1:0,a=t;a=n.length)return I("a LONGER array. Need index "+t+" but only see "+n.length+" entries",n);var f=q(r.b,n[t]);return Q(f)?f:er(i(Ue,t,f.a));case 8:if(typeof n!="object"||n===null||kr(n))return I("an OBJECT",n);var a=D;for(var u in n)if(n.hasOwnProperty(u)){var f=q(r.b,n[u]);if(!Q(f))return er(i(te,u,f.a));a=x(d(u,f.a),a)}return Z(ar(a));case 9:for(var o=r.f,c=r.g,s=0;s=0&&n.splice(c,1)}return{subscribe:a,unsubscribe:u}}function Cn(r,n){return Je(r),R[r]={f:ba,u:n,a:ha},Jn(r)}var ba=$(function(r,n){return function(e){return r(n(e))}});function ha(r,n){var e=D,t=R[r].u,a=ir(null);R[r].b=a,R[r].c=g(function(o,c,s){return e=c,a});function u(o){var c=i(Dn,t,o);Q(c)||jr(4,r,c.a);for(var s=c.a,f=e;f.b;f=f.b)n(f.a(s))}return{send:u}}var Wr,fr=typeof document<"u"?document:{};function Pn(r,n){r.appendChild(n)}k(function(r,n,e,t){var a=t.node;return a.parentNode.replaceChild(tr(r,function(){}),a),{}});function sn(r){return{$:0,a:r}}var ma=$(function(r,n){return $(function(e,t){for(var a=[],u=0;t.b;t=t.b){var o=t.a;u+=o.b||0,a.push(o)}return u+=a.length,{$:1,c:n,d:Pe(e),e:a,f:r,b:u}})}),vr=ma(void 0),pa=$(function(r,n){return $(function(e,t){for(var a=[],u=0;t.b;t=t.b){var o=t.a;u+=o.b.b||0,a.push(o)}return u+=a.length,{$:2,c:n,d:Pe(e),e:a,f:r,b:u}})});pa(void 0);$(function(r,n){return{$:4,j:r,k:n,b:1+(n.b||0)}});function cr(r,n){return{$:5,l:r,m:n,k:void 0}}$(function(r,n){return cr([r,n],function(){return r(n)})});g(function(r,n,e){return cr([r,n,e],function(){return i(r,n,e)})});k(function(r,n,e,t){return cr([r,n,e,t],function(){return m(r,n,e,t)})});lr(function(r,n,e,t,a){return cr([r,n,e,t,a],function(){return M(r,n,e,t,a)})});Yr(function(r,n,e,t,a,u){return cr([r,n,e,t,a,u],function(){return C(r,n,e,t,a,u)})});gn(function(r,n,e,t,a,u,o){return cr([r,n,e,t,a,u,o],function(){return cn(r,n,e,t,a,u,o)})});ge(function(r,n,e,t,a,u,o,c){return cr([r,n,e,t,a,u,o,c],function(){return $t(r,n,e,t,a,u,o,c)})});de(function(r,n,e,t,a,u,o,c,s){return cr([r,n,e,t,a,u,o,c,s],function(){return De(r,n,e,t,a,u,o,c,s)})});var we=$(function(r,n){return{$:"a0",n:r,o:n}});$(function(r,n){return{$:"a1",n:r,o:n}});var Ce=$(function(r,n){return{$:"a2",n:r,o:n}}),ga=$(function(r,n){return{$:"a3",n:r,o:n}});g(function(r,n,e){return{$:"a4",n,o:{f:r,o:e}}});var da=/^\s*(j\s*a\s*v\s*a\s*s\s*c\s*r\s*i\s*p\s*t\s*:|d\s*a\s*t\s*a\s*:\s*t\s*e\s*x\s*t\s*\/\s*h\s*t\s*m\s*l\s*(,|;))/i;function Da(r){return da.test(r)?"":r}$(function(r,n){return n.$==="a0"?i(we,n.n,Sa(r,n.o)):n});function Sa(r,n){var e=Rn(n);return{$:n.$,a:e?m(Ge,e<3?ja:Ta,y(r),n.a):i(dr,r,n.a)}}var ja=$(function(r,n){return d(r(n.a),n.b)}),Ta=$(function(r,n){return{s:r(n.s),al:n.al,_:n._}});function Pe(r){for(var n={};r.b;r=r.b){var e=r.a,t=e.$,a=e.n,u=e.o;if(t==="a2"){a==="className"?re(n,a,u):n[a]=u;continue}var o=n[t]||(n[t]={});t==="a3"&&a==="class"?re(o,a,u):o[a]=u}return n}function re(r,n,e){var t=r[n];r[n]=t?t+" "+e:e}function tr(r,n){var e=r.$;if(e===5)return tr(r.k||(r.k=r.m()),n);if(e===0)return fr.createTextNode(r.a);if(e===4){for(var t=r.k,a=r.j;t.$===4;)typeof a!="object"?a=[a,t.j]:a.push(t.j),t=t.k;var u={j:a,p:n},o=tr(t,u);return o.elm_event_node_ref=u,o}if(e===3){var o=r.h(r.g);return ln(o,n,r.d),o}var o=r.f?fr.createElementNS(r.f,r.c):fr.createElement(r.c);Wr&&r.c=="a"&&o.addEventListener("click",Wr(o)),ln(o,n,r.d);for(var c=r.e,s=0;s0&&B(e,1,t,v);return;case 4:for(var _=r.j,h=n.j,b=!1,S=r.k;S.$===4;)b=!0,typeof _!="object"?_=[_,S.j]:_.push(S.j),S=S.k;for(var j=n.k;j.$===4;)b=!0,typeof h!="object"?h=[h,j.j]:h.push(j.j),j=j.k;if(b&&_.length!==h.length){B(e,0,t,n);return}(b?!Ea(_,h):_!==h)&&B(e,2,t,h),Y(S,j,e,t+1);return;case 0:r.a!==n.a&&B(e,3,t,n.a);return;case 1:ne(r,n,e,t,Fa);return;case 2:ne(r,n,e,t,Ba);return;case 3:if(r.h!==n.h){B(e,0,t,n);return}var J=En(r.d,n.d);J&&B(e,4,t,J);var V=n.i(r.g,n.g);V&&B(e,5,t,V);return}}}function Ea(r,n){for(var e=0;ec?B(e,6,t,{v:c,i:o-c}):o0||o.length>0||Ur)&&B(e,8,t,{w:a,x:o,y:Ur})}var Ee="_elmW6BL";function Cr(r,n,e,t,a,u){var o=r[e];if(!o){o={c:0,z:t,r:a,s:void 0},u.push({r:a,A:o}),r[e]=o;return}if(o.c===1){u.push({r:a,A:o}),o.c=2;var c=[];Y(o.z,t,c,o.r),o.r=a,o.s.s={w:c,A:o};return}Cr(r,n,e+Ee,t,a,u)}function Pr(r,n,e,t,a){var u=r[e];if(!u){var o=B(n,9,a,void 0);r[e]={c:1,z:t,r:a,s:o};return}if(u.c===0){u.c=2;var c=[];Y(t,u.z,c,a),B(n,9,a,{w:c,A:u});return}Pr(r,n,e+Ee,t,a)}function Fe(r,n,e,t){Mr(r,n,e,0,0,n.b,t)}function Mr(r,n,e,t,a,u,o){for(var c=e[t],s=c.r;s===a;){var f=c.$;if(f===1)Fe(r,n.k,c.s,o);else if(f===8){c.t=r,c.u=o;var v=c.s.w;v.length>0&&Mr(r,n,v,0,a,u,o)}else if(f===9){c.t=r,c.u=o;var _=c.s;if(_){_.A.s=r;var v=_.w;v.length>0&&Mr(r,n,v,0,a,u,o)}}else c.t=r,c.u=o;if(t++,!(c=e[t])||(s=c.r)>u)return t}var h=n.$;if(h===4){for(var b=n.k;b.$===4;)b=b.k;return Mr(r,b,e,t,a+1,u,r.elm_event_node_ref)}for(var S=n.e,j=r.childNodes,J=0;Ju))return t;a=w}return t}function Be(r,n,e,t){return e.length===0?r:(Fe(r,n,e,t),Xr(r,e))}function Xr(r,n){for(var e=0;e0?r:n}),fu=function(r){return{$:0,a:r}},Qe=bt,su=$(function(r,n){r:for(;;){var e=i(Qe,K,r),t=e.a,a=e.b,u=i(L,fu(t),n);if(a.b){var o=a,c=u;r=o,n=c;continue r}else return ar(u)}}),lu=$(function(r,n){r:for(;;){var e=We(n/K);if(e===1)return i(Qe,K,r).a;var t=i(su,r,D),a=e;r=t,n=a;continue r}}),vu=$(function(r,n){if(n.e){var e=n.e*K,t=cu(i(Xe,K,e-1)),a=r?ar(n.h):n.h,u=i(lu,a,n.e);return M(vn,ae(n.g)+e,i($u,5,t*bn),u,n.g)}else return M(vn,ae(n.g),bn,_n,n.g)}),_u=lr(function(r,n,e,t,a){r:for(;;){if(n<0)return i(vu,!1,{h:t,e:e/K|0,g:a});var u=ou(m(Ie,K,n,r)),o=r,c=n-K,s=e,f=i(L,u,t),v=a;r=o,n=c,e=s,t=f,a=v;continue r}}),bu=$(function(r,n){if(r<=0)return uu;var e=r%K,t=m(Ie,e,r-e,n),a=r-e-K;return C(_u,n,a,r,D,t)}),Q=function(r){return!r.$},dr=zt,Ge=Wt,y=Ft,Rn=function(r){switch(r.$){case 0:return 0;case 1:return 1;case 2:return 2;default:return 3}},Ye=function(r){return r},hu=Ye,ue=Yr(function(r,n,e,t,a,u){return{aA:u,aE:n,aV:t,aX:e,a$:r,a0:a}}),mu=Ct,pu=jt,Ze=Jt,Kr=$(function(r,n){return r<1?n:m(Ze,r,pu(n),n)}),yr=Pt,Nr=function(r){return r===""},xr=$(function(r,n){return r<1?"":m(Ze,0,r,n)}),gu=Mt,oe=lr(function(r,n,e,t,a){if(Nr(a)||i(mu,"@",a))return p;var u=i(yr,":",a);if(u.b){if(u.b.b)return p;var o=u.a,c=gu(i(Kr,o+1,a));if(c.$===1)return p;var s=c;return T(cn(ue,r,i(xr,o,a),s,n,e,t))}else return T(cn(ue,r,a,p,n,e,t))}),ie=k(function(r,n,e,t){if(Nr(t))return p;var a=i(yr,"/",t);if(a.b){var u=a.a;return C(oe,r,i(Kr,u,t),n,e,i(xr,u,t))}else return C(oe,r,"/",n,e,t)}),ce=g(function(r,n,e){if(Nr(e))return p;var t=i(yr,"?",e);if(t.b){var a=t.a;return M(ie,r,T(i(Kr,a+1,e)),n,i(xr,a,e))}else return M(ie,r,p,n,e)});$(function(r,n){if(Nr(n))return p;var e=i(yr,"#",n);if(e.b){var t=e.a;return m(ce,r,T(i(Kr,t+1,n)),i(xr,t,n))}else return m(ce,r,p,n)});var Un=function(r){},Lr=ir,du=Lr(0),Ke=k(function(r,n,e,t){if(t.b){var a=t.a,u=t.b;if(u.b){var o=u.a,c=u.b;if(c.b){var s=c.a,f=c.b;if(f.b){var v=f.a,_=f.b,h=e>500?m(Ar,r,n,ar(_)):M(Ke,r,n,e+1,_);return i(r,a,i(r,o,i(r,s,i(r,v,h))))}else return i(r,a,i(r,o,i(r,s,n)))}else return i(r,a,i(r,o,n))}else return i(r,a,n)}else return n}),Jr=g(function(r,n,e){return M(Ke,r,n,0,e)}),sr=$(function(r,n){return m(Jr,$(function(e,t){return i(L,r(e),t)}),D,n)}),Qr=fn,kn=$(function(r,n){return i(Qr,function(e){return Lr(r(e))},n)}),Du=g(function(r,n,e){return i(Qr,function(t){return i(Qr,function(a){return Lr(i(r,t,a))},e)},n)}),Su=function(r){return m(Jr,Du(L),Lr(D),r)},ju=$a,Tu=$(function(r,n){var e=n;return je(i(Qr,ju(r),e))}),Au=g(function(r,n,e){return i(kn,function(t){return 0},Su(i(sr,Tu(r),n)))}),Ju=g(function(r,n,e){return Lr(0)}),wu=$(function(r,n){var e=n;return i(kn,r,e)});R.Task=ia(du,Au,Ju,wu);var Cu=Jn("Task"),Hn=$(function(r,n){return Cu(i(kn,r,n))}),Pu=ka,G=Ae,qr=xt,Mu=wn("getTilesFromLocalStorage",function(r){return qr}),on=g(function(r,n,e){if(e.$)return r;var t=e.a;return n(t)}),ye=$(function(r,n){return m(Ar,Nt(r),Zt(),n)}),Ne=function(r){return m(Ar,$(function(n,e){var t=n.a,a=n.b;return m(yt,t,a,e)}),Kt(),r)},N=Sn,Vr=wn("sendMessage",function(r){return Ne(l([d("messageType",N(r.aP)),d("source",(function(n){return m(on,qr,N,n)})(r.bc)),d("sources",(function(n){return m(on,qr,ye(N),n)})(r.bd)),d("values",(function(n){return m(on,qr,N,n)})(r.bk))]))}),Eu=G(l([Vr({aP:"list_sources",bc:p,bd:p,bk:p}),Mu(0)])),Fu={by:1,bC:D,b$:D},Bu=function(r){return{$:6,a:r}},Lu={$:8},Vu=function(r){return{$:7,a:r}},Ou=Ae,O=Ot,Ru=Cn("messageReceiver",O),qn=Ut,Uu=Cn("reconnectTriggered",qn(0)),ku=Cn("tilesLoaded",O),Hu=function(r){return Ou(l([Ru(Bu),ku(Vu),Uu(function(n){return Lu})]))},Fr=Qt,qu=k(function(r,n,e,t){return{aP:r,bc:n,bd:e,bk:t}}),xe=Rt,rt=Ge(iu),nt=Ht,U=kt,$e=$(function(r,n){return m(Jr,U,n,r)}),fe=Dn,zn=qt,se=Vt,zu=g(function(r,n,e){var t=function(u){return zn(l([u,qn(e)]))},a=function(u){var o=i(fe,i($e,r,se),u);if(o.$)return y(e);var c=o.a,s=i(fe,t(n),c);if(s.$)return i($e,r,t(n));var f=s.a;return y(f)};return i(nt,a,se)}),$r=k(function(r,n,e,t){return i(rt,m(zu,l([r]),n,e),t)}),Wu=g(function(r,n,e){return i(rt,i(U,r,n),e)}),Xu=M($r,"values",i(dr,T,O),p,M($r,"sources",i(dr,T,xe(O)),p,M($r,"source",i(dr,T,O),p,m(Wu,"messageType",O,y(qu))))),Iu=function(r){var n=i(Fr,Xu,r);if(n.$)return p;var e=n.a;return T(e)},F=G(D),Qu=$(function(r,n){var e=n.bd;if(e.$)return d(r,F);var t=e.a;return d(W(r,{bC:i(sr,function(a){return{av:p,b1:a}},t)}),F)}),Sr=$(function(r,n){if(n.$)return r;var e=n.a;return e}),Gu=$(function(r,n){var e=i(sr,function(t){var a=t.bB;if(a.$)return t;var u=a.a;return X(u,i(Sr,"",n.bc))?W(t,{bA:i(Sr,p,T(n.bk))}):t},r.b$);return d(W(r,{b$:e}),F)}),Yu=$(function(r,n){var e=Iu(n);if(e.$)return d(r,F);var t=e.a,a=t.aP;switch(a){case"source_list":return i(Qu,r,t);case"data":return i(Gu,r,t);default:return d(r,F)}}),Zu=$(function(r,n){return n.b?m(Jr,L,n,r):r}),Ku=function(r){return d(W(r,{b$:i(Zu,r.b$,l([{bA:p,bB:p,bT:Vn(r.b$)+1,bX:0}]))}),F)},Wn=$(function(r,n){if(n.$)return p;var e=n.a;return r(e)}),yu=$(function(r,n){return i(_r,$(function(e,t){return X(e,r)?W(t,{bB:p}):t}),n)}),et=$(function(r,n){return m(Jr,$(function(e,t){return r(e)?i(L,e,t):t}),D,n)}),Nu=function(r){if(r.b){var n=r.a;return r.b,T(n)}else return p},xu=$(function(r,n){if(n.$)return p;var e=n.a;return T(r(e))}),tt=function(r){var n=r.b;return n},Xn=$(function(r,n){return i(xu,tt,Nu(i(et,function(e){var t=e.a;return X(t,r)},i(_r,$(function(e,t){return d(e,t)}),n))))}),ro=$(function(r,n){r:for(;;)if(n.b){var e=n.a,t=n.b;if(r(e))return!0;var a=r,u=t;r=a,n=u;continue r}else return!1}),hn=$(function(r,n){return i(ro,function(e){return X(e.bB,T(r))},n)}),at=function(r){return Vr({aP:"unsubscribe",bc:T(r),bd:p,bk:p})},ut=$(function(r,n){if(r.$)return F;var e=r.a;return i(hn,e,n)?F:at(e)}),no=$(function(r,n){var e=i(Wn,function(u){return u.bB},i(Xn,n,r.b$)),t=i(yu,n,r.b$),a=i(ut,e,t);return d(W(r,{b$:t}),a)}),eo=k(function(r,n,e,t){return{bA:t,bB:e,bT:r,bX:n}}),Gr=Bt,le=function(r){return zn(l([qn(p),i(dr,T,r)]))},to=i(nt,function(r){switch(r){case"L":return y(0);case"XL":return y(1);default:return y(0)}},O),ao=M($r,"data",le(O),p,M($r,"dataSourceName",le(O),p,M($r,"size",to,0,M($r,"order",Gr,1,y(eo))))),uo=function(r){if(r.$)return p;var n=r.a;return T(n)},oo=function(r){return uo(i(Fr,xe(ao),r))},io=Sn,co=function(r){return N(r?"XL":"L")},$o=function(r){return Ne(l([d("order",io(r.bT)),d("size",co(r.bX)),d("dataSourceName",N(i(Sr,"",r.bB))),d("data",N(i(Sr,"",r.bA)))]))},hr=function(r){return i(ke,0,i(ye,$o,r))},fo=g(function(r,n,e){var t=r(n);if(t.$)return e;var a=t.a;return i(L,a,e)}),so=$(function(r,n){return m(Jr,fo(r),D,n)}),mn={$:-2},lo=mn,vo=lo,H=lr(function(r,n,e,t,a){return{$:-1,a:r,b:n,c:e,d:t,e:a}}),ve=lr(function(r,n,e,t,a){if(a.$===-1&&!a.a){a.a;var u=a.b,o=a.c,c=a.d,s=a.e;if(t.$===-1&&!t.a){t.a;var f=t.b,v=t.c,_=t.d,h=t.e;return C(H,0,n,e,C(H,1,f,v,_,h),C(H,1,u,o,c,s))}else return C(H,r,u,o,C(H,0,n,e,t,c),s)}else if(t.$===-1&&!t.a&&t.d.$===-1&&!t.d.a){t.a;var f=t.b,v=t.c,b=t.d;b.a;var S=b.b,j=b.c,J=b.d,V=b.e,h=t.e;return C(H,0,f,v,C(H,1,S,j,J,V),C(H,1,n,e,h,a))}else return C(H,r,n,e,t,a)}),_o=pt,pn=g(function(r,n,e){if(e.$===-2)return C(H,0,r,n,mn,mn);var t=e.a,a=e.b,u=e.c,o=e.d,c=e.e,s=i(_o,r,a);switch(s){case 0:return C(ve,t,a,u,m(pn,r,n,o),c);case 1:return C(H,t,a,n,o,c);default:return C(ve,t,a,u,o,m(pn,r,n,c))}}),bo=g(function(r,n,e){var t=m(pn,r,n,e);if(t.$===-1&&!t.a){t.a;var a=t.b,u=t.c,o=t.d,c=t.e;return C(H,1,a,u,o,c)}else{var s=t;return s}}),ho=$(function(r,n){var e=n;return m(bo,r,0,e)}),mo=function(r){return m(Ar,ho,vo,r)},ot=function(r){var n=Xa(mo(i(so,Ye,i(sr,function(t){return t.bB},r.b$)))),e=i(sr,function(t){return Vr({aP:"subscribe",bc:T(t),bd:p,bk:p})},n);return G(e)},po=$(function(r,n){var e=W(n,{b$:r}),t=ot(e);return d(e,t)}),go=$(function(r,n){return i(sr,tt,i(et,function(e){var t=e.a;return!X(t,r)},i(_r,$(function(e,t){return d(e,t)}),n)))}),Do=$(function(r,n){var e=i(Wn,function(u){return u.bB},i(Xn,n,r.b$)),t=i(go,n,r.b$),a=i(ut,e,t);return d(W(r,{b$:t}),a)}),mr=wn("saveTilesToLocalStorage",N),So=g(function(r,n,e){return i(_r,$(function(t,a){return X(t,r)?W(a,{bB:T(n.b1)}):a}),e)}),jo=function(r){return Vr({aP:"subscribe",bc:T(r.b1),bd:p,bk:p})},To=g(function(r,n,e){var t=i(hn,e.b1,r.b$)?F:jo(e),a=i(Wn,function(c){return c.bB},i(Xn,n,r.b$)),u=m(So,n,e,r.b$),o=(function(){if(a.$)return F;var c=a.a;return X(c,e.b1)||i(hn,c,u)?F:at(c)})();return d(W(r,{b$:u}),G(l([o,t])))}),Ao=$(function(r,n){return d(W(r,{b$:i(_r,$(function(e,t){return W(t,{bX:X(e,n)?t.bX?0:1:t.bX})}),r.b$)}),F)}),pr=$(function(r,n){switch(r.$){case 1:var e=Ku(n),f=e.a,v=e.b,_=mr(hr(f.b$));return d(f,G(l([v,_])));case 2:var c=r.a,t=i(Do,n,c),f=t.a,v=t.b,_=mr(hr(f.b$));return d(f,G(l([v,_])));case 3:var c=r.a,a=i(Ao,n,c),f=a.a,v=a.b,_=mr(hr(f.b$));return d(f,G(l([v,_])));case 4:var c=r.a,u=r.b,o=m(To,n,c,u),f=o.a,v=o.b,_=mr(hr(f.b$));return d(f,G(l([v,_])));case 5:var c=r.a,s=i(no,n,c),f=s.a,v=s.b,_=mr(hr(f.b$));return d(f,G(l([v,_])));case 7:var h=r.a,b=oo(h);if(b.$)return d(n,F);var S=b.a,j=i(po,S,n),f=j.a,v=j.b,_=mr(hr(f.b$));return d(f,G(l([v,_])));default:return d(n,F)}}),Jo=$(function(r,n){switch(r.$){case 0:return d(n,F);case 1:return i(pr,r,n);case 2:return i(pr,r,n);case 3:return i(pr,r,n);case 4:return i(pr,r,n);case 5:return i(pr,r,n);case 7:return i(pr,r,n);case 8:return d(n,G(l([Vr({aP:"list_sources",bc:p,bd:p,bk:p}),ot(n)])));default:var e=r.a;return i(Yu,n,e)}}),In=$(function(r,n){return i(Ce,r,N(n))}),E=In("className"),A=vr("div"),wo={$:1},Co=function(r){return{$:0,a:r}},Po=we,Mo=$(function(r,n){return i(Po,r,Co(n))}),Br=function(r){return i(Mo,"click",y(r))},Eo=sn,P=Eo,Fo=function(r){return i(A,l([E("options-add"),Br(wo)]),l([P("add")]))},Bo=In("alt"),_e=Se,Lo=vr("img"),be=vr("span"),Vo=function(r){return i(In,"src",Da(r))},Oo=function(r){return i(A,l([E("scarcity-card")]),l([i(A,l([E("scarcity-header")]),l([i(be,l([E("scarcity-id")]),l([P("#"+Dr(r.aG))])),i(be,l([E("scarcity-status"),E("status-"+r.ak)]),l([P(r.ak)]))])),i(A,l([E("scarcity-address")]),l([P(r.ap)])),i(A,l([E("scarcity-location")]),l([P("Lat: "+(_e(r.aL)+(", Long: "+_e(r.aN))))])),i(A,l([E("scarcity-description")]),l([P(r.av)])),(function(){var n=r.aO;if(n.$)return P("");var e=n.a;return i(A,l([E("scarcity-media")]),l([i(Lo,l([Vo(e),Bo("Scarcity image")]),D)]))})()]))},Ro=gn(function(r,n,e,t,a,u,o){return{ap:e,av:t,aG:r,aL:a,aN:u,aO:o,ak:n}}),he=Lt,Uo=It,ko=function(r){return zn(l([i(dr,T,r),y(p)]))},Ho=De(Uo,Ro,i(U,"id",Gr),i(U,"status_code",O),i(U,"address",O),i(U,"description",O),i(U,"latitude",he),i(U,"longitude",he),ko(i(U,"media_url",O))),qo=function(r){var n=i(Fr,Ho,r);if(n.$)return i(A,l([E("error")]),l([P("Failed to decode scarcity data")]));var e=n.a;return Oo(e)},zo=g(function(r,n,e){return{aR:n,a1:r,bb:e}}),Wo=Xt,me=M(Wo,zo,i(U,"raw_value",Gr),i(U,"moisture_percent",Gr),i(U,"status",O)),Xo=function(r){var n=i(Fr,me,r);if(n.$){var t=i(Fr,i(U,"soil",me),r);if(t.$)return p;var e=t.a;return T(e)}else{var e=n.a;return T(e)}},Io=function(r){return i(A,D,l([i(A,D,l([P("Moisture: "+(Dr(r.aR)+"%"))])),i(A,D,l([P("Status: "+r.bb)])),i(A,D,l([P("Raw: "+Dr(r.a1))]))]))},pe=function(r){if(r.$)return i(A,D,l([P("No data")]));var n=r.a,e=Xo(n);if(e.$)return i(A,D,l([P("Raw: "),P(n)]));var t=e.a;return Io(t)},Qo=function(r){return i(A,l([E("tile-content")]),l([(function(){var n=r.bB;r:for(;;){if(n.$)break r;switch(n.a){case"device_soil":return pe(r.bA);case"soil_sensor":return pe(r.bA);case"scarcities":return qo(i(Sr,"",r.bA));default:break r}}return P(i(Sr,"no data",r.bA))})()]))},Go=function(r){return{$:2,a:r}},Yo=function(r){return{$:3,a:r}},Zo=$(function(r,n){return{$:4,a:r,b:n}}),it=vr("option"),Ko=Sn,yo=$(function(r,n){return i(Ce,r,Ko(n))}),ct=yo("selected"),No=g(function(r,n,e){return i(it,l([Br(i(Zo,r,e)),ct(X(n.bB,T(e.b1)))]),l([P(e.b1)]))}),xo=function(r){return{$:5,a:r}},ri=$(function(r,n){return i(it,l([Br(xo(r)),ct(X(n.bB,p))]),l([P("-- deselect --")]))}),ni=vr("select"),ei=g(function(r,n,e){return i(A,l([E("tile-options")]),l([i(A,l([Br(Go(r))]),l([P("X")])),i(A,l([Br(Yo(r))]),l([P("_")])),i(ni,D,i(L,i(ri,r,e),i(sr,i(No,r,e),n)))]))}),ti=function(r){return"tile "+(r.bX?"tile-size-xl":"tile-size-l")},ai=g(function(r,n,e){return i(A,l([E(ti(e))]),l([m(ei,n,r,e),Qo(e)]))}),ui=function(r){return i(A,l([E("tile-container")]),i(_r,ai(r.bC),r.b$))},oi=function(r){return i(A,l([E("page-options")]),l([ui(r),Fo()]))},ii=Pu({bJ:function(r){return d(Fu,Eu)},b_:Hu,b7:Jo,b8:oi});const ci={Main:{init:ii(y({}))(0)}};class $i{socket=null;messageQueue=[];isConnecting=!1;callbacks={};statusChangeCallbacks=[];reconnectTimeout=null;reconnectDelay=1e3;maxReconnectDelay=3e4;reconnectUrl=null;connect(n){console.log("connecting to websocket server"),!(this.isConnecting||this.socket)&&(this.reconnectUrl=n,this.isConnecting=!0,this.socket=new WebSocket(n),this.socket.onopen=()=>{for(console.log("WebSocket connection established"),this.callbacks.onConnect?.(),this.isConnecting=!1,this.reconnectDelay=1e3,this.cancelReconnect(),this.notifyStatusChange();this.messageQueue.length>0;){const e=this.messageQueue.shift();e&&this.socket?.readyState===WebSocket.OPEN&&this.socket.send(JSON.stringify(e))}},this.socket.onmessage=e=>{this.callbacks.onMessage?.(e.data)},this.socket.onclose=()=>{console.log("WebSocket connection closed"),this.socket=null,this.isConnecting=!1,this.callbacks.onDisconnect?.(),this.notifyStatusChange(),this.scheduleReconnect()},this.socket.onerror=e=>{console.error("WebSocket error:",e),this.socket=null,this.isConnecting=!1,this.callbacks.onError?.(e),this.notifyStatusChange(),this.scheduleReconnect()})}scheduleReconnect(){this.reconnectTimeout&&clearTimeout(this.reconnectTimeout),this.reconnectUrl&&(console.log(`Scheduling reconnect in ${this.reconnectDelay}ms`),this.reconnectTimeout=setTimeout(()=>{console.log("Attempting to reconnect..."),this.connect(this.reconnectUrl),this.reconnectDelay=Math.min(this.reconnectDelay*2,this.maxReconnectDelay)},this.reconnectDelay))}cancelReconnect(){this.reconnectTimeout&&(clearTimeout(this.reconnectTimeout),this.reconnectTimeout=null)}sendMessage(n){if(this.socket&&this.socket.readyState===WebSocket.OPEN){console.log("sending message",n),this.socket.send(JSON.stringify(n));return}this.messageQueue.push(n),console.log("pushed to messageQueue",this.messageQueue),!this.isConnecting&&!this.socket&&this.connect("ws://localhost:8084")}getWebSocket(){return this.socket}getConnectionStatus(){return{connected:this.socket?.readyState===WebSocket.OPEN,connecting:this.isConnecting,queuedMessages:this.messageQueue.length}}registerCallbacks(n){this.callbacks={...this.callbacks,...n}}onStatusChange(n){this.statusChangeCallbacks.push(n),n(this.getConnectionStatus())}notifyStatusChange(){const n=this.getConnectionStatus();this.statusChangeCallbacks.forEach(e=>e(n))}}const Or=new $i,nr=ci.Main.init({node:document.getElementById("elm-app"),flags:{}});console.log(nr);Or.registerCallbacks({onConnect:()=>{console.log("Connected!"),nr.ports.messageReceiver.send(JSON.stringify({messageType:"connectedStatus",value:"connected"}))},onDisconnect:()=>{console.log("Disconnected!"),nr.ports.messageReceiver.send(JSON.stringify({messageType:"connectedStatus",value:"disconnected"}))},onError:r=>console.error("Error:",r),onMessage:r=>{console.log("received message",r),nr.ports.messageReceiver.send(r)}});Or.onStatusChange(r=>{console.log("Status:",r.connected,r.connecting,r.queuedMessages)});Or.connect("ws://localhost:8084");Or.registerCallbacks({onConnect:()=>{console.log("WebSocket connected - triggering reconnect in Elm"),nr.ports.reconnectTriggered.send(null)}});nr.ports.sendMessage.subscribe(function(r){console.log("sendMessage from elm",r),Or.sendMessage(r)});nr.ports.getTilesFromLocalStorage.subscribe(()=>{const r=localStorage.getItem("tiles");nr.ports.tilesLoaded.send(r||"[]")});nr.ports.saveTilesToLocalStorage.subscribe(r=>{localStorage.setItem("tiles",r)});