@erhan/utopyatv 0.1.11 → 0.1.13

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,15 +0,0 @@
1
- (function(){var e=document.createElement(`style`);e.textContent=`:root{--bg:#070c18;--bg-top:#0d1830;--surface:#111c33;--surface-variant:#1a2947;--on-bg:#e8edf5;--on-surface-variant:#a3b1c9;--accent:#4fc3f7;--accent-rgb:79, 195, 247;--live:#e53935;--error:#ff6b6b;--glass:rgba(17,28,51,.72)}html{font-size:1.04167vw;font-size:min(1.04167vw,1.85185vh)}html,body{height:100%;color:var(--on-bg);-webkit-font-smoothing:antialiased;background:0 0;margin:0;font-family:SamsungOne,Tizen Sans,Roboto,Helvetica Neue,Arial,sans-serif;overflow:hidden}*{box-sizing:border-box}::-webkit-scrollbar{display:none}button{font:inherit;color:inherit;cursor:pointer;background:0 0;border:0;padding:0}[data-focus]:focus{outline:none}h1,h2,p{margin:0}.muted{color:var(--on-surface-variant)}.row{align-items:center;display:flex}.row>*+*{margin-left:1.2rem}.app{z-index:1;flex-direction:column;display:flex;position:absolute;top:0;bottom:0;left:0;right:0}#video{position:absolute;top:0;bottom:0;left:0;right:0}.backdrop{z-index:-1;background:radial-gradient(circle at 10% 0, rgba(var(--accent-rgb), .13), transparent 55vw), radial-gradient(circle at 100% 100%, rgba(124,77,255,.1), transparent 50vw), linear-gradient(var(--bg-top), var(--bg));background-size:100vw 100vh;position:absolute;transform:translateZ(0)}.glass{background:var(--glass);border:.1rem solid rgba(255,255,255,.06);border-radius:2rem}.icon{width:2.2rem;height:2.2rem;display:block}.topbar{flex:none;align-items:center;margin:1.8rem 4.8rem 0;padding:.8rem 1.6rem;display:flex}.brand{background:linear-gradient(90deg, #fff, var(--accent));-webkit-text-fill-color:transparent;-webkit-background-clip:text;flex:1;font-size:2.2rem;font-weight:900}.pills{align-items:center;display:flex}.pill{color:var(--on-surface-variant);white-space:nowrap;border:.1rem solid transparent;border-radius:10rem;margin-left:.2rem;padding:.7rem 1.2rem;font-size:1.6rem;font-weight:500}.pill.icon-only{padding:.6rem 1rem}.pill.selected{background:rgba(var(--accent-rgb), .18);border-color:rgba(var(--accent-rgb), .5);color:var(--accent)}.pill:focus{background:var(--on-bg);color:var(--surface)}.content{flex:1;min-height:0;padding:2.4rem 4.8rem 2.7rem;overflow:auto}.placeholder h1{margin-bottom:1rem;font-size:3.4rem;font-weight:700}.placeholder p{font-size:1.8rem}.scrim{background:rgba(0,0,0,.6);justify-content:center;align-items:center;display:flex;position:fixed;top:0;bottom:0;left:0;right:0}.dialog{background:var(--surface);width:48rem;padding:2.8rem 3.2rem}.dialog h2{margin-bottom:1rem;font-size:2.4rem}.dialog p{color:var(--on-surface-variant);margin-bottom:2.4rem;font-size:1.8rem}.btn{background:var(--surface-variant);border-radius:10rem;padding:.9rem 2.2rem;font-size:1.6rem;font-weight:500}.btn:focus{background:var(--on-bg);color:var(--surface)}.btn{align-items:center;display:inline-flex}.btn .icon{width:2rem;height:2rem;margin-right:.8rem}.btn.primary{background:var(--accent);color:#00121c}.btn.outline{background:0 0;border:.1rem solid rgba(255,255,255,.25)}.btn:focus,.btn.primary:focus,.btn.outline:focus{background:var(--on-bg);color:var(--surface);border-color:var(--on-bg)}.chip{border:.1rem solid rgba(255,255,255,.2);border-radius:10rem;padding:.6rem 1.6rem;font-size:1.5rem}.chip.selected{background:rgba(var(--accent-rgb), .18);border-color:var(--accent);color:var(--accent)}.chip:focus{background:var(--on-bg);color:var(--surface)}.field{margin-bottom:1.4rem;display:block}.field-label{color:var(--on-surface-variant);margin-bottom:.6rem;font-size:1.4rem;display:block}.field-box{background:var(--surface-variant);border:.2rem solid transparent;border-radius:1.2rem}.field-box:focus{border-color:var(--accent)}.field-box input:focus{background:rgba(var(--accent-rgb), .12)}.field-box input{width:100%;color:var(--on-bg);font:inherit;background:0 0;border:0;border-radius:1rem;outline:none;padding:1rem 1.4rem;font-size:1.7rem;display:block}.field-box input::-webkit-input-placeholder{color:rgba(163,177,201,.6)}.field-pair{display:flex}.field-pair>.field{flex:1}.field-pair>.field+.field{margin-left:1.6rem}.error-box{background:rgba(255,82,82,.2);border-radius:1.2rem;margin-bottom:1.4rem;padding:1.6rem;font-size:1.7rem}.error-text{color:var(--error);font-size:2.2rem}.onboarding{flex-direction:column;flex:1;min-height:0;padding:2.7rem 4.8rem;display:flex}.center-msg{margin:auto;font-size:2.2rem}.onb-choose{flex:1;align-items:center;display:flex}.onb-brand{flex:.9;margin-right:5.6rem}.brand-mark{background:linear-gradient(135deg, var(--accent), #0288d1);color:#fff;border-radius:1.8rem;justify-content:center;align-items:center;width:7.2rem;height:7.2rem;display:flex}.brand-mark .icon{width:4.3rem;height:4.3rem}.onb-brand h1{margin-top:2.4rem;font-size:4.8rem;font-weight:900}.tagline{margin-top:.8rem;font-size:2.2rem}.features{margin:3.6rem 0 0;padding:0;list-style:none}.features li{align-items:center;margin-bottom:1.6rem;font-size:1.8rem;display:flex}.feature-icon{background:rgba(var(--accent-rgb), .14);width:4rem;height:4rem;color:var(--accent);border-radius:50%;flex:none;justify-content:center;align-items:center;margin-right:1.6rem;display:flex}.note{margin-top:2rem;font-size:1.4rem}.onb-options{flex:1.1;max-height:100%;margin:-1.2rem -1.6rem;padding:1.2rem 1.6rem;overflow:auto}.onb-options h2{margin:0 0 .6rem .4rem;font-size:2.2rem;font-weight:600}.option{text-align:left;background:rgba(17,28,51,.75);border:.2rem solid transparent;border-radius:1.6rem;align-items:center;width:100%;margin-top:.8rem;padding:.9rem 1.8rem;transition:transform .12s ease-out;display:flex}.option:focus{background:var(--surface-variant);border-color:var(--accent);transform:scale(1.03)}.option-icon{border-radius:1.2rem;flex:none;justify-content:center;align-items:center;width:4.4rem;height:4.4rem;display:flex}.option-icon .icon{width:2.6rem;height:2.6rem}.option-text{flex:1;min-width:0;margin-left:1.6rem;font-size:1.4rem}.option-text>span{display:block}.option-title{margin-bottom:.2rem;font-size:1.8rem;font-weight:500}.badge{border-radius:10rem;margin-left:1rem;padding:.2rem 1rem;font-size:1.2rem}.step-header{flex:none;align-items:center;display:flex}.step-header>div{margin-left:2.4rem}.step-header h1{font-size:2.8rem;font-weight:600}.step-header p{font-size:1.6rem}.form-step{flex-direction:column;flex:1;min-height:0;display:flex}.form-row{flex:1;min-height:0;margin-top:2rem;display:flex}.form-panel{flex:1;padding:2.2rem 2.8rem;overflow:auto}.form-panel h3{margin:0 0 1rem;font-size:1.6rem;font-weight:500}.connect{margin:.4rem 0 1.8rem}.file-chosen{margin-bottom:1.4rem;font-size:1.7rem}.form-side{flex:none;width:34rem;margin-left:2.8rem}.usb-list{flex:1;margin-top:2rem;padding:1.6rem 2.2rem;font-size:1.7rem;overflow:auto}.sync-step{text-align:center;margin:auto}.sync-step h1{margin-bottom:2.4rem;font-size:2.8rem;font-weight:600}.sync-step .stage{font-size:2.2rem}.sync-step .row{justify-content:center;margin-top:2.4rem}.sync-step>.btn{margin-top:3.2rem}.indeterminate{background:var(--surface-variant);border-radius:.3rem;width:48rem;height:.6rem;margin:2rem auto 0;overflow:hidden}.indeterminate span{background:var(--accent);width:40%;height:100%;animation:1.2s ease-in-out infinite indeterminate;display:block}@keyframes indeterminate{0%{transform:translate(-100%)}to{transform:translate(250%)}}.focus-row{text-align:left;border:.3rem solid transparent;border-radius:1rem;align-items:center;width:100%;padding:.8rem 1.2rem;transition:transform .1s ease-out;display:flex}.focus-row>*+*{margin-left:1rem}.focus-row.idle{background:rgba(26,41,71,.45)}.focus-row.selected{background:var(--surface-variant)}.focus-row:focus{background:var(--surface-variant);border-color:var(--accent);transform:scale(1.03)}.channel-logo{background:rgba(255,255,255,.13);border-radius:.6rem;flex:none;justify-content:center;align-items:center;padding:.3rem;display:inline-flex;overflow:hidden}.channel-logo img{max-width:100%;max-height:100%}.marquee{white-space:nowrap;text-overflow:ellipsis;min-width:0;display:block;overflow:hidden}.marquee>span.run{animation:linear infinite alternate marquee;display:inline-block}@keyframes marquee{0%,15%{transform:translate(0)}85%,to{transform:translateX(var(--marquee))}}.fav-star{color:#ffb74d;flex:none;width:1.4rem;height:1.4rem;margin-left:.6rem}.fav-star.big{width:2.2rem;height:2.2rem}.content.live-content{padding-top:2.4rem}.live-screen{height:100%;display:flex}.live-screen>*+*{margin-left:1.2rem}.live-cats{flex-direction:column;flex:none;width:19rem;padding:1rem;display:flex}.live-cats.wide{width:27rem}.group-mode{text-align:left;border:.2rem solid transparent;border-radius:1rem;flex:none;justify-content:space-between;align-items:center;margin-bottom:.8rem;padding:.6rem .8rem;display:flex}.group-mode:focus{background:var(--surface-variant);border-color:var(--accent)}.group-mode>span>span{display:block}.gm-title{font-size:1.8rem;font-weight:500}.gm-value{color:var(--accent);white-space:nowrap;font-size:1.4rem}.cat-list{flex:1;min-height:0;margin:-.6rem -1rem;padding:.6rem 1rem;overflow:auto}.cat-row{margin-bottom:.4rem;font-size:1.6rem;font-weight:500}.cat-row.selected .cat-name{color:var(--accent)}.cat-name{white-space:nowrap;text-overflow:ellipsis;flex:1;min-width:0;overflow:hidden}.cat-icon{flex:none;width:1.6rem;height:1.6rem}.platform-badge{flex:none;align-items:center;width:5.4rem;height:1.8rem;display:inline-flex}.platform-badge img{max-width:100%;max-height:100%}.platform-badge b{white-space:nowrap;font-size:1.2rem}.tint-white{filter:brightness(0)invert()}.live-channels{flex-direction:column;flex:1;min-width:0;padding:1rem;display:flex}.panel-title{padding:.4rem .8rem 1rem}.panel-title h2{font-size:1.8rem;font-weight:500}.panel-title span{font-size:1.4rem}.empty{margin:auto;font-size:1.8rem}.channel-list{flex:1;min-height:0;margin:0 -1.2rem;padding:0 1.2rem;position:relative;overflow:hidden}.channel-list-inner{position:relative}.channel-row{height:6.8rem;position:absolute;left:0;right:0}.channel-row.compact{height:5.6rem}.ch-number{width:4.4rem;color:var(--on-surface-variant);flex:none;font-size:1.6rem;font-weight:500}.channel-row.compact .ch-number{width:4rem}.channel-row.selected .ch-number{color:var(--accent)}.ch-logo-box{background:rgba(255,255,255,.07);border-radius:1rem;flex:none;justify-content:center;align-items:center;width:6.4rem;height:4.8rem;display:flex}.ch-text{flex:1;min-width:0}.ch-name{align-items:center;font-size:1.6rem;font-weight:500;display:flex}.live-preview{background:0 0;flex:none;width:30rem;padding:1.4rem;position:relative;overflow:hidden}.preview-label{color:var(--accent);margin-bottom:1rem;font-size:1.6rem;font-weight:500;display:block}.preview-box{height:15.19rem;box-shadow:0 0 0 100rem var(--glass);background:#000;border-radius:1.2rem;justify-content:center;align-items:center;display:flex}.preview-box.hole{background:0 0}.preview-name{margin-top:1.4rem;margin-bottom:1rem;font-size:2.2rem;font-weight:600}.live-preview p{font-size:1.4rem}.toast{z-index:50;background:rgba(8,11,16,.9);border-radius:2.4rem;padding:1rem 2.2rem;font-size:1.6rem;font-weight:500;position:fixed;top:4rem;left:50%;transform:translate(-50%)}.menu-dialog{background:var(--surface);border-radius:1.6rem;width:52rem;padding:2.4rem}.menu-dialog h2{margin-bottom:1.4rem;font-size:2.4rem;font-weight:600}.menu-list{max-height:48rem;margin:-.4rem -1.2rem;padding:.4rem 1.2rem;overflow:auto}.menu-item{text-align:left;border:.3rem solid transparent;border-radius:1rem;justify-content:space-between;align-items:center;width:100%;margin-bottom:.4rem;padding:1rem 1.2rem;font-size:1.8rem;font-weight:500;transition:transform .1s ease-out;display:flex}.menu-item:focus{background:var(--surface-variant);border-color:var(--accent);transform:scale(1.03)}.menu-item .icon{color:var(--accent)}.number-box{color:var(--accent);z-index:40;background:rgba(0,0,0,.8);border-radius:1.2rem;padding:1.4rem 2.8rem;font-size:3.4rem;font-weight:700;position:fixed;top:4rem;right:4.8rem}.player{position:absolute;top:0;bottom:0;left:0;right:0}.player-center{flex-direction:column;justify-content:center;align-items:center;display:flex;position:absolute;top:0;bottom:0;left:0;right:0}.spinner{border:.5rem solid transparent;border-top-color:var(--accent);border-right-color:var(--accent);border-bottom-color:var(--accent);border-radius:50%;width:5.6rem;height:5.6rem;animation:.9s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.retry-label{background:rgba(8,11,16,.9);border-radius:.8rem;margin-top:1.2rem;padding:.4rem 1rem;font-size:1.6rem}.paused-icon{width:7.2rem;height:7.2rem}.error-card{text-align:center;background:rgba(8,11,16,.9);border-radius:1.6rem;width:56rem;padding:2.8rem}.error-card .error-icon{width:4.8rem;height:4.8rem;color:var(--error);margin:0 auto 1.2rem}.error-card p{margin-bottom:2rem;font-size:1.8rem;font-weight:500}.error-card .row{justify-content:center}.error-card .error-detail{color:var(--on-surface-variant);margin-top:-1.2rem;font-size:1.2rem;font-weight:400}.info-band{background:linear-gradient(transparent,rgba(5,8,12,.8) 40%,rgba(5,8,12,.95));padding:5.6rem 4.8rem 2.7rem;animation:.2s ease-out band-in;position:absolute;bottom:0;left:0;right:0}@keyframes band-in{0%{opacity:0;transform:translateY(33%)}to{opacity:1;transform:none}}.band-row{align-items:flex-start;display:flex}.band-left{flex-direction:column;flex:none;align-items:flex-start;display:flex}.band-number{color:var(--accent);margin-bottom:.6rem;font-size:3.4rem;font-weight:700}.band-mid{flex:1;min-width:0;margin-left:2.4rem}.band-title{align-items:center;display:flex}.band-title>*+*{margin-left:1rem}.band-name{white-space:nowrap;text-overflow:ellipsis;min-width:0;font-size:2.8rem;font-weight:600;overflow:hidden}.badge-sm{background:rgba(255,255,255,.2);border-radius:.6rem;flex:none;padding:.2rem .8rem;font-size:1.4rem}.badge-sm.live{background:var(--live)}.band-program{margin-top:.8rem;font-size:1.8rem}.band-hint{color:rgba(255,255,255,.6);margin-top:1rem;font-size:1.2rem}.band-clock{flex:none;margin-left:2.4rem;font-size:2.2rem;font-weight:600}.control-bar{justify-content:center;margin-top:2rem;display:flex}.cb-item{flex-direction:column;align-items:center;width:7.6rem;margin:0 .7rem;display:flex}.cb-btn{background:rgba(255,255,255,.14);border-radius:50%;justify-content:center;align-items:center;width:5.6rem;height:5.6rem;transition:transform .1s ease-out;display:flex}.cb-btn .icon{width:2.6rem;height:2.6rem}.cb-btn.active{background:rgba(var(--accent-rgb), .35)}.cb-btn:focus{color:#000;background:#fff;transform:scale(1.12)}.cb-label{color:rgba(255,255,255,.87);text-align:center;white-space:nowrap;margin-top:.6rem;font-size:1.4rem}.list-overlay{background:linear-gradient(90deg,rgba(8,11,16,.9),rgba(8,11,16,.9) 88%,transparent);flex-direction:column;width:48rem;padding:2.7rem 6.4rem 2.7rem 4.8rem;animation:.2s ease-out slide-left;display:flex;position:absolute;top:0;bottom:0;left:0}.list-overlay h2{margin-bottom:1rem;font-size:1.8rem;font-weight:500}@keyframes slide-left{0%{opacity:0;transform:translate(-25%)}to{opacity:1;transform:none}}.options-panel{background:linear-gradient(270deg,rgba(8,11,16,.9),rgba(8,11,16,.9) 88%,transparent);width:42rem;padding:4rem 4.8rem 4rem 5.6rem;animation:.2s ease-out slide-right;position:absolute;top:0;bottom:0;right:0;overflow:auto}@keyframes slide-right{0%{opacity:0;transform:translate(25%)}to{opacity:1;transform:none}}.options-panel h2{margin-bottom:1.6rem;font-size:2.4rem;font-weight:600}.opt-row{justify-content:space-between;margin-bottom:.4rem}.opt-text{flex:1;min-width:0}.opt-text>span{display:block}.opt-label{font-size:1.6rem;font-weight:500}.opt-value{color:var(--accent);font-size:1.4rem}.progress-line{background:rgba(255,255,255,.27);border-radius:.2rem;height:.4rem;display:block;overflow:hidden}.progress-line>span{background:var(--accent);height:100%;display:block}.ch-program{color:var(--on-surface-variant);white-space:nowrap;text-overflow:ellipsis;font-size:1.4rem;display:block;overflow:hidden}.ch-progress{width:60%;margin-top:.3rem}.program-block{margin-bottom:1.2rem}.program-block>span{display:block}.pb-label{color:var(--accent);font-size:1.4rem}.pb-title{-webkit-line-clamp:2;-webkit-box-orient:vertical;font-size:1.6rem;font-weight:500;display:-webkit-box;overflow:hidden}.pb-progress{margin:.4rem 0}.pb-desc{color:var(--on-surface-variant);-webkit-line-clamp:4;-webkit-box-orient:vertical;font-size:1.4rem;display:-webkit-box;overflow:hidden}.band-time{color:var(--accent);margin-right:1.2rem;font-size:1.6rem;font-weight:500}.band-progress{align-items:center;margin-top:.6rem;display:flex}.band-progress .progress-line{flex:1}.band-progress>span:last-child{margin-left:1.2rem;font-size:1.4rem}.band-next{margin-top:.6rem;font-size:1.6rem}.guide{flex-direction:column;height:100%;display:flex}.guide-head{flex:none;justify-content:space-between;align-items:center;padding-bottom:1rem;display:flex}.guide-head h1{font-size:2.2rem;font-weight:600}.guide-head .row>*+*{margin-left:1rem}.guide-hint{color:var(--on-surface-variant);flex:none;margin-top:.6rem;font-size:1.2rem}.epg-grid{--epg-ch:19.4rem;flex-direction:column;flex:1;min-height:0;display:flex}.epg-header{height:3.2rem;margin-left:var(--epg-ch);flex:none;position:relative}.epg-header span{color:var(--on-surface-variant);padding-left:.6rem;font-size:1.6rem;font-weight:500;position:absolute;top:.6rem}.epg-body{flex:1;min-height:0;position:relative;overflow:hidden}.epg-row{margin-top:.2rem;display:flex;position:absolute;left:0;right:0}.epg-channel{background:var(--surface);text-align:left;border:.2rem solid transparent;border-radius:.8rem;flex:none;align-items:center;width:19rem;margin-right:.4rem;padding:0 .8rem;display:flex}.epg-channel:focus{background:var(--surface-variant);border-color:var(--accent)}.epg-num{width:3.6rem;color:var(--on-surface-variant);flex:none;font-size:1.4rem}.epg-chname{-webkit-line-clamp:2;-webkit-box-orient:vertical;flex:1;min-width:0;padding-left:.8rem;font-size:1.6rem;display:-webkit-box;overflow:hidden}.epg-programs{flex:1;position:relative}.epg-cell{background:var(--surface);text-align:left;background-clip:padding-box;border:.2rem solid transparent;border-right-width:.5rem;border-radius:.8rem;padding:.4rem .8rem;position:absolute;top:0;bottom:0;overflow:hidden}.epg-cell.live{background-color:#1e3446}.epg-cell:focus{background-color:var(--accent);color:#00121c;border-color:var(--accent)}.epg-title{white-space:nowrap;text-overflow:ellipsis;font-size:1.6rem;display:block;overflow:hidden}.epg-time{opacity:.8;font-size:1.2rem;display:block}.epg-now{background:var(--live);pointer-events:none;width:.2rem;position:absolute;top:0;bottom:0}.guide-overlay{background:linear-gradient(transparent,rgba(5,8,12,.85) 8%,rgba(5,8,12,.95));flex-direction:column;height:62%;padding:3.6rem 4.8rem 2rem;animation:.2s ease-out band-in;display:flex;position:absolute;bottom:0;left:0;right:0}.epg-grid.translucent .epg-channel,.epg-grid.translucent .epg-cell{background-color:rgba(21,27,35,.6)}.epg-grid.translucent .epg-cell.live{background-color:rgba(30,52,70,.75)}.epg-grid.translucent .epg-cell:focus{background-color:var(--accent)}.program-dialog{background:var(--surface);border-radius:1.6rem;width:64rem;padding:2.4rem}.program-dialog h2{font-size:2.4rem;font-weight:600}.pd-meta{color:var(--accent);margin-top:.6rem;font-size:1.6rem;font-weight:500}.pd-cat{color:var(--on-surface-variant);font-size:1.4rem}.pd-desc{max-height:22rem;margin-top:1.2rem;font-size:1.8rem;overflow:auto}.pd-buttons{flex-wrap:wrap;margin-top:2rem}.page{position:absolute;top:0;bottom:0;left:0;right:0}.vod-home>.shelf+.shelf{margin-top:2rem}.shelf-title{align-items:center;padding:0 0 .2rem 1.6rem;font-size:2.2rem;font-weight:600;display:flex}.shelf-all{color:var(--on-surface-variant);white-space:pre;background:0 0;border-radius:99rem;margin-left:1rem;padding:.4rem 1.2rem;font-size:1.3rem;font-weight:500}.shelf-all:focus{background:var(--on-bg);color:var(--surface)}.shelf-logo{align-items:center;width:7.8rem;height:2.6rem;margin-right:1rem;display:inline-flex}.shelf-logo img,.shelf-logo b{max-width:100%;max-height:100%}.shelf-row{padding:1.2rem 1.6rem;display:flex;position:relative;overflow:hidden}.shelf-row>*{flex:none}.shelf-row>*+*{margin-left:1.6rem}.poster-card{background:var(--surface-variant);text-align:left;border:.1rem solid rgba(255,255,255,.08);border-radius:1.4rem;width:13rem;height:19.5rem;transition:transform .12s ease-out;position:relative;overflow:hidden}.poster-card:focus{border:.3rem solid var(--accent);transform:scale(1.08)}.poster-card img{object-fit:cover;width:100%;height:100%;position:absolute;top:0;left:0}.poster-progress{background:rgba(255,255,255,.27);height:.4rem;position:absolute;bottom:0;left:0;right:0}.poster-progress>span{background:var(--accent);height:100%;display:block}.genre-chip{align-self:center}.platform-tile{background:#000;border:.3rem solid transparent;border-radius:1.2rem;width:26rem;height:14.6rem;transition:transform .12s ease-out;position:relative;overflow:hidden}.shelf-row>.platform-tile+.platform-tile{margin-left:1.8rem}.platform-tile:focus{border-color:#fff;transform:scale(1.08)}.pt-collage{display:flex;position:absolute;top:0;bottom:0;left:0;right:0}.pt-collage img{object-fit:cover;flex:1;min-width:0;height:100%}.pt-shade,.pt-logo{position:absolute;top:0;bottom:0;left:0;right:0}.pt-logo{justify-content:center;align-items:center;display:flex}.pt-logo img{max-width:18rem;max-height:5.6rem}.pt-logo img.own-color{border-radius:.6rem}.pt-logo b{color:#fff;font-size:2.6rem;font-weight:900}.browse{flex-direction:column;height:100%;padding:2.4rem 4.8rem 2.7rem;display:flex}.browse-logo{align-items:center;width:8.8rem;height:2.4rem;display:inline-flex}.browse-logo img{max-width:100%;max-height:100%}.spacer{flex:1}.browse-grid{flex-wrap:wrap;flex:1;align-content:flex-start;min-height:0;margin:0 -1.2rem;padding:1.2rem;display:flex;overflow:auto}.grid-cell{flex:none;margin:0 1.8rem 1.8rem 0}.browse-grid{margin:0 -1.6rem 0 .2rem}.browse-grid .poster-card.plain{width:var(--cw);height:calc(var(--cw) * 1.5)}.browse-grid .wide-card{width:var(--cw);height:calc(var(--cw) * .5625)}.browse-info{flex:none;padding-left:1.4rem}.detail{position:absolute;top:0;bottom:0;left:0;right:0;overflow:hidden}.detail-backdrop{background:var(--bg);position:absolute;top:0;bottom:0;left:0;right:0}.detail-backdrop img{object-fit:cover;width:100%;height:100%}.detail-backdrop span{position:absolute;top:0;bottom:0;left:0;right:0}.db-h{background:linear-gradient(90deg,rgba(7,12,24,.95),rgba(7,12,24,.75) 40%,rgba(7,12,24,.1))}.db-v{background:linear-gradient(transparent 55%, var(--bg))}.detail-scroll{padding:3.5rem 4.8rem 2.7rem;position:absolute;top:0;bottom:0;left:0;right:0;overflow:auto}.detail-scroll.series{padding:6rem 4.8rem 4rem}.back-btn{margin-bottom:1.6rem}.detail-row{display:flex}.detail-poster{background:var(--surface-variant);border:.1rem solid rgba(255,255,255,.12);border-radius:1.6rem;flex:none;width:22rem;height:33rem;margin-right:3.2rem;overflow:hidden}.detail-poster img{object-fit:cover;width:100%;height:100%}.detail-info{flex:1;min-width:0}.detail-info h1{-webkit-line-clamp:2;-webkit-box-orient:vertical;font-size:3.4rem;font-weight:700;display:-webkit-box;overflow:hidden}.meta-chips{flex-wrap:wrap;margin-top:1.2rem;display:flex}.meta-chip{background:rgba(255,255,255,.1);border-radius:.8rem;margin:0 .8rem .8rem 0;padding:.4rem 1rem;font-size:1.6rem;font-weight:500}.meta-chip.gold{color:#ffc94d;background:rgba(255,201,77,.2)}.detail-plot{-webkit-line-clamp:5;-webkit-box-orient:vertical;margin-top:1.4rem;font-size:1.8rem;display:-webkit-box;overflow:hidden}.detail-credit{color:var(--on-surface-variant);-webkit-line-clamp:2;-webkit-box-orient:vertical;margin-top:.6rem;font-size:1.6rem;display:-webkit-box;overflow:hidden}.detail-actions{flex-wrap:wrap;margin-top:2.2rem;display:flex}.detail-actions>*{margin:0 1.2rem 1.2rem 0}.detail .shelf{margin-top:2.4rem;margin-left:-1.6rem}.season-chips{margin:2.8rem 0 .8rem;display:flex}.season-chips>*+*{margin-left:1rem}.season-gap{height:2.4rem}.episode-list{margin:0 -1rem;padding:0 1rem}.episode-row{margin:.3rem 0}.ep-thumb{background:var(--surface-variant);border-radius:.8rem;flex:none;width:12.8rem;height:7.2rem;position:relative;overflow:hidden}.ep-thumb img{object-fit:cover;width:100%;height:100%}.ep-text{flex:1;min-width:0}.ep-text>span{display:block}.ep-title{white-space:nowrap;text-overflow:ellipsis;font-size:1.6rem;font-weight:500;overflow:hidden}.ep-plot{color:var(--on-surface-variant);-webkit-line-clamp:2;-webkit-box-orient:vertical;font-size:1.4rem;display:-webkit-box;overflow:hidden}.ep-min{flex:none;font-size:1.4rem}.ep-watched{color:var(--accent);flex:none}.vod-top{background:linear-gradient(rgba(5,8,12,.8),transparent);justify-content:space-between;align-items:flex-start;padding:2.7rem 4.8rem 4rem;display:flex;position:absolute;top:0;left:0;right:0}.vod-top h1{font-size:2.8rem;font-weight:600}.vod-top p{color:var(--on-surface-variant);font-size:1.6rem}.vod-bottom{background:linear-gradient(transparent,rgba(5,8,12,.9));padding:4.8rem 4.8rem 2.7rem;position:absolute;bottom:0;left:0;right:0}.vod-bar-row{align-items:center;display:flex}.vod-bar-row>*+*{margin-left:1.4rem}.vod-state{width:3.6rem;height:3.6rem}.vod-time{font-size:1.6rem;font-weight:500}.vod-bar{background:rgba(255,255,255,.27);border-radius:.3rem;flex:1;height:.6rem;position:relative;overflow:hidden}.vod-bar span{position:absolute;top:0;bottom:0;left:0}.vod-buffer{background:rgba(255,255,255,.4)}.vod-played{background:var(--accent)}.vod-bottom .control-bar{margin-top:1.8rem}.episodes-panel{background:linear-gradient(90deg,rgba(8,11,16,.9),rgba(8,11,16,.9) 88%,transparent);width:50rem;padding:2.7rem 6.4rem 2.7rem 4.8rem;animation:.2s ease-out slide-left;position:absolute;top:0;bottom:0;left:0;overflow:auto}.episodes-panel h2{margin-bottom:1.4rem;font-size:2.4rem;font-weight:600}.ep-code{color:var(--accent);flex:none;font-size:1.6rem;font-weight:500}.next-card{background:rgba(8,11,16,.9);border-radius:1.4rem;width:38rem;padding:2rem;position:absolute;bottom:4.8rem;right:4.8rem}.next-when{color:var(--accent);font-size:1.8rem;font-weight:500}.next-title{-webkit-line-clamp:2;-webkit-box-orient:vertical;margin:.6rem 0 1.4rem;font-size:1.8rem;display:-webkit-box;overflow:hidden}.home{flex-direction:column;height:100%;display:flex}.home-head{flex:none;align-items:flex-end;padding:0 1.6rem .4rem;display:flex}.home-head h1{font-size:2.4rem;font-weight:600}.home-head .muted{white-space:pre;padding-bottom:.2rem;font-size:1.6rem;font-weight:500}.home-shelves{flex:1;min-height:0;padding-bottom:4.8rem;overflow:auto}.home-block+.home-block,.home-block>.shelf+.shelf{margin-top:2.2rem}.home-empty{padding:4rem 1.6rem;font-size:1.8rem;font-weight:500}.hero{background:var(--surface-variant);border-radius:2rem;height:30rem;margin:.4rem 1.6rem 0;position:relative;overflow:hidden}.hero>img{object-fit:cover;width:100%;height:100%;position:absolute;top:0;left:0}.hero-shade{background:linear-gradient(90deg,rgba(0,0,0,.92),rgba(0,0,0,.45) 55%,transparent);position:absolute;top:0;bottom:0;left:0;right:0}.hero-content{flex-direction:column;justify-content:center;width:55%;padding:3.2rem;display:flex;position:absolute;top:0;bottom:0;left:0}.hero-label{color:var(--accent);font-size:1.6rem;font-weight:500}.hero h2{-webkit-line-clamp:2;-webkit-box-orient:vertical;margin-top:.4rem;font-size:2.8rem;font-weight:600;display:-webkit-box;overflow:hidden}.hero-meta{color:var(--on-surface-variant);white-space:pre;margin-top:.6rem;font-size:1.6rem;font-weight:500}.hero-plot{-webkit-line-clamp:2;-webkit-box-orient:vertical;margin-top:.8rem;font-size:1.6rem;display:-webkit-box;overflow:hidden}.hero-actions{margin-top:1.6rem}.channel-tile{flex-direction:column;width:18rem;display:flex}.ct-card{background:var(--surface-variant);border:.3rem solid transparent;border-radius:1.4rem;justify-content:center;align-items:center;width:18rem;height:10.1rem;padding:1.4rem;transition:transform .12s ease-out;display:flex}.ct-card:focus{border-color:var(--accent);transform:scale(1.08)}.ct-card .channel-logo{background:0 0}.ct-name-big{text-align:center;-webkit-line-clamp:2;-webkit-box-orient:vertical;font-size:1.6rem;font-weight:500;display:-webkit-box;overflow:hidden}.ct-name,.ct-program{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.ct-name{color:var(--on-surface-variant);margin-top:.6rem;font-size:1.4rem}.ct-program{font-size:1.6rem;font-weight:500}.ct-progress{margin-top:.4rem}.program-tile{background:var(--surface-variant);text-align:left;border:.3rem solid transparent;border-radius:1.4rem;align-items:flex-start;width:28rem;height:12.8rem;padding:1.4rem;transition:transform .12s ease-out;display:flex}.program-tile:focus{border-color:var(--accent);transform:scale(1.06)}.pt-logo-box{flex:none;justify-content:center;align-items:center;width:5.6rem;height:5.6rem;margin-right:1.2rem;display:flex}.pt-text{flex:1;min-width:0}.pt-text>span{display:block}.pt-time{color:var(--accent);font-size:1.6rem;font-weight:500}.pt-badge{background:var(--live);color:#fff;border-radius:.4rem;margin-left:.8rem;padding:.1rem .6rem;font-size:1.2rem}.pt-title{-webkit-line-clamp:2;-webkit-box-orient:vertical;margin-top:.4rem;font-size:1.6rem;font-weight:500;display:-webkit-box;overflow:hidden}.pt-channel{color:var(--on-surface-variant);white-space:nowrap;text-overflow:ellipsis;font-size:1.4rem;overflow:hidden}.pin-dialog{background:var(--surface);text-align:center;border-radius:1.6rem;width:42rem;padding:2.4rem}.pin-dialog h2{font-size:2.2rem;font-weight:600}.pin-dots{letter-spacing:.6rem;margin-top:1.2rem;font-size:3.4rem}.pin-error{color:var(--error);padding:.8rem 0;font-size:1.6rem}.pin-pad{flex-wrap:wrap;justify-content:center;width:24.8rem;margin:0 auto;display:flex}.pin-key{justify-content:center;width:7.2rem;height:5.6rem;margin:.4rem;font-size:2.2rem}.pin-pad .pin-key:last-child{margin-right:8.4rem}.preview-lock{width:4rem;height:4rem}.epg-mapping{height:100%;padding:2.7rem 4.8rem;display:flex}.em-left{flex:none;width:32rem;margin-right:3.2rem}.em-left h1{margin-top:1.2rem;font-size:2.8rem;font-weight:600}.em-channel{color:var(--accent);margin-top:.8rem;font-size:2.2rem;font-weight:600}.em-filter{margin-top:2.4rem}.em-list{flex:1;margin:-.4rem -1.2rem;padding:.4rem 1.2rem;overflow:auto}.em-auto{color:var(--accent);font-size:1.6rem;font-weight:500}.em-id{font-size:1.4rem}.search>*+*{margin-top:1.8rem}.search-row{padding:0 1.6rem}.history-row{align-items:center}.search-empty{padding:0 1.6rem;font-size:1.8rem;font-weight:500}.search-programs{padding:0 1.6rem}.search-programs .shelf-title{margin-bottom:.6rem;padding-left:0}.search-prog{margin-bottom:.4rem}.sp-time{text-align:right;width:18rem;color:var(--on-surface-variant);flex:none;font-size:1.4rem}.sp-time.live{color:var(--accent)}.settings{height:100%;display:flex}.set-sections{flex:none;width:24rem;margin-left:-1rem;margin-right:2.4rem;padding:.4rem 1rem;overflow:auto}.set-section{margin-bottom:.4rem;font-size:1.6rem;font-weight:500}.set-section .icon{flex:none}.set-section.selected .icon{color:var(--accent)}.set-panel{flex:1;min-width:0;padding:2rem 2.8rem;overflow:auto}.set-panel h2{margin-bottom:.8rem;font-size:2.4rem;font-weight:600}.set-row{margin-bottom:.4rem}.set-sub{color:var(--on-surface-variant);-webkit-line-clamp:2;-webkit-box-orient:vertical;font-size:1.4rem;display:-webkit-box;overflow:hidden}.set-value{max-width:40%;color:var(--accent);text-align:right;white-space:nowrap;text-overflow:ellipsis;flex:none;font-size:1.6rem;font-weight:500;overflow:hidden}.set-header{color:var(--on-surface-variant);padding:1.8rem 1.2rem .6rem;font-size:1.6rem;font-weight:500}.set-hint{color:var(--on-surface-variant);padding:1.6rem 1.2rem;font-size:1.6rem}.set-about h3{font-size:2.8rem;font-weight:600}.set-about p{margin-top:.6rem;font-size:1.6rem}.set-version{color:var(--accent)}.set-ua{word-break:break-all;font-size:1.2rem}.dialog p{white-space:pre-line}.pt-badge.reminder{background:var(--accent);color:#000}.subtitle-layer{z-index:5;text-align:center;pointer-events:none;line-height:1.25;position:absolute;bottom:7%;left:8%;right:8%}.subtitle-line{white-space:pre-wrap;text-shadow:-.15rem -.15rem #000,.15rem -.15rem #000,-.15rem .15rem #000,.15rem .15rem #000;margin:0 auto;padding:0 .6rem;display:table}.subtitle-layer.boxed .subtitle-line{text-shadow:none;background:rgba(0,0,0,.7)}.poster-card.plain{border:.2rem solid transparent;border-radius:.6rem;width:11.6rem;height:17.4rem;transition:transform .12s ease-out}.poster-card.plain:focus,.wide-card:focus{border-color:#fff;transform:scale(1.1)}.shelf-info{white-space:nowrap;text-overflow:ellipsis;height:2.8rem;margin:0;padding:.2rem 1.6rem 0;font-size:1.5rem;overflow:hidden}.shelf-info span{white-space:pre;color:rgba(255,255,255,.75)}.wide-card{background:var(--surface-variant);text-align:left;border:.2rem solid transparent;border-radius:.6rem;width:20rem;height:11.25rem;transition:transform .12s ease-out;position:relative;overflow:hidden}.wide-card img{object-fit:cover;width:100%;height:100%;position:absolute;top:0;left:0}.wc-shade{background:linear-gradient(transparent,rgba(0,0,0,.85));height:50%;position:absolute;bottom:0;left:0;right:0}.wc-text{position:absolute;bottom:.9rem;left:1rem;right:1rem}.wc-title{color:#fff;white-space:nowrap;text-overflow:ellipsis;font-size:1.4rem;font-weight:700;display:block;overflow:hidden}.wc-sub{color:rgba(255,255,255,.75);font-size:1.1rem;display:block}.wc-badge{color:#fff;background:#e50914;border-radius:.3rem;padding:.15rem .6rem;font-size:1.1rem;font-weight:700;position:absolute;top:.6rem;right:.6rem}.wc-progress{height:.3rem}.badge-sm.archive{color:#fff;background:#7e57c2}.archive-band .vod-bar-row{margin-top:.8rem}.home-edit{height:100%;padding:2.4rem 4.8rem 4rem;overflow-y:auto}.he-head{justify-content:space-between;align-items:center;display:flex}.he-head h1{font-size:2.8rem;font-weight:600}.he-hint{color:var(--on-surface-variant);margin:.6rem 0 1.4rem;font-size:1.5rem}.he-list{max-width:80rem}.he-row{align-items:center;padding:.3rem .6rem;display:flex}.he-row>.he-main{background:var(--surface);flex:1;font-size:1.8rem}.he-row.moving>.he-main{background:rgba(var(--accent-rgb), .25);border-color:var(--accent)}.he-num{width:3.2rem;color:var(--on-surface-variant)}.he-label{flex:1}.he-moving{background:var(--accent);color:#000;border-radius:.4rem;padding:.2rem .8rem;font-size:1.3rem;font-weight:700}.he-switch{background:var(--surface);min-width:9rem;color:var(--on-surface-variant);border:.3rem solid transparent;border-radius:1rem;flex:none;margin-left:1rem;padding:.9rem 1.2rem;font-size:1.6rem;transition:transform .1s ease-out}.he-switch.on{color:var(--accent);font-weight:600}.he-switch:focus{border-color:#fff;transform:scale(1.05)}.icon-btn{align-items:center;display:inline-flex}.icon-btn>svg{width:2rem;height:2rem;margin-right:.6rem}.home-head>.btn+.btn{margin-left:1rem}.he-row>.he-main:focus{background:var(--surface-variant)}.topbar{z-index:2;position:relative}.home.with-hero{z-index:1;position:relative}.hero2{flex:none;height:17.6rem;position:relative}.hero2-bg{z-index:-1;pointer-events:none;width:68%;height:62%;position:fixed;top:0;right:0}.hero2-bg>img{object-fit:cover;width:100%;height:100%}.hero2-bg{-webkit-mask-composite:source-in;-webkit-mask-image:linear-gradient(90deg,transparent 0%,#000 45%),linear-gradient(#000 50%,transparent 100%);mask-image:linear-gradient(90deg,transparent 0%,#000 45%),linear-gradient(#000 50%,transparent 100%);-webkit-mask-composite:source-in;mask-composite:intersect}.hero2-actions{position:absolute;top:0;right:1.6rem}.home-actions{align-items:center;display:flex}.home-actions>*+*{margin-left:1rem}.hero2-info{flex-direction:column;justify-content:flex-end;width:55%;height:100%;padding-bottom:1rem;padding-left:1.6rem;display:flex}.hero2-kind{letter-spacing:.3rem;color:#e50914;font-size:1.2rem;font-weight:700}.hero2-title{white-space:nowrap;text-overflow:ellipsis;margin-top:.4rem;font-size:2.8rem;font-weight:900;line-height:1.2;overflow:hidden}.hero2-meta{align-items:baseline;margin-top:.4rem;font-size:1.4rem;display:flex}.hero2-meta>*+*{margin-left:1rem}.hero2-meta>b{color:#46d369}.hero2-plot{color:rgba(255,255,255,.65);white-space:nowrap;text-overflow:ellipsis;min-height:1.6rem;margin-top:.4rem;font-size:1.2rem;overflow:hidden}.hero2-buttons{margin-top:1rem}.hero2-buttons>*+*{margin-left:1rem}.home.with-hero .home-shelves{overflow:hidden}.home-list{transition:transform .3s ease-out}.wc-progress>span{background:#e50914}.home-list{position:relative}.grid-spacer{flex:none;width:100%}.round-btn{color:#fff;background:rgba(0,0,0,.45);border:.2rem solid transparent;border-radius:50%;flex:none;justify-content:center;align-items:center;width:4rem;height:4rem;transition:transform .12s ease-out;display:inline-flex}.round-btn>svg{width:2rem;height:2rem}.round-btn:focus{border-color:#fff;transform:scale(1.1)}.browse-logo b{font-size:1.5rem}.extensions .ext-row{align-items:center}.ext-add,.ext-chip{align-items:center;display:inline-flex}.ext-add>svg{width:1.8rem;height:1.8rem;margin-right:.6rem}.ext-chip>img{object-fit:contain;width:2rem;height:2rem;margin-right:.8rem}.ext-note{padding:0 1.6rem 1.6rem;font-size:1.5rem}.recordings{max-width:100rem}.rec-note{margin:1rem 0 1.4rem;font-size:1.5rem}.rec-row{background:var(--surface);margin-bottom:.6rem}.rec-repeat{background:rgba(var(--accent-rgb), .25);color:var(--accent);border-radius:.4rem;flex:none;padding:.2rem .8rem;font-size:1.3rem}.page-flow{flex:1;min-height:0;position:relative}.browse-bar{border:.1rem solid rgba(255,255,255,.08);border-radius:1.4rem;flex:none;align-items:center;height:8.4rem;margin-bottom:1rem;padding:0 2rem;display:flex}.browse-bar>*+*{margin-left:1.6rem}.browse-bar>.spacer+*{margin-left:0}.bb-id{flex-direction:column;min-width:0;display:flex}.bb-title{white-space:nowrap;text-overflow:ellipsis;max-width:50rem;font-size:2.8rem;font-weight:700;overflow:hidden}.bb-count{color:rgba(255,255,255,.8);margin-top:.4rem;font-size:1.3rem}.bb-tabs{background:rgba(0,0,0,.35);border-radius:2rem;padding:.3rem;display:flex}.bb-tab{color:#fff;white-space:nowrap;border-radius:1.7rem;padding:.6rem 1.5rem;font-size:1.4rem}.bb-tab-count{opacity:.7;white-space:pre;font-size:1.2rem}.bb-tab.selected{color:#0d1117;background:#fff;font-weight:700}.bb-tab:focus{background:var(--accent);color:#0d1117}.bb-sorts>*+*{margin-left:.8rem}.bb-genre{white-space:nowrap}.field-row{align-items:stretch;display:flex}.field-row>.field-box{flex:1;align-items:center;min-width:0;min-height:5.2rem;display:flex}.eye-btn{background:var(--surface-variant);width:5.2rem;min-height:5.2rem;color:var(--on-surface-variant);border:.3rem solid transparent;border-radius:1rem;flex:none;justify-content:center;align-items:center;margin-left:.8rem;transition:transform .12s ease-out;display:flex}.eye-btn>svg{width:2.6rem;height:2.6rem}.eye-btn:focus{border-color:var(--accent);transform:scale(1.05)}.onb-help{border-radius:2rem;margin-top:1.2rem;padding:1.8rem 2.2rem}.form-side>.onb-help:first-child{margin-top:0}.onb-help h3{margin-bottom:1rem;font-size:1.8rem;font-weight:600}.onb-help ul{margin:0;padding-left:2rem}.onb-help li{color:var(--on-surface-variant);font-size:1.4rem;line-height:1.4}.onb-help li+li{margin-top:.6rem}.access-form>.muted{margin:0 0 2.4rem;font-size:1.8rem}.access-form .connect{align-self:flex-start;margin:1.2rem 0 1.6rem}
2
- /*$vite$:1*/`,document.head.appendChild(e),`queueMicrotask`in self||(self.queueMicrotask=e=>{Promise.resolve().then(e)}),Promise.prototype.finally||(Promise.prototype.finally=function(e){let t=typeof e==`function`?e:()=>{};return this.then(e=>Promise.resolve(t()).then(()=>e),e=>Promise.resolve(t()).then(()=>{throw e}))});function t(e,t){return t}var n,r,i,a,o,s,c,l,u,d,f,p={},m=[],h=/^m(i|n|o|s|text|space)$/,g=Array.isArray,_=m.slice,v=Object.assign;function y(e){e&&e.parentNode&&e.remove()}function b(e,t,i,a,o){var s={type:e,props:t,key:i,ref:a,__k:null,__:null,__b:0,__e:null,__c:null,constructor:void 0,__v:o||++r,__i:-1,__u:0};return!o&&n.vnode&&n.vnode(s),s}function x(e){return e.children}function S(e,t){this.props=e,this.context=t,this.__g=0}function ee(e,t){if(t==null)return e.__&&ee(e.__,e.__i+1);for(var n;t<e.__k.length;t++)if((n=e.__k[t])&&n.__e)return n.__e;return typeof e.type!=`function`||e.props.__P?null:ee(e)}function C(e){if((e=e.__)&&e.__c&&!e.props.__P)return e.__e=null,e.__k.some(function(t){return t&&(e.__e=t.__e)}),C(e)}function w(e){(8&e.__g||(e.__g|=8,a.push(e),s++))&&o==n.debounceRendering||((o=n.debounceRendering)||queueMicrotask)(T)}function T(){var e,t,r,i,l,u,d,f,p;try{for(t=1;a.length;)a.length>t&&a.sort(c),e=a.shift(),t=a.length,8&e.__g&&(i=void 0,l=void 0,u=(l=(r=e).__v).__e,d=[],f=[],(p=r.__P)&&((i=v({constructor:void 0},l)).__v=l.__v+1,n.vnode&&n.vnode(i),ne(p,i,l,r.__n,p.namespaceURI,32&l.__u?[u]:null,d,u||ee(l),32&l.__u,f),i.__v=l.__v,i.__.__k[i.__i]=i,ae(d,i,f),l.__=l.__e=null,i.__e!=u&&C(i)))}finally{(s=a.length)&&(o||queueMicrotask)(T)}}function E(e,t,n,r,i,a,o,s,c,l,u){var d,f,h,g,_,v,y=r.__k||m,b=t.length;for(c=D(n,t,y,c,b),d=0;d<b;d++)(h=n.__k[d])!=null&&(f=~h.__i&&y[h.__i]||p,h.__i=d,v=ne(e,h,f,i,a,o,s,c,l,u),g=h.__e,(f.ref!=h.ref||8&f.__u)&&(f.ref&&se(f.ref,null,h,f),h.ref&&u.push(h.ref,h.__c||g,h)),_=_||g,4&h.__u?(c=O(h,c,e,!f.__v),f.__e&&(f.__e=null)):typeof h.type==`function`&&v!==void 0?c=v:g&&(c=g.nextSibling),h.__u&=-21);return n.__e=_,c}function D(e,t,n,r,i){var a,o,s,c,l,u,d,f,p,m=n.length,h=m,_=0,v=0,y=e.__k=Array(i);for(a=0;a<i;a++)(o=t[a])!=null&&typeof o!=`boolean`&&typeof o!=`function`?(typeof o!=`object`||o.constructor==String?o=y[a]=b(null,o):g(o)?o=y[a]=b(x,{children:o}):o.constructor===void 0&&o.__b?o=y[a]=b(o.type,o.props,o.key,o.ref,o.__v):y[a]=o,c=a+_,o.__=e,o.__b=e.__b+1,s=null,~(l=o.__i=k(o,n,c,h))&&(h--,(s=n[l])&&(s.__u|=2)),s&&s.__v?(o.__u|=16,l==c-1?_--:l==c+1?_++:l!=c&&(l>c?_--:_++,v=1)):(~l||(i>m?_--:i<m&&_++),typeof o.type!=`function`&&(o.__u|=4))):y[a]=null;if(v){for(u=[],d=[],a=0;a<i;a++)if((o=y[a])&&16&o.__u){for(_=0,f=u.length;_<f;)u[p=_+f>>1]<o.__i?_=p+1:f=p;u[_]=o.__i,d[a]=_+1}for(_=u.length;a--;)d[a]&&(d[a]==_?_--:y[a].__u|=4)}if(h)for(a=0;a<m;a++)!(s=n[a])||2&s.__u||(s.__e==r&&(r=ee(s)),ce(s,s));return r}function O(e,t,n,r){var i,a,o,s;if(typeof e.type==`function`){if(e.props.__P)return t;if(i=e.__k)for(a=0;a<i.length;a++)i[a]&&(i[a].__=e,t=O(i[a],t,n,!1));return t}for(t&&!t.parentNode&&(t=ee(e))&&!t.parentNode&&(t=null),o=e.__e,s=t;s&&s.nodeType==8;)s=s.nextSibling;for(o!=s&&(!r&&n.moveBefore&&o.parentNode?n.moveBefore(o,t):n.insertBefore(o,t||null)),t=o;(t=t&&t.nextSibling)&&t.nodeType==8&&!t.data.startsWith(`$s`););return t}function k(e,t,n,r){var i,a=e.key,o=e.type,s=t[n],c=s&&!(2&s.__u);if(s===null&&a==null||c&&a==s.key&&o==s.type)return n;if(r>+!!c){for(i=n-1;i>=0;i--)if((s=t[i])&&!(2&s.__u)&&a==s.key&&o==s.type)return i;for(i=n+1;i<t.length;i++)if((s=t[i])&&!(2&s.__u)&&a==s.key&&o==s.type)return i}return-1}function te(e,t,n){n==null&&(n=``),t[0]==`-`?e.setProperty(t,n):e[t]=n}function A(e,t,n,r,i){var a,o;if(t==`style`){if(typeof n==`string`)e.style.cssText=n;else{if(typeof r==`string`&&(e.style.cssText=r=``),r)for(t in r)n&&t in n||te(e.style,t);if(n)for(t in n)r&&n[t]==r[t]||te(e.style,t,n[t])}}else if(t[0]==`o`&&t[1]==`n`)(e.__e||(e.__e={}))[t]=n,n&&r||(o=f[t]||(f[t]=j(t)),(e.__a||(e.__a={}))[t]=d,a=t!=(t=t.replace(u,`$1`)),(t=t.slice(2))[0]<`a`&&(t=t.toLowerCase()),n?e.addEventListener(t,o,a):e.removeEventListener(t,o,a));else{if(i==`http://www.w3.org/2000/svg`)t=t.replace(/xlink(H|:h)/,`h`).replace(/sName$/,`s`);else if(t!=`width`&&t!=`height`&&t!=`href`&&t!=`list`&&t!=`form`&&t!=`tabIndex`&&t!=`download`&&t!=`rowSpan`&&t!=`colSpan`&&t!=`role`&&t!=`popover`&&t in e)try{e[t]=n==null?``:n;return}catch(e){}if(typeof n==`function`)return;n==null||!1===n&&t[4]!=`-`?e.removeAttribute(t):e.setAttribute(t,t==`popover`&&n==1?``:n)}}function j(e){return function(t){var r=this.__e;if(r){if(r=r[e],t[l]==null)t[l]=d++;else if(t[l]<this.__a[e])return;return r(n.event?n.event(t):t)}}}function ne(e,t,r,i,a,o,s,c,l,u){var d,f,p,h,_,b,C,w,T,D,O,k,te,A,j,ne,ae,se,ue=t.type;if(t.constructor!==void 0)return null;128&r.__u&&(l=32&r.__u,d=r.__c.__z)&&(t.__u|=l,f=o=[],d.nodeType==8?c=re(d,o):o.push(d),c=o[0]||c),(d=n.__b)&&d(t);n:if(typeof ue==`function`){p=s.length;try{if(w=t.props,T=(d=ue.prototype)&&d.render,D=(d=ue.contextType)&&i[d.__c],O=d?D?D.props.value:d.__:i,(h=r.__c)?(t.__c=h,2&h.__g&&(h.__g|=1)):(T?t.__c=h=new ue(w,O):(t.__c=h=new S(w,O),h.constructor=ue,h.render=le),D&&D.sub(h),h.state||(h.state={}),h.__n=i,h.__g|=8,h.__h=[],h.__k=[]),T&&(h.__s||(h.__s=h.state),ue.getDerivedStateFromProps&&(h.__s==h.state&&(h.__s=v({},h.__s)),v(h.__s,ue.getDerivedStateFromProps(w,h.__s)))),_=h.props,b=h.state,h.__v=t,r.__c){if(w!==_&&T&&!ue.getDerivedStateFromProps&&h.componentWillReceiveProps&&h.componentWillReceiveProps(w,O),t.__v==r.__v&&!(8&h.__g)||!(4&h.__g)&&h.shouldComponentUpdate&&!1===h.shouldComponentUpdate(w,h.__s,O)){t.__v!=r.__v&&(h.props=w,h.state=h.__s,h.__g&=-9),t.__e=r.__e,t.__k=r.__k,t.__k.some(function(e){e&&(e.__=t)}),m.push.apply(h.__h,h.__k),h.__k=[],h.__h.length&&s.push(h),c=ee(r);break n}h.componentWillUpdate&&h.componentWillUpdate(w,h.__s,O),T&&h.componentDidUpdate&&h.__h.push(function(){h.componentDidUpdate(_,b,C)})}else T&&!ue.getDerivedStateFromProps&&h.componentWillMount&&h.componentWillMount(),T&&h.componentDidMount&&h.__h.push(h.componentDidMount);if(h.context=O,h.props=w,h.__P=e,h.__g&=-5,k=n.__r,te=0,T)h.state=h.__s,h.__g&=-9,k&&k(t),d=h.render(h.props,h.state,h.context),m.push.apply(h.__h,h.__k),h.__k=[];else do h.__g&=-9,k&&k(t),d=h.render(h.props,h.state,h.context),h.state=h.__s;while(8&h.__g&&++te<25);h.state=h.__s,h.getChildContext&&(i=v({},i,h.getChildContext())),T&&r.__c&&h.getSnapshotBeforeUpdate&&(C=h.getSnapshotBeforeUpdate(_,b)),A=d&&d.type===x&&d.key==null?d.props.children:d,w.__P&&(d=c,a=(e=w.__P).namespaceURI,l=o=null,r.props&&r.props.__P!=e&&(r.__k.some(function(e){e&&ce(e,e)}),r.__k=null),c=r.__k?ee(r,0):null),c=E(e,g(A)?A:[A],t,r,i,a,o,s,c,l,u),w.__P&&(t.__e=null,c=d),t.__u&=-161,f&&f.some(y),h.__h.length&&s.push(h),1&h.__g&&(h.__g&=-4)}catch(e){if(s.length=p,t.__v=null,l||o){if(e.then){if(j=0,t.__u|=128|l,o){for(~(ae=o.indexOf(c||void 0))||(ae=o.length);(se=o[ae-1])&&se.nodeType==8;)ae--;for(;ae<o.length;ae++)if(se=o[ae]){if(o[ae]=null,se.nodeType==8){if(se.data.startsWith(`$s`))j++||(ne=se);else if(j&&se.data.startsWith(`/$s`)&&!--j)break}else if(!j)break}}if(!ne){for(;c&&c.nodeType==8&&c.nextSibling;)c=c.nextSibling;ne=c}(d=re(ne=t.__c.__z||(t.__c.__z=ne)))?(t.__e=ne,c=d):t.__e=c,c=c&&c.nextSibling}else o&&o.some(y)}else t.__e=r.__e;t.__k||(t.__k=r.__k||[]),e.then||ie(t),n.__e(e,t,r)}}else c=t.__e=oe(r.__e,t,r,i,a,o,s,l,u,e);return(d=n.diffed)&&d(t),c}function re(e,t){if(e&&e.nodeType==8&&e.data.startsWith(`$s`))for(var n=1;e=e.nextSibling;){if(e.nodeType==8){if(e.data.startsWith(`$s`))n++;else if(e.data.startsWith(`/$s`)&&!--n)return e}t&&t.push(e)}}function ie(e){e&&(e.__c&&(e.__c.__g|=4),e.__k&&e.__k.some(ie))}function ae(e,t,r){for(var i=0;i<r.length;)se(r[i++],r[i++],r[i++]);n.__c&&n.__c(t,e),e.some(function(t){try{e=t.__h,t.__h=[],e.some(function(e){e.call(t)})}catch(e){n.__e(e,t.__v)}})}function oe(e,t,r,i,a,o,s,c,l,u){var d,f,m,v,b,x,S,C,w,T=r.props||p,D=t.props,O=t.type;if(O==`svg`?a=`http://www.w3.org/2000/svg`:O==`math`?a=`http://www.w3.org/1998/Math/MathML`:a||(a=`http://www.w3.org/1999/xhtml`),o){for(d=0;d<o.length;d++)if((b=o[d])&&(O?b.localName==O:b.nodeType==3)){e=b,o[d]=null;break}}if(!e){if(C=u.ownerDocument||document,!O)return C.createTextNode(D);e=C.createElementNS(a,O,D.is&&D),c&&(n.__m&&n.__m(t,o),c=!1),o=null}if(O){if(u=O==`template`?e.content:e,o=O==`textarea`&&D.defaultValue!=null?null:o&&_.call(u.childNodes),!c&&o)for(T={},d=0;d<e.attributes.length;d++)T[(b=e.attributes[d]).name]=b.value;for(d in T)b=T[d],d==`dangerouslySetInnerHTML`?m=b:d==`children`||d in D||d==`value`&&`defaultValue`in D||d==`checked`&&`defaultChecked`in D||A(e,d,null,b,a);for(d in w=1&r.__u,D)b=D[d],d==`children`?v=b:d==`dangerouslySetInnerHTML`?f=b:d==`value`?x=b:d==`checked`?S=b:c&&typeof b!=`function`||!(T[d]!==b||w&&b!=null)||A(e,d,b,T[d],a);f?(c||m&&(f.__html==m.__html||f.__html==e.innerHTML)||(e.innerHTML=f.__html),t.__k=[]):(m&&(e.textContent=``),(O==`foreignObject`||a==`http://www.w3.org/1998/Math/MathML`&&h.test(O))&&(a=`http://www.w3.org/1999/xhtml`),E(u,g(v)?v:[v],t,r,i,a,o,s,o?o[0]:r.__k&&ee(r,0),c,l),o&&o.some(y)),c&&O!=`textarea`||(d=`value`,O==`progress`&&x==null?e.removeAttribute(d):x==null||x===e[d]&&(O!=`progress`||x)||A(e,d,x,T[d],a),d=`checked`,S!=null&&S!=e[d]&&A(e,d,S,T[d],a))}else T===D||c&&e.data==D||(e.data=D);return e}function se(e,t,r,i){try{typeof e==`function`?t?t.__x=e(t)||1:i&&(i=i.__c||i.__e)&&(t=i.__x)&&(i.__x=null,typeof t==`function`?t():e(null)):e.current=t}catch(e){n.__e(e,r)}}function ce(e,t,r){var i,a,o,s;if(n.unmount&&n.unmount(e),!(i=e.ref)||i.current&&i.current!=e.__e||se(i,null,t,e),i=e.__c){if(i.componentWillUnmount)try{i.componentWillUnmount()}catch(e){n.__e(e,t)}i.__P=i.__n=null}if(i=e.__k)for(s=0;s<i.length;s++)i[s]&&ce(i[s],t,typeof e.type!=`function`||r&&!e.props.__P);!r&&(i=e.__c)&&(i=i.__z)&&(a=re(i,o=[]))&&(i==e.__e&&o.some(y),y(a),y(i)),(i=e.__e)&&(r||y(i),i.__e&&(i.__e=null)),e.__e=e.__c=e.__=null}function le(e,t,n){return this.constructor(e,n)}function ue(e,t){var r,i,a,o;n.__&&n.__(e,t),t.nodeType==9&&(t=t.documentElement),i=(r=e&&32&e.__u)?null:t.__k,t.__k=b(x,{children:[e]}),a=[],o=[],ne(t,t.__k,i||p,p,t.namespaceURI,i?null:t.firstChild?_.call(t.childNodes):null,a,i?i.__e:t.firstChild,r,o),ae(a,t.__k,o),t.__k.props.children=null}n={__e:function(e,t,n,r){for(var i,a,o;t=t.__;)if((i=t.__c)&&!(1&i.__g)){i.__g|=4;try{if((o=(a=i.constructor)&&a.getDerivedStateFromError)&&i.setState(a.getDerivedStateFromError(e)),i.componentDidCatch&&(i.componentDidCatch(e,r||{}),o=1),o&&8&i.__g)return void(i.__g|=2)}catch(t){e=t}}throw s=0,e}},r=0,i=function(e){return e!=null&&e.constructor===void 0},S.prototype.setState=function(e,t){var n=this.__s;n&&n!=this.state||(n=this.__s=v({},this.state)),typeof e==`function`&&(e=e(v({},n),this.props)),e&&(v(n,e),this.__v&&(t&&this.__k.push(t),w(this)))},S.prototype.forceUpdate=function(e){this.__v&&(this.__g|=4,e&&this.__h.push(e),w(this))},S.prototype.render=x,a=[],s=0,c=function(e,t){return e.__v.__b-t.__v.__b},l=Symbol(),u=/(PointerCapture)$|Capture$/i,d=0,f={};var de=0;Array.isArray;function M(e,t,r,i,a,o){t||(t={});var s,c,l=t;if(`ref`in l&&typeof e!=`function`)for(c in l={},t)c==`ref`?s=t[c]:l[c]=t[c];var u={type:e,props:l,key:r,ref:s,__k:null,__:null,__b:0,__e:null,__c:null,constructor:void 0,__v:--de,__i:-1,__u:0};return(a||o)&&(u.__source=a,u.__self=o),n.vnode&&n.vnode(u),u}var fe,pe,me,he,ge=Object.is,_e=0,ve=[],ye=[],be=n,xe=be.__b,Se=be.__r,Ce=be.diffed,we=be.__c,Te=be.unmount,Ee=be.__;function De(e,t){be.__h&&be.__h(pe,e,_e||t),_e=0;var n=pe.__H||(pe.__H={__:[],__h:[]});return e>=n.__.length&&n.__.push({}),n.__[e]}function N(e){return _e=1,Oe(Le,e)}function Oe(e,t,n){var r=De(fe++,2);if(r.t=e,!r.__c&&(r.__=[n?n(t):Le(void 0,t),function(e){var t=r.__N?r.__N[0]:r.__[0],n=r.t(t,e);ge(t,n)||(r.__N=[n,r.__[1]],r.__c.setState({}))}],r.__c=pe,!pe.__f)){pe.__f=!0;var i=pe.shouldComponentUpdate;pe.shouldComponentUpdate=function(e,t,n){var r=this.__H;if(!r)return!0;var a=!1,o=this.props!=e;if(r.__.some(function(e){e.__N&&(a=!0,ge(e.__[0],e.__N[0])||(o=!0))}),i){var s=i.call(this,e,t,n);return a?s||o:s}return!a||o}}return r.__}function P(e,t){var n=De(fe++,3);!be.__s&&Ie(n.__H,t)&&(n.__P=!0,n.__=e,n.u=t,pe.__H.__h.push(n))}function F(e){return _e=5,ke(function(){return{current:e}},[])}function ke(e,t){var n=De(fe++,7);return Ie(n.__H,t)&&(n.__=e(),n.__H=t),n.__}function Ae(){var e;do{for(;e=ye.shift();)try{Pe(e)}catch(t){be.__e(t,{__:(e=e.__P)&&e.__v})}for(;e=ve.shift();){var t=e.__H;if(e.__P&&t)try{t.__h.some(Pe),t.__h.some(Fe),t.__h=[]}catch(n){t.__h=[],be.__e(n,e.__v)}}}while(ye.length)}be.__b=function(e){pe=null,xe&&xe(e)},be.__=function(e,t){e&&t.__k&&t.__k.__m&&(e.__m=t.__k.__m),Ee&&Ee(e,t)},be.__r=function(e){Se&&Se(e),fe=0;var t=(pe=e.__c).__H;t&&(me==pe?pe.__h=[]:(t.__h.some(Pe),t.__h.some(Fe),fe=0),t.__h=[],t.__.some(function(e){e.__N&&(e.__=e.__N),e.u=e.__N=void 0})),me=pe},be.diffed=function(e){Ce&&Ce(e);var t=e.__c;t&&t.__H&&(t.__H.__h.length&&Ne(ve.push(t)),t.__H.__.some(function(e){e.u&&(e.__H=e.u)})),me=pe=null},be.__c=function(e,t){t.some(function(e){try{e.__h.some(Pe),e.__h=e.__h.filter(function(e){return!e.__||Fe(e)})}catch(n){t.some(function(e){e.__h&&(e.__h=[])}),t=[],be.__e(n,e.__v)}}),we&&we(e,t)},be.unmount=function(e){Te&&Te(e);var t,n,r=e.__c;r&&r.__H&&(r.__H.__.some(function(r){try{if(r.__P&&r.__c){if(n===void 0){for(n=e.__;n&&(!n.__c||!n.__c.__P);)n=n.__;n=n&&n.__c}r.__P=n,Ne(ye.push(r))}else Pe(r)}catch(e){t=e}}),r.__H=void 0,t&&be.__e(t,r.__v))};var je=typeof requestAnimationFrame==`function`;function Me(e){var t,n=function(){clearTimeout(r),je&&cancelAnimationFrame(t),setTimeout(e)},r=setTimeout(n,35);je&&(t=requestAnimationFrame(n))}function Ne(e){e!=1&&he==be.requestAnimationFrame||((he=be.requestAnimationFrame)||Me)(Ae)}function Pe(e){var t=pe,n=e.__c;typeof n==`function`&&(e.__c=void 0,n()),pe=t}function Fe(e){var t=pe;e.__c=e.__(),pe=t}function Ie(e,t){return!e||e.length!=t.length||t.some(function(t,n){return!ge(t,e[n])})}function Le(e,t){return typeof t==`function`?t(e):t}var Re=Symbol.for(`preact-signals`);function ze(){if(Ge>1)Ge--;else{var e,t=!1;for((function(){var e=Ye;for(Ye=void 0;e!==void 0;){var t=e.S;if(t.v===e.v)for(var n=t.t;n!==void 0;n=n.x)n.i===e.i&&(n.i=t.i);e=e.o}})();We!==void 0;){var n=We;for(We=void 0,Ke++;n!==void 0;){var r=n.u;if(n.u=void 0,n.f&=-3,!(8&n.f)&&$e(n))try{n.c()}catch(n){t||(e=n,t=!0)}n=r}}if(Ke=0,Ge--,t)throw e}}function Be(e){if(Ge>0)return e();Je=++qe,Ge++;try{return e()}finally{ze()}}var Ve,He=void 0;function Ue(e){var t=He,n=Ve;He=void 0,Ve=void 0;try{return e()}finally{He=t,Ve=n}}var We=void 0,Ge=0,Ke=0,qe=0,Je=0,Ye=void 0,Xe=0;function Ze(e){if(He!==void 0){var t=e.n;if(t===void 0||t.t!==He)return t={i:0,S:e,p:He.s,n:void 0,t:He,e:void 0,x:void 0,r:t},He.s!==void 0&&(He.s.n=t),He.s=t,e.n=t,32&He.f&&e.S(t),t;if(t.i===-1)return t.i=0,t.n!==void 0&&(t.n.p=t.p,t.p!==void 0&&(t.p.n=t.n),t.p=He.s,t.n=void 0,He.s.n=t,He.s=t),t}}function Qe(e,t){this.v=e,this.i=0,this.n=void 0,this.t=void 0,this.l=0,this.W=t==null?void 0:t.watched,this.Z=t==null?void 0:t.unwatched,this.name=t==null?void 0:t.name}Qe.prototype.brand=Re,Qe.prototype.h=function(){return!0},Qe.prototype.S=function(e){var t=this,n=this.t;n!==e&&e.e===void 0&&(e.x=n,this.t=e,n===void 0?Ue(function(){var e;(e=t.W)==null||e.call(t)}):n.e=e)},Qe.prototype.U=function(e){var t=this;if(this.t!==void 0){var n=e.e,r=e.x;n!==void 0&&(n.x=r,e.e=void 0),r!==void 0&&(r.e=n,e.x=void 0),e===this.t&&(this.t=r,r===void 0&&Ue(function(){var e;(e=t.Z)==null||e.call(t)}))}},Qe.prototype.subscribe=function(e){var t=this;return ct(function(){var n=t.value;Ue(function(){return e(n)})},{name:`sub`})},Qe.prototype.valueOf=function(){return this.value},Qe.prototype.toString=function(){return this.value+``},Qe.prototype.toJSON=function(){return this.value},Qe.prototype.peek=function(){var e=this;return Ue(function(){return e.value})},Object.defineProperty(Qe.prototype,"value",{get:function(){var e=Ze(this);return e!==void 0&&(e.i=this.i),this.v},set:function(e){if(e!==this.v){if(Ke>100)throw Error(`Cycle detected`);(function(e){Ge!==0&&Ke===0&&e.l!==Je&&(e.l=Je,Ye={S:e,v:e.v,i:e.i,o:Ye})})(this),this.v=e,this.i++,Xe++,Ge++;try{for(var t=this.t;t!==void 0;t=t.x)t.t.N()}finally{ze()}}}});function I(e,t){return new Qe(e,t)}function $e(e){for(var t=e.s;t!==void 0;t=t.n)if(t.S.i!==t.i||!t.S.h()||t.S.i!==t.i)return!0;return!1}function et(e){for(var t=e.s;t!==void 0;t=t.n){var n=t.S.n;if(n!==void 0&&(t.r=n),t.S.n=t,t.i=-1,t.n===void 0){e.s=t;break}}}function tt(e){for(var t=e.s,n=void 0;t!==void 0;){var r=t.p;t.i===-1?(t.S.U(t),r!==void 0&&(r.n=t.n),t.n!==void 0&&(t.n.p=r)):n=t,t.S.n=t.r,t.r!==void 0&&(t.r=void 0),t=r}e.s=n}function nt(e,t){Qe.call(this,void 0,t),this.x=e,this.s=void 0,this.g=Xe-1,this.f=4}nt.prototype=new Qe,nt.prototype.h=function(){if(this.f&=-3,1&this.f)return!1;if((36&this.f)==32||(this.f&=-5,this.g===Xe))return!0;if(this.g=Xe,this.f|=1,this.i>0&&!$e(this))return this.f&=-2,!0;var e=He;try{et(this),He=this;var t=this.x();(16&this.f||this.v!==t||this.i===0)&&(this.v=t,this.f&=-17,this.i++)}catch(e){this.v=e,this.f|=16,this.i++}return He=e,tt(this),this.f&=-2,!0},nt.prototype.S=function(e){if(this.t===void 0){this.f|=36;for(var t=this.s;t!==void 0;t=t.n)t.S.S(t)}Qe.prototype.S.call(this,e)},nt.prototype.U=function(e){if(this.t!==void 0&&(Qe.prototype.U.call(this,e),this.t===void 0)){this.f&=-33;for(var t=this.s;t!==void 0;t=t.n)t.S.U(t)}},nt.prototype.N=function(){if(!(2&this.f)){this.f|=6;for(var e=this.t;e!==void 0;e=e.x)e.t.N()}},Object.defineProperty(nt.prototype,"value",{get:function(){if(1&this.f)throw Error(`Cycle detected`);var e=Ze(this);if(this.h(),e!==void 0&&(e.i=this.i),16&this.f)throw this.v;return this.v}});function rt(e,t){return new nt(e,t)}function it(e){var t=e.m;if(e.m=void 0,typeof t==`function`){Ge++;var n=He;He=void 0;try{t()}catch(t){throw e.f&=-2,e.f|=8,at(e),t}finally{He=n,ze()}}}function at(e){for(var t=e.s;t!==void 0;t=t.n)t.S.U(t);e.x=void 0,e.s=void 0,it(e)}function ot(e){if(He!==this)throw Error(`Out-of-order effect`);tt(this),He=e,this.f&=-2,8&this.f&&at(this),ze()}function st(e,t){this.x=e,this.m=void 0,this.s=void 0,this.u=void 0,this.f=32,this.name=t==null?void 0:t.name,Ve&&Ve.push(this)}st.prototype.c=function(){var e=this.S();try{if(8&this.f||this.x===void 0)return;var t=this.x();typeof t==`function`&&(this.m=t)}finally{e()}},st.prototype.S=function(){if(1&this.f)throw Error(`Cycle detected`);this.f|=1,this.f&=-9,it(this),et(this),Ge++;var e=He;return He=this,ot.bind(this,e)},st.prototype.N=function(){2&this.f||(this.f|=2,this.u=We,We=this)},st.prototype.d=function(){this.f|=8,1&this.f||at(this)},st.prototype.dispose=function(){this.d()};function ct(e,t){var n=new st(e,t);try{n.c()}catch(e){throw n.d(),e}var r=n.d.bind(n);return r[Symbol.dispose]=r,r}var lt,ut,dt,ft=typeof window<`u`&&!!window.__PREACT_SIGNALS_DEVTOOLS__,pt=[];ct(function(){lt=this.N})();function mt(e,t){n[e]=t.bind(null,n[e]||function(){})}function ht(e){if(dt){var t=dt;dt=void 0,t()}dt=e&&e.S()}function gt(e){var t=this,n=e.data,r=vt(n);r.name=`ReactiveDom`,r.value=n;var a=ke(function(){for(var e=t,n=t.__v;n=n.__;)if(n.__c){n.__c.__$f|=4;break}var a=rt(function(){var e=r.value.value;return e===0?0:!0===e?``:e||``}),o=rt(function(){return!Array.isArray(a.value)&&!i(a.value)}),s=ct(function(){if(this.N=St,o.value){var t=a.value;e.__v&&e.__v.__e&&e.__v.__e.nodeType===3&&(e.__v.__e.data=t)}}),c=t.__$u.d;return t.__$u.d=function(){s(),c.call(this)},[o,a]},[]),o=a[0],s=a[1];return o.value?s.peek():s.value}gt.displayName=`ReactiveTextNode`,Object.defineProperties(Qe.prototype,{constructor:{configurable:!0,value:void 0},type:{configurable:!0,value:gt},props:{configurable:!0,get:function(){var e=this;return{data:{get value(){return e.value}}}}},__b:{configurable:!0,value:1}}),mt(`__b`,function(e,t){if(ht(),ut=void 0,typeof t.type==`string`){var n,r=t.props;for(var i in r)if(i!==`children`){var a=r[i];a instanceof Qe&&(n||(t.__np=n={}),n[i]=a,r[i]=a.peek())}}e(t)}),mt(`__r`,function(e,t){if(e(t),t.type!==x){ht();var n,r=t.__c;r&&(r.__$f&=-2,(n=r.__$u)===void 0&&(r.__$u=n=function(e,t){var n;return ct(function(){n=this},{name:t}),n.c=e,n}(function(e){return function(){var t;ft&&((t=this.y)==null||t.call(this)),e.__$f|=1,e.setState({})}}(r),typeof t.type==`function`?t.type.displayName||t.type.name:``))),ut=r,ht(n)}}),mt(`__e`,function(e,t,n,r){ht(),ut=void 0,e(t,n,r)}),mt(`diffed`,function(e,t){ht(),ut=void 0;var n;if(typeof t.type==`string`&&(n=t.__e)){var r=t.__np,i=t.props,a=n.U;if(a)for(var o in a){var s=a[o];s===void 0||r&&o in r||(s.d(),a[o]=void 0)}if(r)for(var c in a||(a={},n.U=a),r){var l=a[c],u=r[c];l===void 0?(l=_t(n,c,u,i),a[c]=l):l.o(u,i)}}e(t)});function _t(e,t,n,r){var i=t in e&&e.ownerSVGElement===void 0,a=I(n);return{o:function(e,t){a.value=e,r=t},d:ct(function(){this.N=St;var n=a.value.value;r[t]!==n&&(r[t]=n,i?e[t]=n:n!=null&&(!1!==n||t[4]===`-`)?e.setAttribute(t,n):e.removeAttribute(t))})}}mt(`unmount`,function(e,t){if(typeof t.type==`string`){var n=t.__e;if(n){var r=n.U;if(r)for(var i in n.U=void 0,r){var a=r[i];a&&a.d()}}var o=t.__np;if(o){var s=t.props;for(var c in o)s[c]=o[c]}t.__np=void 0}else{var l=t.__c;if(l){l.__$f|=8;var u=l.__$u;u&&(l.__$u=void 0,u.d())}}e(t)}),mt(`__h`,function(e,t,n,r){r<3&&(t.__$f|=2),e(t,n,r)}),S.prototype.shouldComponentUpdate=function(e,t){if(this.__R)return!0;var n=this.__$u,r=n&&n.s!==void 0;for(var i in t)return!0;if(this.__f||typeof this.u==`boolean`&&!0===this.u){var a=2&this.__$f;if(!(r||a||4&this.__$f)||1&this.__$f)return!0}else if(!(r||4&this.__$f)||3&this.__$f)return!0;for(var o in e)if(o!==`__source`&&e[o]!==this.props[o])return!0;for(var s in this.props)if(!(s in e))return!0;return!1};function vt(e,t){return ke(function(){return I(e,t)},[])}function yt(e,t){var n=F(e);return n.current=e,ut.__$f|=4,ke(function(){return rt(function(){return n.current()},t)},[])}var bt=function(e){queueMicrotask(function(){queueMicrotask(e)})};function xt(){Be(function(){for(var e;e=pt.shift();)lt.call(e)})}function St(){pt.push(this)===1&&(n.requestAnimationFrame||bt)(xt)}var Ct=`https://tvapp.erdogan.gen.tr/api/access`,wt=`utopya.accessKey`,Tt=`utopya.accessAt`,Et=6048e5,Dt=I(null);async function Ot(e){try{let t=await fetch(Ct,{method:`POST`,body:e,cache:`no-store`});return t.status===204?`ok`:t.status===404?`wrong`:`offline`}catch(e){return`offline`}}function kt(e){try{return localStorage.getItem(e)}catch(e){return null}}function At(e){try{localStorage.setItem(wt,e),localStorage.setItem(Tt,String(Date.now()))}catch(e){}}async function jt(){let e=kt(wt);if(!e){Dt.value=!1;return}let t=Date.now()-Number(kt(Tt)||0)<Et;t&&(Dt.value=!0);let n=await Ot(e);if(n===`ok`)At(e),Dt.value=!0;else if(n===`wrong`||!t){if(n===`wrong`)try{localStorage.removeItem(wt)}catch(e){}Dt.value=!1}}var Mt={37:`left`,38:`up`,39:`right`,40:`down`,13:`ok`,10009:`back`,27:`back`,8:`back`,403:`red`,404:`green`,405:`yellow`,406:`blue`,112:`red`,113:`green`,114:`yellow`,115:`blue`,427:`chUp`,428:`chDown`,33:`chUp`,34:`chDown`,10252:`playPause`,415:`play`,19:`pause`,413:`stop`,412:`rew`,417:`ff`,457:`info`,458:`guide`,10190:`last`,10073:`channelList`,10135:`menu`,93:`menu`,77:`menu`};function Nt(e){return e.keyCode>=48&&e.keyCode<=57?`digit${e.keyCode-48}`:e.keyCode>=96&&e.keyCode<=105?`digit${e.keyCode-96}`:Mt[e.keyCode]}var Pt=`ColorF0Red.ColorF1Green.ColorF2Yellow.ColorF3Blue.ChannelUp.ChannelDown.PreviousChannel.ChannelList.Info.Guide.Tools.MediaPlayPause.MediaPlay.MediaPause.MediaStop.MediaRewind.MediaFastForward.0.1.2.3.4.5.6.7.8.9`.split(`.`),Ft=typeof tizen<`u`;function It(){if(!Ft)return;let e=new Set(tizen.tvinputdevice.getSupportedKeys().map(e=>e.name)),t=Pt.filter(t=>e.has(t));try{tizen.tvinputdevice.registerKeyBatch(t)}catch(e){t.forEach(e=>{try{tizen.tvinputdevice.registerKey(e)}catch(e){}})}}function Lt(){Ft?tizen.application.getCurrentApplication().exit():window.close()}var Rt=new Map,zt=new Map,Bt=`.content, .page, .page-flow`,Vt=e=>e.getAttribute(`data-focus-group`)||e,Ht=!1;function Ut(e){return e.getClientRects().length>0}function Wt(){let e=document.querySelectorAll(`[data-focus-scope]`);return e.length?e[e.length-1]:document}function Gt(e=Wt()){return Array.prototype.filter.call(e.querySelectorAll(`[data-focus]`),Ut)}function Kt(e){return e?e.closest(`[data-focus-group]`):null}function qt(e){if(!e)return!1;e.tabIndex<0&&!e.hasAttribute(`tabindex`)&&(e.tabIndex=-1),e.focus();let t=e.closest(Bt);t&&zt.set(Vt(t),e);let n=Kt(e);if(n&&(Rt.set(n.dataset.focusGroup,e),Rt.size>200&&Rt.forEach((e,t)=>{e.isConnected||Rt.delete(t)})),e.closest(`[data-focus-noscroll]`))return!0;let r=e;return r.scrollIntoViewIfNeeded?r.scrollIntoViewIfNeeded(!1):e.scrollIntoView({block:`nearest`,inline:`nearest`}),Jt(e),!0}function Jt(e){for(let t=e.parentElement;t&&t!==document.body;t=t.parentElement){if(t.scrollHeight<=t.clientHeight+1||getComputedStyle(t).overflowY===`visible`)continue;let n=parseFloat(getComputedStyle(document.documentElement).fontSize)*1.6,r=e.getBoundingClientRect(),i=t.getBoundingClientRect();r.top-n<i.top?t.scrollTop-=i.top-(r.top-n):r.bottom+n>i.bottom&&(t.scrollTop+=r.bottom+n-i.bottom);return}}function Yt(e){let t=e.querySelector(`[data-focus-default]`);if(t&&Ut(t))return t;let n=e instanceof HTMLElement&&e.dataset.focusGroup,r=n?Rt.get(n):void 0;if(r&&r.isConnected&&Ut(r))return r;let i=e.querySelector(`[data-focus-initial]`);return i&&Ut(i)?i:Gt(e)[0]}function L(e){return e?qt(Yt(e)):!1}function Xt(){let e=Array.prototype.filter.call(document.querySelectorAll(Bt),Ut)[0];if(!e)return!1;let t=zt.get(Vt(e));return qt(t&&t.isConnected&&Ut(t)&&e.contains(t)?t:Yt(e))}function Zt(e,t,n){let r=n===`left`||n===`right`,i=r?e.left+e.width/2:e.top+e.height/2,a=r?t.left+t.width/2:t.top+t.height/2;if(n===`right`||n===`down`?a<=i+1:a>=i-1)return null;let o=Math.max(0,n===`right`?t.left-e.right:n===`left`?e.left-t.right:n===`down`?t.top-e.bottom:e.top-t.bottom),[s,c,l,u]=r?[e.top,e.bottom,t.top,t.bottom]:[e.left,e.right,t.left,t.right],d=Math.max(0,l-c,s-u);return o===0&&d>0?null:[o,d+Math.abs((s+c)/2-(l+u)/2)*.05,d]}function Qt(e){var t,n;let r=document.activeElement,i=Gt();if(!r||!r.hasAttribute(`data-focus`)||i.indexOf(r)<0)return qt(Yt(Wt())||i[0]);let a=$t(r,e);if(a)return qt(a);if(e===`down`&&r.closest(`.topbar`)&&Xt())return!0;let o=r.getBoundingClientRect(),s=[];for(let t of i){if(t===r)continue;let n=Zt(o,t.getBoundingClientRect(),e);n&&s.push([t,n[0],n[1],n[2]])}if(e===`left`||e===`right`){let e=s.filter(e=>e[3]===0);e.length&&(s=e)}else{let t=r.closest(Bt);if(t){let e=s.filter(e=>e[3]===0&&t.contains(e[0]));e.length&&(s=e)}else if(e===`up`&&r.closest(`.topbar`))return!1}let c=1/0;for(let e of s)e[1]<c&&(c=e[1]);let l=parseFloat(getComputedStyle(document.documentElement).fontSize),u=Math.min((e===`up`||e===`down`?o.height:o.width)/2,3*l),d,f=1/0;for(let[e,t,n]of s)t<=c+u&&n<f&&(f=n,d=e);if(!d)return!1;let p=d.classList.contains(`shelf-all`)?d.closest(`.shelf`):null,m=p&&!p.contains(r)?p.querySelector(`.shelf-row`):null;m&&(d=(t=Yt(m))==null?d:t);let h=Kt(d);return h&&h!==Kt(r)&&!h.contains(r)&&(d=(n=Yt(h))==null?d:n),qt(d)}function $t(e,t){let n=e.closest(`.shelf`),r=n&&n.querySelector(`.shelf-all`);if(n&&r&&Ut(r)){if(t===`up`&&e!==r&&e.closest(`.shelf-row`))return r;if(t===`down`&&e===r)return Yt(n.querySelector(`.shelf-row`))}}var en=[];function tn(e){let t=F(e);t.current=e,P(()=>{let e=(e,n)=>t.current(e,n);return en.push(e),()=>{let t=en.indexOf(e);t>=0&&en.splice(t,1)}},[])}var nn=600,rn,an=!1;function on(e){return!!e&&(e.tagName===`INPUT`||e.tagName===`TEXTAREA`)}var sn=65376,cn=65385;function ln(e,t){let n=Nt(e),r=()=>{e.preventDefault();let n=t.closest(`[data-focus]`);t.blur(),qt(n)};if(e.keyCode===sn||e.keyCode===cn||n===`ok`||n===`back`&&e.keyCode!==8)return r(),!0;let i=t.selectionStart===0&&t.selectionEnd===0,a=t.selectionStart===t.value.length;return(n===`up`||n===`down`||n===`left`&&i||n===`right`&&a)&&(r(),Qt(n)),!0}function un(e){document.addEventListener(`keydown`,t=>{let n=document.activeElement;if(on(n)&&ln(t,n))return;let r=Nt(t);if(!r)return;if(r===`ok`){if(t.preventDefault(),t.repeat||rn!==void 0||an)return;rn=window.setTimeout(()=>{var e;rn=void 0,an=!0,(e=document.activeElement)==null||e.dispatchEvent(new CustomEvent(`longpress`,{bubbles:!0}))},nn);return}if(t.preventDefault(),t.repeat){if(Ht)return;Ht=!0,requestAnimationFrame(()=>{Ht=!1})}let i=!1;for(let e=en.length-1;e>=0;e--){let n=en[e](r,t);if(n==="default"){i=!0;break}if(n)return}r===`left`||r===`right`||r===`up`||r===`down`?Qt(r):i||e(r,t)}),document.addEventListener(`keyup`,e=>{var t;if(!(Nt(e)!==`ok`||on(document.activeElement))){if(e.preventDefault(),an)an=!1;else if(rn!==void 0){clearTimeout(rn),rn=void 0;for(let t=en.length-1;t>=0;t--){let n=en[t](`ok`,e);if(n==="default")break;if(n)return}(t=document.activeElement)==null||t.click()}}})}var dn={app_name:`UtopyaTV`,loading:`Yükleniyor…`,ok:`Tamam`,cancel:`İptal`,retry:`Tekrar dene`,save:`Kaydet`,delete:`Sil`,back:`Geri`,pin_wrong:`PIN hatalı`,pin_enter:`PIN girin`,pin_new:`Yeni PIN belirleyin`,nav_home:`Ana Sayfa`,nav_live:`Canlı TV`,nav_guide:`Rehber`,nav_movies:`Filmler`,nav_series:`Diziler`,nav_search:`Ara`,nav_recordings:`Kayıtlar`,nav_settings:`Ayarlar`,empty_no_provider:`Henüz bir kaynak eklenmedi.`,add_provider:`Kaynak ekle`,empty_list:`Burada gösterilecek bir şey yok.`,error_network:`Sunucuya bağlanılamadı. İnternet bağlantınızı ve adresi kontrol edin.`,error_timeout:`Sunucu zamanında yanıt vermedi. Lütfen tekrar deneyin.`,error_auth:`Kullanıcı adı veya parola hatalı.`,error_expired:`Aboneliğinizin süresi dolmuş.`,error_not_found:`Adres bulunamadı (404). Adresi kontrol edin.`,error_server:`Sunucu hatası. Daha sonra tekrar deneyin.`,error_parse:`Kaynak okunamadı; geçerli bir M3U/Xtream kaynağı olmayabilir.`,error_empty:`Kaynakta hiç kanal veya içerik bulunamadı.`,error_storage:`Yetersiz depolama alanı.`,error_unknown:`Beklenmeyen bir hata oluştu.`,onb_welcome:`UtopyaTV'ye hoş geldiniz`,onb_choose:`Başlamak için bir kaynak türü seçin. Uygulama içerik sağlamaz; kendi aboneliğinizin bilgilerini girin.`,onb_m3u_url:`M3U adresi`,onb_m3u_url_desc:`İnternetteki bir M3U/M3U8 listesi`,onb_m3u_file:`Yerel M3U dosyası`,onb_m3u_file_desc:`Cihazdaki bir dosyayı seçin`,onb_xtream:`Xtream Codes`,onb_xtream_desc:`Sunucu, kullanıcı adı ve parola`,onb_phone:`Telefondan gir`,onb_phone_desc:`QR kodu okutun, bilgileri telefonda yazın`,onb_name:`Kaynak adı`,onb_name_ph:`Örn. Evdeki liste`,onb_url:`Liste adresi`,onb_server:`Sunucu adresi`,onb_username:`Kullanıcı adı`,onb_password:`Parola`,onb_epg:`EPG (XMLTV) adresi — isteğe bağlı`,onb_user_agent:`User-Agent — isteğe bağlı`,onb_live_format:`Canlı yayın biçimi`,onb_connect:`Bağlan`,onb_validating:`Bilgiler doğrulanıyor…`,onb_file_none:`Bu cihazda dosya seçici yok. Dosyayı "Telefondan gir" seçeneğiyle yükleyebilirsiniz.`,onb_file_chosen:`Seçilen dosya: %1$s`,onb_pick_file:`Dosya seç`,onb_phone_title:`Telefonunuzla QR kodu okutun`,onb_phone_hint:`Telefon ve TV aynı Wi-Fi ağında olmalı. Adres: %1$s`,onb_phone_no_network:`Ağ bağlantısı bulunamadı. TV'nin Wi-Fi veya kabloyla bağlı olduğundan emin olun.`,onb_required:`Lütfen gerekli alanları doldurun.`,sync_title:`Kaynak hazırlanıyor`,sync_connecting:`Bağlanılıyor…`,sync_categories:`Kategoriler alınıyor…`,sync_live:`Canlı kanallar: %1$d`,sync_movies:`Filmler: %1$d`,sync_series:`Diziler: %1$d`,sync_epg:`Yayın akışı: %1$d program`,sync_done:`Hazır!`,sync_failed:`Senkronizasyon başarısız`,sync_continue:`Devam et`,sync_background:`Arka planda devam et`,cat_all:`Tüm Kanallar`,cat_favorites:`Favoriler`,cat_recent:`Son İzlenenler`,cat_locked_hint:`Kilitli`,no_program:`Program bilgisi yok`,now_label:`Şimdi`,next_label:`Sonra`,menu_add_favorite:`Favorilere ekle`,menu_remove_favorite:`Favorilerden çıkar`,menu_hide:`Gizle`,menu_unhide:`Göster`,menu_lock:`PIN ile kilitle`,menu_unlock:`Kilidi kaldır`,menu_pin_top:`En üste sabitle`,menu_unpin:`Sabitlemeyi kaldır`,menu_add_to_group:`Gruba ekle`,menu_remove_from_group:`Gruptan çıkar`,menu_new_group:`Yeni grup oluştur`,menu_delete_group:`Grubu sil`,menu_epg_mapping:`EPG eşleştirmesini düzelt`,menu_play_external:`Harici oynatıcıda aç`,group_name:`Grup adı`,group_default_name:`Grubum %1$d`,pin_needed_first:`Önce Ayarlar → Ebeveyn kontrolü bölümünden bir PIN belirleyin.`,locked_content:`Bu içerik kilitli`,channel_number:`Kanal %1$s`,channel_not_found:`Kanal bulunamadı`,player_error_network:`Yayına bağlanılamadı. Bağlantınızı kontrol edin.`,player_error_auth:`Yayına erişim reddedildi (abonelik veya bağlantı sınırı).`,player_error_not_found:`Yayın bulunamadı; kaynak kapalı olabilir.`,player_error_format:`Yayın biçimi desteklenmiyor.`,player_error_decoder:`Bu cihaz yayını çözemedi. Ayarlardan yazılım çözücüyü deneyin.`,player_error_unknown:`Yayın oynatılamadı.`,player_error_timeout:`Sunucu zamanında yanıt vermedi.`,player_error_server:`Yayın sunucusunda bir sorun var; biraz sonra tekrar deneyin.`,player_error_limit:`Hesabınızın aynı anda izleme sınırı doldu. Başka cihazdaki yayını kapatıp tekrar deneyin.`,player_error_detail:`Ayrıntı: %1$s`,player_fallback_reason:`Kanal açılamadı (%1$s); önceki kanala dönüldü.`,player_retrying:`Yeniden deneniyor… (%1$d)`,player_audio:`Ses dili`,player_subtitles:`Altyazı`,player_aspect:`Görüntü oranı`,player_quality:`Video kalitesi`,player_auto:`Otomatik`,player_off:`Kapalı`,aspect_fit:`Sığdır`,aspect_fill:`Doldur`,aspect_zoom:`Yakınlaştır`,player_options:`Seçenekler`,player_no_tracks:`Seçenek yok`,player_live:`CANLI`,player_paused:`Duraklatıldı`,player_go_live:`Canlıya dön`,player_favorite_added:`Favorilere eklendi`,player_favorite_removed:`Favorilerden çıkarıldı`,player_hint_live:`OK: kontroller · ◀ kanallar · ▶ yayın akışı · ▲▼ kanal · MENU seçenekler`,live_empty_category:`Bu kategoride kanal yok.`,live_syncing:`Kanallar yükleniyor, lütfen bekleyin…`,minutes_left:`+%1$d dk`,track_n:`Parça %1$d`,epg_mapping_title:`EPG eşleştirmesi`,epg_mapping_auto:`Otomatik eşleştirme`,epg_mapping_filter:`EPG kanalı ara`,epg_mapping_none:`Bu kaynak için EPG kanalı yok. Önce yayın akışını güncelleyin.`,epg_mapping_current:`Şu anki eşleşme: %1$s`,guide_now:`Şimdi`,guide_prev_day:`Önceki gün`,guide_next_day:`Sonraki gün`,guide_category:`Kategori: %1$s`,guide_watch:`İzle`,guide_watch_archive:`Arşivden izle`,guide_remind:`Hatırlat`,guide_remind_off:`Hatırlatmayı kaldır`,guide_record:`Kaydet`,guide_close:`Kapat`,guide_reminder_set:`Hatırlatıcı kuruldu`,guide_no_data:`Bu kanal için yayın akışı yok`,guide_search:`Ara`,guide_hint:`◀ ▶ zaman · OK ayrıntı · CH± sayfa`,guide_empty:`Yayın akışı henüz yok. Kaynağın EPG adresini kontrol edin veya Ayarlar'dan güncelleyin.`,nav_menu_title:`UtopyaTV`,guide_reminder_removed:`Hatırlatıcı kaldırıldı`,player_guide:`Yayın akışı`,shelf_continue:`İzlemeye devam et`,shelf_recent:`Son eklenenler`,shelf_favorites:`Favorilerim`,shelf_see_all:`Tümünü gör`,vod_play:`Oynat`,vod_resume:`Devam et (%1$s)`,vod_restart:`Baştan başla`,vod_mark_watched:`İzlendi olarak işaretle`,vod_mark_unwatched:`İzlenmedi olarak işaretle`,vod_add_favorite:`Favorilere ekle`,vod_remove_favorite:`Favorilerden çıkar`,vod_cast:`Oyuncular: %1$s`,vod_director:`Yönetmen: %1$s`,vod_minutes:`%1$d dk`,vod_season:`%1$d. Sezon`,vod_episodes_loading:`Bölümler yükleniyor…`,vod_no_episodes:`Bölüm bulunamadı.`,vod_episode_title:`%1$d. Bölüm · %2$s`,vod_empty:`Bu kaynakta film/dizi yok.`,vod_next_episode:`Sonraki bölüm %1$d sn içinde`,vod_play_now:`Şimdi oynat`,vod_episodes:`Bölümler`,vod_hint:`OK oynat/duraklat · ▲ kontroller · ◀▶ sar · ▼ bölümler · MENU seçenekler`,vod_watched:`İzlendi`,locked_unlock:`Kilitli · açmak için OK`,shelf_platforms:`Platformlar`,shelf_genres:`Türler`,browse_all:`Tümü`,sort_label:`Sırala: %1$s`,genre_label:`Tür: %1$s`,sort_added:`Yeni eklenen`,sort_name:`A–Z`,sort_rating:`Puan`,sort_year:`Yıl`,browse_count:`%1$d içerik`,search_hint:`Kanal, film, dizi veya program ara`,search_voice:`Sesli ara`,search_recent:`Son aramalar`,search_clear:`Geçmişi temizle`,search_no_results:`"%1$s" için sonuç bulunamadı.`,search_channels:`Kanallar`,search_movies:`Filmler`,search_series:`Diziler`,search_programs:`Programlar`,search_searching:`Aranıyor…`,home_favorite_channels:`Favori kanallar`,home_recent_channels:`Son izlenen kanallar`,home_new_movies:`Yeni filmler`,home_new_series:`Yeni diziler`,home_source:`Kaynak: %1$s`,home_switch_source:`Kaynak değiştir`,home_empty:`Başlamak için Canlı TV, Filmler veya Diziler bölümüne gidin. Favoriler ve izlemeye devam et burada görünecek.`,home_greeting_morning:`Günaydın`,home_greeting_day:`İyi günler`,home_greeting_evening:`İyi akşamlar`,player_archive:`ARŞİV`,player_archive_hint:`◀▶ 30 sn · ⏪⏩ 2 dk · OK duraklat · MENU → Canlıya dön`,archive_unavailable:`Bu program için arşiv adresi oluşturulamadı.`,guide_restart:`Baştan başlat`,player_timeshift:`ZAMAN KAYDIRMA`,timeshift_starting:`Zaman kaydırma başlatılıyor…`,timeshift_failed:`Zaman kaydırma başlatılamadı; canlı yayına dönüldü.`,timeshift_hint:`◀▶ 30 sn · ⏪⏩ 2 dk · OK oynat/duraklat · MENU → Canlıya dön`,timeshift_behind:`Canlının %1$s gerisinde`,rec_tab_recordings:`Kayıtlar`,rec_tab_scheduled:`Zamanlanmış`,rec_tab_downloads:`İndirmeler`,rec_storage:`Depolama: %1$s · %2$s boş`,rec_storage_internal:`Dahili`,rec_storage_usb:`USB/SD %1$d`,rec_storage_pick:`Depolama konumu`,rec_empty:`Henüz kayıt yok. Rehberde bir programı seçip "Kaydet"e basın ya da izlerken MENU → Şimdi kaydet.`,rec_scheduled_empty:`Zamanlanmış kayıt yok.`,dl_empty:`İndirme yok. Film veya bölüm sayfasından "İndir"e basın.`,rec_status_scheduled:`Zamanlandı`,rec_status_recording:`Kaydediliyor`,rec_status_completed:`Tamamlandı`,rec_status_failed:`Başarısız`,rec_status_cancelled:`İptal edildi`,rec_cancel:`Kaydı durdur / iptal et`,rec_delete:`Kaydı sil`,rec_play:`Oynat`,rec_scheduled_ok:`Kayıt zamanlandı: %1$s`,rec_conflict:`Bu saatte başka bir kayıt var: %1$s. Yine de kaydedilsin mi? (Hesabınız tek bağlantıya izin veriyorsa biri başarısız olabilir.)`,rec_no_space:`Yetersiz depolama alanı (en az 500 MB gerekli).`,rec_invalid:`Bu program kaydedilemez (bitmiş).`,rec_now:`Şimdi kaydet`,rec_now_live:`Canlı kayıt`,rec_badge:`KAYIT`,dl_download:`İndir`,dl_downloading:`İndiriliyor %1$d%%`,dl_paused:`Duraklatıldı %1$d%%`,dl_done:`İndirildi · çevrimdışı oynatılabilir`,dl_failed:`İndirme başarısız · tekrar dene`,dl_pause:`Duraklat`,dl_resume:`Devam et`,dl_delete:`İndirmeyi sil`,dl_queued:`Sırada`,dl_started:`İndirme sıraya eklendi`,set_sources:`Kaynaklar`,set_player:`Oynatıcı`,set_appearance:`Görünüm ve dil`,set_epg:`Yayın akışı (EPG)`,set_parental:`Ebeveyn kontrolü`,set_hidden:`Gizlenenler`,set_storage:`Depolama`,set_backup:`Yedekle / Geri yükle`,set_update:`Güncelleme`,set_about:`Hakkında`,set_on:`Açık`,set_off:`Kapalı`,set_active:`Etkin kaynak`,set_make_active:`Etkin yap`,set_edit:`Düzenle`,set_resync:`Şimdi yenile`,set_delete_source:`Kaynağı sil`,set_delete_confirm:`"%1$s" ve tüm verileri silinsin mi?`,set_add_source:`Yeni kaynak ekle`,set_last_sync:`Son yenileme: %1$s`,set_never:`hiç`,set_account:`Hesap bilgisi`,set_account_status:`Durum: %1$s`,set_account_expiry:`Bitiş: %1$s`,set_account_unlimited:`süresiz`,set_account_connections:`Bağlantı: %1$s / %2$s`,set_account_trial:`Deneme hesabı`,set_account_loading:`Hesap bilgisi alınıyor…`,set_account_none:`Hesap bilgisi yalnızca Xtream kaynaklarında gösterilir.`,set_buffer:`Tampon süresi`,set_buffer_value:`%1$d sn`,set_decoder:`Çözücü modu`,set_decoder_hw:`Donanım (önerilen)`,set_decoder_sw:`Yazılım öncelikli (FFmpeg)`,set_preview:`Canlı TV'de önizleme oynat`,set_auto_next:`Sonraki bölümü otomatik oynat`,set_timeshift:`Duraklatınca zaman kaydırma`,set_fallback:`Kanal açılmazsa önceki kanala dön`,set_audio_lang:`Tercih edilen ses dili`,set_sub_lang:`Tercih edilen altyazı`,set_sub_size:`Altyazı boyutu`,set_lang_default:`Yayının varsayılanı`,set_aspect:`Varsayılan görüntü oranı`,set_start:`Açılış ekranı`,start_home:`Ana sayfa`,start_live:`Canlı TV`,start_guide:`Rehber`,start_movies:`Filmler`,start_series:`Diziler`,start_last:`Son izlenen kanal`,set_numbering:`Kanal numaralandırma`,numbering_global:`Tüm liste`,numbering_category:`Kategori içi`,set_language:`Uygulama dili`,lang_tr:`Türkçe`,lang_en:`English`,lang_system:`Cihaz dili`,set_epg_interval:`Otomatik yenileme aralığı`,set_epg_hours:`%1$d saat`,set_epg_offset:`EPG saat kaydırması`,set_epg_offset_value:`%1$+d dk`,set_epg_refresh:`Yayın akışını şimdi güncelle`,set_epg_urls:`Harici XMLTV adresleri kaynak düzenleme ekranından eklenir.`,set_pin_set:`PIN belirle`,set_pin_change:`PIN değiştir`,set_pin_remove:`PIN kaldır`,set_pin_saved:`PIN kaydedildi`,set_pin_removed:`PIN kaldırıldı`,set_pin_confirm:`PIN'i tekrar girin`,set_pin_mismatch:`PIN'ler eşleşmedi`,set_hide_locked:`Kilitli kategorileri tamamen gizle`,set_adult_lock:`Yetişkin kategorilerini otomatik kilitle`,set_parental_hint:`Kategori kilitlemek için Canlı TV'de kategoriye uzun basın.`,set_hidden_categories:`Gizli kategoriler`,set_hidden_channels:`Gizli kanallar`,set_hidden_none:`Gizlenmiş öğe yok.`,set_unhide:`Göster (gizlemeyi kaldır)`,set_backup_now:`Şimdi yedekle`,set_backup_done:`Yedek kaydedildi: %1$s`,set_backup_warning:`Yedek dosyası kaynak parolalarını içerir; güvenli saklayın.`,set_restore:`Geri yükle`,set_restore_none:`Kayıtlı yedek bulunamadı.`,set_restore_confirm:`Bu yedek geri yüklensin mi? Mevcut kaynaklar ve tercihler değiştirilecek.`,set_restore_done:`Yedek geri yüklendi; kaynaklar yenileniyor.`,set_restore_file:`Dosyadan seç`,set_update_check:`Güncellemeleri denetle`,set_update_none:`Uygulama güncel (%1$s).`,set_update_available:`Yeni sürüm: %1$s`,set_update_install:`İndir ve kur`,set_update_downloading:`İndiriliyor… %1$d%%`,set_update_failed:`Güncelleme denetlenemedi. Bağlantınızı kontrol edin.`,set_update_permission:`Kurulum için "Bilinmeyen uygulamaları yükle" izni gerekiyor.`,set_version:`Sürüm %1$s`,set_about_text:`UtopyaTV yalnızca bir oynatıcıdır; içerik sağlamaz. Kendi aboneliğinizin bilgilerini girerek kullanın.`,set_keys:`Kumanda kısayolları`,set_keys_text:`OK/◀: kanal listesi · ▶: yayın akışı · ▲▼/CH±: kanal · 0-9: kanal no · Kırmızı: favori · Yeşil: ses · Sarı: altyazı · Mavi: görüntü oranı · ⏯: duraklat (zaman kaydırma) · MENU/uzun OK: seçenekler`,player_fallback:`Kanal açılamadı; önceki kanala dönüldü.`,mv_title:`Çoklu ekran`,mv_add:`Ekle`,mv_add_channel:`Kanal ekle`,mv_add_movie:`Film ekle`,mv_layout:`Düzen`,mv_layout_2:`İkili (yan yana)`,mv_layout_4:`Dörtlü (ızgara)`,mv_replace:`Değiştir`,mv_remove:`Kaldır`,mv_fullscreen:`Tam ekranda izle`,mv_empty_slot:`+ OK ile içerik ekle`,mv_hint:`◀▲▼▶ pencere seç (ses odaktakinden gelir) · OK seçenekler · MENU düzen`,mv_warn_decoder:`Bu cihaz aynı anda en fazla %1$d video çözebilir; bazı pencereler oynatılamayabilir.`,mv_warn_connections:`Hesabınız aynı anda %1$d bağlantıya izin veriyor; fazla pencere açılamayabilir.`,mv_open:`Çoklu ekranda aç`,mv_pick_channel:`Kanal seç`,mv_pick_movie:`Film seç`,ext_none:`Harici oynatıcı bulunamadı. VLC veya MX Player'ı Play Store'dan kurabilirsiniz.`,ext_choose:`Oynatıcı seçin`,player_speed:`Oynatma hızı`,player_sleep:`Uyku zamanlayıcısı`,sleep_off:`Kapalı`,sleep_minutes:`%1$d dakika sonra`,sleep_triggered:`Uyku zamanlayıcısı oynatmayı durdurdu.`,sleep_set:`Uyku zamanlayıcısı: %1$d dk`,exit_title:`Çıkış`,exit_message:`UtopyaTV'den çıkmak istiyor musunuz?`,player_info:`Yayın bilgisi`,info_video:`Görüntü: %1$s`,info_audio:`Ses: %1$s`,info_none:`Bilgi yok`,info_buffer:`Tampon: %1$s`,vod_prev_ep:`Önceki bölüm`,vod_next_ep:`Sonraki bölüm`,shelf_similar:`Benzer içerikler`,start_first_fav:`İlk favori kanal`,numbering_hidden:`Gizli`,set_accent:`Tema rengi`,accent_blue:`Mavi`,accent_orange:`Turuncu`,accent_green:`Yeşil`,accent_purple:`Mor`,accent_red:`Kırmızı`,set_color_keys:`Renkli tuşlar`,key_red:`Kırmızı tuş`,key_green:`Yeşil tuş`,key_yellow:`Sarı tuş`,key_blue:`Mavi tuş`,act_favorite:`Favori ekle/çıkar`,act_audio:`Ses dili`,act_subtitles:`Altyazı`,act_aspect:`Görüntü oranı`,act_guide:`Yayın akışı`,act_channels:`Kanal listesi`,act_record:`Şimdi kaydet`,act_multiview:`Çoklu ekran`,act_info:`Bilgi bandı`,act_none:`Hiçbiri`,set_remember_tracks:`Seçtiğim ses/altyazı dilini hatırla`,menu_move_up:`Yukarı taşı`,menu_move_down:`Aşağı taşı`,set_test_connection:`Bağlantıyı test et`,set_connection_ok:`Bağlantı başarılı: kaynak çevrimiçi.`,rec_once:`Bir kez kaydet`,rec_daily:`Her gün kaydet`,rec_weekly:`Her hafta kaydet`,rec_repeat_daily:`Her gün`,rec_repeat_weekly:`Her hafta`,onb_stalker:`Stalker Portal`,onb_stalker_desc:`MAG portal adresi ve MAC`,onb_portal:`Portal adresi`,onb_mac:`MAC adresi`,tips_title:`Kumanda kısayolları`,tips_ok:`Anladım`,tip_ok:`OK: kanalı aç · Kanaldayken OK: kanal listesi`,tip_long:`OK'ye uzun bas: favori, gizle, kilitle, gruba ekle, çoklu ekran`,tip_numbers:`Rakam tuşları: kanal numarasına atla`,tip_updown:`Yayında ▲▼ veya CH+/CH−: kanal değiştir`,tip_right:`Yayında ►: yayın akışı · MENU: ses, altyazı, görüntü`,tip_colors:`Renkli tuşlar: favori / ses / altyazı / oran (Ayarlar'dan değişir)`,tip_back:`GERİ: menüye dön · Menüde GERİ: çıkış onayı`,onb_tagline:`Kendi IPTV aboneliğiniz için hızlı ve modern oynatıcı`,onb_feat_live:`Canlı TV ve yayın akışı (EPG), arşiv ve zaman kaydırma`,onb_feat_vod:`Film ve diziler; Netflix, HBO Max, Disney+ gibi platform grupları`,onb_feat_tools:`Kayıt, indirme ve aynı anda iki yayın (çoklu ekran)`,onb_no_content:`Uygulama içerik sağlamaz; kendi aboneliğinizin bilgilerini girersiniz.`,onb_how:`Nasıl bağlanmak istersiniz?`,onb_badge_common:`En yaygın`,onb_badge_easy:`Klavyesiz`,onb_form_qr_title:`Telefonla doldurun`,onb_form_qr_hint:`Uzun adresleri kumandayla yazmak yerine QR kodu okutun. Telefon ve TV aynı Wi-Fi ağında olmalı.`,onb_phone_step1:`Telefon kamerasıyla QR kodu okutun`,onb_phone_step2:`Açılan sayfada bilgilerinizi yazın`,onb_phone_step3:`Gönder'e basın, TV kendiliğinden bağlanır`,onb_hint_m3u:`Sağlayıcınızın verdiği M3U/M3U8 bağlantısını yazın. Birden çok listeyi birleştirmek için adresleri boşlukla ayırın.`,onb_hint_xtream:`Sağlayıcınızın verdiği sunucu adresi, kullanıcı adı ve parolayı yazın.`,onb_hint_stalker:`Portal adresini ve cihazınıza tanımlı MAC adresini yazın.`,onb_hint_file:`Cihazdaki bir .m3u dosyasını seçin.`,onb_optional:`İsteğe bağlı ayarlar`,live_categories:`Kategoriler`,live_channel_count:`%1$d kanal`,live_preview:`Kanal önizleme`,pc_channels:`Kanallar`,pc_picture:`Görüntü`,pc_favorite:`Favori`,pc_record:`Kaydet`,pc_more:`Diğer`,pc_info:`Bilgi`,pc_play:`Oynat`,pc_pause:`Duraklat`,pc_prev:`Önceki`,pc_next:`Sonraki`,pc_speed:`Hız`,mv_add_series:`Dizi ekle`,group_by:`Grupla: %1$s`,group_category:`Kategori`,group_country:`Ülke`,group_genre:`Tür`,group_platform:`Platform`,genre_adult:`Yetişkin`,genre_kids:`Çocuk`,genre_sports:`Spor`,genre_news:`Haber`,genre_docs:`Belgesel`,genre_music:`Müzik ve radyo`,genre_movies:`Film ve dizi`,genre_religion:`Dini`,genre_local:`Yerel`,genre_national:`Ulusal`,genre_uhd:`4K / UHD`,genre_other:`Diğer`,onb_jellyfin:`Jellyfin`,onb_jellyfin_desc:`Kendi medya sunucunuz`,onb_hint_jellyfin:`Jellyfin sunucu adresini (ör. http://192.168.1.10:8096), kullanıcı adınızı ve parolanızı yazın.`,sub_load:`Altyazı dosyası yükle (SRT)`,sub_offset:`Altyazı zamanlaması`,sub_loaded:`Altyazı yüklendi`,sub_failed:`Altyazı dosyası okunamadı`,sub_no_picker:`Bu cihazda dosya seçici yok`,set_sub_color:`Altyazı rengi`,set_sub_bg:`Altyazı arka planı`,color_white:`Beyaz`,color_yellow:`Sarı`,color_cyan:`Camgöbeği`,set_max_quality:`En yüksek video kalitesi`,quality_auto:`Otomatik`,vod_versions:`Sürümler (%1$d)`,vod_version_standard:`Standart`,set_theme:`Tema`,theme_navy:`Lacivert`,theme_amoled:`AMOLED siyah`,theme_graphite:`Grafit`,theme_forest:`Orman`,theme_wine:`Bordo`,set_home_shelves:`Ana sayfa rafları`,set_move_hint:`OK: aç/kapat · Uzun bas: yukarı taşı`,set_filter_words:`Kategori filtre kelimeleri`,set_filter_words_hint:`Kategori adlarından atılır, virgülle ayırın (ör. [RAW], FHD, VIP)`,set_none:`Yok`,set_rec_folder:`Kayıt klasörü`,set_rec_folder_default:`Uygulama deposu (yukarıdaki seçim)`,set_rec_folder_hint:`Biten kayıtlar seçilen klasöre (USB, ağ klasörü…) taşınır. Uzun bas: varsayılana dön.`,nav_extensions:`Eklentiler`,ext_add:`Eklenti ekle`,ext_url:`Eklenti adresi (manifest.json)`,ext_empty:`Henüz eklenti yok. Stremio uyumlu bir eklentinin manifest adresini ekleyin.`,ext_note:`Uygulama içerik sağlamaz; yalnızca kullanma hakkınız olan eklentileri ekleyin.`,ext_remove:`Eklentiyi kaldır`,ext_failed:`Eklenti eklenemedi: adres geçersiz ya da erişilemiyor.`,ext_find_sources:`Kaynakları bul`,ext_sources:`Kaynaklar`,ext_no_sources:`Oynatılabilir kaynak bulunamadı (torrent kaynakları desteklenmez).`,ext_installed:`Kurulu eklentiler`,ext_specials:`Özel bölümler`,sub_url_title:`Altyazı adresi (SRT)`,sub_url_hint:`Bu cihazda dosya seçici yok. Altyazının internet adresini girin.`,brand_short:`UtopyaTV`,os_account:`OpenSubtitles hesabı`,os_account_none:`Ayarlanmadı`,os_account_set:`Ayarlandı`,os_account_hint:`opensubtitles.com'dan ücretsiz API anahtarı alın. Kullanıcı adı/parola isteğe bağlıdır; girilirse günlük indirme hakkı artar.`,os_api_key:`API anahtarı`,os_username:`Kullanıcı adı (isteğe bağlı)`,os_password:`Parola (isteğe bağlı)`,set_auto_subs:`Altyazıyı otomatik bul (OpenSubtitles)`,set_auto_subs_hint:`Yayında seçili dilde altyazı yoksa doğru eşleşen altyazı getirilir`,sub_find:`Altyazı bul (OpenSubtitles)`,sub_searching:`Altyazı aranıyor…`,sub_found:`Altyazı yüklendi: %1$s`,sub_not_found:`Bu içerik için doğru eşleşen altyazı bulunamadı`,sub_no_key:`Ayarlar → Oynatıcı'dan OpenSubtitles API anahtarını girin`,sub_limit:`OpenSubtitles günlük indirme hakkı doldu`,home_hero:`Öne çıkan`,home_up_next:`Sıradaki bölüm`,home_tonight:`Bu akşam maçlar`,home_schedule:`Hatırlatıcılar ve kayıtlar`,home_top_movies:`En yüksek puanlı filmler`,home_top_series:`En yüksek puanlı diziler`,home_top_rated:`En yüksek puanlılar`,home_new_episodes:`Favori dizilerde yeni bölüm`,home_new_episode_badge:`YENİ BÖLÜM`,home_dismiss_new:`Yeni bölüm bildirimini kapat`,home_for_you:`Bugün ne izlesem?`,home_for_you_genres:`Bugün ne izlesem? · %1$s`,home_starting_soon:`Birazdan başlıyor`,home_reminder_badge:`HATIRLATICI`,home_open_channel:`Kanalı aç`,home_genres:`Türlere göz at`,home_edit:`Ana sayfayı düzenle`,home_edit_hint:`OK: taşı · ▲▼: sırayı değiştir · OK: bırak · ▶: aç/kapat`,home_edit_moving:`Taşınıyor`,home_edit_reset:`Varsayılana dön`,home_edit_hidden:`Kapalı raflar`,home_kind_movie:`FİLM`,home_kind_series:`DİZİ`,browse_movie_count:`%1$d film`,browse_series_count:`%1$d dizi`,password_show:`Parolayı göster`,password_hide:`Parolayı gizle`,home_details:`Detaylar`,home_live_now:`ŞİMDİ`,home_rec:`KAYIT`,menu_remove_continue:`İzlemeye devam et'ten kaldır`,menu_remove_up_next:`Sıradaki bölümden kaldır (izleme geçmişi silinir)`,menu_remove_recent:`Son izlenenlerden kaldır`,menu_open:`Aç`,os_phone_title:`Telefondan girin`,os_phone_hint:`QR kodu okutun, anahtarı telefonda yapıştırıp Gönder'e basın. Telefon ve TV aynı Wi-Fi ağında olmalı.`,tz_coming_soon:`Bu bölüm sonraki fazda gelecek.`,tz_feat_tools:`Altyazı arama, arşivden izleme ve ebeveyn kontrolü`,tz_m3u_file_desc:`TV'ye takılı USB bellekteki bir dosya`,tz_hint_file:`TV'ye takılı USB bellekteki bir .m3u dosyasını seçin.`,tz_usb_title:`USB bellekteki listeler`,tz_usb_empty:`Takılı USB bellekte .m3u dosyası bulunamadı. Belleği takıp yeniden deneyin.`,tz_reminder_title:`%1$s başlıyor`,tz_reminder_text:`%1$s kanalında`,tz_update_hint:`TizenBrew ile kurulduysa uygulamayı kapatıp yeniden açın. Paketle (.wgt) kurulduysa yeni paketi bilgisayardan yeniden kurun.`,tz_keys_text:`OK/◀: kanal listesi · ▶: yayın akışı · ▲▼/CH±: kanal · 0-9: kanal no · Kırmızı: favori · Yeşil: ses · Sarı: altyazı · Mavi: görüntü oranı · ⏯: duraklat · TOOLS/uzun OK: seçenekler`,tz_sub_offset_value:`%1$s sn`,tz_archive_hint:`◀▶ 30 sn · ⏪⏩ 2 dk · OK duraklat · ■ ya da uzun OK → Canlıya dön`,tz_remind_daily:`Her gün hatırlat`,tz_remind_weekly:`Her hafta hatırlat`,tz_rec_note:`Tizen'de yayın kaydı yapılamaz. Zamanlanan programlar başlamadan önce hatırlatılır, oradan kanala geçebilirsiniz.`,tz_onb_help_title:`İpuçları`,tz_onb_help_keyboard:`Uzun adresleri telefondaki SmartThings uygulamasının klavyesiyle yazabilirsiniz (TV ile aynı Wi-Fi'da).`,tz_onb_help_server:`Sunucu adresini sağlayıcınız verir; genellikle http://alanadi:8080 biçimindedir. Sondaki / gerekmez.`,tz_onb_help_creds:`Kullanıcı adı ve parola büyük/küçük harfe duyarlıdır. Parolayı kontrol etmek için yanındaki göz düğmesini kullanın.`,tz_onb_help_m3u:`Birden çok listeyi birleştirmek için adresleri boşlukla ayırın.`,tz_onb_help_file:`Listeyi (.m3u) USB belleğe kopyalayıp TV'ye takın, sonra "Dosya seç"e basın.`,tz_onb_help_epg:`Yayın akışı adresi isteğe bağlıdır; boş bırakırsanız sağlayıcının kendi akışı kullanılır.`,tz_onb_help_privacy:`Bilgileriniz yalnızca bu cihazda saklanır.`,tz_access_title:`Erişim anahtarı`,tz_access_text:`Bu uygulama kişisel kullanım içindir. Devam etmek için erişim anahtarını girin.`,tz_access_label:`Anahtar`,tz_access_continue:`Devam`,tz_access_checking:`Denetleniyor…`,tz_access_wrong:`Anahtar yanlış.`,tz_access_offline:`Anahtar denetlenemedi. İnternet bağlantısını kontrol edip tekrar deneyin.`},fn={app_name:`UtopyaTV`,loading:`Loading…`,ok:`OK`,cancel:`Cancel`,retry:`Retry`,save:`Save`,delete:`Delete`,back:`Back`,pin_wrong:`Wrong PIN`,pin_enter:`Enter PIN`,pin_new:`Set a new PIN`,nav_home:`Home`,nav_live:`Live TV`,nav_guide:`Guide`,nav_movies:`Movies`,nav_series:`Series`,nav_search:`Search`,nav_recordings:`Recordings`,nav_settings:`Settings`,empty_no_provider:`No source has been added yet.`,add_provider:`Add source`,empty_list:`Nothing to show here.`,error_network:`Could not reach the server. Check your internet connection and the address.`,error_timeout:`The server did not respond in time. Please try again.`,error_auth:`Wrong username or password.`,error_expired:`Your subscription has expired.`,error_not_found:`Address not found (404). Check the URL.`,error_server:`Server error. Try again later.`,error_parse:`Could not read the source; it may not be a valid M3U/Xtream source.`,error_empty:`No channels or content were found in the source.`,error_storage:`Not enough storage space.`,error_unknown:`An unexpected error occurred.`,onb_welcome:`Welcome to UtopyaTV`,onb_choose:`Choose a source type to get started. The app provides no content; enter your own subscription details.`,onb_m3u_url:`M3U URL`,onb_m3u_url_desc:`An M3U/M3U8 playlist on the internet`,onb_m3u_file:`Local M3U file`,onb_m3u_file_desc:`Pick a file on this device`,onb_xtream:`Xtream Codes`,onb_xtream_desc:`Server, username and password`,onb_phone:`Enter from phone`,onb_phone_desc:`Scan the QR code and type on your phone`,onb_name:`Source name`,onb_name_ph:`e.g. Home list`,onb_url:`Playlist URL`,onb_server:`Server URL`,onb_username:`Username`,onb_password:`Password`,onb_epg:`EPG (XMLTV) URL — optional`,onb_user_agent:`User-Agent — optional`,onb_live_format:`Live stream format`,onb_connect:`Connect`,onb_validating:`Validating details…`,onb_file_none:`No file picker on this device. You can upload the file with "Enter from phone".`,onb_file_chosen:`Selected file: %1$s`,onb_pick_file:`Choose file`,onb_phone_title:`Scan the QR code with your phone`,onb_phone_hint:`Phone and TV must be on the same Wi-Fi. Address: %1$s`,onb_phone_no_network:`No network found. Make sure the TV is connected via Wi-Fi or cable.`,onb_required:`Please fill in the required fields.`,sync_title:`Preparing source`,sync_connecting:`Connecting…`,sync_categories:`Fetching categories…`,sync_live:`Live channels: %1$d`,sync_movies:`Movies: %1$d`,sync_series:`Series: %1$d`,sync_epg:`Program guide: %1$d programs`,sync_done:`Ready!`,sync_failed:`Sync failed`,sync_continue:`Continue`,sync_background:`Continue in background`,cat_all:`All Channels`,cat_favorites:`Favorites`,cat_recent:`Recently Watched`,cat_locked_hint:`Locked`,no_program:`No program info`,now_label:`Now`,next_label:`Next`,menu_add_favorite:`Add to favorites`,menu_remove_favorite:`Remove from favorites`,menu_hide:`Hide`,menu_unhide:`Show`,menu_lock:`Lock with PIN`,menu_unlock:`Remove lock`,menu_pin_top:`Pin to top`,menu_unpin:`Unpin`,menu_add_to_group:`Add to group`,menu_remove_from_group:`Remove from group`,menu_new_group:`Create new group`,menu_delete_group:`Delete group`,menu_epg_mapping:`Fix EPG mapping`,menu_play_external:`Open in external player`,group_name:`Group name`,group_default_name:`My group %1$d`,pin_needed_first:`First set a PIN in Settings → Parental control.`,locked_content:`This content is locked`,channel_number:`Channel %1$s`,channel_not_found:`Channel not found`,player_error_network:`Could not connect to the stream. Check your connection.`,player_error_auth:`Access to the stream was denied (subscription or connection limit).`,player_error_not_found:`Stream not found; the source may be offline.`,player_error_format:`The stream format is not supported.`,player_error_decoder:`This device could not decode the stream. Try the software decoder in Settings.`,player_error_unknown:`The stream could not be played.`,player_error_timeout:`The server did not respond in time.`,player_error_server:`The stream server has a problem; try again shortly.`,player_error_limit:`Your account's simultaneous stream limit is reached. Stop playback on another device and retry.`,player_error_detail:`Detail: %1$s`,player_fallback_reason:`Channel failed to open (%1$s); switched back to the previous channel.`,player_retrying:`Retrying… (%1$d)`,player_audio:`Audio language`,player_subtitles:`Subtitles`,player_aspect:`Aspect ratio`,player_quality:`Video quality`,player_auto:`Auto`,player_off:`Off`,aspect_fit:`Fit`,aspect_fill:`Fill`,aspect_zoom:`Zoom`,player_options:`Options`,player_no_tracks:`No options`,player_live:`LIVE`,player_paused:`Paused`,player_go_live:`Back to live`,player_favorite_added:`Added to favorites`,player_favorite_removed:`Removed from favorites`,player_hint_live:`OK: controls · ◀ channels · ▶ guide · ▲▼ channel · MENU options`,live_empty_category:`No channels in this category.`,live_syncing:`Loading channels, please wait…`,minutes_left:`+%1$d min`,track_n:`Track %1$d`,epg_mapping_title:`EPG mapping`,epg_mapping_auto:`Automatic mapping`,epg_mapping_filter:`Search EPG channels`,epg_mapping_none:`No EPG channels for this source. Update the program guide first.`,epg_mapping_current:`Current mapping: %1$s`,guide_now:`Now`,guide_prev_day:`Previous day`,guide_next_day:`Next day`,guide_category:`Category: %1$s`,guide_watch:`Watch`,guide_watch_archive:`Watch from archive`,guide_remind:`Remind me`,guide_remind_off:`Cancel reminder`,guide_record:`Record`,guide_close:`Close`,guide_reminder_set:`Reminder set`,guide_no_data:`No guide data for this channel`,guide_search:`Search`,guide_hint:`◀ ▶ time · OK details · CH± page`,guide_empty:`No program guide yet. Check the source EPG URL or refresh it in Settings.`,nav_menu_title:`UtopyaTV`,guide_reminder_removed:`Reminder removed`,player_guide:`Program guide`,shelf_continue:`Continue watching`,shelf_recent:`Recently added`,shelf_favorites:`My favorites`,shelf_see_all:`See all`,vod_play:`Play`,vod_resume:`Resume (%1$s)`,vod_restart:`Start over`,vod_mark_watched:`Mark as watched`,vod_mark_unwatched:`Mark as unwatched`,vod_add_favorite:`Add to favorites`,vod_remove_favorite:`Remove from favorites`,vod_cast:`Cast: %1$s`,vod_director:`Director: %1$s`,vod_minutes:`%1$d min`,vod_season:`Season %1$d`,vod_episodes_loading:`Loading episodes…`,vod_no_episodes:`No episodes found.`,vod_episode_title:`Episode %1$d · %2$s`,vod_empty:`No movies/series in this source.`,vod_next_episode:`Next episode in %1$d s`,vod_play_now:`Play now`,vod_episodes:`Episodes`,vod_hint:`OK play/pause · ▲ controls · ◀▶ seek · ▼ episodes · MENU options`,vod_watched:`Watched`,locked_unlock:`Locked · press OK to unlock`,shelf_platforms:`Platforms`,shelf_genres:`Genres`,browse_all:`All`,sort_label:`Sort: %1$s`,genre_label:`Genre: %1$s`,sort_added:`Recently added`,sort_name:`A–Z`,sort_rating:`Rating`,sort_year:`Year`,browse_count:`%1$d titles`,search_hint:`Search channels, movies, series or programs`,search_voice:`Voice search`,search_recent:`Recent searches`,search_clear:`Clear history`,search_no_results:`No results for "%1$s".`,search_channels:`Channels`,search_movies:`Movies`,search_series:`Series`,search_programs:`Programs`,search_searching:`Searching…`,home_favorite_channels:`Favorite channels`,home_recent_channels:`Recently watched channels`,home_new_movies:`New movies`,home_new_series:`New series`,home_source:`Source: %1$s`,home_switch_source:`Switch source`,home_empty:`Go to Live TV, Movies or Series to get started. Favorites and continue watching will appear here.`,home_greeting_morning:`Good morning`,home_greeting_day:`Good afternoon`,home_greeting_evening:`Good evening`,player_archive:`ARCHIVE`,player_archive_hint:`◀▶ 30 s · ⏪⏩ 2 min · OK pause · MENU → Back to live`,archive_unavailable:`Could not build an archive URL for this program.`,guide_restart:`Start over`,player_timeshift:`TIMESHIFT`,timeshift_starting:`Starting timeshift…`,timeshift_failed:`Timeshift could not start; back to live.`,timeshift_hint:`◀▶ 30 s · ⏪⏩ 2 min · OK play/pause · MENU → Back to live`,timeshift_behind:`%1$s behind live`,rec_tab_recordings:`Recordings`,rec_tab_scheduled:`Scheduled`,rec_tab_downloads:`Downloads`,rec_storage:`Storage: %1$s · %2$s free`,rec_storage_internal:`Internal`,rec_storage_usb:`USB/SD %1$d`,rec_storage_pick:`Storage location`,rec_empty:`No recordings yet. Pick a program in the guide and press "Record", or use MENU → Record now while watching.`,rec_scheduled_empty:`No scheduled recordings.`,dl_empty:`No downloads. Press "Download" on a movie or episode page.`,rec_status_scheduled:`Scheduled`,rec_status_recording:`Recording`,rec_status_completed:`Completed`,rec_status_failed:`Failed`,rec_status_cancelled:`Cancelled`,rec_cancel:`Stop / cancel recording`,rec_delete:`Delete recording`,rec_play:`Play`,rec_scheduled_ok:`Recording scheduled: %1$s`,rec_conflict:`Another recording overlaps: %1$s. Record anyway? (If your account allows one connection, one may fail.)`,rec_no_space:`Not enough storage (at least 500 MB required).`,rec_invalid:`This program cannot be recorded (already ended).`,rec_now:`Record now`,rec_now_live:`Live recording`,rec_badge:`REC`,dl_download:`Download`,dl_downloading:`Downloading %1$d%%`,dl_paused:`Paused %1$d%%`,dl_done:`Downloaded · plays offline`,dl_failed:`Download failed · retry`,dl_pause:`Pause`,dl_resume:`Resume`,dl_delete:`Delete download`,dl_queued:`Queued`,dl_started:`Download queued`,set_sources:`Sources`,set_player:`Player`,set_appearance:`Appearance & language`,set_epg:`Program guide (EPG)`,set_parental:`Parental control`,set_hidden:`Hidden items`,set_storage:`Storage`,set_backup:`Backup / Restore`,set_update:`Update`,set_about:`About`,set_on:`On`,set_off:`Off`,set_active:`Active source`,set_make_active:`Make active`,set_edit:`Edit`,set_resync:`Refresh now`,set_delete_source:`Delete source`,set_delete_confirm:`Delete "%1$s" and all its data?`,set_add_source:`Add new source`,set_last_sync:`Last refresh: %1$s`,set_never:`never`,set_account:`Account info`,set_account_status:`Status: %1$s`,set_account_expiry:`Expires: %1$s`,set_account_unlimited:`unlimited`,set_account_connections:`Connections: %1$s / %2$s`,set_account_trial:`Trial account`,set_account_loading:`Fetching account info…`,set_account_none:`Account info is only available for Xtream sources.`,set_buffer:`Buffer length`,set_buffer_value:`%1$d s`,set_decoder:`Decoder mode`,set_decoder_hw:`Hardware (recommended)`,set_decoder_sw:`Prefer software (FFmpeg)`,set_preview:`Play preview in Live TV`,set_auto_next:`Autoplay next episode`,set_timeshift:`Timeshift on pause`,set_fallback:`Return to previous channel on failure`,set_audio_lang:`Preferred audio language`,set_sub_lang:`Preferred subtitles`,set_sub_size:`Subtitle size`,set_lang_default:`Stream default`,set_aspect:`Default aspect ratio`,set_start:`Startup screen`,start_home:`Home`,start_live:`Live TV`,start_guide:`Guide`,start_movies:`Movies`,start_series:`Series`,start_last:`Last watched channel`,set_numbering:`Channel numbering`,numbering_global:`Whole list`,numbering_category:`Within category`,set_language:`App language`,lang_tr:`Turkish`,lang_en:`English`,lang_system:`Device language`,set_epg_interval:`Auto refresh interval`,set_epg_hours:`%1$d hours`,set_epg_offset:`EPG time offset`,set_epg_offset_value:`%1$+d min`,set_epg_refresh:`Update program guide now`,set_epg_urls:`External XMLTV URLs are added in the source edit screen.`,set_pin_set:`Set PIN`,set_pin_change:`Change PIN`,set_pin_remove:`Remove PIN`,set_pin_saved:`PIN saved`,set_pin_removed:`PIN removed`,set_pin_confirm:`Re-enter PIN`,set_pin_mismatch:`PINs did not match`,set_hide_locked:`Hide locked categories entirely`,set_adult_lock:`Auto-lock adult categories`,set_parental_hint:`Long-press a category in Live TV to lock it.`,set_hidden_categories:`Hidden categories`,set_hidden_channels:`Hidden channels`,set_hidden_none:`No hidden items.`,set_unhide:`Show (unhide)`,set_backup_now:`Back up now`,set_backup_done:`Backup saved: %1$s`,set_backup_warning:`The backup file contains source passwords; keep it safe.`,set_restore:`Restore`,set_restore_none:`No saved backup found.`,set_restore_confirm:`Restore this backup? Current sources and preferences will be replaced.`,set_restore_done:`Backup restored; sources are refreshing.`,set_restore_file:`Choose file`,set_update_check:`Check for updates`,set_update_none:`App is up to date (%1$s).`,set_update_available:`New version: %1$s`,set_update_install:`Download & install`,set_update_downloading:`Downloading… %1$d%%`,set_update_failed:`Could not check for updates. Check your connection.`,set_update_permission:`Installing requires the "Install unknown apps" permission.`,set_version:`Version %1$s`,set_about_text:`UtopyaTV is a player only; it provides no content. Use it with your own subscription details.`,set_keys:`Remote shortcuts`,set_keys_text:`OK/◀: channel list · ▶: guide · ▲▼/CH±: channel · 0-9: channel no · Red: favorite · Green: audio · Yellow: subtitles · Blue: aspect · ⏯: pause (timeshift) · MENU/long OK: options`,player_fallback:`Channel failed; returned to the previous channel.`,mv_title:`Multi-view`,mv_add:`Add`,mv_add_channel:`Add channel`,mv_add_movie:`Add movie`,mv_layout:`Layout`,mv_layout_2:`Two (side by side)`,mv_layout_4:`Four (grid)`,mv_replace:`Replace`,mv_remove:`Remove`,mv_fullscreen:`Watch full screen`,mv_empty_slot:`+ Press OK to add content`,mv_hint:`◀▲▼▶ select window (audio follows focus) · OK options · MENU layout`,mv_warn_decoder:`This device can decode at most %1$d videos at once; some windows may not play.`,mv_warn_connections:`Your account allows %1$d simultaneous connections; extra windows may fail.`,mv_open:`Open in multi-view`,mv_pick_channel:`Pick a channel`,mv_pick_movie:`Pick a movie`,ext_none:`No external player found. You can install VLC or MX Player from the Play Store.`,ext_choose:`Choose a player`,player_speed:`Playback speed`,player_sleep:`Sleep timer`,sleep_off:`Off`,sleep_minutes:`After %1$d minutes`,sleep_triggered:`The sleep timer stopped playback.`,sleep_set:`Sleep timer: %1$d min`,exit_title:`Exit`,exit_message:`Do you want to exit UtopyaTV?`,player_info:`Stream info`,info_video:`Video: %1$s`,info_audio:`Audio: %1$s`,info_none:`No info`,info_buffer:`Buffer: %1$s`,vod_prev_ep:`Previous episode`,vod_next_ep:`Next episode`,shelf_similar:`More like this`,start_first_fav:`First favorite channel`,numbering_hidden:`Hidden`,set_accent:`Theme color`,accent_blue:`Blue`,accent_orange:`Orange`,accent_green:`Green`,accent_purple:`Purple`,accent_red:`Red`,set_color_keys:`Color keys`,key_red:`Red key`,key_green:`Green key`,key_yellow:`Yellow key`,key_blue:`Blue key`,act_favorite:`Toggle favorite`,act_audio:`Audio language`,act_subtitles:`Subtitles`,act_aspect:`Aspect ratio`,act_guide:`Program guide`,act_channels:`Channel list`,act_record:`Record now`,act_multiview:`Multi-view`,act_info:`Info banner`,act_none:`None`,set_remember_tracks:`Remember my audio/subtitle choice`,menu_move_up:`Move up`,menu_move_down:`Move down`,set_test_connection:`Test connection`,set_connection_ok:`Connection OK: the source is online.`,rec_once:`Record once`,rec_daily:`Record daily`,rec_weekly:`Record weekly`,rec_repeat_daily:`Daily`,rec_repeat_weekly:`Weekly`,onb_stalker:`Stalker Portal`,onb_stalker_desc:`MAG portal URL and MAC`,onb_portal:`Portal URL`,onb_mac:`MAC address`,tips_title:`Remote shortcuts`,tips_ok:`Got it`,tip_ok:`OK: open channel · OK while watching: channel list`,tip_long:`Long-press OK: favorite, hide, lock, add to group, multi-view`,tip_numbers:`Number keys: jump to channel number`,tip_updown:`While watching ▲▼ or CH+/CH−: change channel`,tip_right:`While watching ►: guide · MENU: audio, subtitles, picture`,tip_colors:`Color keys: favorite / audio / subtitles / aspect (change in Settings)`,tip_back:`BACK: return to menu · BACK in menu: confirm exit`,onb_tagline:`A fast, modern player for your own IPTV subscription`,onb_feat_live:`Live TV with program guide, catch-up and timeshift`,onb_feat_vod:`Movies and series grouped by Netflix, HBO Max, Disney+ and more`,onb_feat_tools:`Recording, downloads and two streams at once (multi-view)`,onb_no_content:`The app provides no content; you enter your own subscription details.`,onb_how:`How would you like to connect?`,onb_badge_common:`Most common`,onb_badge_easy:`No typing`,onb_form_qr_title:`Fill in from your phone`,onb_form_qr_hint:`Scan the QR code instead of typing long addresses with the remote. Phone and TV must be on the same Wi-Fi.`,onb_phone_step1:`Scan the QR code with your phone camera`,onb_phone_step2:`Enter your details on the page that opens`,onb_phone_step3:`Tap Send and the TV connects automatically`,onb_hint_m3u:`Enter the M3U/M3U8 link from your provider. To merge several lists, separate the addresses with spaces.`,onb_hint_xtream:`Enter the server address, username and password from your provider.`,onb_hint_stalker:`Enter the portal address and the MAC address registered for your device.`,onb_hint_file:`Choose an .m3u file on this device.`,onb_optional:`Optional settings`,live_categories:`Categories`,live_channel_count:`%1$d channels`,live_preview:`Channel preview`,pc_channels:`Channels`,pc_picture:`Picture`,pc_favorite:`Favorite`,pc_record:`Record`,pc_more:`More`,pc_info:`Info`,pc_play:`Play`,pc_pause:`Pause`,pc_prev:`Previous`,pc_next:`Next`,pc_speed:`Speed`,mv_add_series:`Add series`,group_by:`Group: %1$s`,group_category:`Category`,group_country:`Country`,group_genre:`Genre`,group_platform:`Platform`,genre_adult:`Adult`,genre_kids:`Kids`,genre_sports:`Sports`,genre_news:`News`,genre_docs:`Documentary`,genre_music:`Music and radio`,genre_movies:`Movies and series`,genre_religion:`Religious`,genre_local:`Local`,genre_national:`National`,genre_uhd:`4K / UHD`,genre_other:`Other`,onb_jellyfin:`Jellyfin`,onb_jellyfin_desc:`Your own media server`,onb_hint_jellyfin:`Enter your Jellyfin server address (e.g. http://192.168.1.10:8096), username and password.`,sub_load:`Load subtitle file (SRT)`,sub_offset:`Subtitle timing`,sub_loaded:`Subtitle loaded`,sub_failed:`Could not read subtitle file`,sub_no_picker:`No file picker on this device`,set_sub_color:`Subtitle color`,set_sub_bg:`Subtitle background`,color_white:`White`,color_yellow:`Yellow`,color_cyan:`Cyan`,set_max_quality:`Maximum video quality`,quality_auto:`Automatic`,vod_versions:`Versions (%1$d)`,vod_version_standard:`Standard`,set_theme:`Theme`,theme_navy:`Navy`,theme_amoled:`AMOLED black`,theme_graphite:`Graphite`,theme_forest:`Forest`,theme_wine:`Wine`,set_home_shelves:`Home shelves`,set_move_hint:`OK: show/hide · Long-press: move up`,set_filter_words:`Category filter words`,set_filter_words_hint:`Removed from category names, comma separated (e.g. [RAW], FHD, VIP)`,set_none:`None`,set_rec_folder:`Recording folder`,set_rec_folder_default:`App storage (selection above)`,set_rec_folder_hint:`Finished recordings are moved to the chosen folder (USB, network share…). Long-press: reset to default.`,nav_extensions:`Add-ons`,ext_add:`Add add-on`,ext_url:`Add-on address (manifest.json)`,ext_empty:`No add-ons yet. Add the manifest address of a Stremio-compatible add-on.`,ext_note:`The app provides no content; only add add-ons you are entitled to use.`,ext_remove:`Remove add-on`,ext_failed:`Could not add the add-on: invalid or unreachable address.`,ext_find_sources:`Find sources`,ext_sources:`Sources`,ext_no_sources:`No playable source found (torrent sources are not supported).`,ext_installed:`Installed add-ons`,ext_specials:`Specials`,sub_url_title:`Subtitle address (SRT)`,sub_url_hint:`This device has no file picker. Enter the subtitle's web address.`,brand_short:`UtopyaTV`,os_account:`OpenSubtitles account`,os_account_none:`Not set`,os_account_set:`Set`,os_account_hint:`Get a free API key from opensubtitles.com. Username/password are optional and raise the daily download limit.`,os_api_key:`API key`,os_username:`Username (optional)`,os_password:`Password (optional)`,set_auto_subs:`Find subtitles automatically (OpenSubtitles)`,set_auto_subs_hint:`If the stream has no subtitle in your language, a correctly matched one is fetched`,sub_find:`Find subtitles (OpenSubtitles)`,sub_searching:`Searching subtitles…`,sub_found:`Subtitle loaded: %1$s`,sub_not_found:`No correctly matching subtitle found for this title`,sub_no_key:`Enter your OpenSubtitles API key in Settings → Player`,sub_limit:`OpenSubtitles daily download limit reached`,home_hero:`Featured`,home_up_next:`Up next`,home_tonight:`Tonight's matches`,home_schedule:`Reminders and recordings`,home_top_movies:`Top rated movies`,home_top_series:`Top rated series`,home_top_rated:`Top rated`,home_new_episodes:`New episodes in your favorites`,home_new_episode_badge:`NEW EPISODE`,home_dismiss_new:`Dismiss new episode alert`,home_for_you:`What to watch today?`,home_for_you_genres:`What to watch today? · %1$s`,home_starting_soon:`Starting soon`,home_reminder_badge:`REMINDER`,home_open_channel:`Open channel`,home_genres:`Browse by genre`,home_edit:`Edit home`,home_edit_hint:`OK: move · ▲▼: reorder · OK: drop · ▶: show/hide`,home_edit_moving:`Moving`,home_edit_reset:`Reset to default`,home_edit_hidden:`Hidden shelves`,home_kind_movie:`MOVIE`,home_kind_series:`SERIES`,browse_movie_count:`%1$d movies`,browse_series_count:`%1$d series`,password_show:`Show password`,password_hide:`Hide password`,home_details:`Details`,home_live_now:`NOW`,home_rec:`REC`,menu_remove_continue:`Remove from Continue watching`,menu_remove_up_next:`Remove from Up next (clears watch history)`,menu_remove_recent:`Remove from recently watched`,menu_open:`Open`,os_phone_title:`Enter from your phone`,os_phone_hint:`Scan the QR code, paste the key on your phone and tap Send. Phone and TV must be on the same Wi-Fi.`,tz_coming_soon:`This section is coming in a later phase.`,tz_feat_tools:`Subtitle search, catch-up and parental control`,tz_m3u_file_desc:`A file on a USB drive plugged into the TV`,tz_hint_file:`Choose an .m3u file on the USB drive plugged into the TV.`,tz_usb_title:`Playlists on USB drive`,tz_usb_empty:`No .m3u file found on the USB drive. Plug in the drive and try again.`,tz_reminder_title:`%1$s is starting`,tz_reminder_text:`on %1$s`,tz_update_hint:`If installed with TizenBrew, close and reopen the app. If installed as a package (.wgt), reinstall the new package from your computer.`,tz_keys_text:`OK/◀: channel list · ▶: guide · ▲▼/CH±: channel · 0-9: channel no · Red: favourite · Green: audio · Yellow: subtitles · Blue: aspect ratio · ⏯: pause · TOOLS/long OK: options`,tz_sub_offset_value:`%1$s s`,tz_archive_hint:`◀▶ 30 s · ⏪⏩ 2 min · OK pause · ■ or long OK → Back to live`,tz_remind_daily:`Remind every day`,tz_remind_weekly:`Remind every week`,tz_rec_note:`Recording is not possible on Tizen. Scheduled programs are reminded before they start, from where you can switch to the channel.`,tz_onb_help_title:`Tips`,tz_onb_help_keyboard:`You can type long addresses with the SmartThings app's keyboard on your phone (same Wi-Fi as the TV).`,tz_onb_help_server:`Your provider gives you the server address; it usually looks like http://domain:8080. No trailing / needed.`,tz_onb_help_creds:`Username and password are case-sensitive. Use the eye button next to the password to check it.`,tz_onb_help_m3u:`To merge several lists, separate the addresses with spaces.`,tz_onb_help_file:`Copy the list (.m3u) to a USB stick, plug it into the TV, then press "Choose file".`,tz_onb_help_epg:`The guide address is optional; if left empty, the provider's own guide is used.`,tz_onb_help_privacy:`Your details are stored only on this device.`,tz_access_title:`Access key`,tz_access_text:`This app is for personal use. Enter the access key to continue.`,tz_access_label:`Key`,tz_access_continue:`Continue`,tz_access_checking:`Checking…`,tz_access_wrong:`Wrong key.`,tz_access_offline:`The key could not be checked. Check the internet connection and try again.`},pn=`utopya.lang`,mn={tr:dn,en:fn};function hn(){try{return localStorage.getItem(pn)===`en`?`en`:`tr`}catch(e){return`tr`}}var gn=I(hn());function _n(e){gn.value=e;try{localStorage.setItem(pn,e)}catch(e){}}function R(e,...t){var n,r;let i=(n=(r=mn[gn.value][e])==null?dn[e]:r)==null?e:n,a=0;return t.length?i.replace(/%(?:(\d)\$)?(\+)?[sd]/g,(e,n,r)=>{let i=t[n?n-1:a++];return r&&typeof i==`number`&&i>=0?`+${i}`:String(i)}):i}var vn=(e,t)=>e.replace(/(image\.tmdb\.org\/t\/p\/)(original|w\d+)\//,(e,n,r)=>r!==`original`&&+r.slice(1)<=t?e:`${n}w${t}/`),yn=null,bn=e=>{let t=e.getAttribute(`data-src`);t&&e.getAttribute(`src`)!==t&&(e.src=t)};function xn(){return yn||(yn=new IntersectionObserver(e=>{for(let t of e){let e=t.target;if(t.intersectionRatio>0){bn(e);let t=e.closest(`.shelf-row > *`),n=t&&t.nextElementSibling;n&&Array.prototype.forEach.call(n.querySelectorAll(`img[data-src]`),bn)}else e.getAttribute(`src`)&&!e.complete&&e.removeAttribute(`src`)}},{rootMargin:`20% 0px`}),yn)}function Sn(e){let t=F(null);return P(()=>{let e=t.current;e.getAttribute(`src`)&&e.removeAttribute(`src`);let n=xn();return n.observe(e),()=>n.unobserve(e)},[e.src]),M(`img`,{ref:t,"data-src":e.src,decoding:`async`,alt:e.alt||``,class:e.class,onLoad:e=>xn().unobserve(e.currentTarget),onError:e.onError})}var Cn={search:`M15.5 14h-.79l-.28-.27A6.47 6.47 0 0 0 16 9.5 6.5 6.5 0 1 0 9.5 16c1.61 0 3.09-.59 4.23-1.57l.27.28v.79l5 4.99L20.49 19l-4.99-5zm-6 0C7.01 14 5 11.99 5 9.5S7.01 5 9.5 5 14 7.01 14 9.5 11.99 14 9.5 14z`,play:`M8 5v14l11-7z`,pause:`M6 19h4V5H6v14zm8-14v14h4V5h-4z`,check:`M9 16.17L4.83 12l-1.42 1.41L9 19 21 7l-1.41-1.41z`,star:`M12 17.27L18.18 21l-1.64-7.03L22 9.24l-7.19-.61L12 2 9.19 8.63 2 9.24l5.46 4.73L5.82 21z`,starOutline:`M22 9.24l-7.19-.62L12 2 9.19 8.63 2 9.24l5.46 4.73L5.82 21 12 17.27 18.18 21l-1.63-7.03L22 9.24zM12 15.4l-3.76 2.27 1-4.28-3.32-2.88 4.38-.38L12 6.1l1.71 4.04 4.38.38-3.32 2.88 1 4.28L12 15.4z`,lock:`M18 8h-1V6c0-2.76-2.24-5-5-5S7 3.24 7 6v2H6c-1.1 0-2 .9-2 2v10c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2V10c0-1.1-.9-2-2-2zm-6 9c-1.1 0-2-.9-2-2s.9-2 2-2 2 .9 2 2-.9 2-2 2zm3.1-9H8.9V6c0-1.71 1.39-3.1 3.1-3.1 1.71 0 3.1 1.39 3.1 3.1v2z`,pin:`M16 9V4h1c.55 0 1-.45 1-1s-.45-1-1-1H7c-.55 0-1 .45-1 1s.45 1 1 1h1v5c0 1.66-1.34 3-3 3v2h5.97v7l1 1 1-1v-7H19v-2c-1.66 0-3-1.34-3-3z`,tune:`M3 17v2h6v-2H3zM3 5v2h10V5H3zm10 16v-2h8v-2h-8v-2h-2v6h2zM7 9v2H3v2h4v2h2V9H7zm14 4v-2H11v2h10zm-6-4h2V7h4V5h-4V3h-2v6z`,list:`M3 13h2v-2H3v2zm0 4h2v-2H3v2zm0-8h2V7H3v2zm4 4h14v-2H7v2zm0 4h14v-2H7v2zM7 7v2h14V7H7z`,guide:`M19 3h-1V1h-2v2H8V1H6v2H5c-1.11 0-1.99.9-1.99 2L3 19c0 1.1.89 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm0 16H5V8h14v11zM7 10h5v5H7z`,audio:`M12 3v10.55c-.59-.34-1.27-.55-2-.55-2.21 0-4 1.79-4 4s1.79 4 4 4 4-1.79 4-4V7h4V3h-6z`,subtitles:`M20 4H4c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2zM4 12h4v2H4v-2zm10 6H4v-2h10v2zm6 0h-4v-2h4v2zm0-4H10v-2h10v2z`,aspect:`M19 12h-2v3h-3v2h5v-5zM7 9h3V7H5v5h2V9zm14-6H3c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h18c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm0 16.01H3V4.99h18v14.02z`,edit:`M3 17.25V21h3.75L17.81 9.94l-3.75-3.75L3 17.25zM20.71 7.04a.996.996 0 0 0 0-1.41l-2.34-2.34a.996.996 0 0 0-1.41 0l-1.83 1.83 3.75 3.75 1.83-1.83z`,more:`M6 10c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm12 0c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm-6 0c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2z`,error:`M11 15h2v2h-2zm0-8h2v6h-2zm.99-5C6.47 2 2 6.48 2 12s4.47 10 9.99 10C17.52 22 22 17.52 22 12S17.52 2 11.99 2zM12 20c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8z`,dns:`M20 13H4c-.55 0-1 .45-1 1v6c0 .55.45 1 1 1h16c.55 0 1-.45 1-1v-6c0-.55-.45-1-1-1zM7 19c-1.1 0-2-.9-2-2s.9-2 2-2 2 .9 2 2-.9 2-2 2zM20 3H4c-.55 0-1 .45-1 1v6c0 .55.45 1 1 1h16c.55 0 1-.45 1-1V4c0-.55-.45-1-1-1zM7 9c-1.1 0-2-.9-2-2s.9-2 2-2 2 .9 2 2-.9 2-2 2z`,link:`M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76 0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71 0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71 0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76 0 5-2.24 5-5s-2.24-5-5-5z`,qr:`M3 11h8V3H3v8zm2-6h4v4H5V5zM3 21h8v-8H3v8zm2-6h4v4H5v-4zM13 3v8h8V3h-8zm6 6h-4V5h4v4zM13 13h2v2h-2zM15 15h2v2h-2zM13 17h2v2h-2zM17 17h2v2h-2zM19 19h2v2h-2zM15 19h2v2h-2zM17 13h2v2h-2zM19 15h2v2h-2z`,file:`M6 2c-1.1 0-1.99.9-1.99 2L4 20c0 1.1.89 2 1.99 2H18c1.1 0 2-.9 2-2V8l-6-6H6zm7 7V3.5L18.5 9H13z`,live:`M21 6h-7.59l3.29-3.29L16 2l-4 4-4-4-.71.71L10.59 6H3c-1.1 0-2 .89-2 2v12c0 1.1.9 2 2 2h18c1.1 0 2-.9 2-2V8c0-1.11-.9-2-2-2zm0 14H3V8h18v12zM9 10v8l7-4z`,movie:`M18 4l2 4h-3l-2-4h-2l2 4h-3l-2-4H8l2 4H7L5 4H4c-1.1 0-1.99.9-1.99 2L2 18c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V4h-4z`,grid:`M3 13h8V3H3v10zm0 8h8v-6H3v6zm10 0h8V11h-8v10zm0-18v6h8V3h-8z`,chevron:`M10 6L8.59 7.41 13.17 12l-4.58 4.59L10 18l6-6z`,add:`M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z`,visibility:`M12 4.5C7 4.5 2.73 7.61 1 12c1.73 4.39 6 7.5 11 7.5s9.27-3.11 11-7.5c-1.73-4.39-6-7.5-11-7.5zM12 17c-2.76 0-5-2.24-5-5s2.24-5 5-5 5 2.24 5 5-2.24 5-5 5zm0-8c-1.66 0-3 1.34-3 3s1.34 3 3 3 3-1.34 3-3-1.34-3-3-3z`,visibilityOff:`M12 7c2.76 0 5 2.24 5 5 0 .65-.13 1.26-.36 1.83l2.92 2.92c1.51-1.26 2.7-2.89 3.43-4.75-1.73-4.39-6-7.5-11-7.5-1.4 0-2.74.25-3.98.7l2.16 2.16C10.74 7.13 11.35 7 12 7zM2 4.27l2.28 2.28.46.46C3.08 8.3 1.78 10.02 1 12c1.73 4.39 6 7.5 11 7.5 1.55 0 3.03-.3 4.38-.84l.42.42L19.73 22 21 20.73 3.27 3 2 4.27zM7.53 9.8l1.55 1.55c-.05.21-.08.43-.08.65 0 1.66 1.34 3 3 3 .22 0 .44-.03.65-.08l1.55 1.55c-.67.33-1.41.53-2.2.53-2.76 0-5-2.24-5-5 0-.79.2-1.53.53-2.2zm4.31-.78l3.15 3.15.02-.16c0-1.66-1.34-3-3-3l-.17.01z`,back:`M20 11H7.83l5.59-5.59L12 4l-8 8 8 8 1.41-1.41L7.83 13H20v-2z`,folder:`M10 4H4c-1.1 0-1.99.9-1.99 2L2 18c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V8c0-1.1-.9-2-2-2h-8l-2-2z`,settings:`M19.14 12.94c.04-.3.06-.61.06-.94 0-.32-.02-.64-.07-.94l2.03-1.58a.49.49 0 0 0 .12-.61l-1.92-3.32a.49.49 0 0 0-.59-.22l-2.39.96c-.5-.38-1.03-.7-1.62-.94l-.36-2.54a.48.48 0 0 0-.48-.41h-3.84c-.24 0-.43.17-.47.41l-.36 2.54c-.59.24-1.13.57-1.62.94l-2.39-.96a.49.49 0 0 0-.59.22L2.74 8.87c-.12.21-.08.47.12.61l2.03 1.58c-.05.3-.09.63-.09.94s.02.64.07.94l-2.03 1.58a.49.49 0 0 0-.12.61l1.92 3.32c.12.22.37.29.59.22l2.39-.96c.5.38 1.03.7 1.62.94l.36 2.54c.05.24.24.41.48.41h3.84c.24 0 .44-.17.47-.41l.36-2.54c.59-.24 1.13-.56 1.62-.94l2.39.96c.22.08.47 0 .59-.22l1.92-3.32c.12-.22.07-.47-.12-.61l-2.01-1.58zM12 15.6A3.6 3.6 0 1 1 12 8.4a3.6 3.6 0 0 1 0 7.2z`};function wn(e){let t=F(null),[n,r]=N(!1),i=M(`div`,{class:`field-box`,"data-focus":!0,"data-focus-default":e.initial||void 0,onClick:()=>t.current.focus(),children:M(`input`,{ref:t,tabIndex:-1,type:e.password&&!n?`password`:`text`,value:e.value,placeholder:e.placeholder,autocomplete:`off`,autocapitalize:`off`,spellcheck:!1,onInput:t=>e.onInput(t.currentTarget.value)})});return M(`div`,{class:`field ${e.class||``}`,children:[M(`span`,{class:`field-label`,children:e.label}),e.password?M(`div`,{class:`field-row`,children:[i,M(`button`,{class:`eye-btn`,"data-focus":!0,"aria-label":R(n?`password_hide`:`password_show`),onClick:()=>r(e=>!e),children:M(z,{name:n?`visibilityOff`:`visibility`})})]}):i]})}function z({name:e,class:t}){return M(`svg`,{class:t?`icon ${t}`:`icon`,viewBox:`0 0 24 24`,"aria-hidden":`true`,children:M(`path`,{d:Cn[e],fill:`currentColor`})})}function Tn(e){let t=F(null),n=F(document.activeElement);return P(()=>(L(t.current),()=>{var e;return(e=n.current)==null?void 0:e.focus()}),[]),tn(t=>t===`back`?(e.onDismiss(),!0):`default`),M(`div`,{class:`scrim`,"data-focus-scope":!0,children:M(`div`,{class:`dialog glass`,ref:t,role:`dialog`,children:[M(`h2`,{children:e.title}),M(`p`,{children:e.message}),M(`div`,{class:`row`,children:[M(`button`,{class:`btn`,"data-focus":!0,"data-focus-default":!0,onClick:e.onConfirm,children:e.confirmLabel||R(`ok`)}),M(`button`,{class:`btn`,"data-focus":!0,onClick:e.onDismiss,children:R(`cancel`)})]})]})})}var En=I(null),Dn;function B(e){En.value=e,clearTimeout(Dn),Dn=window.setTimeout(()=>En.value=null,2e3)}function On(){return En.value?M(`div`,{class:`toast`,children:En.value}):null}function kn(e){let t=F(null),n=F(document.activeElement);P(()=>(L(t.current),()=>n.current&&n.current.isConnected&&n.current.focus()),[]),tn(t=>t===`back`?(e.onClose(),!0):`default`);let r=e.items.some(e=>e.checked);return M(`div`,{class:`scrim`,"data-focus-scope":!0,children:M(`div`,{class:`menu-dialog`,ref:t,role:`dialog`,children:[M(`h2`,{children:e.title}),M(`div`,{class:`menu-list`,children:e.items.map((t,n)=>M(`button`,{class:`menu-item${t.checked?` checked`:``}`,"data-focus":!0,"data-focus-default":(r?t.checked:n===0)||void 0,onClick:()=>{e.onClose(),t.onSelect()},children:[t.label,t.checked&&M(z,{name:`check`})]},n))})]})})}function An(e){let[t,n]=N(``),r=F(void 0),i=F(e);return i.current=e,P(()=>()=>clearTimeout(r.current),[]),{digits:t,push:e=>{let a=(t+e).slice(0,4);clearTimeout(r.current);let o=()=>{n(``);let e=parseInt(a,10);e>0&&i.current(e)};a.length===4?o():(n(a),r.current=window.setTimeout(o,1500))}}}function jn({digits:e}){return e?M(`div`,{class:`number-box`,children:e}):null}function Mn(e){let[t,n]=N(``),[r,i]=N(!1),a=F(null),o=F(document.activeElement);P(()=>(L(a.current),()=>o.current&&o.current.isConnected&&o.current.focus()),[]);let s=r=>{let a=(t+r).slice(0,4);a.length<4?(n(a),i(!1)):(n(``),e.check(a)?e.onDone(a):i(!0))};return tn((r,i)=>r===`back`&&i.keyCode!==8?(e.onClose(),!0):r.startsWith(`digit`)?(s(r.slice(5)),!0):i.keyCode===8||i.keyCode===46?(n(t.slice(0,-1)),!0):`default`),M(`div`,{class:`scrim`,"data-focus-scope":!0,children:M(`div`,{class:`pin-dialog`,ref:a,role:`dialog`,children:[M(`h2`,{children:e.title}),M(`p`,{class:`pin-dots`,children:[0,1,2,3].map(e=>e<t.length?`●`:`○`).join(` `)}),M(`p`,{class:`pin-error`,children:r?R(`pin_wrong`):`\xA0`}),M(`div`,{class:`pin-pad`,children:[`1`,`2`,`3`,`4`,`5`,`6`,`7`,`8`,`9`,`⌫`,`0`].map(e=>M(`button`,{class:`btn outline pin-key`,"data-focus":!0,"data-focus-default":e===`1`||void 0,onClick:()=>e===`⌫`?n(t.slice(0,-1)):s(e),children:e},e))})]})})}function Nn(e){let[t,n]=N(e.initial),r=F(null);return P(()=>{L(r.current)},[]),tn(t=>t===`back`?(e.onClose(),!0):`default`),M(`div`,{class:`scrim`,"data-focus-scope":!0,children:M(`div`,{class:`menu-dialog`,ref:r,role:`dialog`,children:[M(`h2`,{children:e.title}),M(wn,{label:e.label,value:t,onInput:n,placeholder:e.placeholder,password:e.password,initial:!0}),M(`button`,{class:`btn primary`,"data-focus":!0,onClick:()=>{e.onClose(),e.onSave(t)},children:R(`save`)})]})})}function Pn({text:e,onClose:t}){let n=F(null);return P(()=>{L(n.current)},[]),tn(e=>e===`back`?(t(),!0):`default`),M(`div`,{class:`scrim`,"data-focus-scope":!0,children:M(`div`,{class:`dialog glass`,ref:n,role:`dialog`,children:[M(`p`,{children:e}),M(`button`,{class:`btn primary`,"data-focus":!0,"data-focus-default":!0,onClick:t,children:R(`ok`)})]})})}function Fn(e){let[t,n]=N(``),[r,i]=N(!1),[a,o]=N(null),s=F(null);return P(()=>{L(s.current)},[]),tn(t=>{if(t===`back`)return e.onExit(),!0}),M(`div`,{class:`onboarding`,ref:s,children:M(`div`,{class:`onb-choose`,children:[M(`div`,{class:`onb-brand`,children:[M(`div`,{class:`brand-mark`,children:M(z,{name:`play`})}),M(`h1`,{children:R(`app_name`)}),M(`p`,{class:`tagline muted`,children:R(`onb_tagline`)})]}),M(`div`,{class:`onb-options access-form`,children:[M(`h2`,{children:R(`tz_access_title`)}),M(`p`,{class:`muted`,children:R(`tz_access_text`)}),M(wn,{label:R(`tz_access_label`),value:t,onInput:n,password:!0,initial:!0}),M(`button`,{class:`btn primary connect`,"data-focus":!0,onClick:async()=>{let e=t.trim();if(!e||r)return;i(!0),o(null);let n=await Ot(e);i(!1),n===`ok`?(At(e),Dt.value=!0):o(n)},children:R(r?`tz_access_checking`:`tz_access_continue`)}),a&&M(`p`,{class:`error-box`,children:R(a===`wrong`?`tz_access_wrong`:`tz_access_offline`)})]})]})})}function In({title:e}){return M(`section`,{class:`placeholder`,children:[M(`h1`,{children:e}),M(`p`,{class:`muted`,children:R(`tz_coming_soon`)})]})}var Ln=Uint8Array,Rn=Uint16Array,zn=Int32Array,Bn=new Ln([0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0,0,0,0]),Vn=new Ln([0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13,0,0]),Hn=new Ln([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]),Un=function(e,t){for(var n=new Rn(31),r=0;r<31;++r)n[r]=t+=1<<e[r-1];for(var i=new zn(n[30]),r=1;r<30;++r)for(var a=n[r];a<n[r+1];++a)i[a]=a-n[r]<<5|r;return{b:n,r:i}},Wn=Un(Bn,2),Gn=Wn.b,Kn=Wn.r;Gn[28]=258,Kn[258]=28;var qn=Un(Vn,0),Jn=qn.b;qn.r;for(var Yn=new Rn(32768),Xn=0;Xn<32768;++Xn){var Zn=(Xn&43690)>>1|(Xn&21845)<<1;Zn=(Zn&52428)>>2|(Zn&13107)<<2,Zn=(Zn&61680)>>4|(Zn&3855)<<4,Yn[Xn]=((Zn&65280)>>8|(Zn&255)<<8)>>1}for(var Qn=(function(e,t,n){for(var r=e.length,i=0,a=new Rn(t);i<r;++i)e[i]&&++a[e[i]-1];var o=new Rn(t);for(i=1;i<t;++i)o[i]=o[i-1]+a[i-1]<<1;var s;if(n){s=new Rn(1<<t);var c=15-t;for(i=0;i<r;++i)if(e[i])for(var l=i<<4|e[i],u=t-e[i],d=o[e[i]-1]++<<u,f=d|(1<<u)-1;d<=f;++d)s[Yn[d]>>c]=l}else for(s=new Rn(r),i=0;i<r;++i)e[i]&&(s[i]=Yn[o[e[i]-1]++]>>15-e[i]);return s}),$n=new Ln(288),Xn=0;Xn<144;++Xn)$n[Xn]=8;for(var Xn=144;Xn<256;++Xn)$n[Xn]=9;for(var Xn=256;Xn<280;++Xn)$n[Xn]=7;for(var Xn=280;Xn<288;++Xn)$n[Xn]=8;for(var er=new Ln(32),Xn=0;Xn<32;++Xn)er[Xn]=5;var tr=Qn($n,9,1),nr=Qn(er,5,1),rr=function(e){for(var t=e[0],n=1;n<e.length;++n)e[n]>t&&(t=e[n]);return t},ir=function(e,t,n){var r=t/8|0;return(e[r]|e[r+1]<<8)>>(t&7)&n},ar=function(e,t){var n=t/8|0;return(e[n]|e[n+1]<<8|e[n+2]<<16)>>(t&7)},or=function(e){return(e+7)/8|0},sr=function(e,t,n){return(t==null||t<0)&&(t=0),(n==null||n>e.length)&&(n=e.length),new Ln(e.subarray(t,n))},cr=[`unexpected EOF`,`invalid block type`,`invalid length/literal`,`invalid distance`,`stream finished`,`no stream handler`,,`no callback`,`invalid UTF-8 data`,`extra field too long`,`date not in range 1980-2099`,`filename too long`,`stream finishing`,`invalid zip data`],lr=function(e,t,n){var r=Error(t||cr[e]);if(r.code=e,Error.captureStackTrace&&Error.captureStackTrace(r,lr),!n)throw r;return r},ur=function(e,t,n,r){var i=e.length,a=r?r.length:0;if(!i||t.f&&!t.l)return n||new Ln(0);var o=!n,s=o||t.i!=2,c=t.i;o&&(n=new Ln(i*3));var l=function(e){var t=n.length;if(e>t){var r=new Ln(Math.max(t*2,e));r.set(n),n=r}},u=t.f||0,d=t.p||0,f=t.b||0,p=t.l,m=t.d,h=t.m,g=t.n,_=i*8;do{if(!p){u=ir(e,d,1);var v=ir(e,d+1,3);if(d+=3,!v){var y=or(d)+4,b=e[y-4]|e[y-3]<<8,x=y+b;if(x>i){c&&lr(0);break}s&&l(f+b),n.set(e.subarray(y,x),f),t.b=f+=b,t.p=d=x*8,t.f=u;continue}if(v==1)p=tr,m=nr,h=9,g=5;else if(v==2){var S=ir(e,d,31)+257,ee=ir(e,d+10,15)+4,C=S+ir(e,d+5,31)+1;d+=14;for(var w=new Ln(C),T=new Ln(19),E=0;E<ee;++E)T[Hn[E]]=ir(e,d+E*3,7);d+=ee*3;for(var D=rr(T),O=(1<<D)-1,k=Qn(T,D,1),E=0;E<C;){var te=k[ir(e,d,O)];d+=te&15;var y=te>>4;if(y<16)w[E++]=y;else{var A=0,j=0;for(y==16?(j=3+ir(e,d,3),d+=2,A=w[E-1]):y==17?(j=3+ir(e,d,7),d+=3):y==18&&(j=11+ir(e,d,127),d+=7);j--;)w[E++]=A}}var ne=w.subarray(0,S),re=w.subarray(S);h=rr(ne),g=rr(re),p=Qn(ne,h,1),m=Qn(re,g,1)}else lr(1);if(d>_){c&&lr(0);break}}s&&l(f+131072);for(var ie=(1<<h)-1,ae=(1<<g)-1,oe=d;;oe=d){var A=p[ar(e,d)&ie],se=A>>4;if(d+=A&15,d>_){c&&lr(0);break}if(A||lr(2),se<256)n[f++]=se;else if(se==256){oe=d,p=null;break}else{var ce=se-254;if(se>264){var E=se-257,le=Bn[E];ce=ir(e,d,(1<<le)-1)+Gn[E],d+=le}var ue=m[ar(e,d)&ae],de=ue>>4;ue||lr(3),d+=ue&15;var re=Jn[de];if(de>3){var le=Vn[de];re+=ar(e,d)&(1<<le)-1,d+=le}if(d>_){c&&lr(0);break}s&&l(f+131072);var M=f+ce;if(f<re){var fe=a-re,pe=Math.min(re,M);for(fe+f<0&&lr(3);f<pe;++f)n[f]=r[fe+f]}for(;f<M;++f)n[f]=n[f-re]}}t.l=p,t.p=oe,t.b=f,t.f=u,p&&(u=1,t.m=h,t.d=m,t.n=g)}while(!u);return f!=n.length&&o?sr(n,0,f):n.subarray(0,f)},dr=new Ln(0),fr=function(e){(e[0]!=31||e[1]!=139||e[2]!=8)&&lr(6,`invalid gzip data`);var t=e[3],n=10;t&4&&(n+=(e[10]|e[11]<<8)+2);for(var r=(t>>3&1)+(t>>4&1);r>0;r-=!e[n++]);return n+(t&2)},pr=function(){function e(e,t){typeof e==`function`&&(t=e,e={}),this.ondata=t;var n=e&&e.dictionary&&e.dictionary.subarray(-32768);this.s={i:0,b:n?n.length:0},this.o=new Ln(32768),this.p=new Ln(0),n&&this.o.set(n)}return e.prototype.e=function(e){if(this.ondata||lr(5),this.d&&lr(4),!this.p.length)this.p=e;else if(e.length){var t=new Ln(this.p.length+e.length);t.set(this.p),t.set(e,this.p.length),this.p=t}},e.prototype.c=function(e){this.s.i=+(this.d=e||!1);var t=this.s.b,n=ur(this.p,this.s,this.o);this.ondata(sr(n,t,this.s.b),this.d),this.o=sr(n,this.s.b-32768),this.s.b=this.o.length,this.p=sr(this.p,this.s.p/8|0),this.s.p&=7},e.prototype.push=function(e,t){this.e(e),this.c(t)},e}(),mr=function(){function e(e,t){this.v=1,this.r=0,pr.call(this,e,t)}return e.prototype.push=function(e,t){if(pr.prototype.e.call(this,e),this.r+=e.length,this.v){var n=this.p.subarray(this.v-1),r=n.length>3?fr(n):4;if(r>n.length){if(!t)return}else this.v>1&&this.onmember&&this.onmember(this.r-n.length);this.p=n.subarray(r),this.v=0}pr.prototype.c.call(this,0),this.s.f&&!this.s.l?(this.v=or(this.s.p)+9,this.s={i:0},this.o=new Ln(0),this.push(new Ln(0),t)):t&&pr.prototype.c.call(this,t)},e}(),hr=typeof TextDecoder<`u`&&new TextDecoder;try{hr.decode(dr,{stream:!0})}catch(e){}function gr(e){"@babel/helpers - typeof";return gr=typeof Symbol==`function`&&typeof Symbol.iterator==`symbol`?function(e){return typeof e}:function(e){return e&&typeof Symbol==`function`&&e.constructor===Symbol&&e!==Symbol.prototype?`symbol`:typeof e},gr(e)}function _r(e,t){if(gr(e)!=`object`||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||`default`);if(gr(r)!=`object`)return r;throw TypeError(`@@toPrimitive must return a primitive value.`)}return(t===`string`?String:Number)(e)}function vr(e){var t=_r(e,`string`);return gr(t)==`symbol`?t:t+``}function yr(e,t,n){return(t=vr(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var br=class extends Error{constructor(e,t){super(t||e),yr(this,`error`,void 0),this.error=e}},xr=e=>`error_${e.toLowerCase()}`;function Sr(e){return e instanceof br?e.error:e&&e.name===`QuotaExceededError`?`STORAGE`:`UNKNOWN`}var Cr=e=>e,wr=e=>e.trim().replace(/[.,]+$/,``);function Tr(e,t){return new Promise((n,r)=>{let i=setTimeout(()=>r(new br(`TIMEOUT`)),t);e.then(e=>{clearTimeout(i),n(e)},e=>{clearTimeout(i),r(e)})})}async function Er(e,t=3e4){let n;try{n=await Tr(fetch(Cr(e),{credentials:`omit`}),t)}catch(e){throw e instanceof br?e:new br(`NETWORK`,String(e))}if(n.ok)return n;throw n.status===401||n.status===403?new br(`AUTH`):n.status===404?new br(`NOT_FOUND`):n.status>=500?new br(`SERVER`,String(n.status)):new br(`NETWORK`,String(n.status))}async function Dr(e,t,n=6e4){let r=new TextDecoder(`utf-8`),i=e.body.getReader(),a,o=[],s=(e,t)=>{let n=r.decode(e,{stream:!t});n&&o.push(n)};try{for(;;){let{done:e,value:r}=await Tr(i.read(),n);a===void 0&&r&&r.length&&(a=r[0]===31&&r[1]===139?new mr((e,t)=>s(e,t)):null),e?a?a.push(new Uint8Array,!0):s(new Uint8Array,!0):a?a.push(r):s(r,!1);let c=o;o=[];for(let e of c)if(await t(e)===!1){i.cancel();return}if(e)return}}catch(e){throw i.cancel(),e instanceof br?e:new br(`NETWORK`,String(e))}}function Or(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function V(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]==null?{}:arguments[t];t%2?Or(Object(n),!0).forEach(function(t){yr(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Or(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}var kr=typeof globalThis<`u`?globalThis:typeof self<`u`?self:typeof window<`u`?window:global,Ar=Object.keys,jr=Array.isArray;function Mr(e,t){return typeof t!=`object`||Ar(t).forEach((function(n){e[n]=t[n]})),e}typeof Promise>`u`||kr.Promise||(kr.Promise=Promise);var Nr=Object.getPrototypeOf,Pr={}.hasOwnProperty;function Fr(e,t){return Pr.call(e,t)}function Ir(e,t){typeof t==`function`&&(t=t(Nr(e))),(typeof Reflect>`u`?Ar:Reflect.ownKeys)(t).forEach((n=>{Rr(e,n,t[n])}))}var Lr=Object.defineProperty;function Rr(e,t,n,r){Lr(e,t,Mr(n&&Fr(n,`get`)&&typeof n.get==`function`?{get:n.get,set:n.set,configurable:!0}:{value:n,configurable:!0,writable:!0},r))}function zr(e){return{from:function(t){return e.prototype=Object.create(t.prototype),Rr(e.prototype,`constructor`,e),{extend:Ir.bind(null,e.prototype)}}}}var Br=Object.getOwnPropertyDescriptor;function Vr(e,t){let n;return Br(e,t)||(n=Nr(e))&&Vr(n,t)}var Hr=[].slice;function Ur(e,t,n){return Hr.call(e,t,n)}function Wr(e,t){return t(e)}function Gr(e){if(!e)throw Error(`Assertion Failed`)}function Kr(e){kr.setImmediate?setImmediate(e):setTimeout(e,0)}function qr(e,t){return e.reduce(((e,n,r)=>{var i=t(n,r);return i&&(e[i[0]]=i[1]),e}),{})}function Jr(e,t){if(typeof t==`string`&&Fr(e,t))return e[t];if(!t)return e;if(typeof t!=`string`){for(var n=[],r=0,i=t.length;r<i;++r){var a=Jr(e,t[r]);n.push(a)}return n}var o=t.indexOf(`.`);if(o!==-1){var s=e[t.substr(0,o)];return s==null?void 0:Jr(s,t.substr(o+1))}}function Yr(e,t,n){if(e&&t!==void 0&&(!(`isFrozen`in Object)||!Object.isFrozen(e))){if(typeof t!=`string`&&`length`in t){Gr(typeof n!=`string`&&`length`in n);for(var r=0,i=t.length;r<i;++r)Yr(e,t[r],n[r])}else{var a=t.indexOf(`.`);if(a!==-1){var o=t.substr(0,a),s=t.substr(a+1);if(s===``)n===void 0?jr(e)&&!isNaN(parseInt(o))?e.splice(o,1):delete e[o]:e[o]=n;else{var c=e[o];c&&Fr(e,o)||(c=e[o]={}),Yr(c,s,n)}}else n===void 0?jr(e)&&!isNaN(parseInt(t))?e.splice(t,1):delete e[t]:e[t]=n}}}function Xr(e){var t={};for(var n in e)Fr(e,n)&&(t[n]=e[n]);return t}var Zr=[].concat;function Qr(e){return Zr.apply([],e)}var $r=`BigUint64Array,BigInt64Array,Array,Boolean,String,Date,RegExp,Blob,File,FileList,FileSystemFileHandle,FileSystemDirectoryHandle,ArrayBuffer,DataView,Uint8ClampedArray,ImageBitmap,ImageData,Map,Set,CryptoKey`.split(`,`).concat(Qr([8,16,32,64].map((e=>[`Int`,`Uint`,`Float`].map((t=>t+e+`Array`)))))).filter((e=>kr[e])),ei=$r.map((e=>kr[e]));qr($r,(e=>[e,!0]));var ti=null;function ni(e){ti=typeof WeakMap<`u`&&new WeakMap;let t=ri(e);return ti=null,t}function ri(e){if(!e||typeof e!=`object`)return e;let t=ti&&ti.get(e);if(t)return t;if(jr(e)){t=[],ti&&ti.set(e,t);for(var n=0,r=e.length;n<r;++n)t.push(ri(e[n]))}else if(ei.indexOf(e.constructor)>=0)t=e;else{let n=Nr(e);for(var i in t=n===Object.prototype?{}:Object.create(n),ti&&ti.set(e,t),e)Fr(e,i)&&(t[i]=ri(e[i]))}return t}var{toString:ii}={};function ai(e){return ii.call(e).slice(8,-1)}var oi=typeof Symbol<`u`?Symbol.iterator:`@@iterator`,si=typeof oi==`symbol`?function(e){var t;return e!=null&&(t=e[oi])&&t.apply(e)}:function(){return null},ci={};function li(e){var t,n,r,i;if(arguments.length===1){if(jr(e))return e.slice();if(this===ci&&typeof e==`string`)return[e];if(i=si(e)){for(n=[];!(r=i.next()).done;)n.push(r.value);return n}if(e==null)return[e];if(typeof(t=e.length)==`number`){for(n=Array(t);t--;)n[t]=e[t];return n}return[e]}for(t=arguments.length,n=Array(t);t--;)n[t]=arguments[t];return n}var ui=typeof Symbol<`u`?e=>e[Symbol.toStringTag]===`AsyncFunction`:()=>!1,di=typeof location<`u`&&/^(http|https):\/\/(localhost|127\.0\.0\.1)/.test(location.href);function fi(e,t){di=e,pi=t}var pi=()=>!0,mi=!Error(``).stack;function hi(){if(mi)try{throw hi.arguments,Error()}catch(e){return e}return Error()}function gi(e,t){var n=e.stack;return n?(t=t||0,n.indexOf(e.name)===0&&(t+=(e.name+e.message).split(`
3
- `).length),n.split(`
4
- `).slice(t).filter(pi).map((e=>`
5
- `+e)).join(``)):``}var _i=[`Unknown`,`Constraint`,`Data`,`TransactionInactive`,`ReadOnly`,`Version`,`NotFound`,`InvalidState`,`InvalidAccess`,`Abort`,`Timeout`,`QuotaExceeded`,`Syntax`,`DataClone`],vi=[`Modify`,`Bulk`,`OpenFailed`,`VersionChange`,`Schema`,`Upgrade`,`InvalidTable`,`MissingAPI`,`NoSuchDatabase`,`InvalidArgument`,`SubTransaction`,`Unsupported`,`Internal`,`DatabaseClosed`,`PrematureCommit`,`ForeignAwait`].concat(_i),yi={VersionChanged:`Database version changed by other database connection`,DatabaseClosed:`Database has been closed`,Abort:`Transaction aborted`,TransactionInactive:`Transaction has already completed or failed`,MissingAPI:`IndexedDB API missing. Please visit https://tinyurl.com/y2uuvskb`};function bi(e,t){this._e=hi(),this.name=e,this.message=t}function xi(e,t){return e+`. Errors: `+Object.keys(t).map((e=>t[e].toString())).filter(((e,t,n)=>n.indexOf(e)===t)).join(`
6
- `)}function Si(e,t,n,r){this._e=hi(),this.failures=t,this.failedKeys=r,this.successCount=n,this.message=xi(e,t)}function Ci(e,t){this._e=hi(),this.name=`BulkError`,this.failures=Object.keys(t).map((e=>t[e])),this.failuresByPos=t,this.message=xi(e,t)}zr(bi).from(Error).extend({stack:{get:function(){return this._stack||(this._stack=this.name+`: `+this.message+gi(this._e,2))}},toString:function(){return this.name+`: `+this.message}}),zr(Si).from(bi),zr(Ci).from(bi);var wi=vi.reduce(((e,t)=>(e[t]=t+`Error`,e)),{}),Ti=bi,H=vi.reduce(((e,t)=>{var n=t+`Error`;function r(e,r){this._e=hi(),this.name=n,e?typeof e==`string`?(this.message=`${e}${r?`
7
- `+r:``}`,this.inner=r||null):typeof e==`object`&&(this.message=`${e.name} ${e.message}`,this.inner=e):(this.message=yi[t]||n,this.inner=null)}return zr(r).from(Ti),e[t]=r,e}),{});H.Syntax=SyntaxError,H.Type=TypeError,H.Range=RangeError;var Ei=_i.reduce(((e,t)=>(e[t+`Error`]=H[t],e)),{}),Di=vi.reduce(((e,t)=>([`Syntax`,`Type`,`Range`].indexOf(t)===-1&&(e[t+`Error`]=H[t]),e)),{});function U(){}function Oi(e){return e}function ki(e,t){return e==null||e===Oi?t:function(n){return t(e(n))}}function Ai(e,t){return function(){e.apply(this,arguments),t.apply(this,arguments)}}function ji(e,t){return e===U?t:function(){var n=e.apply(this,arguments);n!==void 0&&(arguments[0]=n);var r=this.onsuccess,i=this.onerror;this.onsuccess=null,this.onerror=null;var a=t.apply(this,arguments);return r&&(this.onsuccess=this.onsuccess?Ai(r,this.onsuccess):r),i&&(this.onerror=this.onerror?Ai(i,this.onerror):i),a===void 0?n:a}}function Mi(e,t){return e===U?t:function(){e.apply(this,arguments);var n=this.onsuccess,r=this.onerror;this.onsuccess=this.onerror=null,t.apply(this,arguments),n&&(this.onsuccess=this.onsuccess?Ai(n,this.onsuccess):n),r&&(this.onerror=this.onerror?Ai(r,this.onerror):r)}}function Ni(e,t){return e===U?t:function(n){var r=e.apply(this,arguments);Mr(n,r);var i=this.onsuccess,a=this.onerror;this.onsuccess=null,this.onerror=null;var o=t.apply(this,arguments);return i&&(this.onsuccess=this.onsuccess?Ai(i,this.onsuccess):i),a&&(this.onerror=this.onerror?Ai(a,this.onerror):a),r===void 0?o===void 0?void 0:o:Mr(r,o)}}function Pi(e,t){return e===U?t:function(){return!1!==t.apply(this,arguments)&&e.apply(this,arguments)}}function Fi(e,t){return e===U?t:function(){var n=e.apply(this,arguments);if(n&&typeof n.then==`function`){for(var r=this,i=arguments.length,a=Array(i);i--;)a[i]=arguments[i];return n.then((function(){return t.apply(r,a)}))}return t.apply(this,arguments)}}Di.ModifyError=Si,Di.DexieError=bi,Di.BulkError=Ci;var Ii={},Li=100,[Ri,zi,Bi]=typeof Promise>`u`?[]:(()=>{let e=Promise.resolve();if(typeof crypto>`u`||!crypto.subtle)return[e,Nr(e),e];let t=crypto.subtle.digest(`SHA-512`,new Uint8Array([0]));return[t,Nr(t),e]})(),Vi=zi&&zi.then,Hi=Ri&&Ri.constructor,Ui=!!Bi,Wi=!1,Gi=Bi?()=>{Bi.then(fa)}:kr.setImmediate?setImmediate.bind(null,fa):kr.MutationObserver?()=>{var e=document.createElement(`div`);new MutationObserver((()=>{fa(),e=null})).observe(e,{attributes:!0}),e.setAttribute(`i`,`1`)}:()=>{setTimeout(fa,0)},Ki=function(e,t){ea.push([e,t]),Ji&&(Gi(),Ji=!1)},qi=!0,Ji=!0,Yi=[],Xi=[],Zi=null,Qi=Oi,$i={id:`global`,global:!0,ref:0,unhandleds:[],onunhandled:La,pgp:!1,env:{},finalize:function(){this.unhandleds.forEach((e=>{try{La(e[0],e[1])}catch(e){}}))}},W=$i,ea=[],ta=0,na=[];function G(e){if(typeof this!=`object`)throw TypeError(`Promises must be constructed via new`);this._listeners=[],this.onuncatched=U,this._lib=!1;var t=this._PSD=W;if(di&&(this._stackHolder=hi(),this._prev=null,this._numPrev=0),typeof e!=`function`){if(e!==Ii)throw TypeError(`Not a function`);this._state=arguments[1],this._value=arguments[2],!1===this._state&&oa(this,this._value)}else this._state=null,this._value=null,++t.ref,aa(this,e)}var ra={get:function(){var e=W,t=Sa;function n(n,r){var i=!e.global&&(e!==W||t!==Sa);let a=i&&!Ea();var o=new G(((t,o)=>{ca(this,new ia(Pa(n,e,i,a),Pa(r,e,i,a),t,o,e))}));return di&&da(o,this),o}return n.prototype=Ii,n},set:function(e){Rr(this,`then`,e&&e.prototype===Ii?ra:{get:function(){return e},set:ra.set})}};function ia(e,t,n,r,i){this.onFulfilled=typeof e==`function`?e:null,this.onRejected=typeof t==`function`?t:null,this.resolve=n,this.reject=r,this.psd=i}function aa(e,t){try{t((t=>{if(e._state===null){if(t===e)throw TypeError(`A promise cannot be resolved with itself.`);var n=e._lib&&pa();t&&typeof t.then==`function`?aa(e,((e,n)=>{t instanceof G?t._then(e,n):t.then(e,n)})):(e._state=!0,e._value=t,sa(e)),n&&ma()}}),oa.bind(null,e))}catch(t){oa(e,t)}}function oa(e,t){if(Xi.push(t),e._state===null){var n=e._lib&&pa();t=Qi(t),e._state=!1,e._value=t,di&&typeof t==`object`&&t&&!t._promise&&function(e,t,n){try{e.apply(null,n)}catch(e){t&&t(e)}}((()=>{var n=Vr(t,`stack`);t._promise=e,Rr(t,`stack`,{get:()=>Wi?n&&(n.get?n.get.apply(t):n.value):e.stack})})),function(e){Yi.some((t=>t._value===e._value))||Yi.push(e)}(e),sa(e),n&&ma()}}function sa(e){var t=e._listeners;e._listeners=[];for(var n=0,r=t.length;n<r;++n)ca(e,t[n]);var i=e._PSD;--i.ref||i.finalize(),ta===0&&(++ta,Ki((()=>{--ta==0&&ha()}),[]))}function ca(e,t){if(e._state!==null){var n=e._state?t.onFulfilled:t.onRejected;if(n===null)return(e._state?t.resolve:t.reject)(e._value);++t.psd.ref,++ta,Ki(la,[n,e,t])}else e._listeners.push(t)}function la(e,t,n){try{Zi=t;var r,i=t._value;t._state?r=e(i):(Xi.length&&(Xi=[]),r=e(i),Xi.indexOf(i)===-1&&function(e){for(var t=Yi.length;t;)if(Yi[--t]._value===e._value)return void Yi.splice(t,1)}(t)),n.resolve(r)}catch(e){n.reject(e)}finally{Zi=null,--ta==0&&ha(),--n.psd.ref||n.psd.finalize()}}function ua(e,t,n){if(t.length===n)return t;var r=``;if(!1===e._state){var i,a,o=e._value;o==null?(i=o,a=``):(i=o.name||`Error`,a=o.message||o,r=gi(o,0)),t.push(i+(a?`: `+a:``)+r)}return di&&((r=gi(e._stackHolder,2))&&t.indexOf(r)===-1&&t.push(r),e._prev&&ua(e._prev,t,n)),t}function da(e,t){var n=t?t._numPrev+1:0;n<100&&(e._prev=t,e._numPrev=n)}function fa(){pa()&&ma()}function pa(){var e=qi;return qi=!1,Ji=!1,e}function ma(){var e,t,n;do for(;ea.length>0;)for(e=ea,ea=[],n=e.length,t=0;t<n;++t){var r=e[t];r[0].apply(null,r[1])}while(ea.length>0);qi=!0,Ji=!0}function ha(){var e=Yi;Yi=[],e.forEach((e=>{e._PSD.onunhandled.call(null,e._value,e)}));for(var t=na.slice(0),n=t.length;n;)t[--n]()}function ga(e){return new G(Ii,!1,e)}function _a(e,t){var n=W;return function(){var r=pa(),i=W;try{return Aa(n,!0),e.apply(this,arguments)}catch(e){t&&t(e)}finally{Aa(i,!1),r&&ma()}}}Ir(G.prototype,{then:ra,_then:function(e,t){ca(this,new ia(null,null,e,t,W))},catch:function(e){if(arguments.length===1)return this.then(null,e);var t=arguments[0],n=arguments[1];return typeof t==`function`?this.then(null,(e=>e instanceof t?n(e):ga(e))):this.then(null,(e=>e&&e.name===t?n(e):ga(e)))},finally:function(e){return this.then((t=>(e(),t)),(t=>(e(),ga(t))))},stack:{get:function(){if(this._stack)return this._stack;try{Wi=!0;var e=ua(this,[],20).join(`
8
- From previous: `);return this._state!==null&&(this._stack=e),e}finally{Wi=!1}}},timeout:function(e,t){return e<1/0?new G(((n,r)=>{var i=setTimeout((()=>r(new H.Timeout(t))),e);this.then(n,r).finally(clearTimeout.bind(null,i))})):this}}),typeof Symbol<`u`&&Symbol.toStringTag&&Rr(G.prototype,Symbol.toStringTag,`Dexie.Promise`),$i.env=ja(),Ir(G,{all:function(){var e=li.apply(null,arguments).map(Da);return new G((function(t,n){e.length===0&&t([]);var r=e.length;e.forEach(((i,a)=>G.resolve(i).then((n=>{e[a]=n,--r||t(e)}),n)))}))},resolve:e=>{if(e instanceof G)return e;if(e&&typeof e.then==`function`)return new G(((t,n)=>{e.then(t,n)}));var t=new G(Ii,!0,e);return da(t,Zi),t},reject:ga,race:function(){var e=li.apply(null,arguments).map(Da);return new G(((t,n)=>{e.map((e=>G.resolve(e).then(t,n)))}))},PSD:{get:()=>W,set:e=>W=e},totalEchoes:{get:()=>Sa},newPSD:wa,usePSD:Ma,scheduler:{get:()=>Ki,set:e=>{Ki=e}},rejectionMapper:{get:()=>Qi,set:e=>{Qi=e}},follow:(e,t)=>new G(((n,r)=>wa(((t,n)=>{var r=W;r.unhandleds=[],r.onunhandled=n,r.finalize=Ai((function(){(function(e){function t(){e(),na.splice(na.indexOf(t),1)}na.push(t),++ta,Ki((()=>{--ta==0&&ha()}),[])})((()=>{this.unhandleds.length===0?t():n(this.unhandleds[0])}))}),r.finalize),e()}),t,n,r)))}),Hi&&(Hi.allSettled&&Rr(G,`allSettled`,(function(){let e=li.apply(null,arguments).map(Da);return new G((t=>{e.length===0&&t([]);let n=e.length,r=Array(n);e.forEach(((e,i)=>G.resolve(e).then((e=>r[i]={status:`fulfilled`,value:e}),(e=>r[i]={status:`rejected`,reason:e})).then((()=>--n||t(r)))))}))})),Hi.any&&typeof AggregateError<`u`&&Rr(G,`any`,(function(){let e=li.apply(null,arguments).map(Da);return new G(((t,n)=>{e.length===0&&n(AggregateError([]));let r=e.length,i=Array(r);e.forEach(((e,a)=>G.resolve(e).then((e=>t(e)),(e=>{i[a]=e,--r||n(AggregateError(i))}))))}))})));var va={awaits:0,echoes:0,id:0},ya=0,ba=[],xa=0,Sa=0,Ca=0;function wa(e,t,n,r){var i=W,a=Object.create(i);a.parent=i,a.ref=0,a.global=!1,a.id=++Ca;var o=$i.env;a.env=Ui?{Promise:G,PromiseProp:{value:G,configurable:!0,writable:!0},all:G.all,race:G.race,allSettled:G.allSettled,any:G.any,resolve:G.resolve,reject:G.reject,nthen:Fa(o.nthen,a),gthen:Fa(o.gthen,a)}:{},t&&Mr(a,t),++i.ref,a.finalize=function(){--this.parent.ref||this.parent.finalize()};var s=Ma(a,e,n,r);return a.ref===0&&a.finalize(),s}function Ta(){return va.id||(va.id=++ya),++va.awaits,va.echoes+=Li,va.id}function Ea(){return!!va.awaits&&(--va.awaits==0&&(va.id=0),va.echoes=va.awaits*Li,!0)}function Da(e){return va.echoes&&e&&e.constructor===Hi?(Ta(),e.then((e=>(Ea(),e)),(e=>(Ea(),Ra(e))))):e}function Oa(e){++Sa,va.echoes&&--va.echoes!=0||(va.echoes=va.id=0),ba.push(W),Aa(e,!0)}function ka(){var e=ba[ba.length-1];ba.pop(),Aa(e,!1)}function Aa(e,t){var n=W;if((t?!va.echoes||xa++&&e===W:!xa||--xa&&e===W)||Na(t?Oa.bind(null,e):ka),e!==W&&(W=e,n===$i&&($i.env=ja()),Ui)){var r=$i.env.Promise,i=e.env;zi.then=i.nthen,r.prototype.then=i.gthen,(n.global||e.global)&&(Object.defineProperty(kr,"Promise",i.PromiseProp),r.all=i.all,r.race=i.race,r.resolve=i.resolve,r.reject=i.reject,i.allSettled&&(r.allSettled=i.allSettled),i.any&&(r.any=i.any))}}function ja(){var e=kr.Promise;return Ui?{Promise:e,PromiseProp:Object.getOwnPropertyDescriptor(kr,`Promise`),all:e.all,race:e.race,allSettled:e.allSettled,any:e.any,resolve:e.resolve,reject:e.reject,nthen:zi.then,gthen:e.prototype.then}:{}}function Ma(e,t,n,r,i){var a=W;try{return Aa(e,!0),t(n,r,i)}finally{Aa(a,!1)}}function Na(e){Vi.call(Ri,e)}function Pa(e,t,n,r){return typeof e==`function`?function(){var i=W;n&&Ta(),Aa(t,!0);try{return e.apply(this,arguments)}finally{Aa(i,!1),r&&Na(Ea)}}:e}function Fa(e,t){return function(n,r){return e.call(this,Pa(n,t),Pa(r,t))}}(``+Vi).indexOf(`[native code]`)===-1&&(Ta=Ea=U);var Ia=`unhandledrejection`;function La(e,t){var n;try{n=t.onuncatched(e)}catch(e){}if(!1!==n)try{var r,i={promise:t,reason:e};if(kr.document&&document.createEvent?((r=document.createEvent(`Event`)).initEvent(Ia,!0,!0),Mr(r,i)):kr.CustomEvent&&Mr(r=new CustomEvent(Ia,{detail:i}),i),r&&kr.dispatchEvent&&(dispatchEvent(r),!kr.PromiseRejectionEvent&&kr.onunhandledrejection))try{kr.onunhandledrejection(r)}catch(e){}di&&r&&!r.defaultPrevented&&console.warn(`Unhandled rejection: ${e.stack||e}`)}catch(e){}}var Ra=G.reject;function za(e,t,n,r){if(e.idbdb&&(e._state.openComplete||W.letThrough||e._vip)){var i=e._createTransaction(t,n,e._dbSchema);try{i.create(),e._state.PR1398_maxLoop=3}catch(i){return i.name===wi.InvalidState&&e.isOpen()&&--e._state.PR1398_maxLoop>0?(console.warn(`Dexie: Need to reopen db`),e._close(),e.open().then((()=>za(e,t,n,r)))):Ra(i)}return i._promise(t,((e,t)=>wa((()=>(W.trans=i,r(e,t,i)))))).then((e=>i._completion.then((()=>e))))}if(e._state.openComplete)return Ra(new H.DatabaseClosed(e._state.dbOpenError));if(!e._state.isBeingOpened){if(!e._options.autoOpen)return Ra(new H.DatabaseClosed);e.open().catch(U)}return e._state.dbReadyPromise.then((()=>za(e,t,n,r)))}var Ba=`3.2.7`,Va=`￿`,Ha=-1/0,Ua=`Invalid key provided. Keys must be of type string, number, Date or Array<string | number | Date>.`,Wa=`String expected.`,Ga=[],Ka=typeof navigator<`u`&&/(MSIE|Trident|Edge)/.test(navigator.userAgent),qa=Ka,Ja=Ka,Ya=e=>!/(dexie\.js|dexie\.min\.js)/.test(e),Xa=`__dbnames`,Za=`readonly`,Qa=`readwrite`;function $a(e,t){return e?t?function(){return e.apply(this,arguments)&&t.apply(this,arguments)}:e:t}var eo={type:3,lower:-1/0,lowerOpen:!1,upper:[[]],upperOpen:!1};function to(e){return typeof e!=`string`||/\./.test(e)?e=>e:t=>(t[e]===void 0&&e in t&&delete(t=ni(t))[e],t)}var no=class{_trans(e,t,n){let r=this._tx||W.trans,i=this.name;function a(e,n,r){if(!r.schema[i])throw new H.NotFound(`Table `+i+` not part of transaction`);return t(r.idbtrans,r)}let o=pa();try{return r&&r.db===this.db?r===W.trans?r._promise(e,a,n):wa((()=>r._promise(e,a,n)),{trans:r,transless:W.transless||W}):za(this.db,e,[this.name],a)}finally{o&&ma()}}get(e,t){return e&&e.constructor===Object?this.where(e).first(t):this._trans(`readonly`,(t=>this.core.get({trans:t,key:e}).then((e=>this.hook.reading.fire(e))))).then(t)}where(e){if(typeof e==`string`)return new this.db.WhereClause(this,e);if(jr(e))return new this.db.WhereClause(this,`[${e.join(`+`)}]`);let t=Ar(e);if(t.length===1)return this.where(t[0]).equals(e[t[0]]);let n=this.schema.indexes.concat(this.schema.primKey).filter((e=>{if(e.compound&&t.every((t=>e.keyPath.indexOf(t)>=0))){for(let n=0;n<t.length;++n)if(t.indexOf(e.keyPath[n])===-1)return!1;return!0}return!1})).sort(((e,t)=>e.keyPath.length-t.keyPath.length))[0];if(n&&this.db._maxKey!==Va){let r=n.keyPath.slice(0,t.length);return this.where(r).equals(r.map((t=>e[t])))}!n&&di&&console.warn(`The query ${JSON.stringify(e)} on ${this.name} would benefit of a compound index [${t.join(`+`)}]`);let{idxByName:r}=this.schema,i=this.db._deps.indexedDB;function a(e,t){try{return i.cmp(e,t)===0}catch(e){return!1}}let[o,s]=t.reduce((([t,n],i)=>{let o=r[i],s=e[i];return[t||o,t||!o?$a(n,o&&o.multi?e=>{let t=Jr(e,i);return jr(t)&&t.some((e=>a(s,e)))}:e=>a(s,Jr(e,i))):n]}),[null,null]);return o?this.where(o.name).equals(e[o.keyPath]).filter(s):n?this.filter(s):this.where(t).equals(``)}filter(e){return this.toCollection().and(e)}count(e){return this.toCollection().count(e)}offset(e){return this.toCollection().offset(e)}limit(e){return this.toCollection().limit(e)}each(e){return this.toCollection().each(e)}toArray(e){return this.toCollection().toArray(e)}toCollection(){return new this.db.Collection(new this.db.WhereClause(this))}orderBy(e){return new this.db.Collection(new this.db.WhereClause(this,jr(e)?`[${e.join(`+`)}]`:e))}reverse(){return this.toCollection().reverse()}mapToClass(e){this.schema.mappedClass=e;let t=t=>{if(!t)return t;let n=Object.create(e.prototype);for(var r in t)if(Fr(t,r))try{n[r]=t[r]}catch(e){}return n};return this.schema.readHook&&this.hook.reading.unsubscribe(this.schema.readHook),this.schema.readHook=t,this.hook(`reading`,t),e}defineClass(){return this.mapToClass((function(e){Mr(this,e)}))}add(e,t){let{auto:n,keyPath:r}=this.schema.primKey,i=e;return r&&n&&(i=to(r)(e)),this._trans(`readwrite`,(e=>this.core.mutate({trans:e,type:`add`,keys:t==null?null:[t],values:[i]}))).then((e=>e.numFailures?G.reject(e.failures[0]):e.lastResult)).then((t=>{if(r)try{Yr(e,r,t)}catch(e){}return t}))}update(e,t){if(typeof e!=`object`||jr(e))return this.where(`:id`).equals(e).modify(t);{let n=Jr(e,this.schema.primKey.keyPath);if(n===void 0)return Ra(new H.InvalidArgument(`Given object does not contain its primary key`));try{typeof t==`function`?t(e,{value:e,primKey:n}):Ar(t).forEach((n=>{Yr(e,n,t[n])}))}catch(e){}return this.where(`:id`).equals(n).modify(t)}}put(e,t){let{auto:n,keyPath:r}=this.schema.primKey,i=e;return r&&n&&(i=to(r)(e)),this._trans(`readwrite`,(e=>this.core.mutate({trans:e,type:`put`,values:[i],keys:t==null?null:[t]}))).then((e=>e.numFailures?G.reject(e.failures[0]):e.lastResult)).then((t=>{if(r)try{Yr(e,r,t)}catch(e){}return t}))}delete(e){return this._trans(`readwrite`,(t=>this.core.mutate({trans:t,type:`delete`,keys:[e]}))).then((e=>e.numFailures?G.reject(e.failures[0]):void 0))}clear(){return this._trans(`readwrite`,(e=>this.core.mutate({trans:e,type:`deleteRange`,range:eo}))).then((e=>e.numFailures?G.reject(e.failures[0]):void 0))}bulkGet(e){return this._trans(`readonly`,(t=>this.core.getMany({keys:e,trans:t}).then((e=>e.map((e=>this.hook.reading.fire(e)))))))}bulkAdd(e,t,n){let r=Array.isArray(t)?t:void 0,i=(n=n||(r?void 0:t))?n.allKeys:void 0;return this._trans(`readwrite`,(t=>{let{auto:n,keyPath:a}=this.schema.primKey;if(a&&r)throw new H.InvalidArgument(`bulkAdd(): keys argument invalid on tables with inbound keys`);if(r&&r.length!==e.length)throw new H.InvalidArgument(`Arguments objects and keys must have the same length`);let o=e.length,s=a&&n?e.map(to(a)):e;return this.core.mutate({trans:t,type:`add`,keys:r,values:s,wantResults:i}).then((({numFailures:e,results:t,lastResult:n,failures:r})=>{if(e===0)return i?t:n;throw new Ci(`${this.name}.bulkAdd(): ${e} of ${o} operations failed`,r)}))}))}bulkPut(e,t,n){let r=Array.isArray(t)?t:void 0,i=(n=n||(r?void 0:t))?n.allKeys:void 0;return this._trans(`readwrite`,(t=>{let{auto:n,keyPath:a}=this.schema.primKey;if(a&&r)throw new H.InvalidArgument(`bulkPut(): keys argument invalid on tables with inbound keys`);if(r&&r.length!==e.length)throw new H.InvalidArgument(`Arguments objects and keys must have the same length`);let o=e.length,s=a&&n?e.map(to(a)):e;return this.core.mutate({trans:t,type:`put`,keys:r,values:s,wantResults:i}).then((({numFailures:e,results:t,lastResult:n,failures:r})=>{if(e===0)return i?t:n;throw new Ci(`${this.name}.bulkPut(): ${e} of ${o} operations failed`,r)}))}))}bulkDelete(e){let t=e.length;return this._trans(`readwrite`,(t=>this.core.mutate({trans:t,type:`delete`,keys:e}))).then((({numFailures:e,lastResult:n,failures:r})=>{if(e===0)return n;throw new Ci(`${this.name}.bulkDelete(): ${e} of ${t} operations failed`,r)}))}};function ro(e){var t={},n=function(n,r){if(r){for(var i=arguments.length,a=Array(i-1);--i;)a[i-1]=arguments[i];return t[n].subscribe.apply(null,a),e}if(typeof n==`string`)return t[n]};n.addEventType=a;for(var r=1,i=arguments.length;r<i;++r)a(arguments[r]);return n;function a(e,r,i){if(typeof e!=`object`){var o;r||(r=Pi),i||(i=U);var s={subscribers:[],fire:i,subscribe:function(e){s.subscribers.indexOf(e)===-1&&(s.subscribers.push(e),s.fire=r(s.fire,e))},unsubscribe:function(e){s.subscribers=s.subscribers.filter((function(t){return t!==e})),s.fire=s.subscribers.reduce(r,i)}};return t[e]=n[e]=s,s}Ar(o=e).forEach((function(e){var t=o[e];if(jr(t))a(e,o[e][0],o[e][1]);else{if(t!==`asap`)throw new H.InvalidArgument(`Invalid event config`);var n=a(e,Oi,(function(){for(var e=arguments.length,t=Array(e);e--;)t[e]=arguments[e];n.subscribers.forEach((function(e){Kr((function(){e.apply(null,t)}))}))}))}}))}}function io(e,t){return zr(t).from({prototype:e}),t}function ao(e,t){return!(e.filter||e.algorithm||e.or)&&(t?e.justLimit:!e.replayFilter)}function oo(e,t){e.filter=$a(e.filter,t)}function so(e,t,n){var r=e.replayFilter;e.replayFilter=r?()=>$a(r(),t()):t,e.justLimit=n&&!r}function co(e,t){if(e.isPrimKey)return t.primaryKey;let n=t.getIndexByKeyPath(e.index);if(!n)throw new H.Schema(`KeyPath `+e.index+` on object store `+t.name+` is not indexed`);return n}function lo(e,t,n){let r=co(e,t.schema);return t.openCursor({trans:n,values:!e.keysOnly,reverse:e.dir===`prev`,unique:!!e.unique,query:{index:r,range:e.range}})}function uo(e,t,n,r){let i=e.replayFilter?$a(e.filter,e.replayFilter()):e.filter;if(e.or){let a={},o=(e,n,r)=>{if(!i||i(n,r,(e=>n.stop(e)),(e=>n.fail(e)))){var o=n.primaryKey,s=``+o;s===`[object ArrayBuffer]`&&(s=``+new Uint8Array(o)),Fr(a,s)||(a[s]=!0,t(e,n,r))}};return Promise.all([e.or._iterate(o,n),fo(lo(e,r,n),e.algorithm,o,!e.keysOnly&&e.valueMapper)])}return fo(lo(e,r,n),$a(e.algorithm,i),t,!e.keysOnly&&e.valueMapper)}function fo(e,t,n,r){var i=_a(r?(e,t,i)=>n(r(e),t,i):n);return e.then((e=>{if(e)return e.start((()=>{var n=()=>e.continue();t&&!t(e,(e=>n=e),(t=>{e.stop(t),n=U}),(t=>{e.fail(t),n=U}))||i(e.value,e,(e=>n=e)),n()}))}))}function po(e,t){try{let n=mo(e),r=mo(t);if(n!==r)return n===`Array`?1:r===`Array`?-1:n===`binary`?1:r===`binary`?-1:n===`string`?1:r===`string`?-1:n===`Date`?1:r===`Date`?-1:NaN;switch(n){case`number`:case`Date`:case`string`:return e>t?1:e<t?-1:0;case`binary`:return function(e,t){let n=e.length,r=t.length,i=n<r?n:r;for(let n=0;n<i;++n)if(e[n]!==t[n])return e[n]<t[n]?-1:1;return n===r?0:n<r?-1:1}(ho(e),ho(t));case`Array`:return function(e,t){let n=e.length,r=t.length,i=n<r?n:r;for(let n=0;n<i;++n){let r=po(e[n],t[n]);if(r!==0)return r}return n===r?0:n<r?-1:1}(e,t)}}catch(e){}return NaN}function mo(e){let t=typeof e;if(t!==`object`)return t;if(ArrayBuffer.isView(e))return`binary`;let n=ai(e);return n===`ArrayBuffer`?`binary`:n}function ho(e){return e instanceof Uint8Array?e:ArrayBuffer.isView(e)?new Uint8Array(e.buffer,e.byteOffset,e.byteLength):new Uint8Array(e)}var go=class{_read(e,t){var n=this._ctx;return n.error?n.table._trans(null,Ra.bind(null,n.error)):n.table._trans(`readonly`,e).then(t)}_write(e){var t=this._ctx;return t.error?t.table._trans(null,Ra.bind(null,t.error)):t.table._trans(`readwrite`,e,`locked`)}_addAlgorithm(e){var t=this._ctx;t.algorithm=$a(t.algorithm,e)}_iterate(e,t){return uo(this._ctx,e,t,this._ctx.table.core)}clone(e){var t=Object.create(this.constructor.prototype),n=Object.create(this._ctx);return e&&Mr(n,e),t._ctx=n,t}raw(){return this._ctx.valueMapper=null,this}each(e){var t=this._ctx;return this._read((n=>uo(t,e,n,t.table.core)))}count(e){return this._read((e=>{let t=this._ctx,n=t.table.core;if(ao(t,!0))return n.count({trans:e,query:{index:co(t,n.schema),range:t.range}}).then((e=>Math.min(e,t.limit)));var r=0;return uo(t,(()=>(++r,!1)),e,n).then((()=>r))})).then(e)}sortBy(e,t){let n=e.split(`.`).reverse(),r=n[0],i=n.length-1;function a(e,t){return t?a(e[n[t]],t-1):e[r]}var o=this._ctx.dir===`next`?1:-1;function s(e,t){var n=a(e,i),r=a(t,i);return n<r?-o:n>r?o:0}return this.toArray((function(e){return e.sort(s)})).then(t)}toArray(e){return this._read((e=>{var t=this._ctx;if(t.dir===`next`&&ao(t,!0)&&t.limit>0){let{valueMapper:n}=t,r=co(t,t.table.core.schema);return t.table.core.query({trans:e,limit:t.limit,values:!0,query:{index:r,range:t.range}}).then((({result:e})=>n?e.map(n):e))}{let n=[];return uo(t,(e=>n.push(e)),e,t.table.core).then((()=>n))}}),e)}offset(e){var t=this._ctx;return e<=0||(t.offset+=e,ao(t)?so(t,(()=>{var t=e;return(e,n)=>t===0||(t===1?(--t,!1):(n((()=>{e.advance(t),t=0})),!1))})):so(t,(()=>{var t=e;return()=>--t<0}))),this}limit(e){return this._ctx.limit=Math.min(this._ctx.limit,e),so(this._ctx,(()=>{var t=e;return function(e,n,r){return--t<=0&&n(r),t>=0}}),!0),this}until(e,t){return oo(this._ctx,(function(n,r,i){return!e(n.value)||(r(i),t)})),this}first(e){return this.limit(1).toArray((function(e){return e[0]})).then(e)}last(e){return this.reverse().first(e)}filter(e){var t,n;return oo(this._ctx,(function(t){return e(t.value)})),t=this._ctx,n=e,t.isMatch=$a(t.isMatch,n),this}and(e){return this.filter(e)}or(e){return new this.db.WhereClause(this._ctx.table,e,this)}reverse(){return this._ctx.dir=this._ctx.dir===`prev`?`next`:`prev`,this._ondirectionchange&&this._ondirectionchange(this._ctx.dir),this}desc(){return this.reverse()}eachKey(e){var t=this._ctx;return t.keysOnly=!t.isMatch,this.each((function(t,n){e(n.key,n)}))}eachUniqueKey(e){return this._ctx.unique=`unique`,this.eachKey(e)}eachPrimaryKey(e){var t=this._ctx;return t.keysOnly=!t.isMatch,this.each((function(t,n){e(n.primaryKey,n)}))}keys(e){var t=this._ctx;t.keysOnly=!t.isMatch;var n=[];return this.each((function(e,t){n.push(t.key)})).then((function(){return n})).then(e)}primaryKeys(e){var t=this._ctx;if(t.dir===`next`&&ao(t,!0)&&t.limit>0)return this._read((e=>{var n=co(t,t.table.core.schema);return t.table.core.query({trans:e,values:!1,limit:t.limit,query:{index:n,range:t.range}})})).then((({result:e})=>e)).then(e);t.keysOnly=!t.isMatch;var n=[];return this.each((function(e,t){n.push(t.primaryKey)})).then((function(){return n})).then(e)}uniqueKeys(e){return this._ctx.unique=`unique`,this.keys(e)}firstKey(e){return this.limit(1).keys((function(e){return e[0]})).then(e)}lastKey(e){return this.reverse().firstKey(e)}distinct(){var e=this._ctx,t=e.index&&e.table.schema.idxByName[e.index];if(!t||!t.multi)return this;var n={};return oo(this._ctx,(function(e){var t=e.primaryKey.toString(),r=Fr(n,t);return n[t]=!0,!r})),this}modify(e){var t=this._ctx;return this._write((n=>{var r;if(typeof e==`function`)r=e;else{var i=Ar(e),a=i.length;r=function(t){for(var n=!1,r=0;r<a;++r){var o=i[r],s=e[o];Jr(t,o)!==s&&(Yr(t,o,s),n=!0)}return n}}let o=t.table.core,{outbound:s,extractKey:c}=o.schema.primaryKey,l=this.db._options.modifyChunkSize||200,u=[],d=0,f=[],p=(e,t)=>{let{failures:n,numFailures:r}=t;d+=e-r;for(let e of Ar(n))u.push(n[e])};return this.clone().primaryKeys().then((i=>{let a=u=>{let d=Math.min(l,i.length-u);return o.getMany({trans:n,keys:i.slice(u,u+d),cache:`immutable`}).then((f=>{let m=[],h=[],g=s?[]:null,_=[];for(let e=0;e<d;++e){let t=f[e],n={value:ni(t),primKey:i[u+e]};!1!==r.call(n,n.value,n)&&(n.value==null?_.push(i[u+e]):s||po(c(t),c(n.value))===0?(h.push(n.value),s&&g.push(i[u+e])):(_.push(i[u+e]),m.push(n.value)))}let v=ao(t)&&t.limit===1/0&&(typeof e!=`function`||e===_o)&&{index:t.index,range:t.range};return Promise.resolve(m.length>0&&o.mutate({trans:n,type:`add`,values:m}).then((e=>{for(let t in e.failures)_.splice(parseInt(t),1);p(m.length,e)}))).then((()=>(h.length>0||v&&typeof e==`object`)&&o.mutate({trans:n,type:`put`,keys:g,values:h,criteria:v,changeSpec:typeof e!=`function`&&e}).then((e=>p(h.length,e))))).then((()=>(_.length>0||v&&e===_o)&&o.mutate({trans:n,type:`delete`,keys:_,criteria:v}).then((e=>p(_.length,e))))).then((()=>i.length>u+d&&a(u+l)))}))};return a(0).then((()=>{if(u.length>0)throw new Si(`Error modifying one or more objects`,u,d,f);return i.length}))}))}))}delete(){var e=this._ctx,t=e.range;return ao(e)&&(e.isPrimKey&&!Ja||t.type===3)?this._write((n=>{let{primaryKey:r}=e.table.core.schema,i=t;return e.table.core.count({trans:n,query:{index:r,range:i}}).then((t=>e.table.core.mutate({trans:n,type:`deleteRange`,range:i}).then((({failures:e,lastResult:n,results:r,numFailures:i})=>{if(i)throw new Si(`Could not delete some values`,Object.keys(e).map((t=>e[t])),t-i);return t-i}))))})):this.modify(_o)}},_o=(e,t)=>t.value=null;function vo(e,t){return e<t?-1:e===t?0:1}function yo(e,t){return e>t?-1:e===t?0:1}function bo(e,t,n){var r=e instanceof Eo?new e.Collection(e):e;return r._ctx.error=n?new n(t):TypeError(t),r}function xo(e){return new e.Collection(e,(()=>To(``))).limit(0)}function So(e,t,n,r,i,a){for(var o=Math.min(e.length,r.length),s=-1,c=0;c<o;++c){var l=t[c];if(l!==r[c])return i(e[c],n[c])<0?e.substr(0,c)+n[c]+n.substr(c+1):i(e[c],r[c])<0?e.substr(0,c)+r[c]+n.substr(c+1):s>=0?e.substr(0,s)+t[s]+n.substr(s+1):null;i(e[c],l)<0&&(s=c)}return o<r.length&&a===`next`?e+n.substr(e.length):o<e.length&&a===`prev`?e.substr(0,n.length):s<0?null:e.substr(0,s)+r[s]+n.substr(s+1)}function Co(e,t,n,r){var i,a,o,s,c,l,u,d=n.length;if(!n.every((e=>typeof e==`string`)))return bo(e,Wa);function f(e){i=function(e){return e===`next`?e=>e.toUpperCase():e=>e.toLowerCase()}(e),a=function(e){return e===`next`?e=>e.toLowerCase():e=>e.toUpperCase()}(e),o=e===`next`?vo:yo;var t=n.map((function(e){return{lower:a(e),upper:i(e)}})).sort((function(e,t){return o(e.lower,t.lower)}));s=t.map((function(e){return e.upper})),c=t.map((function(e){return e.lower})),l=e,u=e===`next`?``:r}f(`next`);var p=new e.Collection(e,(()=>wo(s[0],c[d-1]+r)));p._ondirectionchange=function(e){f(e)};var m=0;return p._addAlgorithm((function(e,n,r){var i=e.key;if(typeof i!=`string`)return!1;var f=a(i);if(t(f,c,m))return!0;for(var p=null,h=m;h<d;++h){var g=So(i,f,s[h],c[h],o,l);g===null&&p===null?m=h+1:(p===null||o(p,g)>0)&&(p=g)}return n(p===null?r:function(){e.continue(p+u)}),!1})),p}function wo(e,t,n,r){return{type:2,lower:e,upper:t,lowerOpen:n,upperOpen:r}}function To(e){return{type:1,lower:e,upper:e}}var Eo=class{get Collection(){return this._ctx.table.db.Collection}between(e,t,n,r){n=!1!==n,r=!0===r;try{return this._cmp(e,t)>0||this._cmp(e,t)===0&&(n||r)&&(!n||!r)?xo(this):new this.Collection(this,(()=>wo(e,t,!n,!r)))}catch(e){return bo(this,Ua)}}equals(e){return e==null?bo(this,Ua):new this.Collection(this,(()=>To(e)))}above(e){return e==null?bo(this,Ua):new this.Collection(this,(()=>wo(e,void 0,!0)))}aboveOrEqual(e){return e==null?bo(this,Ua):new this.Collection(this,(()=>wo(e,void 0,!1)))}below(e){return e==null?bo(this,Ua):new this.Collection(this,(()=>wo(void 0,e,!1,!0)))}belowOrEqual(e){return e==null?bo(this,Ua):new this.Collection(this,(()=>wo(void 0,e)))}startsWith(e){return typeof e==`string`?this.between(e,e+Va,!0,!0):bo(this,Wa)}startsWithIgnoreCase(e){return e===``?this.startsWith(e):Co(this,((e,t)=>e.indexOf(t[0])===0),[e],Va)}equalsIgnoreCase(e){return Co(this,((e,t)=>e===t[0]),[e],``)}anyOfIgnoreCase(){var e=li.apply(ci,arguments);return e.length===0?xo(this):Co(this,((e,t)=>t.indexOf(e)!==-1),e,``)}startsWithAnyOfIgnoreCase(){var e=li.apply(ci,arguments);return e.length===0?xo(this):Co(this,((e,t)=>t.some((t=>e.indexOf(t)===0))),e,Va)}anyOf(){let e=li.apply(ci,arguments),t=this._cmp;try{e.sort(t)}catch(e){return bo(this,Ua)}if(e.length===0)return xo(this);let n=new this.Collection(this,(()=>wo(e[0],e[e.length-1])));n._ondirectionchange=n=>{t=n===`next`?this._ascending:this._descending,e.sort(t)};let r=0;return n._addAlgorithm(((n,i,a)=>{let o=n.key;for(;t(o,e[r])>0;)if(++r,r===e.length)return i(a),!1;return t(o,e[r])===0||(i((()=>{n.continue(e[r])})),!1)})),n}notEqual(e){return this.inAnyRange([[Ha,e],[e,this.db._maxKey]],{includeLowers:!1,includeUppers:!1})}noneOf(){let e=li.apply(ci,arguments);if(e.length===0)return new this.Collection(this);try{e.sort(this._ascending)}catch(e){return bo(this,Ua)}let t=e.reduce(((e,t)=>e?e.concat([[e[e.length-1][1],t]]):[[Ha,t]]),null);return t.push([e[e.length-1],this.db._maxKey]),this.inAnyRange(t,{includeLowers:!1,includeUppers:!1})}inAnyRange(e,t){let n=this._cmp,r=this._ascending,i=this._descending,a=this._min,o=this._max;if(e.length===0)return xo(this);if(!e.every((e=>e[0]!==void 0&&e[1]!==void 0&&r(e[0],e[1])<=0)))return bo(this,`First argument to inAnyRange() must be an Array of two-value Arrays [lower,upper] where upper must not be lower than lower`,H.InvalidArgument);let s=!t||!1!==t.includeLowers,c=t&&!0===t.includeUppers,l,u=r;function d(e,t){return u(e[0],t[0])}try{l=e.reduce((function(e,t){let r=0,i=e.length;for(;r<i;++r){let i=e[r];if(n(t[0],i[1])<0&&n(t[1],i[0])>0){i[0]=a(i[0],t[0]),i[1]=o(i[1],t[1]);break}}return r===i&&e.push(t),e}),[]),l.sort(d)}catch(e){return bo(this,Ua)}let f=0,p=c?e=>r(e,l[f][1])>0:e=>r(e,l[f][1])>=0,m=s?e=>i(e,l[f][0])>0:e=>i(e,l[f][0])>=0,h=p,g=new this.Collection(this,(()=>wo(l[0][0],l[l.length-1][1],!s,!c)));return g._ondirectionchange=e=>{e===`next`?(h=p,u=r):(h=m,u=i),l.sort(d)},g._addAlgorithm(((e,t,n)=>{for(var i=e.key;h(i);)if(++f,f===l.length)return t(n),!1;return!!function(e){return!p(e)&&!m(e)}(i)||(this._cmp(i,l[f][1])===0||this._cmp(i,l[f][0])===0||t((()=>{u===r?e.continue(l[f][0]):e.continue(l[f][1])})),!1)})),g}startsWithAnyOf(){let e=li.apply(ci,arguments);return e.every((e=>typeof e==`string`))?e.length===0?xo(this):this.inAnyRange(e.map((e=>[e,e+Va]))):bo(this,`startsWithAnyOf() only works with strings`)}};function Do(e){return _a((function(t){return Oo(t),e(t.target.error),!1}))}function Oo(e){e.stopPropagation&&e.stopPropagation(),e.preventDefault&&e.preventDefault()}var ko=`storagemutated`,Ao=`x-storagemutated-1`,jo=ro(null,ko),Mo=class{_lock(){return Gr(!W.global),++this._reculock,this._reculock!==1||W.global||(W.lockOwnerFor=this),this}_unlock(){if(Gr(!W.global),--this._reculock==0)for(W.global||(W.lockOwnerFor=null);this._blockedFuncs.length>0&&!this._locked();){var e=this._blockedFuncs.shift();try{Ma(e[1],e[0])}catch(e){}}return this}_locked(){return this._reculock&&W.lockOwnerFor!==this}create(e){if(!this.mode)return this;let t=this.db.idbdb,n=this.db._state.dbOpenError;if(Gr(!this.idbtrans),!e&&!t)switch(n&&n.name){case`DatabaseClosedError`:throw new H.DatabaseClosed(n);case`MissingAPIError`:throw new H.MissingAPI(n.message,n);default:throw new H.OpenFailed(n)}if(!this.active)throw new H.TransactionInactive;return Gr(this._completion._state===null),(e=this.idbtrans=e||(this.db.core?this.db.core.transaction(this.storeNames,this.mode,{durability:this.chromeTransactionDurability}):t.transaction(this.storeNames,this.mode,{durability:this.chromeTransactionDurability}))).onerror=_a((t=>{Oo(t),this._reject(e.error)})),e.onabort=_a((t=>{Oo(t),this.active&&this._reject(new H.Abort(e.error)),this.active=!1,this.on(`abort`).fire(t)})),e.oncomplete=_a((()=>{this.active=!1,this._resolve(),`mutatedParts`in e&&jo.storagemutated.fire(e.mutatedParts)})),this}_promise(e,t,n){if(e===`readwrite`&&this.mode!==`readwrite`)return Ra(new H.ReadOnly(`Transaction is readonly`));if(!this.active)return Ra(new H.TransactionInactive);if(this._locked())return new G(((r,i)=>{this._blockedFuncs.push([()=>{this._promise(e,t,n).then(r,i)},W])}));if(n)return wa((()=>{var e=new G(((e,n)=>{this._lock();let r=t(e,n,this);r&&r.then&&r.then(e,n)}));return e.finally((()=>this._unlock())),e._lib=!0,e}));var r=new G(((e,n)=>{var r=t(e,n,this);r&&r.then&&r.then(e,n)}));return r._lib=!0,r}_root(){return this.parent?this.parent._root():this}waitFor(e){var t=this._root();let n=G.resolve(e);if(t._waitingFor)t._waitingFor=t._waitingFor.then((()=>n));else{t._waitingFor=n,t._waitingQueue=[];var r=t.idbtrans.objectStore(t.storeNames[0]);(function e(){for(++t._spinCount;t._waitingQueue.length;)t._waitingQueue.shift()();t._waitingFor&&(r.get(-1/0).onsuccess=e)})()}var i=t._waitingFor;return new G(((e,r)=>{n.then((n=>t._waitingQueue.push(_a(e.bind(null,n)))),(e=>t._waitingQueue.push(_a(r.bind(null,e))))).finally((()=>{t._waitingFor===i&&(t._waitingFor=null)}))}))}abort(){this.active&&(this.active=!1,this.idbtrans&&this.idbtrans.abort(),this._reject(new H.Abort))}table(e){let t=this._memoizedTables||(this._memoizedTables={});if(Fr(t,e))return t[e];let n=this.schema[e];if(!n)throw new H.NotFound(`Table `+e+` not part of transaction`);let r=new this.db.Table(e,n,this);return r.core=this.db.core.table(e),t[e]=r,r}};function No(e,t,n,r,i,a,o){return{name:e,keyPath:t,unique:n,multi:r,auto:i,compound:a,src:(n&&!o?`&`:``)+(r?`*`:``)+(i?`++`:``)+Po(t)}}function Po(e){return typeof e==`string`?e:e?`[`+[].join.call(e,`+`)+`]`:``}function Fo(e,t,n){return{name:e,primKey:t,indexes:n,mappedClass:null,idxByName:qr(n,(e=>[e.name,e]))}}var Io=e=>{try{return e.only([[]]),Io=()=>[[]],[[]]}catch(e){return Io=()=>Va,Va}};function Lo(e){return e==null?()=>{}:typeof e==`string`?function(e){return e.split(`.`).length===1?t=>t[e]:t=>Jr(t,e)}(e):t=>Jr(t,e)}function Ro(e){return[].slice.call(e)}var zo=0;function Bo(e){return e==null?`:id`:typeof e==`string`?e:`[${e.join(`+`)}]`}function Vo(e,t,n){function r(e){if(e.type===3)return null;if(e.type===4)throw Error(`Cannot convert never type to IDBKeyRange`);let{lower:n,upper:r,lowerOpen:i,upperOpen:a}=e;return n===void 0?r===void 0?null:t.upperBound(r,!!a):r===void 0?t.lowerBound(n,!!i):t.bound(n,r,!!i,!!a)}let{schema:i,hasGetAll:a}=function(e,t){let n=Ro(e.objectStoreNames);return{schema:{name:e.name,tables:n.map((e=>t.objectStore(e))).map((e=>{let{keyPath:t,autoIncrement:n}=e,r=jr(t),i=t==null,a={},o={name:e.name,primaryKey:{name:null,isPrimaryKey:!0,outbound:i,compound:r,keyPath:t,autoIncrement:n,unique:!0,extractKey:Lo(t)},indexes:Ro(e.indexNames).map((t=>e.index(t))).map((e=>{let{name:t,unique:n,multiEntry:r,keyPath:i}=e,o={name:t,compound:jr(i),keyPath:i,unique:n,multiEntry:r,extractKey:Lo(i)};return a[Bo(i)]=o,o})),getIndexByKeyPath:e=>a[Bo(e)]};return a[`:id`]=o.primaryKey,t!=null&&(a[Bo(t)]=o.primaryKey),o}))},hasGetAll:n.length>0&&`getAll`in t.objectStore(n[0])&&!(typeof navigator<`u`&&/Safari/.test(navigator.userAgent)&&!/(Chrome\/|Edge\/)/.test(navigator.userAgent)&&[].concat(navigator.userAgent.match(/Safari\/(\d*)/))[1]<604)}}(e,n),o=i.tables.map((e=>function(e){let t=e.name;return{name:t,schema:e,mutate:function({trans:e,type:n,keys:i,values:a,range:o}){return new Promise(((s,c)=>{s=_a(s);let l=e.objectStore(t),u=l.keyPath==null,d=n===`put`||n===`add`;if(!d&&n!==`delete`&&n!==`deleteRange`)throw Error(`Invalid operation type: `+n);let{length:f}=i||a||{length:1};if(i&&a&&i.length!==a.length)throw Error(`Given keys array must have same length as given values array.`);if(f===0)return s({numFailures:0,failures:{},results:[],lastResult:void 0});let p,m=[],h=[],g=0,_=e=>{++g,Oo(e)};if(n===`deleteRange`){if(o.type===4)return s({numFailures:g,failures:h,results:[],lastResult:void 0});o.type===3?m.push(p=l.clear()):m.push(p=l.delete(r(o)))}else{let[e,t]=d?u?[a,i]:[a,null]:[i,null];if(d)for(let r=0;r<f;++r)m.push(p=t&&t[r]!==void 0?l[n](e[r],t[r]):l[n](e[r])),p.onerror=_;else for(let t=0;t<f;++t)m.push(p=l[n](e[t])),p.onerror=_}let v=e=>{let t=e.target.result;m.forEach(((e,t)=>e.error!=null&&(h[t]=e.error))),s({numFailures:g,failures:h,results:n===`delete`?i:m.map((e=>e.result)),lastResult:t})};p.onerror=e=>{_(e),v(e)},p.onsuccess=v}))},getMany:({trans:e,keys:n})=>new Promise(((r,i)=>{r=_a(r);let a=e.objectStore(t),o=n.length,s=Array(o),c,l=0,u=0,d=e=>{let t=e.target;s[t._pos]=t.result,++u===l&&r(s)},f=Do(i);for(let e=0;e<o;++e)n[e]!=null&&(c=a.get(n[e]),c._pos=e,c.onsuccess=d,c.onerror=f,++l);l===0&&r(s)})),get:({trans:e,key:n})=>new Promise(((r,i)=>{r=_a(r);let a=e.objectStore(t).get(n);a.onsuccess=e=>r(e.target.result),a.onerror=Do(i)})),query:function(e){return n=>new Promise(((i,a)=>{i=_a(i);let{trans:o,values:s,limit:c,query:l}=n,u=c===1/0?void 0:c,{index:d,range:f}=l,p=o.objectStore(t),m=d.isPrimaryKey?p:p.index(d.name),h=r(f);if(c===0)return i({result:[]});if(e){let e=s?m.getAll(h,u):m.getAllKeys(h,u);e.onsuccess=e=>i({result:e.target.result}),e.onerror=Do(a)}else{let e=0,t=s||!(`openKeyCursor`in m)?m.openCursor(h):m.openKeyCursor(h),n=[];t.onsuccess=r=>{let a=t.result;return a?(n.push(s?a.value:a.primaryKey),++e===c?i({result:n}):void a.continue()):i({result:n})},t.onerror=Do(a)}}))}(a),openCursor:function({trans:e,values:n,query:i,reverse:a,unique:o}){return new Promise(((s,c)=>{s=_a(s);let{index:l,range:u}=i,d=e.objectStore(t),f=l.isPrimaryKey?d:d.index(l.name),p=a?o?`prevunique`:`prev`:o?`nextunique`:`next`,m=n||!(`openKeyCursor`in f)?f.openCursor(r(u),p):f.openKeyCursor(r(u),p);m.onerror=Do(c),m.onsuccess=_a((t=>{let n=m.result;if(!n)return void s(null);n.___id=++zo,n.done=!1;let r=n.continue.bind(n),i=n.continuePrimaryKey;i&&(i=i.bind(n));let a=n.advance.bind(n),o=()=>{throw Error(`Cursor not stopped`)};n.trans=e,n.stop=n.continue=n.continuePrimaryKey=n.advance=()=>{throw Error(`Cursor not started`)},n.fail=_a(c),n.next=function(){let e=1;return this.start((()=>e--?this.continue():this.stop())).then((()=>this))},n.start=e=>{let t=new Promise(((e,t)=>{e=_a(e),m.onerror=Do(t),n.fail=t,n.stop=t=>{n.stop=n.continue=n.continuePrimaryKey=n.advance=o,e(t)}})),s=()=>{if(m.result)try{e()}catch(e){n.fail(e)}else n.done=!0,n.start=()=>{throw Error(`Cursor behind last entry`)},n.stop()};return m.onsuccess=_a((e=>{m.onsuccess=s,s()})),n.continue=r,n.continuePrimaryKey=i,n.advance=a,s(),t},s(n)}),c)}))},count({query:e,trans:n}){let{index:i,range:a}=e;return new Promise(((e,o)=>{let s=n.objectStore(t),c=i.isPrimaryKey?s:s.index(i.name),l=r(a),u=l?c.count(l):c.count();u.onsuccess=_a((t=>e(t.target.result))),u.onerror=Do(o)}))}}}(e))),s={};return o.forEach((e=>s[e.name]=e)),{stack:`dbcore`,transaction:e.transaction.bind(e),table(e){if(!s[e])throw Error(`Table '${e}' not found`);return s[e]},MIN_KEY:-1/0,MAX_KEY:Io(t),schema:i}}function Ho({_novip:e},t){let n=t.db;e.core=function(e,t,{IDBKeyRange:n,indexedDB:r},i){return{dbcore:function(e,t){return t.reduce(((e,{create:t})=>V(V({},e),t(e))),e)}(Vo(t,n,i),e.dbcore)}}(e._middlewares,n,e._deps,t).dbcore,e.tables.forEach((t=>{let n=t.name;e.core.schema.tables.some((e=>e.name===n))&&(t.core=e.core.table(n),e[n]instanceof e.Table&&(e[n].core=t.core))}))}function Uo({_novip:e},t,n,r){n.forEach((n=>{let i=r[n];t.forEach((t=>{let r=Vr(t,n);(!r||`value`in r&&r.value===void 0)&&(t===e.Transaction.prototype||t instanceof e.Transaction?Rr(t,n,{get(){return this.table(n)},set(e){Lr(this,n,{value:e,writable:!0,configurable:!0,enumerable:!0})}}):t[n]=new e.Table(n,i))}))}))}function Wo({_novip:e},t){t.forEach((t=>{for(let n in t)t[n]instanceof e.Table&&delete t[n]}))}function Go(e,t){return e._cfg.version-t._cfg.version}function Ko(e,t,n,r){let i=e._dbSchema,a=e._createTransaction(`readwrite`,e._storeNames,i);a.create(n),a._completion.catch(r);let o=a._reject.bind(a),s=W.transless||W;wa((()=>{W.trans=a,W.transless=s,t===0?(Ar(i).forEach((e=>{Jo(n,e,i[e].primKey,i[e].indexes)})),Ho(e,n),G.follow((()=>e.on.populate.fire(a))).catch(o)):function({_novip:e},t,n,r){let i=[],a=e._versions,o=e._dbSchema=Xo(e,e.idbdb,r),s=!1,c=a.filter((e=>e._cfg.version>=t));function l(){return i.length?G.resolve(i.shift()(n.idbtrans)).then(l):G.resolve()}return c.forEach((a=>{i.push((()=>{let i=o,c=a._cfg.dbschema;Zo(e,i,r),Zo(e,c,r),o=e._dbSchema=c;let l=qo(i,c);l.add.forEach((e=>{Jo(r,e[0],e[1].primKey,e[1].indexes)})),l.change.forEach((e=>{if(e.recreate)throw new H.Upgrade(`Not yet support for changing primary key`);{let t=r.objectStore(e.name);e.add.forEach((e=>Yo(t,e))),e.change.forEach((e=>{t.deleteIndex(e.name),Yo(t,e)})),e.del.forEach((e=>t.deleteIndex(e)))}}));let u=a._cfg.contentUpgrade;if(u&&a._cfg.version>t){Ho(e,r),n._memoizedTables={},s=!0;let t=Xr(c);l.del.forEach((e=>{t[e]=i[e]})),Wo(e,[e.Transaction.prototype]),Uo(e,[e.Transaction.prototype],Ar(t),t),n.schema=t;let a=ui(u),o;a&&Ta();let d=G.follow((()=>{if(o=u(n),o&&a){var e=Ea.bind(null,null);o.then(e,e)}}));return o&&typeof o.then==`function`?G.resolve(o):d.then((()=>o))}})),i.push((t=>{s&&qa||(function(e,t){[].slice.call(t.db.objectStoreNames).forEach((n=>e[n]==null&&t.db.deleteObjectStore(n)))})(a._cfg.dbschema,t),Wo(e,[e.Transaction.prototype]),Uo(e,[e.Transaction.prototype],e._storeNames,e._dbSchema),n.schema=e._dbSchema}))})),l().then((()=>{var e,t=r;Ar(e=o).forEach((n=>{t.db.objectStoreNames.contains(n)||Jo(t,n,e[n].primKey,e[n].indexes)}))}))}(e,t,a,n).catch(o)}))}function qo(e,t){let n={del:[],add:[],change:[]},r;for(r in e)t[r]||n.del.push(r);for(r in t){let i=e[r],a=t[r];if(i){let e={name:r,def:a,recreate:!1,del:[],add:[],change:[]};if(``+(i.primKey.keyPath||``)!=``+(a.primKey.keyPath||``)||i.primKey.auto!==a.primKey.auto&&!Ka)e.recreate=!0,n.change.push(e);else{let t=i.idxByName,r=a.idxByName,o;for(o in t)r[o]||e.del.push(o);for(o in r){let n=t[o],i=r[o];n?n.src!==i.src&&e.change.push(i):e.add.push(i)}(e.del.length>0||e.add.length>0||e.change.length>0)&&n.change.push(e)}}else n.add.push([r,a])}return n}function Jo(e,t,n,r){let i=e.db.createObjectStore(t,n.keyPath?{keyPath:n.keyPath,autoIncrement:n.auto}:{autoIncrement:n.auto});return r.forEach((e=>Yo(i,e))),i}function Yo(e,t){e.createIndex(t.name,t.keyPath,{unique:t.unique,multiEntry:t.multi})}function Xo(e,t,n){let r={};return Ur(t.objectStoreNames,0).forEach((e=>{let t=n.objectStore(e),i=t.keyPath,a=No(Po(i),i||``,!1,!1,!!t.autoIncrement,i&&typeof i!=`string`,!0),o=[];for(let e=0;e<t.indexNames.length;++e){let n=t.index(t.indexNames[e]);i=n.keyPath;var s=No(n.name,i,!!n.unique,!!n.multiEntry,!1,i&&typeof i!=`string`,!1);o.push(s)}r[e]=Fo(e,a,o)})),r}function Zo({_novip:e},t,n){let r=n.db.objectStoreNames;for(let i=0;i<r.length;++i){let a=r[i],o=n.objectStore(a);e._hasGetAll=`getAll`in o;for(let e=0;e<o.indexNames.length;++e){let n=o.indexNames[e],r=o.index(n).keyPath,i=typeof r==`string`?r:`[`+Ur(r).join(`+`)+`]`;if(t[a]){let e=t[a].idxByName[i];e&&(e.name=n,delete t[a].idxByName[i],t[a].idxByName[n]=e)}}}typeof navigator<`u`&&/Safari/.test(navigator.userAgent)&&!/(Chrome\/|Edge\/)/.test(navigator.userAgent)&&kr.WorkerGlobalScope&&kr instanceof kr.WorkerGlobalScope&&[].concat(navigator.userAgent.match(/Safari\/(\d*)/))[1]<604&&(e._hasGetAll=!1)}var Qo=class{_parseStoresSpec(e,t){Ar(e).forEach((n=>{if(e[n]!==null){var r=e[n].split(`,`).map(((e,t)=>{let n=(e=e.trim()).replace(/([&*]|\+\+)/g,``),r=/^\[/.test(n)?n.match(/^\[(.*)\]$/)[1].split(`+`):n;return No(n,r||null,/\&/.test(e),/\*/.test(e),/\+\+/.test(e),jr(r),t===0)})),i=r.shift();if(i.multi)throw new H.Schema(`Primary key cannot be multi-valued`);r.forEach((e=>{if(e.auto)throw new H.Schema(`Only primary key can be marked as autoIncrement (++)`);if(!e.keyPath)throw new H.Schema(`Index must have a name and cannot be an empty string`)})),t[n]=Fo(n,i,r)}}))}stores(e){let t=this.db;this._cfg.storesSource=this._cfg.storesSource?Mr(this._cfg.storesSource,e):e;let n=t._versions,r={},i={};return n.forEach((e=>{Mr(r,e._cfg.storesSource),i=e._cfg.dbschema={},e._parseStoresSpec(r,i)})),t._dbSchema=i,Wo(t,[t._allTables,t,t.Transaction.prototype]),Uo(t,[t._allTables,t,t.Transaction.prototype,this._cfg.tables],Ar(i),i),t._storeNames=Ar(i),this}upgrade(e){return this._cfg.contentUpgrade=Fi(this._cfg.contentUpgrade||U,e),this}};function $o(e,t){let n=e._dbNamesDB;return n||(n=e._dbNamesDB=new Ss(Xa,{addons:[],indexedDB:e,IDBKeyRange:t}),n.version(1).stores({dbnames:`name`})),n.table(`dbnames`)}function es(e){return e&&typeof e.databases==`function`}function ts(e){return wa((function(){return W.letThrough=!0,e()}))}function ns(){var e;return!navigator.userAgentData&&/Safari\//.test(navigator.userAgent)&&!/Chrom(e|ium)\//.test(navigator.userAgent)&&indexedDB.databases?new Promise((function(t){var n=function(){return indexedDB.databases().finally(t)};e=setInterval(n,100),n()})).finally((function(){return clearInterval(e)})):Promise.resolve()}function rs(e){let t=e._state,{indexedDB:n}=e._deps;if(t.isBeingOpened||e.idbdb)return t.dbReadyPromise.then((()=>t.dbOpenError?Ra(t.dbOpenError):e));di&&(t.openCanceller._stackHolder=hi()),t.isBeingOpened=!0,t.dbOpenError=null,t.openComplete=!1;let r=t.openCanceller;function i(){if(t.openCanceller!==r)throw new H.DatabaseClosed(`db.open() was cancelled`)}let a=t.dbReadyResolve,o=null,s=!1,c=()=>new G(((r,a)=>{if(i(),!n)throw new H.MissingAPI;let c=e.name,l=t.autoSchema?n.open(c):n.open(c,Math.round(10*e.verno));if(!l)throw new H.MissingAPI;l.onerror=Do(a),l.onblocked=_a(e._fireOnBlocked),l.onupgradeneeded=_a((r=>{if(o=l.transaction,t.autoSchema&&!e._options.allowEmptyDB){l.onerror=Oo,o.abort(),l.result.close();let e=n.deleteDatabase(c);e.onsuccess=e.onerror=_a((()=>{a(new H.NoSuchDatabase(`Database ${c} doesnt exist`))}))}else{o.onerror=Do(a);var i=r.oldVersion>2**62?0:r.oldVersion;s=i<1,e._novip.idbdb=l.result,Ko(e,i/10,o,a)}}),a),l.onsuccess=_a((()=>{o=null;let n=e._novip.idbdb=l.result,i=Ur(n.objectStoreNames);if(i.length>0)try{let r=n.transaction((a=i).length===1?a[0]:a,`readonly`);t.autoSchema?function({_novip:e},t,n){e.verno=t.version/10;let r=e._dbSchema=Xo(0,t,n);e._storeNames=Ur(t.objectStoreNames,0),Uo(e,[e._allTables],Ar(r),r)}(e,n,r):(Zo(e,e._dbSchema,r),function(e,t){let n=qo(Xo(0,e.idbdb,t),e._dbSchema);return!(n.add.length||n.change.some((e=>e.add.length||e.change.length)))}(e,r)||console.warn(`Dexie SchemaDiff: Schema was extended without increasing the number passed to db.version(). Some queries may fail.`)),Ho(e,r)}catch(e){}var a;Ga.push(e),n.onversionchange=_a((n=>{t.vcFired=!0,e.on(`versionchange`).fire(n)})),n.onclose=_a((t=>{e.on(`close`).fire(t)})),s&&function({indexedDB:e,IDBKeyRange:t},n){!es(e)&&n!==Xa&&$o(e,t).put({name:n}).catch(U)}(e._deps,c),r()}),a)})).catch((e=>e&&e.name===`UnknownError`&&t.PR1398_maxLoop>0?(t.PR1398_maxLoop--,console.warn(`Dexie: Workaround for Chrome UnknownError on open()`),c()):G.reject(e)));return G.race([r,(typeof navigator>`u`?G.resolve():ns()).then(c)]).then((()=>(i(),t.onReadyBeingFired=[],G.resolve(ts((()=>e.on.ready.fire(e.vip)))).then((function n(){if(t.onReadyBeingFired.length>0){let r=t.onReadyBeingFired.reduce(Fi,U);return t.onReadyBeingFired=[],G.resolve(ts((()=>r(e.vip)))).then(n)}}))))).finally((()=>{t.onReadyBeingFired=null,t.isBeingOpened=!1})).then((()=>e)).catch((n=>{t.dbOpenError=n;try{o&&o.abort()}catch(e){}return r===t.openCanceller&&e._close(),Ra(n)})).finally((()=>{t.openComplete=!0,a()}))}function is(e){var t=t=>e.next(t),n=i(t),r=i((t=>e.throw(t)));function i(e){return t=>{var i=e(t),a=i.value;return i.done?a:a&&typeof a.then==`function`?a.then(n,r):jr(a)?Promise.all(a).then(n,r):n(a)}}return i(t)()}function as(e,t,n){var r=arguments.length;if(r<2)throw new H.InvalidArgument(`Too few arguments`);for(var i=Array(r-1);--r;)i[r-1]=arguments[r];return n=i.pop(),[e,Qr(i),n]}function os(e,t,n,r,i){return G.resolve().then((()=>{let a=W.transless||W,o=e._createTransaction(t,n,e._dbSchema,r),s={trans:o,transless:a};if(r)o.idbtrans=r.idbtrans;else try{o.create(),e._state.PR1398_maxLoop=3}catch(r){return r.name===wi.InvalidState&&e.isOpen()&&--e._state.PR1398_maxLoop>0?(console.warn(`Dexie: Need to reopen db`),e._close(),e.open().then((()=>os(e,t,n,null,i)))):Ra(r)}let c=ui(i),l;c&&Ta();let u=G.follow((()=>{if(l=i.call(o,o),l){if(c){var e=Ea.bind(null,null);l.then(e,e)}else typeof l.next==`function`&&typeof l.throw==`function`&&(l=is(l))}}),s);return(l&&typeof l.then==`function`?G.resolve(l).then((e=>o.active?e:Ra(new H.PrematureCommit(`Transaction committed too early. See http://bit.ly/2kdckMn`)))):u.then((()=>l))).then((e=>(r&&o._resolve(),o._completion.then((()=>e))))).catch((e=>(o._reject(e),Ra(e))))}))}function ss(e,t,n){let r=jr(e)?e.slice():[e];for(let e=0;e<n;++e)r.push(t);return r}var cs={stack:`dbcore`,name:`VirtualIndexMiddleware`,level:1,create:function(e){return V(V({},e),{},{table(t){let n=e.table(t),{schema:r}=n,i={},a=[];function o(e,t,n){let r=Bo(e),s=i[r]=i[r]||[],c=e==null?0:typeof e==`string`?1:e.length,l=t>0,u=V(V({},n),{},{isVirtual:l,keyTail:t,keyLength:c,extractKey:Lo(e),unique:!l&&n.unique});return s.push(u),u.isPrimaryKey||a.push(u),c>1&&o(c===2?e[0]:e.slice(0,c-1),t+1,n),s.sort(((e,t)=>e.keyTail-t.keyTail)),u}let s=o(r.primaryKey.keyPath,0,r.primaryKey);i[`:id`]=[s];for(let e of r.indexes)o(e.keyPath,0,e);function c(t){let n=t.query.index;return n.isVirtual?V(V({},t),{},{query:{index:n,range:(r=t.query.range,i=n.keyTail,{type:r.type===1?2:r.type,lower:ss(r.lower,r.lowerOpen?e.MAX_KEY:e.MIN_KEY,i),lowerOpen:!0,upper:ss(r.upper,r.upperOpen?e.MIN_KEY:e.MAX_KEY,i),upperOpen:!0})}}):t;var r,i}return V(V({},n),{},{schema:V(V({},r),{},{primaryKey:s,indexes:a,getIndexByKeyPath:function(e){let t=i[Bo(e)];return t&&t[0]}}),count:e=>n.count(c(e)),query:e=>n.query(c(e)),openCursor(t){let{keyTail:r,isVirtual:i,keyLength:a}=t.query.index;return i?n.openCursor(c(t)).then((n=>n&&function(n){return Object.create(n,{continue:{value:function(i){i==null?t.unique?n.continue(n.key.slice(0,a).concat(t.reverse?e.MIN_KEY:e.MAX_KEY,r)):n.continue():n.continue(ss(i,t.reverse?e.MAX_KEY:e.MIN_KEY,r))}},continuePrimaryKey:{value(t,i){n.continuePrimaryKey(ss(t,e.MAX_KEY,r),i)}},primaryKey:{get:()=>n.primaryKey},key:{get(){let e=n.key;return a===1?e[0]:e.slice(0,a)}},value:{get:()=>n.value}})}(n))):n.openCursor(t)}})}})}};function ls(e,t,n,r){return n=n||{},r=r||``,Ar(e).forEach((i=>{if(Fr(t,i)){var a=e[i],o=t[i];if(typeof a==`object`&&typeof o==`object`&&a&&o){let e=ai(a);e===ai(o)?e===`Object`?ls(a,o,n,r+i+`.`):a!==o&&(n[r+i]=t[i]):n[r+i]=t[i]}else a!==o&&(n[r+i]=t[i])}else n[r+i]=void 0})),Ar(t).forEach((i=>{Fr(e,i)||(n[r+i]=t[i])})),n}var us={stack:`dbcore`,name:`HooksMiddleware`,level:2,create:e=>V(V({},e),{},{table(t){let n=e.table(t),{primaryKey:r}=n.schema;return V(V({},n),{},{mutate(e){let i=W.trans,{deleting:a,creating:o,updating:s}=i.table(t).hook;switch(e.type){case`add`:if(o.fire===U)break;return i._promise(`readwrite`,(()=>c(e)),!0);case`put`:if(o.fire===U&&s.fire===U)break;return i._promise(`readwrite`,(()=>c(e)),!0);case`delete`:if(a.fire===U)break;return i._promise(`readwrite`,(()=>c(e)),!0);case`deleteRange`:if(a.fire===U)break;return i._promise(`readwrite`,(()=>function(e){return l(e.trans,e.range,1e4)}(e)),!0)}return n.mutate(e);function c(e){let t=W.trans,i=e.keys||function(e,t){return t.type===`delete`?t.keys:t.keys||t.values.map(e.extractKey)}(r,e);if(!i)throw Error(`Keys missing`);return(e=e.type===`add`||e.type===`put`?V(V({},e),{},{keys:i}):V({},e)).type!==`delete`&&(e.values=[...e.values]),e.keys&&(e.keys=[...e.keys]),function(e,t,n){return t.type===`add`?Promise.resolve([]):e.getMany({trans:t.trans,keys:n,cache:`immutable`})}(n,e,i).then((c=>{let l=i.map(((n,i)=>{let l=c[i],u={onerror:null,onsuccess:null};if(e.type===`delete`)a.fire.call(u,n,l,t);else if(e.type===`add`||l===void 0){let a=o.fire.call(u,n,e.values[i],t);n==null&&a!=null&&(n=a,e.keys[i]=n,r.outbound||Yr(e.values[i],r.keyPath,n))}else{let r=ls(l,e.values[i]),a=s.fire.call(u,r,n,l,t);if(a){let t=e.values[i];Object.keys(a).forEach((e=>{Fr(t,e)?t[e]=a[e]:Yr(t,e,a[e])}))}}return u}));return n.mutate(e).then((({failures:t,results:n,numFailures:r,lastResult:a})=>{for(let r=0;r<i.length;++r){let a=n?n[r]:i[r],o=l[r];a==null?o.onerror&&o.onerror(t[r]):o.onsuccess&&o.onsuccess(e.type===`put`&&c[r]?e.values[r]:a)}return{failures:t,results:n,numFailures:r,lastResult:a}})).catch((e=>(l.forEach((t=>t.onerror&&t.onerror(e))),Promise.reject(e))))}))}function l(e,t,i){return n.query({trans:e,values:!1,query:{index:r,range:t},limit:i}).then((({result:n})=>c({type:`delete`,keys:n,trans:e}).then((r=>r.numFailures>0?Promise.reject(r.failures[0]):n.length<i?{failures:[],numFailures:0,lastResult:void 0}:l(e,V(V({},t),{},{lower:n[n.length-1],lowerOpen:!0}),i)))))}}})}})};function ds(e,t,n){try{if(!t||t.keys.length<e.length)return null;let r=[];for(let i=0,a=0;i<t.keys.length&&a<e.length;++i)po(t.keys[i],e[a])===0&&(r.push(n?ni(t.values[i]):t.values[i]),++a);return r.length===e.length?r:null}catch(e){return null}}var fs={stack:`dbcore`,level:-1,create:e=>({table:t=>{let n=e.table(t);return V(V({},n),{},{getMany:e=>{if(!e.cache)return n.getMany(e);let t=ds(e.keys,e.trans._cache,e.cache===`clone`);return t?G.resolve(t):n.getMany(e).then((t=>(e.trans._cache={keys:e.keys,values:e.cache===`clone`?ni(t):t},t)))},mutate:e=>(e.type!==`add`&&(e.trans._cache=null),n.mutate(e))})}})};function ps(e){return!(`from`in e)}var ms=function(e,t){if(!this){let t=new ms;return e&&`d`in e&&Mr(t,e),t}Mr(this,arguments.length?{d:1,from:e,to:arguments.length>1?t:e}:{d:0})};function hs(e,t,n){let r=po(t,n);if(isNaN(r))return;if(r>0)throw RangeError();if(ps(e))return Mr(e,{from:t,to:n,d:1});let i=e.l,a=e.r;if(po(n,e.from)<0)return i?hs(i,t,n):e.l={from:t,to:n,d:1,l:null,r:null},ys(e);if(po(t,e.to)>0)return a?hs(a,t,n):e.r={from:t,to:n,d:1,l:null,r:null},ys(e);po(t,e.from)<0&&(e.from=t,e.l=null,e.d=a?a.d+1:1),po(n,e.to)>0&&(e.to=n,e.r=null,e.d=e.l?e.l.d+1:1);let o=!e.r;i&&!e.l&&gs(e,i),a&&o&&gs(e,a)}function gs(e,t){ps(t)||function e(t,{from:n,to:r,l:i,r:a}){hs(t,n,r),i&&e(t,i),a&&e(t,a)}(e,t)}function _s(e,t){let n=vs(t),r=n.next();if(r.done)return!1;let i=r.value,a=vs(e),o=a.next(i.from),s=o.value;for(;!r.done&&!o.done;){if(po(s.from,i.to)<=0&&po(s.to,i.from)>=0)return!0;po(i.from,s.from)<0?i=(r=n.next(s.from)).value:s=(o=a.next(i.from)).value}return!1}function vs(e){let t=ps(e)?null:{s:0,n:e};return{next(e){let n=arguments.length>0;for(;t;)switch(t.s){case 0:if(t.s=1,n)for(;t.n.l&&po(e,t.n.from)<0;)t={up:t,n:t.n.l,s:1};else for(;t.n.l;)t={up:t,n:t.n.l,s:1};case 1:if(t.s=2,!n||po(e,t.n.to)<=0)return{value:t.n,done:!1};case 2:if(t.n.r){t.s=3,t={up:t,n:t.n.r,s:0};continue}case 3:t=t.up}return{done:!0}}}}function ys(e){var t,n;let r=(((t=e.r)==null?void 0:t.d)||0)-(((n=e.l)==null?void 0:n.d)||0),i=r>1?`r`:r<-1?`l`:``;if(i){let t=i===`r`?`l`:`r`,n=V({},e),r=e[i];e.from=r.from,e.to=r.to,e[i]=r[i],n[i]=r[t],e[t]=n,n.d=bs(n)}e.d=bs(e)}function bs({r:e,l:t}){return(e?t?Math.max(e.d,t.d):e.d:t?t.d:0)+1}Ir(ms.prototype,{add(e){return gs(this,e),this},addKey(e){return hs(this,e,e),this},addKeys(e){return e.forEach((e=>hs(this,e,e))),this},[oi](){return vs(this)}});var xs={stack:`dbcore`,level:0,create:e=>{let t=e.schema.name,n=new ms(e.MIN_KEY,e.MAX_KEY);return V(V({},e),{},{table:r=>{let i=e.table(r),{schema:a}=i,{primaryKey:o}=a,{extractKey:s,outbound:c}=o,l=V(V({},i),{},{mutate:e=>{let o=e.trans,s=o.mutatedParts||(o.mutatedParts={}),c=e=>{let n=`idb://${t}/${r}/${e}`;return s[n]||(s[n]=new ms)},l=c(``),u=c(`:dels`),{type:d}=e,[f,p]=e.type===`deleteRange`?[e.range]:e.type===`delete`?[e.keys]:e.values.length<50?[[],e.values]:[],m=e.trans._cache;return i.mutate(e).then((e=>{if(jr(f)){d!==`delete`&&(f=e.results),l.addKeys(f);let t=ds(f,m);t||d===`add`||u.addKeys(f),(t||p)&&function(e,t,n,r){function i(t){let i=e(t.name||``);function a(e){return e==null?null:t.extractKey(e)}let o=e=>t.multiEntry&&jr(e)?e.forEach((e=>i.addKey(e))):i.addKey(e);(n||r).forEach(((e,t)=>{let i=n&&a(n[t]),s=r&&a(r[t]);po(i,s)!==0&&(i!=null&&o(i),s!=null&&o(s))}))}t.indexes.forEach(i)}(c,a,t,p)}else if(f){let e={from:f.lower,to:f.upper};u.add(e),l.add(e)}else l.add(n),u.add(n),a.indexes.forEach((e=>c(e.name).add(n)));return e}))}}),u=({query:{index:t,range:n}})=>{var r,i;return[t,new ms((r=n.lower)==null?e.MIN_KEY:r,(i=n.upper)==null?e.MAX_KEY:i)]},d={get:e=>[o,new ms(e.key)],getMany:e=>[o,new ms().addKeys(e.keys)],count:u,query:u,openCursor:u};return Ar(d).forEach((e=>{l[e]=function(a){let{subscr:o}=W;if(o){let l=e=>{let n=`idb://${t}/${r}/${e}`;return o[n]||(o[n]=new ms)},u=l(``),f=l(`:dels`),[p,m]=d[e](a);if(l(p.name||``).add(m),!p.isPrimaryKey){if(e!==`count`){let t=e===`query`&&c&&a.values&&i.query(V(V({},a),{},{values:!1}));return i[e].apply(this,arguments).then((n=>{if(e===`query`){if(c&&a.values)return t.then((({result:e})=>(u.addKeys(e),n)));let e=a.values?n.result.map(s):n.result;a.values?u.addKeys(e):f.addKeys(e)}else if(e===`openCursor`){let e=n,t=a.values;return e&&Object.create(e,{key:{get:()=>(f.addKey(e.primaryKey),e.key)},primaryKey:{get(){let t=e.primaryKey;return f.addKey(t),t}},value:{get:()=>(t&&u.addKey(e.primaryKey),e.value)}})}return n}))}f.add(n)}}return i[e].apply(this,arguments)}})),l}})}},Ss=class e{constructor(t,n){this._middlewares={},this.verno=0;let r=e.dependencies;this._options=n=V({addons:e.addons,autoOpen:!0,indexedDB:r.indexedDB,IDBKeyRange:r.IDBKeyRange},n),this._deps={indexedDB:n.indexedDB,IDBKeyRange:n.IDBKeyRange};let{addons:i}=n;this._dbSchema={},this._versions=[],this._storeNames=[],this._allTables={},this.idbdb=null,this._novip=this;let a={dbOpenError:null,isBeingOpened:!1,onReadyBeingFired:null,openComplete:!1,dbReadyResolve:U,dbReadyPromise:null,cancelOpen:U,openCanceller:null,autoSchema:!0,PR1398_maxLoop:3};var o;a.dbReadyPromise=new G((e=>{a.dbReadyResolve=e})),a.openCanceller=new G(((e,t)=>{a.cancelOpen=t})),this._state=a,this.name=t,this.on=ro(this,`populate`,`blocked`,`versionchange`,`close`,{ready:[Fi,U]}),this.on.ready.subscribe=Wr(this.on.ready.subscribe,(t=>(n,r)=>{e.vip((()=>{let e=this._state;if(e.openComplete)e.dbOpenError||G.resolve().then(n),r&&t(n);else if(e.onReadyBeingFired)e.onReadyBeingFired.push(n),r&&t(n);else{t(n);let e=this;r||t((function t(){e.on.ready.unsubscribe(n),e.on.ready.unsubscribe(t)}))}}))})),this.Collection=(o=this,io(go.prototype,(function(e,t){this.db=o;let n=eo,r=null;if(t)try{n=t()}catch(e){r=e}let i=e._ctx,a=i.table,s=a.hook.reading.fire;this._ctx={table:a,index:i.index,isPrimKey:!i.index||a.schema.primKey.keyPath&&i.index===a.schema.primKey.name,range:n,keysOnly:!1,dir:`next`,unique:``,algorithm:null,filter:null,replayFilter:null,justLimit:!0,isMatch:null,offset:0,limit:1/0,error:r,or:i.or,valueMapper:s===Oi?null:s}}))),this.Table=function(e){return io(no.prototype,(function(t,n,r){this.db=e,this._tx=r,this.name=t,this.schema=n,this.hook=e._allTables[t]?e._allTables[t].hook:ro(null,{creating:[ji,U],reading:[ki,Oi],updating:[Ni,U],deleting:[Mi,U]})}))}(this),this.Transaction=function(e){return io(Mo.prototype,(function(t,n,r,i,a){this.db=e,this.mode=t,this.storeNames=n,this.schema=r,this.chromeTransactionDurability=i,this.idbtrans=null,this.on=ro(this,`complete`,`error`,`abort`),this.parent=a||null,this.active=!0,this._reculock=0,this._blockedFuncs=[],this._resolve=null,this._reject=null,this._waitingFor=null,this._waitingQueue=null,this._spinCount=0,this._completion=new G(((e,t)=>{this._resolve=e,this._reject=t})),this._completion.then((()=>{this.active=!1,this.on.complete.fire()}),(e=>{var t=this.active;return this.active=!1,this.on.error.fire(e),this.parent?this.parent._reject(e):t&&this.idbtrans&&this.idbtrans.abort(),Ra(e)}))}))}(this),this.Version=function(e){return io(Qo.prototype,(function(t){this.db=e,this._cfg={version:t,storesSource:null,dbschema:{},tables:{},contentUpgrade:null}}))}(this),this.WhereClause=function(e){return io(Eo.prototype,(function(t,n,r){this.db=e,this._ctx={table:t,index:n===`:id`?null:n,or:r};let i=e._deps.indexedDB;if(!i)throw new H.MissingAPI;this._cmp=this._ascending=i.cmp.bind(i),this._descending=(e,t)=>i.cmp(t,e),this._max=(e,t)=>i.cmp(e,t)>0?e:t,this._min=(e,t)=>i.cmp(e,t)<0?e:t,this._IDBKeyRange=e._deps.IDBKeyRange}))}(this),this.on(`versionchange`,(e=>{e.newVersion>0?console.warn(`Another connection wants to upgrade database '${this.name}'. Closing db now to resume the upgrade.`):console.warn(`Another connection wants to delete database '${this.name}'. Closing db now to resume the delete request.`),this.close()})),this.on(`blocked`,(e=>{!e.newVersion||e.newVersion<e.oldVersion?console.warn(`Dexie.delete('${this.name}') was blocked`):console.warn(`Upgrade '${this.name}' blocked by other connection holding version ${e.oldVersion/10}`)})),this._maxKey=Io(n.IDBKeyRange),this._createTransaction=(e,t,n,r)=>new this.Transaction(e,t,n,this._options.chromeTransactionDurability,r),this._fireOnBlocked=e=>{this.on(`blocked`).fire(e),Ga.filter((e=>e.name===this.name&&e!==this&&!e._state.vcFired)).map((t=>t.on(`versionchange`).fire(e)))},this.use(cs),this.use(us),this.use(xs),this.use(fs),this.vip=Object.create(this,{_vip:{value:!0}}),i.forEach((e=>e(this)))}version(e){if(isNaN(e)||e<.1)throw new H.Type(`Given version is not a positive number`);if(e=Math.round(10*e)/10,this.idbdb||this._state.isBeingOpened)throw new H.Schema(`Cannot add version when database is open`);this.verno=Math.max(this.verno,e);let t=this._versions;var n=t.filter((t=>t._cfg.version===e))[0];return n||(n=new this.Version(e),t.push(n),t.sort(Go),n.stores({}),this._state.autoSchema=!1,n)}_whenReady(e){return this.idbdb&&(this._state.openComplete||W.letThrough||this._vip)?e():new G(((e,t)=>{if(this._state.openComplete)return t(new H.DatabaseClosed(this._state.dbOpenError));if(!this._state.isBeingOpened){if(!this._options.autoOpen)return void t(new H.DatabaseClosed);this.open().catch(U)}this._state.dbReadyPromise.then(e,t)})).then(e)}use({stack:e,create:t,level:n,name:r}){r&&this.unuse({stack:e,name:r});let i=this._middlewares[e]||(this._middlewares[e]=[]);return i.push({stack:e,create:t,level:n==null?10:n,name:r}),i.sort(((e,t)=>e.level-t.level)),this}unuse({stack:e,name:t,create:n}){return e&&this._middlewares[e]&&(this._middlewares[e]=this._middlewares[e].filter((e=>n?e.create!==n:!!t&&e.name!==t))),this}open(){return rs(this)}_close(){let e=this._state,t=Ga.indexOf(this);if(t>=0&&Ga.splice(t,1),this.idbdb){try{this.idbdb.close()}catch(e){}this._novip.idbdb=null}e.dbReadyPromise=new G((t=>{e.dbReadyResolve=t})),e.openCanceller=new G(((t,n)=>{e.cancelOpen=n}))}close(){this._close();let e=this._state;this._options.autoOpen=!1,e.dbOpenError=new H.DatabaseClosed,e.isBeingOpened&&e.cancelOpen(e.dbOpenError)}delete(){let e=arguments.length>0,t=this._state;return new G(((n,r)=>{let i=()=>{this.close();var e=this._deps.indexedDB.deleteDatabase(this.name);e.onsuccess=_a((()=>{(function({indexedDB:e,IDBKeyRange:t},n){!es(e)&&n!==Xa&&$o(e,t).delete(n).catch(U)})(this._deps,this.name),n()})),e.onerror=Do(r),e.onblocked=this._fireOnBlocked};if(e)throw new H.InvalidArgument(`Arguments not allowed in db.delete()`);t.isBeingOpened?t.dbReadyPromise.then(i):i()}))}backendDB(){return this.idbdb}isOpen(){return this.idbdb!==null}hasBeenClosed(){let e=this._state.dbOpenError;return e&&e.name===`DatabaseClosed`}hasFailed(){return this._state.dbOpenError!==null}dynamicallyOpened(){return this._state.autoSchema}get tables(){return Ar(this._allTables).map((e=>this._allTables[e]))}transaction(){let e=as.apply(this,arguments);return this._transaction.apply(this,e)}_transaction(e,t,n){let r=W.trans;r&&r.db===this&&e.indexOf(`!`)===-1||(r=null);let i=e.indexOf(`?`)!==-1,a,o;e=e.replace(`!`,``).replace(`?`,``);try{if(o=t.map((e=>{var t=e instanceof this.Table?e.name:e;if(typeof t!=`string`)throw TypeError(`Invalid table argument to Dexie.transaction(). Only Table or String are allowed`);return t})),e==`r`||e===Za)a=Za;else{if(e!=`rw`&&e!=Qa)throw new H.InvalidArgument(`Invalid transaction mode: `+e);a=Qa}if(r){if(r.mode===Za&&a===Qa){if(!i)throw new H.SubTransaction(`Cannot enter a sub-transaction with READWRITE mode when parent transaction is READONLY`);r=null}r&&o.forEach((e=>{if(r&&r.storeNames.indexOf(e)===-1){if(!i)throw new H.SubTransaction(`Table `+e+` not included in parent transaction.`);r=null}})),i&&r&&!r.active&&(r=null)}}catch(e){return r?r._promise(null,((t,n)=>{n(e)})):Ra(e)}let s=os.bind(null,this,a,o,r,n);return r?r._promise(a,s,`lock`):W.trans?Ma(W.transless,(()=>this._whenReady(s))):this._whenReady(s)}table(e){if(!Fr(this._allTables,e))throw new H.InvalidTable(`Table ${e} does not exist`);return this._allTables[e]}},Cs=typeof Symbol<`u`&&`observable`in Symbol?Symbol.observable:`@@observable`,ws=class{constructor(e){this._subscribe=e}subscribe(e,t,n){return this._subscribe(e&&typeof e!=`function`?e:{next:e,error:t,complete:n})}[Cs](){return this}};function Ts(e,t){return Ar(t).forEach((n=>{gs(e[n]||(e[n]=new ms),t[n])})),e}function Es(e){let t,n=!1,r=new ws((r=>{let i=ui(e),a=!1,o={},s={},c={get closed(){return a},unsubscribe:()=>{a=!0,jo.storagemutated.unsubscribe(f)}};r.start&&r.start(c);let l=!1,u=!1;function d(){return Ar(s).some((e=>o[e]&&_s(o[e],s[e])))}let f=e=>{Ts(o,e),d()&&p()},p=()=>{if(l||a)return;o={};let m={},h=function(t){i&&Ta();let n=()=>wa(e,{subscr:t,trans:null}),r=W.trans?Ma(W.transless,n):n();return i&&r.then(Ea,Ea),r}(m);u||(jo(ko,f),u=!0),l=!0,Promise.resolve(h).then((e=>{n=!0,t=e,l=!1,a||(d()?p():(o={},s=m,r.next&&r.next(e)))}),(e=>{l=!1,n=!1,r.error&&r.error(e),c.unsubscribe()}))};return p(),c}));return r.hasValue=()=>n,r.getValue=()=>t,r}var Ds;try{Ds={indexedDB:kr.indexedDB||kr.mozIndexedDB||kr.webkitIndexedDB||kr.msIndexedDB,IDBKeyRange:kr.IDBKeyRange||kr.webkitIDBKeyRange}}catch(e){Ds={indexedDB:null,IDBKeyRange:null}}var Os=Ss;function ks(e){let t=As;try{As=!0,jo.storagemutated.fire(e)}finally{As=t}}Ir(Os,V(V({},Di),{},{delete:e=>new Os(e,{addons:[]}).delete(),exists:e=>new Os(e,{addons:[]}).open().then((e=>(e.close(),!0))).catch(`NoSuchDatabaseError`,(()=>!1)),getDatabaseNames(e){try{return function({indexedDB:e,IDBKeyRange:t}){return es(e)?Promise.resolve(e.databases()).then((e=>e.map((e=>e.name)).filter((e=>e!==Xa)))):$o(e,t).toCollection().primaryKeys()}(Os.dependencies).then(e)}catch(e){return Ra(new H.MissingAPI)}},defineClass:()=>function(e){Mr(this,e)},ignoreTransaction:e=>W.trans?Ma(W.transless,e):e(),vip:ts,async:function(e){return function(){try{var t=is(e.apply(this,arguments));return t&&typeof t.then==`function`?t:G.resolve(t)}catch(e){return Ra(e)}}},spawn:function(e,t,n){try{var r=is(e.apply(n,t||[]));return r&&typeof r.then==`function`?r:G.resolve(r)}catch(e){return Ra(e)}},currentTransaction:{get:()=>W.trans||null},waitFor:function(e,t){let n=G.resolve(typeof e==`function`?Os.ignoreTransaction(e):e).timeout(t||6e4);return W.trans?W.trans.waitFor(n):n},Promise:G,debug:{get:()=>di,set:e=>{fi(e,e===`dexie`?()=>!0:Ya)}},derive:zr,extend:Mr,props:Ir,override:Wr,Events:ro,on:jo,liveQuery:Es,extendObservabilitySet:Ts,getByKeyPath:Jr,setByKeyPath:Yr,delByKeyPath:function(e,t){typeof t==`string`?Yr(e,t,void 0):`length`in t&&[].map.call(t,(function(t){Yr(e,t,void 0)}))},shallowClone:Xr,deepClone:ni,getObjectDiff:ls,cmp:po,asap:Kr,minKey:Ha,addons:[],connections:Ga,errnames:wi,dependencies:Ds,semVer:Ba,version:Ba.split(`.`).map((e=>parseInt(e))).reduce(((e,t,n)=>e+t/10**(2*n)))})),Os.maxKey=Io(Os.dependencies.IDBKeyRange),typeof dispatchEvent<`u`&&typeof addEventListener<`u`&&(jo(ko,(e=>{if(!As){let t;Ka?(t=document.createEvent(`CustomEvent`),t.initCustomEvent(Ao,!0,!0,e)):t=new CustomEvent(Ao,{detail:e}),As=!0,dispatchEvent(t),As=!1}})),addEventListener(Ao,(({detail:e})=>{As||ks(e)})));var As=!1;if(typeof BroadcastChannel<`u`){let e=new BroadcastChannel(Ao);typeof e.unref==`function`&&e.unref(),jo(ko,(t=>{As||e.postMessage(t)})),e.onmessage=e=>{e.data&&ks(e.data)}}else if(typeof self<`u`&&typeof navigator<`u`){jo(ko,(e=>{try{As||(typeof localStorage<`u`&&localStorage.setItem(Ao,JSON.stringify({trig:Math.random(),changedParts:e})),typeof self.clients==`object`&&[...self.clients.matchAll({includeUncontrolled:!0})].forEach((t=>t.postMessage({type:Ao,changedParts:e}))))}catch(e){}})),typeof addEventListener<`u`&&addEventListener(`storage`,(e=>{if(e.key===Ao){let t=JSON.parse(e.newValue);t&&ks(t.changedParts)}}));let e=self.document&&navigator.serviceWorker;e&&e.addEventListener(`message`,(function({data:e}){e&&e.type===Ao&&ks(e.changedParts)}))}G.rejectionMapper=function(e,t){if(!e||e instanceof bi||e instanceof TypeError||e instanceof SyntaxError||!e.name||!Ei[e.name])return e;var n=new Ei[e.name](t||e.message,e);return`stack`in e&&Rr(n,`stack`,{get:function(){return this.inner.stack}}),n},fi(di,Ya);var K=new class extends Ss{constructor(){super(`utopya`),this.version(1).stores({providers:`++id`,categories:`id, [providerId+kind]`,channels:`id, providerId, [providerId+number], [categoryId+number]`,movies:`id, providerId, [categoryId+added]`,series:`id, providerId, [categoryId+added]`,episodes:`id, seriesId, providerId`}),this.version(2).stores({favorites:`id, [providerId+kind]`,recents:`id, [providerId+kind]`}),this.version(3).stores({programs:`id, providerId, [key+start]`,epgLinks:`id, providerId`}),this.version(4).stores({reminders:`id, start`}),this.version(5).stores({progress:`id, providerId, seriesId, updated`}),this.version(6).stores({movies:`id, providerId, [categoryId+added], [providerId+vkey]`,series:`id, providerId, [categoryId+added], [providerId+vkey]`}),this.version(7).stores({movies:`id, providerId, [categoryId+added], [providerId+vkey], [providerId+added]`,series:`id, providerId, [categoryId+added], [providerId+vkey], [providerId+added]`}),this.version(8).stores({catState:`id, providerId`,chanState:`id, providerId`,groups:`++id, providerId`,groupItems:`[groupId+channelId], groupId, channelId`}),this.version(9).stores({epgChannels:`id, providerId`}),this.version(10).stores({movies:`id, providerId, [categoryId+added], [providerId+vkey], [providerId+added], [providerId+rating]`,series:`id, providerId, [categoryId+added], [providerId+vkey], [providerId+added], [providerId+rating]`})}};function js(...e){let t=e.join(`|`),n=2166136261,r=84696351;for(let e=0;e<t.length;e++){let i=t.charCodeAt(e);n=Math.imul(n^i,16777619),r=Math.imul(r^i,1540483477)}return(r>>>0)%2097152*4294967296+(n>>>0)||1}var Ms={_doc:`İçerik sınıflandırma. adultWords: kategori adı küçük harfe çevrilip (katlanmadan) alt dize araması. M3U girdisi: adres yolunda /series/ → dizi, /movie/ veya /movies/ → film; uzantı vodExtensions'taysa bölüm kalıbı varsa dizi yoksa film; uzantısız/uzun uzantılı adreslerde grup adı (küçük harf) seriesWords içeriyor ve bölüm kalıbı varsa dizi, movieWords'ten biriyle başlıyor ya da 'vod' içeriyorsa film; aksi halde canlı. notMatchWords: spor programı başlığında geçerse maç sayılmaz (büyük/küçük harf duyarsız).`,adultWords:[`xxx`,`adult`,`+18`,`18+`,`yetişkin`,`yetiskin`,`porn`,`erotic`,`erotik`],vodExtensions:[`mp4`,`mkv`,`avi`,`mov`,`wmv`,`flv`,`m4v`,`webm`,`mpg`,`mpeg`,`divx`],seriesWords:[`series`,`dizi`,`season`,`sezon`,`tv shows`,`shows`],movieWords:[`movie`,`film`,`vod`,`sinema`,`cinema`,`box office`],notMatchWords:[`özet`,`ozet`,`highlights`,`tekrar`,`replay`,`stüdyo`,`studio`,`analiz`,`magazin`,`klip`]},Ns={_doc:`Ad işleme. foldName: küçük harf + fold eşlemesi (platform/tür tanıma, arama). normalizeName: küçük harf + normalizeFold, [..] ve (..) silinir, qualityTags harf olmayan sınırlarda silinir, baştaki 2-3 harfli ülke öneki ('tr:', 'uk |') silinir, yalnızca harf/rakam kalır (EPG ve sürüm eşleşmesi). Yapısal regex'ler (ülke öneki, yıl, etiket) her platformun kodunda; davranış fixtures/cases/names.json ile sınanır. U+0307 (birleşik nokta) silinir: 'İ'.lowercase() = 'i̇' olduğundan aksi halde 'DİZİ' 'dizi' ile eşleşmez.`,fold:{"̇":``,ı:`i`,ş:`s`,ğ:`g`,ü:`u`,ö:`o`,ç:`c`,ß:`b`,ə:`e`},normalizeFold:{"̇":``,ı:`i`,ş:`s`,ğ:`g`,ü:`u`,ö:`o`,ç:`c`},qualityTags:[`uhd`,`fhd`,`hd`,`sd`,`4k`,`8k`,`hevc`,`h265`,`1080p`,`720p`,`backup`,`yedek`],removeWordsTrim:` |-:/●`},Ps=(()=>{try{return RegExp(`\\p{L}`,`u`).test(`ş`)}catch(e){return!1}})(),Fs=Ps?`\\p{L}`:`A-Za-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u024F\\u0370-\\u03FF\\u0400-\\u04FF\\u0590-\\u06FF\\u3040-\\u30FF\\u4E00-\\u9FFF\\uAC00-\\uD7AF`,Is=(e,t=``)=>new RegExp(e.replace(/LETTER/g,Fs),Ps?t+`u`:t),Ls=e=>{let t=RegExp(`[${Object.keys(e).join(``)}]`,`g`);return n=>n.replace(t,t=>e[t])},Rs=Ls(Ns.fold),zs=Ls(Ns.normalizeFold),Bs=e=>Rs(e.toLowerCase()),Vs=/\[[^\]]*\]|\([^)]*\)/g,Hs=RegExp(`(^|[^a-z])(${Ns.qualityTags.join(`|`)})(?![a-z])`,`g`),Us=/^[a-z]{2,3}\s*[:|]\s*/,Ws=Is(`[^LETTER0-9]`,`g`);function Gs(e){return zs(e.toLowerCase()).replace(Vs,` `).replace(Hs,`$1 `).replace(Us,` `).replace(Ws,``)}var Ks=/^\s*(?:\[([A-Za-z]{2,3})\]\s*[|:\-●•]*|([A-Za-z]{2,3})\s*[|:\-●•]+)\s*/;function qs(e){let t=Ks.exec(e);return t?(t[1]||t[2]).toUpperCase():null}var Js=/\[([^\]]*)]|\(([^)]*)\)/g,Ys=/^(?:19|20)\d{2}$/;function Xs(e){let t=[];return e.replace(Js,(e,n,r)=>{let i=(n||r||``).trim();return i&&!Ys.test(i)&&t.push(i),``}),t.length?t.join(` · `):null}var Zs=e=>e.replace(Js,` `).trim();function Qs(e){let t=[];for(let n of e.split(` / `)){let e=Zs(n);e&&t.indexOf(e)<0&&t.push(e)}return t.length?t:[e]}var $s=e=>e.replace(/[.*+?^${}()|[\]\\]/g,`\\$&`),ec=(e,t)=>{let n=0,r=e.length;for(;n<r&&t.indexOf(e[n])>=0;)n++;for(;r>n&&t.indexOf(e[r-1])>=0;)r--;return e.slice(n,r)};function tc(e,t){if(!t.length)return e;let n=e;for(let e of t)n=n.replace(new RegExp($s(e),`gi`),` `);return n=ec(n.replace(/\s{2,}/g,` `),Ns.removeWordsTrim),n.trim()?n:e}var nc=Is(`[LETTER]{2,}.*\\s(?:-|–|vs\\.?|v)\\s.*[LETTER]{2,}`,`i`);function rc(e){let t=e.toLowerCase();return nc.test(e)&&!Ms.notMatchWords.some(e=>t.indexOf(e)>=0)}var ic={_doc:`Kategori adından platform tanıma. Ad foldName ile katlanır, separators boşluğa çevrilir, başa/sona boşluk eklenir; keywords'ten biri geçiyor ve excludes'tan hiçbiri geçmiyorsa eşleşir. Listede İLK eşleşen kazanır (sıra önemli). logo: Wikimedia Commons dosya adı (https://commons.wikimedia.org/wiki/Special:FilePath/<ad>?width=320) ya da https ile başlıyorsa doğrudan adres; null ise ad yazı logosu olarak çizilir. tintWhite=false: kendi arka planlı logo, beyaza boyanmaz.`,separators:`|:-_/[]()●•`,platforms:[{key:`netflix`,name:`Netflix`,color:`#E50914`,keywords:[`netflix`],logo:`Netflix_2015_logo.svg`},{key:`hbo`,name:`HBO Max`,color:`#5822B4`,keywords:[`hbo`,` max `,`max original`],excludes:[`max prime`],logo:`Max_logo.svg`},{key:`disney`,name:`Disney+`,color:`#113CCF`,keywords:[`disney`],logo:`Disney%2B_logo.svg`},{key:`prime`,name:`Prime Video`,color:`#00A8E1`,keywords:[`prime`,`amazon`],excludes:[`max prime`],logo:`Amazon_Prime_Video_logo.svg`},{key:`apple`,name:`Apple TV+`,color:`#333333`,keywords:[`apple`],logo:`Apple_TV_Plus_Logo.svg`},{key:`blutv`,name:`BluTV`,color:`#0F6FFF`,keywords:[`blutv`,`blu tv`],logo:`BluTV_logo.svg`,tintWhite:!1},{key:`exxen`,name:`Exxen`,color:`#FFB800`,keywords:[`exxen`],logo:`Exxen.png`,tintWhite:!1},{key:`gain`,name:`Gain`,color:`#7B2CF5`,keywords:[`gain`],logo:`GA%C4%B0N_LOGO.jpg`,tintWhite:!1},{key:`tabii`,name:`tabii`,color:`#00B67A`,keywords:[`tabii`],logo:`Tabii_logo.svg`},{key:`tvplus`,name:`TV+`,color:`#8A7300`,keywords:[`tv+`,`tvplus`,`tv plus`,`turkcell tv`],logo:`https://tvplus.com.tr/images/pwa/icon-192x192.png`,tintWhite:!1},{key:`tod`,name:`TOD`,color:`#6D1ED4`,keywords:[`tod `,`bein connect`,`tod|`,`tod -`]},{key:`puhu`,name:`puhutv`,color:`#FF3D00`,keywords:[`puhu`],logo:`Puhutv.png`,tintWhite:!1},{key:`mubi`,name:`MUBI`,color:`#001489`,keywords:[`mubi`],logo:`Mubi_logo.svg`},{key:`paramount`,name:`Paramount+`,color:`#0064FF`,keywords:[`paramount`],logo:`Paramount_Plus.svg`},{key:`hulu`,name:`Hulu`,color:`#1CE783`,keywords:[`hulu`],logo:`Hulu_Logo.svg`},{key:`bein`,name:`beIN SPORTS`,color:`#5B2C83`,keywords:[`bein`]},{key:`ssport`,name:`S Sport`,color:`#0057B8`,keywords:[`s sport`,`ssport`]},{key:`tivibu`,name:`Tivibu`,color:`#00A0E3`,keywords:[`tivibu`]},{key:`dazn`,name:`DAZN`,color:`#1A1A1A`,keywords:[`dazn`]},{key:`sky`,name:`Sky`,color:`#0072C9`,keywords:[` sky `]},{key:`peacock`,name:`Peacock`,color:`#222222`,keywords:[`peacock`]}]},ac={_doc:`Kategori adından tür. Ad foldName ile katlanır, başa/sona boşluk eklenir (ayırıcılar çevrilmez); alt dize araması, İLK eşleşen kazanır. Hiçbiri eşleşmezse OTHER. Gruplamada sıra bu listenin sırasıdır, OTHER en sonda.`,genres:[{key:`ADULT`,keywords:[`adult`,`xxx`,`+18`,`18+`]},{key:`KIDS`,keywords:[`cocuk`,`kids`,`kinder`,`cartoon`,`cizgi`]},{key:`SPORTS`,keywords:[`spor`,`sport`,`bein`,`futbol`,`football`,`nba`,`ufc`,`f1 `,`motogp`,`epl`,`tennis`,`golf`,`dazn`,`event`]},{key:`NEWS`,keywords:[`haber`,`news`,`nachrichten`]},{key:`DOCS`,keywords:[`belgesel`,`docu`,`doku`,`documentary`,`nature`,`discovery`]},{key:`MUSIC`,keywords:[`muzik`,`music`,`musik`,`radyo`,`radio`]},{key:`MOVIES`,keywords:[`film`,`dizi`,`sinema`,`cinema`,`movie`,`kino`,`serien`,`series`,`boxset`,`yesilcam`,`actor`,`anime`]},{key:`RELIGION`,keywords:[`dini`,`religio`]},{key:`LOCAL`,keywords:[`yerel`,`local`,`regional`]},{key:`NATIONAL`,keywords:[`ulusal`,`national`,`genel`,`general`]},{key:`UHD`,keywords:[`4k`,`uhd`]},{key:`OTHER`,keywords:[]}]},oc=ic.platforms,sc=ac.genres.map(e=>e.key),cc=RegExp(`[${ic.separators.replace(/[\]\\\-^]/g,`\\$&`)}]`,`g`);function lc(e){let t=` `+Bs(e).replace(cc,` `)+` `;for(let e of oc)if(e.keywords.some(e=>t.indexOf(e)>=0)&&!(e.excludes||[]).some(e=>t.indexOf(e)>=0))return e;return null}function uc(e){return e.logo?e.logo.startsWith(`https://`)?e.logo:`https://commons.wikimedia.org/wiki/Special:FilePath/${e.logo}?width=320`:null}function dc(e){let t=` `+Bs(e)+` `,n=ac.genres.find(e=>e.keywords.some(e=>t.indexOf(e)>=0));return n?n.key:`OTHER`}function fc(e,t){return e.map((e,t)=>[e,t]).sort((e,n)=>t(e[0],n[0])||e[1]-n[1]).map(e=>e[0])}function pc(e,t){let n=new Map;for(let r of e){let e=t(r);if(e===null)continue;let i=n.get(e);i?i.push(r):n.set(e,[r])}return n}function mc(e,t,n){let r=e.filter(e=>!e.hidden&&!e.locked),i=e=>e.map(e=>e.id),a=[];return t===`COUNTRY`?(pc(r,e=>(e.country===void 0?qs(e.name):e.country)||n).forEach((e,t)=>a.push({key:`country:${t}`,categoryIds:i(e),country:t})),fc(a,(e,t)=>Number(t.country===n)-Number(e.country===n)||t.categoryIds.length-e.categoryIds.length)):t===`GENRE`?(pc(r,e=>dc(e.name)).forEach((e,t)=>a.push({key:`genre:${t}`,categoryIds:i(e),genre:t})),fc(a,(e,t)=>sc.indexOf(e.genre)-sc.indexOf(t.genre))):t===`PLATFORM`?(pc(r,e=>{var t,n;return(t=(n=lc(e.name))==null?void 0:n.key)==null?null:t}).forEach((e,t)=>{let n=oc.find(e=>e.key===t);a.push({key:`platform:${t}`,categoryIds:i(e),platform:n})}),fc(a,(e,t)=>oc.indexOf(e.platform)-oc.indexOf(t.platform))):a}var hc=e=>/^\s*()?#EXT(M3U|INF)/.test(e),gc=e=>e.split(/\s+/).filter(Boolean);async function _c(e){let t=gc(e);if(!t.length)throw new br(`NOT_FOUND`);for(let e of t){let t=``;if(await Dr(await Er(e),e=>(t+=e,t.trim().length<16)),!hc(t))throw new br(`PARSE`,`not m3u`)}}function vc(e){let t=e.trim().replace(/\/+$/,``);return/^https?:\/\//i.test(t)||(t=`http://${t}`),t.split(`/player_api.php`)[0].split(`/get.php`)[0].replace(/\/+$/,``)}var yc=(e,t,n={})=>{let r=[`username=${encodeURIComponent(e.username)}`,`password=${encodeURIComponent(e.password)}`];t&&r.push(`action=${t}`);for(let e in n)r.push(`${e}=${encodeURIComponent(n[e])}`);return`${vc(e.url)}/player_api.php?${r.join(`&`)}`},bc=(e,t,n)=>`${vc(e.url)}/movie/${e.username}/${e.password}/${t}.${n}`,xc=(e,t,n)=>`${vc(e.url)}/series/${e.username}/${e.password}/${t}.${n}`,Sc=(e,t)=>{let n=e[t];return n==null||n===``||typeof n==`object`?null:String(n)},Cc=(e,t)=>{let n=parseFloat(Sc(e,t)||``);return isNaN(n)?null:n};async function wc(e){let t=``;await Dr(await Er(e),e=>{t+=e});try{let e=JSON.parse(t);return e&&typeof e==`object`&&!Array.isArray(e)?e:{}}catch(e){throw new br(`PARSE`,`json`)}}async function Tc(e){let t=await wc(yc(e)),n=t.user_info;if(!n||typeof n!=`object`||Cc(n,`auth`)===0)throw new br(`AUTH`);let r=(Sc(n,`status`)||``).toLowerCase();if(r===`expired`)throw new br(`EXPIRED`);if(r&&r!==`active`)throw new br(`AUTH`,r);return t}var Ec=new URL(`worker-VohmfNTb.js`,document.currentScript&&document.currentScript.tagName.toUpperCase()===`SCRIPT`&&document.currentScript.src||document.baseURI).href,Dc=e=>/\.m3u8?$/i.test(e);function Oc(e){return new Promise(t=>e.listFiles(t,()=>t([])))}function kc(e){return new Promise((t,n)=>tizen.filesystem.resolve(e,t,n,`r`))}async function Ac(){let e=await new Promise(e=>tizen.filesystem.listStorages(e,()=>e([]))),t=[],n=async(e,r)=>{for(let i of await Oc(e))i.isDirectory?r<2&&!i.name.startsWith(`.`)&&await n(i,r+1):Dc(i.name)&&t.push({name:i.name,path:i.toURI()})};for(let t of e)if(t.type===`EXTERNAL`&&t.state===`MOUNTED`)try{await n(await kc(t.label),0)}catch(e){}return t}async function jc(e){let t=await kc(e);return new Promise((e,n)=>t.readAsText(e,n,`UTF-8`))}var Mc=[`HERO`,`CONTINUE`,`UP_NEXT`,`NEW_EPISODES`,`FAVORITE_CHANNELS`,`STARTING_SOON`,`RECENT_CHANNELS`,`TONIGHT_SPORTS`,`SCHEDULE`,`PLATFORMS`,`FOR_YOU`,`NEW_MOVIES`,`NEW_SERIES`,`TOP_RATED`,`GENRES`],Nc={groupMode:`CATEGORY`,numbering:`GLOBAL`,previewAutoplay:!0,fallbackToPrevious:!0,aspect:`fit`,colorKeys:[`FAVORITE`,`AUDIO`,`SUBTITLES`,`ASPECT`],lastChannelId:null,homeShelves:Mc,knownShelves:Mc,pinHash:null,hideLocked:!1,adultAutoLock:!0,searchHistory:[],startScreen:`home`,accent:`blue`,theme:`navy`,filterWords:[],epgHours:12,epgOffsetMin:0,autoNextEpisode:!0,preferredAudio:`tr`,preferredSubtitle:null,subtitleScale:1,subtitleColor:0,subtitleBackground:!1,autoSubtitles:!1,rememberTracks:!0,stremioAddons:[]},Pc=`utopya.settings`,Fc=[`HERO`,`CONTINUE`,`UP_NEXT`,`FAVORITE_CHANNELS`,`RECENT_CHANNELS`,`TONIGHT_SPORTS`,`SCHEDULE`,`PLATFORMS`,`NEW_MOVIES`,`NEW_SERIES`,`TOP_RATED`];function Ic(e,t){let n=e.slice();return Mc.forEach((e,r)=>{if(t.indexOf(e)>=0||n.indexOf(e)>=0)return;let i=0;for(let e=r-1;e>=0;e--){let t=n.indexOf(Mc[e]);if(t>=0){i=t+1;break}}n.splice(i,0,e)}),n}function Lc(){try{let e=JSON.parse(localStorage.getItem(Pc)||`{}`);return e.homeShelves&&(e.homeShelves=Ic(e.homeShelves,e.knownShelves||Fc)),V(V(V({},Nc),e),{},{knownShelves:Mc})}catch(e){return Nc}}var q=I(Lc()),Rc=()=>{q.value=Lc()};function zc(e){q.value=V(V({},q.value),e);try{localStorage.setItem(Pc,JSON.stringify(q.value))}catch(e){}}var Bc={blue:`#4FC3F7`,orange:`#FFA726`,green:`#66BB6A`,purple:`#B388FF`,red:`#FF5252`},Vc={navy:[`#070C18`,`#111C33`,`#1A2947`,`#0D1830`],amoled:[`#000000`,`#0E0E0E`,`#1C1C1C`,`#000000`],graphite:[`#0E0F12`,`#1A1C21`,`#262A31`,`#16181D`],forest:[`#06120D`,`#0F2219`,`#183327`,`#0B1E15`],wine:[`#14070C`,`#241018`,`#351823`,`#1E0B12`]},Hc=e=>{let t=parseInt(e.slice(1),16);return`${t>>16}, ${t>>8&255}, ${t&255}`};function Uc(){let e=document.documentElement.style,[t,n,r,i]=Vc[q.value.theme],a=Bc[q.value.accent];e.setProperty(`--bg`,t),e.setProperty(`--surface`,n),e.setProperty(`--surface-variant`,r),e.setProperty(`--bg-top`,i),e.setProperty(`--glass`,`rgba(${Hc(n)}, 0.72)`),e.setProperty(`--accent`,a),e.setProperty(`--accent-rgb`,Hc(a))}q.subscribe(Uc);var Wc=I(null),Gc=I(null),Kc=I(null),qc=`utopya.activeProvider`;async function Jc(){let e=await K.providers.toArray(),t=null;try{t=Number(localStorage.getItem(qc))||null}catch(e){}return e.some(e=>e.id===t)||(t=e.length?e[0].id:null),Wc.value=e,Gc.value=t,e}function Yc(e){Gc.value=e;try{localStorage.setItem(qc,String(e))}catch(e){}}async function Xc(e,t){if(e.type===`xtream`)await Tc(e);else if(t!==void 0){if(!/^\s*()?#EXT(M3U|INF)/.test(t.slice(0,64)))throw new br(`PARSE`,`not m3u`)}else await _c(e.url)}function Zc(){let e=(Wc.value||[]).find(e=>e.id===Gc.value);e&&e.lastSync&&Date.now()-(e.lastEpgSync||0)>q.peek().epgHours*36e5&&el(e.id,void 0,`epg`)}async function Qc(e){let t=await K.providers.add(e);return await Jc(),Yc(t),t}var $c=null;async function el(e,t,n=`all`){let r=(Wc.value||[]).find(t=>t.id===e);if(n===`all`&&t===void 0&&r&&r.type===`m3u`&&/^file:/i.test(r.url))try{t=await jc(r.url)}catch(t){Kc.value={providerId:e,failed:`NOT_FOUND`,detail:r.url};return}$c||($c=new Worker(Ec,{type:`classic`}),$c.onmessage=e=>{let t=e.data;(t.type!==`progress`||t.count===0)&&console.log(`senkron`,t.type,`stage`in t?t.stage:``,`error`in t?`${t.error} ${t.detail}`:``),t.type===`progress`?Kc.value={providerId:t.providerId,stage:t.stage,count:t.count}:t.type===`done`?(Kc.value={providerId:t.providerId,stage:`DONE`,count:t.counts.live},Jc()):Kc.value={providerId:t.providerId,failed:t.error,detail:t.detail}},$c.onerror=e=>{console.error(`worker hatası`,e.message,e.filename,e.lineno);let t=Kc.value;t&&(Kc.value={providerId:t.providerId,failed:`UNKNOWN`,detail:e.message})}),Kc.value={providerId:e,stage:`CONNECTING`,count:0},$c.postMessage({type:`sync`,providerId:e,fileText:t,mode:n,epgOffsetMin:q.peek().epgOffsetMin})}var tl={name:``,url:``,username:``,password:``,epg:``,userAgent:``,liveFormat:`ts`};function nl(e,t,n){return n?n.name.replace(/\.m3u8?$/i,``):t.replace(/^[a-z]+:\/\//i,``).split(/[/:\s]/)[0]||(e===`xtream`?`Xtream`:`M3U`)}function rl(e){let[t,n]=N({s:`choose`}),[r,i]=N(tl),[a,o]=N(null),[s,c]=N(null),[l,u]=N(!1),[d,f]=N(`xtream`),p=F(null);P(()=>{L(p.current)},[t.s,t.s===`form`?t.kind:``]);let m=e=>{f(e),c(null),u(!1),n({s:`form`,kind:e})};return tn(r=>{if(r===`back`)return t.s===`choose`?e.onExit():t.s===`usb`?n({s:`form`,kind:`file`}):t.s===`form`?n({s:`choose`}):t.s===`sync`&&e.onDone(),!0}),M(`div`,{class:`onboarding`,ref:p,children:[t.s===`choose`&&M(al,{open:m}),t.s===`form`&&M(ul,{kind:t.kind,form:r,edit:e=>i(V(V({},r),e)),file:a,pickFile:async()=>{Ft?n({s:`usb`}):il(e=>o(e))},error:s,missing:l,submit:async()=>{let e=d,t=e===`file`?(a==null?void 0:a.uri)||``:wr(r.url);if(!t||e===`xtream`&&(!r.username.trim()||!r.password)){u(!0);return}u(!1),c(null);let i={name:r.name.trim()||nl(e,t,a),type:e===`xtream`?`xtream`:`m3u`,url:e===`xtream`?vc(t):t,username:r.username.trim(),password:r.password,epgUrls:r.epg.split(/[\s,]+/).map(wr).filter(e=>/^https?:/i.test(e)),userAgent:r.userAgent.trim()||null,liveFormat:r.liveFormat,createdAt:Date.now()};n({s:`validating`});try{await Xc(i,a==null?void 0:a.text);let t=await Qc(i);el(t,e===`file`?a.text:void 0),n({s:`sync`,providerId:t})}catch(t){console.warn(`doğrulama`,t),c(Sr(t)),n({s:`form`,kind:e})}},back:()=>n({s:`choose`})}),t.s===`usb`&&M(dl,{onPick:async e=>{try{o({name:e.name,uri:e.path,text:await jc(e.path)}),c(null)}catch(e){c(`NOT_FOUND`)}n({s:`form`,kind:`file`})},back:()=>n({s:`form`,kind:`file`})}),t.s===`validating`&&M(`p`,{class:`center-msg`,children:R(`onb_validating`)}),t.s===`sync`&&M(fl,{providerId:t.providerId,onDone:e.onDone,back:()=>m(d)})]})}function il(e){let t=document.createElement(`input`);t.type=`file`,t.accept=`.m3u,.m3u8,audio/x-mpegurl`,t.onchange=()=>{let n=t.files&&t.files[0];if(!n)return;let r=new FileReader;r.onload=()=>e({name:n.name,uri:`file:${n.name}`,text:String(r.result)}),r.readAsText(n)},t.click()}function al({open:e}){return M(`div`,{class:`onb-choose`,children:[M(`div`,{class:`onb-brand`,children:[M(`div`,{class:`brand-mark`,children:M(z,{name:`play`})}),M(`h1`,{children:R(`app_name`)}),M(`p`,{class:`tagline muted`,children:R(`onb_tagline`)}),M(`ul`,{class:`features`,children:[M(ol,{icon:`live`,text:R(`onb_feat_live`)}),M(ol,{icon:`movie`,text:R(`onb_feat_vod`)}),M(ol,{icon:`grid`,text:R(`tz_feat_tools`)})]}),M(`p`,{class:`note muted`,children:R(`onb_no_content`)})]}),M(`div`,{class:`onb-options`,children:[M(`h2`,{children:R(`onb_how`)}),M(sl,{icon:`dns`,tint:`#4FC3F7`,title:R(`onb_xtream`),desc:R(`onb_xtream_desc`),badge:R(`onb_badge_common`),initial:!0,onClick:()=>e(`xtream`)}),M(sl,{icon:`link`,tint:`#66BB6A`,title:R(`onb_m3u_url`),desc:R(`onb_m3u_url_desc`),onClick:()=>e(`m3u`)}),M(sl,{icon:`file`,tint:`#90A4AE`,title:R(`onb_m3u_file`),desc:R(`tz_m3u_file_desc`),onClick:()=>e(`file`)})]})]})}function ol({icon:e,text:t}){return M(`li`,{children:[M(`span`,{class:`feature-icon`,children:M(z,{name:e})}),t]})}function sl(e){return M(`button`,{class:`option`,"data-focus":!0,"data-focus-default":e.initial||void 0,onClick:e.onClick,children:[M(`span`,{class:`option-icon`,style:{color:e.tint,background:cl(e.tint,.16)},children:M(z,{name:e.icon})}),M(`span`,{class:`option-text`,children:[M(`span`,{class:`option-title`,children:[e.title,e.badge&&M(`span`,{class:`badge`,style:{color:e.tint,background:cl(e.tint,.2)},children:e.badge})]}),M(`span`,{class:`muted`,children:e.desc})]}),M(z,{name:`chevron`,class:`muted`})]})}var cl=(e,t)=>{let n=parseInt(e.slice(1),16);return`rgba(${n>>16}, ${n>>8&255}, ${n&255}, ${t})`};function ll({title:e,hint:t,back:n}){return M(`div`,{class:`step-header`,children:[M(`button`,{class:`btn outline`,"data-focus":!0,onClick:n,children:[M(z,{name:`back`}),R(`back`)]}),M(`div`,{children:[M(`h1`,{children:e}),t&&M(`p`,{class:`muted`,children:t})]})]})}function ul(e){let{kind:t,form:n,edit:r}=e,[i,a]=t===`xtream`?[R(`onb_xtream`),R(`onb_hint_xtream`)]:t===`m3u`?[R(`onb_m3u_url`),R(`onb_hint_m3u`)]:[R(`onb_m3u_file`),R(`tz_hint_file`)];return M(`div`,{class:`form-step`,children:[M(ll,{title:i,hint:a,back:e.back}),M(`div`,{class:`form-row`,children:[M(`div`,{class:`form-panel glass`,"data-focus-group":`form-${t}`,children:[t===`m3u`&&M(wn,{label:R(`onb_url`),value:n.url,onInput:e=>r({url:e}),placeholder:`http://…/playlist.m3u`,initial:!0}),t===`file`&&M(`div`,{class:`field`,children:[e.file&&M(`p`,{class:`file-chosen`,children:R(`onb_file_chosen`,e.file.name)}),M(`button`,{class:`btn`,"data-focus":!0,"data-focus-default":!0,onClick:e.pickFile,children:[M(z,{name:`folder`}),R(`onb_pick_file`)]})]}),t===`xtream`&&M(x,{children:[M(wn,{label:R(`onb_server`),value:n.url,onInput:e=>r({url:e}),placeholder:`http://server:8080`,initial:!0}),M(`div`,{class:`field-pair`,children:[M(wn,{label:R(`onb_username`),value:n.username,onInput:e=>r({username:e})}),M(wn,{label:R(`onb_password`),value:n.password,onInput:e=>r({password:e}),password:!0})]})]}),M(`button`,{class:`btn primary connect`,"data-focus":!0,onClick:e.submit,children:R(`onb_connect`)}),M(`h3`,{class:`muted`,children:R(`onb_optional`)}),M(wn,{label:R(`onb_name`),value:n.name,onInput:e=>r({name:e}),placeholder:R(`onb_name_ph`)}),M(wn,{label:R(`onb_epg`),value:n.epg,onInput:e=>r({epg:e}),placeholder:`http://…/epg.xml.gz`}),t!==`file`&&M(wn,{label:R(`onb_user_agent`),value:n.userAgent,onInput:e=>r({userAgent:e})}),t===`xtream`&&M(`div`,{class:`field`,children:[M(`span`,{class:`field-label`,children:R(`onb_live_format`)}),M(`div`,{class:`row`,children:[`ts`,`m3u8`].map(e=>M(`button`,{class:`chip${n.liveFormat===e?` selected`:``}`,"data-focus":!0,onClick:()=>r({liveFormat:e}),children:e.toUpperCase()},e))})]})]}),M(`div`,{class:`form-side`,children:[e.missing&&M(`p`,{class:`error-box`,children:R(`onb_required`)}),e.error&&M(`p`,{class:`error-box`,children:R(xr(e.error))}),M(`div`,{class:`onb-help glass`,children:[M(`h3`,{children:R(`tz_onb_help_title`)}),M(`ul`,{children:[t!==`file`&&M(`li`,{children:R(`tz_onb_help_keyboard`)}),t===`xtream`&&M(`li`,{children:R(`tz_onb_help_server`)}),t===`xtream`&&M(`li`,{children:R(`tz_onb_help_creds`)}),t===`m3u`&&M(`li`,{children:R(`tz_onb_help_m3u`)}),t===`file`&&M(`li`,{children:R(`tz_onb_help_file`)}),M(`li`,{children:R(`tz_onb_help_epg`)}),M(`li`,{children:R(`tz_onb_help_privacy`)})]})]})]})]})]})}function dl({onPick:e,back:t}){let[n,r]=N(null),i=F(null);return P(()=>{Ac().then(r,()=>r([]))},[]),P(()=>{n&&L(i.current)},[n]),M(`div`,{class:`form-step`,children:[M(ll,{title:R(`tz_usb_title`),back:t}),M(`div`,{class:`usb-list glass`,ref:i,children:[n===null&&M(`p`,{class:`muted`,children:R(`loading`)}),n&&!n.length&&M(`p`,{class:`muted`,children:R(`tz_usb_empty`)}),n&&n.map(t=>M(`button`,{class:`option`,"data-focus":!0,onClick:()=>e(t),children:[M(`span`,{class:`option-icon`,children:M(z,{name:`file`})}),M(`span`,{class:`option-text`,children:[M(`span`,{class:`option-title`,children:t.name}),M(`span`,{class:`muted`,children:decodeURI(t.path.replace(/^file:\/\//,``))})]})]},t.path))]})]})}function fl({providerId:e,onDone:t,back:n}){let r=Kc.value,i=r&&r.providerId===e?r:null;P(()=>{i&&`stage`in i&&i.stage===`DONE`&&t()},[i]);let a=i&&`failed`in i?i:null,o=F(null);return P(()=>{L(o.current)},[!!a]),M(`div`,{class:`sync-step`,ref:o,children:[M(`h1`,{children:R(`sync_title`)}),a?M(x,{children:[M(`p`,{class:`error-text`,children:R(`sync_failed`)}),M(`p`,{children:R(xr(a.failed))}),M(`div`,{class:`row`,children:[M(`button`,{class:`btn primary`,"data-focus":!0,"data-focus-default":!0,onClick:()=>el(e),children:R(`retry`)}),M(`button`,{class:`btn outline`,"data-focus":!0,onClick:n,children:R(`back`)})]})]}):M(x,{children:[M(`p`,{class:`stage`,children:pl(i&&`stage`in i?i:null)}),M(`div`,{class:`indeterminate`,children:M(`span`,{})}),M(`button`,{class:`btn outline`,"data-focus":!0,"data-focus-default":!0,onClick:t,children:R(`sync_background`)})]})]})}function pl(e){switch(e&&e.stage){case`CATEGORIES`:return R(`sync_categories`);case`LIVE`:return R(`sync_live`,e.count);case`MOVIES`:return R(`sync_movies`,e.count);case`SERIES`:return R(`sync_series`,e.count);case`EPG`:return R(`sync_epg`,e.count);case`DONE`:return R(`sync_done`);default:return R(`sync_connecting`)}}function ml(e){let t=typeof e==`string`?e:``;try{let e=atob(t),n=new Uint8Array(e.length);for(let t=0;t<e.length;t++)n[t]=e.charCodeAt(t);let r=new TextDecoder(`utf-8`).decode(n);return/[\uFFFD\u0000-\u0008]/.test(r)?t:r}catch(e){return t}}function hl(e,t,n,r){let i=[];for(let a of e){let e=Number(a.start_timestamp),o=Number(a.stop_timestamp==null?a.end_timestamp:a.stop_timestamp);e&&o&&(o<=e&&(o+=86400),i.push({id:js(n,e*1e3),providerId:t,key:n,start:e*1e3,stop:o*1e3,title:ml(a.title),desc:ml(a.description)||null,category:null,stamp:r}))}return i.sort((e,t)=>e.start-t.start)}var gl=432e5;async function _l(e){let t=await K.epgLinks.get(e);return t?t.key:null}async function vl(e,t,n){let r=await _l(e);return r?(await K.programs.where(`[key+start]`).between([r,t-gl],[r,n],!0,!1).toArray()).filter(e=>e.stop>t):[]}async function yl(e,t,n){let r=await vl(e.id,t,n);return!r.some(e=>e.stop>Date.now())&&await wl(e)&&(r=await vl(e.id,t,n)),r}var bl=(e,t)=>{let n=null;for(let r of e)r.start<=t&&r.stop>t&&(n=r);let r=n?n.stop:t;return{now:n,next:e.find(e=>e.start>=r)||null}};async function xl(e,t=Date.now()){let n=await yl(e,t-1,t+432e5);return n.length?bl(n,t):bl(await El(e),t)}var Sl=e=>{let t=(Wc.value||[]).find(t=>t.id===e.providerId);return t&&t.type===`xtream`?t:null},Cl=new Map;async function wl(e){let t=Sl(e),n=Cl.get(e.id)||0;if(!t||Date.now()-n<18e5)return!1;Cl.set(e.id,Date.now());try{let n=await K.epgLinks.get(e.id);if(n&&n.manual)return!1;let r=await wc(yc(t,`get_simple_data_table`,{stream_id:e.remoteId})),i=`${t.id}|xt:${e.remoteId}`,a=hl(r.epg_listings||[],t.id,i,Date.now());return a.some(e=>e.stop>Date.now())?(await K.programs.bulkPut(a),await K.epgLinks.put({id:e.id,providerId:t.id,key:i,manual:!1}),!0):!1}catch(e){return console.warn(`get_simple_data_table`,e),!1}}var Tl=new Map;async function El(e){let t=Sl(e);if(!t)return[];let n=Tl.get(e.id);if(n&&Date.now()-n.at<6e5)return n.list;let r=[];try{r=hl((await wc(yc(t,`get_short_epg`,{stream_id:e.remoteId,limit:`4`}))).epg_listings||[],t.id,`${t.id}|xs:${e.remoteId}`,Date.now())}catch(e){}return Tl.delete(e.id),Tl.set(e.id,{at:Date.now(),list:r}),Tl.size>200&&Tl.delete(Tl.keys().next().value),r}var Dl=(e,t=Date.now())=>Math.max(0,Math.min(1,(t-e.start)/(e.stop-e.start))),Ol=e=>e<10?`0${e}`:`${e}`,kl=e=>{let t=new Date(e);return`${Ol(t.getHours())}:${Ol(t.getMinutes())}`},Al=e=>`${kl(e.start)} – ${kl(e.stop)}`,jl=I(Date.now());setInterval(()=>jl.value=Date.now(),3e5);var Ml=[1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298];function Nl(e){let t=new TextEncoder().encode(e),n=t.length,r=n+9+63>>6<<6,i=new Uint8Array(r);i.set(t),i[n]=128,new DataView(i.buffer).setUint32(r-4,n*8);let a=[1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225],o=Array(64),s=new DataView(i.buffer),c=(e,t)=>e>>>t|e<<32-t;for(let e=0;e<r;e+=64){for(let t=0;t<16;t++)o[t]=s.getUint32(e+t*4);for(let e=16;e<64;e++){let t=c(o[e-15],7)^c(o[e-15],18)^o[e-15]>>>3,n=c(o[e-2],17)^c(o[e-2],19)^o[e-2]>>>10;o[e]=o[e-16]+t+o[e-7]+n|0}let[t,n,r,i,l,u,d,f]=a;for(let e=0;e<64;e++){let a=f+(c(l,6)^c(l,11)^c(l,25))+(l&u^~l&d)+Ml[e]+o[e]|0,s=(c(t,2)^c(t,13)^c(t,22))+(t&n^t&r^n&r)|0;f=d,d=u,u=l,l=i+a|0,i=r,r=n,n=t,t=a+s|0}a[0]=a[0]+t|0,a[1]=a[1]+n|0,a[2]=a[2]+r|0,a[3]=a[3]+i|0,a[4]=a[4]+l|0,a[5]=a[5]+u|0,a[6]=a[6]+d|0,a[7]=a[7]+f|0}return a.map(e=>(`0000000`+(e>>>0).toString(16)).slice(-8)).join(``)}var Pl=new Set,Fl=I(0),Il=I(new Map),Ll=I(new Map);async function Rl(e){let[t,n]=await Promise.all([K.catState.where(`providerId`).equals(e).toArray(),K.chanState.where(`providerId`).equals(e).toArray()]);Il.value=new Map(t.map(e=>[e.id,e])),Ll.value=new Map(n.map(e=>[e.id,e])),Fl.value++}function zl(e){let t=Il.value.get(e.id);return t&&t.locked!==void 0?t.locked:e.adult&&q.value.adultAutoLock}function Bl(e,t){return!q.value.pinHash||t!==void 0&&Pl.has(t)||e&&Pl.has(e.id)?!1:t!==void 0&&!!(Ll.value.get(t)||{}).locked||!!e&&zl(e)}function Vl(e,t){e!==null&&Pl.add(e),t!==void 0&&Pl.add(t)}function Hl(e){let t=Il.value.get(e.id);return!(t&&t.hidden||q.value.hideLocked&&q.value.pinHash&&zl(e)&&!Pl.has(e.id))}var Ul=e=>!!(Ll.value.get(e)||{}).hidden;async function Wl(e,t,n,r){let i=K[e],a=await i.get(t)||{id:t,providerId:n};await i.put(V(V({},a),r)),await Rl(n)}var Gl=(e,t,n)=>Wl(`catState`,e,t,n),Kl=(e,t,n)=>Wl(`chanState`,e,t,n),ql=e=>Nl(`utopya:${e}`),Jl=()=>!!q.peek().pinHash,Yl=e=>!q.peek().pinHash||ql(e)===q.peek().pinHash;function Xl(e){Pl.clear(),zc({pinHash:e?ql(e):null}),Fl.value++}var Zl=e=>e.type===`cat`?`cat:${e.id}`:e.type===`ugroup`?`ug:${e.id}`:e.type===`group`?e.key:e.type,Ql=50;async function $l(e,t){let n=await eu(e,t),r=(await K.categories.where(`[providerId+kind]`).equals([e,`live`]).toArray()).filter(e=>!Hl(e)),i=new Set;if(t.type!==`cat`)for(let e of r)for(let t of await K.channels.where(`[categoryId+number]`).between([e.id,Ss.minKey],[e.id,Ss.maxKey]).primaryKeys())i.add(t);return n.filter(e=>!i.has(e)&&!Ul(e))}async function eu(e,t){if(t.type===`all`)return K.channels.where(`[providerId+number]`).between([e,Ss.minKey],[e,Ss.maxKey]).primaryKeys();if(t.type===`cat`)return K.channels.where(`[categoryId+number]`).between([t.id,Ss.minKey],[t.id,Ss.maxKey]).primaryKeys();if(t.type===`group`){let e=[];for(let n of t.ids)await K.channels.where(`[categoryId+number]`).between([n,Ss.minKey],[n,Ss.maxKey]).eachKey((t,n)=>{e.push([t[1],n.primaryKey])});return e.map((e,t)=>[e[0],t,e[1]]).sort((e,t)=>e[0]-t[0]||e[1]-t[1]).map(e=>e[2])}return t.type===`ugroup`?(await K.groupItems.where(`groupId`).equals(t.id).toArray()).sort((e,t)=>e.order-t.order).map(e=>e.channelId):t.type===`fav`?(await K.favorites.where(`[providerId+kind]`).equals([e,`live`]).toArray()).sort((e,t)=>e.order-t.order).map(e=>e.id):(await K.recents.where(`[providerId+kind]`).equals([e,`live`]).toArray()).sort((e,t)=>t.at-e.at).slice(0,Ql).map(e=>e.id)}var tu=class e{constructor(e){yr(this,`ids`,void 0),yr(this,`pages`,new Map),this.ids=e}page(t){let n=this.pages.get(t);return n||(n=K.channels.bulkGet(this.ids.slice(t*e.PAGE,(t+1)*e.PAGE)),this.pages.set(t,n),this.pages.size>8&&this.pages.delete(this.pages.keys().next().value)),n}async range(t,n){let r=e.PAGE,i=[];for(let e=Math.floor(t/r);e<=Math.floor((n-1)/r);e++)(await this.page(e)).forEach((a,o)=>{let s=e*r+o;s>=t&&s<n&&i.push(a)});return i}};yr(tu,`PAGE`,40);async function nu(e,t,n){return await K.favorites.get(n)?(await K.favorites.delete(n),!1):(await K.favorites.put({id:n,providerId:e,kind:t,order:Date.now()}),!0)}async function ru(e,t,n){await K.recents.put({id:n,providerId:e,kind:t,at:Date.now()})}var iu=e=>K.groups.where(`providerId`).equals(e).sortBy(`order`);async function au(e,t){return K.groups.add({providerId:e,name:t,order:Date.now()})}var ou=(e,t)=>K.groupItems.put({groupId:e,channelId:t,order:Date.now()}),su=(e,t)=>K.groupItems.delete([e,t]);async function cu(e){await K.groupItems.where(`groupId`).equals(e).delete(),await K.groups.delete(e)}async function lu(e,t,n,r){if(r<0||r>=t.length)return;let[i,a]=await Promise.all([K.groupItems.get([e,t[n]]),K.groupItems.get([e,t[r]])]);i&&a&&await K.groupItems.bulkPut([V(V({},i),{},{order:a.order}),V(V({},a),{},{order:i.order})])}var J=(e,t)=>{let n=e?e[t]:null;return n==null||n===``||typeof n==`object`?null:String(n)},uu=(e,t)=>{let n=parseFloat(J(e,t)||``);return isNaN(n)?null:n},du=(e,t)=>{let n=e?e[t]:null;return Array.isArray(n)?typeof n[0]==`string`&&n[0]?n[0]:null:J(e,t)};function fu(e){if(!e)return null;let t=/^(\d+):(\d{2})(?::(\d{2}))?$/.exec(e.trim());if(t)return t[1]*3600+t[2]*60+(t[3]?+t[3]:0);let n=/(\d+)\s*min/i.exec(e);return n?n[1]*60:null}var pu=e=>(Wc.value||[]).find(t=>t.id===e);async function mu(e){let t=pu(e.providerId);if(e.detailLoaded||!t||t.type!==`xtream`)return e;try{let n=await wc(yc(t,`get_vod_info`,{vod_id:e.remoteId})),r=n.info,i=n.movie_data,a=J(i,`container_extension`),o=uu(r,`rating`),s={poster:e.poster||J(r,`movie_image`)||J(r,`cover_big`),backdrop:du(r,`backdrop_path`)||e.backdrop||null,plot:J(r,`plot`)||J(r,`description`)||e.plot,cast:J(r,`cast`)||J(r,`actors`),director:J(r,`director`),genre:J(r,`genre`)||e.genre,year:(J(r,`releasedate`)||J(r,`release_date`)||``).slice(0,4)||e.year,rating:o&&o>0?o:e.rating,durationSec:uu(r,`duration_secs`)||fu(J(r,`duration`)),tmdbId:J(r,`tmdb_id`)||J(r,`tmdb`),url:a?bc(t,e.remoteId,a):e.url,detailLoaded:!0};return await K.movies.update(e.id,s),V(V({},e),s)}catch(t){return console.warn(`get_vod_info`,t),e}}async function hu(e){let t=pu(e.providerId),n=()=>K.episodes.where(`seriesId`).equals(e.id).toArray();if(e.detailLoaded||!t||t.type!==`xtream`)return{series:e,episodes:gu(await n())};try{let n=await wc(yc(t,`get_series_info`,{series_id:e.remoteId})),r=n.info,i=uu(r,`rating`),a={poster:e.poster||J(r,`cover`),backdrop:du(r,`backdrop_path`)||e.backdrop,plot:J(r,`plot`)||e.plot,cast:J(r,`cast`)||e.cast,genre:J(r,`genre`)||e.genre,rating:i&&i>0?i:e.rating,tmdbId:J(r,`tmdb_id`)||J(r,`tmdb`),detailLoaded:!0},o=n.episodes,s=Array.isArray(o)?o.filter(Array.isArray).map(e=>[null,e]):o&&typeof o==`object`?Object.keys(o).map(e=>[e,o[e]]).filter(e=>Array.isArray(e[1])):[],c=Date.now(),l=[];for(let[n,r]of s)r.forEach((r,i)=>{let a=J(r,`id`);if(!a)return;let o=r.info,s=uu(r,`season`)||(n?parseInt(n,10):0)||1;l.push({id:js(e.providerId,`episode`,a),providerId:e.providerId,stamp:c,seriesId:e.id,remoteId:a,season:s,episode:uu(r,`episode_num`)||i+1,title:J(r,`title`)||`S${s}E${i+1}`,url:xc(t,a,J(r,`container_extension`)||`mp4`),poster:J(o,`movie_image`)||null,plot:J(o,`plot`),durationSec:uu(o,`duration_secs`)||fu(J(o,`duration`))})});return await K.transaction(`rw`,K.series,K.episodes,async()=>{await K.series.update(e.id,a),await K.episodes.where(`seriesId`).equals(e.id).delete(),await K.episodes.bulkPut(l)}),{series:V(V({},e),a),episodes:gu(l)}}catch(t){return console.warn(`get_series_info`,t),{series:e,episodes:gu(await n())}}}var gu=e=>e.sort((e,t)=>e.season-t.season||e.episode-t.episode),_u=.95;async function vu(e,t,n,r,i,a){if(!a||i<5e3)return;let o=i/a>=_u;await K.progress.put({id:t,providerId:n,kind:e,seriesId:r,position:o?0:i,duration:a,watched:o,updated:Date.now()})}async function yu(e,t,n,r,i){if(!i)return K.progress.delete(t);await K.progress.put({id:t,providerId:n,kind:e,seriesId:r,position:0,duration:0,watched:!0,updated:Date.now()})}var bu=e=>K.progress.get(e);async function xu(e){let t=await K.progress.bulkGet(e),n=new Map;return t.forEach(e=>e&&n.set(e.id,e)),n}async function Su(e){let t=e.filter(e=>!e.episode&&e.item&&!e.item.backdrop&&!e.item.detailLoaded).slice(0,20);if(!t.length)return e;let n=await Promise.all(t.map(e=>Promise.race([mu(e.item),new Promise(e=>setTimeout(()=>e(null),3e3))]))),r=new Map;return n.forEach(e=>{e&&r.set(e.id,e)}),e.map(e=>e.item&&r.has(e.item.id)?V(V({},e),{},{item:r.get(e.item.id)}):e)}var Cu=e=>e===`movie`?K.movies:K.series,wu=e=>({key:`i${e.id}`,id:e.id,title:e.name,poster:e.poster,rating:e.rating,item:e});async function Tu(e,t){return K.categories.where(`[providerId+kind]`).equals([e,t]).sortBy(`order`)}async function Eu(e,t,n=30){return Cu(t).where(`[providerId+added]`).between([e,Ss.minKey],[e,Ss.maxKey]).reverse().limit(n).toArray()}async function Du(e,t){let n=n=>n.where(`[categoryId+added]`).between([e,Ss.minKey],[e,Ss.maxKey]).reverse().limit(t).toArray(),r=await n(Cu(`movie`));return r.length?r:n(Cu(`series`))}async function Ou(e,t){let n=(await K.favorites.where(`[providerId+kind]`).equals([e,t]).toArray()).sort((e,t)=>t.order-e.order);return(await Cu(t).bulkGet(n.map(e=>e.id))).filter(e=>!!e)}async function ku(e,t){let n=(await K.progress.where(`providerId`).equals(e).toArray()).filter(e=>!e.watched&&e.position>0&&(t===`movie`?e.kind===`movie`:e.kind===`episode`)).sort((e,t)=>t.updated-e.updated),r=[],i=new Set;for(let e of n){if(r.length>=30)break;let n=e.duration?e.position/e.duration:0;if(t===`movie`){let t=await K.movies.get(e.id);t&&r.push({key:`c${t.id}`,id:t.id,title:t.name,poster:t.poster,rating:null,progress:n,item:t,updated:e.updated})}else if(e.seriesId!==null&&!i.has(e.seriesId)){i.add(e.seriesId);let[t,a]=await Promise.all([K.series.get(e.seriesId),K.episodes.get(e.id)]);if(t&&a){let i=`S${Au(a.season)}E${Au(a.episode)}`;r.push({key:`c${a.id}`,id:t.id,title:`${t.name} · ${i}`,poster:t.poster||a.poster,rating:null,progress:n,episode:a,item:t,updated:e.updated})}}}return r}var Au=e=>e<10?`0${e}`:`${e}`,ju=new Map;async function Mu(e,t,n){let r=`${e}|${t}|${n}`,i=ju.get(r);if(i)return i;try{let e=JSON.parse(localStorage.getItem(`genres|${r}`)||`null`);if(e)return ju.set(r,e),e}catch(e){}let a=new Map;await Cu(t).where(`providerId`).equals(e).each(e=>{if(e.genre)for(let t of e.genre.split(/[,/|&]/)){let e=t.trim();if(e.length<2||e.length>30)continue;let n=e.toLowerCase(),r=a.get(n);r?r.n++:a.set(n,{name:e,n:1})}});let o=[...a.values()].sort((e,t)=>t.n-e.n).slice(0,30).map(e=>e.name);ju.set(r,o);try{for(let n of Object.keys(localStorage))n.indexOf(`genres|${e}|${t}|`)===0&&localStorage.removeItem(n);localStorage.setItem(`genres|${r}`,JSON.stringify(o))}catch(e){}return o}async function Nu(e){let t=new Map;for(let n of e){if(n.adult)continue;let e=lc(n.name);if(!e)continue;let r=t.get(e.key);r?r.push(n.id):t.set(e.key,[n.id])}let n=[];for(let e of oc){let r=t.get(e.key);if(!r)continue;let i=[];for(let e of r)i.push(...await Du(e,3));let a=i.sort((e,t)=>t.added-e.added).map(e=>e.poster).filter(e=>!!e).slice(0,3);n.push({platform:e,posters:a,categoryIds:r})}return n}async function Pu(e,t,n,r){let i;if(n.favorites)i=await Ou(e,t);else if(n.categoryIds){i=[];for(let e of n.categoryIds)i.push(...await Du(e,1e5))}else i=await Cu(t).where(`providerId`).equals(e).toArray();if(n.genre){let e=n.genre.toLowerCase();i=i.filter(t=>!!t.genre&&t.genre.toLowerCase().indexOf(e)>=0)}let a=new Intl.Collator(void 0,{sensitivity:`base`}),o=(e,t)=>a.compare(e.name,t.name),s={added:(e,t)=>t.added-e.added||o(e,t),name:o,rating:(e,t)=>(t.rating||0)-(e.rating||0)||o(e,t),year:(e,t)=>(parseInt(t.year||`0`)||0)-(parseInt(e.year||`0`)||0)||o(e,t)};return i.sort(s[r])}async function Fu(e,t){return Cu(t).where(`[providerId+vkey]`).equals([e.providerId,e.vkey]).toArray()}var Iu=()=>Math.floor((Date.now()-new Date(new Date().getFullYear(),0,0).getTime())/864e5);function Lu(e){let t=e.filter(e=>e.backdrop),n=(t.length?t:e).slice(0,10);return n.length?n[Iu()%n.length]:null}async function Ru(e,t,n=20){let r=Cu(t).where(`[providerId+rating]`),i=await r.between([e,0],[e,Ss.maxKey],!1,!0).reverse().limit(n).toArray();return(i.length<n?i:await r.between([e,i[i.length-1].rating],[e,Ss.maxKey],!0,!0).toArray()).sort((e,t)=>t.rating-e.rating||t.added-e.added).slice(0,n)}async function zu(e){let t=(await K.progress.where(`providerId`).equals(e).toArray()).filter(e=>e.kind===`episode`&&e.seriesId!==null).sort((e,t)=>t.updated-e.updated).slice(0,100),n=new Set,r=[];for(let e of t){if(r.length>=15)break;if(n.has(e.seriesId)||(n.add(e.seriesId),!e.watched))continue;let t=gu(await K.episodes.where(`seriesId`).equals(e.seriesId).toArray()),i=await K.progress.bulkGet(t.map(e=>e.id)),a=t.findIndex(t=>t.id===e.id),o=t.slice(a+1).find((e,t)=>{let n=i[a+1+t];return!n||!n.watched}),s=await K.series.get(e.seriesId);o&&s&&r.push({key:`u${o.id}`,id:s.id,title:`${s.name} · S${Au(o.season)}E${Au(o.episode)}`,poster:o.poster||s.poster,rating:null,episode:o,item:s})}return r}async function Bu(e,t){let n=(await $l(e,{type:t})).slice(0,t===`recent`?20:void 0),r=(await K.channels.bulkGet(n)).filter(e=>!!e);return Promise.all(r.map(async e=>({channel:e,now:(await xl(e)).now})))}async function Vu(e){let t=Date.now(),n=new Date;n.getHours()>=2&&n.setDate(n.getDate()+1),n.setHours(2,0,0,0);let r=t-72e5,i=(await Tu(e,`live`)).filter(e=>!e.adult&&dc(e.name)===`SPORTS`),a=[];for(let e of i)if(a.push(...await K.channels.where(`[categoryId+number]`).between([e.id,Ss.minKey],[e.id,Ss.maxKey]).limit(300).toArray()),a.length>=300)break;let o=[],s=new Set,c=0;for(let e of a){let i=!!await K.epgLinks.get(e.id);if(!(!i&&c>=12)){i||c++;for(let i of await yl(e,r,n.getTime())){if(i.stop<=t||!rc(i.title))continue;let n=`${Gs(i.title)}|${Math.floor(i.start/6e4)}`;s.has(n)||(s.add(n),o.push({key:n,start:i.start,title:i.title,channel:e,channelName:e.name,live:i.start<=t}))}}}return o.sort((e,t)=>e.start-t.start).slice(0,20)}async function Hu(){let e=await K.reminders.where(`start`).above(Date.now()).limit(20).toArray(),t=await K.channels.bulkGet(e.map(e=>e.channelId));return e.map((e,n)=>({key:`r${e.id}`,start:e.start,title:e.title,channel:t[n]||null,channelName:e.channelName,live:!1}))}async function Uu(e){let[t,n]=await Promise.all([Tu(e,`movie`).then(e=>Nu(e)),Tu(e,`series`).then(e=>Nu(e))]),r=t.map(e=>V(V({},e),{},{kind:`movie`}));for(let e of n)r.some(t=>t.platform.key===e.platform.key)||r.push(V(V({},e),{},{kind:`series`}));let i=e=>oc.findIndex(t=>t.key===e);return r.sort((e,t)=>i(e.platform.key)-i(t.platform.key))}var Wu=`utopya.seriesSeen`,Gu=()=>{try{return JSON.parse(localStorage.getItem(Wu)||`{}`)}catch(e){return{}}};function Ku(e){let t=Gu();t[e]=Date.now();try{localStorage.setItem(Wu,JSON.stringify(t))}catch(e){}}var qu=Date.UTC(2001,0,1);async function Ju(e){let t=await K.favorites.where(`[providerId+kind]`).equals([e,`series`]).toArray(),n=await K.series.bulkGet(t.map(e=>e.id)),r=Gu(),i=[];for(let e=0;e<t.length;e++){let a=n[e];if(!a||a.added<qu)continue;let o=Math.max(t[e].order,r[a.id]||0);await K.progress.where(`seriesId`).equals(a.id).each(e=>{e.updated>o&&(o=e.updated)}),a.added>o&&i.push(a)}return i.sort((e,t)=>t.added-e.added).slice(0,20)}var Yu=e=>e.split(/[,/|&]/).map(e=>e.trim()).filter(e=>e.length>=2&&e.length<=30);function Xu(e,t){let n=e.slice(),r=t,i=()=>{r=r+1831565813|0;let e=Math.imul(r^r>>>15,1|r);return e=e+Math.imul(e^e>>>7,61|e)^e,((e^e>>>14)>>>0)/4294967296};for(let e=n.length-1;e>0;e--){let t=Math.floor(i()*(e+1)),r=n[e];n[e]=n[t],n[t]=r}return n}async function Zu(e){let t=(await K.progress.where(`providerId`).equals(e).toArray()).filter(e=>e.kind===`movie`&&e.position>0);if(!t.length)return null;let n=new Map;for(let e of await K.movies.bulkGet(t.map(e=>e.id)))if(e&&e.genre)for(let t of Yu(e.genre)){let e=t.toLowerCase(),r=n.get(e);r?r.n++:n.set(e,{name:t,n:1})}let r=[];n.forEach((e,t)=>r.push({k:t,name:e.name}));let i=Qu(r,e=>n.get(e.k).n,2);if(!i.length)return null;let a=[];await K.movies.where(`providerId`).equals(e).each(e=>{if(!e.rating||e.rating<6||!e.genre)return;let t=e.genre.toLowerCase();i.some(e=>t.indexOf(e.k)>=0)&&a.push(e)});let o=await K.progress.bulkGet(a.map(e=>e.id)),s=a.filter((e,t)=>!o[t]||!o[t].watched).sort((e,t)=>t.rating-e.rating||t.added-e.added).slice(0,60),c=new Date;return{genres:i.map(e=>e.name),items:Xu(s,Iu()+c.getFullYear()*1e3).slice(0,12)}}function Qu(e,t,n){return e.map((e,t)=>({x:e,i:t})).sort((e,n)=>t(n.x)-t(e.x)||e.i-n.i).slice(0,n).map(e=>e.x)}async function $u(e){let t=Date.now(),n=t+18e5,r=(await $l(e,{type:`fav`})).slice(0,30),i=(await K.channels.bulkGet(r)).filter(e=>!!e),a=[];for(let e of i)for(let r of await yl(e,t,n))r.start>t&&r.start<=n&&a.push({key:`s${r.id}`,start:r.start,title:r.title,channel:e,channelName:e.name,live:!1,program:r});return a.sort((e,t)=>e.start-t.start).slice(0,20)}var ed=I(null),td=I(new Set),nd=6e4;async function rd(){td.value=new Set(await K.reminders.toCollection().primaryKeys())}async function id(e,t,n=0){let r=!await K.reminders.get(e.id)||n!==0;return r?await K.reminders.put({id:e.id,providerId:t.providerId,channelId:t.id,channelName:t.name,title:e.title,start:e.start,stop:e.stop,repeat:n}):await K.reminders.delete(e.id),await rd(),r}var ad=async e=>{await K.reminders.delete(e),await rd()},od={1:864e5,2:6048e5};function sd(){rd();let e=async()=>{if(ed.peek())return;let e=await K.reminders.where(`start`).belowOrEqual(Date.now()+nd).first();if(e){if(await K.reminders.delete(e.id),e.repeat){let t=od[e.repeat],n=e.start+t;for(;n<Date.now();)n+=t;await K.reminders.put(V(V({},e),{},{id:-n,start:n,stop:e.stop===void 0?void 0:e.stop+(n-e.start)}))}await rd(),e.start>Date.now()-6e5&&(ed.value=e)}};e(),setInterval(e,15e3)}function cd({src:e,size:t}){return M(`span`,{class:`channel-logo`,style:{width:`${t*1.4/10}rem`,height:`${t/10}rem`},children:e&&M(`img`,{src:e,alt:``,onError:e=>e.currentTarget.style.visibility=`hidden`})})}function ld({value:e,class:t}){return M(`span`,{class:`progress-line ${t||``}`,children:M(`span`,{style:{width:`${Math.round(e*100)}%`}})})}function ud({text:e,active:t}){let n=F(null),r=F(null);return P(()=>{let e=n.current,i=r.current,a=i.scrollWidth-e.clientWidth;t&&a>0?(i.style.setProperty(`--marquee`,`${-a}px`),i.style.animationDuration=`${Math.max(3,a/40)}s`,i.classList.add(`run`)):i.classList.remove(`run`)},[t,e]),M(`span`,{class:`marquee`,ref:n,children:M(`span`,{ref:r,children:e})})}function dd(e){let t=e.channel;return M(`button`,{onlongpress:e.onLongPress,class:`channel-row focus-row ${e.current?`selected`:`idle`}${e.compact?` compact`:``}`,"data-focus":!0,"data-idx":e.index,"data-focus-default":e.focused||void 0,style:{top:`${e.index*e.pitch}rem`},onClick:e.onClick,children:[e.number!==null&&M(`span`,{class:`ch-number`,children:e.number}),e.compact?M(cd,{src:t?t.logo:null,size:30}):M(`span`,{class:`ch-logo-box`,children:M(cd,{src:t?t.logo:null,size:44})}),M(`span`,{class:`ch-text`,children:[M(`span`,{class:`ch-name`,children:[M(ud,{text:t?t.name:``,active:e.marquee}),e.favorite&&M(z,{name:`star`,class:`fav-star`})]}),e.program&&M(`span`,{class:`ch-program`,children:e.program.title}),e.program&&!e.compact&&M(ld,{value:Dl(e.program),class:`ch-progress`})]})]})}var fd=I({type:`all`}),pd=I(``),md=I(null),hd=I(null),gd=I(new Set);async function _d(e){let t=await K.favorites.where(`[providerId+kind]`).equals([e,`live`]).primaryKeys();gd.value=new Set(t)}var vd=I([]);function yd(e){let t=document.activeElement;vd.value=[...vd.value,{page:e,restore:t}],t&&t!==document.body&&t.blur()}function bd(){let e=vd.value;if(!e.length)return;let t=e[e.length-1];vd.value=e.slice(0,-1),setTimeout(()=>t.restore&&t.restore.isConnected?qt(t.restore):Xt(),0)}var xd=e=>{let t=vd.value;vd.value=[...t.slice(0,-1),{page:e,restore:t.length?t[t.length-1].restore:null}]},Y=I(`home`),Sd=I(`live`),Cd=0;function wd(e,t,n){hd.value={ids:e,index:t,archive:n,seq:++Cd},Y.value!==`player`&&(Sd.value=Y.value),Y.value=`player`}var Td=()=>{Y.value=Sd.value};function Ed(e){let{pager:t,count:n,index:r}=e,[i,a]=N(new Map),[o,s]=N(0),c=e.listRef,l=e.compact?6:7.2,u=c.current?Math.ceil(c.current.clientHeight/Od()/l):10;P(()=>{let e=o;r<o+2?e=Math.max(0,r-2):r>o+u-1-2&&(e=Math.max(0,Math.min(n-u,r-u+1+2))),e!==o&&s(e)},[r,n,u]);let d=Math.max(0,o-3),f=Math.min(n,o+u+3);P(()=>{if(!t)return;let e=!0;return t.range(d,f).then(t=>{if(!e)return;let n=new Map;t.forEach((e,t)=>n.set(d+t,e)),a(n)}),()=>{e=!1}},[t,d,f]),P(()=>{c.current&&(c.current.scrollTop=o*l*Od())},[o]);let[p,m]=N(new Map),h=jl.value;P(()=>{let e=!0,t=[...i.values()].filter(e=>!!e),n=()=>{let e=new Map;for(let n of t){let t=Dd.get(n.id);t&&t.tick===h&&e.set(n.id,t.now)}return e};m(n());let r=t.filter(e=>{let t=Dd.get(e.id);return!t||t.tick!==h});if(!r.length)return;let a=setTimeout(()=>{Promise.all(r.map(e=>xl(e).then(t=>{Dd.set(e.id,{tick:h,now:t.now})}))).then(()=>{e&&m(n())})},300);return()=>{e=!1,clearTimeout(a)}},[i,h]),P(()=>{if(!e.focused||!c.current)return;let t=c.current.querySelector(`[data-idx="${r}"]`);t&&document.activeElement!==t&&t.focus()},[r,d]),tn(t=>{if(!c.current||!c.current.contains(document.activeElement))return;let i=t===`up`?-1:t===`down`?1:t===`chUp`?-u:t===`chDown`?u:0;if(!i)return;let a=Math.max(0,Math.min(n-1,r+i));return a!==r&&e.setIndex(a),!0});let g=gd.value,_=[];for(let t=d;t<f;t++){let n=i.get(t);_.push(M(dd,{compact:e.compact,current:t===e.current,pitch:l,channel:n,index:t,number:e.numberOf(n,t),favorite:!!n&&g.has(n.id),program:n&&p.get(n.id)||null,focused:t===r,marquee:e.focused&&t===r,onClick:()=>e.onOpen(t),onLongPress:()=>e.onMenu(t)},t))}return M(`div`,{class:`channel-list${e.compact?` compact`:``}`,ref:c,"data-focus-group":e.group,"data-focus-noscroll":!0,children:M(`div`,{class:`channel-list-inner`,style:{height:`${n*l}rem`},children:_})})}var Dd=new Map,Od=()=>parseFloat(getComputedStyle(document.documentElement).fontSize),kd=e=>e&&e>0?`★ ${Math.round(e*10)/10}`:null,Ad=e=>e.item?{"data-hero-kind":`url`in e.item?`movie`:`series`,"data-hero-id":String(e.item.id),"data-hero-ep":e.episode?String(e.episode.id):void 0}:{},jd=e=>{let t=e.item,n=t?t.name:e.title;return[e.rating&&e.rating>0?`★ ${e.rating.toFixed(1)}`:null,t&&t.year&&n.indexOf(`(${t.year})`)<0?t.year:null].filter(Boolean).join(` · `)},Md=e=>{if(e.episode)return`S${Au(e.episode.season)}E${Au(e.episode.episode)}`;let t=e.item;if(!t)return``;let n=t.genre?t.genre.split(/[,/|&]/)[0].trim():``;return[t.year,n].filter(Boolean).join(` · `)};function Nd(e){let t=e.card;return M(`button`,V(V({onlongpress:e.onLongPress,class:`poster-card plain`,"data-focus":!0,"data-focus-initial":e.initial||void 0,"data-info-title":t.item?t.item.name:t.title,"data-info-meta":jd(t)},Ad(t)),{},{onClick:e.onClick,children:t.poster&&M(Sn,{src:vn(t.poster,342),onError:e=>e.currentTarget.style.display=`none`})}))}function Pd(e){let t=e.card,n=t.item,r=n&&`backdrop`in n?n.backdrop:null,i=t.episode&&t.episode.poster||r||t.poster,a=Md(t);return M(`button`,V(V({onlongpress:e.onLongPress,class:`wide-card`,"data-focus":!0,"data-focus-initial":e.initial||void 0},Ad(t)),{},{onClick:e.onClick,children:[i&&M(Sn,{src:vn(i,780),onError:e=>e.currentTarget.style.display=`none`}),M(`span`,{class:`wc-shade`}),M(`span`,{class:`wc-text`,children:[M(`span`,{class:`wc-title`,children:n?n.name:t.title}),a&&M(`span`,{class:`wc-sub`,children:a})]}),t.badge&&M(`span`,{class:`wc-badge`,children:t.badge}),!!t.progress&&M(`span`,{class:`poster-progress wc-progress`,children:M(`span`,{style:{width:`${Math.round(t.progress*100)}%`}})})]}))}function Fd(e){return e.kind===`movie`?M(Nd,V({},e)):M(Pd,V({},e))}function Id({p:e,class:t}){let n=uc(e);return n?M(`img`,{class:`${t||``}${e.tintWhite===!1?` own-color`:` tint-white`}`,src:n,alt:e.name}):M(`b`,{class:t,children:e.name})}function Ld({tile:e,onClick:t,initial:n}){let r=e.platform;return M(`button`,{class:`platform-tile`,"data-focus":!0,"data-focus-initial":n||void 0,onClick:t,children:[M(`span`,{class:`pt-collage`,children:e.posters.map(e=>M(Sn,{src:vn(e,342)},e))}),M(`span`,{class:`pt-shade`,style:{background:`linear-gradient(rgba(0,0,0,.35), rgba(0,0,0,.7) 60%, ${Rd(r.color,.85)})`}}),M(`span`,{class:`pt-logo`,children:M(Id,{p:r})})]})}var Rd=(e,t)=>{let n=parseInt(e.slice(1),16);return`rgba(${n>>16},${n>>8&255},${n&255},${t})`},zd=e=>e.replace(/[.*+?^${}()|[\]\\]/g,`\\$&`);function Bd(e,t){let n=new RegExp(zd(t.name),`i`),r=n.test(e)?n:new RegExp(t.keywords.map(e=>zd(e.trim())).filter(Boolean).join(`|`),`i`);return e.replace(r,``).replace(/^[\s·|\-:/+]+|[\s·|\-:/]+$/g,``)||e}function Vd({title:e,children:t,info:n,cls:r,seeAll:i}){let a=F(null),[o,s]=N(null);P(()=>{let e=a.current,t=t=>{let n=t.target;e.scrollLeft=Math.max(0,n.offsetLeft-1.6*Od());let r=n.getAttribute(`data-info-title`);s(r?{title:r,meta:n.getAttribute(`data-info-meta`)||``}:null)},n=()=>setTimeout(()=>{e.contains(document.activeElement)||s(null)},0);return e.addEventListener(`focusin`,t),e.addEventListener(`focusout`,n),()=>{e.removeEventListener(`focusin`,t),e.removeEventListener(`focusout`,n)}},[]);let[c,l]=ke(()=>{let t=lc(e);return[t,t?Bd(e,t):e]},[e]);return M(`section`,{class:r?`shelf ${r}`:`shelf`,children:[M(`h2`,{class:`shelf-title`,children:[c&&M(`span`,{class:`shelf-logo`,children:M(Id,{p:c})}),l,i&&M(`button`,{class:`shelf-all`,"data-focus":!0,onClick:i,children:`${R(`shelf_see_all`)} ›`})]}),M(`div`,{class:`shelf-row`,ref:a,"data-focus-group":`shelf-${e}`,children:t}),n&&M(`p`,{class:`shelf-info`,children:[o&&M(`b`,{children:o.title}),o&&o.meta&&M(`span`,{children:` ${o.meta}`})]})]})}var Hd=8,Ud=2;function Wd(e,t){t.episode?yd({name:`vod`,kind:`episode`,id:t.episode.id,seriesId:t.id}):t.progress!==void 0&&e===`movie`?yd({name:`vod`,kind:`movie`,id:t.id}):yd(e===`movie`?{name:`movie`,id:t.id}:{name:`series`,id:t.id})}function Gd({kind:e}){var t;let n=Gc.value,r=((t=(Wc.value||[]).find(e=>e.id===n))==null?void 0:t.lastSync)||0,[i,a]=N(null),[o,s]=N(null),[c,l]=N(0),u=vd.value.length,d=F(!1);P(()=>{u===0&&d.current&&l(e=>e+1),d.current=u>0},[u]);let[f,p]=N(Hd),m=F([]),h=F(!1),g=F(``);P(()=>{let t=!0;return g.current!==`${n}|${e}|${r}`&&p(Hd),(async()=>{let i=(await Tu(n,e)).filter(e=>!e.adult);m.current=i;let[o,s,c,l]=await Promise.all([ku(n,e),Nu(i),Ou(n,e),Eu(n,e)]),u={cont:o,tiles:s,favs:c,recent:l,genres:[],cats:[],next:0};if(!t)return;let d=g.current===`${n}|${e}|${r}`;g.current=`${n}|${e}|${r}`,a(d?e=>e?V(V({},u),{},{genres:e.genres,cats:e.cats,next:e.next}):u:u);let[f,p]=await Promise.all([Mu(n,e,r),Su(u.cont)]);t&&a(e=>e&&V(V({},e),{},{genres:f,cont:p}))})(),()=>{t=!1}},[n,e,r,c]),P(()=>{if(!i||h.current||i.cats.length>=f||i.next>=m.current.length)return;h.current=!0;let e=!0;return(async()=>{let t=[],n=i.next,r=m.current;for(;n<r.length&&!t.length;){let e=r.slice(n,n+Ud),i=await Promise.all(e.map(e=>Du(e.id,20)));e.forEach((e,n)=>{i[n].length&&t.push({c:e,items:i[n]})}),n+=e.length}h.current=!1,e&&a(e=>e&&V(V({},e),{},{cats:[...e.cats,...t],next:n}))})(),()=>{e=!1,h.current=!1}},[i,f]);let _=e=>{let t=e.target.closest(`.cat-shelf`);t&&i&&Array.prototype.indexOf.call(t.parentElement.querySelectorAll(`.cat-shelf`),t)>=i.cats.length-3&&p(e=>Math.max(e,i.cats.length+Hd))};if(!i)return null;if(!i.cats.length&&!i.recent.length&&!i.cont.length)return M(`p`,{class:`empty`,children:R(`vod_empty`)});let v=async(t,r)=>{let i=t.item;if(!i)return;let a=[],o=()=>l(e=>e+1);if(!(e===`series`&&r)){let t=!!await K.favorites.get(i.id);a.push({label:R(t?`vod_remove_favorite`:`vod_add_favorite`),onSelect:async()=>{await nu(n,e,i.id),o()}})}if(e===`movie`&&a.push({label:R(`vod_mark_watched`),onSelect:async()=>{await yu(`movie`,i.id,n,null,!0),o()}},{label:R(`vod_mark_unwatched`),onSelect:async()=>{await yu(`movie`,i.id,n,null,!1),o()}}),r){let e=t.episode?t.episode.id:i.id;a.push({label:R(`menu_remove_continue`),onSelect:async()=>{await K.progress.delete(e),o()}})}s({title:t.title,items:a})},y=!1,b=()=>y?!1:y=!0;return M(`div`,{class:`vod-home`,onFocusCapture:_,children:[i.cont.length>0&&M(Vd,{title:R(`shelf_continue`),children:i.cont.map(t=>M(Pd,{card:t,initial:b(),onClick:()=>Wd(e,t),onLongPress:()=>v(t,!0)},t.key))}),i.tiles.length>0&&M(Vd,{title:R(`shelf_platforms`),children:i.tiles.map(t=>M(Ld,{tile:t,initial:b(),onClick:()=>yd({name:`browse`,kind:e,title:t.platform.name,filter:{categoryIds:t.categoryIds,platformKey:t.platform.key}})},t.platform.key))}),i.favs.length>0&&M(Vd,{title:R(`shelf_favorites`),info:e===`movie`,seeAll:()=>yd({name:`browse`,kind:e,title:R(`shelf_favorites`),filter:{favorites:!0}}),children:i.favs.map(t=>{let n=wu(t);return M(Fd,{kind:e,card:n,initial:b(),onClick:()=>Wd(e,n),onLongPress:()=>v(n,!1)},n.key)})}),i.recent.length>0&&M(Vd,{title:R(`shelf_recent`),info:e===`movie`,seeAll:()=>yd({name:`browse`,kind:e,title:R(`shelf_recent`),filter:{all:!0},sort:`added`}),children:i.recent.map(t=>{let n=wu(t);return M(Fd,{kind:e,card:n,initial:b(),onClick:()=>Wd(e,n),onLongPress:()=>v(n,!1)},n.key)})}),i.genres.length>0&&M(Vd,{title:R(`shelf_genres`),children:i.genres.map(t=>M(`button`,{class:`chip genre-chip`,"data-focus":!0,onClick:()=>yd({name:`browse`,kind:e,title:t,filter:{genre:t}}),children:t},t))}),i.cats.map(({c:t,items:n})=>M(Vd,{cls:`cat-shelf`,title:tc(t.name,q.value.filterWords),info:e===`movie`,seeAll:()=>yd({name:`browse`,kind:e,title:t.name,filter:{categoryIds:[t.id]}}),children:n.map(t=>{let n=wu(t);return M(Fd,{kind:e,card:n,onClick:()=>Wd(e,n),onLongPress:()=>v(n,!1)},n.key)})},t.id)),o&&M(kn,{title:o.title,items:o.items,onClose:()=>s(null)})]})}var Kd=350,qd=()=>{let e=new Date().getHours();return R(e>=5&&e<=11?`home_greeting_morning`:e>=12&&e<=17?`home_greeting_day`:`home_greeting_evening`)};function Jd({providerId:e}){let n=Wc.value||[],r=n.find(t=>t.id===e),[i,a]=N(null),[o,s]=N(null),[c,l]=N(0),u=F(null),d=F(null),f=F(null),p=ke(()=>I(null),[]),m=F(void 0),h=F(!1),g=()=>l(e=>e+1),_=vd.value.length,v=F(!1);P(()=>{_===0&&v.current&&g(),v.current=_>0},[_]),P(()=>{let n=!0;(async()=>{let i=performance.now(),o=t(`türler`,Mu(e,`movie`,r&&r.lastSync||0)),[s,c,l,u,d,f,p,m,h,g,_,v,y]=await Promise.all([t(`devam film`,ku(e,`movie`)),t(`devam dizi`,ku(e,`series`)),t(`en iyi film`,Ru(e,`movie`)),t(`platformlar`,Uu(e)),t(`sıradaki`,zu(e)),t(`yeni bölüm`,Ju(e)),t(`sana özel`,Zu(e)),t(`favori kanal`,Bu(e,`fav`)),t(`son kanal`,Bu(e,`recent`)),t(`yayın akışı`,Hu()),t(`yeni film`,Eu(e,`movie`,20)),t(`yeni dizi`,Eu(e,`series`,20)),t(`en iyi dizi`,Ru(e,`series`))]);`${Math.round(performance.now()-i)}`;let b={hero:Lu(l),cont:[...s,...c].sort((e,t)=>(t.updated||0)-(e.updated||0)).slice(0,20),up:d,newEps:f.map(e=>V(V({},wu(e)),{},{key:`n${e.id}`,badge:R(`home_new_episode_badge`)})),forYou:p,soon:[],genres:[],favs:m,recents:h,tonight:[],schedule:g,tiles:u,newMovies:_,newSeries:v,topMovies:l,topSeries:y};if(!n)return;a(b);let x=()=>{n&&a(V({},b))};o.then(e=>{b.genres=e,e.length&&x()});let S=await t(`arka planlar`,Su(b.cont));S!==b.cont&&(b.cont=S,x()),b.soon=await t(`birazdan`,$u(e)),x(),b.tonight=await t(`bu akşam`,Vu(e)),x()})();let i=()=>g();return window.addEventListener(`utopya:progress`,i),()=>{n=!1,window.removeEventListener(`utopya:progress`,i)}},[e,r&&r.lastSync,c]),P(()=>{let e=()=>{h.current=!0};return document.addEventListener(`keydown`,e,!0),()=>document.removeEventListener(`keydown`,e,!0)},[]);let y=F(Date.now()),b=F(!1),S=F(void 0);P(()=>{i&&!b.current&&(b.current=!0,S.current=window.setTimeout(()=>{if(h.current||vd.peek().length)return;let e=document.activeElement;(!e||e===document.body||e.closest(`.topbar`))&&L(f.current)},Math.max(0,1200-(Date.now()-y.current))))},[i]),P(()=>()=>clearTimeout(S.current),[]);let ee=async(t,n)=>{let r=await $l(e,{type:t}),i=r.indexOf(n);i>=0&&wd(r,i)},C={HERO:()=>null,CONTINUE:()=>i.cont.length?M(Vd,{title:R(`shelf_continue`),children:i.cont.map(e=>M(Pd,{card:e,onClick:()=>Wd(e.episode?`series`:`movie`,e),onLongPress:()=>s({title:e.title,items:[{label:R(`menu_open`),onSelect:()=>Wd(e.episode?`series`:`movie`,e)},{label:R(`menu_remove_continue`),onSelect:async()=>{await K.progress.delete(e.episode?e.episode.id:e.id),g()}}]})},e.key))}):null,UP_NEXT:()=>i.up.length?M(Vd,{title:R(`home_up_next`),children:i.up.map(e=>{let t=()=>yd({name:`vod`,kind:`episode`,id:e.episode.id,seriesId:e.id,startMs:0});return M(Pd,{card:e,onClick:t,onLongPress:()=>s({title:e.title,items:[{label:R(`menu_open`),onSelect:t},{label:R(`menu_remove_up_next`),onSelect:async()=>{await K.progress.where(`seriesId`).equals(e.id).delete(),g()}}]})},e.key)})}):null,NEW_EPISODES:()=>i.newEps.length?M(Vd,{title:R(`home_new_episodes`),children:i.newEps.map(e=>M(Pd,{card:e,onClick:()=>yd({name:`series`,id:e.id}),onLongPress:()=>s({title:e.title,items:[{label:R(`home_dismiss_new`),onSelect:()=>{Ku(e.id),g()}}]})},e.key))}):null,FOR_YOU:()=>i.forYou&&i.forYou.items.length?k(R(`home_for_you_genres`,i.forYou.genres.join(`, `)),i.forYou.items,`movie`,`rating`,{genre:i.forYou.genres[0]}):null,STARTING_SOON:()=>i.soon.length?M(Vd,{title:R(`home_starting_soon`),children:i.soon.map(e=>M($d,{pc:e,badge:td.value.has(e.program.id)?R(`home_reminder_badge`):void 0,onClick:async()=>B(R(await id(e.program,e.channel)?`guide_reminder_set`:`guide_reminder_removed`)),onLongPress:()=>s({title:e.title,items:[{label:R(`home_open_channel`),onSelect:()=>ee(`fav`,e.channel.id)}]})},e.key))}):null,GENRES:()=>i.genres.length?M(Vd,{title:R(`home_genres`),children:i.genres.map(e=>M(`button`,{class:`chip genre-chip`,"data-focus":!0,onClick:()=>yd({name:`browse`,kind:`movie`,title:e,filter:{genre:e}}),children:e},e))}):null,FAVORITE_CHANNELS:()=>i.favs.length?M(Vd,{title:R(`home_favorite_channels`),children:i.favs.map(t=>M(Qd,{cc:t,onClick:()=>ee(`fav`,t.channel.id),onLongPress:()=>s({title:t.channel.name,items:[{label:R(`menu_remove_favorite`),onSelect:async()=>{await nu(e,`live`,t.channel.id),g()}}]})},t.channel.id))}):null,RECENT_CHANNELS:()=>i.recents.length?M(Vd,{title:R(`home_recent_channels`),children:i.recents.map(e=>M(Qd,{cc:e,onClick:()=>ee(`recent`,e.channel.id),onLongPress:()=>s({title:e.channel.name,items:[{label:R(`menu_remove_recent`),onSelect:async()=>{await K.recents.delete(e.channel.id),g()}}]})},e.channel.id))}):null,TONIGHT_SPORTS:()=>i.tonight.length?M(Vd,{title:R(`home_tonight`),children:i.tonight.map(e=>M($d,{pc:e,onClick:()=>e.channel&&ee(`all`,e.channel.id)},e.key))}):null,SCHEDULE:()=>i.schedule.length?M(Vd,{title:R(`home_schedule`),children:i.schedule.map(e=>M($d,{pc:e,onClick:()=>e.channel&&ee(`all`,e.channel.id)},e.key))}):null,PLATFORMS:()=>i.tiles.length?M(Vd,{title:R(`shelf_platforms`),children:i.tiles.map(e=>M(Ld,{tile:e,onClick:()=>yd({name:`browse`,kind:e.kind,title:e.platform.name,filter:{categoryIds:e.categoryIds,platformKey:e.platform.key}})},e.platform.key))}):null,NEW_MOVIES:()=>k(R(`home_new_movies`),i.newMovies,`movie`,`added`),NEW_SERIES:()=>k(R(`home_new_series`),i.newSeries,`series`,`added`),TOP_RATED:()=>i.topMovies.length||i.topSeries.length?M(x,{children:[k(R(`home_top_movies`),i.topMovies,`movie`,`rating`),k(R(`home_top_series`),i.topSeries,`series`,`rating`)]}):null},w=i?q.value.homeShelves.filter(e=>e in C).map(e=>({k:e,el:C[e]()})).filter(e=>e.el):[],T=i&&i.hero?{kind:`movie`,item:i.hero}:null,E=(yt(()=>!!p.value).value||!!T)&&q.value.homeShelves.indexOf(`HERO`)>=0,D=e=>{let t=e.target,n=t.closest(`.shelf`),r=d.current,i=f.current;if(E&&n&&r&&i){let e=r.clientHeight-parseFloat(getComputedStyle(r).paddingBottom);i.style.transform=`translateY(${-Math.min(n.offsetTop,Math.max(0,i.offsetHeight-e))}px)`}let a=t.closest(`[data-hero-id]`);if(!a)return;clearTimeout(m.current);let o=a.getAttribute(`data-hero-kind`),s=+a.getAttribute(`data-hero-id`),c=a.getAttribute(`data-hero-ep`);m.current=window.setTimeout(async()=>{if(o===`movie`){let e=await K.movies.get(s);e&&(p.value={kind:o,item:await mu(e)},`${Math.round(performance.now())}`)}else{let e=await K.series.get(s);if(!e)return;let t=await hu(e);p.value={kind:o,item:t.series,episode:c?t.episodes.find(e=>e.id===+c):void 0},`${Math.round(performance.now())}`}},Kd)};P(()=>()=>clearTimeout(m.current),[]),P(()=>{!E&&f.current&&(f.current.style.transform=``)},[E]),tn(e=>{if(!E||e!==`up`&&e!==`down`||!f.current)return;let t=document.activeElement;if(!t||!f.current.contains(t))return;let n=$t(t,e);if(n)return qt(n);let r=Array.prototype.slice.call(f.current.querySelectorAll(`.shelf`)),i=r[r.indexOf(t.closest(`.shelf`))+(e===`up`?-1:1)];if(!i)return e===`down`||void 0;let a=i.querySelector(`.shelf-row`);return qt(a&&Yt(a))});let O=M(`div`,{class:`home-actions`,children:[M(`button`,{class:`round-btn`,"data-focus":!0,"aria-label":R(`home_edit`),title:R(`home_edit`),onClick:()=>yd({name:`homeEdit`}),children:M(z,{name:`edit`})}),n.length>1&&M(`button`,{class:`btn outline`,"data-focus":!0,onClick:()=>s({title:R(`home_switch_source`),items:n.map(t=>({label:t.name,checked:t.id===e,onSelect:()=>Yc(t.id)}))}),children:R(`home_switch_source`)})]});return M(`div`,{class:`home${E?` with-hero`:``}`,ref:u,children:[E?M(Zd,{hero:p,fallback:T,actions:O}):M(`div`,{class:`home-head`,children:[M(`h1`,{children:qd()}),r&&M(`span`,{class:`muted`,children:` · ${r.name}`}),M(`span`,{class:`spacer`}),O]}),M(`div`,{class:`home-shelves`,ref:d,"data-focus-noscroll":E||void 0,onFocusCapture:D,onScroll:E?e=>{e.currentTarget.scrollTop=0}:void 0,children:M(`div`,{class:`home-list`,ref:f,children:[i&&!w.length&&M(`p`,{class:`home-empty`,children:R(`home_empty`)}),w.map(e=>M(`div`,{class:`home-block`,children:e.el},e.k))]})}),o&&M(kn,{title:o.title,items:o.items,onClose:()=>s(null)})]});function k(e,t,n,r,i={all:!0}){if(!t.length)return null;let a=()=>yd({name:`browse`,kind:n,title:e,filter:i,sort:r});return n===`series`?M(Vd,{title:e,seeAll:a,children:t.map(e=>{let t=wu(e);return M(Pd,{card:t,onClick:()=>Wd(n,t)},t.key)})}):M(Vd,{title:e,seeAll:a,children:t.map(e=>{let t=wu(e);return M(Nd,{card:t,onClick:()=>Wd(n,t)},t.key)})})}}var Yd=e=>e.split(` / `)[0].replace(/\s*\(\d{4}\)\s*$/,``);async function Xd(e){if(e.kind===`movie`){yd({name:`vod`,kind:`movie`,id:e.item.id});return}let t=e.episode||(await hu(e.item)).episodes[0];yd(t?{name:`vod`,kind:`episode`,id:t.id,seriesId:e.item.id}:{name:`series`,id:e.item.id})}function Zd({hero:e,fallback:t,actions:n}){let r=e.value||t;if(!r)return null;let i=r.item,a=i.backdrop||i.poster,o=a&&vn(a,1280),s=i.rating&&i.rating>0?i.rating.toFixed(1):null,c=i.genre?i.genre.split(/[,/|&]/).map(e=>e.trim()).filter(Boolean).slice(0,2).join(` · `):``;return M(`div`,{class:`hero2`,children:[M(`div`,{class:`hero2-bg`,children:o&&M(`img`,{src:o,alt:``,decoding:`async`},o)}),M(`div`,{class:`hero2-actions`,children:n}),M(`div`,{class:`hero2-info`,children:[M(`span`,{class:`hero2-kind`,children:R(r.kind===`movie`?`home_kind_movie`:`home_kind_series`)}),M(`h2`,{class:`hero2-title`,children:Yd(i.name)}),M(`p`,{class:`hero2-meta`,children:[s&&M(`b`,{children:`★ ${gn.value===`tr`?s.replace(`.`,`,`):s}`}),i.year&&M(`span`,{children:i.year}),c&&M(`span`,{children:c})]}),M(`p`,{class:`hero2-plot`,children:i.plot||``}),M(`div`,{class:`row hero2-buttons`,"data-focus-group":`hero`,children:[M(`button`,{class:`btn primary`,"data-focus":!0,"data-focus-default":!0,onClick:()=>Xd(r),children:R(`vod_play`)}),M(`button`,{class:`btn outline`,"data-focus":!0,onClick:()=>yd(r.kind===`movie`?{name:`movie`,id:i.id}:{name:`series`,id:i.id}),children:R(`home_details`)})]})]})]})}function Qd({cc:e,onClick:t,onLongPress:n}){let r=e.channel;return M(`div`,{class:`channel-tile`,children:[M(`button`,{onlongpress:n,class:`ct-card`,"data-focus":!0,onClick:t,children:r.logo?M(cd,{src:r.logo,size:60}):M(`span`,{class:`ct-name-big`,children:r.name})}),M(`span`,{class:`ct-name`,children:r.name}),e.now&&M(x,{children:[M(`span`,{class:`ct-program`,children:e.now.title}),M(ld,{value:Dl(e.now),class:`ct-progress`})]})]})}function $d({pc:e,onClick:t,onLongPress:n,badge:r}){return M(`button`,{onlongpress:n,class:`program-tile`,"data-focus":!0,onClick:t,children:[M(`span`,{class:`pt-logo-box`,children:e.channel&&e.channel.logo&&M(cd,{src:e.channel.logo,size:40})}),M(`span`,{class:`pt-text`,children:[M(`span`,{class:`pt-time`,children:[kl(e.start),e.live&&M(`span`,{class:`pt-badge`,children:R(`home_live_now`)}),r&&M(`span`,{class:`pt-badge reminder`,children:r})]}),M(`span`,{class:`pt-title`,children:e.title}),M(`span`,{class:`pt-channel`,children:e.channelName})]})]})}var ef={_doc:`Ülke öneki → görünen ad [tr, en]. Chromium 56'da Intl.DisplayNames olmadığı için Tizen bu tabloyu kullanır; listede olmayan kod olduğu gibi gösterilir. Android cihaz yerel ayarını (Locale.displayCountry) kullanır; UK/EN → Birleşik Krallık, EX → Ex-YU kuralları aynı.`,countries:{TR:{tr:`Türkiye`,en:`Türkiye`},DE:{tr:`Almanya`,en:`Germany`},UK:{tr:`Birleşik Krallık`,en:`United Kingdom`},EN:{tr:`Birleşik Krallık`,en:`United Kingdom`},GB:{tr:`Birleşik Krallık`,en:`United Kingdom`},US:{tr:`Amerika Birleşik Devletleri`,en:`United States`},USA:{tr:`Amerika Birleşik Devletleri`,en:`United States`},CA:{tr:`Kanada`,en:`Canada`},FR:{tr:`Fransa`,en:`France`},IT:{tr:`İtalya`,en:`Italy`},ES:{tr:`İspanya`,en:`Spain`},PT:{tr:`Portekiz`,en:`Portugal`},NL:{tr:`Hollanda`,en:`Netherlands`},BE:{tr:`Belçika`,en:`Belgium`},AT:{tr:`Avusturya`,en:`Austria`},CH:{tr:`İsviçre`,en:`Switzerland`},PL:{tr:`Polonya`,en:`Poland`},RO:{tr:`Romanya`,en:`Romania`},BG:{tr:`Bulgaristan`,en:`Bulgaria`},GR:{tr:`Yunanistan`,en:`Greece`},AL:{tr:`Arnavutluk`,en:`Albania`},RS:{tr:`Sırbistan`,en:`Serbia`},HR:{tr:`Hırvatistan`,en:`Croatia`},BA:{tr:`Bosna-Hersek`,en:`Bosnia and Herzegovina`},MK:{tr:`Kuzey Makedonya`,en:`North Macedonia`},SI:{tr:`Slovenya`,en:`Slovenia`},HU:{tr:`Macaristan`,en:`Hungary`},CZ:{tr:`Çekya`,en:`Czechia`},SK:{tr:`Slovakya`,en:`Slovakia`},RU:{tr:`Rusya`,en:`Russia`},UA:{tr:`Ukrayna`,en:`Ukraine`},SE:{tr:`İsveç`,en:`Sweden`},NO:{tr:`Norveç`,en:`Norway`},DK:{tr:`Danimarka`,en:`Denmark`},FI:{tr:`Finlandiya`,en:`Finland`},IE:{tr:`İrlanda`,en:`Ireland`},AZ:{tr:`Azerbaycan`,en:`Azerbaijan`},GE:{tr:`Gürcistan`,en:`Georgia`},IR:{tr:`İran`,en:`Iran`},IQ:{tr:`Irak`,en:`Iraq`},AR:{tr:`Arap ülkeleri`,en:`Arabic`},ARA:{tr:`Arap ülkeleri`,en:`Arabic`},IN:{tr:`Hindistan`,en:`India`},PK:{tr:`Pakistan`,en:`Pakistan`},AF:{tr:`Afganistan`,en:`Afghanistan`},BR:{tr:`Brezilya`,en:`Brazil`},MX:{tr:`Meksika`,en:`Mexico`},LAT:{tr:`Latin Amerika`,en:`Latin America`},AU:{tr:`Avustralya`,en:`Australia`},NZ:{tr:`Yeni Zelanda`,en:`New Zealand`},CY:{tr:`Kıbrıs`,en:`Cyprus`},KU:{tr:`Kürtçe`,en:`Kurdish`},KUR:{tr:`Kürtçe`,en:`Kurdish`},EX:{tr:`Ex-YU`,en:`Ex-YU`},EXYU:{tr:`Ex-YU`,en:`Ex-YU`}}},tf=(e,t)=>e&&e!==`und`?e.toUpperCase():`#${t+1}`,nf=class{constructor(e,t){yr(this,`av`,webapis.avplay),yr(this,`rect`,{x:0,y:0,w:window.innerWidth,h:window.innerHeight}),yr(this,`aspect`,`fit`),yr(this,`ev`,void 0),yr(this,`opened`,!1),yr(this,`subTimer`,void 0),yr(this,`token`,0),this.ev=t;let n=document.createElement(`object`);n.type=`application/avplayer`,n.style.cssText=`position:absolute;left:0;top:0;width:100%;height:100%`,e.appendChild(n)}open(e,t,n){this.stop();let r=++this.token,i=()=>r===this.token;try{if(this.av.open(e),this.opened=!0,t)try{this.av.setStreamingProperty(`USER_AGENT`,t)}catch(e){}this.av.setListener({onbufferingstart:()=>this.ev.onBuffering(!0),onbufferingcomplete:()=>this.ev.onBuffering(!1),onstreamcompleted:()=>this.ev.onEnded(),oncurrentplaytime:e=>this.ev.onTime(e),onerror:e=>this.ev.onError(String(e)),onevent:()=>{},onsubtitlechange:(e,t)=>{clearTimeout(this.subTimer),this.ev.onSubtitle(t||``),this.subTimer=window.setTimeout(()=>this.ev.onSubtitle(``),Number(e)||3e3)}}),this.applyRect(),this.av.prepareAsync(()=>{if(i()){if(this.applyRect(),n)try{this.av.seekTo(n)}catch(e){}this.av.play(),this.ev.onPlaying()}},e=>{i()&&this.ev.onError(String(e))})}catch(e){this.ev.onError(String(e))}}stop(){if(this.token++,this.opened){this.opened=!1;try{this.av.stop()}catch(e){}try{this.av.close()}catch(e){}}}pause(){try{this.av.pause()}catch(e){}}resume(){try{this.av.play()}catch(e){}}seek(e){try{this.av.seekTo(Math.max(0,e))}catch(e){}}setRect(e){this.rect=e,this.applyRect()}setAspect(e){this.aspect=e,this.applyRect()}applyRect(){if(!this.opened)return;let e=1920/window.innerWidth,{x:t,y:n,w:r,h:i}=this.rect;this.aspect===`zoom`&&(t-=r/6,n-=i/6,r*=4/3,i*=4/3);try{this.av.setDisplayMethod(this.aspect===`fill`?`PLAYER_DISPLAY_MODE_FULL_SCREEN`:`PLAYER_DISPLAY_MODE_LETTER_BOX`),this.av.setDisplayRect(Math.round(t*e),Math.round(n*e),Math.round(r*e),Math.round(i*e))}catch(e){}}tracks(e){try{return this.av.getTotalTrackInfo().filter(t=>t.type===e).map((e,t)=>{let n=``;try{n=JSON.parse(e.extra_info).language||``}catch(e){}return{index:e.index,language:n,label:tf(n,t)}})}catch(e){return[]}}audioTracks(){return this.tracks(`AUDIO`)}textTracks(){return this.tracks(`TEXT`)}selectAudio(e){try{this.av.setSelectTrack(`AUDIO`,e)}catch(e){}}selectText(e){try{e===null?this.av.setSilentSubtitle(!0):(this.av.setSilentSubtitle(!1),this.av.setSelectTrack(`TEXT`,e))}catch(e){}}videoHeight(){try{let e=this.av.getTotalTrackInfo().find(e=>e.type===`VIDEO`);return e?JSON.parse(e.extra_info).Height|0:0}catch(e){return 0}}duration(){try{return this.av.getDuration()||0}catch(e){return 0}}buffered(){return 0}setSpeed(e){try{e===Math.round(e)&&this.av.setSpeed(e)}catch(e){}}},rf=class{constructor(e,t){yr(this,`video`,void 0),yr(this,`hls`,null),yr(this,`ts`,null),yr(this,`ev`,void 0),yr(this,`token`,0),this.ev=t;let n=document.createElement(`video`);n.style.cssText=`position:absolute;background:#000`,n.autoplay=!0,n.addEventListener(`waiting`,()=>t.onBuffering(!0)),n.addEventListener(`playing`,()=>{t.onBuffering(!1),t.onPlaying()}),n.addEventListener(`ended`,()=>t.onEnded()),n.addEventListener(`timeupdate`,()=>t.onTime(n.currentTime*1e3)),n.addEventListener(`error`,()=>t.onError(n.error?`media ${n.error.code}`:`media`)),e.appendChild(n),this.video=n,this.setRect({x:0,y:0,w:0,h:0})}open(e,t,n){this.stop(),++this.token;let r=this.video;!/\.m3u8(\?|$)/i.test(e)&&/\.ts(\?|$)/i.test(e),r.src=Cr(e),r.addEventListener(`loadedmetadata`,()=>{n&&(r.currentTime=n/1e3)},{once:!0})}stop(){this.token++,this.hls&&(this.hls.destroy(),this.hls=null),this.ts&&(this.ts.destroy(),this.ts=null),this.video.removeAttribute(`src`),this.video.load()}pause(){this.video.pause()}resume(){this.video.play()}seek(e){this.video.currentTime=Math.max(0,e/1e3)}setRect(e){let t=this.video.style;t.left=`${e.x}px`,t.top=`${e.y}px`,t.width=`${e.w}px`,t.height=`${e.h}px`}setAspect(e){let t=this.video.style;t.objectFit=e===`fit`?`contain`:e===`fill`?`fill`:`cover`}audioTracks(){return this.hls?this.hls.audioTracks.map((e,t)=>({index:t,language:e.lang||``,label:e.name||tf(e.lang,t)})):[]}textTracks(){return this.hls?this.hls.subtitleTracks.map((e,t)=>({index:t,language:e.lang||``,label:e.name||tf(e.lang,t)})):[]}selectAudio(e){this.hls&&(this.hls.audioTrack=e)}selectText(e){this.hls&&(this.hls.subtitleTrack=e===null?-1:e)}videoHeight(){return this.video.videoHeight}duration(){let e=this.video.duration;return isFinite(e)?e*1e3:0}buffered(){let e=this.video.buffered;return e.length?e.end(e.length-1)*1e3:0}setSpeed(e){this.video.playbackRate=e}},X=I(`idle`),af=I(null),of=I(``),sf=I(`unknown`),cf=I(0),lf=I(q.value.aspect),uf=I(null),df=I(0),ff=I(null),pf=I(null),mf=I(``),Z,hf=0,gf,_f,vf=!1,yf={tur:`tr`,eng:`en`,deu:`de`,ger:`de`,fra:`fr`,fre:`fr`,ara:`ar`,rus:`ru`},bf=e=>{let t=e.toLowerCase().slice(0,3);return yf[t]||t.slice(0,2)};function xf(e,t){q.peek().rememberTracks&&(e===`audio`?t&&t.language&&zc({preferredAudio:bf(t.language)}):zc({preferredSubtitle:t&&t.language?bf(t.language):null}))}function Sf(){vf=!0;let{preferredAudio:e,preferredSubtitle:t}=q.peek(),n=(e,t)=>t?e.find(e=>e.language&&bf(e.language)===t):void 0,r=n(Z.audioTracks(),e);r&&Z.selectAudio(r.index);let i=n(Z.textTracks(),t);i&&Z.selectText(i.index)}var Cf={},wf=[1500,3e3,6e3,12e3],Tf=[`auth`,`not_found`,`format`,`limit`];function Ef(e){let t=e.toUpperCase();return/HTTP (429|458|509)\b/.test(t)?`limit`:/HTTP 5\d\d\b/.test(t)?`server`:/AUTH|401|403|FORBIDDEN|UNAUTHORIZED/.test(t)?`auth`:/INVALID_URI|404|410|NOT_FOUND|MANIFESTLOADERROR/.test(t)?`not_found`:/NOT_SUPPORTED|UNSUPPORTED|FORMAT|MEDIA 4/.test(t)?`format`:/DECOD|MEDIA 3/.test(t)?`decoder`:/TIMEOUT|TIMED_OUT/.test(t)?`timeout`:/CONNECTION|NETWORK|MEDIA 2|FRAGLOAD|LEVELLOAD/.test(t)?`network`:`unknown`}async function Df(e){if(!/^https?:/i.test(e))return null;let t=typeof AbortController<`u`?new AbortController:null,n=setTimeout(()=>t&&t.abort(),5e3);try{let n=await fetch(e,{headers:{Range:`bytes=0-0`},cache:`no-store`,signal:t?t.signal:void 0});try{n.body&&n.body.cancel()}catch(e){}return n.status>=400?`HTTP ${n.status}${n.statusText?` ${n.statusText}`:``}`:null}catch(e){return null}finally{clearTimeout(n)}}var Of=!1,kf=0;function Af(e){let t={onBuffering:e=>{e&&X.value===`playing`?X.value=`loading`:!e&&X.value===`loading`&&(X.value=`playing`)},onPlaying:()=>{X.value===`loading`&&!vf&&Sf(),X.value=`playing`,hf=0,cf.value=0,Cf.started&&Cf.started()},onEnded:()=>Cf.ended&&Cf.ended(),onTime:e=>{df.value=e},onSubtitle:e=>{mf.value=e},onError:e=>{let t=af.value;if(!t||X.value===`error`||Of)return;Of=!0,X.value=`loading`;let n=kf;Df(t.url).then(r=>{if(n!==kf||(Of=!1,X.value===`error`))return;let i=r||e;console.warn(`oynatma hatası`,i);let a=Ef(i);if(Tf.indexOf(a)<0&&hf<wf.length){cf.value=hf+1,clearTimeout(gf);let e=t.key.startsWith(`live:`)?void 0:df.peek()||_f;gf=window.setTimeout(()=>Z.open(t.url,t.userAgent,e),wf[hf++])}else cf.value=0,sf.value=a,of.value=i,X.value=`error`,Z.stop(),Cf.failed&&Cf.failed()})}};Z=Ft?new nf(e,t):new rf(e,t),uf.subscribe(e=>{e===null?Z.setRect({x:0,y:0,w:0,h:0}):e===`full`?Z.setRect({x:0,y:0,w:window.innerWidth,h:window.innerHeight}):Z.setRect(e)}),window.addEventListener(`resize`,()=>{uf.peek()===`full`&&Z.setRect({x:0,y:0,w:window.innerWidth,h:window.innerHeight})}),lf.subscribe(e=>{Z.setAspect(e),q.peek().aspect!==e&&zc({aspect:e})}),document.addEventListener(`visibilitychange`,()=>{let e=af.value;if(!e)return;if(document.hidden){Z.stop();return}let t=e.key.startsWith(`live:`)?void 0:df.peek()||_f;X.value=`loading`,Z.open(e.url,e.userAgent,t)})}function jf(e,t={}){Cf.ended=t.onEnded,Cf.failed=t.onFailed,Cf.started=t.onStarted,!(af.value&&af.value.key===e.key&&X.value!==`error`)&&(clearTimeout(gf),kf++,Of=!1,hf=0,cf.value=0,vf=!1,_f=t.startMs,af.value=e,X.value=`loading`,of.value=``,mf.value=``,ff.value=null,pf.value=null,df.value=t.startMs||0,Z.open(e.url,e.userAgent,t.startMs))}function Mf(){let e=af.value;if(!e)return;let t=e.key.startsWith(`live:`)?void 0:df.peek()||_f;af.value=null,jf(e,{startMs:t,onEnded:Cf.ended,onFailed:Cf.failed,onStarted:Cf.started})}function Nf(){clearTimeout(gf),kf++,Of=!1,af.value=null,X.value=`idle`,Z.stop()}function Pf(){X.value===`paused`?(Z.resume(),X.value=`playing`):(X.value===`playing`||X.value===`loading`)&&(Z.pause(),X.value=`paused`)}var Ff=e=>Z.seek(e),If=()=>Z.audioTracks(),Lf=()=>Z.textTracks(),Rf=e=>Z.selectAudio(e);function zf(e){e===null&&(mf.value=``),Z.selectText(e)}var Bf=()=>Z.videoHeight(),Vf=()=>Z.duration(),Hf=()=>Z.buffered(),Uf=e=>Z.setSpeed(e);function Wf(e){let t=e.getBoundingClientRect();return{x:t.left,y:t.top,w:t.width,h:t.height}}var Gf=700,Kf=e=>{let t=ef.countries[e];return t?t[gn.value]:e};function qf({onOpenPlayer:e}){var t;let n=Gc.value,r=q.value,[i,a]=N([]),[o,s]=N(null),[c,l]=N(0),u=F(0);u.current=c;let d=F(null),[f,p]=N(null),[m,h]=N([]),[g,_]=N(null),[v,y]=N(null),[b,x]=N(null),S=Fl.value,[ee,C]=N(!1),[w,T]=N(!1),E=F(null),D=F(null),O=fd.value,k=(()=>{let e=Kc.value;return!!e&&e.providerId===n&&`stage`in e&&e.stage!==`DONE`})(),te=(t=(Wc.value||[]).find(e=>e.id===n))==null?void 0:t.lastSync;P(()=>{K.categories.where(`[providerId+kind]`).equals([n,`live`]).sortBy(`order`).then(a),_d(n),Rl(n),iu(n).then(e=>h(e.sort((e,t)=>e.name.localeCompare(t.name))))},[n,te]);let A=ke(()=>{let e=[{key:`fav`,label:R(`cat_favorites`),filter:{type:`fav`}},{key:`recent`,label:R(`cat_recent`),filter:{type:`recent`}},{key:`all`,label:R(`cat_all`),filter:{type:`all`}}],t=m.map(e=>({key:`ug:${e.id}`,label:e.name,filter:{type:`ugroup`,id:e.id},group:e})),n=i.filter(Hl);if(r.groupMode===`CATEGORY`){let i=e=>(Il.value.get(e.id)||{}).pinned||0,a=n.map((e,t)=>[e,t]).sort((e,t)=>i(t[0])-i(e[0])||e[1]-t[1]).map(e=>e[0]);return e.concat(t,a.map(e=>({key:`cat:${e.id}`,label:tc(e.name,r.filterWords),filter:{type:`cat`,id:e.id},platform:lc(e.name),locked:zl(e),pinned:!!(Il.value.get(e.id)||{}).pinned,cat:e})))}let a=gn.value===`tr`?`TR`:`UK`,o=mc(n.map(e=>({id:e.id,name:e.name,locked:zl(e)})),r.groupMode,a);return e.concat(t,o.map(e=>({key:e.key,label:e.platform?e.platform.name:e.country?Kf(e.country):R(`genre_${e.genre.toLowerCase()}`),filter:{type:`group`,key:e.key,ids:e.categoryIds},platform:e.platform})))},[i,r.groupMode,gn.value,m,S]),j=Zl(O),ne=A.find(e=>Zl(e.filter)===j);P(()=>{pd.value=ne?ne.label:``},[ne&&ne.label]),P(()=>{let e=!0;return s(null),$l(n,O).then(t=>{if(!e)return;let n=t,r=md.peek(),i=r===null?-1:n.indexOf(r);s(n);let a=d.current===j;d.current=j;let o=i>=0?i:a?Math.max(0,Math.min(u.current,n.length-1)):0;l(o),i>=0&&(md.value=null),(i>=0||a)&&setTimeout(()=>{i<0&&document.activeElement!==document.body||qt(D.current&&D.current.querySelector(`[data-idx="${o}"]`))},0)}),()=>{e=!1}},[n,j,te,S]);let re=F({pick:e=>{},menu:e=>{}});re.current={pick:e=>oe(!!e.cat&&Bl(e.cat),()=>{e.cat&&Vl(e.cat.id),fd.value=e.filter}),menu:e=>le(e)};let ie=ke(()=>o?new tu(o):null,[o]);P(()=>{md.peek()===null&&setTimeout(()=>L(E.current),0)},[]),P(()=>{let e=()=>{let e=document.activeElement;C(!!E.current&&E.current.contains(e)),T(!!D.current&&D.current.contains(e))};return document.addEventListener(`focusin`,e),()=>document.removeEventListener(`focusin`,e)},[]),P(()=>()=>{hd.peek()||Nf(),uf.value=null},[]);let ae=(e,t)=>r.numbering===`HIDDEN`?null:r.numbering===`CATEGORY`?t+1:e?e.number:null,oe=(e,t)=>e?_({then:t}):t(),se=async t=>{if(!o)return;let n=await K.channels.get(o[t]),r=n&&n.categoryId!==null&&i.find(e=>e.id===n.categoryId)||null;oe(!!n&&Bl(r,n.id),()=>{n&&Vl(r?r.id:null,n.id),e(o,t)})},ce=async e=>{let t=ie&&(await ie.range(e,e+1))[0];if(!t||!o)return;let r=gd.value.has(t.id),i=async()=>s(await $l(n,O)),a=[{label:R(r?`menu_remove_favorite`:`menu_add_favorite`),onSelect:async()=>{await nu(n,`live`,t.id),await _d(n),O.type===`fav`&&i()}}];if(O.type===`fav`||O.type===`ugroup`){let t=async t=>{if(!(t<0||t>=o.length)){if(O.type===`ugroup`)await lu(O.id,o,e,t);else{let[n,r]=await K.favorites.bulkGet([o[e],o[t]]);if(!n||!r)return;await K.favorites.bulkPut([V(V({},n),{},{order:r.order}),V(V({},r),{},{order:n.order})])}await i(),l(t)}};a.push({label:R(`menu_move_up`),onSelect:()=>t(e-1)},{label:R(`menu_move_down`),onSelect:()=>t(e+1)})}a.push({label:R(`menu_add_to_group`),onSelect:()=>p({title:R(`menu_add_to_group`),items:m.map(e=>({label:e.name,onSelect:()=>{ou(e.id,t.id).then(()=>B(e.name))}})).concat([{label:R(`menu_new_group`),onSelect:()=>x({initial:R(`group_default_name`,m.length+1),save:async e=>{await ou(await au(n,e.trim()||R(`group_default_name`,m.length+1)),t.id),h((await iu(n)).sort((e,t)=>e.name.localeCompare(t.name)))}})}])})}),O.type===`ugroup`&&a.push({label:R(`menu_remove_from_group`),onSelect:async()=>{await su(O.id,t.id),i()}}),a.push({label:R(`menu_epg_mapping`),onSelect:()=>yd({name:`epgmap`,channelId:t.id})});let c=!!(Ll.value.get(t.id)||{}).locked;a.push({label:R(c?`menu_unlock`:`menu_lock`),onSelect:()=>{if(!Jl())return y(R(`pin_needed_first`));c?_({then:()=>Kl(t.id,n,{locked:!1})}):Kl(t.id,n,{locked:!0})}}),a.push({label:R(`menu_hide`),onSelect:async()=>{await Kl(t.id,n,{hidden:!0}),i()}}),p({title:t.name,items:a})},le=e=>{if(e.group)return p({title:e.label,items:[{label:R(`menu_delete_group`),onSelect:async()=>{await cu(e.group.id),h(m.filter(t=>t.id!==e.group.id)),Zl(O)===e.key&&(fd.value={type:`all`})}}]});let t=e.cat;if(!t)return;let r=Il.value.get(t.id)||{},i=zl(t);p({title:t.name,items:[{label:R(r.pinned?`menu_unpin`:`menu_pin_top`),onSelect:()=>Gl(t.id,n,{pinned:r.pinned?0:Date.now()})},{label:R(i?`menu_unlock`:`menu_lock`),onSelect:()=>{if(!Jl())return y(R(`pin_needed_first`));i?_({then:()=>Gl(t.id,n,{locked:!1})}):Gl(t.id,n,{locked:!0})}},{label:R(`menu_hide`),onSelect:async()=>{await Gl(t.id,n,{hidden:!0}),Zl(O)===e.key&&(fd.value={type:`all`})}}]})},ue=An(async e=>{if(!o)return;let t=-1;if(r.numbering===`CATEGORY`)t=e-1<o.length?e-1:-1;else{let r=await K.channels.where(`[providerId+number]`).equals([n,e]).first();t=r?o.indexOf(r.id):-1}if(t<0)return B(R(`channel_not_found`));l(t),setTimeout(()=>qt(D.current&&D.current.querySelector(`[data-idx="${t}"]`)),0)});tn(e=>{if(e.startsWith(`digit`))return ue.push(e.slice(5)),!0});let de=R(`group_${r.groupMode.toLowerCase()}`);return M(`div`,{class:`live-screen`,children:[M(`div`,{class:`live-cats glass${ee?` wide`:``}`,ref:E,"data-focus-group":`live-cats`,children:[M(`button`,{class:`group-mode`,"data-focus":!0,onClick:()=>p({title:R(`group_by`,de),items:[`CATEGORY`,`COUNTRY`,`GENRE`,`PLATFORM`].map(e=>({label:R(`group_${e.toLowerCase()}`),checked:e===r.groupMode,onSelect:()=>{zc({groupMode:e}),fd.value={type:`all`}}}))}),children:[M(`span`,{children:[M(`span`,{class:`gm-title`,children:R(`live_categories`)}),M(`span`,{class:`gm-value`,children:R(`group_by`,de)})]}),M(z,{name:`tune`})]}),M(Jf,{entries:A,selectedKey:j,actions:re})]}),M(`div`,{class:`live-channels glass`,children:[M(`div`,{class:`panel-title`,children:[M(`h2`,{children:ne?ne.label:``}),o&&o.length>0&&M(`span`,{class:`muted`,children:R(`live_channel_count`,o.length)})]}),o&&o.length===0?M(`p`,{class:`empty`,children:R(k?`live_syncing`:`live_empty_category`)}):M(Ed,{listRef:D,group:`live-channels`,pager:ie,count:o?o.length:0,index:c,setIndex:l,numberOf:ae,focused:w,onOpen:se,onMenu:ce})]}),M(Zf,{pager:ie,index:c,active:w,locked:e=>Bl(i.find(t=>t.id===e.categoryId)||null,e.id)}),M(jn,{digits:ue.digits}),f&&M(kn,{title:f.title,items:f.items,onClose:()=>p(null)}),g&&M(Mn,{title:R(`pin_enter`),check:Yl,onDone:()=>{let e=g.then;_(null),e()},onClose:()=>_(null)}),v&&M(Pn,{text:v,onClose:()=>y(null)}),b&&M(Nn,{title:R(`menu_new_group`),label:R(`group_name`),initial:b.initial,onSave:b.save,onClose:()=>x(null)})]})}var Jf=class extends S{constructor(...e){super(...e),yr(this,`rev`,-1)}shouldComponentUpdate(e){return e.entries!==this.props.entries||e.selectedKey!==this.props.selectedKey||Fl.peek()!==this.rev}render(){let{entries:e,selectedKey:t,actions:n}=this.props;return this.rev=Fl.peek(),M(`div`,{class:`cat-list`,children:e.map(e=>M(Yf,{e,selected:Zl(e.filter)===t,onClick:()=>n.current.pick(e),onLongPress:()=>n.current.menu(e)},e.key))})}};function Yf({e,selected:t,onClick:n,onLongPress:r}){return M(`button`,{onlongpress:r,class:`cat-row focus-row${t?` selected`:``}`,"data-focus":!0,"data-focus-default":t||void 0,onClick:n,children:[e.platform&&M(Xf,{p:e.platform}),M(`span`,{class:`cat-name`,children:e.label}),e.pinned&&M(z,{name:`pin`,class:`cat-icon`}),e.locked&&M(z,{name:`lock`,class:`cat-icon`})]})}function Xf({p:e}){let t=uc(e);return M(`span`,{class:`platform-badge`,children:t?M(`img`,{src:t,alt:``,class:e.tintWhite===!1?``:`tint-white`}):M(`b`,{children:e.name})})}function Zf({pager:e,index:t,active:n,locked:r}){let[i,a]=N(),[o,s]=N(null),c=F(null);P(()=>{let e=()=>{let e=uf.peek();e&&e!==`full`&&c.current&&(uf.value=Wf(c.current))};return window.addEventListener(`resize`,e),()=>window.removeEventListener(`resize`,e)},[]),P(()=>{if(s(null),!i)return;let e=!0,t=setTimeout(()=>xl(i).then(t=>e&&s(t)),250);return()=>{e=!1,clearTimeout(t)}},[i&&i.id]);let l=q.value.previewAutoplay;return P(()=>{if(!e)return;let n=!0;return e.range(t,t+1).then(e=>n&&a(e[0])),()=>{n=!1}},[e,t]),P(()=>{if(!i)return;let e=af.peek();if(e&&e.key===`live:${i.id}`&&(uf.value=Wf(c.current)),!n||!l||r(i))return;let t=setTimeout(()=>{let e=(Wc.value||[]).find(e=>e.id===i.providerId);uf.value=Wf(c.current),jf({url:i.url,userAgent:e?e.userAgent:null,key:`live:${i.id}`})},Gf);return()=>clearTimeout(t)},[i&&i.id,n]),M(`div`,{class:`live-preview glass`,children:[M(`span`,{class:`preview-label`,children:R(`live_preview`)}),M(`div`,{class:`preview-box${uf.value&&uf.value!==`full`?` hole`:``}`,ref:c,children:i&&r(i)?M(z,{name:`lock`,class:`preview-lock`}):!l&&i&&M(cd,{src:i.logo,size:64})}),i&&M(`h3`,{class:`preview-name`,children:i.name}),o&&(o.now||o.next)?M(x,{children:[o.now&&M(Qf,{label:R(`now_label`),p:o.now,progress:!0}),o.next&&M(Qf,{label:R(`next_label`),p:o.next})]}):M(`p`,{class:`muted`,children:R(`no_program`)})]})}function Qf({label:e,p:t,progress:n}){return M(`div`,{class:`program-block`,children:[M(`span`,{class:`pb-label`,children:`${e} · ${Al(t)}`}),M(`span`,{class:`pb-title`,children:t.title}),n&&M(ld,{value:Dl(t),class:`pb-progress`}),t.desc&&M(`span`,{class:`pb-desc`,children:t.desc})]})}var $f=e=>e<10?`0${e}`:`${e}`;function ep(e,t){if(!t){let t=new Date(e);return{Y:`${t.getFullYear()}`,m:$f(t.getMonth()+1),d:$f(t.getDate()),H:$f(t.getHours()),M:$f(t.getMinutes()),S:$f(t.getSeconds())}}let n;try{n=new Intl.DateTimeFormat(`en-US`,{timeZone:t,year:`numeric`,month:`2-digit`,day:`2-digit`,hour:`2-digit`,minute:`2-digit`,second:`2-digit`,hour12:!1}).format(new Date(e))}catch(t){return ep(e)}let r=/(\d+)\/(\d+)\/(\d+),?\s+(\d+):(\d+):(\d+)/.exec(n);return{Y:r[3],m:r[1],d:r[2],H:$f(r[4]%24),M:r[5],S:r[6]}}var tp=(e,t,n)=>{let r=ep(e,n);return t.replace(/[YmdHMS]/g,e=>r[e])};function np(e,t,n,r,i){let a=e=>Math.floor(e/1e3),o={utc:t,start:t,utcend:n,end:n,lutc:r,now:r,timestamp:r};return e.replace(/\{([YmdHMS])\}/g,(e,n)=>ep(t,i)[n]).replace(/\$?\{(\w+)(?::([^}]+))?\}/g,(e,s,c)=>{if(s===`duration`||s===`offset`){let e=a(s===`duration`?n-t:r-t);return`${c&&/^\d+$/.test(c)?Math.floor(e/+c):e}`}let l=o[s];return l===void 0?e:c?tp(l,c,i):`${a(l)}`})}var rp=(e,t)=>e+(e.indexOf(`?`)>=0?`&`:`?`)+t.replace(/^[?&]/,``);function ip(e,t,n,r,i={}){let a=Math.floor(t/1e3),o=Math.max(60,Math.floor((n-t)/1e3));switch(e.catchupType){case`XTREAM`:{let n=/^(https?:\/\/[^/]+)((?:\/.*?)?)\/([^/]+)\/([^/]+)\/([^/?]+?)(?:\.\w+)?(?:\?.*)?$/.exec(e.url);if(!n)return null;let r=n[1]+n[2].replace(/\/live$/,``),a=ep(t,i.serverZone||i.deviceZone);return`${r}/timeshift/${n[3]}/${n[4]}/${Math.ceil(o/60)}/${a.Y}-${a.m}-${a.d}:${a.H}-${a.M}/${n[5]}.ts`}case`SHIFT`:return rp(e.url,`utc=${a}&lutc=${Math.floor(r/1e3)}`);case`APPEND`:case`DEFAULT`:{if(!e.catchupSource)return null;let a=np(e.catchupSource,t,n,r,i.deviceZone);return e.catchupType===`APPEND`?e.url+a:/^https?:\/\//i.test(a)?a:rp(e.url,a)}case`FLUSSONIC`:{let t=e.url.indexOf(`?`),n=t>=0?e.url.slice(0,t):e.url,r=t>=0?e.url.slice(t):``,i=/^(.*\/)([^/]+)\.m3u8$/.exec(n);if(i)return`${i[1]}${i[2]}-${a}-${o}.m3u8${r}`;let s=/^(.*\/)(?:mpegts|[^/]+\.ts)$/.exec(n);return s?`${s[1]}timeshift_abs-${a}.ts${r}`:`${n.replace(/\/$/,``)}/timeshift_abs-${a}.ts${r}`}default:return null}}var ap=(e,t,n)=>e.catchupType!==`NONE`&&t<n&&t>=n-Math.max(1,e.catchupDays)*864e5;function op({onRetry:e,onBack:t}){let n=F(null);return P(()=>{L(n.current)},[]),M(`div`,{class:`player-center`,children:M(`div`,{class:`error-card`,ref:n,"data-focus-scope":!0,children:[M(z,{name:`error`,class:`error-icon`}),M(`p`,{children:sp()}),of.value&&M(`p`,{class:`error-detail`,children:R(`player_error_detail`,of.value)}),M(`div`,{class:`row`,children:[M(`button`,{class:`btn primary`,"data-focus":!0,"data-focus-default":!0,onClick:e,children:R(`retry`)}),M(`button`,{class:`btn outline`,"data-focus":!0,onClick:t,children:R(`back`)})]})]})})}var sp=()=>R(`player_error_${sf.peek()}`),cp=/(?:(\d+):)?(\d{1,2}):(\d{1,2})[,.](\d{1,3})/;function lp(e){let t=cp.exec(e);if(!t)return NaN;let n=(t[4]+`00`).slice(0,3);return(((t[1]||0)*60+ +t[2])*60+ +t[3])*1e3+ +n}function up(e){return e.replace(/\{\\[^}]*\}/g,``).replace(/<(\/?)([ibu])(\s[^>]*)?>/gi,`$1$2`).replace(/<[^>]+>/g,``).replace(/\u0001/g,`<`).replace(/\u0002/g,`>`).trim()}function dp(e){let t=[],n=e.replace(/^/,``).replace(/\r\n?/g,`
9
- `).split(/\n\s*\n/);for(let e of n){let n=e.split(`
10
- `),r=n.findIndex(e=>e.indexOf(`-->`)>=0);if(r<0)continue;let[i,a]=n[r].split(`-->`),o=lp(i),s=lp(a),c=up(n.slice(r+1).join(`
11
- `));isNaN(o)||isNaN(s)||!c||t.push({start:o,end:s,text:c})}return t.sort((e,t)=>e.start-t.start)}function fp(e,t){let n=0,r=e.length;for(;n<r;){let i=n+r>>1;e[i].start<=t?n=i+1:r=i}let i=[];for(let r=n-1;r>=0&&r>=n-5;r--)e[r].end>t&&i.unshift(e[r]);return i}function pp(e){try{return new TextDecoder(`utf-8`,{fatal:!0}).decode(e)}catch(t){return new TextDecoder(`windows-1254`).decode(e)}}var mp=I(null),hp=I(0);function gp(){mp.value=null,hp.value=0}var _p=[`#fff`,`#ffeb3b`,`#00e5ff`];function vp({text:e}){let t=e.split(/(<\/?[ibu]>)/i),n=[],r=!1,i=!1,a=!1;return t.forEach((e,t)=>{let o=/^<(\/?)([ibu])>$/i.exec(e);if(o){let e=!o[1],t=o[2].toLowerCase();t===`i`?r=e:t===`b`?i=e:a=e}else e&&n.push(M(`span`,{style:{fontStyle:r?`italic`:void 0,fontWeight:i?700:void 0,textDecoration:a?`underline`:void 0},children:e},t))}),M(x,{children:n})}function yp(){let e=yt(()=>{let e=mp.value;return e?fp(e.cues,df.value-hp.value).map(e=>e.text).join(`
12
- `):mf.value}).value;if(!e)return null;let t=q.value;return M(`div`,{class:`subtitle-layer${t.subtitleBackground?` boxed`:``}`,style:{fontSize:`${(4*t.subtitleScale).toFixed(2)}rem`,color:_p[t.subtitleColor]},children:e.split(`
13
- `).map((e,t)=>M(`span`,{class:`subtitle-line`,children:M(vp,{text:e})},t))})}var bp=72e5,xp=18e5,Sp=36e5,Cp=864e5,wp=e=>Math.floor(e/xp)*xp,Tp=150;function Ep(e){let{pager:t,count:n,rowRem:r,winStart:i}=e,a=i+bp,o=F(null),[s,c]=N(Math.max(0,e.initialRow-3)),[l,u]=N({row:e.initialRow,pid:-1}),[d,f]=N(new Map),[p,m]=N(new Map),[h,g]=N(Date.now()),_=o.current?Math.max(1,Math.floor(o.current.clientHeight/Od()/r)):6,v=F(new Map);P(()=>{let e=setInterval(()=>g(Date.now()),3e4);return()=>clearInterval(e)},[]),P(()=>{l.row<s?c(l.row):l.row>s+_-1&&c(Math.min(Math.max(0,n-_),l.row-_+1))},[l.row,_,n]);let y=s,b=Math.min(n,s+_+1);P(()=>{let e=!0;return t.range(y,b).then(async t=>{let n=new Map;if(t.forEach((e,t)=>e&&n.set(y+t,e)),!e)return;f(n);let r=i-Cp/2,a=i+bp+Cp,o=[...n.values()].filter(e=>{let t=v.current.get(e.id);return!t||t.from>i-Sp||t.to<i+72e5+Sp});for(await Promise.all(o.map(async e=>{v.current.set(e.id,{from:r,to:a,list:await yl(e,r,a)})}));v.current.size>Tp;)v.current.delete(v.current.keys().next().value);if(!e)return;let s=new Map;v.current.forEach((e,t)=>s.set(t,e.list)),m(s)}),()=>{e=!1}},[t,y,b,Math.floor(i/Cp*2)]);let x=e=>{let t=d.get(e);return t&&p.get(t.id)||null};P(()=>{if(l.pid!==-1)return;let e=x(l.row);if(e===null)return;let t=l.at===void 0?Date.now():l.at,n=e.find(e=>e.start<=t&&e.stop>t)||e.find(e=>e.stop>i&&e.start<a);u({row:l.row,pid:n?n.id:null})},[p,d]),P(()=>{if(!o.current)return;if(l.pid===-1){let e=o.current.querySelector(`[data-cell="${l.row}:ch"], [data-cell="${l.row}:wait"]`);e&&document.activeElement!==e&&e.focus();return}let e=o.current.querySelector(`[data-cell="${l.row}:${l.pid===null?`ch`:l.pid}"]`)||o.current.querySelector(`[data-cell="${l.row}:wait"]`);e&&document.activeElement!==e&&e.focus()},[l,d,p,i,s]),P(()=>{let e=()=>{let e=document.activeElement,t=e&&o.current&&o.current.contains(e)?e.getAttribute(`data-cell`):null;if(!t)return;let[n,r]=t.split(`:`);if(r===`wait`)return;let i={row:+n,pid:r===`ch`||r===`null`?null:+r};u(e=>e.row===i.row&&(e.pid===i.pid||e.pid===-1)?e:i)};return document.addEventListener(`focusin`,e),()=>document.removeEventListener(`focusin`,e)},[]);let S=(e,t)=>{let n=(x(e)||[]).filter(e=>e.stop>i&&e.start<a),r=n.find(e=>e.start<=t&&e.stop>t)||n[0];return r?r.id:null};tn(t=>{if(!o.current||!o.current.contains(document.activeElement))return;let r=x(l.row)||[],s=l.pid===null?-1:r.findIndex(e=>e.id===l.pid),c=s>=0?r[s]:null,d=c?Math.max(c.start,i):l.at===void 0?i:l.at;switch(t){case`right`:{if(!c)return u({row:l.row,pid:S(l.row,i)}),!0;let t=r[s+1];return c.stop>a?e.setWinStart(i+Sp):t?(t.start>=a&&e.setWinStart(wp(t.start-xp)),u({row:l.row,pid:t.id})):e.setWinStart(i+Sp),!0}case`left`:{if(!c)return!0;let t=r[s-1];return c.start<i?e.setWinStart(i-Sp):t&&t.stop>i-Cp?(t.stop<=i&&e.setWinStart(wp(Math.max(t.start,t.stop-bp+xp))),u({row:l.row,pid:t.id})):u({row:l.row,pid:null}),!0}case`up`:case`down`:case`chUp`:case`chDown`:{let e=t===`up`?-1:t===`down`?1:t===`chUp`?-8:8;if(t===`up`&&l.row===0)return;let r=Math.max(0,Math.min(n-1,l.row+e));return r!==l.row&&(l.pid===null?u({row:r,pid:null}):x(r)===null?u({row:r,pid:-1,at:d}):u({row:r,pid:S(r,d)})),!0}}});let ee=h>=i&&h<a?(h-i)/bp*100:null,C=[];for(let t=y;t<b;t++){let n=d.get(t);if(!n){C.push(M(`div`,{class:`epg-row`,style:{top:`${(t-s)*r}rem`,height:`${r-.4}rem`},children:M(`button`,{class:`epg-channel`,"data-focus":!0,"data-cell":`${t}:wait`})},t));continue}let o=x(t),c=o?o.filter(e=>e.stop>i&&e.start<a):[],u=e.numberOf(n,t);C.push(M(`div`,{class:`epg-row`,style:{top:`${(t-s)*r}rem`,height:`${r-.4}rem`},children:[M(`button`,{class:`epg-channel`,"data-focus":!0,"data-cell":`${t}:ch`,"data-focus-default":l.row===t&&l.pid===null||void 0,onClick:()=>e.onChannel(n,t),children:[u!==null&&M(`span`,{class:`epg-num`,children:u}),M(cd,{src:n.logo,size:26}),M(`span`,{class:`epg-chname`,children:n.name})]}),M(`div`,{class:`epg-programs`,children:[o&&!c.length&&M(`button`,{class:`epg-cell`,"data-focus":!0,"data-cell":`${t}:null`,style:{left:0,width:`100%`},onClick:()=>e.onChannel(n,t),children:M(`span`,{class:`epg-title`,children:R(`guide_no_data`)})}),c.map(r=>{let o=Math.max(r.start,i),s=Math.min(r.stop,a);return M(`button`,{class:`epg-cell${r.start<=h&&r.stop>h?` live`:``}`,"data-focus":!0,"data-cell":`${t}:${r.id}`,"data-focus-default":l.row===t&&l.pid===r.id||void 0,style:{left:`${(o-i)/bp*100}%`,width:`${(s-o)/bp*100}%`},onClick:()=>e.onProgram(r,n,t),children:[M(`span`,{class:`epg-title`,children:r.title}),M(`span`,{class:`epg-time`,children:kl(r.start)})]},r.id)})]})]},t))}return M(`div`,{class:`epg-grid${e.translucent?` translucent`:``}`,children:[M(`div`,{class:`epg-header`,children:[0,1,2,3].map(e=>M(`span`,{style:{left:`${e*25}%`},children:kl(i+e*xp)},e))}),M(`div`,{class:`epg-body`,ref:o,"data-focus-group":`epg`,"data-focus-noscroll":!0,onScroll:e=>{e.currentTarget.scrollTop=0},children:[C,ee!==null&&M(`div`,{class:`epg-now`,style:{left:`calc(var(--epg-ch) + (100% - var(--epg-ch)) * ${ee/100})`}})]})]})}var Dp=5e3,Op=700,kp=[`fit`,`fill`,`zoom`],Ap=[0,15,30,45,60,90,120],jp=[.5,.75,1,1.25,1.5,2],Mp=[];for(let e=-10;e<=10;e+=.5)Mp.push(e);var Np=e=>R(`tz_sub_offset_value`,`${e>0?`+`:``}${(e/1e3).toFixed(1)}`),Pp=e=>`${e}x`,Fp=3e4,Ip=e=>e<10?`0${e}`:`${e}`,Lp=e=>`${Ip(e.getHours())}:${Ip(e.getMinutes())}`,Rp=e=>e>=2e3?`4K`:e>=1e3?`FHD`:e>=700?`HD`:e>0?`SD`:``;function zp({onExit:e}){let t=hd.value,n=t.ids,r=ke(()=>new tu(n),[n]),[i,a]=N(t.index),[o,s]=N(null),[c,l]=N(!0),[u,d]=N(null),[f,p]=N(0),[m,h]=N(t.archive?{program:t.archive,offset:0}:null),[g,_]=N(null),[v,y]=N(null),[b,x]=N(0),S=F(void 0),ee=F(!0),C=F(void 0),w=F(0),[,T]=N(0),E=F(null),D=F(0),O=F(void 0),k=q.value,te=o?o.providerId:null,A=()=>{l(!0),clearTimeout(O.current),O.current=window.setTimeout(()=>l(!1),Dp)},j=e=>{let t=n.length;t&&(o&&(E.current=o.id),clearTimeout(C.current),_(null),h(null),a((e%t+t)%t))};P(()=>{let e=!0;return(async()=>{let t=await K.channels.get(n[i]);if(!e||!t)return;if(q.peek().pinHash){await Rl(t.providerId);let n=t.categoryId===null?null:await K.categories.get(t.categoryId)||null;if(!e)return;if(Bl(n,t.id)){s(t),Nf(),y({channel:t,categoryId:t.categoryId});return}}s(t),A(),uf.value=`full`;let r=(Wc.value||[]).find(e=>e.id===t.providerId);if(clearTimeout(S.current),!ee.current&&!m&&(await new Promise(e=>{S.current=window.setTimeout(e,350)}),!e))return;if(ee.current=!1,m){let e=m.program,n=Date.now(),i=ap(t,e.start,n)?ip(t,e.start+m.offset,e.stop,n,{serverZone:r?r.serverTimezone:null}):null;if(!i){B(R(`archive_unavailable`)),h(null);return}jf({url:i,userAgent:r?r.userAgent:null,key:`arc:${t.id}:${e.id}:${m.offset}`},{onEnded:()=>ne(t,e)});return}let o=!1;jf({url:t.url,userAgent:r?r.userAgent:null,key:`live:${t.id}`},{onStarted:()=>{o||(o=!0,ru(t.providerId,`live`,t.id),zc({lastChannelId:t.id}))},onFailed:()=>{let e=E.current;if(!q.peek().fallbackToPrevious||e===null||Date.now()-D.current<Fp)return;let t=n.indexOf(e);t<0||(D.current=Date.now(),E.current=null,a(t),B(R(`player_fallback_reason`,sp())))}})})(),()=>{e=!1,clearTimeout(S.current)}},[i,m,b]);let ne=async(e,t)=>{let n=(await yl(e,t.stop-6e4,t.stop+216e5)).filter(e=>e.id!==t.id&&e.start>=t.stop-6e4).sort((e,t)=>e.start-t.start)[0];h(n&&n.stop<Date.now()?{program:n,offset:0}:null)},re=()=>{clearTimeout(C.current),_(null),h(null)};P(()=>()=>clearTimeout(C.current),[]);let ie=()=>m?m.offset+df.peek():0,ae=e=>{if(!m)return;let t=Math.min(m.program.stop,Date.now()-6e4)-m.program.start,n=Math.max(0,Math.min(t,(g===null?ie():g)+e));_(n),A(),clearTimeout(C.current),C.current=window.setTimeout(()=>{_(null);let e=o&&o.catchupType===`XTREAM`;h({program:m.program,offset:e?Math.floor(n/6e4)*6e4:n})},Op)};P(()=>{te!==null&&_d(te)},[te]),P(()=>{let e=setInterval(()=>T(e=>e+1),5e3);return()=>{clearInterval(e),clearTimeout(O.current),o&&(md.value=o.id)}},[o]),P(()=>{if(!f)return;let e=setTimeout(()=>{X.peek()!==`paused`&&Pf(),p(0),B(R(`sleep_triggered`))},f*6e4);return()=>clearTimeout(e)},[f]);let oe=()=>{o&&(md.value=o.id),hd.value=null,uf.value=null,e()},se=async()=>{if(!o)return;let e=await nu(o.providerId,`live`,o.id);await _d(o.providerId),B(R(e?`player_favorite_added`:`player_favorite_removed`))},ce=()=>{let e=kp[(kp.indexOf(lf.value)+1)%kp.length];lf.value=e,B(R(`aspect_${e}`))},le=e=>{e===`FAVORITE`?se():e===`AUDIO`?d({page:`audio`,direct:!0}):e===`SUBTITLES`?d({page:`subs`,direct:!0}):e===`ASPECT`?ce():e===`CHANNELS`?d(`list`):e===`INFO`?A():e===`GUIDE`&&d(`guide`)},ue=An(async e=>{let t=-1;if(k.numbering===`CATEGORY`)t=e-1<n.length?e-1:-1;else if(te!==null){let r=await K.channels.where(`[providerId+number]`).equals([te,e]).first();t=r?n.indexOf(r.id):-1}t<0?B(R(`channel_not_found`)):j(t)});P(()=>{let e=()=>{u||d({page:`main`,direct:!1})};return document.addEventListener(`longpress`,e),()=>document.removeEventListener(`longpress`,e)},[u]),tn((e,t)=>{if(e.startsWith(`digit`))return ue.push(e.slice(5)),!0;if(m&&!u&&e===`stop`)return re(),!0;if(m&&!u&&X.peek()!==`error`){if(e===`left`||e===`right`)return w.current=t&&t.repeat?w.current+1:0,ae((e===`left`?-1:1)*(w.current>4?12e4:3e4)),!0;if(e===`rew`||e===`ff`)return ae((e===`rew`?-1:1)*12e4),!0;if(e===`ok`||e===`playPause`||e===`play`||e===`pause`)return Pf(),A(),!0}if(e===`back`)return u?d(null):c?(clearTimeout(O.current),l(!1)):oe(),!0;if(!u&&(X.peek()!==`error`||e!==`ok`&&e!==`left`&&e!==`right`))switch(e){case`ok`:return d(`controls`),l(!0),clearTimeout(O.current),!0;case`up`:case`chUp`:return j(i+1),!0;case`down`:case`chDown`:return j(i-1),!0;case`left`:case`channelList`:return d(`list`),!0;case`right`:case`guide`:return d(`guide`),!0;case`last`:return E.current!==null&&n.indexOf(E.current)>=0&&j(n.indexOf(E.current)),!0;case`info`:return c?l(!1):A(),!0;case`menu`:return d({page:`main`,direct:!1}),!0;case`playPause`:case`play`:case`pause`:return Pf(),A(),!0;case`red`:return le(k.colorKeys[0]),!0;case`green`:return le(k.colorKeys[1]),!0;case`yellow`:return le(k.colorKeys[2]),!0;case`blue`:return le(k.colorKeys[3]),!0}});let de=!!o&&gd.value.has(o.id),fe=X.value,pe=c&&!u||u===`controls`,me=!!m&&!u&&(c||g!==null||fe===`paused`);return M(`div`,{class:`player`,children:[M(yp,{}),fe===`loading`&&M(`div`,{class:`player-center`,children:[M(`div`,{class:`spinner`}),cf.value>0&&M(`span`,{class:`retry-label`,children:R(`player_retrying`,cf.value)})]}),fe===`paused`&&M(`div`,{class:`player-center`,children:M(z,{name:`pause`,class:`paused-icon`})}),fe===`error`&&M(op,{onRetry:Mf,onBack:oe}),o&&m&&me&&M(Vp,{channel:o,program:m.program,target:g,offset:m.offset,paused:fe===`paused`}),o&&!m&&pe&&M(Hp,{channel:o,number:k.numbering===`HIDDEN`?null:k.numbering===`CATEGORY`?i+1:o.number,favorite:de,hint:u!==`controls`,children:u===`controls`&&M(Up,{favorite:de,subsOn:!1,onClose:()=>{d(null),A()},actions:{channels:()=>d(`list`),guide:()=>d(`guide`),audio:()=>d({page:`audio`,direct:!0}),subs:()=>d({page:`subs`,direct:!0}),picture:ce,favorite:se,more:()=>d({page:`main`,direct:!1}),back:oe}})}),u===`list`&&M(Wp,{pager:r,count:n.length,current:i,title:pd.value,numberOf:(e,t)=>k.numbering===`HIDDEN`?null:k.numbering===`CATEGORY`?t+1:e?e.number:null,onPick:e=>{d(null),e!==i&&j(e)}}),u===`guide`&&M(Gp,{pager:r,count:n.length,current:i,numberOf:(e,t)=>k.numbering===`HIDDEN`?null:k.numbering===`CATEGORY`?t+1:e.number,onPlay:e=>{d(null),e===i?re():j(e)},onArchive:(e,t)=>{d(null),t!==i&&j(t),h({program:e,offset:0})}}),u&&typeof u==`object`&&M(Kp,{page:u.page,direct:u.direct,favorite:de,sleepMin:f,setPage:e=>d({page:e,direct:!1}),close:()=>d(null),onFavorite:se,onSleep:e=>{p(e),e&&B(R(`sleep_set`,e))},onGuide:()=>d(`guide`),onGoLive:m?()=>{d(null),re()}:void 0}),M(jn,{digits:ue.digits}),v&&M(Mn,{title:R(`pin_enter`),check:Yl,onDone:()=>{Vl(v.categoryId,v.channel.id),y(null),x(e=>e+1)},onClose:()=>{y(null);let e=E.current;e!==null&&n.indexOf(e)>=0?j(n.indexOf(e)):oe()}})]})}function Bp({text:e,live:t,archive:n}){return M(`span`,{class:`badge-sm${t?` live`:``}${n?` archive`:``}`,children:e})}function Vp(e){let{program:t}=e,n=e.target===null?e.offset+df.value:e.target,r=Math.max(1,t.stop-t.start);return M(`div`,{class:`info-band archive-band`,children:M(`div`,{class:`band-row`,children:[M(`div`,{class:`band-left`,children:M(cd,{src:e.channel.logo,size:64})}),M(`div`,{class:`band-mid`,children:[M(`div`,{class:`band-title`,children:[M(`span`,{class:`band-name`,children:e.channel.name}),M(Bp,{text:R(`player_archive`),archive:!0})]}),M(`p`,{class:`band-program`,children:t.title}),M(`div`,{class:`vod-bar-row`,children:[M(z,{name:e.paused?`play`:`pause`,class:`vod-state`}),M(`span`,{class:`vod-time`,children:kl(t.start+n)}),M(`div`,{class:`vod-bar`,children:M(`span`,{class:`vod-played`,style:{width:`${Math.min(100,n/r*100)}%`}})}),M(`span`,{class:`vod-time`,children:kl(t.stop)})]}),M(`p`,{class:`band-hint`,children:R(`tz_archive_hint`)})]}),M(`span`,{class:`band-clock`,children:Lp(new Date)})]})})}function Hp(e){let t=e.channel,[n,r]=N(null),i=jl.value;P(()=>{let e=!0;return xl(t).then(t=>e&&r(t)),()=>{e=!1}},[t.id,i]);let a=n&&n.now,o=n&&n.next,s=If().length,c=Lf().length,l=Rp(Bf());return M(`div`,{class:`info-band`,children:[M(`div`,{class:`band-row`,children:[M(`div`,{class:`band-left`,children:[e.number!==null&&M(`span`,{class:`band-number`,children:e.number}),M(cd,{src:t.logo,size:64})]}),M(`div`,{class:`band-mid`,children:[M(`div`,{class:`band-title`,children:[M(`span`,{class:`band-name`,children:t.name}),e.favorite&&M(z,{name:`star`,class:`fav-star big`}),M(Bp,{text:R(`player_live`),live:!0}),l&&M(Bp,{text:l}),s>1&&M(Bp,{text:`♪ ${s}`}),c>0&&M(Bp,{text:`CC`})]}),a?M(x,{children:[M(`p`,{class:`band-program`,children:[M(`span`,{class:`band-time`,children:Al(a)}),a.title]}),M(`div`,{class:`band-progress`,children:[M(ld,{value:Dl(a)}),M(`span`,{children:R(`minutes_left`,Math.max(0,Math.round((a.stop-Date.now())/6e4)))})]})]}):M(`p`,{class:`band-program`,children:R(`no_program`)}),o&&M(`p`,{class:`band-next`,children:`${R(`next_label`)}: ${kl(o.start)} ${o.title}`}),e.hint&&M(`p`,{class:`band-hint`,children:R(`player_hint_live`)})]}),M(`span`,{class:`band-clock`,children:Lp(new Date)})]}),e.children]})}function Up(e){let t=F(null);P(()=>{L(t.current)},[]),tn(t=>{if(t===`back`)return e.onClose(),!0});let n=e.actions;return M(`div`,{class:`control-bar`,ref:t,"data-focus-scope":!0,children:[[`list`,R(`pc_channels`),n.channels],[`guide`,R(`player_guide`),n.guide],[`audio`,R(`player_audio`),n.audio],[`subtitles`,R(`player_subtitles`),n.subs,e.subsOn],[`aspect`,R(`pc_picture`),n.picture],[e.favorite?`star`:`starOutline`,R(`pc_favorite`),n.favorite,e.favorite],[`more`,R(`pc_more`),n.more],[`back`,R(`back`),n.back]].map(([e,t,n,r],i)=>M(`div`,{class:`cb-item`,children:[M(`button`,{class:`cb-btn${r?` active`:``}`,"data-focus":!0,"data-focus-default":i===0||void 0,onClick:n,children:M(z,{name:e})}),M(`span`,{class:`cb-label`,children:t})]},t))})}function Wp(e){let[t,n]=N(e.current),r=F(null);return P(()=>{setTimeout(()=>{let t=r.current&&r.current.querySelector(`[data-idx="${e.current}"]`);t&&t.focus()},0)},[]),M(`div`,{class:`list-overlay`,"data-focus-scope":!0,children:[M(`h2`,{children:e.title}),M(Ed,{listRef:r,group:`player-list`,compact:!0,current:e.current,pager:e.pager,count:e.count,index:t,setIndex:n,numberOf:e.numberOf,focused:!0,onOpen:e.onPick,onMenu:()=>{}})]})}function Gp(e){let[t,n]=N(wp(Date.now()));return M(`div`,{class:`guide-overlay`,"data-focus-scope":!0,children:M(Ep,{pager:e.pager,count:e.count,initialRow:e.current,rowRem:5.2,translucent:!0,winStart:t,setWinStart:n,numberOf:e.numberOf,onChannel:(t,n)=>e.onPlay(n),onProgram:async(t,n,r)=>{let i=Date.now();t.start>i?B(R(await id(t,n)?`guide_reminder_set`:`guide_reminder_removed`)):t.stop<=i&&ap(n,t.start,i)?e.onArchive(t,r):e.onPlay(r)}})})}function Kp(e){let t=F(null),n=ff.value,r=pf.value,i=e=>{ff.value=e},a=e=>{pf.value=e};P(()=>{L(t.current)},[e.page]),tn(t=>{if(t===`back`)return e.page!==`main`&&!e.direct?e.setPage(`main`):e.close(),!0});let o=()=>e.direct?e.close():e.setPage(`main`),s=If(),c=Lf(),l=(e,t,n)=>{let r=e.find(e=>e.index===t);return r?r.label:n},u=R(`player_options`),d=[];if(e.page===`main`){d=[{label:R(`player_audio`),value:s.length?l(s,n,R(`player_auto`)):R(`player_no_tracks`),onSelect:()=>e.setPage(`audio`)},{label:R(`player_subtitles`),value:mp.value?mp.value.label:l(c,r,R(`player_off`)),onSelect:()=>e.setPage(`subs`)},{label:R(`player_aspect`),value:R(`aspect_${lf.value}`),onSelect:()=>e.setPage(`aspect`)}];let t=e.vod;if(t&&d.push({label:R(`player_speed`),value:Pp(t.speed),onSelect:()=>e.setPage(`speed`)}),d.push({label:R(`player_sleep`),value:e.sleepMin?R(`sleep_set`,e.sleepMin):R(`sleep_off`),onSelect:()=>e.setPage(`sleep`)}),t&&t.prev&&d.push({label:R(`vod_prev_ep`),value:t.prev.title,onSelect:()=>{e.close(),t.prev.go()}}),t&&t.next&&d.push({label:R(`vod_next_ep`),value:t.next.title,onSelect:()=>{e.close(),t.next.go()}}),e.onGuide){let t=e.onGuide;d.push({label:R(`player_guide`),onSelect:t}),d.push({label:R(e.favorite?`menu_remove_favorite`:`menu_add_favorite`),onSelect:()=>{e.onFavorite(),e.close()}})}e.onGoLive&&d.unshift({label:R(`player_go_live`),onSelect:e.onGoLive}),d.push({label:R(`player_info`),onSelect:()=>e.setPage(`info`)})}else if(e.page===`audio`)u=R(`player_audio`),d=[{label:R(`player_auto`),checked:n===null,onSelect:()=>{i(null),o()}}].concat(s.map((e,t)=>({label:e.label||R(`track_n`,t+1),checked:n===e.index,onSelect:()=>{Rf(e.index),i(e.index),xf(`audio`,e),o()}})));else if(e.page===`subs`){u=R(`player_subtitles`);let t=mp.value;d=[{label:R(`player_off`),checked:r===null&&!t,onSelect:()=>{zf(null),a(null),gp(),xf(`text`,null),o()}}],t&&d.push({label:t.label,checked:!0,onSelect:o}),d=d.concat(c.map((e,n)=>({label:e.label||R(`track_n`,n+1),checked:!t&&r===e.index,onSelect:()=>{gp(),zf(e.index),a(e.index),xf(`text`,e),o()}})));let n=e.vod;n&&(d.push({label:R(`sub_find`),onSelect:()=>{e.close(),n.findSubs()}}),d.push({label:R(`sub_load`),onSelect:()=>{e.close(),n.loadSubs()}}),t&&d.push({label:R(`sub_offset`),value:Np(hp.value),onSelect:()=>e.setPage(`offset`)}))}else if(e.page===`offset`)u=R(`sub_offset`),d=Mp.map(e=>({label:Np(e*1e3),checked:hp.value===e*1e3,onSelect:()=>{hp.value=e*1e3,o()}}));else if(e.page===`aspect`)u=R(`player_aspect`),d=kp.map(e=>({label:R(`aspect_${e}`),checked:lf.value===e,onSelect:()=>{lf.value=e,o()}}));else if(e.page===`speed`&&e.vod){let t=e.vod;u=R(`player_speed`),d=jp.map(e=>({label:Pp(e),checked:t.speed===e,onSelect:()=>{t.setSpeed(e),o()}}))}else if(e.page===`sleep`)u=R(`player_sleep`),d=Ap.map(t=>({label:t?R(`sleep_minutes`,t):R(`sleep_off`),checked:e.sleepMin===t,onSelect:()=>{e.onSleep(t),o()}}));else{u=R(`player_info`);let t=Bf();d=[{label:R(`info_video`,t?`${t}p`:R(`info_none`)),onSelect:()=>{}},{label:R(`info_audio`,s.length?s.map(e=>e.label).join(`, `):R(`info_none`)),onSelect:()=>{}},{label:R(`back`),onSelect:()=>e.setPage(`main`)}]}let f=d.some(e=>e.checked);return M(`div`,{class:`options-panel`,ref:t,"data-focus-scope":!0,children:[M(`h2`,{children:u}),d.map((t,n)=>M(`button`,{class:`opt-row focus-row${t.checked?` selected`:``}`,"data-focus":!0,"data-focus-default":(f?t.checked:n===0)||void 0,onClick:t.onSelect,children:[M(`span`,{class:`opt-text`,children:[M(`span`,{class:`opt-label`,children:t.label}),t.value&&M(`span`,{class:`opt-value`,children:t.value})]}),t.checked?M(z,{name:`check`}):e.page===`main`&&t.value!==void 0?M(z,{name:`chevron`}):null]},`${e.page}-${n}`))]})}function qp(){let e=uf.value;if(e===`full`)return null;if(!e)return M(`div`,{class:`backdrop`,style:{left:0,top:0,right:0,bottom:0}});let t=window.innerWidth,n=window.innerHeight,r=(e,t,n,r)=>M(`div`,{class:`backdrop`,style:{left:`${e}px`,top:`${t}px`,width:`${n}px`,height:`${r}px`,backgroundPosition:`${-e}px ${-t}px`}});return M(x,{children:[r(0,0,t,e.y),r(0,e.y+e.h,t,n-e.y-e.h),r(0,e.y,e.x,e.h),r(e.x+e.w,e.y,t-e.x-e.w,e.h)]})}var Jp=1.8,Yp=1.2,Xp={movie:{w:11.6,ratio:1.5},series:{w:20,ratio:.5625}},Zp=[[`added`,`sort_added`],[`name`,`sort_name`],[`rating`,`sort_rating`],[`year`,`sort_year`]];function Qp(e){var t;let n=Gc.value,r=((t=(Wc.value||[]).find(e=>e.id===n))==null?void 0:t.lastSync)||0,[i,a]=N(e.sort||`added`),[o,s]=N(e.filter.genre||null),[c,l]=N(null),[u,d]=N([]),[f,p]=N(0),[m,h]=N(6),[g,_]=N(Xp[e.kind].w),[v,y]=N(null),b=Xp[e.kind],x=g*b.ratio+Jp,[S,ee]=N(null),C=F(null),w=F(null);P(()=>{Mu(n,e.kind,r).then(d)},[n,e.kind]),P(()=>{let t=!0;return Pu(n,e.kind,{categoryIds:e.filter.categoryIds,genre:o||void 0,favorites:e.filter.favorites},i).then(e=>{t&&(l(e),p(0))}),()=>{t=!1}},[n,i,o,e.kind,JSON.stringify(e.filter)]),P(()=>{c&&c.length&&setTimeout(()=>L(C.current),0)},[c===null]),P(()=>{let e=C.current;if(!e)return;let t=Od(),n=e.clientWidth/t-2*Yp,r=Math.max(1,Math.round(n/(b.w+Jp)));h(r),_(Math.floor((n/r-Jp)*100)/100);let i=e=>{let t=e.target,n=t.closest(`[data-idx]`);n&&p(Number(n.getAttribute(`data-idx`)));let r=t.getAttribute(`data-info-title`);y(r?{title:r,meta:t.getAttribute(`data-info-meta`)||``}:null)};return e.addEventListener(`focusin`,i),()=>e.removeEventListener(`focusin`,i)},[c===null,e.kind]),tn(e=>{if(e===`back`)return bd(),!0});let T=e.filter.platformKey?oc.find(t=>t.key===e.filter.platformKey):lc(e.title),E=R(`genre_label`,o||R(`browse_all`));return M(`div`,{class:`browse`,ref:w,children:[M(em,{kind:e.kind,title:e.title,filter:e.filter,platform:T||null,genreCount:(e.filter.genre||e.filter.favorites)&&c?c.length:null,children:M(`div`,{class:`row bb-sorts`,children:[Zp.map(([e,t])=>M(`button`,{class:`chip${i===e?` selected`:``}`,"data-focus":!0,onClick:()=>a(e),children:R(t)},e)),u.length>0&&M(`button`,{class:`btn outline bb-genre`,"data-focus":!0,onClick:()=>ee({title:E,items:[null,...u].map(e=>({label:e||R(`browse_all`),checked:e===o,onSelect:()=>s(e)}))}),children:E})]})}),e.kind===`movie`&&M(`p`,{class:`shelf-info browse-info`,children:[v&&M(`b`,{children:v.title}),v&&v.meta&&M(`span`,{children:` ${v.meta}`})]}),M(`div`,{class:`browse-grid ${e.kind}`,ref:C,"data-focus-group":`browse`,style:{"--cw":`${g}rem`},children:c&&(()=>{let t=Math.ceil(c.length/m),n=Math.floor(f/m),r=Math.max(0,n-4),i=Math.min(t,n+7),a=[M(`span`,{class:`grid-spacer`,style:{height:`${r*x}rem`}},`top`)];for(let t=r*m;t<Math.min(c.length,i*m);t++){let n=wu(c[t]);a.push(M(`span`,{"data-idx":t,class:`grid-cell`,children:M(Fd,{kind:e.kind,card:n,onClick:()=>Wd(e.kind,n)})},n.key))}return a.push(M(`span`,{class:`grid-spacer`,style:{height:`${(t-i)*x}rem`}},`bottom`)),a})()}),S&&M(kn,{title:S.title,items:S.items,onClose:()=>ee(null)})]})}var $p=e=>{let t=parseInt(e.slice(1),16);return`${t>>16}, ${t>>8&255}, ${t&255}`};function em(e){let t=Gc.value,{platform:n,filter:r}=e,[i,a]=N(null);P(()=>{let n=!0;return(async()=>{let i={movie:[],series:[]};if(r.platformKey)for(let e of[`movie`,`series`])i[e]=(await Tu(t,e)).filter(e=>!e.adult&&(lc(e.name)||{key:``}).key===r.platformKey).map(e=>e.id);else r.categoryIds&&(i[e.kind]=r.categoryIds);let o=async n=>r.platformKey||r.categoryIds?i[n].length?Cu(n).where(`categoryId`).anyOf(i[n]).count():0:n===e.kind&&r.all?Cu(n).where(`providerId`).equals(t).count():0,[s,c]=await Promise.all([o(`movie`),o(`series`)]);n&&a({movie:s,series:c,ids:i})})(),()=>{n=!1}},[t,e.kind,JSON.stringify(r)]);let o=!!n&&!!r.platformKey&&!!i&&i.movie>0&&i.series>0,s=t=>i?t===e.kind&&e.genreCount!==null?e.genreCount:i[t]:0,c=i&&!o?[`movie`,`series`].filter(e=>s(e)>0).map(e=>R(e===`movie`?`browse_movie_count`:`browse_series_count`,s(e))).join(` · `):``,l=n?$p(n.color):`var(--accent-rgb)`,u=t=>{t!==e.kind&&i&&xd({name:`browse`,kind:t,title:e.title,filter:{categoryIds:i.ids[t],platformKey:r.platformKey}})};return M(`div`,{class:`browse-bar`,style:{background:`linear-gradient(90deg, rgba(${l}, 0.55), rgba(${l}, 0.12) 45%, rgba(255, 255, 255, 0.04))`},children:[M(`div`,{class:`bb-id`,children:[n?M(`span`,{class:`browse-logo`,children:M(Id,{p:n})}):M(`h1`,{class:`bb-title`,children:e.title}),c&&M(`span`,{class:`bb-count`,children:c})]}),o&&M(`div`,{class:`bb-tabs`,"data-focus-group":`browse-tabs`,children:[`movie`,`series`].map(t=>M(`button`,{class:`bb-tab${t===e.kind?` selected`:``}`,"data-focus":!0,"data-focus-default":t===e.kind||void 0,onClick:()=>u(t),children:[R(t===`movie`?`nav_movies`:`nav_series`),M(`span`,{class:`bb-tab-count`,children:` ${i[t]}`})]},t))}),M(`span`,{class:`spacer`}),e.children]})}var tm=e=>{let t=Math.floor(e/1e3),n=Math.floor(t/3600),r=Math.floor(t%3600/60);return n?`${n}:${Au(r)}:${Au(t%60)}`:`${Au(r)}:${Au(t%60)}`},nm=e=>!!e&&!e.watched&&e.position>1e4;function rm({src:e}){return M(`div`,{class:`detail-backdrop`,children:[e&&M(`img`,{src:e,alt:``,decoding:`async`}),M(`span`,{class:`db-h`}),M(`span`,{class:`db-v`})]})}function im({chips:e}){return M(`div`,{class:`meta-chips`,children:e.filter(Boolean).map(e=>M(`span`,{class:`meta-chip${e.startsWith(`★`)?` gold`:``}`,children:e},e))})}function am(e,t){let[n,r]=N([]);return P(()=>{e&&Fu(e,t).then(r)},[e&&e.id]),n}function om(e,t,n){return{title:R(`vod_versions`,e.length),items:e.map(e=>({label:Xs(e.name)||R(`vod_version_standard`),checked:e.id===t.id,onSelect:()=>{e.id!==t.id&&xd(n===`movie`?{name:`movie`,id:e.id}:{name:`series`,id:e.id})}}))}}function sm(){tn(e=>{if(e===`back`)return bd(),!0})}function cm({id:e}){let[t,n]=N(null),[r,i]=N(),[a,o]=N(!1),[s,c]=N([]),[l,u]=N(null),d=F(null),f=am(t,`movie`);sm();let p=async()=>{i(await bu(e)),o(!!await K.favorites.get(e))};if(P(()=>{let t=!0;K.movies.get(e).then(async r=>{if(!r||!t)return;n(r);let i=await mu(r);if(!t||(n(i),r.categoryId===null))return;let a=(await Du(r.categoryId,21)).filter(t=>t.id!==e).slice(0,20);t&&c(a)}),p();let r=()=>p();return window.addEventListener(`utopya:progress`,r),()=>{t=!1,window.removeEventListener(`utopya:progress`,r)}},[e]),P(()=>{t&&setTimeout(()=>L(d.current),0)},[!!t]),!t)return null;let m=nm(r),h=!!r&&r.watched,g=e=>yd({name:`vod`,kind:`movie`,id:t.id,startMs:e}),_=[[m?R(`vod_resume`,tm(r.position)):R(`vod_play`),()=>g(m?r.position:0)]];return m&&_.push([R(`vod_restart`),()=>g(0)]),f.length>1&&_.push([R(`vod_versions`,f.length),()=>u(om(f,t,`movie`))]),_.push([R(a?`vod_remove_favorite`:`vod_add_favorite`),async()=>{await nu(t.providerId,`movie`,t.id),p()}]),_.push([R(h?`vod_mark_unwatched`:`vod_mark_watched`),async()=>{await yu(`movie`,t.id,t.providerId,null,!h),p()}]),M(`div`,{class:`detail`,children:[M(rm,{src:t.backdrop||t.poster}),M(`div`,{class:`detail-scroll`,children:[M(`button`,{class:`btn outline back-btn`,"data-focus":!0,onClick:bd,children:[M(z,{name:`back`}),R(`back`)]}),M(`div`,{class:`detail-row`,children:[M(`div`,{class:`detail-poster`,children:t.poster&&M(`img`,{src:t.poster,alt:``})}),M(`div`,{class:`detail-info`,children:[M(`h1`,{children:t.name}),M(im,{chips:[t.year,t.durationSec?R(`vod_minutes`,Math.ceil(t.durationSec/60)):null,kd(t.rating),t.genre]}),t.plot&&M(`p`,{class:`detail-plot`,children:t.plot}),t.director&&M(`p`,{class:`detail-credit`,children:R(`vod_director`,t.director)}),t.cast&&M(`p`,{class:`detail-credit`,children:R(`vod_cast`,t.cast)}),M(`div`,{class:`detail-actions`,ref:d,children:_.map(([e,t],n)=>M(`button`,{class:`btn ${n===0?`primary`:`outline`}`,"data-focus":!0,"data-focus-default":n===0||void 0,onClick:t,children:e},e))})]})]}),s.length>0&&M(Vd,{title:R(`shelf_similar`),info:!0,children:s.map(e=>{let t=wu(e);return M(Nd,{card:t,onClick:()=>xd({name:`movie`,id:t.id})},t.key)})})]}),l&&M(kn,{title:l.title,items:l.items,onClose:()=>u(null)})]})}function lm(e,t){if(!e.length)return null;let n=e.filter(e=>nm(t.get(e.id))).sort((e,n)=>t.get(n.id).updated-t.get(e.id).updated)[0];if(n)return{ep:n,pos:t.get(n.id).position};let r=-1;return e.forEach((e,n)=>{let i=t.get(e.id);i&&i.watched&&(r=n)}),{ep:e[Math.min(r+1,e.length-1)],pos:0}}function um({id:e,season:t}){let[n,r]=N(null),[i,a]=N(null),[o,s]=N(new Map),[c,l]=N(!1),[u,d]=N(t||null),[f,p]=N(null),m=F(null),h=am(n,`series`);sm();let g=async(t=i)=>{t&&s(await xu(t.map(e=>e.id))),l(!!await K.favorites.get(e))};if(P(()=>{let t=!0;K.series.get(e).then(async e=>{if(!e||!t)return;r(e);let n=await hu(e);t&&(r(n.series),a(n.episodes),n.episodes.length&&u===null&&d(Math.min(...n.episodes.map(e=>e.season))),g(n.episodes))});let n=()=>g();return window.addEventListener(`utopya:progress`,n),()=>{t=!1,window.removeEventListener(`utopya:progress`,n)}},[e]),P(()=>{n&&setTimeout(()=>L(m.current),0)},[!!n]),!n)return null;let _=i?lm(i,o):null,v=i?[...new Set(i.map(e=>e.season))].sort((e,t)=>e-t):[],y=(e,t)=>yd({name:`vod`,kind:`episode`,id:e.id,seriesId:n.id,startMs:t}),b=e=>`S${Au(e.season)}E${Au(e.episode)}`,x=[];_&&x.push([_.pos?R(`vod_resume`,`${b(_.ep)} · ${tm(_.pos)}`):`${R(`vod_play`)} ${b(_.ep)}`,()=>y(_.ep,_.pos)]),h.length>1&&x.push([R(`vod_versions`,h.length),()=>p(om(h,n,`series`))]),x.push([R(c?`vod_remove_favorite`:`vod_add_favorite`),async()=>{await nu(n.providerId,`series`,n.id),g()}]);let S=e=>{let t=o.get(e.id),r=!!t&&t.watched;p({title:e.title,items:[{label:R(r?`vod_mark_unwatched`:`vod_mark_watched`),onSelect:async()=>{await yu(`episode`,e.id,n.providerId,n.id,!r),g()}}]})};return M(`div`,{class:`detail`,children:[M(rm,{src:n.backdrop||n.poster}),M(`div`,{class:`detail-scroll series`,children:[M(`button`,{class:`btn outline back-btn`,"data-focus":!0,onClick:bd,children:[M(z,{name:`back`}),R(`back`)]}),M(`div`,{class:`detail-row`,children:[M(`div`,{class:`detail-poster`,children:n.poster&&M(`img`,{src:n.poster,alt:``})}),M(`div`,{class:`detail-info`,children:[M(`h1`,{children:n.name}),M(im,{chips:[n.year,kd(n.rating),n.genre]}),n.plot&&M(`p`,{class:`detail-plot`,children:n.plot}),n.cast&&M(`p`,{class:`detail-credit`,children:R(`vod_cast`,n.cast)}),M(`div`,{class:`detail-actions`,ref:m,children:x.map(([e,t],n)=>M(`button`,{class:`btn ${n===0?`primary`:`outline`}`,"data-focus":!0,"data-focus-default":n===0||void 0,onClick:t,children:e},e))})]})]}),v.length>1?M(`div`,{class:`season-chips`,children:v.map(e=>M(`button`,{class:`chip${e===u?` selected`:``}`,"data-focus":!0,onClick:()=>d(e),children:R(`vod_season`,e)},e))}):M(`div`,{class:`season-gap`}),i===null&&M(`p`,{class:`muted`,children:R(`vod_episodes_loading`)}),i&&!i.length&&M(`p`,{class:`muted`,children:R(`vod_no_episodes`)}),M(`div`,{class:`episode-list`,"data-focus-group":`episodes`,children:i&&i.filter(e=>e.season===u).map(e=>M(dm,{e,poster:n.poster,p:o.get(e.id),onClick:()=>{let t=o.get(e.id);y(e,t&&!t.watched?t.position:0)},onLongPress:()=>S(e)},e.id))})]}),f&&M(kn,{title:f.title,items:f.items,onClose:()=>p(null)})]})}function dm(e){let{e:t,p:n}=e,r=n&&!n.watched&&n.duration?n.position/n.duration:0;return M(`button`,{onlongpress:e.onLongPress,class:`episode-row focus-row`,"data-focus":!0,onClick:e.onClick,children:[M(`span`,{class:`ep-thumb`,children:[(t.poster||e.poster)&&M(Sn,{src:t.poster||e.poster}),r>0&&r<.95&&M(`span`,{class:`poster-progress`,children:M(`span`,{style:{width:`${Math.round(r*100)}%`}})})]}),M(`span`,{class:`ep-text`,children:[M(`span`,{class:`ep-title`,children:R(`vod_episode_title`,t.episode,t.title)}),t.plot&&M(`span`,{class:`ep-plot`,children:t.plot})]}),t.durationSec?M(`span`,{class:`ep-min`,children:R(`vod_minutes`,Math.round(t.durationSec/60))}):null,n&&n.watched&&M(z,{name:`check`,class:`ep-watched`})]})}var fm=`keys`,pm=null;function mm(){return new Promise((e,t)=>{let n=indexedDB.open(`utopya-keys`,1);n.onupgradeneeded=()=>n.result.createObjectStore(fm),n.onsuccess=()=>e(n.result),n.onerror=()=>t(n.error)})}function hm(e){return new Promise((t,n)=>{e.onsuccess=()=>t(e.result),e.onerror=()=>n(e.error)})}function gm(){return pm||(pm=(async()=>{let e=window.crypto&&window.crypto.subtle;if(!e)return null;try{let t=await mm(),n=await hm(t.transaction(fm).objectStore(fm).get(`main`));if(n)return n;let r=await e.generateKey({name:`AES-GCM`,length:256},!1,[`encrypt`,`decrypt`]);return await hm(t.transaction(fm,`readwrite`).objectStore(fm).put(r,`main`)),r}catch(e){return console.warn(`şifreleme anahtarı yok`,e),null}})()),pm}var _m=e=>btoa(String.fromCharCode.apply(null,Array.prototype.slice.call(new Uint8Array(e)))),vm=e=>Uint8Array.from(atob(e),e=>e.charCodeAt(0));async function ym(e){let t=await gm();if(!t)return`p:${e}`;let n=crypto.getRandomValues(new Uint8Array(12)),r=await crypto.subtle.encrypt({name:`AES-GCM`,iv:n},t,new TextEncoder().encode(e));return`v1:${_m(n)}:${_m(r)}`}async function bm(e){if(e.startsWith(`p:`))return e.slice(2);let t=/^v1:([^:]+):(.+)$/.exec(e),n=await gm();if(!t||!n)return null;try{let e=await crypto.subtle.decrypt({name:`AES-GCM`,iv:vm(t[1])},n,vm(t[2]));return new TextDecoder().decode(e)}catch(e){return null}}var xm=`https://api.opensubtitles.com/api/v1`,Sm=`UtopyaTV v1.0`,Cm=`utopya.opensubtitles`;async function wm(){try{let e=localStorage.getItem(Cm),t=e&&await bm(e);return t?JSON.parse(t):null}catch(e){return null}}var Tm=null;async function Em(e){Tm=null;try{e&&(e.key||e.user||e.pass)?localStorage.setItem(Cm,await ym(JSON.stringify(e))):localStorage.removeItem(Cm)}catch(e){}}var Dm=class extends Error{};async function Om(e,t,n,r){let i=n?`?`+Object.keys(n).sort().map(e=>`${e.toLowerCase()}=${encodeURIComponent(String(n[e]).toLowerCase())}`).join(`&`):``,a={"Api-Key":e.key,Accept:`application/json`,"X-User-Agent":Sm};Tm&&(a.Authorization=`Bearer ${Tm}`),r&&(a[`Content-Type`]=`application/json`);let o=await fetch(Cr(xm+t+i),{method:r?`POST`:`GET`,headers:a,body:r?JSON.stringify(r):void 0,credentials:`omit`});if(o.status===406||o.status===429)throw new Dm;if(!o.ok)throw Error(`OpenSubtitles ${o.status}`);return o.json()}var km=65536;function Am(e,t,n){let r=e>>>0,i=Math.floor(e/4294967296)>>>0;for(let e of[t,n]){let t=new DataView(e.buffer,e.byteOffset,e.byteLength);for(let n=0;n+8<=e.byteLength;n+=8){let e=r+t.getUint32(n,!0);r=e>>>0,i=i+t.getUint32(n+4,!0)+ +(e>4294967295)>>>0}}let a=e=>(`00000000`+e.toString(16)).slice(-8);return a(i)+a(r)}async function jm(e,t,n){let r=await fetch(Cr(e),{headers:{Range:`bytes=${t}-${n}`},credentials:`omit`});if(r.status!==206)return null;let i=parseInt((r.headers.get(`content-range`)||``).split(`/`)[1],10);return{bytes:new Uint8Array(await r.arrayBuffer()),total:i}}async function Mm(e){try{let t=await jm(e,0,65535);if(!t||!(t.total>=2*km))return null;let n=await jm(e,t.total-km,t.total-1);return n?Am(t.total,t.bytes,n.bytes):null}catch(e){return null}}function Nm(e,t,n){let r=e.filter(e=>e.attributes.files&&e.attributes.files.length),i=e=>{let n=e.attributes.feature_details||{};return t.season===void 0||n.season_number===t.season&&n.episode_number===t.episode},a=e=>{let n=e.attributes.feature_details||{};return t.season===void 0||n.season_number===void 0||n.season_number===t.season},o=Qs(t.title).map(Gs),s=t.year?parseInt(t.year,10):NaN,c=e=>{let n=e.attributes.feature_details||{},r=Gs((t.season===void 0?n.title:n.parent_title)||``);return!r||o.indexOf(r)<0?!1:isNaN(s)||!n.year||Math.abs(n.year-s)<=1},l=e=>e.sort((e,t)=>(t.attributes.download_count||0)-(e.attributes.download_count||0))[0]||null;return l(r.filter(e=>String(e.attributes.moviehash_match)===`true`&&a(e)))||(n?l(r.filter(i)):null)||l(r.filter(e=>i(e)&&c(e)))}async function Pm(e,t){let n=await wm();if(!n||!n.key)return{kind:`no_key`};try{let r=await Mm(e.url),i={languages:t};r&&(i.moviehash=r),e.season===void 0?i.type=`movie`:(i.type=`episode`,i.season_number=e.season,i.episode_number=e.episode);let a=async e=>(await Om(n,`/subtitles`,V(V({},i),e))).data||[],o=null;e.tmdbId&&+e.tmdbId>0&&(o=Nm(await a(e.season===void 0?{tmdb_id:e.tmdbId}:{parent_tmdb_id:e.tmdbId}),e,!0));for(let t of Qs(e.title).reverse()){if(o)break;let n={query:t.toLowerCase()};e.season===void 0&&e.year&&(n.year=e.year.slice(0,4)),o=Nm(await a(n),e,!1)}if(!o)return{kind:`not_found`};if(n.user&&!Tm)try{Tm=(await Om(n,`/login`,null,{username:n.user,password:n.pass})).token||null}catch(e){}let s=await Om(n,`/download`,null,{file_id:o.attributes.files[0].file_id});if(!s.link)return{kind:`not_found`};let c=await fetch(Cr(s.link),{credentials:`omit`});if(!c.ok)return{kind:`failed`};let l=pp(await c.arrayBuffer());return l.trim()?{kind:`found`,name:o.attributes.release||`OpenSubtitles`,text:l}:{kind:`failed`}}catch(e){return e instanceof Dm?{kind:`limit`}:(console.warn(`OpenSubtitles`,e),{kind:`failed`})}}var Fm=4e3,Im=650,Lm=[`fit`,`fill`,`zoom`],Rm=e=>e<10?`0${e}`:`${e}`,zm=()=>{let e=new Date;return`${Rm(e.getHours())}:${Rm(e.getMinutes())}`},Bm=e=>`S${Au(e.season)}E${Au(e.episode)}`;function Vm(e){let[t,n]=N(null),[r,i]=N([]),[a,o]=N(null),[s,c]=N(!0),[l,u]=N(null),[d,f]=N(null),[p,m]=N(!1),[h,g]=N(1),[_,v]=N(0),[,y]=N(0),b=F(void 0),S=F(void 0),ee=F(0),C=F(!1),w=F(!1),[T,E]=N(!1),D=r.findIndex(t=>t.id===e.id),O=D>0?r[D-1]:null,k=D>=0&&D<r.length-1?r[D+1]:null,te=F({props:e,info:t});te.current={props:e,info:t};let A=(e=!1)=>{var t;let{props:n,info:r}=te.current,i=Vf();if(!r||i<=0)return;let a=C.current?i:df.peek();n.kind!==`stream`&&(vu(n.kind,n.id,r.providerId,(t=n.seriesId)==null?null:t,a,i),e&&window.dispatchEvent(new Event(`utopya:progress`)))},j=()=>{c(!0),clearTimeout(b.current),b.current=window.setTimeout(()=>c(!1),Fm)};P(()=>{let t=!0;return C.current=!1,w.current=!1,clearTimeout(S.current),u(null),g(1),gp(),m(!1),f(null),(async()=>{let r;if(e.kind===`stream`)r={title:e.title||``,sub:``,url:e.url,userAgent:null,providerId:-1,target:{title:e.title||``,year:null,url:e.url,tmdbId:null}};else if(e.kind===`movie`){let t=await K.movies.get(e.id);if(!t)return;r={title:t.name,sub:t.year||``,url:t.url,userAgent:null,providerId:t.providerId,target:{title:t.name,year:t.year,url:t.url,tmdbId:t.tmdbId||null}}}else{let[n,a]=await Promise.all([K.episodes.get(e.id),K.series.get(e.seriesId)]);if(!n||!a)return;r={title:a.name,sub:`${Bm(n)} · ${n.title}`,url:n.url,userAgent:null,providerId:a.providerId,target:{title:a.name,year:a.year,season:n.season,episode:n.episode,url:n.url,tmdbId:a.tmdbId||null}},t&&i(gu(await K.episodes.where(`seriesId`).equals(a.id).toArray()))}let a=(Wc.value||[]).find(e=>e.id===r.providerId);if(r.userAgent=a?a.userAgent:null,!t)return;n(r);let o=e.startMs;if(o===void 0){let t=await bu(e.id);o=t&&!t.watched?t.position:0}uf.value=`full`,jf({url:r.url,userAgent:r.userAgent,key:e.kind===`stream`?`stream:${r.url}`:`vod:${e.id}`},{startMs:o||void 0,onEnded:()=>{C.current=!0,A(!0),j()},onStarted:()=>ae(r.target)}),j()})(),()=>{t=!1}},[e.id]),P(()=>{let e=setInterval(()=>{X.peek()===`playing`&&A()},1e4),t=setInterval(()=>y(e=>e+1),1e3);return()=>{clearInterval(e),clearInterval(t)}},[t]),P(()=>()=>{A(!0),Nf(),gp(),uf.value=null,clearTimeout(b.current)},[]);let ne=()=>q.peek().preferredSubtitle||`tr`,re=(e,t)=>{let n=dp(t);return n.length?(zf(null),hp.value=0,mp.value={label:e,cues:n},!0):!1},ie=async(e,t)=>{t||B(R(`sub_searching`));let n=te.current.props.id,r=await Pm(e,ne());if(te.current.props.id===n){if(r.kind===`found`)re(r.name,r.text)?B(R(`sub_found`,r.name)):t||B(R(`sub_failed`));else if(t)return;else r.kind===`not_found`?B(R(`sub_not_found`)):r.kind===`no_key`?B(R(`sub_no_key`)):r.kind===`limit`?B(R(`sub_limit`)):B(R(`error_network`))}},ae=e=>{if(w.current||!q.peek().autoSubtitles)return;w.current=!0;let t=te.current.props.id;setTimeout(()=>{if(te.current.props.id!==t||mp.peek())return;let n=ne();Lf().some(e=>e.language.toLowerCase().startsWith(n))||ie(e,!0)},4e3)},oe=async e=>{try{let t=await fetch(Cr(wr(e)),{credentials:`omit`});if(t.ok&&re(`SRT`,pp(await t.arrayBuffer()))){B(R(`sub_loaded`));return}}catch(e){}B(R(`sub_failed`))},se=Vf(),ce=se-df.peek();P(()=>{if(!k||p||d!==null||!q.peek().autoNextEpisode)return;let t=af.peek();t&&t.key===`vod:${e.id}`&&X.peek()!==`loading`&&(C.current||se>6e4&&ce>0&&ce<=15e3)&&f(10)}),P(()=>{if(d===null)return;if(d<=0){le(k);return}let e=setTimeout(()=>f(e=>e===null?null:e-1),1e3);return()=>clearTimeout(e)},[d]),P(()=>{if(!_)return;let e=setTimeout(()=>{X.peek()!==`paused`&&Pf(),v(0),B(R(`sleep_triggered`))},_*6e4);return()=>clearTimeout(e)},[_]);let le=t=>{A(),bu(t.id).then(n=>xd({name:`vod`,kind:`episode`,id:t.id,seriesId:e.seriesId,startMs:n&&!n.watched?n.position:0}))},ue=()=>{A(),bd()},de=e=>{let t=l===null?df.peek():l,n=Math.max(0,Math.min(se||1/0,t+e));u(n),j(),clearTimeout(S.current),S.current=window.setTimeout(()=>{Ff(n),u(null)},Im)};if(P(()=>{let e=()=>{a||o({page:`main`,direct:!1})};return document.addEventListener(`longpress`,e),()=>document.removeEventListener(`longpress`,e)},[a]),tn((e,t)=>{if(X.peek()===`error`)return e===`back`?(ue(),!0):`default`;if(e===`back`)return a?o(null):d===null?s&&X.peek()===`playing`?(clearTimeout(b.current),c(!1)):ue():(f(null),m(!0)),!0;if(a||d!==null)return;ee.current=t.repeat?ee.current+1:0;let n=ee.current>6?6e4:ee.current>2?3e4:1e4;switch(e){case`ok`:return Pf(),j(),!0;case`left`:return de(-n),!0;case`right`:return de(n),!0;case`rew`:return de(-3e4),!0;case`ff`:return de(3e4),!0;case`playPause`:case`play`:case`pause`:return Pf(),j(),!0;case`up`:case`info`:return o(`controls`),c(!0),clearTimeout(b.current),!0;case`down`:return r.length?o(`episodes`):j(),!0;case`menu`:return o({page:`main`,direct:!1}),!0;case`green`:return o({page:`audio`,direct:!0}),!0;case`yellow`:return o({page:`subs`,direct:!0}),!0;case`chUp`:return k&&le(k),!0;case`chDown`:return O&&le(O),!0}}),!t)return null;let fe=X.value,pe=s||fe===`paused`||l!==null||a===`controls`;return M(`div`,{class:`player vod-player`,children:[M(yp,{}),fe===`loading`&&M(`div`,{class:`player-center`,children:[M(`div`,{class:`spinner`}),cf.value>0&&M(`span`,{class:`retry-label`,children:R(`player_retrying`,cf.value)})]}),fe===`error`&&M(op,{onRetry:Mf,onBack:ue}),pe&&M(x,{children:[M(`div`,{class:`vod-top`,children:[M(`div`,{children:[M(`h1`,{children:t.title}),t.sub&&M(`p`,{children:t.sub})]}),M(`span`,{class:`band-clock`,children:zm()})]}),M(`div`,{class:`vod-bottom`,children:[M(Gm,{paused:fe===`paused`,target:l,d:se}),a===`controls`?M(Hm,{paused:fe===`paused`,series:r.length>0,prev:!!O,next:!!k,close:()=>{o(null),j()},on:{play:()=>Pf(),back10:()=>de(-1e4),fwd10:()=>de(1e4),prev:()=>O&&le(O),next:()=>k&&le(k),episodes:()=>o(`episodes`),audio:()=>o({page:`audio`,direct:!0}),subs:()=>o({page:`subs`,direct:!0}),speed:()=>o({page:`speed`,direct:!0}),picture:()=>{let e=Lm[(Lm.indexOf(lf.value)+1)%3];lf.value=e,B(R(`aspect_${e}`))},more:()=>o({page:`main`,direct:!1}),exit:ue}}):M(`p`,{class:`band-hint`,children:R(`vod_hint`)})]})]}),a===`episodes`&&M(Um,{eps:r,current:e.id,onPick:t=>{o(null),t.id!==e.id&&le(t)}}),a&&typeof a==`object`&&M(Kp,{page:a.page,direct:a.direct,favorite:!1,sleepMin:_,setPage:e=>o({page:e,direct:!1}),close:()=>o(null),onFavorite:()=>{},onSleep:e=>{v(e),e&&B(R(`sleep_set`,e))},vod:{speed:h,setSpeed:e=>{Uf(e),g(e)},prev:O?{title:`${Bm(O)} · ${O.title}`,go:()=>le(O)}:void 0,next:k?{title:`${Bm(k)} · ${k.title}`,go:()=>le(k)}:void 0,findSubs:()=>ie(t.target,!1),loadSubs:()=>E(!0)}}),T&&M(Nn,{title:R(`sub_url_title`),label:R(`sub_url_hint`),initial:``,placeholder:`https://…/altyazi.srt`,onSave:e=>{e.trim()&&oe(e)},onClose:()=>E(!1)}),d!==null&&k&&M(Wm,{seconds:d,title:`${Bm(k)} · ${k.title}`,onPlay:()=>le(k),onCancel:()=>{f(null),m(!0)}})]})}function Hm(e){let t=F(null);P(()=>{L(t.current)},[]),tn(t=>t===`back`?(e.close(),!0):void 0);let n=e.on,r=[[e.paused?`play`:`pause`,R(e.paused?`pc_play`:`pc_pause`),n.play],[`back`,`-10 sn`,n.back10],[`chevron`,`+10 sn`,n.fwd10]];return e.series&&e.prev&&r.push([`back`,R(`pc_prev`),n.prev]),e.series&&e.next&&r.push([`chevron`,R(`pc_next`),n.next]),e.series&&r.push([`list`,R(`vod_episodes`),n.episodes]),r.push([`audio`,R(`player_audio`),n.audio],[`subtitles`,R(`player_subtitles`),n.subs],[`more`,R(`pc_speed`),n.speed],[`aspect`,R(`pc_picture`),n.picture],[`more`,R(`pc_more`),n.more],[`back`,R(`back`),n.exit]),M(`div`,{class:`control-bar`,ref:t,"data-focus-scope":!0,children:r.map(([e,t,n],r)=>M(`div`,{class:`cb-item`,children:[M(`button`,{class:`cb-btn`,"data-focus":!0,"data-focus-default":r===0||void 0,onClick:n,children:M(z,{name:e})}),M(`span`,{class:`cb-label`,children:t})]},t))})}function Um({eps:e,current:t,onPick:n}){let r=F(null);return P(()=>{let e=r.current&&r.current.querySelector(`[data-current]`);e&&e.focus()},[]),M(`div`,{class:`episodes-panel`,ref:r,"data-focus-scope":!0,children:[M(`h2`,{children:R(`vod_episodes`)}),e.map(e=>M(`button`,{class:`focus-row opt-row${e.id===t?` selected`:``}`,"data-focus":!0,"data-current":e.id===t||void 0,onClick:()=>n(e),children:[M(`span`,{class:`ep-code`,children:Bm(e)}),M(`span`,{class:`opt-label`,children:e.title})]},e.id))]})}function Wm(e){let t=F(null);return P(()=>{L(t.current)},[]),M(`div`,{class:`next-card`,ref:t,"data-focus-scope":!0,children:[M(`p`,{class:`next-when`,children:R(`vod_next_episode`,e.seconds)}),M(`p`,{class:`next-title`,children:e.title}),M(`div`,{class:`row`,children:[M(`button`,{class:`btn primary`,"data-focus":!0,"data-focus-default":!0,onClick:e.onPlay,children:R(`vod_play_now`)}),M(`button`,{class:`btn outline`,"data-focus":!0,onClick:e.onCancel,children:R(`cancel`)})]})]})}function Gm({paused:e,target:t,d:n}){let r=t===null?df.value:t,i=e=>n>0?`${Math.min(100,e/n*100)}%`:`0%`;return M(`div`,{class:`vod-bar-row`,children:[M(z,{name:e?`play`:`pause`,class:`vod-state`}),M(`span`,{class:`vod-time`,children:tm(r)}),M(`div`,{class:`vod-bar`,children:[M(`span`,{class:`vod-buffer`,style:{width:i(Hf())}}),M(`span`,{class:`vod-played`,style:{width:i(r)}})]}),M(`span`,{class:`vod-time`,children:[`-`,tm(Math.max(0,n-r))]})]})}function Km({channelId:e}){let[t,n]=N(null),[r,i]=N(null),[a,o]=N(null),[s,c]=N(``),l=F(null);if(tn(e=>e===`back`?(bd(),!0):void 0),P(()=>{K.channels.get(e).then(async e=>{if(!e)return;n(e);let t=await K.epgLinks.get(e.id);o(t?t.key:null),i((await K.epgChannels.where(`providerId`).equals(e.providerId).toArray()).sort((e,t)=>e.name.localeCompare(t.name)))})},[e]),P(()=>{r&&setTimeout(()=>L(l.current),0)},[!!r]),!t)return null;let u=s.trim().toLowerCase(),d=(r||[]).filter(e=>!u||e.name.toLowerCase().indexOf(u)>=0||e.xmlId.indexOf(s.trim())>=0).slice(0,300),f=(r||[]).find(e=>e.id===a),p=async e=>{e?await K.epgLinks.put({id:t.id,providerId:t.providerId,key:e,manual:!0}):await K.epgLinks.delete(t.id),el(t.providerId,void 0,`epg`),bd()};return M(`div`,{class:`epg-mapping`,children:[M(`div`,{class:`em-left`,children:[M(`button`,{class:`btn outline`,"data-focus":!0,onClick:bd,children:[M(z,{name:`back`}),R(`back`)]}),M(`h1`,{children:R(`epg_mapping_title`)}),M(`p`,{class:`em-channel`,children:t.name}),a&&M(`p`,{class:`muted`,children:R(`epg_mapping_current`,f?f.name:a.split(`|`)[1])}),M(wn,{label:R(`epg_mapping_filter`),value:s,onInput:c,class:`em-filter`})]}),M(`div`,{class:`em-list`,ref:l,"data-focus-group":`epgmap`,children:r&&!r.length?M(`p`,{children:R(`epg_mapping_none`)}):M(x,{children:[M(`button`,{class:`focus-row opt-row em-auto`,"data-focus":!0,"data-focus-default":!0,onClick:()=>p(null),children:R(`epg_mapping_auto`)}),d.map(e=>M(`button`,{class:`focus-row opt-row${e.id===a?` selected`:``}`,"data-focus":!0,onClick:()=>p(e.id),children:[M(`span`,{class:`opt-label`,children:e.name}),M(`span`,{class:`muted em-id`,children:e.xmlId})]},e.id))]})})]})}function qm(e,t){let n=e.split(`.`).map(Number),r=t.split(`.`).map(Number);for(let e=0;e<Math.max(n.length,r.length);e++)if((n[e]||0)!==(r[e]||0))return(n[e]||0)>(r[e]||0);return!1}var Jm=`https://registry.npmjs.org/@erhan%2futopyatv/latest`,Ym=864e5;async function Xm(){let e=await fetch(Jm,{cache:`no-store`});if(!e.ok)throw Error(`HTTP ${e.status}`);return(await e.json()).version}async function Zm(){try{if(Date.now()-Number(localStorage.getItem(`updateChecked`)||0)<Ym)return;localStorage.setItem(`updateChecked`,String(Date.now()));let e=await Xm();qm(e,`0.1.11`)&&B(R(`set_update_available`,e))}catch(e){}}var Qm=`utopya.settings`,$m=`utopya-yedek-`;async function eh(){let[e,t,n,r,i,a,o]=await Promise.all([K.providers.toArray(),K.favorites.toArray(),K.groups.toArray(),K.groupItems.toArray(),K.catState.toArray(),K.chanState.toArray(),K.progress.toArray()]),s={version:1,app:`tizen`,createdAt:Date.now(),settings:localStorage.getItem(Qm)||`{}`,providers:e,favorites:t,groups:n,groupItems:r,catState:i,chanState:a,progress:o};return JSON.stringify(s)}var th=e=>e<10?`0${e}`:`${e}`;function nh(e=new Date){return`${$m}${e.getFullYear()}${th(e.getMonth()+1)}${th(e.getDate())}-${th(e.getHours())}${th(e.getMinutes())}.json`}async function rh(){let e=await eh(),t=nh();if(!Ft){let n=document.createElement(`a`);return n.href=URL.createObjectURL(new Blob([e],{type:`application/json`})),n.download=t,n.click(),setTimeout(()=>URL.revokeObjectURL(n.href),5e3),t}let n=(await new Promise((e,t)=>tizen.filesystem.resolve(`downloads`,e,t,`rw`))).createFile(t);return await new Promise((t,r)=>n.openStream(`w`,n=>{n.write(e),n.close(),t()},r,`UTF-8`)),`Downloads/${t}`}async function ih(){if(!Ft)return[];let e=[],t=async t=>{try{let n=await new Promise((e,n)=>tizen.filesystem.resolve(t,e,n,`r`)),r=await new Promise(e=>n.listFiles(e,()=>e([])));for(let t of r)!t.isDirectory&&t.name.indexOf($m)===0&&/\.json$/i.test(t.name)&&e.push({name:t.name,uri:t.toURI()})}catch(e){}};await t(`downloads`);let n=await new Promise(e=>tizen.filesystem.listStorages(e,()=>e([])));for(let e of n)e.type===`EXTERNAL`&&e.state===`MOUNTED`&&await t(e.label);return e.sort((e,t)=>e.name<t.name?1:-1)}async function ah(e){let t=await new Promise((t,n)=>tizen.filesystem.resolve(e,t,n,`r`));return new Promise((e,n)=>t.readAsText(e,n,`UTF-8`))}async function oh(e){let t=JSON.parse(e);if(!t||t.version!==1||!Array.isArray(t.providers))throw Error(`yedek biçimi tanınmadı`);let n=[K.channels,K.movies,K.series,K.episodes,K.categories,K.programs,K.epgLinks,K.epgChannels,K.recents],r=[K.providers,K.favorites,K.groups,K.groupItems,K.catState,K.chanState,K.progress];await K.transaction(`rw`,[...n,...r],async()=>{for(let e of[...n,...r])await e.clear();await K.providers.bulkPut(t.providers),await K.favorites.bulkPut(t.favorites),await K.groups.bulkPut(t.groups),await K.groupItems.bulkPut(t.groupItems),await K.catState.bulkPut(t.catState),await K.chanState.bulkPut(t.chanState),await K.progress.bulkPut(t.progress)});try{localStorage.setItem(Qm,t.settings)}catch(e){}Rc(),await Jc();for(let e of await K.providers.toArray())el(e.id)}var sh=[[`sources`,`set_sources`,`dns`],[`player`,`set_player`,`play`],[`look`,`set_appearance`,`grid`],[`epg`,`set_epg`,`guide`],[`parental`,`set_parental`,`lock`],[`hidden`,`set_hidden`,`list`],[`about`,`set_about`,`more`]];function Q(e){return M(`button`,{onlongpress:e.onLongPress,class:`focus-row set-row`,"data-focus":!0,onClick:e.onClick,children:[M(`span`,{class:`opt-text`,children:[M(`span`,{class:`opt-label`,children:e.title}),e.subtitle&&M(`span`,{class:`set-sub`,children:e.subtitle})]}),e.value&&M(`span`,{class:`set-value`,children:e.value})]})}var ch=({text:e})=>M(`h3`,{class:`set-header`,children:e});function lh(){let[e,t]=N(`sources`),[n,r]=N(null),i=F(null),a=q.value;P(()=>{setTimeout(()=>L(i.current),0)},[]);let o=(e,t,n,i)=>r({kind:`menu`,title:e,items:t.map(([e,t])=>({label:t,checked:e===n,onSelect:()=>i(e)}))}),s=e=>zc(e),c=e=>R(e?`set_on`:`set_off`),l=(e,t)=>(e.find(e=>e[0]===t)||[null,``])[1];return M(`div`,{class:`settings`,children:[M(`div`,{class:`set-sections`,ref:i,"data-focus-group":`set-sections`,children:sh.map(([n,r,i])=>M(`button`,{class:`focus-row set-section${e===n?` selected`:``}`,"data-focus":!0,"data-focus-default":e===n||void 0,onFocus:()=>t(n),onClick:()=>t(n),children:[M(z,{name:i}),M(`span`,{children:R(r)})]},n))}),M(`div`,{class:`set-panel glass`,"data-focus-group":`set-panel`,children:[M(`h2`,{children:R(sh.find(t=>t[0]===e)[1])}),e===`sources`&&M(dh,{setDialog:r}),e===`player`&&(()=>{let e=[[null,R(`set_lang_default`)],[`tr`,`Türkçe`],[`en`,`English`],[`de`,`Deutsch`],[`fr`,`Français`],[`ar`,`العربية`],[`ru`,`Русский`]],t=[[null,R(`player_off`)],...e.slice(1)],n=[[`fit`,R(`aspect_fit`)],[`fill`,R(`aspect_fill`)],[`zoom`,R(`aspect_zoom`)]],i=[.75,1,1.25,1.5,1.75].map(e=>[e,`%${Math.round(e*100)}`]),u=[[0,R(`color_white`)],[1,R(`color_yellow`)],[2,R(`color_cyan`)]];return M(x,{children:[M(Q,{title:R(`set_audio_lang`),value:l(e,a.preferredAudio),onClick:()=>o(R(`set_audio_lang`),e,a.preferredAudio,e=>s({preferredAudio:e}))}),M(Q,{title:R(`set_sub_lang`),value:l(t,a.preferredSubtitle),onClick:()=>o(R(`set_sub_lang`),t,a.preferredSubtitle,e=>s({preferredSubtitle:e}))}),M(Q,{title:R(`set_sub_size`),value:l(i,a.subtitleScale),onClick:()=>o(R(`set_sub_size`),i,a.subtitleScale,e=>s({subtitleScale:e}))}),M(Q,{title:R(`set_sub_color`),value:l(u,a.subtitleColor),onClick:()=>o(R(`set_sub_color`),u,a.subtitleColor,e=>s({subtitleColor:e}))}),M(Q,{title:R(`set_sub_bg`),value:c(a.subtitleBackground),onClick:()=>s({subtitleBackground:!a.subtitleBackground})}),M(Q,{title:R(`set_auto_subs`),subtitle:R(`set_auto_subs_hint`),value:c(a.autoSubtitles),onClick:()=>s({autoSubtitles:!a.autoSubtitles})}),M(Q,{title:R(`set_remember_tracks`),value:c(a.rememberTracks),onClick:()=>s({rememberTracks:!a.rememberTracks})}),M(mh,{setDialog:r}),M(Q,{title:R(`set_aspect`),value:l(n,a.aspect),onClick:()=>o(R(`set_aspect`),n,a.aspect,e=>s({aspect:e}))}),M(Q,{title:R(`set_preview`),value:c(a.previewAutoplay),onClick:()=>s({previewAutoplay:!a.previewAutoplay})}),M(Q,{title:R(`set_auto_next`),value:c(a.autoNextEpisode),onClick:()=>s({autoNextEpisode:!a.autoNextEpisode})}),M(Q,{title:R(`set_fallback`),value:c(a.fallbackToPrevious),onClick:()=>s({fallbackToPrevious:!a.fallbackToPrevious})})]})})(),e===`look`&&M(gh,{setDialog:r,choose:o}),e===`epg`&&(()=>{let e=[6,12,24,48].map(e=>[e,R(`set_epg_hours`,e)]),t=[];for(let e=-180;e<=180;e+=30)t.push([e,R(`set_epg_offset_value`,e)]);let n=Gc.value;return M(x,{children:[M(Q,{title:R(`set_epg_interval`),value:l(e,a.epgHours),onClick:()=>o(R(`set_epg_interval`),e,a.epgHours,e=>s({epgHours:e}))}),M(Q,{title:R(`set_epg_offset`),value:l(t,a.epgOffsetMin),onClick:()=>o(R(`set_epg_offset`),t,a.epgOffsetMin,e=>{s({epgOffsetMin:e}),n&&el(n,void 0,`epg`)})}),M(Q,{title:R(`set_epg_refresh`),subtitle:R(`set_epg_urls`),onClick:()=>{n&&el(n,void 0,`epg`)}})]})})(),e===`parental`&&M(x,{children:[Jl()?M(x,{children:[M(Q,{title:R(`set_pin_change`),onClick:()=>r({kind:`pin`,title:R(`pin_enter`),check:Yl,done:()=>uh(r)})}),M(Q,{title:R(`set_pin_remove`),onClick:()=>r({kind:`pin`,title:R(`pin_enter`),check:Yl,done:()=>{Xl(null),r({kind:`notice`,text:R(`set_pin_removed`)})}})})]}):M(Q,{title:R(`set_pin_set`),onClick:()=>uh(r)}),M(Q,{title:R(`set_hide_locked`),value:c(a.hideLocked),onClick:()=>s({hideLocked:!a.hideLocked})}),M(Q,{title:R(`set_adult_lock`),value:c(a.adultAutoLock),onClick:()=>s({adultAutoLock:!a.adultAutoLock})}),M(`p`,{class:`set-hint`,children:R(`set_parental_hint`)})]}),e===`hidden`&&M(_h,{}),e===`about`&&M(`div`,{class:`set-about`,children:[M(`h3`,{children:R(`app_name`)}),M(`p`,{class:`set-version`,children:R(`set_version`,`0.1.11`)}),M(Q,{title:R(`set_update_check`),onClick:async()=>{try{let e=await Xm();r({kind:`notice`,text:qm(e,`0.1.11`)?`${R(`set_update_available`,e)}. ${R(`tz_update_hint`)}`:R(`set_update_none`,`0.1.11`)})}catch(e){r({kind:`notice`,text:R(`set_update_failed`)})}}}),M(`p`,{children:R(`set_about_text`)}),M(ch,{text:R(`set_keys`)}),M(`p`,{class:`muted`,children:R(`tz_keys_text`)}),M(`p`,{class:`muted set-ua`,children:navigator.userAgent})]})]}),n&&n.kind===`menu`&&M(kn,{title:n.title,items:n.items,onClose:()=>r(null)}),n&&n.kind===`notice`&&M(Pn,{text:n.text,onClose:()=>r(null)}),n&&n.kind===`confirm`&&M(Tn,{title:n.title,message:n.text,onConfirm:()=>{r(null),n.ok()},onDismiss:()=>r(null)}),n&&n.kind===`pin`&&M(Mn,{title:n.title,check:n.check,onDone:e=>{r(null),n.done(e)},onClose:()=>r(null)},n.title),n&&n.kind===`text`&&M(Nn,{title:n.title,label:n.label,initial:n.initial,placeholder:n.placeholder,password:n.password,onSave:n.save,onClose:()=>r(null)})]})}function uh(e){e({kind:`pin`,title:R(`pin_new`),check:()=>!0,done:t=>{e({kind:`pin`,title:R(`set_pin_confirm`),check:e=>e===t,done:()=>{Xl(t),e({kind:`notice`,text:R(`set_pin_saved`)})}})}})}function dh({setDialog:e}){let t=Wc.value||[],n=Gc.value,r=Kc.value,i=e=>e?new Date(e).toLocaleString(gn.value===`tr`?`tr-TR`:`en-GB`,{day:`numeric`,month:`short`,hour:`2-digit`,minute:`2-digit`}):R(`set_never`),a=t=>{let r=[];t.id!==n&&r.push({label:R(`set_make_active`),onSelect:()=>Yc(t.id)}),r.push({label:R(`set_resync`),onSelect:()=>el(t.id)}),r.push({label:R(`set_edit`),onSelect:()=>o(t)}),r.push({label:R(`set_test_connection`),onSelect:async()=>{try{await Xc(t),e({kind:`notice`,text:R(`set_connection_ok`)})}catch(t){e({kind:`notice`,text:R(`error_${(t.error||`unknown`).toLowerCase()}`)})}}}),t.type===`xtream`&&r.push({label:R(`set_account`),onSelect:()=>{e({kind:`notice`,text:[t.expDate?R(`set_account_expiry`,i(t.expDate)):R(`set_account_unlimited`),t.maxConnections?R(`set_account_connections`,`?`,String(t.maxConnections)):null].filter(Boolean).join(`
14
- `)})}}),r.push({label:R(`set_delete_source`),onSelect:()=>e({kind:`confirm`,title:t.name,text:R(`set_delete_confirm`,t.name),ok:()=>ph(t.id)})}),e({kind:`menu`,title:t.name,items:r})},o=t=>{let n=(n,r,i,a,s=!1)=>({label:`${n}${r&&!s?`: ${r}`:``}`,onSelect:()=>e({kind:`text`,title:n,label:n,initial:r,password:s,save:async e=>{await K.providers.update(t.id,i(e.trim())),await Jc(),a&&el(t.id);let n=(Wc.peek()||[]).find(e=>e.id===t.id);n&&o(n)}})}),r=[n(R(`onb_name`),t.name,e=>({name:e||t.name}),!1)];t.type===`xtream`?r.push(n(R(`onb_server`),t.url,e=>({url:wr(e)}),!0),n(R(`onb_username`),t.username,e=>({username:e}),!0),n(R(`onb_password`),t.password,e=>({password:e}),!0,!0)):t.url.startsWith(`file:`)||r.push(n(R(`onb_url`),t.url,e=>({url:e.split(/\s+/).map(wr).filter(Boolean).join(` `)}),!0)),r.push(n(R(`onb_epg`),t.epgUrls.join(` `),e=>({epgUrls:e.split(/\s+/).map(wr).filter(Boolean)}),!0),n(R(`onb_user_agent`),t.userAgent||``,e=>({userAgent:e||null}),!1)),e({kind:`menu`,title:`${t.name} · ${R(`set_edit`)}`,items:r})};return M(x,{children:[t.map(e=>{let t=r&&r.providerId===e.id&&`stage`in r&&r.stage!==`DONE`;return M(Q,{title:`${e.name}${e.id===n?` ✓`:``}`,subtitle:`${e.type===`xtream`?`Xtream`:`M3U`} · ${t?R(`sync_title`)+`…`:R(`set_last_sync`,i(e.lastSync))}`,value:e.id===n?R(`set_active`):void 0,onClick:()=>a(e)},e.id)}),M(Q,{title:R(`set_add_source`),onClick:()=>Y.value=`onboarding`}),M(ch,{text:R(`set_backup`)}),M(Q,{title:R(`set_backup_now`),subtitle:R(`set_backup_warning`),onClick:async()=>{try{e({kind:`notice`,text:R(`set_backup_done`,await rh())})}catch(t){e({kind:`notice`,text:`${R(`error_storage`)} (${String(t)})`})}}}),M(Q,{title:R(`set_restore`),onClick:async()=>{let t=t=>e({kind:`confirm`,title:R(`set_restore`),text:R(`set_restore_confirm`),ok:async()=>{try{await oh(await t()),e({kind:`notice`,text:R(`set_restore_done`)})}catch(t){e({kind:`notice`,text:`${R(`error_unknown`)} (${String(t)})`})}}}),n=(await ih()).map(e=>({label:e.name,onSelect:()=>t(()=>ah(e.uri))}));Ft||n.push({label:R(`set_restore_file`),onSelect:()=>fh(e=>t(async()=>e))}),e(n.length?{kind:`menu`,title:R(`set_restore`),items:n}:{kind:`notice`,text:R(`set_restore_none`)})}})]})}function fh(e){let t=document.createElement(`input`);t.type=`file`,t.accept=`.json,application/json`,t.onchange=()=>{let n=t.files&&t.files[0];n&&n.text().then(e)},t.click()}async function ph(e){let t=[K.channels,K.movies,K.series,K.episodes,K.categories,K.programs,K.epgLinks,K.epgChannels,K.favorites,K.recents,K.progress,K.catState,K.chanState];for(let n of t)await n.where(`providerId`).equals(e).delete();await K.providers.delete(e),await Jc()}function mh({setDialog:e}){let[t,n]=N(null);P(()=>{wm().then(n)},[]);let r=t||{key:``,user:``,pass:``},i=(t,i)=>({label:i,onSelect:()=>e({kind:`text`,title:i,label:i,initial:r[t],password:t===`pass`,save:async e=>{await Em(V(V({},r),{},{[t]:e.trim()})),n(await wm())}})});return M(Q,{title:R(`os_account`),subtitle:R(`os_account_hint`),value:R(t&&t.key?`os_account_set`:`os_account_none`),onClick:()=>e({kind:`menu`,title:R(`os_account`),items:[i(`key`,R(`os_api_key`)),i(`user`,R(`os_username`)),i(`pass`,R(`os_password`))]})})}var hh={HERO:`home_hero`,CONTINUE:`shelf_continue`,UP_NEXT:`home_up_next`,FAVORITE_CHANNELS:`home_favorite_channels`,RECENT_CHANNELS:`home_recent_channels`,TONIGHT_SPORTS:`home_tonight`,SCHEDULE:`home_schedule`,PLATFORMS:`shelf_platforms`,NEW_MOVIES:`home_new_movies`,NEW_SERIES:`home_new_series`,TOP_RATED:`home_top_rated`,NEW_EPISODES:`home_new_episodes`,STARTING_SOON:`home_starting_soon`,FOR_YOU:`home_for_you`,GENRES:`home_genres`};function gh({setDialog:e,choose:t}){let n=q.value,r=zc,i=(e,t)=>(e.find(e=>e[0]===t)||[null,``])[1],a=[[`home`,R(`nav_home`)],[`live`,R(`nav_live`)],[`guide`,R(`nav_guide`)],[`movies`,R(`nav_movies`)],[`series`,R(`nav_series`)],[`last`,R(`start_last`)],[`firstFav`,R(`start_first_fav`)]],o=[[`GLOBAL`,R(`numbering_global`)],[`CATEGORY`,R(`numbering_category`)],[`HIDDEN`,R(`numbering_hidden`)]],s=[[`blue`,R(`accent_blue`)],[`orange`,R(`accent_orange`)],[`green`,R(`accent_green`)],[`purple`,R(`accent_purple`)],[`red`,R(`accent_red`)]],c=[[`navy`,R(`theme_navy`)],[`amoled`,R(`theme_amoled`)],[`graphite`,R(`theme_graphite`)],[`forest`,R(`theme_forest`)],[`wine`,R(`theme_wine`)]],l=[[`FAVORITE`,R(`act_favorite`)],[`AUDIO`,R(`player_audio`)],[`SUBTITLES`,R(`player_subtitles`)],[`ASPECT`,R(`player_aspect`)],[`GUIDE`,R(`player_guide`)],[`CHANNELS`,R(`pc_channels`)],[`INFO`,R(`pc_info`)],[`NONE`,R(`act_none`)]],u=n.homeShelves.filter(e=>Mc.indexOf(e)>=0);return M(x,{children:[M(Q,{title:R(`set_start`),value:i(a,n.startScreen),onClick:()=>t(R(`set_start`),a,n.startScreen,e=>r({startScreen:e}))}),M(Q,{title:R(`set_numbering`),value:i(o,n.numbering),onClick:()=>t(R(`set_numbering`),o,n.numbering,e=>r({numbering:e}))}),M(Q,{title:R(`set_accent`),value:i(s,n.accent),onClick:()=>t(R(`set_accent`),s,n.accent,e=>r({accent:e}))}),M(Q,{title:R(`set_theme`),value:i(c,n.theme),onClick:()=>t(R(`set_theme`),c,n.theme,e=>r({theme:e}))}),M(Q,{title:R(`set_filter_words`),subtitle:R(`set_filter_words_hint`),value:n.filterWords.length?n.filterWords.join(`, `):R(`set_none`),onClick:()=>e({kind:`text`,title:R(`set_filter_words`),label:R(`set_filter_words`),initial:n.filterWords.join(`, `),placeholder:`[RAW], FHD, VIP`,save:e=>r({filterWords:e.split(`,`).map(e=>e.trim()).filter(Boolean)})})}),M(Q,{title:R(`home_edit`),subtitle:R(`set_home_shelves`),value:`${u.length} / ${Mc.length}`,onClick:()=>yd({name:`homeEdit`})}),M(ch,{text:R(`set_color_keys`)}),[`key_red`,`key_green`,`key_yellow`,`key_blue`].map((e,a)=>M(Q,{title:R(e),value:i(l,n.colorKeys[a]),onClick:()=>t(R(e),l,n.colorKeys[a],e=>{let t=n.colorKeys.slice();t[a]=e,r({colorKeys:t})})},e)),M(Q,{title:R(`set_language`),value:gn.value===`tr`?`Türkçe`:`English`,onClick:()=>t(R(`set_language`),[[`tr`,`Türkçe`],[`en`,`English`]],gn.value,_n)})]})}function _h(){let e=Gc.value,[t,n]=N([]),[r,i]=N([]),a=async()=>{let[t,r]=await Promise.all([K.catState.where(`providerId`).equals(e).filter(e=>!!e.hidden).toArray(),K.chanState.where(`providerId`).equals(e).filter(e=>!!e.hidden).toArray()]);n((await K.categories.bulkGet(t.map(e=>e.id))).filter(e=>!!e)),i((await K.channels.bulkGet(r.map(e=>e.id))).filter(e=>!!e).sort((e,t)=>e.number-t.number))};return P(()=>{a()},[e]),!t.length&&!r.length?M(`p`,{class:`set-hint`,children:R(`set_hidden_none`)}):M(x,{children:[t.length>0&&M(ch,{text:R(`set_hidden_categories`)}),t.map(t=>M(Q,{title:t.name,value:R(`set_unhide`),onClick:async()=>{await Gl(t.id,e,{hidden:!1}),a()}},t.id)),r.length>0&&M(ch,{text:R(`set_hidden_channels`)}),r.map(t=>M(Q,{title:`${t.number} ${t.name}`,value:R(`set_unhide`),onClick:async()=>{await Kl(t.id,e,{hidden:!1}),await Rl(e),a()}},t.id))]})}function vh(){let e=q.value.homeShelves.filter(e=>Mc.indexOf(e)>=0),t=Mc.filter(t=>e.indexOf(t)<0),[n,r]=N(null),[i,a]=N(null),o=F(null);P(()=>{L(o.current)},[]),P(()=>{if(!i||!o.current)return;let e=o.current.querySelector(`[data-he="${i}"]`);e&&e.focus(),a(null)});let s=e=>zc({homeShelves:e});tn(t=>{if(n){if(t===`up`||t===`down`){let r=e.indexOf(n),i=r+(t===`up`?-1:1);if(i>=0&&i<e.length){let t=e.slice();t[r]=t[i],t[i]=n,s(t),a(`row-${n}`)}return!0}return(t===`ok`||t===`back`)&&r(null),!0}});let c=t=>{s(e.indexOf(t)>=0?e.filter(e=>e!==t):[...e,t]),a(`sw-${t}`)},l=(i,a)=>{let o=a!==null,s=a===1||!e.length&&i===t[0];return M(`div`,{class:`he-row${n===i?` moving`:``}`,children:[M(`button`,{class:`focus-row he-main`,"data-focus":!0,"data-focus-default":s||void 0,"data-he":`row-${i}`,onClick:()=>o&&r(n===i?null:i),children:[M(`span`,{class:`he-num`,children:o?`${a}.`:``}),M(`span`,{class:`he-label`,children:R(hh[i])}),n===i&&M(`span`,{class:`he-moving`,children:R(`home_edit_moving`)})]}),M(`button`,{class:`he-switch${o?` on`:``}`,"data-focus":!0,"data-he":`sw-${i}`,onClick:()=>c(i),children:R(o?`set_on`:`set_off`)})]},i)};return M(`div`,{class:`home-edit`,ref:o,children:[M(`div`,{class:`he-head`,children:[M(`h1`,{children:R(`home_edit`)}),M(`button`,{class:`btn outline`,"data-focus":!0,onClick:()=>{r(null),s(Mc)},children:R(`home_edit_reset`)})]}),M(`p`,{class:`he-hint`,children:R(`home_edit_hint`)}),M(`div`,{class:`he-list`,children:[e.map((e,t)=>l(e,t+1)),t.length>0&&M(`h3`,{class:`set-header`,children:R(`home_edit_hidden`)}),t.map(e=>l(e,null))]})]})}var $=(e,t)=>e&&typeof e[t]==`string`&&e[t].trim()||null,yh=(e,t)=>{let n=e&&e[t],r=typeof n==`number`?n:parseFloat(String(n));return isFinite(r)?r:null};function bh(e){let t=e.trim().replace(/^stremio:\/\//i,`https://`);return/manifest\.json$/i.test(t)||(t=`${t.replace(/\/+$/,``)}/manifest.json`),t}async function xh(e){let t=await fetch(Cr(e),{credentials:`omit`});if(!t.ok)throw Error(`HTTP ${t.status}`);return t.json()}var Sh=new Map;function Ch(e){let t=Sh.get(e);return t||(t=xh(e).then(t=>wh(e,t)),t.catch(()=>Sh.delete(e)),Sh.set(e,t)),t}function wh(e,t){let n=e=>Array.isArray(t[e])?t[e]:[],r=n(`catalogs`).map(e=>e).filter(e=>{let t=Array.isArray(e.extra)?e.extra:[],n=Array.isArray(e.extraRequired)?e.extraRequired:[];return!t.some(e=>e.isRequired===!0)&&!n.length&&$(e,`type`)&&$(e,`id`)}).map(e=>({type:$(e,`type`),id:$(e,`id`),name:$(e,`name`)||$(e,`id`)})),i=n(`idPrefixes`).filter(e=>typeof e==`string`),a=e;try{a=new URL(e).host}catch(e){}return{url:e,base:e.replace(/\/manifest\.json$/i,``),id:$(t,`id`)||e,name:$(t,`name`)||a,logo:$(t,`logo`),types:n(`types`).filter(e=>typeof e==`string`),idPrefixes:i.length?i:null,resources:n(`resources`).map(e=>typeof e==`string`?e:$(e,`name`)).filter(e=>!!e),catalogs:r}}var Th=(e,t,n,r)=>e.resources.indexOf(t)>=0&&e.types.indexOf(n)>=0&&(!e.idPrefixes||e.idPrefixes.some(e=>r.startsWith(e))),Eh=e=>encodeURIComponent(e).replace(/\+/g,`%20`),Dh=e=>({id:$(e,`id`)||``,type:$(e,`type`)||`movie`,name:$(e,`name`)||``,poster:$(e,`poster`),rating:yh(e,`imdbRating`)});async function Oh(e,t){let n=await xh(`${e.base}/catalog/${Eh(t.type)}/${Eh(t.id)}.json`);return(Array.isArray(n.metas)?n.metas:[]).map(Dh).filter(e=>e.id&&e.name)}async function kh(e,t,n){for(let r of e)try{let e=await Ch(r);if(!Th(e,`meta`,t,n))continue;let i=(await xh(`${e.base}/meta/${Eh(t)}/${Eh(n)}.json`)).meta;if(!i)continue;let a=Array.isArray(i.genres)?i.genres:Array.isArray(i.genre)?i.genre:[],o=(Array.isArray(i.videos)?i.videos:[]).map(e=>({id:$(e,`id`)||``,title:$(e,`title`)||$(e,`name`)||``,season:yh(e,`season`)||0,episode:yh(e,`episode`)||yh(e,`number`)||0,thumbnail:$(e,`thumbnail`)})).filter(e=>e.id);return V(V({},Dh(i)),{},{type:$(i,`type`)||t,background:$(i,`background`),description:$(i,`description`),releaseInfo:$(i,`releaseInfo`)||(yh(i,`year`)?String(yh(i,`year`)):null),genres:a,videos:o})}catch(e){console.warn(`stremio meta`,r,e)}return null}async function Ah(e,t,n){let r=await Promise.all(e.map(async e=>{try{let r=await Ch(e);if(!Th(r,`stream`,t,n))return[];let i=await xh(`${r.base}/stream/${Eh(t)}/${Eh(n)}.json`);return(Array.isArray(i.streams)?i.streams:[]).filter(e=>/^https?:\/\//i.test($(e,`url`)||``)).map(e=>({url:$(e,`url`),name:($(e,`name`)||r.name).replace(/\n/g,` `),title:$(e,`title`)||$(e,`description`)}))}catch(t){return console.warn(`stremio stream`,e,t),[]}}));return[].concat(...r)}var jh=(e,t)=>({key:`${e.type}:${e.id}`,id:t,title:e.name,poster:e.poster,rating:e.rating}),Mh=e=>e===`movie`?R(`nav_movies`):e===`series`?R(`nav_series`):e;function Nh(){let e=q.value.stremioAddons,[t,n]=N([]),[r,i]=N([]),[a,o]=N(!1),[s,c]=N(!1),[l,u]=N(null);P(()=>{let t=!0;return i([]),(async()=>{let r=[];for(let t of e)try{r.push(await Ch(t))}catch(e){}if(t){n(r);for(let e of r)for(let n of e.catalogs)try{let r=await Oh(e,n);if(!t)return;r.length&&i(t=>[...t,{key:`${e.url}|${n.type}|${n.id}`,title:`${n.name} · ${Mh(n.type)} · ${e.name}`,items:r}])}catch(e){}}})(),()=>{t=!1}},[e.join(`
15
- `)]);let d=async t=>{let n=bh(t);try{await Ch(n),e.indexOf(n)<0&&zc({stremioAddons:[...e,n]}),o(!1),c(!1)}catch(e){c(!0)}};return M(`div`,{class:`extensions`,children:[M(`h2`,{class:`shelf-title`,children:R(`ext_installed`)}),M(`div`,{class:`shelf-row ext-row`,"data-focus-group":`ext-addons`,children:[M(`button`,{class:`chip ext-add`,"data-focus":!0,"data-focus-default":!e.length||void 0,onClick:()=>{c(!1),o(!0)},children:[M(z,{name:`add`}),R(`ext_add`)]}),t.map(e=>M(`button`,{class:`chip ext-chip`,"data-focus":!0,onClick:()=>u(e),children:[e.logo&&M(`img`,{src:e.logo,alt:``}),e.name]},e.url))]}),M(`p`,{class:`ext-note muted`,children:R(e.length?`ext_note`:`ext_empty`)}),r.map(e=>M(Vd,{title:e.title,info:!0,children:e.items.map((e,t)=>M(Nd,{card:jh(e,t),onClick:()=>yd({name:`stremio`,type:e.type,id:e.id})},`${e.type}:${e.id}`))},e.key)),a&&M(Nn,{title:R(`ext_add`),label:R(s?`ext_failed`:`ext_url`),initial:``,placeholder:`https://…/manifest.json`,onSave:e=>{e.trim()&&(o(!0),d(e))},onClose:()=>o(!1)}),l&&M(Tn,{title:l.name,message:R(`ext_remove`),confirmLabel:R(`ext_remove`),onConfirm:()=>{zc({stremioAddons:e.filter(e=>e!==l.url)}),u(null)},onDismiss:()=>u(null)})]})}function Ph({type:e,id:t}){let n=q.value.stremioAddons,[r,i]=N(void 0),[a,o]=N(1),[s,c]=N(null),l=F(null);tn(e=>{if(e===`back`)return bd(),!0}),P(()=>{let r=!0;return kh(n,e,t).then(e=>{if(!r)return;i(e);let t=e?e.videos.map(e=>e.season).filter(e=>e>0):[];t.length&&o(Math.min(...t)),setTimeout(()=>L(l.current),0)}),()=>{r=!1}},[e,t]);let u=async(t,r)=>{c({title:r,list:null});let i=await Ah(n,e,t);c({title:r,list:i.map(e=>({label:e.title?`${e.name} · ${e.title}`:e.name,onSelect:()=>yd({name:`stream`,url:e.url,title:r})}))})};if(r===void 0)return M(`div`,{class:`detail`,children:M(`div`,{class:`player-center`,children:M(`div`,{class:`spinner`})})});if(r===null)return M(`div`,{class:`detail`,ref:l,children:M(`div`,{class:`detail-scroll`,children:[M(`button`,{class:`btn outline back-btn`,"data-focus":!0,onClick:bd,children:[M(z,{name:`back`}),R(`back`)]}),M(`p`,{class:`empty`,children:R(`empty_list`)})]})});let d=Array.from(new Set(r.videos.map(e=>e.season))).sort((e,t)=>e-t),f=r.videos.filter(e=>e.season===a).sort((e,t)=>e.episode-t.episode),p=e=>e<10?`0${e}`:`${e}`;return M(`div`,{class:`detail`,ref:l,children:[M(rm,{src:r.background||r.poster}),M(`div`,{class:`detail-scroll series`,children:[M(`button`,{class:`btn outline back-btn`,"data-focus":!0,onClick:bd,children:[M(z,{name:`back`}),R(`back`)]}),M(`div`,{class:`detail-row`,children:[M(`div`,{class:`detail-poster`,children:r.poster&&M(`img`,{src:r.poster,alt:``})}),M(`div`,{class:`detail-info`,children:[M(`h1`,{children:r.name}),M(im,{chips:[r.releaseInfo,r.rating?`★ ${r.rating}`:null,r.genres.slice(0,3).join(`, `)]}),r.description&&M(`p`,{class:`detail-plot`,children:r.description}),!r.videos.length&&M(`div`,{class:`detail-actions`,children:M(`button`,{class:`btn primary`,"data-focus":!0,"data-focus-default":!0,onClick:()=>u(r.id,r.name),children:R(`ext_find_sources`)})})]})]}),r.videos.length>0&&M(x,{children:[d.length>1?M(`div`,{class:`season-chips`,children:d.map(e=>M(`button`,{class:`chip${e===a?` selected`:``}`,"data-focus":!0,onClick:()=>o(e),children:e===0?R(`ext_specials`):R(`vod_season`,e)},e))}):M(`div`,{class:`season-gap`}),M(`div`,{class:`episode-list`,"data-focus-group":`episodes`,children:f.map((e,t)=>M(`button`,{class:`episode-row focus-row`,"data-focus":!0,"data-focus-default":t===0||void 0,onClick:()=>u(e.id,`${r.name} · S${p(e.season)}E${p(e.episode)}`),children:[M(`span`,{class:`ep-thumb`,children:(e.thumbnail||r.poster)&&M(Sn,{src:e.thumbnail||r.poster})}),M(`span`,{class:`ep-text`,children:M(`span`,{class:`ep-title`,children:R(`vod_episode_title`,e.episode,e.title)})})]},e.id))})]})]}),s&&(s.list===null?M(`div`,{class:`scrim`,children:M(`div`,{class:`menu-dialog`,children:[M(`h2`,{children:R(`ext_sources`)}),M(`div`,{class:`spinner`})]})}):M(kn,{title:R(`ext_sources`),items:s.list.length?s.list:[{label:R(`ext_no_sources`),onSelect:()=>{}}],onClose:()=>c(null)}))]})}function Fh(){let[e,t]=N(null),[n,r]=N(null),i=F(null),a=td.value;P(()=>{K.reminders.orderBy(`start`).toArray().then(e=>{t(e),setTimeout(()=>{document.activeElement===document.body&&L(i.current)},0)})},[a]);let o=e=>new Date(e).toLocaleDateString(gn.value===`tr`?`tr-TR`:`en-GB`,{weekday:`short`,day:`numeric`,month:`short`}),s=async e=>{let t=await $l(e.providerId,{type:`all`}),n=t.indexOf(e.channelId);n>=0&&wd(t,n)};return M(`div`,{class:`recordings`,ref:i,children:[M(`div`,{class:`row rec-tabs`,children:M(`span`,{class:`chip selected`,children:R(`rec_tab_scheduled`)})}),M(`p`,{class:`muted rec-note`,children:R(`tz_rec_note`)}),e&&!e.length&&M(`p`,{class:`empty`,children:R(`rec_scheduled_empty`)}),M(`div`,{class:`rec-list`,children:(e||[]).map(e=>M(`button`,{class:`focus-row rec-row`,"data-focus":!0,onClick:()=>r({title:e.title,items:[{label:R(`home_open_channel`),onSelect:()=>s(e)},{label:R(`guide_remind_off`),onSelect:()=>ad(e.id)}]}),children:[M(`span`,{class:`opt-text`,children:[M(`span`,{class:`opt-label`,children:e.title}),M(`span`,{class:`muted`,children:`${e.channelName} · ${o(e.start)} ${kl(e.start)}${e.stop?`–${kl(e.stop)}`:``}`})]}),e.repeat?M(`span`,{class:`rec-repeat`,children:R(e.repeat===1?`rec_repeat_daily`:`rec_repeat_weekly`)}):null]},e.id))}),n&&M(kn,{title:n.title,items:n.items,onClose:()=>r(null)})]})}var Ih=Is(`[^LETTER0-9]+`,`g`),Lh=e=>e.toLowerCase().split(Ih).filter(Boolean),Rh=(e,t)=>t.every(t=>e.some(e=>e.startsWith(t)));function zh(e,t){let n=e.toLowerCase();return n===t?0:n.startsWith(t)?1:n.indexOf(t)>=0?2:3}var Bh=null,Vh=40,Hh=null,Uh=e=>!!(Il.value.get(e.id)||{}).hidden||zl(e);async function Wh(e,t){if(Hh&&Hh.stamp===t)return Hh;let n=t=>{let n=[];return t.where(`providerId`).equals(e).each(e=>{n.push({id:e.id,name:e.name,categoryId:e.categoryId,w:Lh(e.name)})}).then(()=>n)},[r,i,a,o]=await Promise.all([n(K.channels),n(K.movies),n(K.series),K.categories.where(`providerId`).equals(e).toArray()]);return Hh={stamp:t,live:r,movie:i,series:a,blocked:new Set(o.filter(Uh).map(e=>e.id))},Hh}function Gh(e,t,n,r){let i=[];for(let n of e)n.categoryId!==null&&r.has(n.categoryId)||Rh(n.w,t)&&i.push(n);return i.sort((e,t)=>zh(e.name,n)-zh(t.name,n)||e.name.length-t.name.length).slice(0,Vh)}async function Kh(e,t,n){let r=n.trim().toLowerCase(),i=Lh(r);if(r.length<2||!i.length)return null;let a=await Wh(e,t),o=await qh(e,t),s=Date.now()-216e5,c=[];for(let e of o.list)if(e.stop>s&&Rh(e.w,i)&&c.push(e.id),c.length>=400)break;let l=(await K.programs.bulkGet(c)).filter(e=>!!e).sort((e,t)=>e.start-t.start),u=await K.epgLinks.where(`providerId`).equals(e).toArray(),d=new Map;for(let e of u)d.has(e.key)||d.set(e.key,e.id);let f=new Map(a.live.map(e=>[e.id,e])),p=[];for(let e of l){let t=f.get(d.get(e.key)||-1);if(!(!t||t.categoryId!==null&&a.blocked.has(t.categoryId))&&(p.push({program:e,channelId:t.id}),p.length>=Vh))break}return{channels:Gh(a.live,i,r,a.blocked),movies:Gh(a.movie,i,r,a.blocked),series:Gh(a.series,i,r,a.blocked),programs:p}}async function qh(e,t){if(Bh&&Bh.stamp===t&&Date.now()-Bh.at<36e5)return Bh;let n=Date.now()-216e5,r=[];return await K.programs.where(`providerId`).equals(e).each(e=>{e.stop>n&&r.push({id:e.id,start:e.start,stop:e.stop,w:Lh(e.title)})}),Bh={stamp:t,at:Date.now(),list:r},Bh}function Jh(e){let t=e.trim();t.length<2||zc({searchHistory:[t,...(q.peek().searchHistory||[]).filter(e=>e.toLowerCase()!==t.toLowerCase())].slice(0,12)})}function Yh(){let e=Gc.value,t=(Wc.value||[]).find(t=>t.id===e),n=`${t&&t.lastSync||0}|${t&&t.lastEpgSync||0}`,[r,i]=N(``),[a,o]=N(null),s=F(null),c=q.value.searchHistory||[];P(()=>{setTimeout(()=>L(s.current),0)},[]),P(()=>{let t=!0,i=setTimeout(async()=>{let i=await Kh(e,n,r);if(!t)return;if(!i)return o(null);let[a,s,c,l]=await Promise.all([K.channels.bulkGet(i.channels.map(e=>e.id)),K.movies.bulkGet(i.movies.map(e=>e.id)),K.series.bulkGet(i.series.map(e=>e.id)),K.channels.bulkGet(i.programs.map(e=>e.channelId))]);t&&o({channels:a.filter(e=>!!e),movies:s.filter(e=>!!e),series:c.filter(e=>!!e),programs:i.programs.map((e,t)=>({program:e.program,channel:l[t]})).filter(e=>!!e.channel)})},300);return()=>{t=!1,clearTimeout(i)}},[r,e,n]);let l=()=>Jh(r),u=async(t,n)=>{l();let r=await $l(e,{type:`all`}),i=r.indexOf(t);i>=0&&wd(r,i,n)},d=a&&!a.channels.length&&!a.movies.length&&!a.series.length&&!a.programs.length,f=Date.now(),p=e=>`${new Date(e).toLocaleDateString(gn.value===`tr`?`tr-TR`:`en-GB`,{day:`numeric`,month:`short`})} ${kl(e)}`;return M(`div`,{class:`search`,ref:s,children:[M(`div`,{class:`search-row`,children:M(wn,{label:R(`nav_search`),value:r,onInput:i,placeholder:R(`search_hint`),initial:!0,class:`search-field`})}),!a&&c.length>0&&M(`section`,{class:`shelf`,children:[M(`h2`,{class:`shelf-title`,children:R(`search_recent`)}),M(`div`,{class:`shelf-row history-row`,"data-focus-group":`search-history`,children:[c.map(e=>M(`button`,{class:`chip`,"data-focus":!0,onClick:()=>i(e),children:e},e)),M(`button`,{class:`btn outline`,"data-focus":!0,onClick:()=>zc({searchHistory:[]}),children:R(`search_clear`)})]})]}),d&&M(`p`,{class:`search-empty`,children:R(`search_no_results`,r.trim())}),a&&a.channels.length>0&&M(Vd,{title:R(`search_channels`),children:a.channels.map(e=>M(Qd,{cc:{channel:e,now:null},onClick:()=>u(e.id),onLongPress:()=>{}},e.id))}),a&&a.movies.length>0&&M(Vd,{title:R(`search_movies`),info:!0,children:a.movies.map(e=>{let t=wu(e);return M(Nd,{card:t,onClick:()=>{l(),yd({name:`movie`,id:e.id})}},t.key)})}),a&&a.series.length>0&&M(Vd,{title:R(`search_series`),children:a.series.map(e=>{let t=wu(e);return M(Pd,{card:t,onClick:()=>{l(),yd({name:`series`,id:e.id})}},t.key)})}),a&&a.programs.length>0&&M(`section`,{class:`search-programs`,children:[M(`h2`,{class:`shelf-title`,children:R(`search_programs`)}),a.programs.map(({program:e,channel:t})=>M(`button`,{class:`focus-row opt-row search-prog`,"data-focus":!0,onClick:()=>u(t.id,e.stop<f?e:void 0),children:[M(cd,{src:t.logo,size:30}),M(`span`,{class:`opt-text`,children:[M(`span`,{class:`opt-label`,children:e.title}),M(`span`,{class:`muted`,children:t.name})]}),M(`span`,{class:`sp-time${e.start<=f&&e.stop>f?` live`:``}`,children:p(e.start)})]},e.id))]})]})}function Xh(e){let{program:t,channel:n}=e,r=F(null),i=F(document.activeElement);P(()=>(L(r.current),()=>i.current&&i.current.isConnected&&i.current.focus()),[]),tn(t=>t===`back`?(e.onClose(),!0):`default`);let a=Date.now(),o=new Date(t.start).toLocaleDateString(gn.value===`tr`?`tr-TR`:`en-GB`,{day:`numeric`,month:`long`}),s=[],c=ap(n,t.start,a);return t.start<=a&&t.stop>a?(s.push([R(`guide_watch`),e.onWatch]),c&&s.push([R(`guide_restart`),e.onArchive])):t.stop<=a&&c&&s.push([R(`guide_watch_archive`),e.onArchive]),t.start>a&&(s.push([R(td.value.has(t.id)?`guide_remind_off`:`guide_remind`),async()=>{B(R(await id(t,n)?`guide_reminder_set`:`guide_reminder_removed`))}]),s.push([R(`tz_remind_daily`),async()=>{await id(t,n,1),B(R(`guide_reminder_set`))}]),s.push([R(`tz_remind_weekly`),async()=>{await id(t,n,2),B(R(`guide_reminder_set`))}])),s.push([R(`guide_close`),()=>{}]),M(`div`,{class:`scrim`,"data-focus-scope":!0,children:M(`div`,{class:`program-dialog`,ref:r,role:`dialog`,children:[M(`h2`,{children:t.title}),M(`p`,{class:`pd-meta`,children:`${n.name} · ${o} ${kl(t.start)} – ${kl(t.stop)}`}),t.category&&M(`p`,{class:`pd-cat`,children:t.category}),t.desc&&M(`p`,{class:`pd-desc`,children:t.desc}),M(`div`,{class:`row pd-buttons`,children:s.map(([t,n],r)=>M(`button`,{class:`btn ${r===0?`primary`:`outline`}`,"data-focus":!0,"data-focus-default":r===0||void 0,onClick:()=>{e.onClose(),n()},children:t},t))})]})})}var Zh=I(null),Qh=864e5;function $h({onOpenPlayer:e,onSearch:t}){let n=Gc.value,r=Zh.value||{filter:{type:`all`},label:R(`cat_all`)},[i,a]=N(null),[o,s]=N([]),[c,l]=N(wp(Date.now())),[u,d]=N(null),[f,p]=N(null),m=q.value;P(()=>{K.categories.where(`[providerId+kind]`).equals([n,`live`]).sortBy(`order`).then(s)},[n]),P(()=>{let e=!0;return a(null),$l(n,r.filter).then(t=>e&&a(t)),()=>{e=!1}},[n,JSON.stringify(r.filter)]);let h=ke(()=>i?new tu(i):null,[i]),g=(t,n)=>{i&&e(i,t,n)};return M(`div`,{class:`guide`,children:[M(`div`,{class:`guide-head`,children:[M(`h1`,{children:new Date(c).toLocaleDateString(gn.value===`tr`?`tr-TR`:`en-GB`,{weekday:`long`,day:`numeric`,month:`long`})}),M(`div`,{class:`row`,children:[M(`button`,{class:`btn outline`,"data-focus":!0,onClick:()=>d({title:R(`guide_category`,r.label),items:[{label:R(`cat_all`),filter:{type:`all`}},{label:R(`cat_favorites`),filter:{type:`fav`}},...o.map(e=>({label:e.name,filter:{type:`cat`,id:e.id}}))].map(e=>({label:e.label,checked:JSON.stringify(e.filter)===JSON.stringify(r.filter),onSelect:()=>Zh.value={filter:e.filter,label:e.label}}))}),children:R(`guide_category`,r.label)}),M(`button`,{class:`btn outline`,"data-focus":!0,onClick:()=>l(c-Qh),children:R(`guide_prev_day`)}),M(`button`,{class:`btn outline`,"data-focus":!0,onClick:()=>l(wp(Date.now())),children:R(`guide_now`)}),M(`button`,{class:`btn outline`,"data-focus":!0,onClick:()=>l(c+Qh),children:R(`guide_next_day`)}),M(`button`,{class:`btn outline`,"data-focus":!0,onClick:t,children:R(`guide_search`)})]})]}),i&&!i.length?M(`p`,{class:`empty`,children:R(`live_empty_category`)}):h&&M(Ep,{pager:h,count:i.length,initialRow:0,rowRem:6,winStart:c,setWinStart:l,numberOf:(e,t)=>m.numbering===`HIDDEN`?null:m.numbering===`CATEGORY`?t+1:e.number,onChannel:(e,t)=>g(t),onProgram:(e,t,n)=>p({p:e,c:t,row:n})},JSON.stringify(r.filter)),M(`p`,{class:`guide-hint`,children:R(`guide_hint`)}),u&&M(kn,{title:u.title,items:u.items,onClose:()=>d(null)}),f&&M(Xh,{program:f.p,channel:f.c,onClose:()=>p(null),onWatch:()=>g(f.row),onArchive:()=>g(f.row,f.p)})]})}var eg=[{id:`home`,label:`nav_home`},{id:`live`,label:`nav_live`},{id:`guide`,label:`nav_guide`},{id:`movies`,label:`nav_movies`},{id:`series`,label:`nav_series`},{id:`recordings`,label:`nav_recordings`},{id:`extensions`,label:`nav_extensions`},{id:`search`,label:`nav_search`,icon:`search`},{id:`settings`,label:`nav_settings`,icon:`settings`}],tg=I(!1),ng=null,rg=e=>{if(e===`back`&&vd.value.length)return bd();e===`back`&&ng&&ng.isConnected&&(ng&&!ng.contains(document.activeElement)?L(ng):Y.value===`home`?tg.value=!0:Y.value=`home`)};async function ig(){let e=ed.value;ed.value=null,Gc.peek()!==e.providerId&&Yc(e.providerId);let t=await $l(e.providerId,{type:`all`}),n=t.indexOf(e.channelId);n<0||wd(t,n)}var ag=!1,og=new Map;function sg({active:e}){let t=F(null);return P(()=>{ng=t.current,ag||(ag=!0,L(ng))},[]),M(`header`,{class:`topbar glass`,children:[M(`span`,{class:`brand`,children:R(`app_name`)}),M(`nav`,{class:`pills`,ref:t,"data-focus-group":`menu`,children:eg.map(t=>{let n=t.id===(e||Y.value);return M(`button`,{class:`pill${n?` selected`:``}${t.icon?` icon-only`:``}`,"data-focus":!0,"data-focus-default":n||void 0,"aria-label":R(t.label),onClick:()=>{let e=Y.value;e!==t.id&&og.set(e,vd.value),vd.value=n?[]:og.get(t.id)||[],og.delete(t.id),Y.value=t.id},children:t.icon?M(z,{name:t.icon}):R(t.label)},t.id)})})]})}function cg(e){switch(e.name){case`browse`:return M(Qp,{kind:e.kind,title:e.title,filter:e.filter,sort:e.sort});case`movie`:return M(cm,{id:e.id});case`series`:return M(um,{id:e.id,season:e.season});case`vod`:return M(Vm,{kind:e.kind,id:e.id,seriesId:e.seriesId,startMs:e.startMs});case`epgmap`:return M(Km,{channelId:e.channelId});case`homeEdit`:return M(vh,{});case`stream`:return M(Vm,{kind:`stream`,id:0,url:e.url,title:e.title});case`stremio`:return M(Ph,{type:e.type,id:e.id})}}function lg(){let e=vd.value,t=eg.find(e=>e.id===Y.value)||eg[0],n=Wc.value,r=n!==null&&(Y.value===`onboarding`||!n.length),i=e.length?e[e.length-1].page:null,a=i&&i.name===`browse`?i:null;return M(`div`,{class:`app`,children:[M(qp,{}),Dt.value===!0?n===null?null:r?M(rl,{onDone:()=>Y.value=`home`,onExit:()=>n.length?Y.value=`home`:tg.value=!0}):Y.value===`player`?M(zp,{onExit:Td},hd.value?hd.value.seq:0):M(x,{children:[(!e.length||a)&&M(sg,{active:a?a.kind===`movie`?`movies`:`series`:void 0}),M(`main`,{style:e.length?{display:`none`}:void 0,class:`content${Y.value===`live`||Y.value===`guide`?` live-content`:``}`,"data-focus-group":`screen-${Y.value}`,children:Y.value===`home`?M(Jd,{providerId:Gc.value}):Y.value===`live`?M(qf,{onOpenPlayer:(e,t)=>wd(e,t)}):Y.value===`guide`?M($h,{onOpenPlayer:(e,t,n)=>wd(e,t,n),onSearch:()=>Y.value=`search`}):Y.value===`search`?M(Yh,{}):Y.value===`settings`?M(lh,{}):Y.value===`movies`?M(Gd,{kind:`movie`}):Y.value===`series`?M(Gd,{kind:`series`}):Y.value===`extensions`?M(Nh,{}):Y.value===`recordings`?M(Fh,{}):M(In,{title:R(t.label)})}),e.map((t,n)=>M(`div`,{class:t.page.name===`browse`?`page-flow`:`page`,style:n<e.length-1?{display:`none`}:void 0,children:cg(t.page)},n))]}):Dt.value===!1&&M(Fn,{onExit:()=>tg.value=!0}),M(On,{}),ed.value&&M(Tn,{title:R(`tz_reminder_title`,ed.value.title),message:R(`tz_reminder_text`,ed.value.channelName),confirmLabel:R(`guide_watch`),onConfirm:()=>ig(),onDismiss:()=>ed.value=null}),tg.value&&M(Tn,{title:R(`exit_title`),message:R(`exit_message`),onConfirm:Lt,onDismiss:()=>tg.value=!1})]})}It(),jt(),Uc(),Af(document.getElementById(`video`)),sd(),un(rg),ue(M(lg,{}),document.getElementById(`app`)),setTimeout(Zm,15e3),Jc().then(async e=>{new URLSearchParams(location.search),e.length?(Zc(),ug()):Y.value=`onboarding`});async function ug(){let e=q.peek().startScreen,t=Gc.peek();if(e===`last`||e===`firstFav`){if(!t)return;let n=await $l(t,{type:e===`last`?`all`:`fav`}),r=e===`last`?n.indexOf(q.peek().lastChannelId||-1):0;n.length&&r>=0&&wd(n,r)}else Y.value=e}})();