OrderPK!@$admin/css/sonaar-music-pro-admin.cssnu[/** * All of the CSS for your admin-specific functionality should be * included in this file. */ @font-face { font-family: 'CircularStd-Book'; src: url('../fonts/CircularStd-Book.eot'); src: url('../fonts/CircularStd-Book.eot?#iefix') format('embedded-opentype'), url('../fonts/CircularStd-Book.woff2') format('woff2'), url('../fonts/CircularStd-Book.woff') format('woff'), url('../fonts/CircularStd-Book.ttf') format('truetype'), url('../fonts/CircularStd-Book.svg#svgFontName') format('svg'); } @font-face{ font-family: 'CircularStd-Medium'; src: url('../fonts/CircularStd-Medium.eot'); src: url('../fonts/CircularStd-Medium.eot?#iefix') format('embedded-opentype'), url('../fonts/CircularStd-Medium.woff2') format('woff2'), url('../fonts/CircularStd-Medium.woff') format('woff'), url('../fonts/CircularStd-Medium.ttf') format('truetype'), url('../fonts/CircularStd-Medium.svg#svgFontName') format('svg'); } /*#sonaar_pro .jumbotron{ font-family:"CircularStd-Book"; background: url("../img/sonaar-music-banner-orange.jpg") no-repeat left top; background-size: cover!important; } #sonaar_pro .jumbotron h1{ font-family:"CircularStd-Medium"; font-size:75px; line-height: 54px; } #sonaar_pro .jumbotron .tagline { font-size: 1.4rem; }*/ #validate_licence .message h3{ color:#fff; } #sonaar_pro .headertxt { max-width: 650px; display: inline-block; } #sonaar_pro{ margin-left:-20px; opacity: 0; transition: opacity 1s ease-out; } #sonaar_pro.ready{ opacity: 1; } #sonaar_pro .logo { text-align: left; } #sonaar_pro .jumbotron{ padding: 30px; border-radius: 0; } #sonaar_pro .card{ padding: 0; max-width: 100%; } #sonaar_pro .card-deck{ padding:0; } #sonaar_pro .stats-box .card-body{ padding: 30px 0 20px; } #sonaar_pro .stats-box .card-body h2{ font-size: 4rem; } #sonaar_pro .stats-table .card-body{ padding: 0; } #sonaar_pro .chart-container { position: relative; margin: auto; height: 450px; width: 100%; } #sonaar_pro .breadcrumb{ margin-left: 0; } #sonaar_pro #sonaar-daterange{ float: right; } .wp-list-table #alb_stats{ width: 24px; } .wp-list-table .alb_icon a{ display: block; position: relative; border-radius: 50%; width: 64px; height: 64px; } .wp-list-table .alb_icon a img{ border-radius: 50%; content:''; width: 64px; height: 64px; background: rgb(20, 21, 31); box-shadow: 1px 1px 2px rgba(0, 0, 0, 0.4) } .wp-list-table .alb_icon a:hover{ animation: rotate 4s linear infinite; } @keyframes rotate{ 100%{ transform: rotate(360deg) } } .wp-list-table .alb_icon a::before, .wp-list-table .alb_icon a::after{ content:''; width: 5px; height: 5px; background: #fff; position: absolute; border-radius: 100%; top: 50%; left:50%; transform: translateX(-50%) translateY(-50%); box-shadow: inset 1px 1px 1px rgba(0, 0, 0, 0.75) } .wp-list-table .alb_icon a::before{ width: 25px; height: 25px; background:rgba(0, 0, 0, 0.75); box-shadow: none; } button.btn { text-transform: uppercase !important; padding: 20px 40px 20px 40px !important; letter-spacing: 0.15em !important; font-size: 14px !important; border: none; border-radius:4px; background-color: #00c78f; color: #000; -webkit-transition: all .3s ease; transition: all .3s ease; } button:focus { background-color: #000; color: #fff; box-shadow: 0 4px 20px -5px rgba(0,0,0,0.5); } button.btn-hidden{ display:none; } .message { margin-top: 40px; margin-bottom: 30px; display: inline-block; padding: 30px; width: 700px; background-color: #202020; border-radius: 6px; } .message.display h3 { line-height: 21px; border-bottom: none!important; } .message .error { color: #ff4800; } .current-version{ font-size: 0.8rem!important; font-weight: 100; letter-spacing: 1px; color: #787878; } .sub-lead { font-size: 13px !important; color: #ccc; } #licenceKey { max-width: 760px; width:100%; padding: 20px; font-size: 24px; letter-spacing: 6px; margin:20px auto; text-align:center; border-radius: 6px; border:none; } .button-enter-active { transition: all .2s cubic-bezier(0.55, 0.085, 0.68, 0.53); } .button-leave-active { transition: all .25s cubic-bezier(0.25, 0.46, 0.45, 0.94); } .button-enter, .button-leave-to { opacity: 0; } .store-content{ display: none; } .srmp3-var-licensecontract { display: inline-block; border-radius: 4px; padding: 15px!important; margin: 10px!important; min-width: 240px; background-color: #f4f4f4; } .srmp3_currrent_plan { font-size: 14px; display: inline-block; width: fit-content; padding: 10px 20px; background-color: #000; color: #fff; border-radius: 100px; }PK!˲ICC!admin/css/daterangepicker.min.cssnu[/** * Minified by jsDelivr using clean-css v4.2.1. * Original file: /npm/daterangepicker@3.1.0/daterangepicker.css * * Do NOT use SRI with dynamically generated files! More information: https://www.jsdelivr.com/using-sri-with-dynamic-files */ .daterangepicker{position:absolute;color:inherit;background-color:#fff;border-radius:4px;border:1px solid #ddd;width:278px;max-width:none;padding:0;margin-top:7px;top:100px;left:20px;z-index:3001;display:none;font-family:arial;font-size:15px;line-height:1em}.daterangepicker:after,.daterangepicker:before{position:absolute;display:inline-block;border-bottom-color:rgba(0,0,0,.2);content:''}.daterangepicker:before{top:-7px;border-right:7px solid transparent;border-left:7px solid transparent;border-bottom:7px solid #ccc}.daterangepicker:after{top:-6px;border-right:6px solid transparent;border-bottom:6px solid #fff;border-left:6px solid transparent}.daterangepicker.opensleft:before{right:9px}.daterangepicker.opensleft:after{right:10px}.daterangepicker.openscenter:before{left:0;right:0;width:0;margin-left:auto;margin-right:auto}.daterangepicker.openscenter:after{left:0;right:0;width:0;margin-left:auto;margin-right:auto}.daterangepicker.opensright:before{left:9px}.daterangepicker.opensright:after{left:10px}.daterangepicker.drop-up{margin-top:-7px}.daterangepicker.drop-up:before{top:initial;bottom:-7px;border-bottom:initial;border-top:7px solid #ccc}.daterangepicker.drop-up:after{top:initial;bottom:-6px;border-bottom:initial;border-top:6px solid #fff}.daterangepicker.single .daterangepicker .ranges,.daterangepicker.single .drp-calendar{float:none}.daterangepicker.single .drp-selected{display:none}.daterangepicker.show-calendar .drp-calendar{display:block}.daterangepicker.show-calendar .drp-buttons{display:block}.daterangepicker.auto-apply .drp-buttons{display:none}.daterangepicker .drp-calendar{display:none;max-width:270px}.daterangepicker .drp-calendar.left{padding:8px 0 8px 8px}.daterangepicker .drp-calendar.right{padding:8px}.daterangepicker .drp-calendar.single .calendar-table{border:none}.daterangepicker .calendar-table .next span,.daterangepicker .calendar-table .prev span{color:#fff;border:solid #000;border-width:0 2px 2px 0;border-radius:0;display:inline-block;padding:3px}.daterangepicker .calendar-table .next span{transform:rotate(-45deg);-webkit-transform:rotate(-45deg)}.daterangepicker .calendar-table .prev span{transform:rotate(135deg);-webkit-transform:rotate(135deg)}.daterangepicker .calendar-table td,.daterangepicker .calendar-table th{white-space:nowrap;text-align:center;vertical-align:middle;min-width:32px;width:32px;height:24px;line-height:24px;font-size:12px;border-radius:4px;border:1px solid transparent;white-space:nowrap;cursor:pointer}.daterangepicker .calendar-table{border:1px solid #fff;border-radius:4px;background-color:#fff}.daterangepicker .calendar-table table{width:100%;margin:0;border-spacing:0;border-collapse:collapse}.daterangepicker td.available:hover,.daterangepicker th.available:hover{background-color:#eee;border-color:transparent;color:inherit}.daterangepicker td.week,.daterangepicker th.week{font-size:80%;color:#ccc}.daterangepicker td.off,.daterangepicker td.off.end-date,.daterangepicker td.off.in-range,.daterangepicker td.off.start-date{background-color:#fff;border-color:transparent;color:#999}.daterangepicker td.in-range{background-color:#ebf4f8;border-color:transparent;color:#000;border-radius:0}.daterangepicker td.start-date{border-radius:4px 0 0 4px}.daterangepicker td.end-date{border-radius:0 4px 4px 0}.daterangepicker td.start-date.end-date{border-radius:4px}.daterangepicker td.active,.daterangepicker td.active:hover{background-color:#357ebd;border-color:transparent;color:#fff}.daterangepicker th.month{width:auto}.daterangepicker option.disabled,.daterangepicker td.disabled{color:#999;cursor:not-allowed;text-decoration:line-through}.daterangepicker select.monthselect,.daterangepicker select.yearselect{font-size:12px;padding:1px;height:auto;margin:0;cursor:default}.daterangepicker select.monthselect{margin-right:2%;width:56%}.daterangepicker select.yearselect{width:40%}.daterangepicker select.ampmselect,.daterangepicker select.hourselect,.daterangepicker select.minuteselect,.daterangepicker select.secondselect{width:50px;margin:0 auto;background:#eee;border:1px solid #eee;padding:2px;outline:0;font-size:12px}.daterangepicker .calendar-time{text-align:center;margin:4px auto 0 auto;line-height:30px;position:relative}.daterangepicker .calendar-time select.disabled{color:#ccc;cursor:not-allowed}.daterangepicker .drp-buttons{clear:both;text-align:right;padding:8px;border-top:1px solid #ddd;display:none;line-height:12px;vertical-align:middle}.daterangepicker .drp-selected{display:inline-block;font-size:12px;padding-right:8px}.daterangepicker .drp-buttons .btn{margin-left:8px;font-size:12px;font-weight:700;padding:4px 8px}.daterangepicker.show-ranges.single.rtl .drp-calendar.left{border-right:1px solid #ddd}.daterangepicker.show-ranges.single.ltr .drp-calendar.left{border-left:1px solid #ddd}.daterangepicker.show-ranges.rtl .drp-calendar.right{border-right:1px solid #ddd}.daterangepicker.show-ranges.ltr .drp-calendar.left{border-left:1px solid #ddd}.daterangepicker .ranges{float:none;text-align:left;margin:0}.daterangepicker.show-calendar .ranges{margin-top:8px}.daterangepicker .ranges ul{list-style:none;margin:0 auto;padding:0;width:100%}.daterangepicker .ranges li{font-size:12px;padding:8px 12px;cursor:pointer}.daterangepicker .ranges li:hover{background-color:#eee}.daterangepicker .ranges li.active{background-color:#08c;color:#fff}@media (min-width:564px){.daterangepicker{width:auto}.daterangepicker .ranges ul{width:140px}.daterangepicker.single .ranges ul{width:100%}.daterangepicker.single .drp-calendar.left{clear:none}.daterangepicker.single .drp-calendar,.daterangepicker.single .ranges{float:left}.daterangepicker{direction:ltr;text-align:left}.daterangepicker .drp-calendar.left{clear:left;margin-right:0}.daterangepicker .drp-calendar.left .calendar-table{border-right:none;border-top-right-radius:0;border-bottom-right-radius:0}.daterangepicker .drp-calendar.right{margin-left:0}.daterangepicker .drp-calendar.right .calendar-table{border-left:none;border-top-left-radius:0;border-bottom-left-radius:0}.daterangepicker .drp-calendar.left .calendar-table{padding-right:8px}.daterangepicker .drp-calendar,.daterangepicker .ranges{float:left}}@media (min-width:730px){.daterangepicker .ranges{width:auto}.daterangepicker .ranges{float:left}.daterangepicker.rtl .ranges{float:right}.daterangepicker .drp-calendar.left{clear:none!important}} /*# sourceMappingURL=/sm/977d76daee7276d0fb7eb98d2d7dcb01c5e058f63c51d94902d4394e65335f6e.map */PK!fػ==admin/css/select2.min.cssnu[.select2-container{box-sizing:border-box;display:inline-block;margin:0;position:relative;vertical-align:middle}.select2-container .select2-selection--single{box-sizing:border-box;cursor:pointer;display:block;height:28px;user-select:none;-webkit-user-select:none}.select2-container .select2-selection--single .select2-selection__rendered{display:block;padding-left:8px;padding-right:20px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.select2-container .select2-selection--single .select2-selection__clear{background-color:transparent;border:none;font-size:1em}.select2-container[dir="rtl"] .select2-selection--single .select2-selection__rendered{padding-right:8px;padding-left:20px}.select2-container .select2-selection--multiple{box-sizing:border-box;cursor:pointer;display:block;min-height:32px;user-select:none;-webkit-user-select:none}.select2-container .select2-selection--multiple .select2-selection__rendered{display:inline;list-style:none;padding:0}.select2-container .select2-selection--multiple .select2-selection__clear{background-color:transparent;border:none;font-size:1em}.select2-container .select2-search--inline .select2-search__field{box-sizing:border-box;border:none;font-size:100%;margin-top:5px;margin-left:5px;padding:0}.select2-container .select2-search--inline .select2-search__field::-webkit-search-cancel-button{-webkit-appearance:none}.select2-dropdown{background-color:white;border:1px solid #aaa;border-radius:4px;box-sizing:border-box;display:block;position:absolute;left:-100000px;width:100%;z-index:1051}.select2-results{display:block}.select2-results__options{list-style:none;margin:0;padding:0}.select2-results__option{padding:6px;user-select:none;-webkit-user-select:none}.select2-results__option--selectable{cursor:pointer}.select2-container--open .select2-dropdown{left:0}.select2-container--open .select2-dropdown--above{border-bottom:none;border-bottom-left-radius:0;border-bottom-right-radius:0}.select2-container--open .select2-dropdown--below{border-top:none;border-top-left-radius:0;border-top-right-radius:0}.select2-search--dropdown{display:block;padding:4px}.select2-search--dropdown .select2-search__field{padding:4px;width:100%;box-sizing:border-box}.select2-search--dropdown .select2-search__field::-webkit-search-cancel-button{-webkit-appearance:none}.select2-search--dropdown.select2-search--hide{display:none}.select2-close-mask{border:0;margin:0;padding:0;display:block;position:fixed;left:0;top:0;min-height:100%;min-width:100%;height:auto;width:auto;opacity:0;z-index:99;background-color:#fff;filter:alpha(opacity=0)}.select2-hidden-accessible{border:0 !important;clip:rect(0 0 0 0) !important;-webkit-clip-path:inset(50%) !important;clip-path:inset(50%) !important;height:1px !important;overflow:hidden !important;padding:0 !important;position:absolute !important;width:1px !important;white-space:nowrap !important}.select2-container--default .select2-selection--single{background-color:#fff;border:1px solid #aaa;border-radius:4px}.select2-container--default .select2-selection--single .select2-selection__rendered{color:#444;line-height:28px}.select2-container--default .select2-selection--single .select2-selection__clear{cursor:pointer;float:right;font-weight:bold;height:26px;margin-right:20px;padding-right:0px}.select2-container--default .select2-selection--single .select2-selection__placeholder{color:#999}.select2-container--default .select2-selection--single .select2-selection__arrow{height:26px;position:absolute;top:1px;right:1px;width:20px}.select2-container--default .select2-selection--single .select2-selection__arrow b{border-color:#888 transparent transparent transparent;border-style:solid;border-width:5px 4px 0 4px;height:0;left:50%;margin-left:-4px;margin-top:-2px;position:absolute;top:50%;width:0}.select2-container--default[dir="rtl"] .select2-selection--single .select2-selection__clear{float:left}.select2-container--default[dir="rtl"] .select2-selection--single .select2-selection__arrow{left:1px;right:auto}.select2-container--default.select2-container--disabled .select2-selection--single{background-color:#eee;cursor:default}.select2-container--default.select2-container--disabled .select2-selection--single .select2-selection__clear{display:none}.select2-container--default.select2-container--open .select2-selection--single .select2-selection__arrow b{border-color:transparent transparent #888 transparent;border-width:0 4px 5px 4px}.select2-container--default .select2-selection--multiple{background-color:white;border:1px solid #aaa;border-radius:4px;cursor:text;padding-bottom:5px;padding-right:5px}.select2-container--default .select2-selection--multiple .select2-selection__clear{cursor:pointer;float:right;font-weight:bold;height:20px;margin-right:10px;margin-top:5px;padding:1px}.select2-container--default .select2-selection--multiple .select2-selection__choice{background-color:#e4e4e4;border:1px solid #aaa;border-radius:4px;display:inline-block;margin-left:5px;margin-top:5px;padding:0}.select2-container--default .select2-selection--multiple .select2-selection__choice__display{cursor:default;padding-left:2px;padding-right:5px}.select2-container--default .select2-selection--multiple .select2-selection__choice__remove{background-color:transparent;border:none;border-right:1px solid #aaa;border-top-left-radius:4px;border-bottom-left-radius:4px;color:#999;cursor:pointer;font-size:1em;font-weight:bold;padding:0 4px}.select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover,.select2-container--default .select2-selection--multiple .select2-selection__choice__remove:focus{background-color:#f1f1f1;color:#333;outline:none}.select2-container--default[dir="rtl"] .select2-selection--multiple .select2-selection__choice{margin-left:5px;margin-right:auto}.select2-container--default[dir="rtl"] .select2-selection--multiple .select2-selection__choice__display{padding-left:5px;padding-right:2px}.select2-container--default[dir="rtl"] .select2-selection--multiple .select2-selection__choice__remove{border-left:1px solid #aaa;border-right:none;border-top-left-radius:0;border-bottom-left-radius:0;border-top-right-radius:4px;border-bottom-right-radius:4px}.select2-container--default[dir="rtl"] .select2-selection--multiple .select2-selection__clear{float:left;margin-left:10px;margin-right:auto}.select2-container--default.select2-container--focus .select2-selection--multiple{border:solid black 1px;outline:0}.select2-container--default.select2-container--disabled .select2-selection--multiple{background-color:#eee;cursor:default}.select2-container--default.select2-container--disabled .select2-selection__choice__remove{display:none}.select2-container--default.select2-container--open.select2-container--above .select2-selection--single,.select2-container--default.select2-container--open.select2-container--above .select2-selection--multiple{border-top-left-radius:0;border-top-right-radius:0}.select2-container--default.select2-container--open.select2-container--below .select2-selection--single,.select2-container--default.select2-container--open.select2-container--below .select2-selection--multiple{border-bottom-left-radius:0;border-bottom-right-radius:0}.select2-container--default .select2-search--dropdown .select2-search__field{border:1px solid #aaa}.select2-container--default .select2-search--inline .select2-search__field{background:transparent;border:none;outline:0;box-shadow:none;-webkit-appearance:textfield}.select2-container--default .select2-results>.select2-results__options{max-height:200px;overflow-y:auto}.select2-container--default .select2-results__option .select2-results__option{padding-left:1em}.select2-container--default .select2-results__option .select2-results__option .select2-results__group{padding-left:0}.select2-container--default .select2-results__option .select2-results__option .select2-results__option{margin-left:-1em;padding-left:2em}.select2-container--default .select2-results__option .select2-results__option .select2-results__option .select2-results__option{margin-left:-2em;padding-left:3em}.select2-container--default .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option{margin-left:-3em;padding-left:4em}.select2-container--default .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option{margin-left:-4em;padding-left:5em}.select2-container--default .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option{margin-left:-5em;padding-left:6em}.select2-container--default .select2-results__option--group{padding:0}.select2-container--default .select2-results__option--disabled{color:#999}.select2-container--default .select2-results__option--selected{background-color:#ddd}.select2-container--default .select2-results__option--highlighted.select2-results__option--selectable{background-color:#5897fb;color:white}.select2-container--default .select2-results__group{cursor:default;display:block;padding:6px}.select2-container--classic .select2-selection--single{background-color:#f7f7f7;border:1px solid #aaa;border-radius:4px;outline:0;background-image:-webkit-linear-gradient(top, #fff 50%, #eee 100%);background-image:-o-linear-gradient(top, #fff 50%, #eee 100%);background-image:linear-gradient(to bottom, #fff 50%, #eee 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#FFFFFFFF', endColorstr='#FFEEEEEE', GradientType=0)}.select2-container--classic .select2-selection--single:focus{border:1px solid #5897fb}.select2-container--classic .select2-selection--single .select2-selection__rendered{color:#444;line-height:28px}.select2-container--classic .select2-selection--single .select2-selection__clear{cursor:pointer;float:right;font-weight:bold;height:26px;margin-right:20px}.select2-container--classic .select2-selection--single .select2-selection__placeholder{color:#999}.select2-container--classic .select2-selection--single .select2-selection__arrow{background-color:#ddd;border:none;border-left:1px solid #aaa;border-top-right-radius:4px;border-bottom-right-radius:4px;height:26px;position:absolute;top:1px;right:1px;width:20px;background-image:-webkit-linear-gradient(top, #eee 50%, #ccc 100%);background-image:-o-linear-gradient(top, #eee 50%, #ccc 100%);background-image:linear-gradient(to bottom, #eee 50%, #ccc 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#FFEEEEEE', endColorstr='#FFCCCCCC', GradientType=0)}.select2-container--classic .select2-selection--single .select2-selection__arrow b{border-color:#888 transparent transparent transparent;border-style:solid;border-width:5px 4px 0 4px;height:0;left:50%;margin-left:-4px;margin-top:-2px;position:absolute;top:50%;width:0}.select2-container--classic[dir="rtl"] .select2-selection--single .select2-selection__clear{float:left}.select2-container--classic[dir="rtl"] .select2-selection--single .select2-selection__arrow{border:none;border-right:1px solid #aaa;border-radius:0;border-top-left-radius:4px;border-bottom-left-radius:4px;left:1px;right:auto}.select2-container--classic.select2-container--open .select2-selection--single{border:1px solid #5897fb}.select2-container--classic.select2-container--open .select2-selection--single .select2-selection__arrow{background:transparent;border:none}.select2-container--classic.select2-container--open .select2-selection--single .select2-selection__arrow b{border-color:transparent transparent #888 transparent;border-width:0 4px 5px 4px}.select2-container--classic.select2-container--open.select2-container--above .select2-selection--single{border-top:none;border-top-left-radius:0;border-top-right-radius:0;background-image:-webkit-linear-gradient(top, #fff 0%, #eee 50%);background-image:-o-linear-gradient(top, #fff 0%, #eee 50%);background-image:linear-gradient(to bottom, #fff 0%, #eee 50%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#FFFFFFFF', endColorstr='#FFEEEEEE', GradientType=0)}.select2-container--classic.select2-container--open.select2-container--below .select2-selection--single{border-bottom:none;border-bottom-left-radius:0;border-bottom-right-radius:0;background-image:-webkit-linear-gradient(top, #eee 50%, #fff 100%);background-image:-o-linear-gradient(top, #eee 50%, #fff 100%);background-image:linear-gradient(to bottom, #eee 50%, #fff 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#FFEEEEEE', endColorstr='#FFFFFFFF', GradientType=0)}.select2-container--classic .select2-selection--multiple{background-color:white;border:1px solid #aaa;border-radius:4px;cursor:text;outline:0;padding-bottom:5px;padding-right:5px}.select2-container--classic .select2-selection--multiple:focus{border:1px solid #5897fb}.select2-container--classic .select2-selection--multiple .select2-selection__clear{display:none}.select2-container--classic .select2-selection--multiple .select2-selection__choice{background-color:#e4e4e4;border:1px solid #aaa;border-radius:4px;display:inline-block;margin-left:5px;margin-top:5px;padding:0}.select2-container--classic .select2-selection--multiple .select2-selection__choice__display{cursor:default;padding-left:2px;padding-right:5px}.select2-container--classic .select2-selection--multiple .select2-selection__choice__remove{background-color:transparent;border:none;border-top-left-radius:4px;border-bottom-left-radius:4px;color:#888;cursor:pointer;font-size:1em;font-weight:bold;padding:0 4px}.select2-container--classic .select2-selection--multiple .select2-selection__choice__remove:hover{color:#555;outline:none}.select2-container--classic[dir="rtl"] .select2-selection--multiple .select2-selection__choice{margin-left:5px;margin-right:auto}.select2-container--classic[dir="rtl"] .select2-selection--multiple .select2-selection__choice__display{padding-left:5px;padding-right:2px}.select2-container--classic[dir="rtl"] .select2-selection--multiple .select2-selection__choice__remove{border-top-left-radius:0;border-bottom-left-radius:0;border-top-right-radius:4px;border-bottom-right-radius:4px}.select2-container--classic.select2-container--open .select2-selection--multiple{border:1px solid #5897fb}.select2-container--classic.select2-container--open.select2-container--above .select2-selection--multiple{border-top:none;border-top-left-radius:0;border-top-right-radius:0}.select2-container--classic.select2-container--open.select2-container--below .select2-selection--multiple{border-bottom:none;border-bottom-left-radius:0;border-bottom-right-radius:0}.select2-container--classic .select2-search--dropdown .select2-search__field{border:1px solid #aaa;outline:0}.select2-container--classic .select2-search--inline .select2-search__field{outline:0;box-shadow:none}.select2-container--classic .select2-dropdown{background-color:#fff;border:1px solid transparent}.select2-container--classic .select2-dropdown--above{border-bottom:none}.select2-container--classic .select2-dropdown--below{border-top:none}.select2-container--classic .select2-results>.select2-results__options{max-height:200px;overflow-y:auto}.select2-container--classic .select2-results__option--group{padding:0}.select2-container--classic .select2-results__option--disabled{color:grey}.select2-container--classic .select2-results__option--highlighted.select2-results__option--selectable{background-color:#3875d7;color:#fff}.select2-container--classic .select2-results__group{cursor:default;display:block;padding:6px}.select2-container--classic.select2-container--open .select2-dropdown{border-color:#5897fb} PK!9!!admin/css/bootstrap.min.cssnu[@charset "UTF-8";/*! * Bootstrap v5.1.3 (https://getbootstrap.com/) * Copyright 2011-2021 The Bootstrap Authors * Copyright 2011-2021 Twitter, Inc. * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) */:root{--bs-blue:#0d6efd;--bs-indigo:#6610f2;--bs-purple:#6f42c1;--bs-pink:#d63384;--bs-red:#dc3545;--bs-orange:#fd7e14;--bs-yellow:#ffc107;--bs-green:#198754;--bs-teal:#20c997;--bs-cyan:#0dcaf0;--bs-white:#fff;--bs-gray:#6c757d;--bs-gray-dark:#343a40;--bs-gray-100:#f8f9fa;--bs-gray-200:#e9ecef;--bs-gray-300:#dee2e6;--bs-gray-400:#ced4da;--bs-gray-500:#adb5bd;--bs-gray-600:#6c757d;--bs-gray-700:#495057;--bs-gray-800:#343a40;--bs-gray-900:#212529;--bs-primary:#0d6efd;--bs-secondary:#6c757d;--bs-success:#198754;--bs-info:#0dcaf0;--bs-warning:#ffc107;--bs-danger:#dc3545;--bs-light:#f8f9fa;--bs-dark:#212529;--bs-primary-rgb:13,110,253;--bs-secondary-rgb:108,117,125;--bs-success-rgb:25,135,84;--bs-info-rgb:13,202,240;--bs-warning-rgb:255,193,7;--bs-danger-rgb:220,53,69;--bs-light-rgb:248,249,250;--bs-dark-rgb:33,37,41;--bs-white-rgb:255,255,255;--bs-black-rgb:0,0,0;--bs-body-color-rgb:33,37,41;--bs-body-bg-rgb:255,255,255;--bs-font-sans-serif:system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans","Liberation Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";--bs-font-monospace:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;--bs-gradient:linear-gradient(180deg, rgba(255, 255, 255, 0.15), rgba(255, 255, 255, 0));--bs-body-font-family:var(--bs-font-sans-serif);--bs-body-font-size:1rem;--bs-body-font-weight:400;--bs-body-line-height:1.5;--bs-body-color:#212529;--bs-body-bg:#fff}*,::after,::before{box-sizing:border-box}@media (prefers-reduced-motion:no-preference){:root{scroll-behavior:smooth}}body{margin:0;font-family:var(--bs-body-font-family);font-size:var(--bs-body-font-size);font-weight:var(--bs-body-font-weight);line-height:var(--bs-body-line-height);color:var(--bs-body-color);text-align:var(--bs-body-text-align);background-color:var(--bs-body-bg);-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent}hr{margin:1rem 0;color:inherit;background-color:currentColor;border:0;opacity:.25}hr:not([size]){height:1px}.h1,.h2,.h3,.h4,.h5,.h6,h1,h2,h3,h4,h5,h6{margin-top:0;margin-bottom:.5rem;font-weight:500;line-height:1.2}.h1,h1{font-size:calc(1.375rem + 1.5vw)}@media (min-width:1200px){.h1,h1{font-size:2.5rem}}.h2,h2{font-size:calc(1.325rem + .9vw)}@media (min-width:1200px){.h2,h2{font-size:2rem}}.h3,h3{font-size:calc(1.3rem + .6vw)}@media (min-width:1200px){.h3,h3{font-size:1.75rem}}.h4,h4{font-size:calc(1.275rem + .3vw)}@media (min-width:1200px){.h4,h4{font-size:1.5rem}}.h5,h5{font-size:1.25rem}.h6,h6{font-size:1rem}p{margin-top:0;margin-bottom:1rem}abbr[data-bs-original-title],abbr[title]{-webkit-text-decoration:underline dotted;text-decoration:underline dotted;cursor:help;-webkit-text-decoration-skip-ink:none;text-decoration-skip-ink:none}address{margin-bottom:1rem;font-style:normal;line-height:inherit}ol,ul{padding-left:2rem}dl,ol,ul{margin-top:0;margin-bottom:1rem}ol ol,ol ul,ul ol,ul ul{margin-bottom:0}dt{font-weight:700}dd{margin-bottom:.5rem;margin-left:0}blockquote{margin:0 0 1rem}b,strong{font-weight:bolder}.small,small{font-size:.875em}.mark,mark{padding:.2em;background-color:#fcf8e3}sub,sup{position:relative;font-size:.75em;line-height:0;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}a{color:#0d6efd;text-decoration:underline}a:hover{color:#0a58ca}a:not([href]):not([class]),a:not([href]):not([class]):hover{color:inherit;text-decoration:none}code,kbd,pre,samp{font-family:var(--bs-font-monospace);font-size:1em;direction:ltr;unicode-bidi:bidi-override}pre{display:block;margin-top:0;margin-bottom:1rem;overflow:auto;font-size:.875em}pre code{font-size:inherit;color:inherit;word-break:normal}code{font-size:.875em;color:#d63384;word-wrap:break-word}a>code{color:inherit}kbd{padding:.2rem .4rem;font-size:.875em;color:#fff;background-color:#212529;border-radius:.2rem}kbd kbd{padding:0;font-size:1em;font-weight:700}figure{margin:0 0 1rem}img,svg{vertical-align:middle}table{caption-side:bottom;border-collapse:collapse}caption{padding-top:.5rem;padding-bottom:.5rem;color:#6c757d;text-align:left}th{text-align:inherit;text-align:-webkit-match-parent}tbody,td,tfoot,th,thead,tr{border-color:inherit;border-style:solid;border-width:0}label{display:inline-block}button{border-radius:0}button:focus:not(:focus-visible){outline:0}button,input,optgroup,select,textarea{margin:0;font-family:inherit;font-size:inherit;line-height:inherit}button,select{text-transform:none}[role=button]{cursor:pointer}select{word-wrap:normal}select:disabled{opacity:1}[list]::-webkit-calendar-picker-indicator{display:none}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}[type=button]:not(:disabled),[type=reset]:not(:disabled),[type=submit]:not(:disabled),button:not(:disabled){cursor:pointer}::-moz-focus-inner{padding:0;border-style:none}textarea{resize:vertical}fieldset{min-width:0;padding:0;margin:0;border:0}legend{float:left;width:100%;padding:0;margin-bottom:.5rem;font-size:calc(1.275rem + .3vw);line-height:inherit}@media (min-width:1200px){legend{font-size:1.5rem}}legend+*{clear:left}::-webkit-datetime-edit-day-field,::-webkit-datetime-edit-fields-wrapper,::-webkit-datetime-edit-hour-field,::-webkit-datetime-edit-minute,::-webkit-datetime-edit-month-field,::-webkit-datetime-edit-text,::-webkit-datetime-edit-year-field{padding:0}::-webkit-inner-spin-button{height:auto}[type=search]{outline-offset:-2px;-webkit-appearance:textfield}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-color-swatch-wrapper{padding:0}::-webkit-file-upload-button{font:inherit}::file-selector-button{font:inherit}::-webkit-file-upload-button{font:inherit;-webkit-appearance:button}output{display:inline-block}iframe{border:0}summary{display:list-item;cursor:pointer}progress{vertical-align:baseline}[hidden]{display:none!important}.lead{font-size:1.25rem;font-weight:300}.display-1{font-size:calc(1.625rem + 4.5vw);font-weight:300;line-height:1.2}@media (min-width:1200px){.display-1{font-size:5rem}}.display-2{font-size:calc(1.575rem + 3.9vw);font-weight:300;line-height:1.2}@media (min-width:1200px){.display-2{font-size:4.5rem}}.display-3{font-size:calc(1.525rem + 3.3vw);font-weight:300;line-height:1.2}@media (min-width:1200px){.display-3{font-size:4rem}}.display-4{font-size:calc(1.475rem + 2.7vw);font-weight:300;line-height:1.2}@media (min-width:1200px){.display-4{font-size:3.5rem}}.display-5{font-size:calc(1.425rem + 2.1vw);font-weight:300;line-height:1.2}@media (min-width:1200px){.display-5{font-size:3rem}}.display-6{font-size:calc(1.375rem + 1.5vw);font-weight:300;line-height:1.2}@media (min-width:1200px){.display-6{font-size:2.5rem}}.list-unstyled{padding-left:0;list-style:none}.list-inline{padding-left:0;list-style:none}.list-inline-item{display:inline-block}.list-inline-item:not(:last-child){margin-right:.5rem}.initialism{font-size:.875em;text-transform:uppercase}.blockquote{margin-bottom:1rem;font-size:1.25rem}.blockquote>:last-child{margin-bottom:0}.blockquote-footer{margin-top:-1rem;margin-bottom:1rem;font-size:.875em;color:#6c757d}.blockquote-footer::before{content:"— "}.img-fluid{max-width:100%;height:auto}.img-thumbnail{padding:.25rem;background-color:#fff;border:1px solid #dee2e6;border-radius:.25rem;max-width:100%;height:auto}.figure{display:inline-block}.figure-img{margin-bottom:.5rem;line-height:1}.figure-caption{font-size:.875em;color:#6c757d}.container,.container-fluid,.container-lg,.container-md,.container-sm,.container-xl,.container-xxl{width:100%;padding-right:var(--bs-gutter-x,.75rem);padding-left:var(--bs-gutter-x,.75rem);margin-right:auto;margin-left:auto}@media (min-width:576px){.container,.container-sm{max-width:540px}}@media (min-width:768px){.container,.container-md,.container-sm{max-width:720px}}@media (min-width:992px){.container,.container-lg,.container-md,.container-sm{max-width:960px}}@media (min-width:1200px){.container,.container-lg,.container-md,.container-sm,.container-xl{max-width:1140px}}@media (min-width:1400px){.container,.container-lg,.container-md,.container-sm,.container-xl,.container-xxl{max-width:1320px}}.row{--bs-gutter-x:1.5rem;--bs-gutter-y:0;display:flex;flex-wrap:wrap;margin-top:calc(-1 * var(--bs-gutter-y));margin-right:calc(-.5 * var(--bs-gutter-x));margin-left:calc(-.5 * var(--bs-gutter-x))}.row>*{flex-shrink:0;width:100%;max-width:100%;padding-right:calc(var(--bs-gutter-x) * .5);padding-left:calc(var(--bs-gutter-x) * .5);margin-top:var(--bs-gutter-y)}.col{flex:1 0 0%}.row-cols-auto>*{flex:0 0 auto;width:auto}.row-cols-1>*{flex:0 0 auto;width:100%}.row-cols-2>*{flex:0 0 auto;width:50%}.row-cols-3>*{flex:0 0 auto;width:33.3333333333%}.row-cols-4>*{flex:0 0 auto;width:25%}.row-cols-5>*{flex:0 0 auto;width:20%}.row-cols-6>*{flex:0 0 auto;width:16.6666666667%}.col-auto{flex:0 0 auto;width:auto}.col-1{flex:0 0 auto;width:8.33333333%}.col-2{flex:0 0 auto;width:16.66666667%}.col-3{flex:0 0 auto;width:25%}.col-4{flex:0 0 auto;width:33.33333333%}.col-5{flex:0 0 auto;width:41.66666667%}.col-6{flex:0 0 auto;width:50%}.col-7{flex:0 0 auto;width:58.33333333%}.col-8{flex:0 0 auto;width:66.66666667%}.col-9{flex:0 0 auto;width:75%}.col-10{flex:0 0 auto;width:83.33333333%}.col-11{flex:0 0 auto;width:91.66666667%}.col-12{flex:0 0 auto;width:100%}.offset-1{margin-left:8.33333333%}.offset-2{margin-left:16.66666667%}.offset-3{margin-left:25%}.offset-4{margin-left:33.33333333%}.offset-5{margin-left:41.66666667%}.offset-6{margin-left:50%}.offset-7{margin-left:58.33333333%}.offset-8{margin-left:66.66666667%}.offset-9{margin-left:75%}.offset-10{margin-left:83.33333333%}.offset-11{margin-left:91.66666667%}.g-0,.gx-0{--bs-gutter-x:0}.g-0,.gy-0{--bs-gutter-y:0}.g-1,.gx-1{--bs-gutter-x:0.25rem}.g-1,.gy-1{--bs-gutter-y:0.25rem}.g-2,.gx-2{--bs-gutter-x:0.5rem}.g-2,.gy-2{--bs-gutter-y:0.5rem}.g-3,.gx-3{--bs-gutter-x:1rem}.g-3,.gy-3{--bs-gutter-y:1rem}.g-4,.gx-4{--bs-gutter-x:1.5rem}.g-4,.gy-4{--bs-gutter-y:1.5rem}.g-5,.gx-5{--bs-gutter-x:3rem}.g-5,.gy-5{--bs-gutter-y:3rem}@media (min-width:576px){.col-sm{flex:1 0 0%}.row-cols-sm-auto>*{flex:0 0 auto;width:auto}.row-cols-sm-1>*{flex:0 0 auto;width:100%}.row-cols-sm-2>*{flex:0 0 auto;width:50%}.row-cols-sm-3>*{flex:0 0 auto;width:33.3333333333%}.row-cols-sm-4>*{flex:0 0 auto;width:25%}.row-cols-sm-5>*{flex:0 0 auto;width:20%}.row-cols-sm-6>*{flex:0 0 auto;width:16.6666666667%}.col-sm-auto{flex:0 0 auto;width:auto}.col-sm-1{flex:0 0 auto;width:8.33333333%}.col-sm-2{flex:0 0 auto;width:16.66666667%}.col-sm-3{flex:0 0 auto;width:25%}.col-sm-4{flex:0 0 auto;width:33.33333333%}.col-sm-5{flex:0 0 auto;width:41.66666667%}.col-sm-6{flex:0 0 auto;width:50%}.col-sm-7{flex:0 0 auto;width:58.33333333%}.col-sm-8{flex:0 0 auto;width:66.66666667%}.col-sm-9{flex:0 0 auto;width:75%}.col-sm-10{flex:0 0 auto;width:83.33333333%}.col-sm-11{flex:0 0 auto;width:91.66666667%}.col-sm-12{flex:0 0 auto;width:100%}.offset-sm-0{margin-left:0}.offset-sm-1{margin-left:8.33333333%}.offset-sm-2{margin-left:16.66666667%}.offset-sm-3{margin-left:25%}.offset-sm-4{margin-left:33.33333333%}.offset-sm-5{margin-left:41.66666667%}.offset-sm-6{margin-left:50%}.offset-sm-7{margin-left:58.33333333%}.offset-sm-8{margin-left:66.66666667%}.offset-sm-9{margin-left:75%}.offset-sm-10{margin-left:83.33333333%}.offset-sm-11{margin-left:91.66666667%}.g-sm-0,.gx-sm-0{--bs-gutter-x:0}.g-sm-0,.gy-sm-0{--bs-gutter-y:0}.g-sm-1,.gx-sm-1{--bs-gutter-x:0.25rem}.g-sm-1,.gy-sm-1{--bs-gutter-y:0.25rem}.g-sm-2,.gx-sm-2{--bs-gutter-x:0.5rem}.g-sm-2,.gy-sm-2{--bs-gutter-y:0.5rem}.g-sm-3,.gx-sm-3{--bs-gutter-x:1rem}.g-sm-3,.gy-sm-3{--bs-gutter-y:1rem}.g-sm-4,.gx-sm-4{--bs-gutter-x:1.5rem}.g-sm-4,.gy-sm-4{--bs-gutter-y:1.5rem}.g-sm-5,.gx-sm-5{--bs-gutter-x:3rem}.g-sm-5,.gy-sm-5{--bs-gutter-y:3rem}}@media (min-width:768px){.col-md{flex:1 0 0%}.row-cols-md-auto>*{flex:0 0 auto;width:auto}.row-cols-md-1>*{flex:0 0 auto;width:100%}.row-cols-md-2>*{flex:0 0 auto;width:50%}.row-cols-md-3>*{flex:0 0 auto;width:33.3333333333%}.row-cols-md-4>*{flex:0 0 auto;width:25%}.row-cols-md-5>*{flex:0 0 auto;width:20%}.row-cols-md-6>*{flex:0 0 auto;width:16.6666666667%}.col-md-auto{flex:0 0 auto;width:auto}.col-md-1{flex:0 0 auto;width:8.33333333%}.col-md-2{flex:0 0 auto;width:16.66666667%}.col-md-3{flex:0 0 auto;width:25%}.col-md-4{flex:0 0 auto;width:33.33333333%}.col-md-5{flex:0 0 auto;width:41.66666667%}.col-md-6{flex:0 0 auto;width:50%}.col-md-7{flex:0 0 auto;width:58.33333333%}.col-md-8{flex:0 0 auto;width:66.66666667%}.col-md-9{flex:0 0 auto;width:75%}.col-md-10{flex:0 0 auto;width:83.33333333%}.col-md-11{flex:0 0 auto;width:91.66666667%}.col-md-12{flex:0 0 auto;width:100%}.offset-md-0{margin-left:0}.offset-md-1{margin-left:8.33333333%}.offset-md-2{margin-left:16.66666667%}.offset-md-3{margin-left:25%}.offset-md-4{margin-left:33.33333333%}.offset-md-5{margin-left:41.66666667%}.offset-md-6{margin-left:50%}.offset-md-7{margin-left:58.33333333%}.offset-md-8{margin-left:66.66666667%}.offset-md-9{margin-left:75%}.offset-md-10{margin-left:83.33333333%}.offset-md-11{margin-left:91.66666667%}.g-md-0,.gx-md-0{--bs-gutter-x:0}.g-md-0,.gy-md-0{--bs-gutter-y:0}.g-md-1,.gx-md-1{--bs-gutter-x:0.25rem}.g-md-1,.gy-md-1{--bs-gutter-y:0.25rem}.g-md-2,.gx-md-2{--bs-gutter-x:0.5rem}.g-md-2,.gy-md-2{--bs-gutter-y:0.5rem}.g-md-3,.gx-md-3{--bs-gutter-x:1rem}.g-md-3,.gy-md-3{--bs-gutter-y:1rem}.g-md-4,.gx-md-4{--bs-gutter-x:1.5rem}.g-md-4,.gy-md-4{--bs-gutter-y:1.5rem}.g-md-5,.gx-md-5{--bs-gutter-x:3rem}.g-md-5,.gy-md-5{--bs-gutter-y:3rem}}@media (min-width:992px){.col-lg{flex:1 0 0%}.row-cols-lg-auto>*{flex:0 0 auto;width:auto}.row-cols-lg-1>*{flex:0 0 auto;width:100%}.row-cols-lg-2>*{flex:0 0 auto;width:50%}.row-cols-lg-3>*{flex:0 0 auto;width:33.3333333333%}.row-cols-lg-4>*{flex:0 0 auto;width:25%}.row-cols-lg-5>*{flex:0 0 auto;width:20%}.row-cols-lg-6>*{flex:0 0 auto;width:16.6666666667%}.col-lg-auto{flex:0 0 auto;width:auto}.col-lg-1{flex:0 0 auto;width:8.33333333%}.col-lg-2{flex:0 0 auto;width:16.66666667%}.col-lg-3{flex:0 0 auto;width:25%}.col-lg-4{flex:0 0 auto;width:33.33333333%}.col-lg-5{flex:0 0 auto;width:41.66666667%}.col-lg-6{flex:0 0 auto;width:50%}.col-lg-7{flex:0 0 auto;width:58.33333333%}.col-lg-8{flex:0 0 auto;width:66.66666667%}.col-lg-9{flex:0 0 auto;width:75%}.col-lg-10{flex:0 0 auto;width:83.33333333%}.col-lg-11{flex:0 0 auto;width:91.66666667%}.col-lg-12{flex:0 0 auto;width:100%}.offset-lg-0{margin-left:0}.offset-lg-1{margin-left:8.33333333%}.offset-lg-2{margin-left:16.66666667%}.offset-lg-3{margin-left:25%}.offset-lg-4{margin-left:33.33333333%}.offset-lg-5{margin-left:41.66666667%}.offset-lg-6{margin-left:50%}.offset-lg-7{margin-left:58.33333333%}.offset-lg-8{margin-left:66.66666667%}.offset-lg-9{margin-left:75%}.offset-lg-10{margin-left:83.33333333%}.offset-lg-11{margin-left:91.66666667%}.g-lg-0,.gx-lg-0{--bs-gutter-x:0}.g-lg-0,.gy-lg-0{--bs-gutter-y:0}.g-lg-1,.gx-lg-1{--bs-gutter-x:0.25rem}.g-lg-1,.gy-lg-1{--bs-gutter-y:0.25rem}.g-lg-2,.gx-lg-2{--bs-gutter-x:0.5rem}.g-lg-2,.gy-lg-2{--bs-gutter-y:0.5rem}.g-lg-3,.gx-lg-3{--bs-gutter-x:1rem}.g-lg-3,.gy-lg-3{--bs-gutter-y:1rem}.g-lg-4,.gx-lg-4{--bs-gutter-x:1.5rem}.g-lg-4,.gy-lg-4{--bs-gutter-y:1.5rem}.g-lg-5,.gx-lg-5{--bs-gutter-x:3rem}.g-lg-5,.gy-lg-5{--bs-gutter-y:3rem}}@media (min-width:1200px){.col-xl{flex:1 0 0%}.row-cols-xl-auto>*{flex:0 0 auto;width:auto}.row-cols-xl-1>*{flex:0 0 auto;width:100%}.row-cols-xl-2>*{flex:0 0 auto;width:50%}.row-cols-xl-3>*{flex:0 0 auto;width:33.3333333333%}.row-cols-xl-4>*{flex:0 0 auto;width:25%}.row-cols-xl-5>*{flex:0 0 auto;width:20%}.row-cols-xl-6>*{flex:0 0 auto;width:16.6666666667%}.col-xl-auto{flex:0 0 auto;width:auto}.col-xl-1{flex:0 0 auto;width:8.33333333%}.col-xl-2{flex:0 0 auto;width:16.66666667%}.col-xl-3{flex:0 0 auto;width:25%}.col-xl-4{flex:0 0 auto;width:33.33333333%}.col-xl-5{flex:0 0 auto;width:41.66666667%}.col-xl-6{flex:0 0 auto;width:50%}.col-xl-7{flex:0 0 auto;width:58.33333333%}.col-xl-8{flex:0 0 auto;width:66.66666667%}.col-xl-9{flex:0 0 auto;width:75%}.col-xl-10{flex:0 0 auto;width:83.33333333%}.col-xl-11{flex:0 0 auto;width:91.66666667%}.col-xl-12{flex:0 0 auto;width:100%}.offset-xl-0{margin-left:0}.offset-xl-1{margin-left:8.33333333%}.offset-xl-2{margin-left:16.66666667%}.offset-xl-3{margin-left:25%}.offset-xl-4{margin-left:33.33333333%}.offset-xl-5{margin-left:41.66666667%}.offset-xl-6{margin-left:50%}.offset-xl-7{margin-left:58.33333333%}.offset-xl-8{margin-left:66.66666667%}.offset-xl-9{margin-left:75%}.offset-xl-10{margin-left:83.33333333%}.offset-xl-11{margin-left:91.66666667%}.g-xl-0,.gx-xl-0{--bs-gutter-x:0}.g-xl-0,.gy-xl-0{--bs-gutter-y:0}.g-xl-1,.gx-xl-1{--bs-gutter-x:0.25rem}.g-xl-1,.gy-xl-1{--bs-gutter-y:0.25rem}.g-xl-2,.gx-xl-2{--bs-gutter-x:0.5rem}.g-xl-2,.gy-xl-2{--bs-gutter-y:0.5rem}.g-xl-3,.gx-xl-3{--bs-gutter-x:1rem}.g-xl-3,.gy-xl-3{--bs-gutter-y:1rem}.g-xl-4,.gx-xl-4{--bs-gutter-x:1.5rem}.g-xl-4,.gy-xl-4{--bs-gutter-y:1.5rem}.g-xl-5,.gx-xl-5{--bs-gutter-x:3rem}.g-xl-5,.gy-xl-5{--bs-gutter-y:3rem}}@media (min-width:1400px){.col-xxl{flex:1 0 0%}.row-cols-xxl-auto>*{flex:0 0 auto;width:auto}.row-cols-xxl-1>*{flex:0 0 auto;width:100%}.row-cols-xxl-2>*{flex:0 0 auto;width:50%}.row-cols-xxl-3>*{flex:0 0 auto;width:33.3333333333%}.row-cols-xxl-4>*{flex:0 0 auto;width:25%}.row-cols-xxl-5>*{flex:0 0 auto;width:20%}.row-cols-xxl-6>*{flex:0 0 auto;width:16.6666666667%}.col-xxl-auto{flex:0 0 auto;width:auto}.col-xxl-1{flex:0 0 auto;width:8.33333333%}.col-xxl-2{flex:0 0 auto;width:16.66666667%}.col-xxl-3{flex:0 0 auto;width:25%}.col-xxl-4{flex:0 0 auto;width:33.33333333%}.col-xxl-5{flex:0 0 auto;width:41.66666667%}.col-xxl-6{flex:0 0 auto;width:50%}.col-xxl-7{flex:0 0 auto;width:58.33333333%}.col-xxl-8{flex:0 0 auto;width:66.66666667%}.col-xxl-9{flex:0 0 auto;width:75%}.col-xxl-10{flex:0 0 auto;width:83.33333333%}.col-xxl-11{flex:0 0 auto;width:91.66666667%}.col-xxl-12{flex:0 0 auto;width:100%}.offset-xxl-0{margin-left:0}.offset-xxl-1{margin-left:8.33333333%}.offset-xxl-2{margin-left:16.66666667%}.offset-xxl-3{margin-left:25%}.offset-xxl-4{margin-left:33.33333333%}.offset-xxl-5{margin-left:41.66666667%}.offset-xxl-6{margin-left:50%}.offset-xxl-7{margin-left:58.33333333%}.offset-xxl-8{margin-left:66.66666667%}.offset-xxl-9{margin-left:75%}.offset-xxl-10{margin-left:83.33333333%}.offset-xxl-11{margin-left:91.66666667%}.g-xxl-0,.gx-xxl-0{--bs-gutter-x:0}.g-xxl-0,.gy-xxl-0{--bs-gutter-y:0}.g-xxl-1,.gx-xxl-1{--bs-gutter-x:0.25rem}.g-xxl-1,.gy-xxl-1{--bs-gutter-y:0.25rem}.g-xxl-2,.gx-xxl-2{--bs-gutter-x:0.5rem}.g-xxl-2,.gy-xxl-2{--bs-gutter-y:0.5rem}.g-xxl-3,.gx-xxl-3{--bs-gutter-x:1rem}.g-xxl-3,.gy-xxl-3{--bs-gutter-y:1rem}.g-xxl-4,.gx-xxl-4{--bs-gutter-x:1.5rem}.g-xxl-4,.gy-xxl-4{--bs-gutter-y:1.5rem}.g-xxl-5,.gx-xxl-5{--bs-gutter-x:3rem}.g-xxl-5,.gy-xxl-5{--bs-gutter-y:3rem}}.table{--bs-table-bg:transparent;--bs-table-accent-bg:transparent;--bs-table-striped-color:#212529;--bs-table-striped-bg:rgba(0, 0, 0, 0.05);--bs-table-active-color:#212529;--bs-table-active-bg:rgba(0, 0, 0, 0.1);--bs-table-hover-color:#212529;--bs-table-hover-bg:rgba(0, 0, 0, 0.075);width:100%;margin-bottom:1rem;color:#212529;vertical-align:top;border-color:#dee2e6}.table>:not(caption)>*>*{padding:.5rem .5rem;background-color:var(--bs-table-bg);border-bottom-width:1px;box-shadow:inset 0 0 0 9999px var(--bs-table-accent-bg)}.table>tbody{vertical-align:inherit}.table>thead{vertical-align:bottom}.table>:not(:first-child){border-top:2px solid currentColor}.caption-top{caption-side:top}.table-sm>:not(caption)>*>*{padding:.25rem .25rem}.table-bordered>:not(caption)>*{border-width:1px 0}.table-bordered>:not(caption)>*>*{border-width:0 1px}.table-borderless>:not(caption)>*>*{border-bottom-width:0}.table-borderless>:not(:first-child){border-top-width:0}.table-striped>tbody>tr:nth-of-type(odd)>*{--bs-table-accent-bg:var(--bs-table-striped-bg);color:var(--bs-table-striped-color)}.table-active{--bs-table-accent-bg:var(--bs-table-active-bg);color:var(--bs-table-active-color)}.table-hover>tbody>tr:hover>*{--bs-table-accent-bg:var(--bs-table-hover-bg);color:var(--bs-table-hover-color)}.table-primary{--bs-table-bg:#cfe2ff;--bs-table-striped-bg:#c5d7f2;--bs-table-striped-color:#000;--bs-table-active-bg:#bacbe6;--bs-table-active-color:#000;--bs-table-hover-bg:#bfd1ec;--bs-table-hover-color:#000;color:#000;border-color:#bacbe6}.table-secondary{--bs-table-bg:#e2e3e5;--bs-table-striped-bg:#d7d8da;--bs-table-striped-color:#000;--bs-table-active-bg:#cbccce;--bs-table-active-color:#000;--bs-table-hover-bg:#d1d2d4;--bs-table-hover-color:#000;color:#000;border-color:#cbccce}.table-success{--bs-table-bg:#d1e7dd;--bs-table-striped-bg:#c7dbd2;--bs-table-striped-color:#000;--bs-table-active-bg:#bcd0c7;--bs-table-active-color:#000;--bs-table-hover-bg:#c1d6cc;--bs-table-hover-color:#000;color:#000;border-color:#bcd0c7}.table-info{--bs-table-bg:#cff4fc;--bs-table-striped-bg:#c5e8ef;--bs-table-striped-color:#000;--bs-table-active-bg:#badce3;--bs-table-active-color:#000;--bs-table-hover-bg:#bfe2e9;--bs-table-hover-color:#000;color:#000;border-color:#badce3}.table-warning{--bs-table-bg:#fff3cd;--bs-table-striped-bg:#f2e7c3;--bs-table-striped-color:#000;--bs-table-active-bg:#e6dbb9;--bs-table-active-color:#000;--bs-table-hover-bg:#ece1be;--bs-table-hover-color:#000;color:#000;border-color:#e6dbb9}.table-danger{--bs-table-bg:#f8d7da;--bs-table-striped-bg:#eccccf;--bs-table-striped-color:#000;--bs-table-active-bg:#dfc2c4;--bs-table-active-color:#000;--bs-table-hover-bg:#e5c7ca;--bs-table-hover-color:#000;color:#000;border-color:#dfc2c4}.table-light{--bs-table-bg:#f8f9fa;--bs-table-striped-bg:#ecedee;--bs-table-striped-color:#000;--bs-table-active-bg:#dfe0e1;--bs-table-active-color:#000;--bs-table-hover-bg:#e5e6e7;--bs-table-hover-color:#000;color:#000;border-color:#dfe0e1}.table-dark{--bs-table-bg:#212529;--bs-table-striped-bg:#2c3034;--bs-table-striped-color:#fff;--bs-table-active-bg:#373b3e;--bs-table-active-color:#fff;--bs-table-hover-bg:#323539;--bs-table-hover-color:#fff;color:#fff;border-color:#373b3e}.table-responsive{overflow-x:auto;-webkit-overflow-scrolling:touch}@media (max-width:575.98px){.table-responsive-sm{overflow-x:auto;-webkit-overflow-scrolling:touch}}@media (max-width:767.98px){.table-responsive-md{overflow-x:auto;-webkit-overflow-scrolling:touch}}@media (max-width:991.98px){.table-responsive-lg{overflow-x:auto;-webkit-overflow-scrolling:touch}}@media (max-width:1199.98px){.table-responsive-xl{overflow-x:auto;-webkit-overflow-scrolling:touch}}@media (max-width:1399.98px){.table-responsive-xxl{overflow-x:auto;-webkit-overflow-scrolling:touch}}.form-label{margin-bottom:.5rem}.col-form-label{padding-top:calc(.375rem + 1px);padding-bottom:calc(.375rem + 1px);margin-bottom:0;font-size:inherit;line-height:1.5}.col-form-label-lg{padding-top:calc(.5rem + 1px);padding-bottom:calc(.5rem + 1px);font-size:1.25rem}.col-form-label-sm{padding-top:calc(.25rem + 1px);padding-bottom:calc(.25rem + 1px);font-size:.875rem}.form-text{margin-top:.25rem;font-size:.875em;color:#6c757d}.form-control{display:block;width:100%;padding:.375rem .75rem;font-size:1rem;font-weight:400;line-height:1.5;color:#212529;background-color:#fff;background-clip:padding-box;border:1px solid #ced4da;-webkit-appearance:none;-moz-appearance:none;appearance:none;border-radius:.25rem;transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.form-control{transition:none}}.form-control[type=file]{overflow:hidden}.form-control[type=file]:not(:disabled):not([readonly]){cursor:pointer}.form-control:focus{color:#212529;background-color:#fff;border-color:#86b7fe;outline:0;box-shadow:0 0 0 .25rem rgba(13,110,253,.25)}.form-control::-webkit-date-and-time-value{height:1.5em}.form-control::-moz-placeholder{color:#6c757d;opacity:1}.form-control::placeholder{color:#6c757d;opacity:1}.form-control:disabled,.form-control[readonly]{background-color:#e9ecef;opacity:1}.form-control::-webkit-file-upload-button{padding:.375rem .75rem;margin:-.375rem -.75rem;-webkit-margin-end:.75rem;margin-inline-end:.75rem;color:#212529;background-color:#e9ecef;pointer-events:none;border-color:inherit;border-style:solid;border-width:0;border-inline-end-width:1px;border-radius:0;-webkit-transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}.form-control::file-selector-button{padding:.375rem .75rem;margin:-.375rem -.75rem;-webkit-margin-end:.75rem;margin-inline-end:.75rem;color:#212529;background-color:#e9ecef;pointer-events:none;border-color:inherit;border-style:solid;border-width:0;border-inline-end-width:1px;border-radius:0;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.form-control::-webkit-file-upload-button{-webkit-transition:none;transition:none}.form-control::file-selector-button{transition:none}}.form-control:hover:not(:disabled):not([readonly])::-webkit-file-upload-button{background-color:#dde0e3}.form-control:hover:not(:disabled):not([readonly])::file-selector-button{background-color:#dde0e3}.form-control::-webkit-file-upload-button{padding:.375rem .75rem;margin:-.375rem -.75rem;-webkit-margin-end:.75rem;margin-inline-end:.75rem;color:#212529;background-color:#e9ecef;pointer-events:none;border-color:inherit;border-style:solid;border-width:0;border-inline-end-width:1px;border-radius:0;-webkit-transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.form-control::-webkit-file-upload-button{-webkit-transition:none;transition:none}}.form-control:hover:not(:disabled):not([readonly])::-webkit-file-upload-button{background-color:#dde0e3}.form-control-plaintext{display:block;width:100%;padding:.375rem 0;margin-bottom:0;line-height:1.5;color:#212529;background-color:transparent;border:solid transparent;border-width:1px 0}.form-control-plaintext.form-control-lg,.form-control-plaintext.form-control-sm{padding-right:0;padding-left:0}.form-control-sm{min-height:calc(1.5em + .5rem + 2px);padding:.25rem .5rem;font-size:.875rem;border-radius:.2rem}.form-control-sm::-webkit-file-upload-button{padding:.25rem .5rem;margin:-.25rem -.5rem;-webkit-margin-end:.5rem;margin-inline-end:.5rem}.form-control-sm::file-selector-button{padding:.25rem .5rem;margin:-.25rem -.5rem;-webkit-margin-end:.5rem;margin-inline-end:.5rem}.form-control-sm::-webkit-file-upload-button{padding:.25rem .5rem;margin:-.25rem -.5rem;-webkit-margin-end:.5rem;margin-inline-end:.5rem}.form-control-lg{min-height:calc(1.5em + 1rem + 2px);padding:.5rem 1rem;font-size:1.25rem;border-radius:.3rem}.form-control-lg::-webkit-file-upload-button{padding:.5rem 1rem;margin:-.5rem -1rem;-webkit-margin-end:1rem;margin-inline-end:1rem}.form-control-lg::file-selector-button{padding:.5rem 1rem;margin:-.5rem -1rem;-webkit-margin-end:1rem;margin-inline-end:1rem}.form-control-lg::-webkit-file-upload-button{padding:.5rem 1rem;margin:-.5rem -1rem;-webkit-margin-end:1rem;margin-inline-end:1rem}textarea.form-control{min-height:calc(1.5em + .75rem + 2px)}textarea.form-control-sm{min-height:calc(1.5em + .5rem + 2px)}textarea.form-control-lg{min-height:calc(1.5em + 1rem + 2px)}.form-control-color{width:3rem;height:auto;padding:.375rem}.form-control-color:not(:disabled):not([readonly]){cursor:pointer}.form-control-color::-moz-color-swatch{height:1.5em;border-radius:.25rem}.form-control-color::-webkit-color-swatch{height:1.5em;border-radius:.25rem}.form-select{display:block;width:100%;padding:.375rem 2.25rem .375rem .75rem;-moz-padding-start:calc(0.75rem - 3px);font-size:1rem;font-weight:400;line-height:1.5;color:#212529;background-color:#fff;background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23343a40' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M2 5l6 6 6-6'/%3e%3c/svg%3e");background-repeat:no-repeat;background-position:right .75rem center;background-size:16px 12px;border:1px solid #ced4da;border-radius:.25rem;transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out;-webkit-appearance:none;-moz-appearance:none;appearance:none}@media (prefers-reduced-motion:reduce){.form-select{transition:none}}.form-select:focus{border-color:#86b7fe;outline:0;box-shadow:0 0 0 .25rem rgba(13,110,253,.25)}.form-select[multiple],.form-select[size]:not([size="1"]){padding-right:.75rem;background-image:none}.form-select:disabled{background-color:#e9ecef}.form-select:-moz-focusring{color:transparent;text-shadow:0 0 0 #212529}.form-select-sm{padding-top:.25rem;padding-bottom:.25rem;padding-left:.5rem;font-size:.875rem;border-radius:.2rem}.form-select-lg{padding-top:.5rem;padding-bottom:.5rem;padding-left:1rem;font-size:1.25rem;border-radius:.3rem}.form-check{display:block;min-height:1.5rem;padding-left:1.5em;margin-bottom:.125rem}.form-check .form-check-input{float:left;margin-left:-1.5em}.form-check-input{width:1em;height:1em;margin-top:.25em;vertical-align:top;background-color:#fff;background-repeat:no-repeat;background-position:center;background-size:contain;border:1px solid rgba(0,0,0,.25);-webkit-appearance:none;-moz-appearance:none;appearance:none;-webkit-print-color-adjust:exact;color-adjust:exact}.form-check-input[type=checkbox]{border-radius:.25em}.form-check-input[type=radio]{border-radius:50%}.form-check-input:active{filter:brightness(90%)}.form-check-input:focus{border-color:#86b7fe;outline:0;box-shadow:0 0 0 .25rem rgba(13,110,253,.25)}.form-check-input:checked{background-color:#0d6efd;border-color:#0d6efd}.form-check-input:checked[type=checkbox]{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3e%3cpath fill='none' stroke='%23fff' stroke-linecap='round' stroke-linejoin='round' stroke-width='3' d='M6 10l3 3l6-6'/%3e%3c/svg%3e")}.form-check-input:checked[type=radio]{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='2' fill='%23fff'/%3e%3c/svg%3e")}.form-check-input[type=checkbox]:indeterminate{background-color:#0d6efd;border-color:#0d6efd;background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3e%3cpath fill='none' stroke='%23fff' stroke-linecap='round' stroke-linejoin='round' stroke-width='3' d='M6 10h8'/%3e%3c/svg%3e")}.form-check-input:disabled{pointer-events:none;filter:none;opacity:.5}.form-check-input:disabled~.form-check-label,.form-check-input[disabled]~.form-check-label{opacity:.5}.form-switch{padding-left:2.5em}.form-switch .form-check-input{width:2em;margin-left:-2.5em;background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='rgba%280, 0, 0, 0.25%29'/%3e%3c/svg%3e");background-position:left center;border-radius:2em;transition:background-position .15s ease-in-out}@media (prefers-reduced-motion:reduce){.form-switch .form-check-input{transition:none}}.form-switch .form-check-input:focus{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%2386b7fe'/%3e%3c/svg%3e")}.form-switch .form-check-input:checked{background-position:right center;background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%23fff'/%3e%3c/svg%3e")}.form-check-inline{display:inline-block;margin-right:1rem}.btn-check{position:absolute;clip:rect(0,0,0,0);pointer-events:none}.btn-check:disabled+.btn,.btn-check[disabled]+.btn{pointer-events:none;filter:none;opacity:.65}.form-range{width:100%;height:1.5rem;padding:0;background-color:transparent;-webkit-appearance:none;-moz-appearance:none;appearance:none}.form-range:focus{outline:0}.form-range:focus::-webkit-slider-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .25rem rgba(13,110,253,.25)}.form-range:focus::-moz-range-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .25rem rgba(13,110,253,.25)}.form-range::-moz-focus-outer{border:0}.form-range::-webkit-slider-thumb{width:1rem;height:1rem;margin-top:-.25rem;background-color:#0d6efd;border:0;border-radius:1rem;-webkit-transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;-webkit-appearance:none;appearance:none}@media (prefers-reduced-motion:reduce){.form-range::-webkit-slider-thumb{-webkit-transition:none;transition:none}}.form-range::-webkit-slider-thumb:active{background-color:#b6d4fe}.form-range::-webkit-slider-runnable-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:#dee2e6;border-color:transparent;border-radius:1rem}.form-range::-moz-range-thumb{width:1rem;height:1rem;background-color:#0d6efd;border:0;border-radius:1rem;-moz-transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;-moz-appearance:none;appearance:none}@media (prefers-reduced-motion:reduce){.form-range::-moz-range-thumb{-moz-transition:none;transition:none}}.form-range::-moz-range-thumb:active{background-color:#b6d4fe}.form-range::-moz-range-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:#dee2e6;border-color:transparent;border-radius:1rem}.form-range:disabled{pointer-events:none}.form-range:disabled::-webkit-slider-thumb{background-color:#adb5bd}.form-range:disabled::-moz-range-thumb{background-color:#adb5bd}.form-floating{position:relative}.form-floating>.form-control,.form-floating>.form-select{height:calc(3.5rem + 2px);line-height:1.25}.form-floating>label{position:absolute;top:0;left:0;height:100%;padding:1rem .75rem;pointer-events:none;border:1px solid transparent;transform-origin:0 0;transition:opacity .1s ease-in-out,transform .1s ease-in-out}@media (prefers-reduced-motion:reduce){.form-floating>label{transition:none}}.form-floating>.form-control{padding:1rem .75rem}.form-floating>.form-control::-moz-placeholder{color:transparent}.form-floating>.form-control::placeholder{color:transparent}.form-floating>.form-control:not(:-moz-placeholder-shown){padding-top:1.625rem;padding-bottom:.625rem}.form-floating>.form-control:focus,.form-floating>.form-control:not(:placeholder-shown){padding-top:1.625rem;padding-bottom:.625rem}.form-floating>.form-control:-webkit-autofill{padding-top:1.625rem;padding-bottom:.625rem}.form-floating>.form-select{padding-top:1.625rem;padding-bottom:.625rem}.form-floating>.form-control:not(:-moz-placeholder-shown)~label{opacity:.65;transform:scale(.85) translateY(-.5rem) translateX(.15rem)}.form-floating>.form-control:focus~label,.form-floating>.form-control:not(:placeholder-shown)~label,.form-floating>.form-select~label{opacity:.65;transform:scale(.85) translateY(-.5rem) translateX(.15rem)}.form-floating>.form-control:-webkit-autofill~label{opacity:.65;transform:scale(.85) translateY(-.5rem) translateX(.15rem)}.input-group{position:relative;display:flex;flex-wrap:wrap;align-items:stretch;width:100%}.input-group>.form-control,.input-group>.form-select{position:relative;flex:1 1 auto;width:1%;min-width:0}.input-group>.form-control:focus,.input-group>.form-select:focus{z-index:3}.input-group .btn{position:relative;z-index:2}.input-group .btn:focus{z-index:3}.input-group-text{display:flex;align-items:center;padding:.375rem .75rem;font-size:1rem;font-weight:400;line-height:1.5;color:#212529;text-align:center;white-space:nowrap;background-color:#e9ecef;border:1px solid #ced4da;border-radius:.25rem}.input-group-lg>.btn,.input-group-lg>.form-control,.input-group-lg>.form-select,.input-group-lg>.input-group-text{padding:.5rem 1rem;font-size:1.25rem;border-radius:.3rem}.input-group-sm>.btn,.input-group-sm>.form-control,.input-group-sm>.form-select,.input-group-sm>.input-group-text{padding:.25rem .5rem;font-size:.875rem;border-radius:.2rem}.input-group-lg>.form-select,.input-group-sm>.form-select{padding-right:3rem}.input-group:not(.has-validation)>.dropdown-toggle:nth-last-child(n+3),.input-group:not(.has-validation)>:not(:last-child):not(.dropdown-toggle):not(.dropdown-menu){border-top-right-radius:0;border-bottom-right-radius:0}.input-group.has-validation>.dropdown-toggle:nth-last-child(n+4),.input-group.has-validation>:nth-last-child(n+3):not(.dropdown-toggle):not(.dropdown-menu){border-top-right-radius:0;border-bottom-right-radius:0}.input-group>:not(:first-child):not(.dropdown-menu):not(.valid-tooltip):not(.valid-feedback):not(.invalid-tooltip):not(.invalid-feedback){margin-left:-1px;border-top-left-radius:0;border-bottom-left-radius:0}.valid-feedback{display:none;width:100%;margin-top:.25rem;font-size:.875em;color:#198754}.valid-tooltip{position:absolute;top:100%;z-index:5;display:none;max-width:100%;padding:.25rem .5rem;margin-top:.1rem;font-size:.875rem;color:#fff;background-color:rgba(25,135,84,.9);border-radius:.25rem}.is-valid~.valid-feedback,.is-valid~.valid-tooltip,.was-validated :valid~.valid-feedback,.was-validated :valid~.valid-tooltip{display:block}.form-control.is-valid,.was-validated .form-control:valid{border-color:#198754;padding-right:calc(1.5em + .75rem);background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3e%3cpath fill='%23198754' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e");background-repeat:no-repeat;background-position:right calc(.375em + .1875rem) center;background-size:calc(.75em + .375rem) calc(.75em + .375rem)}.form-control.is-valid:focus,.was-validated .form-control:valid:focus{border-color:#198754;box-shadow:0 0 0 .25rem rgba(25,135,84,.25)}.was-validated textarea.form-control:valid,textarea.form-control.is-valid{padding-right:calc(1.5em + .75rem);background-position:top calc(.375em + .1875rem) right calc(.375em + .1875rem)}.form-select.is-valid,.was-validated .form-select:valid{border-color:#198754}.form-select.is-valid:not([multiple]):not([size]),.form-select.is-valid:not([multiple])[size="1"],.was-validated .form-select:valid:not([multiple]):not([size]),.was-validated .form-select:valid:not([multiple])[size="1"]{padding-right:4.125rem;background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23343a40' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M2 5l6 6 6-6'/%3e%3c/svg%3e"),url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3e%3cpath fill='%23198754' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e");background-position:right .75rem center,center right 2.25rem;background-size:16px 12px,calc(.75em + .375rem) calc(.75em + .375rem)}.form-select.is-valid:focus,.was-validated .form-select:valid:focus{border-color:#198754;box-shadow:0 0 0 .25rem rgba(25,135,84,.25)}.form-check-input.is-valid,.was-validated .form-check-input:valid{border-color:#198754}.form-check-input.is-valid:checked,.was-validated .form-check-input:valid:checked{background-color:#198754}.form-check-input.is-valid:focus,.was-validated .form-check-input:valid:focus{box-shadow:0 0 0 .25rem rgba(25,135,84,.25)}.form-check-input.is-valid~.form-check-label,.was-validated .form-check-input:valid~.form-check-label{color:#198754}.form-check-inline .form-check-input~.valid-feedback{margin-left:.5em}.input-group .form-control.is-valid,.input-group .form-select.is-valid,.was-validated .input-group .form-control:valid,.was-validated .input-group .form-select:valid{z-index:1}.input-group .form-control.is-valid:focus,.input-group .form-select.is-valid:focus,.was-validated .input-group .form-control:valid:focus,.was-validated .input-group .form-select:valid:focus{z-index:3}.invalid-feedback{display:none;width:100%;margin-top:.25rem;font-size:.875em;color:#dc3545}.invalid-tooltip{position:absolute;top:100%;z-index:5;display:none;max-width:100%;padding:.25rem .5rem;margin-top:.1rem;font-size:.875rem;color:#fff;background-color:rgba(220,53,69,.9);border-radius:.25rem}.is-invalid~.invalid-feedback,.is-invalid~.invalid-tooltip,.was-validated :invalid~.invalid-feedback,.was-validated :invalid~.invalid-tooltip{display:block}.form-control.is-invalid,.was-validated .form-control:invalid{border-color:#dc3545;padding-right:calc(1.5em + .75rem);background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12' width='12' height='12' fill='none' stroke='%23dc3545'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23dc3545' stroke='none'/%3e%3c/svg%3e");background-repeat:no-repeat;background-position:right calc(.375em + .1875rem) center;background-size:calc(.75em + .375rem) calc(.75em + .375rem)}.form-control.is-invalid:focus,.was-validated .form-control:invalid:focus{border-color:#dc3545;box-shadow:0 0 0 .25rem rgba(220,53,69,.25)}.was-validated textarea.form-control:invalid,textarea.form-control.is-invalid{padding-right:calc(1.5em + .75rem);background-position:top calc(.375em + .1875rem) right calc(.375em + .1875rem)}.form-select.is-invalid,.was-validated .form-select:invalid{border-color:#dc3545}.form-select.is-invalid:not([multiple]):not([size]),.form-select.is-invalid:not([multiple])[size="1"],.was-validated .form-select:invalid:not([multiple]):not([size]),.was-validated .form-select:invalid:not([multiple])[size="1"]{padding-right:4.125rem;background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23343a40' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M2 5l6 6 6-6'/%3e%3c/svg%3e"),url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12' width='12' height='12' fill='none' stroke='%23dc3545'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23dc3545' stroke='none'/%3e%3c/svg%3e");background-position:right .75rem center,center right 2.25rem;background-size:16px 12px,calc(.75em + .375rem) calc(.75em + .375rem)}.form-select.is-invalid:focus,.was-validated .form-select:invalid:focus{border-color:#dc3545;box-shadow:0 0 0 .25rem rgba(220,53,69,.25)}.form-check-input.is-invalid,.was-validated .form-check-input:invalid{border-color:#dc3545}.form-check-input.is-invalid:checked,.was-validated .form-check-input:invalid:checked{background-color:#dc3545}.form-check-input.is-invalid:focus,.was-validated .form-check-input:invalid:focus{box-shadow:0 0 0 .25rem rgba(220,53,69,.25)}.form-check-input.is-invalid~.form-check-label,.was-validated .form-check-input:invalid~.form-check-label{color:#dc3545}.form-check-inline .form-check-input~.invalid-feedback{margin-left:.5em}.input-group .form-control.is-invalid,.input-group .form-select.is-invalid,.was-validated .input-group .form-control:invalid,.was-validated .input-group .form-select:invalid{z-index:2}.input-group .form-control.is-invalid:focus,.input-group .form-select.is-invalid:focus,.was-validated .input-group .form-control:invalid:focus,.was-validated .input-group .form-select:invalid:focus{z-index:3}.btn{display:inline-block;font-weight:400;line-height:1.5;color:#212529;text-align:center;text-decoration:none;vertical-align:middle;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none;background-color:transparent;border:1px solid transparent;padding:.375rem .75rem;font-size:1rem;border-radius:.25rem;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.btn{transition:none}}.btn:hover{color:#212529}.btn-check:focus+.btn,.btn:focus{outline:0;box-shadow:0 0 0 .25rem rgba(13,110,253,.25)}.btn.disabled,.btn:disabled,fieldset:disabled .btn{pointer-events:none;opacity:.65}.btn-primary{color:#fff;background-color:#0d6efd;border-color:#0d6efd}.btn-primary:hover{color:#fff;background-color:#0b5ed7;border-color:#0a58ca}.btn-check:focus+.btn-primary,.btn-primary:focus{color:#fff;background-color:#0b5ed7;border-color:#0a58ca;box-shadow:0 0 0 .25rem rgba(49,132,253,.5)}.btn-check:active+.btn-primary,.btn-check:checked+.btn-primary,.btn-primary.active,.btn-primary:active,.show>.btn-primary.dropdown-toggle{color:#fff;background-color:#0a58ca;border-color:#0a53be}.btn-check:active+.btn-primary:focus,.btn-check:checked+.btn-primary:focus,.btn-primary.active:focus,.btn-primary:active:focus,.show>.btn-primary.dropdown-toggle:focus{box-shadow:0 0 0 .25rem rgba(49,132,253,.5)}.btn-primary.disabled,.btn-primary:disabled{color:#fff;background-color:#0d6efd;border-color:#0d6efd}.btn-secondary{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-secondary:hover{color:#fff;background-color:#5c636a;border-color:#565e64}.btn-check:focus+.btn-secondary,.btn-secondary:focus{color:#fff;background-color:#5c636a;border-color:#565e64;box-shadow:0 0 0 .25rem rgba(130,138,145,.5)}.btn-check:active+.btn-secondary,.btn-check:checked+.btn-secondary,.btn-secondary.active,.btn-secondary:active,.show>.btn-secondary.dropdown-toggle{color:#fff;background-color:#565e64;border-color:#51585e}.btn-check:active+.btn-secondary:focus,.btn-check:checked+.btn-secondary:focus,.btn-secondary.active:focus,.btn-secondary:active:focus,.show>.btn-secondary.dropdown-toggle:focus{box-shadow:0 0 0 .25rem rgba(130,138,145,.5)}.btn-secondary.disabled,.btn-secondary:disabled{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-success{color:#fff;background-color:#198754;border-color:#198754}.btn-success:hover{color:#fff;background-color:#157347;border-color:#146c43}.btn-check:focus+.btn-success,.btn-success:focus{color:#fff;background-color:#157347;border-color:#146c43;box-shadow:0 0 0 .25rem rgba(60,153,110,.5)}.btn-check:active+.btn-success,.btn-check:checked+.btn-success,.btn-success.active,.btn-success:active,.show>.btn-success.dropdown-toggle{color:#fff;background-color:#146c43;border-color:#13653f}.btn-check:active+.btn-success:focus,.btn-check:checked+.btn-success:focus,.btn-success.active:focus,.btn-success:active:focus,.show>.btn-success.dropdown-toggle:focus{box-shadow:0 0 0 .25rem rgba(60,153,110,.5)}.btn-success.disabled,.btn-success:disabled{color:#fff;background-color:#198754;border-color:#198754}.btn-info{color:#000;background-color:#0dcaf0;border-color:#0dcaf0}.btn-info:hover{color:#000;background-color:#31d2f2;border-color:#25cff2}.btn-check:focus+.btn-info,.btn-info:focus{color:#000;background-color:#31d2f2;border-color:#25cff2;box-shadow:0 0 0 .25rem rgba(11,172,204,.5)}.btn-check:active+.btn-info,.btn-check:checked+.btn-info,.btn-info.active,.btn-info:active,.show>.btn-info.dropdown-toggle{color:#000;background-color:#3dd5f3;border-color:#25cff2}.btn-check:active+.btn-info:focus,.btn-check:checked+.btn-info:focus,.btn-info.active:focus,.btn-info:active:focus,.show>.btn-info.dropdown-toggle:focus{box-shadow:0 0 0 .25rem rgba(11,172,204,.5)}.btn-info.disabled,.btn-info:disabled{color:#000;background-color:#0dcaf0;border-color:#0dcaf0}.btn-warning{color:#000;background-color:#ffc107;border-color:#ffc107}.btn-warning:hover{color:#000;background-color:#ffca2c;border-color:#ffc720}.btn-check:focus+.btn-warning,.btn-warning:focus{color:#000;background-color:#ffca2c;border-color:#ffc720;box-shadow:0 0 0 .25rem rgba(217,164,6,.5)}.btn-check:active+.btn-warning,.btn-check:checked+.btn-warning,.btn-warning.active,.btn-warning:active,.show>.btn-warning.dropdown-toggle{color:#000;background-color:#ffcd39;border-color:#ffc720}.btn-check:active+.btn-warning:focus,.btn-check:checked+.btn-warning:focus,.btn-warning.active:focus,.btn-warning:active:focus,.show>.btn-warning.dropdown-toggle:focus{box-shadow:0 0 0 .25rem rgba(217,164,6,.5)}.btn-warning.disabled,.btn-warning:disabled{color:#000;background-color:#ffc107;border-color:#ffc107}.btn-danger{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-danger:hover{color:#fff;background-color:#bb2d3b;border-color:#b02a37}.btn-check:focus+.btn-danger,.btn-danger:focus{color:#fff;background-color:#bb2d3b;border-color:#b02a37;box-shadow:0 0 0 .25rem rgba(225,83,97,.5)}.btn-check:active+.btn-danger,.btn-check:checked+.btn-danger,.btn-danger.active,.btn-danger:active,.show>.btn-danger.dropdown-toggle{color:#fff;background-color:#b02a37;border-color:#a52834}.btn-check:active+.btn-danger:focus,.btn-check:checked+.btn-danger:focus,.btn-danger.active:focus,.btn-danger:active:focus,.show>.btn-danger.dropdown-toggle:focus{box-shadow:0 0 0 .25rem rgba(225,83,97,.5)}.btn-danger.disabled,.btn-danger:disabled{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-light{color:#000;background-color:#f8f9fa;border-color:#f8f9fa}.btn-light:hover{color:#000;background-color:#f9fafb;border-color:#f9fafb}.btn-check:focus+.btn-light,.btn-light:focus{color:#000;background-color:#f9fafb;border-color:#f9fafb;box-shadow:0 0 0 .25rem rgba(211,212,213,.5)}.btn-check:active+.btn-light,.btn-check:checked+.btn-light,.btn-light.active,.btn-light:active,.show>.btn-light.dropdown-toggle{color:#000;background-color:#f9fafb;border-color:#f9fafb}.btn-check:active+.btn-light:focus,.btn-check:checked+.btn-light:focus,.btn-light.active:focus,.btn-light:active:focus,.show>.btn-light.dropdown-toggle:focus{box-shadow:0 0 0 .25rem rgba(211,212,213,.5)}.btn-light.disabled,.btn-light:disabled{color:#000;background-color:#f8f9fa;border-color:#f8f9fa}.btn-dark{color:#fff;background-color:#212529;border-color:#212529}.btn-dark:hover{color:#fff;background-color:#1c1f23;border-color:#1a1e21}.btn-check:focus+.btn-dark,.btn-dark:focus{color:#fff;background-color:#1c1f23;border-color:#1a1e21;box-shadow:0 0 0 .25rem rgba(66,70,73,.5)}.btn-check:active+.btn-dark,.btn-check:checked+.btn-dark,.btn-dark.active,.btn-dark:active,.show>.btn-dark.dropdown-toggle{color:#fff;background-color:#1a1e21;border-color:#191c1f}.btn-check:active+.btn-dark:focus,.btn-check:checked+.btn-dark:focus,.btn-dark.active:focus,.btn-dark:active:focus,.show>.btn-dark.dropdown-toggle:focus{box-shadow:0 0 0 .25rem rgba(66,70,73,.5)}.btn-dark.disabled,.btn-dark:disabled{color:#fff;background-color:#212529;border-color:#212529}.btn-outline-primary{color:#0d6efd;border-color:#0d6efd}.btn-outline-primary:hover{color:#fff;background-color:#0d6efd;border-color:#0d6efd}.btn-check:focus+.btn-outline-primary,.btn-outline-primary:focus{box-shadow:0 0 0 .25rem rgba(13,110,253,.5)}.btn-check:active+.btn-outline-primary,.btn-check:checked+.btn-outline-primary,.btn-outline-primary.active,.btn-outline-primary.dropdown-toggle.show,.btn-outline-primary:active{color:#fff;background-color:#0d6efd;border-color:#0d6efd}.btn-check:active+.btn-outline-primary:focus,.btn-check:checked+.btn-outline-primary:focus,.btn-outline-primary.active:focus,.btn-outline-primary.dropdown-toggle.show:focus,.btn-outline-primary:active:focus{box-shadow:0 0 0 .25rem rgba(13,110,253,.5)}.btn-outline-primary.disabled,.btn-outline-primary:disabled{color:#0d6efd;background-color:transparent}.btn-outline-secondary{color:#6c757d;border-color:#6c757d}.btn-outline-secondary:hover{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-check:focus+.btn-outline-secondary,.btn-outline-secondary:focus{box-shadow:0 0 0 .25rem rgba(108,117,125,.5)}.btn-check:active+.btn-outline-secondary,.btn-check:checked+.btn-outline-secondary,.btn-outline-secondary.active,.btn-outline-secondary.dropdown-toggle.show,.btn-outline-secondary:active{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-check:active+.btn-outline-secondary:focus,.btn-check:checked+.btn-outline-secondary:focus,.btn-outline-secondary.active:focus,.btn-outline-secondary.dropdown-toggle.show:focus,.btn-outline-secondary:active:focus{box-shadow:0 0 0 .25rem rgba(108,117,125,.5)}.btn-outline-secondary.disabled,.btn-outline-secondary:disabled{color:#6c757d;background-color:transparent}.btn-outline-success{color:#198754;border-color:#198754}.btn-outline-success:hover{color:#fff;background-color:#198754;border-color:#198754}.btn-check:focus+.btn-outline-success,.btn-outline-success:focus{box-shadow:0 0 0 .25rem rgba(25,135,84,.5)}.btn-check:active+.btn-outline-success,.btn-check:checked+.btn-outline-success,.btn-outline-success.active,.btn-outline-success.dropdown-toggle.show,.btn-outline-success:active{color:#fff;background-color:#198754;border-color:#198754}.btn-check:active+.btn-outline-success:focus,.btn-check:checked+.btn-outline-success:focus,.btn-outline-success.active:focus,.btn-outline-success.dropdown-toggle.show:focus,.btn-outline-success:active:focus{box-shadow:0 0 0 .25rem rgba(25,135,84,.5)}.btn-outline-success.disabled,.btn-outline-success:disabled{color:#198754;background-color:transparent}.btn-outline-info{color:#0dcaf0;border-color:#0dcaf0}.btn-outline-info:hover{color:#000;background-color:#0dcaf0;border-color:#0dcaf0}.btn-check:focus+.btn-outline-info,.btn-outline-info:focus{box-shadow:0 0 0 .25rem rgba(13,202,240,.5)}.btn-check:active+.btn-outline-info,.btn-check:checked+.btn-outline-info,.btn-outline-info.active,.btn-outline-info.dropdown-toggle.show,.btn-outline-info:active{color:#000;background-color:#0dcaf0;border-color:#0dcaf0}.btn-check:active+.btn-outline-info:focus,.btn-check:checked+.btn-outline-info:focus,.btn-outline-info.active:focus,.btn-outline-info.dropdown-toggle.show:focus,.btn-outline-info:active:focus{box-shadow:0 0 0 .25rem rgba(13,202,240,.5)}.btn-outline-info.disabled,.btn-outline-info:disabled{color:#0dcaf0;background-color:transparent}.btn-outline-warning{color:#ffc107;border-color:#ffc107}.btn-outline-warning:hover{color:#000;background-color:#ffc107;border-color:#ffc107}.btn-check:focus+.btn-outline-warning,.btn-outline-warning:focus{box-shadow:0 0 0 .25rem rgba(255,193,7,.5)}.btn-check:active+.btn-outline-warning,.btn-check:checked+.btn-outline-warning,.btn-outline-warning.active,.btn-outline-warning.dropdown-toggle.show,.btn-outline-warning:active{color:#000;background-color:#ffc107;border-color:#ffc107}.btn-check:active+.btn-outline-warning:focus,.btn-check:checked+.btn-outline-warning:focus,.btn-outline-warning.active:focus,.btn-outline-warning.dropdown-toggle.show:focus,.btn-outline-warning:active:focus{box-shadow:0 0 0 .25rem rgba(255,193,7,.5)}.btn-outline-warning.disabled,.btn-outline-warning:disabled{color:#ffc107;background-color:transparent}.btn-outline-danger{color:#dc3545;border-color:#dc3545}.btn-outline-danger:hover{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-check:focus+.btn-outline-danger,.btn-outline-danger:focus{box-shadow:0 0 0 .25rem rgba(220,53,69,.5)}.btn-check:active+.btn-outline-danger,.btn-check:checked+.btn-outline-danger,.btn-outline-danger.active,.btn-outline-danger.dropdown-toggle.show,.btn-outline-danger:active{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-check:active+.btn-outline-danger:focus,.btn-check:checked+.btn-outline-danger:focus,.btn-outline-danger.active:focus,.btn-outline-danger.dropdown-toggle.show:focus,.btn-outline-danger:active:focus{box-shadow:0 0 0 .25rem rgba(220,53,69,.5)}.btn-outline-danger.disabled,.btn-outline-danger:disabled{color:#dc3545;background-color:transparent}.btn-outline-light{color:#f8f9fa;border-color:#f8f9fa}.btn-outline-light:hover{color:#000;background-color:#f8f9fa;border-color:#f8f9fa}.btn-check:focus+.btn-outline-light,.btn-outline-light:focus{box-shadow:0 0 0 .25rem rgba(248,249,250,.5)}.btn-check:active+.btn-outline-light,.btn-check:checked+.btn-outline-light,.btn-outline-light.active,.btn-outline-light.dropdown-toggle.show,.btn-outline-light:active{color:#000;background-color:#f8f9fa;border-color:#f8f9fa}.btn-check:active+.btn-outline-light:focus,.btn-check:checked+.btn-outline-light:focus,.btn-outline-light.active:focus,.btn-outline-light.dropdown-toggle.show:focus,.btn-outline-light:active:focus{box-shadow:0 0 0 .25rem rgba(248,249,250,.5)}.btn-outline-light.disabled,.btn-outline-light:disabled{color:#f8f9fa;background-color:transparent}.btn-outline-dark{color:#212529;border-color:#212529}.btn-outline-dark:hover{color:#fff;background-color:#212529;border-color:#212529}.btn-check:focus+.btn-outline-dark,.btn-outline-dark:focus{box-shadow:0 0 0 .25rem rgba(33,37,41,.5)}.btn-check:active+.btn-outline-dark,.btn-check:checked+.btn-outline-dark,.btn-outline-dark.active,.btn-outline-dark.dropdown-toggle.show,.btn-outline-dark:active{color:#fff;background-color:#212529;border-color:#212529}.btn-check:active+.btn-outline-dark:focus,.btn-check:checked+.btn-outline-dark:focus,.btn-outline-dark.active:focus,.btn-outline-dark.dropdown-toggle.show:focus,.btn-outline-dark:active:focus{box-shadow:0 0 0 .25rem rgba(33,37,41,.5)}.btn-outline-dark.disabled,.btn-outline-dark:disabled{color:#212529;background-color:transparent}.btn-link{font-weight:400;color:#0d6efd;text-decoration:underline}.btn-link:hover{color:#0a58ca}.btn-link.disabled,.btn-link:disabled{color:#6c757d}.btn-group-lg>.btn,.btn-lg{padding:.5rem 1rem;font-size:1.25rem;border-radius:.3rem}.btn-group-sm>.btn,.btn-sm{padding:.25rem .5rem;font-size:.875rem;border-radius:.2rem}.fade{transition:opacity .15s linear}@media (prefers-reduced-motion:reduce){.fade{transition:none}}.fade:not(.show){opacity:0}.collapse:not(.show){display:none}.collapsing{height:0;overflow:hidden;transition:height .35s ease}@media (prefers-reduced-motion:reduce){.collapsing{transition:none}}.collapsing.collapse-horizontal{width:0;height:auto;transition:width .35s ease}@media (prefers-reduced-motion:reduce){.collapsing.collapse-horizontal{transition:none}}.dropdown,.dropend,.dropstart,.dropup{position:relative}.dropdown-toggle{white-space:nowrap}.dropdown-toggle::after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:"";border-top:.3em solid;border-right:.3em solid transparent;border-bottom:0;border-left:.3em solid transparent}.dropdown-toggle:empty::after{margin-left:0}.dropdown-menu{position:absolute;z-index:1000;display:none;min-width:10rem;padding:.5rem 0;margin:0;font-size:1rem;color:#212529;text-align:left;list-style:none;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,.15);border-radius:.25rem}.dropdown-menu[data-bs-popper]{top:100%;left:0;margin-top:.125rem}.dropdown-menu-start{--bs-position:start}.dropdown-menu-start[data-bs-popper]{right:auto;left:0}.dropdown-menu-end{--bs-position:end}.dropdown-menu-end[data-bs-popper]{right:0;left:auto}@media (min-width:576px){.dropdown-menu-sm-start{--bs-position:start}.dropdown-menu-sm-start[data-bs-popper]{right:auto;left:0}.dropdown-menu-sm-end{--bs-position:end}.dropdown-menu-sm-end[data-bs-popper]{right:0;left:auto}}@media (min-width:768px){.dropdown-menu-md-start{--bs-position:start}.dropdown-menu-md-start[data-bs-popper]{right:auto;left:0}.dropdown-menu-md-end{--bs-position:end}.dropdown-menu-md-end[data-bs-popper]{right:0;left:auto}}@media (min-width:992px){.dropdown-menu-lg-start{--bs-position:start}.dropdown-menu-lg-start[data-bs-popper]{right:auto;left:0}.dropdown-menu-lg-end{--bs-position:end}.dropdown-menu-lg-end[data-bs-popper]{right:0;left:auto}}@media (min-width:1200px){.dropdown-menu-xl-start{--bs-position:start}.dropdown-menu-xl-start[data-bs-popper]{right:auto;left:0}.dropdown-menu-xl-end{--bs-position:end}.dropdown-menu-xl-end[data-bs-popper]{right:0;left:auto}}@media (min-width:1400px){.dropdown-menu-xxl-start{--bs-position:start}.dropdown-menu-xxl-start[data-bs-popper]{right:auto;left:0}.dropdown-menu-xxl-end{--bs-position:end}.dropdown-menu-xxl-end[data-bs-popper]{right:0;left:auto}}.dropup .dropdown-menu[data-bs-popper]{top:auto;bottom:100%;margin-top:0;margin-bottom:.125rem}.dropup .dropdown-toggle::after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:"";border-top:0;border-right:.3em solid transparent;border-bottom:.3em solid;border-left:.3em solid transparent}.dropup .dropdown-toggle:empty::after{margin-left:0}.dropend .dropdown-menu[data-bs-popper]{top:0;right:auto;left:100%;margin-top:0;margin-left:.125rem}.dropend .dropdown-toggle::after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:"";border-top:.3em solid transparent;border-right:0;border-bottom:.3em solid transparent;border-left:.3em solid}.dropend .dropdown-toggle:empty::after{margin-left:0}.dropend .dropdown-toggle::after{vertical-align:0}.dropstart .dropdown-menu[data-bs-popper]{top:0;right:100%;left:auto;margin-top:0;margin-right:.125rem}.dropstart .dropdown-toggle::after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:""}.dropstart .dropdown-toggle::after{display:none}.dropstart .dropdown-toggle::before{display:inline-block;margin-right:.255em;vertical-align:.255em;content:"";border-top:.3em solid transparent;border-right:.3em solid;border-bottom:.3em solid transparent}.dropstart .dropdown-toggle:empty::after{margin-left:0}.dropstart .dropdown-toggle::before{vertical-align:0}.dropdown-divider{height:0;margin:.5rem 0;overflow:hidden;border-top:1px solid rgba(0,0,0,.15)}.dropdown-item{display:block;width:100%;padding:.25rem 1rem;clear:both;font-weight:400;color:#212529;text-align:inherit;text-decoration:none;white-space:nowrap;background-color:transparent;border:0}.dropdown-item:focus,.dropdown-item:hover{color:#1e2125;background-color:#e9ecef}.dropdown-item.active,.dropdown-item:active{color:#fff;text-decoration:none;background-color:#0d6efd}.dropdown-item.disabled,.dropdown-item:disabled{color:#adb5bd;pointer-events:none;background-color:transparent}.dropdown-menu.show{display:block}.dropdown-header{display:block;padding:.5rem 1rem;margin-bottom:0;font-size:.875rem;color:#6c757d;white-space:nowrap}.dropdown-item-text{display:block;padding:.25rem 1rem;color:#212529}.dropdown-menu-dark{color:#dee2e6;background-color:#343a40;border-color:rgba(0,0,0,.15)}.dropdown-menu-dark .dropdown-item{color:#dee2e6}.dropdown-menu-dark .dropdown-item:focus,.dropdown-menu-dark .dropdown-item:hover{color:#fff;background-color:rgba(255,255,255,.15)}.dropdown-menu-dark .dropdown-item.active,.dropdown-menu-dark .dropdown-item:active{color:#fff;background-color:#0d6efd}.dropdown-menu-dark .dropdown-item.disabled,.dropdown-menu-dark .dropdown-item:disabled{color:#adb5bd}.dropdown-menu-dark .dropdown-divider{border-color:rgba(0,0,0,.15)}.dropdown-menu-dark .dropdown-item-text{color:#dee2e6}.dropdown-menu-dark .dropdown-header{color:#adb5bd}.btn-group,.btn-group-vertical{position:relative;display:inline-flex;vertical-align:middle}.btn-group-vertical>.btn,.btn-group>.btn{position:relative;flex:1 1 auto}.btn-group-vertical>.btn-check:checked+.btn,.btn-group-vertical>.btn-check:focus+.btn,.btn-group-vertical>.btn.active,.btn-group-vertical>.btn:active,.btn-group-vertical>.btn:focus,.btn-group-vertical>.btn:hover,.btn-group>.btn-check:checked+.btn,.btn-group>.btn-check:focus+.btn,.btn-group>.btn.active,.btn-group>.btn:active,.btn-group>.btn:focus,.btn-group>.btn:hover{z-index:1}.btn-toolbar{display:flex;flex-wrap:wrap;justify-content:flex-start}.btn-toolbar .input-group{width:auto}.btn-group>.btn-group:not(:first-child),.btn-group>.btn:not(:first-child){margin-left:-1px}.btn-group>.btn-group:not(:last-child)>.btn,.btn-group>.btn:not(:last-child):not(.dropdown-toggle){border-top-right-radius:0;border-bottom-right-radius:0}.btn-group>.btn-group:not(:first-child)>.btn,.btn-group>.btn:nth-child(n+3),.btn-group>:not(.btn-check)+.btn{border-top-left-radius:0;border-bottom-left-radius:0}.dropdown-toggle-split{padding-right:.5625rem;padding-left:.5625rem}.dropdown-toggle-split::after,.dropend .dropdown-toggle-split::after,.dropup .dropdown-toggle-split::after{margin-left:0}.dropstart .dropdown-toggle-split::before{margin-right:0}.btn-group-sm>.btn+.dropdown-toggle-split,.btn-sm+.dropdown-toggle-split{padding-right:.375rem;padding-left:.375rem}.btn-group-lg>.btn+.dropdown-toggle-split,.btn-lg+.dropdown-toggle-split{padding-right:.75rem;padding-left:.75rem}.btn-group-vertical{flex-direction:column;align-items:flex-start;justify-content:center}.btn-group-vertical>.btn,.btn-group-vertical>.btn-group{width:100%}.btn-group-vertical>.btn-group:not(:first-child),.btn-group-vertical>.btn:not(:first-child){margin-top:-1px}.btn-group-vertical>.btn-group:not(:last-child)>.btn,.btn-group-vertical>.btn:not(:last-child):not(.dropdown-toggle){border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn-group:not(:first-child)>.btn,.btn-group-vertical>.btn~.btn{border-top-left-radius:0;border-top-right-radius:0}.nav{display:flex;flex-wrap:wrap;padding-left:0;margin-bottom:0;list-style:none}.nav-link{display:block;padding:.5rem 1rem;color:#0d6efd;text-decoration:none;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out}@media (prefers-reduced-motion:reduce){.nav-link{transition:none}}.nav-link:focus,.nav-link:hover{color:#0a58ca}.nav-link.disabled{color:#6c757d;pointer-events:none;cursor:default}.nav-tabs{border-bottom:1px solid #dee2e6}.nav-tabs .nav-link{margin-bottom:-1px;background:0 0;border:1px solid transparent;border-top-left-radius:.25rem;border-top-right-radius:.25rem}.nav-tabs .nav-link:focus,.nav-tabs .nav-link:hover{border-color:#e9ecef #e9ecef #dee2e6;isolation:isolate}.nav-tabs .nav-link.disabled{color:#6c757d;background-color:transparent;border-color:transparent}.nav-tabs .nav-item.show .nav-link,.nav-tabs .nav-link.active{color:#495057;background-color:#fff;border-color:#dee2e6 #dee2e6 #fff}.nav-tabs .dropdown-menu{margin-top:-1px;border-top-left-radius:0;border-top-right-radius:0}.nav-pills .nav-link{background:0 0;border:0;border-radius:.25rem}.nav-pills .nav-link.active,.nav-pills .show>.nav-link{color:#fff;background-color:#0d6efd}.nav-fill .nav-item,.nav-fill>.nav-link{flex:1 1 auto;text-align:center}.nav-justified .nav-item,.nav-justified>.nav-link{flex-basis:0;flex-grow:1;text-align:center}.nav-fill .nav-item .nav-link,.nav-justified .nav-item .nav-link{width:100%}.tab-content>.tab-pane{display:none}.tab-content>.active{display:block}.navbar{position:relative;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;padding-top:.5rem;padding-bottom:.5rem}.navbar>.container,.navbar>.container-fluid,.navbar>.container-lg,.navbar>.container-md,.navbar>.container-sm,.navbar>.container-xl,.navbar>.container-xxl{display:flex;flex-wrap:inherit;align-items:center;justify-content:space-between}.navbar-brand{padding-top:.3125rem;padding-bottom:.3125rem;margin-right:1rem;font-size:1.25rem;text-decoration:none;white-space:nowrap}.navbar-nav{display:flex;flex-direction:column;padding-left:0;margin-bottom:0;list-style:none}.navbar-nav .nav-link{padding-right:0;padding-left:0}.navbar-nav .dropdown-menu{position:static}.navbar-text{padding-top:.5rem;padding-bottom:.5rem}.navbar-collapse{flex-basis:100%;flex-grow:1;align-items:center}.navbar-toggler{padding:.25rem .75rem;font-size:1.25rem;line-height:1;background-color:transparent;border:1px solid transparent;border-radius:.25rem;transition:box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.navbar-toggler{transition:none}}.navbar-toggler:hover{text-decoration:none}.navbar-toggler:focus{text-decoration:none;outline:0;box-shadow:0 0 0 .25rem}.navbar-toggler-icon{display:inline-block;width:1.5em;height:1.5em;vertical-align:middle;background-repeat:no-repeat;background-position:center;background-size:100%}.navbar-nav-scroll{max-height:var(--bs-scroll-height,75vh);overflow-y:auto}@media (min-width:576px){.navbar-expand-sm{flex-wrap:nowrap;justify-content:flex-start}.navbar-expand-sm .navbar-nav{flex-direction:row}.navbar-expand-sm .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-sm .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-sm .navbar-nav-scroll{overflow:visible}.navbar-expand-sm .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand-sm .navbar-toggler{display:none}.navbar-expand-sm .offcanvas-header{display:none}.navbar-expand-sm .offcanvas{position:inherit;bottom:0;z-index:1000;flex-grow:1;visibility:visible!important;background-color:transparent;border-right:0;border-left:0;transition:none;transform:none}.navbar-expand-sm .offcanvas-bottom,.navbar-expand-sm .offcanvas-top{height:auto;border-top:0;border-bottom:0}.navbar-expand-sm .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible}}@media (min-width:768px){.navbar-expand-md{flex-wrap:nowrap;justify-content:flex-start}.navbar-expand-md .navbar-nav{flex-direction:row}.navbar-expand-md .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-md .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-md .navbar-nav-scroll{overflow:visible}.navbar-expand-md .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand-md .navbar-toggler{display:none}.navbar-expand-md .offcanvas-header{display:none}.navbar-expand-md .offcanvas{position:inherit;bottom:0;z-index:1000;flex-grow:1;visibility:visible!important;background-color:transparent;border-right:0;border-left:0;transition:none;transform:none}.navbar-expand-md .offcanvas-bottom,.navbar-expand-md .offcanvas-top{height:auto;border-top:0;border-bottom:0}.navbar-expand-md .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible}}@media (min-width:992px){.navbar-expand-lg{flex-wrap:nowrap;justify-content:flex-start}.navbar-expand-lg .navbar-nav{flex-direction:row}.navbar-expand-lg .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-lg .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-lg .navbar-nav-scroll{overflow:visible}.navbar-expand-lg .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand-lg .navbar-toggler{display:none}.navbar-expand-lg .offcanvas-header{display:none}.navbar-expand-lg .offcanvas{position:inherit;bottom:0;z-index:1000;flex-grow:1;visibility:visible!important;background-color:transparent;border-right:0;border-left:0;transition:none;transform:none}.navbar-expand-lg .offcanvas-bottom,.navbar-expand-lg .offcanvas-top{height:auto;border-top:0;border-bottom:0}.navbar-expand-lg .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible}}@media (min-width:1200px){.navbar-expand-xl{flex-wrap:nowrap;justify-content:flex-start}.navbar-expand-xl .navbar-nav{flex-direction:row}.navbar-expand-xl .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-xl .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-xl .navbar-nav-scroll{overflow:visible}.navbar-expand-xl .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand-xl .navbar-toggler{display:none}.navbar-expand-xl .offcanvas-header{display:none}.navbar-expand-xl .offcanvas{position:inherit;bottom:0;z-index:1000;flex-grow:1;visibility:visible!important;background-color:transparent;border-right:0;border-left:0;transition:none;transform:none}.navbar-expand-xl .offcanvas-bottom,.navbar-expand-xl .offcanvas-top{height:auto;border-top:0;border-bottom:0}.navbar-expand-xl .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible}}@media (min-width:1400px){.navbar-expand-xxl{flex-wrap:nowrap;justify-content:flex-start}.navbar-expand-xxl .navbar-nav{flex-direction:row}.navbar-expand-xxl .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-xxl .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-xxl .navbar-nav-scroll{overflow:visible}.navbar-expand-xxl .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand-xxl .navbar-toggler{display:none}.navbar-expand-xxl .offcanvas-header{display:none}.navbar-expand-xxl .offcanvas{position:inherit;bottom:0;z-index:1000;flex-grow:1;visibility:visible!important;background-color:transparent;border-right:0;border-left:0;transition:none;transform:none}.navbar-expand-xxl .offcanvas-bottom,.navbar-expand-xxl .offcanvas-top{height:auto;border-top:0;border-bottom:0}.navbar-expand-xxl .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible}}.navbar-expand{flex-wrap:nowrap;justify-content:flex-start}.navbar-expand .navbar-nav{flex-direction:row}.navbar-expand .navbar-nav .dropdown-menu{position:absolute}.navbar-expand .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand .navbar-nav-scroll{overflow:visible}.navbar-expand .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand .navbar-toggler{display:none}.navbar-expand .offcanvas-header{display:none}.navbar-expand .offcanvas{position:inherit;bottom:0;z-index:1000;flex-grow:1;visibility:visible!important;background-color:transparent;border-right:0;border-left:0;transition:none;transform:none}.navbar-expand .offcanvas-bottom,.navbar-expand .offcanvas-top{height:auto;border-top:0;border-bottom:0}.navbar-expand .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible}.navbar-light .navbar-brand{color:rgba(0,0,0,.9)}.navbar-light .navbar-brand:focus,.navbar-light .navbar-brand:hover{color:rgba(0,0,0,.9)}.navbar-light .navbar-nav .nav-link{color:rgba(0,0,0,.55)}.navbar-light .navbar-nav .nav-link:focus,.navbar-light .navbar-nav .nav-link:hover{color:rgba(0,0,0,.7)}.navbar-light .navbar-nav .nav-link.disabled{color:rgba(0,0,0,.3)}.navbar-light .navbar-nav .nav-link.active,.navbar-light .navbar-nav .show>.nav-link{color:rgba(0,0,0,.9)}.navbar-light .navbar-toggler{color:rgba(0,0,0,.55);border-color:rgba(0,0,0,.1)}.navbar-light .navbar-toggler-icon{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%280, 0, 0, 0.55%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e")}.navbar-light .navbar-text{color:rgba(0,0,0,.55)}.navbar-light .navbar-text a,.navbar-light .navbar-text a:focus,.navbar-light .navbar-text a:hover{color:rgba(0,0,0,.9)}.navbar-dark .navbar-brand{color:#fff}.navbar-dark .navbar-brand:focus,.navbar-dark .navbar-brand:hover{color:#fff}.navbar-dark .navbar-nav .nav-link{color:rgba(255,255,255,.55)}.navbar-dark .navbar-nav .nav-link:focus,.navbar-dark .navbar-nav .nav-link:hover{color:rgba(255,255,255,.75)}.navbar-dark .navbar-nav .nav-link.disabled{color:rgba(255,255,255,.25)}.navbar-dark .navbar-nav .nav-link.active,.navbar-dark .navbar-nav .show>.nav-link{color:#fff}.navbar-dark .navbar-toggler{color:rgba(255,255,255,.55);border-color:rgba(255,255,255,.1)}.navbar-dark .navbar-toggler-icon{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%28255, 255, 255, 0.55%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e")}.navbar-dark .navbar-text{color:rgba(255,255,255,.55)}.navbar-dark .navbar-text a,.navbar-dark .navbar-text a:focus,.navbar-dark .navbar-text a:hover{color:#fff}.card{position:relative;display:flex;flex-direction:column;min-width:0;word-wrap:break-word;background-color:#fff;background-clip:border-box;border:1px solid rgba(0,0,0,.125);border-radius:.25rem}.card>hr{margin-right:0;margin-left:0}.card>.list-group{border-top:inherit;border-bottom:inherit}.card>.list-group:first-child{border-top-width:0;border-top-left-radius:calc(.25rem - 1px);border-top-right-radius:calc(.25rem - 1px)}.card>.list-group:last-child{border-bottom-width:0;border-bottom-right-radius:calc(.25rem - 1px);border-bottom-left-radius:calc(.25rem - 1px)}.card>.card-header+.list-group,.card>.list-group+.card-footer{border-top:0}.card-body{flex:1 1 auto;padding:1rem 1rem}.card-title{margin-bottom:.5rem}.card-subtitle{margin-top:-.25rem;margin-bottom:0}.card-text:last-child{margin-bottom:0}.card-link+.card-link{margin-left:1rem}.card-header{padding:.5rem 1rem;margin-bottom:0;background-color:rgba(0,0,0,.03);border-bottom:1px solid rgba(0,0,0,.125)}.card-header:first-child{border-radius:calc(.25rem - 1px) calc(.25rem - 1px) 0 0}.card-footer{padding:.5rem 1rem;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.125)}.card-footer:last-child{border-radius:0 0 calc(.25rem - 1px) calc(.25rem - 1px)}.card-header-tabs{margin-right:-.5rem;margin-bottom:-.5rem;margin-left:-.5rem;border-bottom:0}.card-header-pills{margin-right:-.5rem;margin-left:-.5rem}.card-img-overlay{position:absolute;top:0;right:0;bottom:0;left:0;padding:1rem;border-radius:calc(.25rem - 1px)}.card-img,.card-img-bottom,.card-img-top{width:100%}.card-img,.card-img-top{border-top-left-radius:calc(.25rem - 1px);border-top-right-radius:calc(.25rem - 1px)}.card-img,.card-img-bottom{border-bottom-right-radius:calc(.25rem - 1px);border-bottom-left-radius:calc(.25rem - 1px)}.card-group>.card{margin-bottom:.75rem}@media (min-width:576px){.card-group{display:flex;flex-flow:row wrap}.card-group>.card{flex:1 0 0%;margin-bottom:0}.card-group>.card+.card{margin-left:0;border-left:0}.card-group>.card:not(:last-child){border-top-right-radius:0;border-bottom-right-radius:0}.card-group>.card:not(:last-child) .card-header,.card-group>.card:not(:last-child) .card-img-top{border-top-right-radius:0}.card-group>.card:not(:last-child) .card-footer,.card-group>.card:not(:last-child) .card-img-bottom{border-bottom-right-radius:0}.card-group>.card:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.card-group>.card:not(:first-child) .card-header,.card-group>.card:not(:first-child) .card-img-top{border-top-left-radius:0}.card-group>.card:not(:first-child) .card-footer,.card-group>.card:not(:first-child) .card-img-bottom{border-bottom-left-radius:0}}.accordion-button{position:relative;display:flex;align-items:center;width:100%;padding:1rem 1.25rem;font-size:1rem;color:#212529;text-align:left;background-color:#fff;border:0;border-radius:0;overflow-anchor:none;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out,border-radius .15s ease}@media (prefers-reduced-motion:reduce){.accordion-button{transition:none}}.accordion-button:not(.collapsed){color:#0c63e4;background-color:#e7f1ff;box-shadow:inset 0 -1px 0 rgba(0,0,0,.125)}.accordion-button:not(.collapsed)::after{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%230c63e4'%3e%3cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e");transform:rotate(-180deg)}.accordion-button::after{flex-shrink:0;width:1.25rem;height:1.25rem;margin-left:auto;content:"";background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23212529'%3e%3cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e");background-repeat:no-repeat;background-size:1.25rem;transition:transform .2s ease-in-out}@media (prefers-reduced-motion:reduce){.accordion-button::after{transition:none}}.accordion-button:hover{z-index:2}.accordion-button:focus{z-index:3;border-color:#86b7fe;outline:0;box-shadow:0 0 0 .25rem rgba(13,110,253,.25)}.accordion-header{margin-bottom:0}.accordion-item{background-color:#fff;border:1px solid rgba(0,0,0,.125)}.accordion-item:first-of-type{border-top-left-radius:.25rem;border-top-right-radius:.25rem}.accordion-item:first-of-type .accordion-button{border-top-left-radius:calc(.25rem - 1px);border-top-right-radius:calc(.25rem - 1px)}.accordion-item:not(:first-of-type){border-top:0}.accordion-item:last-of-type{border-bottom-right-radius:.25rem;border-bottom-left-radius:.25rem}.accordion-item:last-of-type .accordion-button.collapsed{border-bottom-right-radius:calc(.25rem - 1px);border-bottom-left-radius:calc(.25rem - 1px)}.accordion-item:last-of-type .accordion-collapse{border-bottom-right-radius:.25rem;border-bottom-left-radius:.25rem}.accordion-body{padding:1rem 1.25rem}.accordion-flush .accordion-collapse{border-width:0}.accordion-flush .accordion-item{border-right:0;border-left:0;border-radius:0}.accordion-flush .accordion-item:first-child{border-top:0}.accordion-flush .accordion-item:last-child{border-bottom:0}.accordion-flush .accordion-item .accordion-button{border-radius:0}.breadcrumb{display:flex;flex-wrap:wrap;padding:0 0;margin-bottom:1rem;list-style:none}.breadcrumb-item+.breadcrumb-item{padding-left:.5rem}.breadcrumb-item+.breadcrumb-item::before{float:left;padding-right:.5rem;color:#6c757d;content:var(--bs-breadcrumb-divider, "/")}.breadcrumb-item.active{color:#6c757d}.pagination{display:flex;padding-left:0;list-style:none}.page-link{position:relative;display:block;color:#0d6efd;text-decoration:none;background-color:#fff;border:1px solid #dee2e6;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.page-link{transition:none}}.page-link:hover{z-index:2;color:#0a58ca;background-color:#e9ecef;border-color:#dee2e6}.page-link:focus{z-index:3;color:#0a58ca;background-color:#e9ecef;outline:0;box-shadow:0 0 0 .25rem rgba(13,110,253,.25)}.page-item:not(:first-child) .page-link{margin-left:-1px}.page-item.active .page-link{z-index:3;color:#fff;background-color:#0d6efd;border-color:#0d6efd}.page-item.disabled .page-link{color:#6c757d;pointer-events:none;background-color:#fff;border-color:#dee2e6}.page-link{padding:.375rem .75rem}.page-item:first-child .page-link{border-top-left-radius:.25rem;border-bottom-left-radius:.25rem}.page-item:last-child .page-link{border-top-right-radius:.25rem;border-bottom-right-radius:.25rem}.pagination-lg .page-link{padding:.75rem 1.5rem;font-size:1.25rem}.pagination-lg .page-item:first-child .page-link{border-top-left-radius:.3rem;border-bottom-left-radius:.3rem}.pagination-lg .page-item:last-child .page-link{border-top-right-radius:.3rem;border-bottom-right-radius:.3rem}.pagination-sm .page-link{padding:.25rem .5rem;font-size:.875rem}.pagination-sm .page-item:first-child .page-link{border-top-left-radius:.2rem;border-bottom-left-radius:.2rem}.pagination-sm .page-item:last-child .page-link{border-top-right-radius:.2rem;border-bottom-right-radius:.2rem}.badge{display:inline-block;padding:.35em .65em;font-size:.75em;font-weight:700;line-height:1;color:#fff;text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:.25rem}.badge:empty{display:none}.btn .badge{position:relative;top:-1px}.alert{position:relative;padding:1rem 1rem;margin-bottom:1rem;border:1px solid transparent;border-radius:.25rem}.alert-heading{color:inherit}.alert-link{font-weight:700}.alert-dismissible{padding-right:3rem}.alert-dismissible .btn-close{position:absolute;top:0;right:0;z-index:2;padding:1.25rem 1rem}.alert-primary{color:#084298;background-color:#cfe2ff;border-color:#b6d4fe}.alert-primary .alert-link{color:#06357a}.alert-secondary{color:#41464b;background-color:#e2e3e5;border-color:#d3d6d8}.alert-secondary .alert-link{color:#34383c}.alert-success{color:#0f5132;background-color:#d1e7dd;border-color:#badbcc}.alert-success .alert-link{color:#0c4128}.alert-info{color:#055160;background-color:#cff4fc;border-color:#b6effb}.alert-info .alert-link{color:#04414d}.alert-warning{color:#664d03;background-color:#fff3cd;border-color:#ffecb5}.alert-warning .alert-link{color:#523e02}.alert-danger{color:#842029;background-color:#f8d7da;border-color:#f5c2c7}.alert-danger .alert-link{color:#6a1a21}.alert-light{color:#636464;background-color:#fefefe;border-color:#fdfdfe}.alert-light .alert-link{color:#4f5050}.alert-dark{color:#141619;background-color:#d3d3d4;border-color:#bcbebf}.alert-dark .alert-link{color:#101214}@-webkit-keyframes progress-bar-stripes{0%{background-position-x:1rem}}@keyframes progress-bar-stripes{0%{background-position-x:1rem}}.progress{display:flex;height:1rem;overflow:hidden;font-size:.75rem;background-color:#e9ecef;border-radius:.25rem}.progress-bar{display:flex;flex-direction:column;justify-content:center;overflow:hidden;color:#fff;text-align:center;white-space:nowrap;background-color:#0d6efd;transition:width .6s ease}@media (prefers-reduced-motion:reduce){.progress-bar{transition:none}}.progress-bar-striped{background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-size:1rem 1rem}.progress-bar-animated{-webkit-animation:1s linear infinite progress-bar-stripes;animation:1s linear infinite progress-bar-stripes}@media (prefers-reduced-motion:reduce){.progress-bar-animated{-webkit-animation:none;animation:none}}.list-group{display:flex;flex-direction:column;padding-left:0;margin-bottom:0;border-radius:.25rem}.list-group-numbered{list-style-type:none;counter-reset:section}.list-group-numbered>li::before{content:counters(section, ".") ". ";counter-increment:section}.list-group-item-action{width:100%;color:#495057;text-align:inherit}.list-group-item-action:focus,.list-group-item-action:hover{z-index:1;color:#495057;text-decoration:none;background-color:#f8f9fa}.list-group-item-action:active{color:#212529;background-color:#e9ecef}.list-group-item{position:relative;display:block;padding:.5rem 1rem;color:#212529;text-decoration:none;background-color:#fff;border:1px solid rgba(0,0,0,.125)}.list-group-item:first-child{border-top-left-radius:inherit;border-top-right-radius:inherit}.list-group-item:last-child{border-bottom-right-radius:inherit;border-bottom-left-radius:inherit}.list-group-item.disabled,.list-group-item:disabled{color:#6c757d;pointer-events:none;background-color:#fff}.list-group-item.active{z-index:2;color:#fff;background-color:#0d6efd;border-color:#0d6efd}.list-group-item+.list-group-item{border-top-width:0}.list-group-item+.list-group-item.active{margin-top:-1px;border-top-width:1px}.list-group-horizontal{flex-direction:row}.list-group-horizontal>.list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal>.list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal>.list-group-item.active{margin-top:0}.list-group-horizontal>.list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal>.list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}@media (min-width:576px){.list-group-horizontal-sm{flex-direction:row}.list-group-horizontal-sm>.list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-sm>.list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal-sm>.list-group-item.active{margin-top:0}.list-group-horizontal-sm>.list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-sm>.list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}@media (min-width:768px){.list-group-horizontal-md{flex-direction:row}.list-group-horizontal-md>.list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-md>.list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal-md>.list-group-item.active{margin-top:0}.list-group-horizontal-md>.list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-md>.list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}@media (min-width:992px){.list-group-horizontal-lg{flex-direction:row}.list-group-horizontal-lg>.list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-lg>.list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal-lg>.list-group-item.active{margin-top:0}.list-group-horizontal-lg>.list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-lg>.list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}@media (min-width:1200px){.list-group-horizontal-xl{flex-direction:row}.list-group-horizontal-xl>.list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-xl>.list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal-xl>.list-group-item.active{margin-top:0}.list-group-horizontal-xl>.list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-xl>.list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}@media (min-width:1400px){.list-group-horizontal-xxl{flex-direction:row}.list-group-horizontal-xxl>.list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-xxl>.list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal-xxl>.list-group-item.active{margin-top:0}.list-group-horizontal-xxl>.list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-xxl>.list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}.list-group-flush{border-radius:0}.list-group-flush>.list-group-item{border-width:0 0 1px}.list-group-flush>.list-group-item:last-child{border-bottom-width:0}.list-group-item-primary{color:#084298;background-color:#cfe2ff}.list-group-item-primary.list-group-item-action:focus,.list-group-item-primary.list-group-item-action:hover{color:#084298;background-color:#bacbe6}.list-group-item-primary.list-group-item-action.active{color:#fff;background-color:#084298;border-color:#084298}.list-group-item-secondary{color:#41464b;background-color:#e2e3e5}.list-group-item-secondary.list-group-item-action:focus,.list-group-item-secondary.list-group-item-action:hover{color:#41464b;background-color:#cbccce}.list-group-item-secondary.list-group-item-action.active{color:#fff;background-color:#41464b;border-color:#41464b}.list-group-item-success{color:#0f5132;background-color:#d1e7dd}.list-group-item-success.list-group-item-action:focus,.list-group-item-success.list-group-item-action:hover{color:#0f5132;background-color:#bcd0c7}.list-group-item-success.list-group-item-action.active{color:#fff;background-color:#0f5132;border-color:#0f5132}.list-group-item-info{color:#055160;background-color:#cff4fc}.list-group-item-info.list-group-item-action:focus,.list-group-item-info.list-group-item-action:hover{color:#055160;background-color:#badce3}.list-group-item-info.list-group-item-action.active{color:#fff;background-color:#055160;border-color:#055160}.list-group-item-warning{color:#664d03;background-color:#fff3cd}.list-group-item-warning.list-group-item-action:focus,.list-group-item-warning.list-group-item-action:hover{color:#664d03;background-color:#e6dbb9}.list-group-item-warning.list-group-item-action.active{color:#fff;background-color:#664d03;border-color:#664d03}.list-group-item-danger{color:#842029;background-color:#f8d7da}.list-group-item-danger.list-group-item-action:focus,.list-group-item-danger.list-group-item-action:hover{color:#842029;background-color:#dfc2c4}.list-group-item-danger.list-group-item-action.active{color:#fff;background-color:#842029;border-color:#842029}.list-group-item-light{color:#636464;background-color:#fefefe}.list-group-item-light.list-group-item-action:focus,.list-group-item-light.list-group-item-action:hover{color:#636464;background-color:#e5e5e5}.list-group-item-light.list-group-item-action.active{color:#fff;background-color:#636464;border-color:#636464}.list-group-item-dark{color:#141619;background-color:#d3d3d4}.list-group-item-dark.list-group-item-action:focus,.list-group-item-dark.list-group-item-action:hover{color:#141619;background-color:#bebebf}.list-group-item-dark.list-group-item-action.active{color:#fff;background-color:#141619;border-color:#141619}.btn-close{box-sizing:content-box;width:1em;height:1em;padding:.25em .25em;color:#000;background:transparent url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23000'%3e%3cpath d='M.293.293a1 1 0 011.414 0L8 6.586 14.293.293a1 1 0 111.414 1.414L9.414 8l6.293 6.293a1 1 0 01-1.414 1.414L8 9.414l-6.293 6.293a1 1 0 01-1.414-1.414L6.586 8 .293 1.707a1 1 0 010-1.414z'/%3e%3c/svg%3e") center/1em auto no-repeat;border:0;border-radius:.25rem;opacity:.5}.btn-close:hover{color:#000;text-decoration:none;opacity:.75}.btn-close:focus{outline:0;box-shadow:0 0 0 .25rem rgba(13,110,253,.25);opacity:1}.btn-close.disabled,.btn-close:disabled{pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none;opacity:.25}.btn-close-white{filter:invert(1) grayscale(100%) brightness(200%)}.toast{width:350px;max-width:100%;font-size:.875rem;pointer-events:auto;background-color:rgba(255,255,255,.85);background-clip:padding-box;border:1px solid rgba(0,0,0,.1);box-shadow:0 .5rem 1rem rgba(0,0,0,.15);border-radius:.25rem}.toast.showing{opacity:0}.toast:not(.show){display:none}.toast-container{width:-webkit-max-content;width:-moz-max-content;width:max-content;max-width:100%;pointer-events:none}.toast-container>:not(:last-child){margin-bottom:.75rem}.toast-header{display:flex;align-items:center;padding:.5rem .75rem;color:#6c757d;background-color:rgba(255,255,255,.85);background-clip:padding-box;border-bottom:1px solid rgba(0,0,0,.05);border-top-left-radius:calc(.25rem - 1px);border-top-right-radius:calc(.25rem - 1px)}.toast-header .btn-close{margin-right:-.375rem;margin-left:.75rem}.toast-body{padding:.75rem;word-wrap:break-word}.modal{position:fixed;top:0;left:0;z-index:1055;display:none;width:100%;height:100%;overflow-x:hidden;overflow-y:auto;outline:0}.modal-dialog{position:relative;width:auto;margin:.5rem;pointer-events:none}.modal.fade .modal-dialog{transition:transform .3s ease-out;transform:translate(0,-50px)}@media (prefers-reduced-motion:reduce){.modal.fade .modal-dialog{transition:none}}.modal.show .modal-dialog{transform:none}.modal.modal-static .modal-dialog{transform:scale(1.02)}.modal-dialog-scrollable{height:calc(100% - 1rem)}.modal-dialog-scrollable .modal-content{max-height:100%;overflow:hidden}.modal-dialog-scrollable .modal-body{overflow-y:auto}.modal-dialog-centered{display:flex;align-items:center;min-height:calc(100% - 1rem)}.modal-content{position:relative;display:flex;flex-direction:column;width:100%;pointer-events:auto;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,.2);border-radius:.3rem;outline:0}.modal-backdrop{position:fixed;top:0;left:0;z-index:1050;width:100vw;height:100vh;background-color:#000}.modal-backdrop.fade{opacity:0}.modal-backdrop.show{opacity:.5}.modal-header{display:flex;flex-shrink:0;align-items:center;justify-content:space-between;padding:1rem 1rem;border-bottom:1px solid #dee2e6;border-top-left-radius:calc(.3rem - 1px);border-top-right-radius:calc(.3rem - 1px)}.modal-header .btn-close{padding:.5rem .5rem;margin:-.5rem -.5rem -.5rem auto}.modal-title{margin-bottom:0;line-height:1.5}.modal-body{position:relative;flex:1 1 auto;padding:1rem}.modal-footer{display:flex;flex-wrap:wrap;flex-shrink:0;align-items:center;justify-content:flex-end;padding:.75rem;border-top:1px solid #dee2e6;border-bottom-right-radius:calc(.3rem - 1px);border-bottom-left-radius:calc(.3rem - 1px)}.modal-footer>*{margin:.25rem}@media (min-width:576px){.modal-dialog{max-width:500px;margin:1.75rem auto}.modal-dialog-scrollable{height:calc(100% - 3.5rem)}.modal-dialog-centered{min-height:calc(100% - 3.5rem)}.modal-sm{max-width:300px}}@media (min-width:992px){.modal-lg,.modal-xl{max-width:800px}}@media (min-width:1200px){.modal-xl{max-width:1140px}}.modal-fullscreen{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen .modal-content{height:100%;border:0;border-radius:0}.modal-fullscreen .modal-header{border-radius:0}.modal-fullscreen .modal-body{overflow-y:auto}.modal-fullscreen .modal-footer{border-radius:0}@media (max-width:575.98px){.modal-fullscreen-sm-down{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen-sm-down .modal-content{height:100%;border:0;border-radius:0}.modal-fullscreen-sm-down .modal-header{border-radius:0}.modal-fullscreen-sm-down .modal-body{overflow-y:auto}.modal-fullscreen-sm-down .modal-footer{border-radius:0}}@media (max-width:767.98px){.modal-fullscreen-md-down{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen-md-down .modal-content{height:100%;border:0;border-radius:0}.modal-fullscreen-md-down .modal-header{border-radius:0}.modal-fullscreen-md-down .modal-body{overflow-y:auto}.modal-fullscreen-md-down .modal-footer{border-radius:0}}@media (max-width:991.98px){.modal-fullscreen-lg-down{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen-lg-down .modal-content{height:100%;border:0;border-radius:0}.modal-fullscreen-lg-down .modal-header{border-radius:0}.modal-fullscreen-lg-down .modal-body{overflow-y:auto}.modal-fullscreen-lg-down .modal-footer{border-radius:0}}@media (max-width:1199.98px){.modal-fullscreen-xl-down{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen-xl-down .modal-content{height:100%;border:0;border-radius:0}.modal-fullscreen-xl-down .modal-header{border-radius:0}.modal-fullscreen-xl-down .modal-body{overflow-y:auto}.modal-fullscreen-xl-down .modal-footer{border-radius:0}}@media (max-width:1399.98px){.modal-fullscreen-xxl-down{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen-xxl-down .modal-content{height:100%;border:0;border-radius:0}.modal-fullscreen-xxl-down .modal-header{border-radius:0}.modal-fullscreen-xxl-down .modal-body{overflow-y:auto}.modal-fullscreen-xxl-down .modal-footer{border-radius:0}}.tooltip{position:absolute;z-index:1080;display:block;margin:0;font-family:var(--bs-font-sans-serif);font-style:normal;font-weight:400;line-height:1.5;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;word-spacing:normal;white-space:normal;line-break:auto;font-size:.875rem;word-wrap:break-word;opacity:0}.tooltip.show{opacity:.9}.tooltip .tooltip-arrow{position:absolute;display:block;width:.8rem;height:.4rem}.tooltip .tooltip-arrow::before{position:absolute;content:"";border-color:transparent;border-style:solid}.bs-tooltip-auto[data-popper-placement^=top],.bs-tooltip-top{padding:.4rem 0}.bs-tooltip-auto[data-popper-placement^=top] .tooltip-arrow,.bs-tooltip-top .tooltip-arrow{bottom:0}.bs-tooltip-auto[data-popper-placement^=top] .tooltip-arrow::before,.bs-tooltip-top .tooltip-arrow::before{top:-1px;border-width:.4rem .4rem 0;border-top-color:#000}.bs-tooltip-auto[data-popper-placement^=right],.bs-tooltip-end{padding:0 .4rem}.bs-tooltip-auto[data-popper-placement^=right] .tooltip-arrow,.bs-tooltip-end .tooltip-arrow{left:0;width:.4rem;height:.8rem}.bs-tooltip-auto[data-popper-placement^=right] .tooltip-arrow::before,.bs-tooltip-end .tooltip-arrow::before{right:-1px;border-width:.4rem .4rem .4rem 0;border-right-color:#000}.bs-tooltip-auto[data-popper-placement^=bottom],.bs-tooltip-bottom{padding:.4rem 0}.bs-tooltip-auto[data-popper-placement^=bottom] .tooltip-arrow,.bs-tooltip-bottom .tooltip-arrow{top:0}.bs-tooltip-auto[data-popper-placement^=bottom] .tooltip-arrow::before,.bs-tooltip-bottom .tooltip-arrow::before{bottom:-1px;border-width:0 .4rem .4rem;border-bottom-color:#000}.bs-tooltip-auto[data-popper-placement^=left],.bs-tooltip-start{padding:0 .4rem}.bs-tooltip-auto[data-popper-placement^=left] .tooltip-arrow,.bs-tooltip-start .tooltip-arrow{right:0;width:.4rem;height:.8rem}.bs-tooltip-auto[data-popper-placement^=left] .tooltip-arrow::before,.bs-tooltip-start .tooltip-arrow::before{left:-1px;border-width:.4rem 0 .4rem .4rem;border-left-color:#000}.tooltip-inner{max-width:200px;padding:.25rem .5rem;color:#fff;text-align:center;background-color:#000;border-radius:.25rem}.popover{position:absolute;top:0;left:0;z-index:1070;display:block;max-width:276px;font-family:var(--bs-font-sans-serif);font-style:normal;font-weight:400;line-height:1.5;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;word-spacing:normal;white-space:normal;line-break:auto;font-size:.875rem;word-wrap:break-word;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,.2);border-radius:.3rem}.popover .popover-arrow{position:absolute;display:block;width:1rem;height:.5rem}.popover .popover-arrow::after,.popover .popover-arrow::before{position:absolute;display:block;content:"";border-color:transparent;border-style:solid}.bs-popover-auto[data-popper-placement^=top]>.popover-arrow,.bs-popover-top>.popover-arrow{bottom:calc(-.5rem - 1px)}.bs-popover-auto[data-popper-placement^=top]>.popover-arrow::before,.bs-popover-top>.popover-arrow::before{bottom:0;border-width:.5rem .5rem 0;border-top-color:rgba(0,0,0,.25)}.bs-popover-auto[data-popper-placement^=top]>.popover-arrow::after,.bs-popover-top>.popover-arrow::after{bottom:1px;border-width:.5rem .5rem 0;border-top-color:#fff}.bs-popover-auto[data-popper-placement^=right]>.popover-arrow,.bs-popover-end>.popover-arrow{left:calc(-.5rem - 1px);width:.5rem;height:1rem}.bs-popover-auto[data-popper-placement^=right]>.popover-arrow::before,.bs-popover-end>.popover-arrow::before{left:0;border-width:.5rem .5rem .5rem 0;border-right-color:rgba(0,0,0,.25)}.bs-popover-auto[data-popper-placement^=right]>.popover-arrow::after,.bs-popover-end>.popover-arrow::after{left:1px;border-width:.5rem .5rem .5rem 0;border-right-color:#fff}.bs-popover-auto[data-popper-placement^=bottom]>.popover-arrow,.bs-popover-bottom>.popover-arrow{top:calc(-.5rem - 1px)}.bs-popover-auto[data-popper-placement^=bottom]>.popover-arrow::before,.bs-popover-bottom>.popover-arrow::before{top:0;border-width:0 .5rem .5rem .5rem;border-bottom-color:rgba(0,0,0,.25)}.bs-popover-auto[data-popper-placement^=bottom]>.popover-arrow::after,.bs-popover-bottom>.popover-arrow::after{top:1px;border-width:0 .5rem .5rem .5rem;border-bottom-color:#fff}.bs-popover-auto[data-popper-placement^=bottom] .popover-header::before,.bs-popover-bottom .popover-header::before{position:absolute;top:0;left:50%;display:block;width:1rem;margin-left:-.5rem;content:"";border-bottom:1px solid #f0f0f0}.bs-popover-auto[data-popper-placement^=left]>.popover-arrow,.bs-popover-start>.popover-arrow{right:calc(-.5rem - 1px);width:.5rem;height:1rem}.bs-popover-auto[data-popper-placement^=left]>.popover-arrow::before,.bs-popover-start>.popover-arrow::before{right:0;border-width:.5rem 0 .5rem .5rem;border-left-color:rgba(0,0,0,.25)}.bs-popover-auto[data-popper-placement^=left]>.popover-arrow::after,.bs-popover-start>.popover-arrow::after{right:1px;border-width:.5rem 0 .5rem .5rem;border-left-color:#fff}.popover-header{padding:.5rem 1rem;margin-bottom:0;font-size:1rem;background-color:#f0f0f0;border-bottom:1px solid rgba(0,0,0,.2);border-top-left-radius:calc(.3rem - 1px);border-top-right-radius:calc(.3rem - 1px)}.popover-header:empty{display:none}.popover-body{padding:1rem 1rem;color:#212529}.carousel{position:relative}.carousel.pointer-event{touch-action:pan-y}.carousel-inner{position:relative;width:100%;overflow:hidden}.carousel-inner::after{display:block;clear:both;content:""}.carousel-item{position:relative;display:none;float:left;width:100%;margin-right:-100%;-webkit-backface-visibility:hidden;backface-visibility:hidden;transition:transform .6s ease-in-out}@media (prefers-reduced-motion:reduce){.carousel-item{transition:none}}.carousel-item-next,.carousel-item-prev,.carousel-item.active{display:block}.active.carousel-item-end,.carousel-item-next:not(.carousel-item-start){transform:translateX(100%)}.active.carousel-item-start,.carousel-item-prev:not(.carousel-item-end){transform:translateX(-100%)}.carousel-fade .carousel-item{opacity:0;transition-property:opacity;transform:none}.carousel-fade .carousel-item-next.carousel-item-start,.carousel-fade .carousel-item-prev.carousel-item-end,.carousel-fade .carousel-item.active{z-index:1;opacity:1}.carousel-fade .active.carousel-item-end,.carousel-fade .active.carousel-item-start{z-index:0;opacity:0;transition:opacity 0s .6s}@media (prefers-reduced-motion:reduce){.carousel-fade .active.carousel-item-end,.carousel-fade .active.carousel-item-start{transition:none}}.carousel-control-next,.carousel-control-prev{position:absolute;top:0;bottom:0;z-index:1;display:flex;align-items:center;justify-content:center;width:15%;padding:0;color:#fff;text-align:center;background:0 0;border:0;opacity:.5;transition:opacity .15s ease}@media (prefers-reduced-motion:reduce){.carousel-control-next,.carousel-control-prev{transition:none}}.carousel-control-next:focus,.carousel-control-next:hover,.carousel-control-prev:focus,.carousel-control-prev:hover{color:#fff;text-decoration:none;outline:0;opacity:.9}.carousel-control-prev{left:0}.carousel-control-next{right:0}.carousel-control-next-icon,.carousel-control-prev-icon{display:inline-block;width:2rem;height:2rem;background-repeat:no-repeat;background-position:50%;background-size:100% 100%}.carousel-control-prev-icon{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23fff'%3e%3cpath d='M11.354 1.646a.5.5 0 0 1 0 .708L5.707 8l5.647 5.646a.5.5 0 0 1-.708.708l-6-6a.5.5 0 0 1 0-.708l6-6a.5.5 0 0 1 .708 0z'/%3e%3c/svg%3e")}.carousel-control-next-icon{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23fff'%3e%3cpath d='M4.646 1.646a.5.5 0 0 1 .708 0l6 6a.5.5 0 0 1 0 .708l-6 6a.5.5 0 0 1-.708-.708L10.293 8 4.646 2.354a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e")}.carousel-indicators{position:absolute;right:0;bottom:0;left:0;z-index:2;display:flex;justify-content:center;padding:0;margin-right:15%;margin-bottom:1rem;margin-left:15%;list-style:none}.carousel-indicators [data-bs-target]{box-sizing:content-box;flex:0 1 auto;width:30px;height:3px;padding:0;margin-right:3px;margin-left:3px;text-indent:-999px;cursor:pointer;background-color:#fff;background-clip:padding-box;border:0;border-top:10px solid transparent;border-bottom:10px solid transparent;opacity:.5;transition:opacity .6s ease}@media (prefers-reduced-motion:reduce){.carousel-indicators [data-bs-target]{transition:none}}.carousel-indicators .active{opacity:1}.carousel-caption{position:absolute;right:15%;bottom:1.25rem;left:15%;padding-top:1.25rem;padding-bottom:1.25rem;color:#fff;text-align:center}.carousel-dark .carousel-control-next-icon,.carousel-dark .carousel-control-prev-icon{filter:invert(1) grayscale(100)}.carousel-dark .carousel-indicators [data-bs-target]{background-color:#000}.carousel-dark .carousel-caption{color:#000}@-webkit-keyframes spinner-border{to{transform:rotate(360deg)}}@keyframes spinner-border{to{transform:rotate(360deg)}}.spinner-border{display:inline-block;width:2rem;height:2rem;vertical-align:-.125em;border:.25em solid currentColor;border-right-color:transparent;border-radius:50%;-webkit-animation:.75s linear infinite spinner-border;animation:.75s linear infinite spinner-border}.spinner-border-sm{width:1rem;height:1rem;border-width:.2em}@-webkit-keyframes spinner-grow{0%{transform:scale(0)}50%{opacity:1;transform:none}}@keyframes spinner-grow{0%{transform:scale(0)}50%{opacity:1;transform:none}}.spinner-grow{display:inline-block;width:2rem;height:2rem;vertical-align:-.125em;background-color:currentColor;border-radius:50%;opacity:0;-webkit-animation:.75s linear infinite spinner-grow;animation:.75s linear infinite spinner-grow}.spinner-grow-sm{width:1rem;height:1rem}@media (prefers-reduced-motion:reduce){.spinner-border,.spinner-grow{-webkit-animation-duration:1.5s;animation-duration:1.5s}}.offcanvas{position:fixed;bottom:0;z-index:1045;display:flex;flex-direction:column;max-width:100%;visibility:hidden;background-color:#fff;background-clip:padding-box;outline:0;transition:transform .3s ease-in-out}@media (prefers-reduced-motion:reduce){.offcanvas{transition:none}}.offcanvas-backdrop{position:fixed;top:0;left:0;z-index:1040;width:100vw;height:100vh;background-color:#000}.offcanvas-backdrop.fade{opacity:0}.offcanvas-backdrop.show{opacity:.5}.offcanvas-header{display:flex;align-items:center;justify-content:space-between;padding:1rem 1rem}.offcanvas-header .btn-close{padding:.5rem .5rem;margin-top:-.5rem;margin-right:-.5rem;margin-bottom:-.5rem}.offcanvas-title{margin-bottom:0;line-height:1.5}.offcanvas-body{flex-grow:1;padding:1rem 1rem;overflow-y:auto}.offcanvas-start{top:0;left:0;width:400px;border-right:1px solid rgba(0,0,0,.2);transform:translateX(-100%)}.offcanvas-end{top:0;right:0;width:400px;border-left:1px solid rgba(0,0,0,.2);transform:translateX(100%)}.offcanvas-top{top:0;right:0;left:0;height:30vh;max-height:100%;border-bottom:1px solid rgba(0,0,0,.2);transform:translateY(-100%)}.offcanvas-bottom{right:0;left:0;height:30vh;max-height:100%;border-top:1px solid rgba(0,0,0,.2);transform:translateY(100%)}.offcanvas.show{transform:none}.placeholder{display:inline-block;min-height:1em;vertical-align:middle;cursor:wait;background-color:currentColor;opacity:.5}.placeholder.btn::before{display:inline-block;content:""}.placeholder-xs{min-height:.6em}.placeholder-sm{min-height:.8em}.placeholder-lg{min-height:1.2em}.placeholder-glow .placeholder{-webkit-animation:placeholder-glow 2s ease-in-out infinite;animation:placeholder-glow 2s ease-in-out infinite}@-webkit-keyframes placeholder-glow{50%{opacity:.2}}@keyframes placeholder-glow{50%{opacity:.2}}.placeholder-wave{-webkit-mask-image:linear-gradient(130deg,#000 55%,rgba(0,0,0,0.8) 75%,#000 95%);mask-image:linear-gradient(130deg,#000 55%,rgba(0,0,0,0.8) 75%,#000 95%);-webkit-mask-size:200% 100%;mask-size:200% 100%;-webkit-animation:placeholder-wave 2s linear infinite;animation:placeholder-wave 2s linear infinite}@-webkit-keyframes placeholder-wave{100%{-webkit-mask-position:-200% 0%;mask-position:-200% 0%}}@keyframes placeholder-wave{100%{-webkit-mask-position:-200% 0%;mask-position:-200% 0%}}.clearfix::after{display:block;clear:both;content:""}.link-primary{color:#0d6efd}.link-primary:focus,.link-primary:hover{color:#0a58ca}.link-secondary{color:#6c757d}.link-secondary:focus,.link-secondary:hover{color:#565e64}.link-success{color:#198754}.link-success:focus,.link-success:hover{color:#146c43}.link-info{color:#0dcaf0}.link-info:focus,.link-info:hover{color:#3dd5f3}.link-warning{color:#ffc107}.link-warning:focus,.link-warning:hover{color:#ffcd39}.link-danger{color:#dc3545}.link-danger:focus,.link-danger:hover{color:#b02a37}.link-light{color:#f8f9fa}.link-light:focus,.link-light:hover{color:#f9fafb}.link-dark{color:#212529}.link-dark:focus,.link-dark:hover{color:#1a1e21}.ratio{position:relative;width:100%}.ratio::before{display:block;padding-top:var(--bs-aspect-ratio);content:""}.ratio>*{position:absolute;top:0;left:0;width:100%;height:100%}.ratio-1x1{--bs-aspect-ratio:100%}.ratio-4x3{--bs-aspect-ratio:75%}.ratio-16x9{--bs-aspect-ratio:56.25%}.ratio-21x9{--bs-aspect-ratio:42.8571428571%}.fixed-top{position:fixed;top:0;right:0;left:0;z-index:1030}.fixed-bottom{position:fixed;right:0;bottom:0;left:0;z-index:1030}.sticky-top{position:-webkit-sticky;position:sticky;top:0;z-index:1020}@media (min-width:576px){.sticky-sm-top{position:-webkit-sticky;position:sticky;top:0;z-index:1020}}@media (min-width:768px){.sticky-md-top{position:-webkit-sticky;position:sticky;top:0;z-index:1020}}@media (min-width:992px){.sticky-lg-top{position:-webkit-sticky;position:sticky;top:0;z-index:1020}}@media (min-width:1200px){.sticky-xl-top{position:-webkit-sticky;position:sticky;top:0;z-index:1020}}@media (min-width:1400px){.sticky-xxl-top{position:-webkit-sticky;position:sticky;top:0;z-index:1020}}.hstack{display:flex;flex-direction:row;align-items:center;align-self:stretch}.vstack{display:flex;flex:1 1 auto;flex-direction:column;align-self:stretch}.visually-hidden,.visually-hidden-focusable:not(:focus):not(:focus-within){position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}.stretched-link::after{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;content:""}.text-truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.vr{display:inline-block;align-self:stretch;width:1px;min-height:1em;background-color:currentColor;opacity:.25}.align-baseline{vertical-align:baseline!important}.align-top{vertical-align:top!important}.align-middle{vertical-align:middle!important}.align-bottom{vertical-align:bottom!important}.align-text-bottom{vertical-align:text-bottom!important}.align-text-top{vertical-align:text-top!important}.float-start{float:left!important}.float-end{float:right!important}.float-none{float:none!important}.opacity-0{opacity:0!important}.opacity-25{opacity:.25!important}.opacity-50{opacity:.5!important}.opacity-75{opacity:.75!important}.opacity-100{opacity:1!important}.overflow-auto{overflow:auto!important}.overflow-hidden{overflow:hidden!important}.overflow-visible{overflow:visible!important}.overflow-scroll{overflow:scroll!important}.d-inline{display:inline!important}.d-inline-block{display:inline-block!important}.d-block{display:block!important}.d-grid{display:grid!important}.d-table{display:table!important}.d-table-row{display:table-row!important}.d-table-cell{display:table-cell!important}.d-flex{display:flex!important}.d-inline-flex{display:inline-flex!important}.d-none{display:none!important}.shadow{box-shadow:0 .5rem 1rem rgba(0,0,0,.15)!important}.shadow-sm{box-shadow:0 .125rem .25rem rgba(0,0,0,.075)!important}.shadow-lg{box-shadow:0 1rem 3rem rgba(0,0,0,.175)!important}.shadow-none{box-shadow:none!important}.position-static{position:static!important}.position-relative{position:relative!important}.position-absolute{position:absolute!important}.position-fixed{position:fixed!important}.position-sticky{position:-webkit-sticky!important;position:sticky!important}.top-0{top:0!important}.top-50{top:50%!important}.top-100{top:100%!important}.bottom-0{bottom:0!important}.bottom-50{bottom:50%!important}.bottom-100{bottom:100%!important}.start-0{left:0!important}.start-50{left:50%!important}.start-100{left:100%!important}.end-0{right:0!important}.end-50{right:50%!important}.end-100{right:100%!important}.translate-middle{transform:translate(-50%,-50%)!important}.translate-middle-x{transform:translateX(-50%)!important}.translate-middle-y{transform:translateY(-50%)!important}.border{border:1px solid #dee2e6!important}.border-0{border:0!important}.border-top{border-top:1px solid #dee2e6!important}.border-top-0{border-top:0!important}.border-end{border-right:1px solid #dee2e6!important}.border-end-0{border-right:0!important}.border-bottom{border-bottom:1px solid #dee2e6!important}.border-bottom-0{border-bottom:0!important}.border-start{border-left:1px solid #dee2e6!important}.border-start-0{border-left:0!important}.border-primary{border-color:#0d6efd!important}.border-secondary{border-color:#6c757d!important}.border-success{border-color:#198754!important}.border-info{border-color:#0dcaf0!important}.border-warning{border-color:#ffc107!important}.border-danger{border-color:#dc3545!important}.border-light{border-color:#f8f9fa!important}.border-dark{border-color:#212529!important}.border-white{border-color:#fff!important}.border-1{border-width:1px!important}.border-2{border-width:2px!important}.border-3{border-width:3px!important}.border-4{border-width:4px!important}.border-5{border-width:5px!important}.w-25{width:25%!important}.w-50{width:50%!important}.w-75{width:75%!important}.w-100{width:100%!important}.w-auto{width:auto!important}.mw-100{max-width:100%!important}.vw-100{width:100vw!important}.min-vw-100{min-width:100vw!important}.h-25{height:25%!important}.h-50{height:50%!important}.h-75{height:75%!important}.h-100{height:100%!important}.h-auto{height:auto!important}.mh-100{max-height:100%!important}.vh-100{height:100vh!important}.min-vh-100{min-height:100vh!important}.flex-fill{flex:1 1 auto!important}.flex-row{flex-direction:row!important}.flex-column{flex-direction:column!important}.flex-row-reverse{flex-direction:row-reverse!important}.flex-column-reverse{flex-direction:column-reverse!important}.flex-grow-0{flex-grow:0!important}.flex-grow-1{flex-grow:1!important}.flex-shrink-0{flex-shrink:0!important}.flex-shrink-1{flex-shrink:1!important}.flex-wrap{flex-wrap:wrap!important}.flex-nowrap{flex-wrap:nowrap!important}.flex-wrap-reverse{flex-wrap:wrap-reverse!important}.gap-0{gap:0!important}.gap-1{gap:.25rem!important}.gap-2{gap:.5rem!important}.gap-3{gap:1rem!important}.gap-4{gap:1.5rem!important}.gap-5{gap:3rem!important}.justify-content-start{justify-content:flex-start!important}.justify-content-end{justify-content:flex-end!important}.justify-content-center{justify-content:center!important}.justify-content-between{justify-content:space-between!important}.justify-content-around{justify-content:space-around!important}.justify-content-evenly{justify-content:space-evenly!important}.align-items-start{align-items:flex-start!important}.align-items-end{align-items:flex-end!important}.align-items-center{align-items:center!important}.align-items-baseline{align-items:baseline!important}.align-items-stretch{align-items:stretch!important}.align-content-start{align-content:flex-start!important}.align-content-end{align-content:flex-end!important}.align-content-center{align-content:center!important}.align-content-between{align-content:space-between!important}.align-content-around{align-content:space-around!important}.align-content-stretch{align-content:stretch!important}.align-self-auto{align-self:auto!important}.align-self-start{align-self:flex-start!important}.align-self-end{align-self:flex-end!important}.align-self-center{align-self:center!important}.align-self-baseline{align-self:baseline!important}.align-self-stretch{align-self:stretch!important}.order-first{order:-1!important}.order-0{order:0!important}.order-1{order:1!important}.order-2{order:2!important}.order-3{order:3!important}.order-4{order:4!important}.order-5{order:5!important}.order-last{order:6!important}.m-0{margin:0!important}.m-1{margin:.25rem!important}.m-2{margin:.5rem!important}.m-3{margin:1rem!important}.m-4{margin:1.5rem!important}.m-5{margin:3rem!important}.m-auto{margin:auto!important}.mx-0{margin-right:0!important;margin-left:0!important}.mx-1{margin-right:.25rem!important;margin-left:.25rem!important}.mx-2{margin-right:.5rem!important;margin-left:.5rem!important}.mx-3{margin-right:1rem!important;margin-left:1rem!important}.mx-4{margin-right:1.5rem!important;margin-left:1.5rem!important}.mx-5{margin-right:3rem!important;margin-left:3rem!important}.mx-auto{margin-right:auto!important;margin-left:auto!important}.my-0{margin-top:0!important;margin-bottom:0!important}.my-1{margin-top:.25rem!important;margin-bottom:.25rem!important}.my-2{margin-top:.5rem!important;margin-bottom:.5rem!important}.my-3{margin-top:1rem!important;margin-bottom:1rem!important}.my-4{margin-top:1.5rem!important;margin-bottom:1.5rem!important}.my-5{margin-top:3rem!important;margin-bottom:3rem!important}.my-auto{margin-top:auto!important;margin-bottom:auto!important}.mt-0{margin-top:0!important}.mt-1{margin-top:.25rem!important}.mt-2{margin-top:.5rem!important}.mt-3{margin-top:1rem!important}.mt-4{margin-top:1.5rem!important}.mt-5{margin-top:3rem!important}.mt-auto{margin-top:auto!important}.me-0{margin-right:0!important}.me-1{margin-right:.25rem!important}.me-2{margin-right:.5rem!important}.me-3{margin-right:1rem!important}.me-4{margin-right:1.5rem!important}.me-5{margin-right:3rem!important}.me-auto{margin-right:auto!important}.mb-0{margin-bottom:0!important}.mb-1{margin-bottom:.25rem!important}.mb-2{margin-bottom:.5rem!important}.mb-3{margin-bottom:1rem!important}.mb-4{margin-bottom:1.5rem!important}.mb-5{margin-bottom:3rem!important}.mb-auto{margin-bottom:auto!important}.ms-0{margin-left:0!important}.ms-1{margin-left:.25rem!important}.ms-2{margin-left:.5rem!important}.ms-3{margin-left:1rem!important}.ms-4{margin-left:1.5rem!important}.ms-5{margin-left:3rem!important}.ms-auto{margin-left:auto!important}.p-0{padding:0!important}.p-1{padding:.25rem!important}.p-2{padding:.5rem!important}.p-3{padding:1rem!important}.p-4{padding:1.5rem!important}.p-5{padding:3rem!important}.px-0{padding-right:0!important;padding-left:0!important}.px-1{padding-right:.25rem!important;padding-left:.25rem!important}.px-2{padding-right:.5rem!important;padding-left:.5rem!important}.px-3{padding-right:1rem!important;padding-left:1rem!important}.px-4{padding-right:1.5rem!important;padding-left:1.5rem!important}.px-5{padding-right:3rem!important;padding-left:3rem!important}.py-0{padding-top:0!important;padding-bottom:0!important}.py-1{padding-top:.25rem!important;padding-bottom:.25rem!important}.py-2{padding-top:.5rem!important;padding-bottom:.5rem!important}.py-3{padding-top:1rem!important;padding-bottom:1rem!important}.py-4{padding-top:1.5rem!important;padding-bottom:1.5rem!important}.py-5{padding-top:3rem!important;padding-bottom:3rem!important}.pt-0{padding-top:0!important}.pt-1{padding-top:.25rem!important}.pt-2{padding-top:.5rem!important}.pt-3{padding-top:1rem!important}.pt-4{padding-top:1.5rem!important}.pt-5{padding-top:3rem!important}.pe-0{padding-right:0!important}.pe-1{padding-right:.25rem!important}.pe-2{padding-right:.5rem!important}.pe-3{padding-right:1rem!important}.pe-4{padding-right:1.5rem!important}.pe-5{padding-right:3rem!important}.pb-0{padding-bottom:0!important}.pb-1{padding-bottom:.25rem!important}.pb-2{padding-bottom:.5rem!important}.pb-3{padding-bottom:1rem!important}.pb-4{padding-bottom:1.5rem!important}.pb-5{padding-bottom:3rem!important}.ps-0{padding-left:0!important}.ps-1{padding-left:.25rem!important}.ps-2{padding-left:.5rem!important}.ps-3{padding-left:1rem!important}.ps-4{padding-left:1.5rem!important}.ps-5{padding-left:3rem!important}.font-monospace{font-family:var(--bs-font-monospace)!important}.fs-1{font-size:calc(1.375rem + 1.5vw)!important}.fs-2{font-size:calc(1.325rem + .9vw)!important}.fs-3{font-size:calc(1.3rem + .6vw)!important}.fs-4{font-size:calc(1.275rem + .3vw)!important}.fs-5{font-size:1.25rem!important}.fs-6{font-size:1rem!important}.fst-italic{font-style:italic!important}.fst-normal{font-style:normal!important}.fw-light{font-weight:300!important}.fw-lighter{font-weight:lighter!important}.fw-normal{font-weight:400!important}.fw-bold{font-weight:700!important}.fw-bolder{font-weight:bolder!important}.lh-1{line-height:1!important}.lh-sm{line-height:1.25!important}.lh-base{line-height:1.5!important}.lh-lg{line-height:2!important}.text-start{text-align:left!important}.text-end{text-align:right!important}.text-center{text-align:center!important}.text-decoration-none{text-decoration:none!important}.text-decoration-underline{text-decoration:underline!important}.text-decoration-line-through{text-decoration:line-through!important}.text-lowercase{text-transform:lowercase!important}.text-uppercase{text-transform:uppercase!important}.text-capitalize{text-transform:capitalize!important}.text-wrap{white-space:normal!important}.text-nowrap{white-space:nowrap!important}.text-break{word-wrap:break-word!important;word-break:break-word!important}.text-primary{--bs-text-opacity:1;color:rgba(var(--bs-primary-rgb),var(--bs-text-opacity))!important}.text-secondary{--bs-text-opacity:1;color:rgba(var(--bs-secondary-rgb),var(--bs-text-opacity))!important}.text-success{--bs-text-opacity:1;color:rgba(var(--bs-success-rgb),var(--bs-text-opacity))!important}.text-info{--bs-text-opacity:1;color:rgba(var(--bs-info-rgb),var(--bs-text-opacity))!important}.text-warning{--bs-text-opacity:1;color:rgba(var(--bs-warning-rgb),var(--bs-text-opacity))!important}.text-danger{--bs-text-opacity:1;color:rgba(var(--bs-danger-rgb),var(--bs-text-opacity))!important}.text-light{--bs-text-opacity:1;color:rgba(var(--bs-light-rgb),var(--bs-text-opacity))!important}.text-dark{--bs-text-opacity:1;color:rgba(var(--bs-dark-rgb),var(--bs-text-opacity))!important}.text-black{--bs-text-opacity:1;color:rgba(var(--bs-black-rgb),var(--bs-text-opacity))!important}.text-white{--bs-text-opacity:1;color:rgba(var(--bs-white-rgb),var(--bs-text-opacity))!important}.text-body{--bs-text-opacity:1;color:rgba(var(--bs-body-color-rgb),var(--bs-text-opacity))!important}.text-muted{--bs-text-opacity:1;color:#6c757d!important}.text-black-50{--bs-text-opacity:1;color:rgba(0,0,0,.5)!important}.text-white-50{--bs-text-opacity:1;color:rgba(255,255,255,.5)!important}.text-reset{--bs-text-opacity:1;color:inherit!important}.text-opacity-25{--bs-text-opacity:0.25}.text-opacity-50{--bs-text-opacity:0.5}.text-opacity-75{--bs-text-opacity:0.75}.text-opacity-100{--bs-text-opacity:1}.bg-primary{--bs-bg-opacity:1;background-color:rgba(var(--bs-primary-rgb),var(--bs-bg-opacity))!important}.bg-secondary{--bs-bg-opacity:1;background-color:rgba(var(--bs-secondary-rgb),var(--bs-bg-opacity))!important}.bg-success{--bs-bg-opacity:1;background-color:rgba(var(--bs-success-rgb),var(--bs-bg-opacity))!important}.bg-info{--bs-bg-opacity:1;background-color:rgba(var(--bs-info-rgb),var(--bs-bg-opacity))!important}.bg-warning{--bs-bg-opacity:1;background-color:rgba(var(--bs-warning-rgb),var(--bs-bg-opacity))!important}.bg-danger{--bs-bg-opacity:1;background-color:rgba(var(--bs-danger-rgb),var(--bs-bg-opacity))!important}.bg-light{--bs-bg-opacity:1;background-color:rgba(var(--bs-light-rgb),var(--bs-bg-opacity))!important}.bg-dark{--bs-bg-opacity:1;background-color:rgba(var(--bs-dark-rgb),var(--bs-bg-opacity))!important}.bg-black{--bs-bg-opacity:1;background-color:rgba(var(--bs-black-rgb),var(--bs-bg-opacity))!important}.bg-white{--bs-bg-opacity:1;background-color:rgba(var(--bs-white-rgb),var(--bs-bg-opacity))!important}.bg-body{--bs-bg-opacity:1;background-color:rgba(var(--bs-body-bg-rgb),var(--bs-bg-opacity))!important}.bg-transparent{--bs-bg-opacity:1;background-color:transparent!important}.bg-opacity-10{--bs-bg-opacity:0.1}.bg-opacity-25{--bs-bg-opacity:0.25}.bg-opacity-50{--bs-bg-opacity:0.5}.bg-opacity-75{--bs-bg-opacity:0.75}.bg-opacity-100{--bs-bg-opacity:1}.bg-gradient{background-image:var(--bs-gradient)!important}.user-select-all{-webkit-user-select:all!important;-moz-user-select:all!important;user-select:all!important}.user-select-auto{-webkit-user-select:auto!important;-moz-user-select:auto!important;user-select:auto!important}.user-select-none{-webkit-user-select:none!important;-moz-user-select:none!important;user-select:none!important}.pe-none{pointer-events:none!important}.pe-auto{pointer-events:auto!important}.rounded{border-radius:.25rem!important}.rounded-0{border-radius:0!important}.rounded-1{border-radius:.2rem!important}.rounded-2{border-radius:.25rem!important}.rounded-3{border-radius:.3rem!important}.rounded-circle{border-radius:50%!important}.rounded-pill{border-radius:50rem!important}.rounded-top{border-top-left-radius:.25rem!important;border-top-right-radius:.25rem!important}.rounded-end{border-top-right-radius:.25rem!important;border-bottom-right-radius:.25rem!important}.rounded-bottom{border-bottom-right-radius:.25rem!important;border-bottom-left-radius:.25rem!important}.rounded-start{border-bottom-left-radius:.25rem!important;border-top-left-radius:.25rem!important}.visible{visibility:visible!important}.invisible{visibility:hidden!important}@media (min-width:576px){.float-sm-start{float:left!important}.float-sm-end{float:right!important}.float-sm-none{float:none!important}.d-sm-inline{display:inline!important}.d-sm-inline-block{display:inline-block!important}.d-sm-block{display:block!important}.d-sm-grid{display:grid!important}.d-sm-table{display:table!important}.d-sm-table-row{display:table-row!important}.d-sm-table-cell{display:table-cell!important}.d-sm-flex{display:flex!important}.d-sm-inline-flex{display:inline-flex!important}.d-sm-none{display:none!important}.flex-sm-fill{flex:1 1 auto!important}.flex-sm-row{flex-direction:row!important}.flex-sm-column{flex-direction:column!important}.flex-sm-row-reverse{flex-direction:row-reverse!important}.flex-sm-column-reverse{flex-direction:column-reverse!important}.flex-sm-grow-0{flex-grow:0!important}.flex-sm-grow-1{flex-grow:1!important}.flex-sm-shrink-0{flex-shrink:0!important}.flex-sm-shrink-1{flex-shrink:1!important}.flex-sm-wrap{flex-wrap:wrap!important}.flex-sm-nowrap{flex-wrap:nowrap!important}.flex-sm-wrap-reverse{flex-wrap:wrap-reverse!important}.gap-sm-0{gap:0!important}.gap-sm-1{gap:.25rem!important}.gap-sm-2{gap:.5rem!important}.gap-sm-3{gap:1rem!important}.gap-sm-4{gap:1.5rem!important}.gap-sm-5{gap:3rem!important}.justify-content-sm-start{justify-content:flex-start!important}.justify-content-sm-end{justify-content:flex-end!important}.justify-content-sm-center{justify-content:center!important}.justify-content-sm-between{justify-content:space-between!important}.justify-content-sm-around{justify-content:space-around!important}.justify-content-sm-evenly{justify-content:space-evenly!important}.align-items-sm-start{align-items:flex-start!important}.align-items-sm-end{align-items:flex-end!important}.align-items-sm-center{align-items:center!important}.align-items-sm-baseline{align-items:baseline!important}.align-items-sm-stretch{align-items:stretch!important}.align-content-sm-start{align-content:flex-start!important}.align-content-sm-end{align-content:flex-end!important}.align-content-sm-center{align-content:center!important}.align-content-sm-between{align-content:space-between!important}.align-content-sm-around{align-content:space-around!important}.align-content-sm-stretch{align-content:stretch!important}.align-self-sm-auto{align-self:auto!important}.align-self-sm-start{align-self:flex-start!important}.align-self-sm-end{align-self:flex-end!important}.align-self-sm-center{align-self:center!important}.align-self-sm-baseline{align-self:baseline!important}.align-self-sm-stretch{align-self:stretch!important}.order-sm-first{order:-1!important}.order-sm-0{order:0!important}.order-sm-1{order:1!important}.order-sm-2{order:2!important}.order-sm-3{order:3!important}.order-sm-4{order:4!important}.order-sm-5{order:5!important}.order-sm-last{order:6!important}.m-sm-0{margin:0!important}.m-sm-1{margin:.25rem!important}.m-sm-2{margin:.5rem!important}.m-sm-3{margin:1rem!important}.m-sm-4{margin:1.5rem!important}.m-sm-5{margin:3rem!important}.m-sm-auto{margin:auto!important}.mx-sm-0{margin-right:0!important;margin-left:0!important}.mx-sm-1{margin-right:.25rem!important;margin-left:.25rem!important}.mx-sm-2{margin-right:.5rem!important;margin-left:.5rem!important}.mx-sm-3{margin-right:1rem!important;margin-left:1rem!important}.mx-sm-4{margin-right:1.5rem!important;margin-left:1.5rem!important}.mx-sm-5{margin-right:3rem!important;margin-left:3rem!important}.mx-sm-auto{margin-right:auto!important;margin-left:auto!important}.my-sm-0{margin-top:0!important;margin-bottom:0!important}.my-sm-1{margin-top:.25rem!important;margin-bottom:.25rem!important}.my-sm-2{margin-top:.5rem!important;margin-bottom:.5rem!important}.my-sm-3{margin-top:1rem!important;margin-bottom:1rem!important}.my-sm-4{margin-top:1.5rem!important;margin-bottom:1.5rem!important}.my-sm-5{margin-top:3rem!important;margin-bottom:3rem!important}.my-sm-auto{margin-top:auto!important;margin-bottom:auto!important}.mt-sm-0{margin-top:0!important}.mt-sm-1{margin-top:.25rem!important}.mt-sm-2{margin-top:.5rem!important}.mt-sm-3{margin-top:1rem!important}.mt-sm-4{margin-top:1.5rem!important}.mt-sm-5{margin-top:3rem!important}.mt-sm-auto{margin-top:auto!important}.me-sm-0{margin-right:0!important}.me-sm-1{margin-right:.25rem!important}.me-sm-2{margin-right:.5rem!important}.me-sm-3{margin-right:1rem!important}.me-sm-4{margin-right:1.5rem!important}.me-sm-5{margin-right:3rem!important}.me-sm-auto{margin-right:auto!important}.mb-sm-0{margin-bottom:0!important}.mb-sm-1{margin-bottom:.25rem!important}.mb-sm-2{margin-bottom:.5rem!important}.mb-sm-3{margin-bottom:1rem!important}.mb-sm-4{margin-bottom:1.5rem!important}.mb-sm-5{margin-bottom:3rem!important}.mb-sm-auto{margin-bottom:auto!important}.ms-sm-0{margin-left:0!important}.ms-sm-1{margin-left:.25rem!important}.ms-sm-2{margin-left:.5rem!important}.ms-sm-3{margin-left:1rem!important}.ms-sm-4{margin-left:1.5rem!important}.ms-sm-5{margin-left:3rem!important}.ms-sm-auto{margin-left:auto!important}.p-sm-0{padding:0!important}.p-sm-1{padding:.25rem!important}.p-sm-2{padding:.5rem!important}.p-sm-3{padding:1rem!important}.p-sm-4{padding:1.5rem!important}.p-sm-5{padding:3rem!important}.px-sm-0{padding-right:0!important;padding-left:0!important}.px-sm-1{padding-right:.25rem!important;padding-left:.25rem!important}.px-sm-2{padding-right:.5rem!important;padding-left:.5rem!important}.px-sm-3{padding-right:1rem!important;padding-left:1rem!important}.px-sm-4{padding-right:1.5rem!important;padding-left:1.5rem!important}.px-sm-5{padding-right:3rem!important;padding-left:3rem!important}.py-sm-0{padding-top:0!important;padding-bottom:0!important}.py-sm-1{padding-top:.25rem!important;padding-bottom:.25rem!important}.py-sm-2{padding-top:.5rem!important;padding-bottom:.5rem!important}.py-sm-3{padding-top:1rem!important;padding-bottom:1rem!important}.py-sm-4{padding-top:1.5rem!important;padding-bottom:1.5rem!important}.py-sm-5{padding-top:3rem!important;padding-bottom:3rem!important}.pt-sm-0{padding-top:0!important}.pt-sm-1{padding-top:.25rem!important}.pt-sm-2{padding-top:.5rem!important}.pt-sm-3{padding-top:1rem!important}.pt-sm-4{padding-top:1.5rem!important}.pt-sm-5{padding-top:3rem!important}.pe-sm-0{padding-right:0!important}.pe-sm-1{padding-right:.25rem!important}.pe-sm-2{padding-right:.5rem!important}.pe-sm-3{padding-right:1rem!important}.pe-sm-4{padding-right:1.5rem!important}.pe-sm-5{padding-right:3rem!important}.pb-sm-0{padding-bottom:0!important}.pb-sm-1{padding-bottom:.25rem!important}.pb-sm-2{padding-bottom:.5rem!important}.pb-sm-3{padding-bottom:1rem!important}.pb-sm-4{padding-bottom:1.5rem!important}.pb-sm-5{padding-bottom:3rem!important}.ps-sm-0{padding-left:0!important}.ps-sm-1{padding-left:.25rem!important}.ps-sm-2{padding-left:.5rem!important}.ps-sm-3{padding-left:1rem!important}.ps-sm-4{padding-left:1.5rem!important}.ps-sm-5{padding-left:3rem!important}.text-sm-start{text-align:left!important}.text-sm-end{text-align:right!important}.text-sm-center{text-align:center!important}}@media (min-width:768px){.float-md-start{float:left!important}.float-md-end{float:right!important}.float-md-none{float:none!important}.d-md-inline{display:inline!important}.d-md-inline-block{display:inline-block!important}.d-md-block{display:block!important}.d-md-grid{display:grid!important}.d-md-table{display:table!important}.d-md-table-row{display:table-row!important}.d-md-table-cell{display:table-cell!important}.d-md-flex{display:flex!important}.d-md-inline-flex{display:inline-flex!important}.d-md-none{display:none!important}.flex-md-fill{flex:1 1 auto!important}.flex-md-row{flex-direction:row!important}.flex-md-column{flex-direction:column!important}.flex-md-row-reverse{flex-direction:row-reverse!important}.flex-md-column-reverse{flex-direction:column-reverse!important}.flex-md-grow-0{flex-grow:0!important}.flex-md-grow-1{flex-grow:1!important}.flex-md-shrink-0{flex-shrink:0!important}.flex-md-shrink-1{flex-shrink:1!important}.flex-md-wrap{flex-wrap:wrap!important}.flex-md-nowrap{flex-wrap:nowrap!important}.flex-md-wrap-reverse{flex-wrap:wrap-reverse!important}.gap-md-0{gap:0!important}.gap-md-1{gap:.25rem!important}.gap-md-2{gap:.5rem!important}.gap-md-3{gap:1rem!important}.gap-md-4{gap:1.5rem!important}.gap-md-5{gap:3rem!important}.justify-content-md-start{justify-content:flex-start!important}.justify-content-md-end{justify-content:flex-end!important}.justify-content-md-center{justify-content:center!important}.justify-content-md-between{justify-content:space-between!important}.justify-content-md-around{justify-content:space-around!important}.justify-content-md-evenly{justify-content:space-evenly!important}.align-items-md-start{align-items:flex-start!important}.align-items-md-end{align-items:flex-end!important}.align-items-md-center{align-items:center!important}.align-items-md-baseline{align-items:baseline!important}.align-items-md-stretch{align-items:stretch!important}.align-content-md-start{align-content:flex-start!important}.align-content-md-end{align-content:flex-end!important}.align-content-md-center{align-content:center!important}.align-content-md-between{align-content:space-between!important}.align-content-md-around{align-content:space-around!important}.align-content-md-stretch{align-content:stretch!important}.align-self-md-auto{align-self:auto!important}.align-self-md-start{align-self:flex-start!important}.align-self-md-end{align-self:flex-end!important}.align-self-md-center{align-self:center!important}.align-self-md-baseline{align-self:baseline!important}.align-self-md-stretch{align-self:stretch!important}.order-md-first{order:-1!important}.order-md-0{order:0!important}.order-md-1{order:1!important}.order-md-2{order:2!important}.order-md-3{order:3!important}.order-md-4{order:4!important}.order-md-5{order:5!important}.order-md-last{order:6!important}.m-md-0{margin:0!important}.m-md-1{margin:.25rem!important}.m-md-2{margin:.5rem!important}.m-md-3{margin:1rem!important}.m-md-4{margin:1.5rem!important}.m-md-5{margin:3rem!important}.m-md-auto{margin:auto!important}.mx-md-0{margin-right:0!important;margin-left:0!important}.mx-md-1{margin-right:.25rem!important;margin-left:.25rem!important}.mx-md-2{margin-right:.5rem!important;margin-left:.5rem!important}.mx-md-3{margin-right:1rem!important;margin-left:1rem!important}.mx-md-4{margin-right:1.5rem!important;margin-left:1.5rem!important}.mx-md-5{margin-right:3rem!important;margin-left:3rem!important}.mx-md-auto{margin-right:auto!important;margin-left:auto!important}.my-md-0{margin-top:0!important;margin-bottom:0!important}.my-md-1{margin-top:.25rem!important;margin-bottom:.25rem!important}.my-md-2{margin-top:.5rem!important;margin-bottom:.5rem!important}.my-md-3{margin-top:1rem!important;margin-bottom:1rem!important}.my-md-4{margin-top:1.5rem!important;margin-bottom:1.5rem!important}.my-md-5{margin-top:3rem!important;margin-bottom:3rem!important}.my-md-auto{margin-top:auto!important;margin-bottom:auto!important}.mt-md-0{margin-top:0!important}.mt-md-1{margin-top:.25rem!important}.mt-md-2{margin-top:.5rem!important}.mt-md-3{margin-top:1rem!important}.mt-md-4{margin-top:1.5rem!important}.mt-md-5{margin-top:3rem!important}.mt-md-auto{margin-top:auto!important}.me-md-0{margin-right:0!important}.me-md-1{margin-right:.25rem!important}.me-md-2{margin-right:.5rem!important}.me-md-3{margin-right:1rem!important}.me-md-4{margin-right:1.5rem!important}.me-md-5{margin-right:3rem!important}.me-md-auto{margin-right:auto!important}.mb-md-0{margin-bottom:0!important}.mb-md-1{margin-bottom:.25rem!important}.mb-md-2{margin-bottom:.5rem!important}.mb-md-3{margin-bottom:1rem!important}.mb-md-4{margin-bottom:1.5rem!important}.mb-md-5{margin-bottom:3rem!important}.mb-md-auto{margin-bottom:auto!important}.ms-md-0{margin-left:0!important}.ms-md-1{margin-left:.25rem!important}.ms-md-2{margin-left:.5rem!important}.ms-md-3{margin-left:1rem!important}.ms-md-4{margin-left:1.5rem!important}.ms-md-5{margin-left:3rem!important}.ms-md-auto{margin-left:auto!important}.p-md-0{padding:0!important}.p-md-1{padding:.25rem!important}.p-md-2{padding:.5rem!important}.p-md-3{padding:1rem!important}.p-md-4{padding:1.5rem!important}.p-md-5{padding:3rem!important}.px-md-0{padding-right:0!important;padding-left:0!important}.px-md-1{padding-right:.25rem!important;padding-left:.25rem!important}.px-md-2{padding-right:.5rem!important;padding-left:.5rem!important}.px-md-3{padding-right:1rem!important;padding-left:1rem!important}.px-md-4{padding-right:1.5rem!important;padding-left:1.5rem!important}.px-md-5{padding-right:3rem!important;padding-left:3rem!important}.py-md-0{padding-top:0!important;padding-bottom:0!important}.py-md-1{padding-top:.25rem!important;padding-bottom:.25rem!important}.py-md-2{padding-top:.5rem!important;padding-bottom:.5rem!important}.py-md-3{padding-top:1rem!important;padding-bottom:1rem!important}.py-md-4{padding-top:1.5rem!important;padding-bottom:1.5rem!important}.py-md-5{padding-top:3rem!important;padding-bottom:3rem!important}.pt-md-0{padding-top:0!important}.pt-md-1{padding-top:.25rem!important}.pt-md-2{padding-top:.5rem!important}.pt-md-3{padding-top:1rem!important}.pt-md-4{padding-top:1.5rem!important}.pt-md-5{padding-top:3rem!important}.pe-md-0{padding-right:0!important}.pe-md-1{padding-right:.25rem!important}.pe-md-2{padding-right:.5rem!important}.pe-md-3{padding-right:1rem!important}.pe-md-4{padding-right:1.5rem!important}.pe-md-5{padding-right:3rem!important}.pb-md-0{padding-bottom:0!important}.pb-md-1{padding-bottom:.25rem!important}.pb-md-2{padding-bottom:.5rem!important}.pb-md-3{padding-bottom:1rem!important}.pb-md-4{padding-bottom:1.5rem!important}.pb-md-5{padding-bottom:3rem!important}.ps-md-0{padding-left:0!important}.ps-md-1{padding-left:.25rem!important}.ps-md-2{padding-left:.5rem!important}.ps-md-3{padding-left:1rem!important}.ps-md-4{padding-left:1.5rem!important}.ps-md-5{padding-left:3rem!important}.text-md-start{text-align:left!important}.text-md-end{text-align:right!important}.text-md-center{text-align:center!important}}@media (min-width:992px){.float-lg-start{float:left!important}.float-lg-end{float:right!important}.float-lg-none{float:none!important}.d-lg-inline{display:inline!important}.d-lg-inline-block{display:inline-block!important}.d-lg-block{display:block!important}.d-lg-grid{display:grid!important}.d-lg-table{display:table!important}.d-lg-table-row{display:table-row!important}.d-lg-table-cell{display:table-cell!important}.d-lg-flex{display:flex!important}.d-lg-inline-flex{display:inline-flex!important}.d-lg-none{display:none!important}.flex-lg-fill{flex:1 1 auto!important}.flex-lg-row{flex-direction:row!important}.flex-lg-column{flex-direction:column!important}.flex-lg-row-reverse{flex-direction:row-reverse!important}.flex-lg-column-reverse{flex-direction:column-reverse!important}.flex-lg-grow-0{flex-grow:0!important}.flex-lg-grow-1{flex-grow:1!important}.flex-lg-shrink-0{flex-shrink:0!important}.flex-lg-shrink-1{flex-shrink:1!important}.flex-lg-wrap{flex-wrap:wrap!important}.flex-lg-nowrap{flex-wrap:nowrap!important}.flex-lg-wrap-reverse{flex-wrap:wrap-reverse!important}.gap-lg-0{gap:0!important}.gap-lg-1{gap:.25rem!important}.gap-lg-2{gap:.5rem!important}.gap-lg-3{gap:1rem!important}.gap-lg-4{gap:1.5rem!important}.gap-lg-5{gap:3rem!important}.justify-content-lg-start{justify-content:flex-start!important}.justify-content-lg-end{justify-content:flex-end!important}.justify-content-lg-center{justify-content:center!important}.justify-content-lg-between{justify-content:space-between!important}.justify-content-lg-around{justify-content:space-around!important}.justify-content-lg-evenly{justify-content:space-evenly!important}.align-items-lg-start{align-items:flex-start!important}.align-items-lg-end{align-items:flex-end!important}.align-items-lg-center{align-items:center!important}.align-items-lg-baseline{align-items:baseline!important}.align-items-lg-stretch{align-items:stretch!important}.align-content-lg-start{align-content:flex-start!important}.align-content-lg-end{align-content:flex-end!important}.align-content-lg-center{align-content:center!important}.align-content-lg-between{align-content:space-between!important}.align-content-lg-around{align-content:space-around!important}.align-content-lg-stretch{align-content:stretch!important}.align-self-lg-auto{align-self:auto!important}.align-self-lg-start{align-self:flex-start!important}.align-self-lg-end{align-self:flex-end!important}.align-self-lg-center{align-self:center!important}.align-self-lg-baseline{align-self:baseline!important}.align-self-lg-stretch{align-self:stretch!important}.order-lg-first{order:-1!important}.order-lg-0{order:0!important}.order-lg-1{order:1!important}.order-lg-2{order:2!important}.order-lg-3{order:3!important}.order-lg-4{order:4!important}.order-lg-5{order:5!important}.order-lg-last{order:6!important}.m-lg-0{margin:0!important}.m-lg-1{margin:.25rem!important}.m-lg-2{margin:.5rem!important}.m-lg-3{margin:1rem!important}.m-lg-4{margin:1.5rem!important}.m-lg-5{margin:3rem!important}.m-lg-auto{margin:auto!important}.mx-lg-0{margin-right:0!important;margin-left:0!important}.mx-lg-1{margin-right:.25rem!important;margin-left:.25rem!important}.mx-lg-2{margin-right:.5rem!important;margin-left:.5rem!important}.mx-lg-3{margin-right:1rem!important;margin-left:1rem!important}.mx-lg-4{margin-right:1.5rem!important;margin-left:1.5rem!important}.mx-lg-5{margin-right:3rem!important;margin-left:3rem!important}.mx-lg-auto{margin-right:auto!important;margin-left:auto!important}.my-lg-0{margin-top:0!important;margin-bottom:0!important}.my-lg-1{margin-top:.25rem!important;margin-bottom:.25rem!important}.my-lg-2{margin-top:.5rem!important;margin-bottom:.5rem!important}.my-lg-3{margin-top:1rem!important;margin-bottom:1rem!important}.my-lg-4{margin-top:1.5rem!important;margin-bottom:1.5rem!important}.my-lg-5{margin-top:3rem!important;margin-bottom:3rem!important}.my-lg-auto{margin-top:auto!important;margin-bottom:auto!important}.mt-lg-0{margin-top:0!important}.mt-lg-1{margin-top:.25rem!important}.mt-lg-2{margin-top:.5rem!important}.mt-lg-3{margin-top:1rem!important}.mt-lg-4{margin-top:1.5rem!important}.mt-lg-5{margin-top:3rem!important}.mt-lg-auto{margin-top:auto!important}.me-lg-0{margin-right:0!important}.me-lg-1{margin-right:.25rem!important}.me-lg-2{margin-right:.5rem!important}.me-lg-3{margin-right:1rem!important}.me-lg-4{margin-right:1.5rem!important}.me-lg-5{margin-right:3rem!important}.me-lg-auto{margin-right:auto!important}.mb-lg-0{margin-bottom:0!important}.mb-lg-1{margin-bottom:.25rem!important}.mb-lg-2{margin-bottom:.5rem!important}.mb-lg-3{margin-bottom:1rem!important}.mb-lg-4{margin-bottom:1.5rem!important}.mb-lg-5{margin-bottom:3rem!important}.mb-lg-auto{margin-bottom:auto!important}.ms-lg-0{margin-left:0!important}.ms-lg-1{margin-left:.25rem!important}.ms-lg-2{margin-left:.5rem!important}.ms-lg-3{margin-left:1rem!important}.ms-lg-4{margin-left:1.5rem!important}.ms-lg-5{margin-left:3rem!important}.ms-lg-auto{margin-left:auto!important}.p-lg-0{padding:0!important}.p-lg-1{padding:.25rem!important}.p-lg-2{padding:.5rem!important}.p-lg-3{padding:1rem!important}.p-lg-4{padding:1.5rem!important}.p-lg-5{padding:3rem!important}.px-lg-0{padding-right:0!important;padding-left:0!important}.px-lg-1{padding-right:.25rem!important;padding-left:.25rem!important}.px-lg-2{padding-right:.5rem!important;padding-left:.5rem!important}.px-lg-3{padding-right:1rem!important;padding-left:1rem!important}.px-lg-4{padding-right:1.5rem!important;padding-left:1.5rem!important}.px-lg-5{padding-right:3rem!important;padding-left:3rem!important}.py-lg-0{padding-top:0!important;padding-bottom:0!important}.py-lg-1{padding-top:.25rem!important;padding-bottom:.25rem!important}.py-lg-2{padding-top:.5rem!important;padding-bottom:.5rem!important}.py-lg-3{padding-top:1rem!important;padding-bottom:1rem!important}.py-lg-4{padding-top:1.5rem!important;padding-bottom:1.5rem!important}.py-lg-5{padding-top:3rem!important;padding-bottom:3rem!important}.pt-lg-0{padding-top:0!important}.pt-lg-1{padding-top:.25rem!important}.pt-lg-2{padding-top:.5rem!important}.pt-lg-3{padding-top:1rem!important}.pt-lg-4{padding-top:1.5rem!important}.pt-lg-5{padding-top:3rem!important}.pe-lg-0{padding-right:0!important}.pe-lg-1{padding-right:.25rem!important}.pe-lg-2{padding-right:.5rem!important}.pe-lg-3{padding-right:1rem!important}.pe-lg-4{padding-right:1.5rem!important}.pe-lg-5{padding-right:3rem!important}.pb-lg-0{padding-bottom:0!important}.pb-lg-1{padding-bottom:.25rem!important}.pb-lg-2{padding-bottom:.5rem!important}.pb-lg-3{padding-bottom:1rem!important}.pb-lg-4{padding-bottom:1.5rem!important}.pb-lg-5{padding-bottom:3rem!important}.ps-lg-0{padding-left:0!important}.ps-lg-1{padding-left:.25rem!important}.ps-lg-2{padding-left:.5rem!important}.ps-lg-3{padding-left:1rem!important}.ps-lg-4{padding-left:1.5rem!important}.ps-lg-5{padding-left:3rem!important}.text-lg-start{text-align:left!important}.text-lg-end{text-align:right!important}.text-lg-center{text-align:center!important}}@media (min-width:1200px){.float-xl-start{float:left!important}.float-xl-end{float:right!important}.float-xl-none{float:none!important}.d-xl-inline{display:inline!important}.d-xl-inline-block{display:inline-block!important}.d-xl-block{display:block!important}.d-xl-grid{display:grid!important}.d-xl-table{display:table!important}.d-xl-table-row{display:table-row!important}.d-xl-table-cell{display:table-cell!important}.d-xl-flex{display:flex!important}.d-xl-inline-flex{display:inline-flex!important}.d-xl-none{display:none!important}.flex-xl-fill{flex:1 1 auto!important}.flex-xl-row{flex-direction:row!important}.flex-xl-column{flex-direction:column!important}.flex-xl-row-reverse{flex-direction:row-reverse!important}.flex-xl-column-reverse{flex-direction:column-reverse!important}.flex-xl-grow-0{flex-grow:0!important}.flex-xl-grow-1{flex-grow:1!important}.flex-xl-shrink-0{flex-shrink:0!important}.flex-xl-shrink-1{flex-shrink:1!important}.flex-xl-wrap{flex-wrap:wrap!important}.flex-xl-nowrap{flex-wrap:nowrap!important}.flex-xl-wrap-reverse{flex-wrap:wrap-reverse!important}.gap-xl-0{gap:0!important}.gap-xl-1{gap:.25rem!important}.gap-xl-2{gap:.5rem!important}.gap-xl-3{gap:1rem!important}.gap-xl-4{gap:1.5rem!important}.gap-xl-5{gap:3rem!important}.justify-content-xl-start{justify-content:flex-start!important}.justify-content-xl-end{justify-content:flex-end!important}.justify-content-xl-center{justify-content:center!important}.justify-content-xl-between{justify-content:space-between!important}.justify-content-xl-around{justify-content:space-around!important}.justify-content-xl-evenly{justify-content:space-evenly!important}.align-items-xl-start{align-items:flex-start!important}.align-items-xl-end{align-items:flex-end!important}.align-items-xl-center{align-items:center!important}.align-items-xl-baseline{align-items:baseline!important}.align-items-xl-stretch{align-items:stretch!important}.align-content-xl-start{align-content:flex-start!important}.align-content-xl-end{align-content:flex-end!important}.align-content-xl-center{align-content:center!important}.align-content-xl-between{align-content:space-between!important}.align-content-xl-around{align-content:space-around!important}.align-content-xl-stretch{align-content:stretch!important}.align-self-xl-auto{align-self:auto!important}.align-self-xl-start{align-self:flex-start!important}.align-self-xl-end{align-self:flex-end!important}.align-self-xl-center{align-self:center!important}.align-self-xl-baseline{align-self:baseline!important}.align-self-xl-stretch{align-self:stretch!important}.order-xl-first{order:-1!important}.order-xl-0{order:0!important}.order-xl-1{order:1!important}.order-xl-2{order:2!important}.order-xl-3{order:3!important}.order-xl-4{order:4!important}.order-xl-5{order:5!important}.order-xl-last{order:6!important}.m-xl-0{margin:0!important}.m-xl-1{margin:.25rem!important}.m-xl-2{margin:.5rem!important}.m-xl-3{margin:1rem!important}.m-xl-4{margin:1.5rem!important}.m-xl-5{margin:3rem!important}.m-xl-auto{margin:auto!important}.mx-xl-0{margin-right:0!important;margin-left:0!important}.mx-xl-1{margin-right:.25rem!important;margin-left:.25rem!important}.mx-xl-2{margin-right:.5rem!important;margin-left:.5rem!important}.mx-xl-3{margin-right:1rem!important;margin-left:1rem!important}.mx-xl-4{margin-right:1.5rem!important;margin-left:1.5rem!important}.mx-xl-5{margin-right:3rem!important;margin-left:3rem!important}.mx-xl-auto{margin-right:auto!important;margin-left:auto!important}.my-xl-0{margin-top:0!important;margin-bottom:0!important}.my-xl-1{margin-top:.25rem!important;margin-bottom:.25rem!important}.my-xl-2{margin-top:.5rem!important;margin-bottom:.5rem!important}.my-xl-3{margin-top:1rem!important;margin-bottom:1rem!important}.my-xl-4{margin-top:1.5rem!important;margin-bottom:1.5rem!important}.my-xl-5{margin-top:3rem!important;margin-bottom:3rem!important}.my-xl-auto{margin-top:auto!important;margin-bottom:auto!important}.mt-xl-0{margin-top:0!important}.mt-xl-1{margin-top:.25rem!important}.mt-xl-2{margin-top:.5rem!important}.mt-xl-3{margin-top:1rem!important}.mt-xl-4{margin-top:1.5rem!important}.mt-xl-5{margin-top:3rem!important}.mt-xl-auto{margin-top:auto!important}.me-xl-0{margin-right:0!important}.me-xl-1{margin-right:.25rem!important}.me-xl-2{margin-right:.5rem!important}.me-xl-3{margin-right:1rem!important}.me-xl-4{margin-right:1.5rem!important}.me-xl-5{margin-right:3rem!important}.me-xl-auto{margin-right:auto!important}.mb-xl-0{margin-bottom:0!important}.mb-xl-1{margin-bottom:.25rem!important}.mb-xl-2{margin-bottom:.5rem!important}.mb-xl-3{margin-bottom:1rem!important}.mb-xl-4{margin-bottom:1.5rem!important}.mb-xl-5{margin-bottom:3rem!important}.mb-xl-auto{margin-bottom:auto!important}.ms-xl-0{margin-left:0!important}.ms-xl-1{margin-left:.25rem!important}.ms-xl-2{margin-left:.5rem!important}.ms-xl-3{margin-left:1rem!important}.ms-xl-4{margin-left:1.5rem!important}.ms-xl-5{margin-left:3rem!important}.ms-xl-auto{margin-left:auto!important}.p-xl-0{padding:0!important}.p-xl-1{padding:.25rem!important}.p-xl-2{padding:.5rem!important}.p-xl-3{padding:1rem!important}.p-xl-4{padding:1.5rem!important}.p-xl-5{padding:3rem!important}.px-xl-0{padding-right:0!important;padding-left:0!important}.px-xl-1{padding-right:.25rem!important;padding-left:.25rem!important}.px-xl-2{padding-right:.5rem!important;padding-left:.5rem!important}.px-xl-3{padding-right:1rem!important;padding-left:1rem!important}.px-xl-4{padding-right:1.5rem!important;padding-left:1.5rem!important}.px-xl-5{padding-right:3rem!important;padding-left:3rem!important}.py-xl-0{padding-top:0!important;padding-bottom:0!important}.py-xl-1{padding-top:.25rem!important;padding-bottom:.25rem!important}.py-xl-2{padding-top:.5rem!important;padding-bottom:.5rem!important}.py-xl-3{padding-top:1rem!important;padding-bottom:1rem!important}.py-xl-4{padding-top:1.5rem!important;padding-bottom:1.5rem!important}.py-xl-5{padding-top:3rem!important;padding-bottom:3rem!important}.pt-xl-0{padding-top:0!important}.pt-xl-1{padding-top:.25rem!important}.pt-xl-2{padding-top:.5rem!important}.pt-xl-3{padding-top:1rem!important}.pt-xl-4{padding-top:1.5rem!important}.pt-xl-5{padding-top:3rem!important}.pe-xl-0{padding-right:0!important}.pe-xl-1{padding-right:.25rem!important}.pe-xl-2{padding-right:.5rem!important}.pe-xl-3{padding-right:1rem!important}.pe-xl-4{padding-right:1.5rem!important}.pe-xl-5{padding-right:3rem!important}.pb-xl-0{padding-bottom:0!important}.pb-xl-1{padding-bottom:.25rem!important}.pb-xl-2{padding-bottom:.5rem!important}.pb-xl-3{padding-bottom:1rem!important}.pb-xl-4{padding-bottom:1.5rem!important}.pb-xl-5{padding-bottom:3rem!important}.ps-xl-0{padding-left:0!important}.ps-xl-1{padding-left:.25rem!important}.ps-xl-2{padding-left:.5rem!important}.ps-xl-3{padding-left:1rem!important}.ps-xl-4{padding-left:1.5rem!important}.ps-xl-5{padding-left:3rem!important}.text-xl-start{text-align:left!important}.text-xl-end{text-align:right!important}.text-xl-center{text-align:center!important}}@media (min-width:1400px){.float-xxl-start{float:left!important}.float-xxl-end{float:right!important}.float-xxl-none{float:none!important}.d-xxl-inline{display:inline!important}.d-xxl-inline-block{display:inline-block!important}.d-xxl-block{display:block!important}.d-xxl-grid{display:grid!important}.d-xxl-table{display:table!important}.d-xxl-table-row{display:table-row!important}.d-xxl-table-cell{display:table-cell!important}.d-xxl-flex{display:flex!important}.d-xxl-inline-flex{display:inline-flex!important}.d-xxl-none{display:none!important}.flex-xxl-fill{flex:1 1 auto!important}.flex-xxl-row{flex-direction:row!important}.flex-xxl-column{flex-direction:column!important}.flex-xxl-row-reverse{flex-direction:row-reverse!important}.flex-xxl-column-reverse{flex-direction:column-reverse!important}.flex-xxl-grow-0{flex-grow:0!important}.flex-xxl-grow-1{flex-grow:1!important}.flex-xxl-shrink-0{flex-shrink:0!important}.flex-xxl-shrink-1{flex-shrink:1!important}.flex-xxl-wrap{flex-wrap:wrap!important}.flex-xxl-nowrap{flex-wrap:nowrap!important}.flex-xxl-wrap-reverse{flex-wrap:wrap-reverse!important}.gap-xxl-0{gap:0!important}.gap-xxl-1{gap:.25rem!important}.gap-xxl-2{gap:.5rem!important}.gap-xxl-3{gap:1rem!important}.gap-xxl-4{gap:1.5rem!important}.gap-xxl-5{gap:3rem!important}.justify-content-xxl-start{justify-content:flex-start!important}.justify-content-xxl-end{justify-content:flex-end!important}.justify-content-xxl-center{justify-content:center!important}.justify-content-xxl-between{justify-content:space-between!important}.justify-content-xxl-around{justify-content:space-around!important}.justify-content-xxl-evenly{justify-content:space-evenly!important}.align-items-xxl-start{align-items:flex-start!important}.align-items-xxl-end{align-items:flex-end!important}.align-items-xxl-center{align-items:center!important}.align-items-xxl-baseline{align-items:baseline!important}.align-items-xxl-stretch{align-items:stretch!important}.align-content-xxl-start{align-content:flex-start!important}.align-content-xxl-end{align-content:flex-end!important}.align-content-xxl-center{align-content:center!important}.align-content-xxl-between{align-content:space-between!important}.align-content-xxl-around{align-content:space-around!important}.align-content-xxl-stretch{align-content:stretch!important}.align-self-xxl-auto{align-self:auto!important}.align-self-xxl-start{align-self:flex-start!important}.align-self-xxl-end{align-self:flex-end!important}.align-self-xxl-center{align-self:center!important}.align-self-xxl-baseline{align-self:baseline!important}.align-self-xxl-stretch{align-self:stretch!important}.order-xxl-first{order:-1!important}.order-xxl-0{order:0!important}.order-xxl-1{order:1!important}.order-xxl-2{order:2!important}.order-xxl-3{order:3!important}.order-xxl-4{order:4!important}.order-xxl-5{order:5!important}.order-xxl-last{order:6!important}.m-xxl-0{margin:0!important}.m-xxl-1{margin:.25rem!important}.m-xxl-2{margin:.5rem!important}.m-xxl-3{margin:1rem!important}.m-xxl-4{margin:1.5rem!important}.m-xxl-5{margin:3rem!important}.m-xxl-auto{margin:auto!important}.mx-xxl-0{margin-right:0!important;margin-left:0!important}.mx-xxl-1{margin-right:.25rem!important;margin-left:.25rem!important}.mx-xxl-2{margin-right:.5rem!important;margin-left:.5rem!important}.mx-xxl-3{margin-right:1rem!important;margin-left:1rem!important}.mx-xxl-4{margin-right:1.5rem!important;margin-left:1.5rem!important}.mx-xxl-5{margin-right:3rem!important;margin-left:3rem!important}.mx-xxl-auto{margin-right:auto!important;margin-left:auto!important}.my-xxl-0{margin-top:0!important;margin-bottom:0!important}.my-xxl-1{margin-top:.25rem!important;margin-bottom:.25rem!important}.my-xxl-2{margin-top:.5rem!important;margin-bottom:.5rem!important}.my-xxl-3{margin-top:1rem!important;margin-bottom:1rem!important}.my-xxl-4{margin-top:1.5rem!important;margin-bottom:1.5rem!important}.my-xxl-5{margin-top:3rem!important;margin-bottom:3rem!important}.my-xxl-auto{margin-top:auto!important;margin-bottom:auto!important}.mt-xxl-0{margin-top:0!important}.mt-xxl-1{margin-top:.25rem!important}.mt-xxl-2{margin-top:.5rem!important}.mt-xxl-3{margin-top:1rem!important}.mt-xxl-4{margin-top:1.5rem!important}.mt-xxl-5{margin-top:3rem!important}.mt-xxl-auto{margin-top:auto!important}.me-xxl-0{margin-right:0!important}.me-xxl-1{margin-right:.25rem!important}.me-xxl-2{margin-right:.5rem!important}.me-xxl-3{margin-right:1rem!important}.me-xxl-4{margin-right:1.5rem!important}.me-xxl-5{margin-right:3rem!important}.me-xxl-auto{margin-right:auto!important}.mb-xxl-0{margin-bottom:0!important}.mb-xxl-1{margin-bottom:.25rem!important}.mb-xxl-2{margin-bottom:.5rem!important}.mb-xxl-3{margin-bottom:1rem!important}.mb-xxl-4{margin-bottom:1.5rem!important}.mb-xxl-5{margin-bottom:3rem!important}.mb-xxl-auto{margin-bottom:auto!important}.ms-xxl-0{margin-left:0!important}.ms-xxl-1{margin-left:.25rem!important}.ms-xxl-2{margin-left:.5rem!important}.ms-xxl-3{margin-left:1rem!important}.ms-xxl-4{margin-left:1.5rem!important}.ms-xxl-5{margin-left:3rem!important}.ms-xxl-auto{margin-left:auto!important}.p-xxl-0{padding:0!important}.p-xxl-1{padding:.25rem!important}.p-xxl-2{padding:.5rem!important}.p-xxl-3{padding:1rem!important}.p-xxl-4{padding:1.5rem!important}.p-xxl-5{padding:3rem!important}.px-xxl-0{padding-right:0!important;padding-left:0!important}.px-xxl-1{padding-right:.25rem!important;padding-left:.25rem!important}.px-xxl-2{padding-right:.5rem!important;padding-left:.5rem!important}.px-xxl-3{padding-right:1rem!important;padding-left:1rem!important}.px-xxl-4{padding-right:1.5rem!important;padding-left:1.5rem!important}.px-xxl-5{padding-right:3rem!important;padding-left:3rem!important}.py-xxl-0{padding-top:0!important;padding-bottom:0!important}.py-xxl-1{padding-top:.25rem!important;padding-bottom:.25rem!important}.py-xxl-2{padding-top:.5rem!important;padding-bottom:.5rem!important}.py-xxl-3{padding-top:1rem!important;padding-bottom:1rem!important}.py-xxl-4{padding-top:1.5rem!important;padding-bottom:1.5rem!important}.py-xxl-5{padding-top:3rem!important;padding-bottom:3rem!important}.pt-xxl-0{padding-top:0!important}.pt-xxl-1{padding-top:.25rem!important}.pt-xxl-2{padding-top:.5rem!important}.pt-xxl-3{padding-top:1rem!important}.pt-xxl-4{padding-top:1.5rem!important}.pt-xxl-5{padding-top:3rem!important}.pe-xxl-0{padding-right:0!important}.pe-xxl-1{padding-right:.25rem!important}.pe-xxl-2{padding-right:.5rem!important}.pe-xxl-3{padding-right:1rem!important}.pe-xxl-4{padding-right:1.5rem!important}.pe-xxl-5{padding-right:3rem!important}.pb-xxl-0{padding-bottom:0!important}.pb-xxl-1{padding-bottom:.25rem!important}.pb-xxl-2{padding-bottom:.5rem!important}.pb-xxl-3{padding-bottom:1rem!important}.pb-xxl-4{padding-bottom:1.5rem!important}.pb-xxl-5{padding-bottom:3rem!important}.ps-xxl-0{padding-left:0!important}.ps-xxl-1{padding-left:.25rem!important}.ps-xxl-2{padding-left:.5rem!important}.ps-xxl-3{padding-left:1rem!important}.ps-xxl-4{padding-left:1.5rem!important}.ps-xxl-5{padding-left:3rem!important}.text-xxl-start{text-align:left!important}.text-xxl-end{text-align:right!important}.text-xxl-center{text-align:center!important}}@media (min-width:1200px){.fs-1{font-size:2.5rem!important}.fs-2{font-size:2rem!important}.fs-3{font-size:1.75rem!important}.fs-4{font-size:1.5rem!important}}@media print{.d-print-inline{display:inline!important}.d-print-inline-block{display:inline-block!important}.d-print-block{display:block!important}.d-print-grid{display:grid!important}.d-print-table{display:table!important}.d-print-table-row{display:table-row!important}.d-print-table-cell{display:table-cell!important}.d-print-flex{display:flex!important}.d-print-inline-flex{display:inline-flex!important}.d-print-none{display:none!important}} /*# sourceMappingURL=bootstrap.min.css.map */PK!Ն8F)F)admin/css/bootstrap-vue.min.cssnu[@charset "UTF-8";/*! * BootstrapVue Custom CSS (https://bootstrap-vue.org) */.bv-no-focus-ring:focus{outline:0}@media (max-width:575.98px){.bv-d-xs-down-none{display:none!important}}@media (max-width:767.98px){.bv-d-sm-down-none{display:none!important}}@media (max-width:991.98px){.bv-d-md-down-none{display:none!important}}@media (max-width:1199.98px){.bv-d-lg-down-none{display:none!important}}.bv-d-xl-down-none{display:none!important}.form-control.focus{color:#495057;background-color:#fff;border-color:#80bdff;outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.form-control.focus.is-valid{border-color:#28a745;box-shadow:0 0 0 .2rem rgba(40,167,69,.25)}.form-control.focus.is-invalid{border-color:#dc3545;box-shadow:0 0 0 .2rem rgba(220,53,69,.25)}.b-avatar{display:inline-flex;align-items:center;justify-content:center;vertical-align:middle;flex-shrink:0;width:2.5rem;height:2.5rem;font-size:inherit;font-weight:400;line-height:1;max-width:100%;max-height:auto;text-align:center;overflow:visible;position:relative;transition:color .15s ease-in-out,background-color .15s ease-in-out,box-shadow .15s ease-in-out}.b-avatar:focus{outline:0}.b-avatar.btn,.b-avatar[href]{padding:0;border:0}.b-avatar.btn .b-avatar-img img,.b-avatar[href] .b-avatar-img img{transition:-webkit-transform .15s ease-in-out;transition:transform .15s ease-in-out;transition:transform .15s ease-in-out,-webkit-transform .15s ease-in-out}.b-avatar.btn:not(:disabled):not(.disabled),.b-avatar[href]:not(:disabled):not(.disabled){cursor:pointer}.b-avatar.btn:not(:disabled):not(.disabled):hover .b-avatar-img img,.b-avatar[href]:not(:disabled):not(.disabled):hover .b-avatar-img img{-webkit-transform:scale(1.15);transform:scale(1.15)}.b-avatar.disabled,.b-avatar:disabled,.b-avatar[disabled]{opacity:.65;pointer-events:none}.b-avatar .b-avatar-custom,.b-avatar .b-avatar-img,.b-avatar .b-avatar-text{border-radius:inherit;width:100%;height:100%;overflow:hidden;display:flex;justify-content:center;align-items:center;-webkit-mask-image:radial-gradient(white,#000);mask-image:radial-gradient(white,#000)}.b-avatar .b-avatar-text{text-transform:uppercase;white-space:nowrap}.b-avatar[href]{text-decoration:none}.b-avatar>.b-icon{width:60%;height:auto;max-width:100%}.b-avatar .b-avatar-img img{width:100%;height:100%;max-height:auto;border-radius:inherit;-o-object-fit:cover;object-fit:cover}.b-avatar .b-avatar-badge{position:absolute;min-height:1.5em;min-width:1.5em;padding:.25em;line-height:1;border-radius:10em;font-size:70%;font-weight:700;z-index:1}.b-avatar-sm{width:1.5rem;height:1.5rem}.b-avatar-sm .b-avatar-text{font-size:calc(.6rem)}.b-avatar-sm .b-avatar-badge{font-size:calc(.42rem)}.b-avatar-lg{width:3.5rem;height:3.5rem}.b-avatar-lg .b-avatar-text{font-size:calc(1.4rem)}.b-avatar-lg .b-avatar-badge{font-size:calc(.98rem)}.b-avatar-group .b-avatar-group-inner{display:flex;flex-wrap:wrap}.b-avatar-group .b-avatar{border:1px solid #dee2e6}.b-avatar-group .btn.b-avatar:hover:not(.disabled):not(disabled),.b-avatar-group a.b-avatar:hover:not(.disabled):not(disabled){z-index:1}.b-calendar{display:inline-flex}.b-calendar .b-calendar-inner{min-width:250px}.b-calendar .b-calendar-header,.b-calendar .b-calendar-nav{margin-bottom:.25rem}.b-calendar .b-calendar-nav .btn{padding:.25rem}.b-calendar output{padding:.25rem;font-size:80%}.b-calendar output.readonly{background-color:#e9ecef;opacity:1}.b-calendar .b-calendar-footer{margin-top:.5rem}.b-calendar .b-calendar-grid{padding:0;margin:0;overflow:hidden}.b-calendar .b-calendar-grid .row{flex-wrap:nowrap}.b-calendar .b-calendar-grid-caption{padding:.25rem}.b-calendar .b-calendar-grid-body .col[data-date] .btn{width:32px;height:32px;font-size:14px;line-height:1;margin:3px auto;padding:9px 0}.b-calendar .btn.disabled,.b-calendar .btn:disabled,.b-calendar .btn[aria-disabled=true]{cursor:default;pointer-events:none}.card-img-left{border-top-left-radius:calc(.25rem - 1px);border-bottom-left-radius:calc(.25rem - 1px)}.card-img-right{border-top-right-radius:calc(.25rem - 1px);border-bottom-right-radius:calc(.25rem - 1px)}.dropdown:not(.dropleft) .dropdown-toggle.dropdown-toggle-no-caret::after{display:none!important}.dropdown.dropleft .dropdown-toggle.dropdown-toggle-no-caret::before{display:none!important}.dropdown .dropdown-menu:focus{outline:0}.b-dropdown-form{display:inline-block;padding:.25rem 1.5rem;width:100%;clear:both;font-weight:400}.b-dropdown-form:focus{outline:1px dotted!important;outline:5px auto -webkit-focus-ring-color!important}.b-dropdown-form.disabled,.b-dropdown-form:disabled{outline:0!important;color:#6c757d;pointer-events:none}.b-dropdown-text{display:inline-block;padding:.25rem 1.5rem;margin-bottom:0;width:100%;clear:both;font-weight:lighter}.custom-checkbox.b-custom-control-lg,.input-group-lg .custom-checkbox{font-size:1.25rem;line-height:1.5;padding-left:1.875rem}.custom-checkbox.b-custom-control-lg .custom-control-label::before,.input-group-lg .custom-checkbox .custom-control-label::before{top:.3125rem;left:-1.875rem;width:1.25rem;height:1.25rem;border-radius:.3rem}.custom-checkbox.b-custom-control-lg .custom-control-label::after,.input-group-lg .custom-checkbox .custom-control-label::after{top:.3125rem;left:-1.875rem;width:1.25rem;height:1.25rem;background-size:50% 50%}.custom-checkbox.b-custom-control-sm,.input-group-sm .custom-checkbox{font-size:.875rem;line-height:1.5;padding-left:1.3125rem}.custom-checkbox.b-custom-control-sm .custom-control-label::before,.input-group-sm .custom-checkbox .custom-control-label::before{top:.21875rem;left:-1.3125rem;width:.875rem;height:.875rem;border-radius:.2rem}.custom-checkbox.b-custom-control-sm .custom-control-label::after,.input-group-sm .custom-checkbox .custom-control-label::after{top:.21875rem;left:-1.3125rem;width:.875rem;height:.875rem;background-size:50% 50%}.custom-switch.b-custom-control-lg,.input-group-lg .custom-switch{padding-left:2.8125rem}.custom-switch.b-custom-control-lg .custom-control-label,.input-group-lg .custom-switch .custom-control-label{font-size:1.25rem;line-height:1.5}.custom-switch.b-custom-control-lg .custom-control-label::before,.input-group-lg .custom-switch .custom-control-label::before{top:.3125rem;height:1.25rem;left:-2.8125rem;width:2.1875rem;border-radius:.625rem}.custom-switch.b-custom-control-lg .custom-control-label::after,.input-group-lg .custom-switch .custom-control-label::after{top:calc(.3125rem + 2px);left:calc(-2.8125rem + 2px);width:calc(1.25rem - 4px);height:calc(1.25rem - 4px);border-radius:.625rem;background-size:50% 50%}.custom-switch.b-custom-control-lg .custom-control-input:checked~.custom-control-label::after,.input-group-lg .custom-switch .custom-control-input:checked~.custom-control-label::after{-webkit-transform:translateX(.9375rem);transform:translateX(.9375rem)}.custom-switch.b-custom-control-sm,.input-group-sm .custom-switch{padding-left:1.96875rem}.custom-switch.b-custom-control-sm .custom-control-label,.input-group-sm .custom-switch .custom-control-label{font-size:.875rem;line-height:1.5}.custom-switch.b-custom-control-sm .custom-control-label::before,.input-group-sm .custom-switch .custom-control-label::before{top:.21875rem;left:-1.96875rem;width:1.53125rem;height:.875rem;border-radius:.4375rem}.custom-switch.b-custom-control-sm .custom-control-label::after,.input-group-sm .custom-switch .custom-control-label::after{top:calc(.21875rem + 2px);left:calc(-1.96875rem + 2px);width:calc(.875rem - 4px);height:calc(.875rem - 4px);border-radius:.4375rem;background-size:50% 50%}.custom-switch.b-custom-control-sm .custom-control-input:checked~.custom-control-label::after,.input-group-sm .custom-switch .custom-control-input:checked~.custom-control-label::after{-webkit-transform:translateX(.65625rem);transform:translateX(.65625rem)}.input-group>.input-group-append:last-child>.btn-group:not(:last-child):not(.dropdown-toggle)>.btn,.input-group>.input-group-append:not(:last-child)>.btn-group>.btn,.input-group>.input-group-prepend>.btn-group>.btn{border-top-right-radius:0;border-bottom-right-radius:0}.input-group>.input-group-append>.btn-group>.btn,.input-group>.input-group-prepend:first-child>.btn-group:not(:first-child)>.btn,.input-group>.input-group-prepend:not(:first-child)>.btn-group>.btn{border-top-left-radius:0;border-bottom-left-radius:0}.b-form-btn-label-control.form-control{display:flex;align-items:stretch;height:auto;padding:0;background-image:none}.input-group .b-form-btn-label-control.form-control{padding:0}.b-form-btn-label-control.form-control[dir=rtl],[dir=rtl] .b-form-btn-label-control.form-control{flex-direction:row-reverse}.b-form-btn-label-control.form-control[dir=rtl]>label,[dir=rtl] .b-form-btn-label-control.form-control>label{text-align:right}.b-form-btn-label-control.form-control>.btn{line-height:1;font-size:inherit;box-shadow:none!important;border:0}.b-form-btn-label-control.form-control>.btn:disabled{pointer-events:none}.b-form-btn-label-control.form-control.is-valid>.btn{color:#28a745}.b-form-btn-label-control.form-control.is-invalid>.btn{color:#dc3545}.b-form-btn-label-control.form-control>.dropdown-menu{padding:.5rem}.b-form-btn-label-control.form-control>.form-control{height:auto;min-height:calc(calc(1.5em + .75rem + 2px) - 2px);padding-left:.25rem;margin:0;border:0;outline:0;background:0 0;word-break:break-word;font-size:inherit;white-space:normal;cursor:pointer}.b-form-btn-label-control.form-control>.form-control.form-control-sm{min-height:calc(calc(1.5em + .5rem + 2px) - 2px)}.b-form-btn-label-control.form-control>.form-control.form-control-lg{min-height:calc(calc(1.5em + 1rem + 2px) - 2px)}.input-group.input-group-sm .b-form-btn-label-control.form-control>.form-control{min-height:calc(calc(1.5em + .5rem + 2px) - 2px);padding-top:.25rem;padding-bottom:.25rem}.input-group.input-group-lg .b-form-btn-label-control.form-control>.form-control{min-height:calc(calc(1.5em + 1rem + 2px) - 2px);padding-top:.5rem;padding-bottom:.5rem}.b-form-btn-label-control.form-control[aria-disabled=true],.b-form-btn-label-control.form-control[aria-readonly=true]{background-color:#e9ecef;opacity:1}.b-form-btn-label-control.form-control[aria-disabled=true]{pointer-events:none}.b-form-btn-label-control.form-control[aria-disabled=true]>label{cursor:default}.b-form-btn-label-control.btn-group>.dropdown-menu{padding:.5rem}.custom-file-label{white-space:nowrap;overflow-x:hidden}.b-custom-control-lg .custom-file-input,.b-custom-control-lg .custom-file-label,.b-custom-control-lg.custom-file,.input-group-lg .custom-file-input,.input-group-lg .custom-file-label,.input-group-lg.custom-file{font-size:1.25rem;height:calc(1.5em + 1rem + 2px)}.b-custom-control-lg .custom-file-label,.b-custom-control-lg .custom-file-label:after,.input-group-lg .custom-file-label,.input-group-lg .custom-file-label:after{padding:.5rem 1rem;line-height:1.5}.b-custom-control-lg .custom-file-label,.input-group-lg .custom-file-label{border-radius:.3rem}.b-custom-control-lg .custom-file-label::after,.input-group-lg .custom-file-label::after{font-size:inherit;height:calc(1.5em + 1rem);border-radius:0 .3rem .3rem 0}.b-custom-control-sm .custom-file-input,.b-custom-control-sm .custom-file-label,.b-custom-control-sm.custom-file,.input-group-sm .custom-file-input,.input-group-sm .custom-file-label,.input-group-sm.custom-file{font-size:.875rem;height:calc(1.5em + .5rem + 2px)}.b-custom-control-sm .custom-file-label,.b-custom-control-sm .custom-file-label:after,.input-group-sm .custom-file-label,.input-group-sm .custom-file-label:after{padding:.25rem .5rem;line-height:1.5}.b-custom-control-sm .custom-file-label,.input-group-sm .custom-file-label{border-radius:.2rem}.b-custom-control-sm .custom-file-label::after,.input-group-sm .custom-file-label::after{font-size:inherit;height:calc(1.5em + .5rem);border-radius:0 .2rem .2rem 0}.form-control.is-invalid,.form-control.is-valid,.was-validated .form-control:invalid,.was-validated .form-control:valid{background-position:right calc(.375em + .1875rem) center}input[type=color].form-control{height:calc(1.5em + .75rem + 2px);padding:.125rem .25rem}.input-group-sm input[type=color].form-control,input[type=color].form-control.form-control-sm{height:calc(1.5em + .5rem + 2px);padding:.125rem .25rem}.input-group-lg input[type=color].form-control,input[type=color].form-control.form-control-lg{height:calc(1.5em + 1rem + 2px);padding:.125rem .25rem}input[type=color].form-control:disabled{background-color:#adb5bd;opacity:.65}.input-group>.custom-range{position:relative;flex:1 1 auto;width:1%;margin-bottom:0}.input-group>.custom-range+.custom-file,.input-group>.custom-range+.custom-range,.input-group>.custom-range+.custom-select,.input-group>.custom-range+.form-control,.input-group>.custom-range+.form-control-plaintext{margin-left:-1px}.input-group>.custom-file+.custom-range,.input-group>.custom-range+.custom-range,.input-group>.custom-select+.custom-range,.input-group>.form-control+.custom-range,.input-group>.form-control-plaintext+.custom-range{margin-left:-1px}.input-group>.custom-range:focus{z-index:3}.input-group>.custom-range:not(:last-child){border-top-right-radius:0;border-bottom-right-radius:0}.input-group>.custom-range:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.input-group>.custom-range{height:calc(1.5em + .75rem + 2px);padding:0 .75rem;background-color:#fff;background-clip:padding-box;border:1px solid #ced4da;height:calc(1.5em + .75rem + 2px);border-radius:.25rem;transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.input-group>.custom-range{transition:none}}.input-group>.custom-range:focus{color:#495057;background-color:#fff;border-color:#80bdff;outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.input-group>.custom-range:disabled,.input-group>.custom-range[readonly]{background-color:#e9ecef}.input-group-lg>.custom-range{height:calc(1.5em + 1rem + 2px);padding:0 1rem;border-radius:.3rem}.input-group-sm>.custom-range{height:calc(1.5em + .5rem + 2px);padding:0 .5rem;border-radius:.2rem}.input-group .custom-range.is-valid,.was-validated .input-group .custom-range:valid{border-color:#28a745}.input-group .custom-range.is-valid:focus,.was-validated .input-group .custom-range:valid:focus{border-color:#28a745;box-shadow:0 0 0 .2rem rgba(40,167,69,.25)}.custom-range.is-valid:focus::-webkit-slider-thumb,.was-validated .custom-range:valid:focus::-webkit-slider-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .2rem #9be7ac}.custom-range.is-valid:focus::-moz-range-thumb,.was-validated .custom-range:valid:focus::-moz-range-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .2rem #9be7ac}.custom-range.is-valid:focus::-ms-thumb,.was-validated .custom-range:valid:focus::-ms-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .2rem #9be7ac}.custom-range.is-valid::-webkit-slider-thumb,.was-validated .custom-range:valid::-webkit-slider-thumb{background-color:#28a745;background-image:none}.custom-range.is-valid::-webkit-slider-thumb:active,.was-validated .custom-range:valid::-webkit-slider-thumb:active{background-color:#9be7ac;background-image:none}.custom-range.is-valid::-webkit-slider-runnable-track,.was-validated .custom-range:valid::-webkit-slider-runnable-track{background-color:rgba(40,167,69,.35)}.custom-range.is-valid::-moz-range-thumb,.was-validated .custom-range:valid::-moz-range-thumb{background-color:#28a745;background-image:none}.custom-range.is-valid::-moz-range-thumb:active,.was-validated .custom-range:valid::-moz-range-thumb:active{background-color:#9be7ac;background-image:none}.custom-range.is-valid::-moz-range-track,.was-validated .custom-range:valid::-moz-range-track{background:rgba(40,167,69,.35)}.custom-range.is-valid~.valid-feedback,.custom-range.is-valid~.valid-tooltip,.was-validated .custom-range:valid~.valid-feedback,.was-validated .custom-range:valid~.valid-tooltip{display:block}.custom-range.is-valid::-ms-thumb,.was-validated .custom-range:valid::-ms-thumb{background-color:#28a745;background-image:none}.custom-range.is-valid::-ms-thumb:active,.was-validated .custom-range:valid::-ms-thumb:active{background-color:#9be7ac;background-image:none}.custom-range.is-valid::-ms-track-lower,.was-validated .custom-range:valid::-ms-track-lower{background:rgba(40,167,69,.35)}.custom-range.is-valid::-ms-track-upper,.was-validated .custom-range:valid::-ms-track-upper{background:rgba(40,167,69,.35)}.input-group .custom-range.is-invalid,.was-validated .input-group .custom-range:invalid{border-color:#dc3545}.input-group .custom-range.is-invalid:focus,.was-validated .input-group .custom-range:invalid:focus{border-color:#dc3545;box-shadow:0 0 0 .2rem rgba(220,53,69,.25)}.custom-range.is-invalid:focus::-webkit-slider-thumb,.was-validated .custom-range:invalid:focus::-webkit-slider-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .2rem #f6cdd1}.custom-range.is-invalid:focus::-moz-range-thumb,.was-validated .custom-range:invalid:focus::-moz-range-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .2rem #f6cdd1}.custom-range.is-invalid:focus::-ms-thumb,.was-validated .custom-range:invalid:focus::-ms-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .2rem #f6cdd1}.custom-range.is-invalid::-webkit-slider-thumb,.was-validated .custom-range:invalid::-webkit-slider-thumb{background-color:#dc3545;background-image:none}.custom-range.is-invalid::-webkit-slider-thumb:active,.was-validated .custom-range:invalid::-webkit-slider-thumb:active{background-color:#f6cdd1;background-image:none}.custom-range.is-invalid::-webkit-slider-runnable-track,.was-validated .custom-range:invalid::-webkit-slider-runnable-track{background-color:rgba(220,53,69,.35)}.custom-range.is-invalid::-moz-range-thumb,.was-validated .custom-range:invalid::-moz-range-thumb{background-color:#dc3545;background-image:none}.custom-range.is-invalid::-moz-range-thumb:active,.was-validated .custom-range:invalid::-moz-range-thumb:active{background-color:#f6cdd1;background-image:none}.custom-range.is-invalid::-moz-range-track,.was-validated .custom-range:invalid::-moz-range-track{background:rgba(220,53,69,.35)}.custom-range.is-invalid~.invalid-feedback,.custom-range.is-invalid~.invalid-tooltip,.was-validated .custom-range:invalid~.invalid-feedback,.was-validated .custom-range:invalid~.invalid-tooltip{display:block}.custom-range.is-invalid::-ms-thumb,.was-validated .custom-range:invalid::-ms-thumb{background-color:#dc3545;background-image:none}.custom-range.is-invalid::-ms-thumb:active,.was-validated .custom-range:invalid::-ms-thumb:active{background-color:#f6cdd1;background-image:none}.custom-range.is-invalid::-ms-track-lower,.was-validated .custom-range:invalid::-ms-track-lower{background:rgba(220,53,69,.35)}.custom-range.is-invalid::-ms-track-upper,.was-validated .custom-range:invalid::-ms-track-upper{background:rgba(220,53,69,.35)}.custom-radio.b-custom-control-lg,.input-group-lg .custom-radio{font-size:1.25rem;line-height:1.5;padding-left:1.875rem}.custom-radio.b-custom-control-lg .custom-control-label::before,.input-group-lg .custom-radio .custom-control-label::before{top:.3125rem;left:-1.875rem;width:1.25rem;height:1.25rem;border-radius:50%}.custom-radio.b-custom-control-lg .custom-control-label::after,.input-group-lg .custom-radio .custom-control-label::after{top:.3125rem;left:-1.875rem;width:1.25rem;height:1.25rem;background:no-repeat 50%/50% 50%}.custom-radio.b-custom-control-sm,.input-group-sm .custom-radio{font-size:.875rem;line-height:1.5;padding-left:1.3125rem}.custom-radio.b-custom-control-sm .custom-control-label::before,.input-group-sm .custom-radio .custom-control-label::before{top:.21875rem;left:-1.3125rem;width:.875rem;height:.875rem;border-radius:50%}.custom-radio.b-custom-control-sm .custom-control-label::after,.input-group-sm .custom-radio .custom-control-label::after{top:.21875rem;left:-1.3125rem;width:.875rem;height:.875rem;background:no-repeat 50%/50% 50%}.b-rating{text-align:center}.b-rating.d-inline-flex{width:auto}.b-rating .b-rating-star,.b-rating .b-rating-value{padding:0 .25em}.b-rating .b-rating-value{min-width:2.5em}.b-rating .b-rating-star{display:inline-flex;justify-content:center;outline:0}.b-rating .b-rating-star .b-rating-icon{display:inline-flex;transition:all .15s ease-in-out}.b-rating.disabled,.b-rating:disabled{background-color:#e9ecef;color:#6c757d}.b-rating:not(.disabled):not(.readonly) .b-rating-star{cursor:pointer}.b-rating:not(.disabled):not(.readonly) .b-rating-star:hover .b-rating-icon,.b-rating:not(.disabled):not(.readonly):focus:not(:hover) .b-rating-star.focused .b-rating-icon{-webkit-transform:scale(1.5);transform:scale(1.5)}.b-rating[dir=rtl] .b-rating-star-half{-webkit-transform:scale(-1,1);transform:scale(-1,1)}.b-form-spinbutton{text-align:center;overflow:hidden;background-image:none;padding:0}.b-form-spinbutton[dir=rtl]:not(.flex-column),[dir=rtl] .b-form-spinbutton:not(.flex-column){flex-direction:row-reverse}.b-form-spinbutton output{font-size:inherit;outline:0;border:0;background-color:transparent;width:auto;margin:0;padding:0 .25rem}.b-form-spinbutton output>bdi,.b-form-spinbutton output>div{display:block;min-width:2.25em;height:1.5em}.b-form-spinbutton.flex-column{height:auto;width:auto}.b-form-spinbutton.flex-column output{margin:0 .25rem;padding:.25rem 0}.b-form-spinbutton:not(.d-inline-flex):not(.flex-column){output-width:100%}.b-form-spinbutton.d-inline-flex:not(.flex-column){width:auto}.b-form-spinbutton .btn{line-height:1;box-shadow:none!important}.b-form-spinbutton .btn:disabled{pointer-events:none}.b-form-spinbutton .btn:hover:not(:disabled)>div>.b-icon{-webkit-transform:scale(1.25);transform:scale(1.25)}.b-form-spinbutton.disabled,.b-form-spinbutton.readonly{background-color:#e9ecef}.b-form-spinbutton.disabled{pointer-events:none}.b-form-tags .b-form-tags-list{margin-top:-.25rem}.b-form-tags .b-form-tags-list .b-form-tag,.b-form-tags .b-form-tags-list .b-from-tags-field{margin-top:.25rem}.b-form-tags.focus{color:#495057;background-color:#fff;border-color:#80bdff;outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.b-form-tags.focus.is-valid{border-color:#28a745;box-shadow:0 0 0 .2rem rgba(40,167,69,.25)}.b-form-tags.focus.is-invalid{border-color:#dc3545;box-shadow:0 0 0 .2rem rgba(220,53,69,.25)}.b-form-tags.disabled{background-color:#e9ecef}.b-form-tag{font-size:75%;font-weight:400;line-height:1.5;margin-right:.25rem}.b-form-tag.disabled{opacity:.75}.b-form-tag>button.b-form-tag-remove{color:inherit;font-size:125%;line-height:1;float:none;margin-left:.25rem}.form-control-sm .b-form-tag{line-height:1.5}.form-control-lg .b-form-tag{line-height:1.5}.media-aside{display:flex;margin-right:1rem}.media-aside-right{margin-right:0;margin-left:1rem}.modal-backdrop{opacity:.5}.b-pagination-pills .page-item .page-link{border-radius:50rem!important;margin-left:.25rem;line-height:1}.b-pagination-pills .page-item:first-child .page-link{margin-left:0}.popover.b-popover{display:block;opacity:1;outline:0}.popover.b-popover.fade:not(.show){opacity:0}.popover.b-popover.show{opacity:1}.b-popover-primary.popover{background-color:#cce5ff;border-color:#b8daff}.b-popover-primary.bs-popover-auto[x-placement^=top]>.arrow::before,.b-popover-primary.bs-popover-top>.arrow::before{border-top-color:#b8daff}.b-popover-primary.bs-popover-auto[x-placement^=top]>.arrow::after,.b-popover-primary.bs-popover-top>.arrow::after{border-top-color:#cce5ff}.b-popover-primary.bs-popover-auto[x-placement^=right]>.arrow::before,.b-popover-primary.bs-popover-right>.arrow::before{border-right-color:#b8daff}.b-popover-primary.bs-popover-auto[x-placement^=right]>.arrow::after,.b-popover-primary.bs-popover-right>.arrow::after{border-right-color:#cce5ff}.b-popover-primary.bs-popover-auto[x-placement^=bottom]>.arrow::before,.b-popover-primary.bs-popover-bottom>.arrow::before{border-bottom-color:#b8daff}.b-popover-primary.bs-popover-auto[x-placement^=bottom]>.arrow::after,.b-popover-primary.bs-popover-bottom>.arrow::after{border-bottom-color:#bdddff}.b-popover-primary.bs-popover-auto[x-placement^=bottom] .popover-header::before,.b-popover-primary.bs-popover-bottom .popover-header::before{border-bottom-color:#bdddff}.b-popover-primary.bs-popover-auto[x-placement^=left]>.arrow::before,.b-popover-primary.bs-popover-left>.arrow::before{border-left-color:#b8daff}.b-popover-primary.bs-popover-auto[x-placement^=left]>.arrow::after,.b-popover-primary.bs-popover-left>.arrow::after{border-left-color:#cce5ff}.b-popover-primary .popover-header{color:#212529;background-color:#bdddff;border-bottom-color:#a3d0ff}.b-popover-primary .popover-body{color:#004085}.b-popover-secondary.popover{background-color:#e2e3e5;border-color:#d6d8db}.b-popover-secondary.bs-popover-auto[x-placement^=top]>.arrow::before,.b-popover-secondary.bs-popover-top>.arrow::before{border-top-color:#d6d8db}.b-popover-secondary.bs-popover-auto[x-placement^=top]>.arrow::after,.b-popover-secondary.bs-popover-top>.arrow::after{border-top-color:#e2e3e5}.b-popover-secondary.bs-popover-auto[x-placement^=right]>.arrow::before,.b-popover-secondary.bs-popover-right>.arrow::before{border-right-color:#d6d8db}.b-popover-secondary.bs-popover-auto[x-placement^=right]>.arrow::after,.b-popover-secondary.bs-popover-right>.arrow::after{border-right-color:#e2e3e5}.b-popover-secondary.bs-popover-auto[x-placement^=bottom]>.arrow::before,.b-popover-secondary.bs-popover-bottom>.arrow::before{border-bottom-color:#d6d8db}.b-popover-secondary.bs-popover-auto[x-placement^=bottom]>.arrow::after,.b-popover-secondary.bs-popover-bottom>.arrow::after{border-bottom-color:#dadbde}.b-popover-secondary.bs-popover-auto[x-placement^=bottom] .popover-header::before,.b-popover-secondary.bs-popover-bottom .popover-header::before{border-bottom-color:#dadbde}.b-popover-secondary.bs-popover-auto[x-placement^=left]>.arrow::before,.b-popover-secondary.bs-popover-left>.arrow::before{border-left-color:#d6d8db}.b-popover-secondary.bs-popover-auto[x-placement^=left]>.arrow::after,.b-popover-secondary.bs-popover-left>.arrow::after{border-left-color:#e2e3e5}.b-popover-secondary .popover-header{color:#212529;background-color:#dadbde;border-bottom-color:#ccced2}.b-popover-secondary .popover-body{color:#383d41}.b-popover-success.popover{background-color:#d4edda;border-color:#c3e6cb}.b-popover-success.bs-popover-auto[x-placement^=top]>.arrow::before,.b-popover-success.bs-popover-top>.arrow::before{border-top-color:#c3e6cb}.b-popover-success.bs-popover-auto[x-placement^=top]>.arrow::after,.b-popover-success.bs-popover-top>.arrow::after{border-top-color:#d4edda}.b-popover-success.bs-popover-auto[x-placement^=right]>.arrow::before,.b-popover-success.bs-popover-right>.arrow::before{border-right-color:#c3e6cb}.b-popover-success.bs-popover-auto[x-placement^=right]>.arrow::after,.b-popover-success.bs-popover-right>.arrow::after{border-right-color:#d4edda}.b-popover-success.bs-popover-auto[x-placement^=bottom]>.arrow::before,.b-popover-success.bs-popover-bottom>.arrow::before{border-bottom-color:#c3e6cb}.b-popover-success.bs-popover-auto[x-placement^=bottom]>.arrow::after,.b-popover-success.bs-popover-bottom>.arrow::after{border-bottom-color:#c9e8d1}.b-popover-success.bs-popover-auto[x-placement^=bottom] .popover-header::before,.b-popover-success.bs-popover-bottom .popover-header::before{border-bottom-color:#c9e8d1}.b-popover-success.bs-popover-auto[x-placement^=left]>.arrow::before,.b-popover-success.bs-popover-left>.arrow::before{border-left-color:#c3e6cb}.b-popover-success.bs-popover-auto[x-placement^=left]>.arrow::after,.b-popover-success.bs-popover-left>.arrow::after{border-left-color:#d4edda}.b-popover-success .popover-header{color:#212529;background-color:#c9e8d1;border-bottom-color:#b7e1c1}.b-popover-success .popover-body{color:#155724}.b-popover-info.popover{background-color:#d1ecf1;border-color:#bee5eb}.b-popover-info.bs-popover-auto[x-placement^=top]>.arrow::before,.b-popover-info.bs-popover-top>.arrow::before{border-top-color:#bee5eb}.b-popover-info.bs-popover-auto[x-placement^=top]>.arrow::after,.b-popover-info.bs-popover-top>.arrow::after{border-top-color:#d1ecf1}.b-popover-info.bs-popover-auto[x-placement^=right]>.arrow::before,.b-popover-info.bs-popover-right>.arrow::before{border-right-color:#bee5eb}.b-popover-info.bs-popover-auto[x-placement^=right]>.arrow::after,.b-popover-info.bs-popover-right>.arrow::after{border-right-color:#d1ecf1}.b-popover-info.bs-popover-auto[x-placement^=bottom]>.arrow::before,.b-popover-info.bs-popover-bottom>.arrow::before{border-bottom-color:#bee5eb}.b-popover-info.bs-popover-auto[x-placement^=bottom]>.arrow::after,.b-popover-info.bs-popover-bottom>.arrow::after{border-bottom-color:#c5e7ed}.b-popover-info.bs-popover-auto[x-placement^=bottom] .popover-header::before,.b-popover-info.bs-popover-bottom .popover-header::before{border-bottom-color:#c5e7ed}.b-popover-info.bs-popover-auto[x-placement^=left]>.arrow::before,.b-popover-info.bs-popover-left>.arrow::before{border-left-color:#bee5eb}.b-popover-info.bs-popover-auto[x-placement^=left]>.arrow::after,.b-popover-info.bs-popover-left>.arrow::after{border-left-color:#d1ecf1}.b-popover-info .popover-header{color:#212529;background-color:#c5e7ed;border-bottom-color:#b2dfe7}.b-popover-info .popover-body{color:#0c5460}.b-popover-warning.popover{background-color:#fff3cd;border-color:#ffeeba}.b-popover-warning.bs-popover-auto[x-placement^=top]>.arrow::before,.b-popover-warning.bs-popover-top>.arrow::before{border-top-color:#ffeeba}.b-popover-warning.bs-popover-auto[x-placement^=top]>.arrow::after,.b-popover-warning.bs-popover-top>.arrow::after{border-top-color:#fff3cd}.b-popover-warning.bs-popover-auto[x-placement^=right]>.arrow::before,.b-popover-warning.bs-popover-right>.arrow::before{border-right-color:#ffeeba}.b-popover-warning.bs-popover-auto[x-placement^=right]>.arrow::after,.b-popover-warning.bs-popover-right>.arrow::after{border-right-color:#fff3cd}.b-popover-warning.bs-popover-auto[x-placement^=bottom]>.arrow::before,.b-popover-warning.bs-popover-bottom>.arrow::before{border-bottom-color:#ffeeba}.b-popover-warning.bs-popover-auto[x-placement^=bottom]>.arrow::after,.b-popover-warning.bs-popover-bottom>.arrow::after{border-bottom-color:#ffefbe}.b-popover-warning.bs-popover-auto[x-placement^=bottom] .popover-header::before,.b-popover-warning.bs-popover-bottom .popover-header::before{border-bottom-color:#ffefbe}.b-popover-warning.bs-popover-auto[x-placement^=left]>.arrow::before,.b-popover-warning.bs-popover-left>.arrow::before{border-left-color:#ffeeba}.b-popover-warning.bs-popover-auto[x-placement^=left]>.arrow::after,.b-popover-warning.bs-popover-left>.arrow::after{border-left-color:#fff3cd}.b-popover-warning .popover-header{color:#212529;background-color:#ffefbe;border-bottom-color:#ffe9a4}.b-popover-warning .popover-body{color:#856404}.b-popover-danger.popover{background-color:#f8d7da;border-color:#f5c6cb}.b-popover-danger.bs-popover-auto[x-placement^=top]>.arrow::before,.b-popover-danger.bs-popover-top>.arrow::before{border-top-color:#f5c6cb}.b-popover-danger.bs-popover-auto[x-placement^=top]>.arrow::after,.b-popover-danger.bs-popover-top>.arrow::after{border-top-color:#f8d7da}.b-popover-danger.bs-popover-auto[x-placement^=right]>.arrow::before,.b-popover-danger.bs-popover-right>.arrow::before{border-right-color:#f5c6cb}.b-popover-danger.bs-popover-auto[x-placement^=right]>.arrow::after,.b-popover-danger.bs-popover-right>.arrow::after{border-right-color:#f8d7da}.b-popover-danger.bs-popover-auto[x-placement^=bottom]>.arrow::before,.b-popover-danger.bs-popover-bottom>.arrow::before{border-bottom-color:#f5c6cb}.b-popover-danger.bs-popover-auto[x-placement^=bottom]>.arrow::after,.b-popover-danger.bs-popover-bottom>.arrow::after{border-bottom-color:#f6cace}.b-popover-danger.bs-popover-auto[x-placement^=bottom] .popover-header::before,.b-popover-danger.bs-popover-bottom .popover-header::before{border-bottom-color:#f6cace}.b-popover-danger.bs-popover-auto[x-placement^=left]>.arrow::before,.b-popover-danger.bs-popover-left>.arrow::before{border-left-color:#f5c6cb}.b-popover-danger.bs-popover-auto[x-placement^=left]>.arrow::after,.b-popover-danger.bs-popover-left>.arrow::after{border-left-color:#f8d7da}.b-popover-danger .popover-header{color:#212529;background-color:#f6cace;border-bottom-color:#f2b4ba}.b-popover-danger .popover-body{color:#721c24}.b-popover-light.popover{background-color:#fefefe;border-color:#fdfdfe}.b-popover-light.bs-popover-auto[x-placement^=top]>.arrow::before,.b-popover-light.bs-popover-top>.arrow::before{border-top-color:#fdfdfe}.b-popover-light.bs-popover-auto[x-placement^=top]>.arrow::after,.b-popover-light.bs-popover-top>.arrow::after{border-top-color:#fefefe}.b-popover-light.bs-popover-auto[x-placement^=right]>.arrow::before,.b-popover-light.bs-popover-right>.arrow::before{border-right-color:#fdfdfe}.b-popover-light.bs-popover-auto[x-placement^=right]>.arrow::after,.b-popover-light.bs-popover-right>.arrow::after{border-right-color:#fefefe}.b-popover-light.bs-popover-auto[x-placement^=bottom]>.arrow::before,.b-popover-light.bs-popover-bottom>.arrow::before{border-bottom-color:#fdfdfe}.b-popover-light.bs-popover-auto[x-placement^=bottom]>.arrow::after,.b-popover-light.bs-popover-bottom>.arrow::after{border-bottom-color:#f6f6f6}.b-popover-light.bs-popover-auto[x-placement^=bottom] .popover-header::before,.b-popover-light.bs-popover-bottom .popover-header::before{border-bottom-color:#f6f6f6}.b-popover-light.bs-popover-auto[x-placement^=left]>.arrow::before,.b-popover-light.bs-popover-left>.arrow::before{border-left-color:#fdfdfe}.b-popover-light.bs-popover-auto[x-placement^=left]>.arrow::after,.b-popover-light.bs-popover-left>.arrow::after{border-left-color:#fefefe}.b-popover-light .popover-header{color:#212529;background-color:#f6f6f6;border-bottom-color:#eaeaea}.b-popover-light .popover-body{color:#818182}.b-popover-dark.popover{background-color:#d6d8d9;border-color:#c6c8ca}.b-popover-dark.bs-popover-auto[x-placement^=top]>.arrow::before,.b-popover-dark.bs-popover-top>.arrow::before{border-top-color:#c6c8ca}.b-popover-dark.bs-popover-auto[x-placement^=top]>.arrow::after,.b-popover-dark.bs-popover-top>.arrow::after{border-top-color:#d6d8d9}.b-popover-dark.bs-popover-auto[x-placement^=right]>.arrow::before,.b-popover-dark.bs-popover-right>.arrow::before{border-right-color:#c6c8ca}.b-popover-dark.bs-popover-auto[x-placement^=right]>.arrow::after,.b-popover-dark.bs-popover-right>.arrow::after{border-right-color:#d6d8d9}.b-popover-dark.bs-popover-auto[x-placement^=bottom]>.arrow::before,.b-popover-dark.bs-popover-bottom>.arrow::before{border-bottom-color:#c6c8ca}.b-popover-dark.bs-popover-auto[x-placement^=bottom]>.arrow::after,.b-popover-dark.bs-popover-bottom>.arrow::after{border-bottom-color:#ced0d2}.b-popover-dark.bs-popover-auto[x-placement^=bottom] .popover-header::before,.b-popover-dark.bs-popover-bottom .popover-header::before{border-bottom-color:#ced0d2}.b-popover-dark.bs-popover-auto[x-placement^=left]>.arrow::before,.b-popover-dark.bs-popover-left>.arrow::before{border-left-color:#c6c8ca}.b-popover-dark.bs-popover-auto[x-placement^=left]>.arrow::after,.b-popover-dark.bs-popover-left>.arrow::after{border-left-color:#d6d8d9}.b-popover-dark .popover-header{color:#212529;background-color:#ced0d2;border-bottom-color:#c1c4c5}.b-popover-dark .popover-body{color:#1b1e21}.b-sidebar-outer{position:fixed;top:0;left:0;right:0;height:0;overflow:visible;z-index:calc(1030 + 5)}.b-sidebar-backdrop{position:fixed;top:0;left:0;z-index:-1;width:100vw;height:100vh;opacity:.6}.b-sidebar{display:flex;flex-direction:column;position:fixed;top:0;width:320px;max-width:100%;height:100vh;max-height:100%;margin:0;outline:0;-webkit-transform:translateX(0);transform:translateX(0)}.b-sidebar.slide{transition:-webkit-transform .3s ease-in-out;transition:transform .3s ease-in-out;transition:transform .3s ease-in-out,-webkit-transform .3s ease-in-out}@media (prefers-reduced-motion:reduce){.b-sidebar.slide{transition:none}}.b-sidebar:not(.b-sidebar-right){left:0;right:auto}.b-sidebar:not(.b-sidebar-right).slide:not(.show){-webkit-transform:translateX(-100%);transform:translateX(-100%)}.b-sidebar:not(.b-sidebar-right)>.b-sidebar-header .close{margin-left:auto}.b-sidebar.b-sidebar-right{left:auto;right:0}.b-sidebar.b-sidebar-right.slide:not(.show){-webkit-transform:translateX(100%);transform:translateX(100%)}.b-sidebar.b-sidebar-right>.b-sidebar-header .close{margin-right:auto}.b-sidebar>.b-sidebar-header{font-size:1.5rem;padding:.5rem 1rem;display:flex;flex-direction:row;flex-grow:0;align-items:center}[dir=rtl] .b-sidebar>.b-sidebar-header{flex-direction:row-reverse}.b-sidebar>.b-sidebar-header .close{float:none;font-size:1.5rem}.b-sidebar>.b-sidebar-body{flex-grow:1;height:100%;overflow-y:auto}.b-sidebar>.b-sidebar-footer{flex-grow:0}.b-skeleton-wrapper{cursor:wait}.b-skeleton{position:relative;overflow:hidden;background-color:rgba(0,0,0,.12);cursor:wait;-webkit-mask-image:radial-gradient(white,#000);mask-image:radial-gradient(white,#000)}.b-skeleton::before{content:" "}.b-skeleton-text{height:1rem;margin-bottom:.25rem;border-radius:.25rem}.b-skeleton-button{width:75px;padding:.375rem .75rem;font-size:1rem;line-height:1.5;border-radius:.25rem}.b-skeleton-avatar{width:2.5em;height:2.5em;border-radius:50%}.b-skeleton-input{height:calc(1.5em + .75rem + 2px);padding:.375rem .75rem;line-height:1.5;border:#ced4da solid 1px;border-radius:.25rem}.b-skeleton-icon-wrapper svg{color:rgba(0,0,0,.12)}.b-skeleton-img{height:100%;width:100%}.b-skeleton-animate-wave::after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;z-index:0;background:linear-gradient(90deg,transparent,rgba(255,255,255,.4),transparent);-webkit-animation:b-skeleton-animate-wave 1.75s linear infinite;animation:b-skeleton-animate-wave 1.75s linear infinite}@media (prefers-reduced-motion:reduce){.b-skeleton-animate-wave::after{background:0 0;-webkit-animation:none;animation:none}}@-webkit-keyframes b-skeleton-animate-wave{from{-webkit-transform:translateX(-100%);transform:translateX(-100%)}to{-webkit-transform:translateX(100%);transform:translateX(100%)}}@keyframes b-skeleton-animate-wave{from{-webkit-transform:translateX(-100%);transform:translateX(-100%)}to{-webkit-transform:translateX(100%);transform:translateX(100%)}}.b-skeleton-animate-fade{-webkit-animation:b-skeleton-animate-fade 875ms ease-in-out alternate infinite;animation:b-skeleton-animate-fade 875ms ease-in-out alternate infinite}@media (prefers-reduced-motion:reduce){.b-skeleton-animate-fade{-webkit-animation:none;animation:none}}@-webkit-keyframes b-skeleton-animate-fade{0%{opacity:1}100%{opacity:.4}}@keyframes b-skeleton-animate-fade{0%{opacity:1}100%{opacity:.4}}.b-skeleton-animate-throb{-webkit-animation:b-skeleton-animate-throb 875ms ease-in alternate infinite;animation:b-skeleton-animate-throb 875ms ease-in alternate infinite}@media (prefers-reduced-motion:reduce){.b-skeleton-animate-throb{-webkit-animation:none;animation:none}}@-webkit-keyframes b-skeleton-animate-throb{0%{-webkit-transform:scale(1);transform:scale(1)}100%{-webkit-transform:scale(.975);transform:scale(.975)}}@keyframes b-skeleton-animate-throb{0%{-webkit-transform:scale(1);transform:scale(1)}100%{-webkit-transform:scale(.975);transform:scale(.975)}}.table.b-table.b-table-fixed{table-layout:fixed}.table.b-table.b-table-no-border-collapse{border-collapse:separate;border-spacing:0}.table.b-table[aria-busy=true]{opacity:.55}.table.b-table>tbody>tr.b-table-details>td{border-top:none!important}.table.b-table>caption{caption-side:bottom}.table.b-table.b-table-caption-top>caption{caption-side:top!important}.table.b-table>tbody>.table-active,.table.b-table>tbody>.table-active>td,.table.b-table>tbody>.table-active>th{background-color:rgba(0,0,0,.075)}.table.b-table.table-hover>tbody>tr.table-active:hover td,.table.b-table.table-hover>tbody>tr.table-active:hover th{color:#212529;background-image:linear-gradient(rgba(0,0,0,.075),rgba(0,0,0,.075));background-repeat:no-repeat}.table.b-table>tbody>.bg-active,.table.b-table>tbody>.bg-active>td,.table.b-table>tbody>.bg-active>th{background-color:rgba(255,255,255,.075)!important}.table.b-table.table-hover.table-dark>tbody>tr.bg-active:hover td,.table.b-table.table-hover.table-dark>tbody>tr.bg-active:hover th{color:#fff;background-image:linear-gradient(rgba(255,255,255,.075),rgba(255,255,255,.075));background-repeat:no-repeat}.b-table-sticky-header,.table-responsive,[class*=table-responsive-]{margin-bottom:1rem}.b-table-sticky-header>.table,.table-responsive>.table,[class*=table-responsive-]>.table{margin-bottom:0}.b-table-sticky-header{overflow-y:auto;max-height:300px}@media print{.b-table-sticky-header{overflow-y:visible!important;max-height:none!important}}@supports ((position:-webkit-sticky) or (position:sticky)){.b-table-sticky-header>.table.b-table>thead>tr>th{position:-webkit-sticky;position:sticky;top:0;z-index:2}.b-table-sticky-header>.table.b-table>tbody>tr>.b-table-sticky-column,.b-table-sticky-header>.table.b-table>tfoot>tr>.b-table-sticky-column,.b-table-sticky-header>.table.b-table>thead>tr>.b-table-sticky-column,.table-responsive>.table.b-table>tbody>tr>.b-table-sticky-column,.table-responsive>.table.b-table>tfoot>tr>.b-table-sticky-column,.table-responsive>.table.b-table>thead>tr>.b-table-sticky-column,[class*=table-responsive-]>.table.b-table>tbody>tr>.b-table-sticky-column,[class*=table-responsive-]>.table.b-table>tfoot>tr>.b-table-sticky-column,[class*=table-responsive-]>.table.b-table>thead>tr>.b-table-sticky-column{position:-webkit-sticky;position:sticky;left:0}.b-table-sticky-header>.table.b-table>thead>tr>.b-table-sticky-column,.table-responsive>.table.b-table>thead>tr>.b-table-sticky-column,[class*=table-responsive-]>.table.b-table>thead>tr>.b-table-sticky-column{z-index:5}.b-table-sticky-header>.table.b-table>tbody>tr>.b-table-sticky-column,.b-table-sticky-header>.table.b-table>tfoot>tr>.b-table-sticky-column,.table-responsive>.table.b-table>tbody>tr>.b-table-sticky-column,.table-responsive>.table.b-table>tfoot>tr>.b-table-sticky-column,[class*=table-responsive-]>.table.b-table>tbody>tr>.b-table-sticky-column,[class*=table-responsive-]>.table.b-table>tfoot>tr>.b-table-sticky-column{z-index:2}.table.b-table>tbody>tr>.table-b-table-default,.table.b-table>tfoot>tr>.table-b-table-default,.table.b-table>thead>tr>.table-b-table-default{color:#212529;background-color:#fff}.table.b-table.table-dark>tbody>tr>.bg-b-table-default,.table.b-table.table-dark>tfoot>tr>.bg-b-table-default,.table.b-table.table-dark>thead>tr>.bg-b-table-default{color:#fff;background-color:#343a40}.table.b-table.table-striped>tbody>tr:nth-of-type(odd)>.table-b-table-default{background-image:linear-gradient(rgba(0,0,0,.05),rgba(0,0,0,.05));background-repeat:no-repeat}.table.b-table.table-striped.table-dark>tbody>tr:nth-of-type(odd)>.bg-b-table-default{background-image:linear-gradient(rgba(255,255,255,.05),rgba(255,255,255,.05));background-repeat:no-repeat}.table.b-table.table-hover>tbody>tr:hover>.table-b-table-default{color:#212529;background-image:linear-gradient(rgba(0,0,0,.075),rgba(0,0,0,.075));background-repeat:no-repeat}.table.b-table.table-hover.table-dark>tbody>tr:hover>.bg-b-table-default{color:#fff;background-image:linear-gradient(rgba(255,255,255,.075),rgba(255,255,255,.075));background-repeat:no-repeat}}.table.b-table>tfoot>tr>[aria-sort],.table.b-table>thead>tr>[aria-sort]{cursor:pointer;background-image:none;background-repeat:no-repeat;background-size:.65em 1em}.table.b-table>tfoot>tr>[aria-sort]:not(.b-table-sort-icon-left),.table.b-table>thead>tr>[aria-sort]:not(.b-table-sort-icon-left){background-position:right calc(.75rem / 2) center;padding-right:calc(.75rem + .65em)}.table.b-table>tfoot>tr>[aria-sort].b-table-sort-icon-left,.table.b-table>thead>tr>[aria-sort].b-table-sort-icon-left{background-position:left calc(.75rem / 2) center;padding-left:calc(.75rem + .65em)}.table.b-table>tfoot>tr>[aria-sort=none],.table.b-table>thead>tr>[aria-sort=none]{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='101' height='101' view-box='0 0 101 101' preserveAspectRatio='none'%3e%3cpath fill='black' opacity='.3' d='M51 1l25 23 24 22H1l25-22zM51 101l25-23 24-22H1l25 22z'/%3e%3c/svg%3e")}.table.b-table>tfoot>tr>[aria-sort=ascending],.table.b-table>thead>tr>[aria-sort=ascending]{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='101' height='101' view-box='0 0 101 101' preserveAspectRatio='none'%3e%3cpath fill='black' d='M51 1l25 23 24 22H1l25-22z'/%3e%3cpath fill='black' opacity='.3' d='M51 101l25-23 24-22H1l25 22z'/%3e%3c/svg%3e")}.table.b-table>tfoot>tr>[aria-sort=descending],.table.b-table>thead>tr>[aria-sort=descending]{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='101' height='101' view-box='0 0 101 101' preserveAspectRatio='none'%3e%3cpath fill='black' opacity='.3' d='M51 1l25 23 24 22H1l25-22z'/%3e%3cpath fill='black' d='M51 101l25-23 24-22H1l25 22z'/%3e%3c/svg%3e")}.table.b-table.table-dark>tfoot>tr>[aria-sort=none],.table.b-table.table-dark>thead>tr>[aria-sort=none],.table.b-table>.thead-dark>tr>[aria-sort=none]{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='101' height='101' view-box='0 0 101 101' preserveAspectRatio='none'%3e%3cpath fill='white' opacity='.3' d='M51 1l25 23 24 22H1l25-22zM51 101l25-23 24-22H1l25 22z'/%3e%3c/svg%3e")}.table.b-table.table-dark>tfoot>tr>[aria-sort=ascending],.table.b-table.table-dark>thead>tr>[aria-sort=ascending],.table.b-table>.thead-dark>tr>[aria-sort=ascending]{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='101' height='101' view-box='0 0 101 101' preserveAspectRatio='none'%3e%3cpath fill='white' d='M51 1l25 23 24 22H1l25-22z'/%3e%3cpath fill='white' opacity='.3' d='M51 101l25-23 24-22H1l25 22z'/%3e%3c/svg%3e")}.table.b-table.table-dark>tfoot>tr>[aria-sort=descending],.table.b-table.table-dark>thead>tr>[aria-sort=descending],.table.b-table>.thead-dark>tr>[aria-sort=descending]{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='101' height='101' view-box='0 0 101 101' preserveAspectRatio='none'%3e%3cpath fill='white' opacity='.3' d='M51 1l25 23 24 22H1l25-22z'/%3e%3cpath fill='white' d='M51 101l25-23 24-22H1l25 22z'/%3e%3c/svg%3e")}.table.b-table>tfoot>tr>.table-dark[aria-sort=none],.table.b-table>thead>tr>.table-dark[aria-sort=none]{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='101' height='101' view-box='0 0 101 101' preserveAspectRatio='none'%3e%3cpath fill='white' opacity='.3' d='M51 1l25 23 24 22H1l25-22zM51 101l25-23 24-22H1l25 22z'/%3e%3c/svg%3e")}.table.b-table>tfoot>tr>.table-dark[aria-sort=ascending],.table.b-table>thead>tr>.table-dark[aria-sort=ascending]{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='101' height='101' view-box='0 0 101 101' preserveAspectRatio='none'%3e%3cpath fill='white' d='M51 1l25 23 24 22H1l25-22z'/%3e%3cpath fill='white' opacity='.3' d='M51 101l25-23 24-22H1l25 22z'/%3e%3c/svg%3e")}.table.b-table>tfoot>tr>.table-dark[aria-sort=descending],.table.b-table>thead>tr>.table-dark[aria-sort=descending]{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='101' height='101' view-box='0 0 101 101' preserveAspectRatio='none'%3e%3cpath fill='white' opacity='.3' d='M51 1l25 23 24 22H1l25-22z'/%3e%3cpath fill='white' d='M51 101l25-23 24-22H1l25 22z'/%3e%3c/svg%3e")}.table.b-table.table-sm>tfoot>tr>[aria-sort]:not(.b-table-sort-icon-left),.table.b-table.table-sm>thead>tr>[aria-sort]:not(.b-table-sort-icon-left){background-position:right calc(.3rem / 2) center;padding-right:calc(.3rem + .65em)}.table.b-table.table-sm>tfoot>tr>[aria-sort].b-table-sort-icon-left,.table.b-table.table-sm>thead>tr>[aria-sort].b-table-sort-icon-left{background-position:left calc(.3rem / 2) center;padding-left:calc(.3rem + .65em)}.table.b-table.b-table-selectable:not(.b-table-selectable-no-click)>tbody>tr{cursor:pointer}.table.b-table.b-table-selectable:not(.b-table-selectable-no-click).b-table-selecting.b-table-select-range>tbody>tr{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}@media (max-width:575.98px){.table.b-table.b-table-stacked-sm{display:block;width:100%}.table.b-table.b-table-stacked-sm>caption,.table.b-table.b-table-stacked-sm>tbody,.table.b-table.b-table-stacked-sm>tbody>tr,.table.b-table.b-table-stacked-sm>tbody>tr>td,.table.b-table.b-table-stacked-sm>tbody>tr>th{display:block}.table.b-table.b-table-stacked-sm>tfoot,.table.b-table.b-table-stacked-sm>thead{display:none}.table.b-table.b-table-stacked-sm>tfoot>tr.b-table-bottom-row,.table.b-table.b-table-stacked-sm>tfoot>tr.b-table-top-row,.table.b-table.b-table-stacked-sm>thead>tr.b-table-bottom-row,.table.b-table.b-table-stacked-sm>thead>tr.b-table-top-row{display:none}.table.b-table.b-table-stacked-sm>caption{caption-side:top!important}.table.b-table.b-table-stacked-sm>tbody>tr>[data-label]::before{content:attr(data-label);width:40%;float:left;text-align:right;overflow-wrap:break-word;font-weight:700;font-style:normal;padding:0 calc(1rem / 2) 0 0;margin:0}.table.b-table.b-table-stacked-sm>tbody>tr>[data-label]::after{display:block;clear:both;content:""}.table.b-table.b-table-stacked-sm>tbody>tr>[data-label]>div{display:inline-block;width:calc(100% - 40%);padding:0 0 0 calc(1rem / 2);margin:0}.table.b-table.b-table-stacked-sm>tbody>tr.bottom-row,.table.b-table.b-table-stacked-sm>tbody>tr.top-row{display:none}.table.b-table.b-table-stacked-sm>tbody>tr>:first-child{border-top-width:3px}.table.b-table.b-table-stacked-sm>tbody>tr>[rowspan]+td,.table.b-table.b-table-stacked-sm>tbody>tr>[rowspan]+th{border-top-width:3px}}@media (max-width:767.98px){.table.b-table.b-table-stacked-md{display:block;width:100%}.table.b-table.b-table-stacked-md>caption,.table.b-table.b-table-stacked-md>tbody,.table.b-table.b-table-stacked-md>tbody>tr,.table.b-table.b-table-stacked-md>tbody>tr>td,.table.b-table.b-table-stacked-md>tbody>tr>th{display:block}.table.b-table.b-table-stacked-md>tfoot,.table.b-table.b-table-stacked-md>thead{display:none}.table.b-table.b-table-stacked-md>tfoot>tr.b-table-bottom-row,.table.b-table.b-table-stacked-md>tfoot>tr.b-table-top-row,.table.b-table.b-table-stacked-md>thead>tr.b-table-bottom-row,.table.b-table.b-table-stacked-md>thead>tr.b-table-top-row{display:none}.table.b-table.b-table-stacked-md>caption{caption-side:top!important}.table.b-table.b-table-stacked-md>tbody>tr>[data-label]::before{content:attr(data-label);width:40%;float:left;text-align:right;overflow-wrap:break-word;font-weight:700;font-style:normal;padding:0 calc(1rem / 2) 0 0;margin:0}.table.b-table.b-table-stacked-md>tbody>tr>[data-label]::after{display:block;clear:both;content:""}.table.b-table.b-table-stacked-md>tbody>tr>[data-label]>div{display:inline-block;width:calc(100% - 40%);padding:0 0 0 calc(1rem / 2);margin:0}.table.b-table.b-table-stacked-md>tbody>tr.bottom-row,.table.b-table.b-table-stacked-md>tbody>tr.top-row{display:none}.table.b-table.b-table-stacked-md>tbody>tr>:first-child{border-top-width:3px}.table.b-table.b-table-stacked-md>tbody>tr>[rowspan]+td,.table.b-table.b-table-stacked-md>tbody>tr>[rowspan]+th{border-top-width:3px}}@media (max-width:991.98px){.table.b-table.b-table-stacked-lg{display:block;width:100%}.table.b-table.b-table-stacked-lg>caption,.table.b-table.b-table-stacked-lg>tbody,.table.b-table.b-table-stacked-lg>tbody>tr,.table.b-table.b-table-stacked-lg>tbody>tr>td,.table.b-table.b-table-stacked-lg>tbody>tr>th{display:block}.table.b-table.b-table-stacked-lg>tfoot,.table.b-table.b-table-stacked-lg>thead{display:none}.table.b-table.b-table-stacked-lg>tfoot>tr.b-table-bottom-row,.table.b-table.b-table-stacked-lg>tfoot>tr.b-table-top-row,.table.b-table.b-table-stacked-lg>thead>tr.b-table-bottom-row,.table.b-table.b-table-stacked-lg>thead>tr.b-table-top-row{display:none}.table.b-table.b-table-stacked-lg>caption{caption-side:top!important}.table.b-table.b-table-stacked-lg>tbody>tr>[data-label]::before{content:attr(data-label);width:40%;float:left;text-align:right;overflow-wrap:break-word;font-weight:700;font-style:normal;padding:0 calc(1rem / 2) 0 0;margin:0}.table.b-table.b-table-stacked-lg>tbody>tr>[data-label]::after{display:block;clear:both;content:""}.table.b-table.b-table-stacked-lg>tbody>tr>[data-label]>div{display:inline-block;width:calc(100% - 40%);padding:0 0 0 calc(1rem / 2);margin:0}.table.b-table.b-table-stacked-lg>tbody>tr.bottom-row,.table.b-table.b-table-stacked-lg>tbody>tr.top-row{display:none}.table.b-table.b-table-stacked-lg>tbody>tr>:first-child{border-top-width:3px}.table.b-table.b-table-stacked-lg>tbody>tr>[rowspan]+td,.table.b-table.b-table-stacked-lg>tbody>tr>[rowspan]+th{border-top-width:3px}}@media (max-width:1199.98px){.table.b-table.b-table-stacked-xl{display:block;width:100%}.table.b-table.b-table-stacked-xl>caption,.table.b-table.b-table-stacked-xl>tbody,.table.b-table.b-table-stacked-xl>tbody>tr,.table.b-table.b-table-stacked-xl>tbody>tr>td,.table.b-table.b-table-stacked-xl>tbody>tr>th{display:block}.table.b-table.b-table-stacked-xl>tfoot,.table.b-table.b-table-stacked-xl>thead{display:none}.table.b-table.b-table-stacked-xl>tfoot>tr.b-table-bottom-row,.table.b-table.b-table-stacked-xl>tfoot>tr.b-table-top-row,.table.b-table.b-table-stacked-xl>thead>tr.b-table-bottom-row,.table.b-table.b-table-stacked-xl>thead>tr.b-table-top-row{display:none}.table.b-table.b-table-stacked-xl>caption{caption-side:top!important}.table.b-table.b-table-stacked-xl>tbody>tr>[data-label]::before{content:attr(data-label);width:40%;float:left;text-align:right;overflow-wrap:break-word;font-weight:700;font-style:normal;padding:0 calc(1rem / 2) 0 0;margin:0}.table.b-table.b-table-stacked-xl>tbody>tr>[data-label]::after{display:block;clear:both;content:""}.table.b-table.b-table-stacked-xl>tbody>tr>[data-label]>div{display:inline-block;width:calc(100% - 40%);padding:0 0 0 calc(1rem / 2);margin:0}.table.b-table.b-table-stacked-xl>tbody>tr.bottom-row,.table.b-table.b-table-stacked-xl>tbody>tr.top-row{display:none}.table.b-table.b-table-stacked-xl>tbody>tr>:first-child{border-top-width:3px}.table.b-table.b-table-stacked-xl>tbody>tr>[rowspan]+td,.table.b-table.b-table-stacked-xl>tbody>tr>[rowspan]+th{border-top-width:3px}}.table.b-table.b-table-stacked{display:block;width:100%}.table.b-table.b-table-stacked>caption,.table.b-table.b-table-stacked>tbody,.table.b-table.b-table-stacked>tbody>tr,.table.b-table.b-table-stacked>tbody>tr>td,.table.b-table.b-table-stacked>tbody>tr>th{display:block}.table.b-table.b-table-stacked>tfoot,.table.b-table.b-table-stacked>thead{display:none}.table.b-table.b-table-stacked>tfoot>tr.b-table-bottom-row,.table.b-table.b-table-stacked>tfoot>tr.b-table-top-row,.table.b-table.b-table-stacked>thead>tr.b-table-bottom-row,.table.b-table.b-table-stacked>thead>tr.b-table-top-row{display:none}.table.b-table.b-table-stacked>caption{caption-side:top!important}.table.b-table.b-table-stacked>tbody>tr>[data-label]::before{content:attr(data-label);width:40%;float:left;text-align:right;overflow-wrap:break-word;font-weight:700;font-style:normal;padding:0 calc(1rem / 2) 0 0;margin:0}.table.b-table.b-table-stacked>tbody>tr>[data-label]::after{display:block;clear:both;content:""}.table.b-table.b-table-stacked>tbody>tr>[data-label]>div{display:inline-block;width:calc(100% - 40%);padding:0 0 0 calc(1rem / 2);margin:0}.table.b-table.b-table-stacked>tbody>tr.bottom-row,.table.b-table.b-table-stacked>tbody>tr.top-row{display:none}.table.b-table.b-table-stacked>tbody>tr>:first-child{border-top-width:3px}.table.b-table.b-table-stacked>tbody>tr>[rowspan]+td,.table.b-table.b-table-stacked>tbody>tr>[rowspan]+th{border-top-width:3px}.b-time{min-width:150px}.b-time output.disabled,.b-time[aria-disabled=true] output,.b-time[aria-readonly=true] output{background-color:#e9ecef;opacity:1}.b-time[aria-disabled=true] output{pointer-events:none}[dir=rtl] .b-time>.d-flex:not(.flex-column){flex-direction:row-reverse}.b-time .b-time-header{margin-bottom:.5rem}.b-time .b-time-header output{padding:.25rem;font-size:80%}.b-time .b-time-footer{margin-top:.5rem}.b-time .b-time-ampm{margin-left:.5rem}.b-toast{display:block;position:relative;max-width:350px;-webkit-backface-visibility:hidden;backface-visibility:hidden;background-clip:padding-box;z-index:1;border-radius:.25rem}.b-toast .toast{background-color:rgba(255,255,255,.85)}.b-toast:not(:last-child){margin-bottom:.75rem}.b-toast.b-toast-solid .toast{background-color:#fff}.b-toast .toast{opacity:1}.b-toast .toast.fade:not(.show){opacity:0}.b-toast .toast .toast-body{display:block}.b-toast-primary .toast{background-color:rgba(230,242,255,.85);border-color:rgba(184,218,255,.85);color:#004085}.b-toast-primary .toast .toast-header{color:#004085;background-color:rgba(204,229,255,.85);border-bottom-color:rgba(184,218,255,.85)}.b-toast-primary.b-toast-solid .toast{background-color:#e6f2ff}.b-toast-secondary .toast{background-color:rgba(239,240,241,.85);border-color:rgba(214,216,219,.85);color:#383d41}.b-toast-secondary .toast .toast-header{color:#383d41;background-color:rgba(226,227,229,.85);border-bottom-color:rgba(214,216,219,.85)}.b-toast-secondary.b-toast-solid .toast{background-color:#eff0f1}.b-toast-success .toast{background-color:rgba(230,245,233,.85);border-color:rgba(195,230,203,.85);color:#155724}.b-toast-success .toast .toast-header{color:#155724;background-color:rgba(212,237,218,.85);border-bottom-color:rgba(195,230,203,.85)}.b-toast-success.b-toast-solid .toast{background-color:#e6f5e9}.b-toast-info .toast{background-color:rgba(229,244,247,.85);border-color:rgba(190,229,235,.85);color:#0c5460}.b-toast-info .toast .toast-header{color:#0c5460;background-color:rgba(209,236,241,.85);border-bottom-color:rgba(190,229,235,.85)}.b-toast-info.b-toast-solid .toast{background-color:#e5f4f7}.b-toast-warning .toast{background-color:rgba(255,249,231,.85);border-color:rgba(255,238,186,.85);color:#856404}.b-toast-warning .toast .toast-header{color:#856404;background-color:rgba(255,243,205,.85);border-bottom-color:rgba(255,238,186,.85)}.b-toast-warning.b-toast-solid .toast{background-color:#fff9e7}.b-toast-danger .toast{background-color:rgba(252,237,238,.85);border-color:rgba(245,198,203,.85);color:#721c24}.b-toast-danger .toast .toast-header{color:#721c24;background-color:rgba(248,215,218,.85);border-bottom-color:rgba(245,198,203,.85)}.b-toast-danger.b-toast-solid .toast{background-color:#fcedee}.b-toast-light .toast{background-color:rgba(255,255,255,.85);border-color:rgba(253,253,254,.85);color:#818182}.b-toast-light .toast .toast-header{color:#818182;background-color:rgba(254,254,254,.85);border-bottom-color:rgba(253,253,254,.85)}.b-toast-light.b-toast-solid .toast{background-color:#fff}.b-toast-dark .toast{background-color:rgba(227,229,229,.85);border-color:rgba(198,200,202,.85);color:#1b1e21}.b-toast-dark .toast .toast-header{color:#1b1e21;background-color:rgba(214,216,217,.85);border-bottom-color:rgba(198,200,202,.85)}.b-toast-dark.b-toast-solid .toast{background-color:#e3e5e5}.b-toaster{z-index:1100}.b-toaster .b-toaster-slot{position:relative;display:block}.b-toaster .b-toaster-slot:empty{display:none!important}.b-toaster.b-toaster-bottom-center,.b-toaster.b-toaster-bottom-full,.b-toaster.b-toaster-bottom-left,.b-toaster.b-toaster-bottom-right,.b-toaster.b-toaster-top-center,.b-toaster.b-toaster-top-full,.b-toaster.b-toaster-top-left,.b-toaster.b-toaster-top-right{position:fixed;left:.5rem;right:.5rem;margin:0;padding:0;height:0;overflow:visible}.b-toaster.b-toaster-bottom-center .b-toaster-slot,.b-toaster.b-toaster-bottom-full .b-toaster-slot,.b-toaster.b-toaster-bottom-left .b-toaster-slot,.b-toaster.b-toaster-bottom-right .b-toaster-slot,.b-toaster.b-toaster-top-center .b-toaster-slot,.b-toaster.b-toaster-top-full .b-toaster-slot,.b-toaster.b-toaster-top-left .b-toaster-slot,.b-toaster.b-toaster-top-right .b-toaster-slot{position:absolute;max-width:350px;width:100%;left:0;right:0;padding:0;margin:0}.b-toaster.b-toaster-bottom-full .b-toaster-slot,.b-toaster.b-toaster-top-full .b-toaster-slot{width:100%;max-width:100%}.b-toaster.b-toaster-bottom-full .b-toaster-slot .b-toast,.b-toaster.b-toaster-bottom-full .b-toaster-slot .toast,.b-toaster.b-toaster-top-full .b-toaster-slot .b-toast,.b-toaster.b-toaster-top-full .b-toaster-slot .toast{width:100%;max-width:100%}.b-toaster.b-toaster-top-center,.b-toaster.b-toaster-top-full,.b-toaster.b-toaster-top-left,.b-toaster.b-toaster-top-right{top:0}.b-toaster.b-toaster-top-center .b-toaster-slot,.b-toaster.b-toaster-top-full .b-toaster-slot,.b-toaster.b-toaster-top-left .b-toaster-slot,.b-toaster.b-toaster-top-right .b-toaster-slot{top:.5rem}.b-toaster.b-toaster-bottom-center,.b-toaster.b-toaster-bottom-full,.b-toaster.b-toaster-bottom-left,.b-toaster.b-toaster-bottom-right{bottom:0}.b-toaster.b-toaster-bottom-center .b-toaster-slot,.b-toaster.b-toaster-bottom-full .b-toaster-slot,.b-toaster.b-toaster-bottom-left .b-toaster-slot,.b-toaster.b-toaster-bottom-right .b-toaster-slot{bottom:.5rem}.b-toaster.b-toaster-bottom-center .b-toaster-slot,.b-toaster.b-toaster-bottom-right .b-toaster-slot,.b-toaster.b-toaster-top-center .b-toaster-slot,.b-toaster.b-toaster-top-right .b-toaster-slot{margin-left:auto}.b-toaster.b-toaster-bottom-center .b-toaster-slot,.b-toaster.b-toaster-bottom-left .b-toaster-slot,.b-toaster.b-toaster-top-center .b-toaster-slot,.b-toaster.b-toaster-top-left .b-toaster-slot{margin-right:auto}.b-toaster.b-toaster-bottom-left .b-toast.b-toaster-enter-active,.b-toaster.b-toaster-bottom-left .b-toast.b-toaster-leave-active,.b-toaster.b-toaster-bottom-left .b-toast.b-toaster-move,.b-toaster.b-toaster-bottom-right .b-toast.b-toaster-enter-active,.b-toaster.b-toaster-bottom-right .b-toast.b-toaster-leave-active,.b-toaster.b-toaster-bottom-right .b-toast.b-toaster-move,.b-toaster.b-toaster-top-left .b-toast.b-toaster-enter-active,.b-toaster.b-toaster-top-left .b-toast.b-toaster-leave-active,.b-toaster.b-toaster-top-left .b-toast.b-toaster-move,.b-toaster.b-toaster-top-right .b-toast.b-toaster-enter-active,.b-toaster.b-toaster-top-right .b-toast.b-toaster-leave-active,.b-toaster.b-toaster-top-right .b-toast.b-toaster-move{transition:-webkit-transform 175ms;transition:transform 175ms;transition:transform 175ms,-webkit-transform 175ms}.b-toaster.b-toaster-bottom-left .b-toast.b-toaster-enter-active .toast.fade,.b-toaster.b-toaster-bottom-left .b-toast.b-toaster-enter-to .toast.fade,.b-toaster.b-toaster-bottom-right .b-toast.b-toaster-enter-active .toast.fade,.b-toaster.b-toaster-bottom-right .b-toast.b-toaster-enter-to .toast.fade,.b-toaster.b-toaster-top-left .b-toast.b-toaster-enter-active .toast.fade,.b-toaster.b-toaster-top-left .b-toast.b-toaster-enter-to .toast.fade,.b-toaster.b-toaster-top-right .b-toast.b-toaster-enter-active .toast.fade,.b-toaster.b-toaster-top-right .b-toast.b-toaster-enter-to .toast.fade{transition-delay:175ms}.b-toaster.b-toaster-bottom-left .b-toast.b-toaster-leave-active,.b-toaster.b-toaster-bottom-right .b-toast.b-toaster-leave-active,.b-toaster.b-toaster-top-left .b-toast.b-toaster-leave-active,.b-toaster.b-toaster-top-right .b-toast.b-toaster-leave-active{position:absolute;transition-delay:175ms}.b-toaster.b-toaster-bottom-left .b-toast.b-toaster-leave-active .toast.fade,.b-toaster.b-toaster-bottom-right .b-toast.b-toaster-leave-active .toast.fade,.b-toaster.b-toaster-top-left .b-toast.b-toaster-leave-active .toast.fade,.b-toaster.b-toaster-top-right .b-toast.b-toaster-leave-active .toast.fade{transition-delay:0s}.tooltip.b-tooltip{display:block;opacity:.9;outline:0}.tooltip.b-tooltip.fade:not(.show){opacity:0}.tooltip.b-tooltip.show{opacity:.9}.tooltip.b-tooltip.noninteractive{pointer-events:none}.tooltip.b-tooltip .arrow{margin:0 .25rem}.tooltip.b-tooltip.b-tooltip-danger.bs-tooltip-auto[x-placement^=left] .arrow,.tooltip.b-tooltip.b-tooltip-danger.bs-tooltip-auto[x-placement^=right] .arrow,.tooltip.b-tooltip.b-tooltip-dark.bs-tooltip-auto[x-placement^=left] .arrow,.tooltip.b-tooltip.b-tooltip-dark.bs-tooltip-auto[x-placement^=right] .arrow,.tooltip.b-tooltip.b-tooltip-info.bs-tooltip-auto[x-placement^=left] .arrow,.tooltip.b-tooltip.b-tooltip-info.bs-tooltip-auto[x-placement^=right] .arrow,.tooltip.b-tooltip.b-tooltip-light.bs-tooltip-auto[x-placement^=left] .arrow,.tooltip.b-tooltip.b-tooltip-light.bs-tooltip-auto[x-placement^=right] .arrow,.tooltip.b-tooltip.b-tooltip-primary.bs-tooltip-auto[x-placement^=left] .arrow,.tooltip.b-tooltip.b-tooltip-primary.bs-tooltip-auto[x-placement^=right] .arrow,.tooltip.b-tooltip.b-tooltip-secondary.bs-tooltip-auto[x-placement^=left] .arrow,.tooltip.b-tooltip.b-tooltip-secondary.bs-tooltip-auto[x-placement^=right] .arrow,.tooltip.b-tooltip.b-tooltip-success.bs-tooltip-auto[x-placement^=left] .arrow,.tooltip.b-tooltip.b-tooltip-success.bs-tooltip-auto[x-placement^=right] .arrow,.tooltip.b-tooltip.b-tooltip-warning.bs-tooltip-auto[x-placement^=left] .arrow,.tooltip.b-tooltip.b-tooltip-warning.bs-tooltip-auto[x-placement^=right] .arrow,.tooltip.b-tooltip.bs-tooltip-left .arrow,.tooltip.b-tooltip.bs-tooltip-right .arrow{margin:.25rem 0}.tooltip.b-tooltip-primary.bs-tooltip-auto[x-placement^=top] .arrow::before,.tooltip.b-tooltip-primary.bs-tooltip-top .arrow::before{border-top-color:#007bff}.tooltip.b-tooltip-primary.bs-tooltip-auto[x-placement^=right] .arrow::before,.tooltip.b-tooltip-primary.bs-tooltip-right .arrow::before{border-right-color:#007bff}.tooltip.b-tooltip-primary.bs-tooltip-auto[x-placement^=bottom] .arrow::before,.tooltip.b-tooltip-primary.bs-tooltip-bottom .arrow::before{border-bottom-color:#007bff}.tooltip.b-tooltip-primary.bs-tooltip-auto[x-placement^=left] .arrow::before,.tooltip.b-tooltip-primary.bs-tooltip-left .arrow::before{border-left-color:#007bff}.tooltip.b-tooltip-primary .tooltip-inner{color:#fff;background-color:#007bff}.tooltip.b-tooltip-secondary.bs-tooltip-auto[x-placement^=top] .arrow::before,.tooltip.b-tooltip-secondary.bs-tooltip-top .arrow::before{border-top-color:#6c757d}.tooltip.b-tooltip-secondary.bs-tooltip-auto[x-placement^=right] .arrow::before,.tooltip.b-tooltip-secondary.bs-tooltip-right .arrow::before{border-right-color:#6c757d}.tooltip.b-tooltip-secondary.bs-tooltip-auto[x-placement^=bottom] .arrow::before,.tooltip.b-tooltip-secondary.bs-tooltip-bottom .arrow::before{border-bottom-color:#6c757d}.tooltip.b-tooltip-secondary.bs-tooltip-auto[x-placement^=left] .arrow::before,.tooltip.b-tooltip-secondary.bs-tooltip-left .arrow::before{border-left-color:#6c757d}.tooltip.b-tooltip-secondary .tooltip-inner{color:#fff;background-color:#6c757d}.tooltip.b-tooltip-success.bs-tooltip-auto[x-placement^=top] .arrow::before,.tooltip.b-tooltip-success.bs-tooltip-top .arrow::before{border-top-color:#28a745}.tooltip.b-tooltip-success.bs-tooltip-auto[x-placement^=right] .arrow::before,.tooltip.b-tooltip-success.bs-tooltip-right .arrow::before{border-right-color:#28a745}.tooltip.b-tooltip-success.bs-tooltip-auto[x-placement^=bottom] .arrow::before,.tooltip.b-tooltip-success.bs-tooltip-bottom .arrow::before{border-bottom-color:#28a745}.tooltip.b-tooltip-success.bs-tooltip-auto[x-placement^=left] .arrow::before,.tooltip.b-tooltip-success.bs-tooltip-left .arrow::before{border-left-color:#28a745}.tooltip.b-tooltip-success .tooltip-inner{color:#fff;background-color:#28a745}.tooltip.b-tooltip-info.bs-tooltip-auto[x-placement^=top] .arrow::before,.tooltip.b-tooltip-info.bs-tooltip-top .arrow::before{border-top-color:#17a2b8}.tooltip.b-tooltip-info.bs-tooltip-auto[x-placement^=right] .arrow::before,.tooltip.b-tooltip-info.bs-tooltip-right .arrow::before{border-right-color:#17a2b8}.tooltip.b-tooltip-info.bs-tooltip-auto[x-placement^=bottom] .arrow::before,.tooltip.b-tooltip-info.bs-tooltip-bottom .arrow::before{border-bottom-color:#17a2b8}.tooltip.b-tooltip-info.bs-tooltip-auto[x-placement^=left] .arrow::before,.tooltip.b-tooltip-info.bs-tooltip-left .arrow::before{border-left-color:#17a2b8}.tooltip.b-tooltip-info .tooltip-inner{color:#fff;background-color:#17a2b8}.tooltip.b-tooltip-warning.bs-tooltip-auto[x-placement^=top] .arrow::before,.tooltip.b-tooltip-warning.bs-tooltip-top .arrow::before{border-top-color:#ffc107}.tooltip.b-tooltip-warning.bs-tooltip-auto[x-placement^=right] .arrow::before,.tooltip.b-tooltip-warning.bs-tooltip-right .arrow::before{border-right-color:#ffc107}.tooltip.b-tooltip-warning.bs-tooltip-auto[x-placement^=bottom] .arrow::before,.tooltip.b-tooltip-warning.bs-tooltip-bottom .arrow::before{border-bottom-color:#ffc107}.tooltip.b-tooltip-warning.bs-tooltip-auto[x-placement^=left] .arrow::before,.tooltip.b-tooltip-warning.bs-tooltip-left .arrow::before{border-left-color:#ffc107}.tooltip.b-tooltip-warning .tooltip-inner{color:#212529;background-color:#ffc107}.tooltip.b-tooltip-danger.bs-tooltip-auto[x-placement^=top] .arrow::before,.tooltip.b-tooltip-danger.bs-tooltip-top .arrow::before{border-top-color:#dc3545}.tooltip.b-tooltip-danger.bs-tooltip-auto[x-placement^=right] .arrow::before,.tooltip.b-tooltip-danger.bs-tooltip-right .arrow::before{border-right-color:#dc3545}.tooltip.b-tooltip-danger.bs-tooltip-auto[x-placement^=bottom] .arrow::before,.tooltip.b-tooltip-danger.bs-tooltip-bottom .arrow::before{border-bottom-color:#dc3545}.tooltip.b-tooltip-danger.bs-tooltip-auto[x-placement^=left] .arrow::before,.tooltip.b-tooltip-danger.bs-tooltip-left .arrow::before{border-left-color:#dc3545}.tooltip.b-tooltip-danger .tooltip-inner{color:#fff;background-color:#dc3545}.tooltip.b-tooltip-light.bs-tooltip-auto[x-placement^=top] .arrow::before,.tooltip.b-tooltip-light.bs-tooltip-top .arrow::before{border-top-color:#f8f9fa}.tooltip.b-tooltip-light.bs-tooltip-auto[x-placement^=right] .arrow::before,.tooltip.b-tooltip-light.bs-tooltip-right .arrow::before{border-right-color:#f8f9fa}.tooltip.b-tooltip-light.bs-tooltip-auto[x-placement^=bottom] .arrow::before,.tooltip.b-tooltip-light.bs-tooltip-bottom .arrow::before{border-bottom-color:#f8f9fa}.tooltip.b-tooltip-light.bs-tooltip-auto[x-placement^=left] .arrow::before,.tooltip.b-tooltip-light.bs-tooltip-left .arrow::before{border-left-color:#f8f9fa}.tooltip.b-tooltip-light .tooltip-inner{color:#212529;background-color:#f8f9fa}.tooltip.b-tooltip-dark.bs-tooltip-auto[x-placement^=top] .arrow::before,.tooltip.b-tooltip-dark.bs-tooltip-top .arrow::before{border-top-color:#343a40}.tooltip.b-tooltip-dark.bs-tooltip-auto[x-placement^=right] .arrow::before,.tooltip.b-tooltip-dark.bs-tooltip-right .arrow::before{border-right-color:#343a40}.tooltip.b-tooltip-dark.bs-tooltip-auto[x-placement^=bottom] .arrow::before,.tooltip.b-tooltip-dark.bs-tooltip-bottom .arrow::before{border-bottom-color:#343a40}.tooltip.b-tooltip-dark.bs-tooltip-auto[x-placement^=left] .arrow::before,.tooltip.b-tooltip-dark.bs-tooltip-left .arrow::before{border-left-color:#343a40}.tooltip.b-tooltip-dark .tooltip-inner{color:#fff;background-color:#343a40}.b-icon.bi{display:inline-block;overflow:visible;vertical-align:-.15em}.b-icon.b-icon-animation-cylon,.b-icon.b-iconstack .b-icon-animation-cylon>g{-webkit-transform-origin:center;transform-origin:center;-webkit-animation:.75s infinite ease-in-out alternate b-icon-animation-cylon;animation:.75s infinite ease-in-out alternate b-icon-animation-cylon}@media (prefers-reduced-motion:reduce){.b-icon.b-icon-animation-cylon,.b-icon.b-iconstack .b-icon-animation-cylon>g{-webkit-animation:none;animation:none}}.b-icon.b-icon-animation-cylon-vertical,.b-icon.b-iconstack .b-icon-animation-cylon-vertical>g{-webkit-transform-origin:center;transform-origin:center;-webkit-animation:.75s infinite ease-in-out alternate b-icon-animation-cylon-vertical;animation:.75s infinite ease-in-out alternate b-icon-animation-cylon-vertical}@media (prefers-reduced-motion:reduce){.b-icon.b-icon-animation-cylon-vertical,.b-icon.b-iconstack .b-icon-animation-cylon-vertical>g{-webkit-animation:none;animation:none}}.b-icon.b-icon-animation-fade,.b-icon.b-iconstack .b-icon-animation-fade>g{-webkit-transform-origin:center;transform-origin:center;-webkit-animation:.75s infinite ease-in-out alternate b-icon-animation-fade;animation:.75s infinite ease-in-out alternate b-icon-animation-fade}@media (prefers-reduced-motion:reduce){.b-icon.b-icon-animation-fade,.b-icon.b-iconstack .b-icon-animation-fade>g{-webkit-animation:none;animation:none}}.b-icon.b-icon-animation-spin,.b-icon.b-iconstack .b-icon-animation-spin>g{-webkit-transform-origin:center;transform-origin:center;-webkit-animation:2s infinite linear normal b-icon-animation-spin;animation:2s infinite linear normal b-icon-animation-spin}@media (prefers-reduced-motion:reduce){.b-icon.b-icon-animation-spin,.b-icon.b-iconstack .b-icon-animation-spin>g{-webkit-animation:none;animation:none}}.b-icon.b-icon-animation-spin-reverse,.b-icon.b-iconstack .b-icon-animation-spin-reverse>g{-webkit-transform-origin:center;transform-origin:center;animation:2s infinite linear reverse b-icon-animation-spin}@media (prefers-reduced-motion:reduce){.b-icon.b-icon-animation-spin-reverse,.b-icon.b-iconstack .b-icon-animation-spin-reverse>g{-webkit-animation:none;animation:none}}.b-icon.b-icon-animation-spin-pulse,.b-icon.b-iconstack .b-icon-animation-spin-pulse>g{-webkit-transform-origin:center;transform-origin:center;-webkit-animation:1s infinite steps(8) normal b-icon-animation-spin;animation:1s infinite steps(8) normal b-icon-animation-spin}@media (prefers-reduced-motion:reduce){.b-icon.b-icon-animation-spin-pulse,.b-icon.b-iconstack .b-icon-animation-spin-pulse>g{-webkit-animation:none;animation:none}}.b-icon.b-icon-animation-spin-reverse-pulse,.b-icon.b-iconstack .b-icon-animation-spin-reverse-pulse>g{-webkit-transform-origin:center;transform-origin:center;animation:1s infinite steps(8) reverse b-icon-animation-spin}@media (prefers-reduced-motion:reduce){.b-icon.b-icon-animation-spin-reverse-pulse,.b-icon.b-iconstack .b-icon-animation-spin-reverse-pulse>g{-webkit-animation:none;animation:none}}.b-icon.b-icon-animation-throb,.b-icon.b-iconstack .b-icon-animation-throb>g{-webkit-transform-origin:center;transform-origin:center;-webkit-animation:.75s infinite ease-in-out alternate b-icon-animation-throb;animation:.75s infinite ease-in-out alternate b-icon-animation-throb}@media (prefers-reduced-motion:reduce){.b-icon.b-icon-animation-throb,.b-icon.b-iconstack .b-icon-animation-throb>g{-webkit-animation:none;animation:none}}@-webkit-keyframes b-icon-animation-cylon{0%{-webkit-transform:translateX(-25%);transform:translateX(-25%)}100%{-webkit-transform:translateX(25%);transform:translateX(25%)}}@keyframes b-icon-animation-cylon{0%{-webkit-transform:translateX(-25%);transform:translateX(-25%)}100%{-webkit-transform:translateX(25%);transform:translateX(25%)}}@-webkit-keyframes b-icon-animation-cylon-vertical{0%{-webkit-transform:translateY(25%);transform:translateY(25%)}100%{-webkit-transform:translateY(-25%);transform:translateY(-25%)}}@keyframes b-icon-animation-cylon-vertical{0%{-webkit-transform:translateY(25%);transform:translateY(25%)}100%{-webkit-transform:translateY(-25%);transform:translateY(-25%)}}@-webkit-keyframes b-icon-animation-fade{0%{opacity:.1}100%{opacity:1}}@keyframes b-icon-animation-fade{0%{opacity:.1}100%{opacity:1}}@-webkit-keyframes b-icon-animation-spin{0%{-webkit-transform:rotate(0);transform:rotate(0)}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}@keyframes b-icon-animation-spin{0%{-webkit-transform:rotate(0);transform:rotate(0)}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}@-webkit-keyframes b-icon-animation-throb{0%{opacity:.5;-webkit-transform:scale(.5);transform:scale(.5)}100%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@keyframes b-icon-animation-throb{0%{opacity:.5;-webkit-transform:scale(.5);transform:scale(.5)}100%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}.btn .b-icon.bi,.dropdown-item .b-icon.bi,.dropdown-toggle .b-icon.bi,.input-group-text .b-icon.bi,.nav-link .b-icon.bi{font-size:125%;vertical-align:text-bottom} /*# sourceMappingURL=bootstrap-vue.min.css.map */PK!#mm$admin/fonts/CircularStd-Medium.woff2nu[wOF2mQm?FFTM64`^ X@ 26$` /G[*qݶՂyۖV S_o8p^gffVY?-`&CTӪIbP(aR[q/]EI"q! ])mw嚬Rw)m9d`w]HDSJyL:Qnr&XI8dg?UWO3 MkˣE܈IJm;3 ^R ,E`2FuFwX,Y$fU}9{_``؀u$sͅn ~h;JUK@Ū'~.~* [. hi^1ܯ ذNQm3b͛s.QnI b;A,I|P'Ateҭk++Yañm=ս.݇+ bߧ"FĪڬo֦߳}wӋ|MK|QQ1ә9:s}fKhNd*^4MG5*rDYWaGFCaS5}1^ QʥktlI}UjuMM冗佶+VrI OxSMi$t"g̹bRE~jL/{nnP~*FREL-#/RrCN$,={Sd[B$ҚAZA"MKyHlHn @ b xúܑ &ax,Oa(゠^-AMhx}C )xĨD@eMX N!$%^,Vj(HLG>oXOöm[ndGY|l a"[ܽ%-leWs{W 2}wSWjI&R''D&($X,YRL 2 *4 MV p , +Jde C8E3@ JMfKHc*ʒ~=#(ԟ0 QcG*T& `^ *+ ՘6, =B_D>f^q'O"<Á)R҂?%R#mT!}J P&!ߏu@AW|ĤYhnΪxcdYBZ#jAVXd*D2 ]:%A S,KNQU4gc&LYr--To A#Kf #`+'ihSU9 ~m(צސ`֜^GzK~o jd:,iwŐ Ya#qՑCfH22.taa,{3+ZP Ч݈'(!*VB.;ϋDF/YI9h`8ϔ1JOFV[l'9&48J隺P1fgzIPs8 ̇ij$t ֓-5^ BX*l0ibԜ@$VD ۵fqōB IV.P%K$Lo W@aEwf q CL0!7 u޵1|a{hc^8WJHN EEO:jjp=Ɩ4t+EۻVgNvێ6D Q^%2UkXO5-'-7h(g'mM=KB˺abT^ע$ΕǑRDXऱjjAh7&*5tZ]Iqӝb6͖jgS&}+pJ(b$ ML,TdTTe@/A!2eĪTKRTfr%붉”)Ev٧AU:*s8:w:} (HV'LhSrl./CWH%JǫZjq5qmu&]ig;>].}@0`(C4(U#/Oswv8tIGtMA]Tlt ^@dUAԋ}{6H1x@G3"R@ 500US $3!EkCi!Vibb(`,( URVbU^}cȎa0 dYl4=bR*l>XlN4AV=~rj5$KhDMMRf=ߎ`SODݤ_Fk0z_]0`Nv)NÚwsB[?swef5=QWS@V6Ozժdr+}Kt-_W[queI洫zLzd@k5Ԗ:NX&!۫'tg+T I X s D4[&l"d< guѫIÆ<^6> aCā;7KZ]'éh   p.m1'!ݧ 齒 * AF eEqe,HHg{3n"\G?~ #<b l8=`Q4оi-sb+¢Do8&dPϛ0#^ ؈ڑƹ!fH0Wkp;q֏q7>yBi0TUEPwmGD7-C%jC jځ `g*phIFe}Ux@A}tW5͋l“ub7ĽY %2Z.{?㢗+ i}MlS&۪lB]/[q}\7;e`Ls1Xm FYܽ(! ,*u C;lAwm(p˓<%TgmGnHU ç osʁS&|EuuC {Xgmۣ-gc*XcjF롿i[w`^Sҭ|W"o>آ`9q*;8 0;t~URxF$GDI\I\QjpKVD!Ppt OƑªW*bh%^LxaEt!;2Eȹgz@@h,kbH,$Zf|O4NUIW;D:6id tepVfv44u,Rn~U8nޛYsJs>o`Ri=:pAl,ySvtr=_^QF2Ƌd4s!ߎ^A `+O& P]M  *ނcz ^Xј; W+ I6Mw9 ňbsH.g!q9^W{vY՚$'b.}nGW06 )T ΀Hww㡶?Ddo.Cj"+M]Mqae(e<Uڞ AɳB%`/{vfK]Ia l)aO!٤nٺ;glU6YU֡vV$~ADo Z Ym#fR4U#pv o ix?HT3lZ"g<MroVnmpwi 'Cs8ꍓCc["n9#wVf(uϔ^_a:aP,S-ξ!|-( #>_Ur+]B#35Uxj4ōbR6 tb} S.D^c5 36q]J ɍzý>ۓv,Lu1|̬.;ZOλ=YaRx<^4<Km¼_].,ސumc*^bȺKtt7$;: БCD[Bz„\ɽ!yL] 8LVS+`9,kP}XbC'xGdKGx}l:fHKU d;$iE${4!E|bpl3C%'SOmDL$PR w;"/c,#,#ǖsI(O@h*}W0iOAzo}q*Du96_M޴)K{$V@$ht'j͉xoՍ4G30Q8&H[d>զۭ>ײMD.\h}mHJV-`FL Nґ2qdLLb{-,dH YFޕ%_dpL"J$hj XuՑP5/Kn X> It fI%`Na)XJ77W<kH:5yHR{G]{ܽ.[oX_)Jo Z+n{KL]%,o8s>H!Dogs1)]ޛ'Y #%D꬜k|N׻cϛW![S& xa+Rs? ItYru$}?j}e͑BK[;ɁzYZ0w$~-GԤP ʓN5"yY.w^Xii)Unvaݙ[8e.Mf`Bڪ{9mj'B$w鐎4p*w|HD`ļ$&Gʇ/9Ft,N54h`iʄ?m 1{mӇ oW۹!`&Ӥ,oG:JdX8H8>W3:KaQG)G >0D|C4'I 7ka=h@ ]*u@ bEn䯏fsTpQIS:!gj#.CN23Cb6]A`)6·FT,3-fpp~8&_0^@C.`vqܤeTAy{HrmE7z[ڌ/0}C&z< J ȁc@M/p;Φ !",ZB"bI$b gKd!WJ:F}l+Af!Aa-x(ADH7lQgwQQ$*;جZ@?m pBYfsEzzWX@,MXV^ F.),e;7>^VSZʫzXzW Hp_)h O\T<{'ˏ5k%/~;l `Śm>p(iJX4[lv:`ƜK|O',dHbǨVT=[@5I5 4 -bKO=mɵz}=˛0Z٫XGNOGs. Vp׬Ih4#qP;Rk ;~U㨭]뫿;XD;}ɋ'>C 7ҊVUdiocn#X3nMk[wfߵ׷miD*$vlCP1 )dlϧf-wz9x|TiU}m1nm;Ⓕy7ջ8F 4ni&"_EFSY|'& +(Ҫ%MJ:-&(Gݾ6eXb*O76ۨ6i2 YP֬XCq  0 7Ph! |AѰf< e)0HⲂ+~f),VȊ/0YV9ijgQ]VEU.ѻdKNQJRS.V<<lC '2^/na&WZ0h t+9]A^%y`B;gYi//oV0Bn)_B4? X[`Pc@#^;Eaؗ+!R|s6ւr~=DEϬJ?4NE;$itZ/w@V z7,6r&4,0@Z0  6,0hE`e@ߝ^a,Цp|S MvS/jWvBWAtL8C-A(zl8"t?΃9FbRGBn ( x' @$p#A`u`]6!G7A?-0FL(V0'UA rI]4eMWfY.*4H}oX|`s"Pmm/:Tɠ[y@~l0#4 `<Ɩ` WR G+xcR @C l7!h@v/!-hj6o-.u]ۯgdGU 0H5'r>;lNr븐ͬ Aha3:ІJC dT(AB*W+g帬h JY'On葲㞽~a}[*`mbYIނE,\HT4Qň.CL%o xKZomvLi=vt!q̬^bdRzT( jEmuDՅEVpSnve\*4R-^aUCO=cGr_%R'{ceYWZqeUght5Wg+@hs-`5@>|Th,9=c,s.=a<.>n{#gu( 5U~,"b$릢#𗜇#$}p# ~rXk'J6]C#+V'V[2xgN5|79;_V}) OyvO=S&ut4>αغ]rF4O-!_Ozw T^ocZ= \ޢa*Ѕ*WF"-I" 1E`0pyr c0pD|p֔2<4ϱ.(YȬi8%)tyf+& MP L?".3(dL!B&A;oCae BRJG]OX] iOL: 19*9#.٣H7z]v}|̯q㋫MΓ۠y6s >[Wu(Ez9[9La[x-}߯&T@l;Uh껰/X ;g#a?Cg 2Y&xi\@waR ʈ``DALw"D lRм~p̂^%O¸zD2TnʙPڏAT (K B~~hiAR >8JȅAO EwqX(_5<9%(n aqqxF'R͛ŠDP./T(V aYFoX[@s[0S-09B"Xͦ@Rkv)'>-6nX`ڜ,+u5Q7[5 ár,1wq`0Sx*H+{jOɧo|l𑋊jn&i Ho˃foy"ՈS3vw "bC_NAPG 2%4[ӧ)ѧlr)>eX8sV]*8Մg~o%J>Eƈ3oz + V]!A 2H=^-mM(LɍM.qyQ[ ~oa8A#ZfVeb2sf֚5Tq5tnLb E#=|Ӎ.]pޫ fmtql#g4Z9:ZPеy%:),W0fXTMޅP0 7J@hA8-%;LbC8T%iEpeI(ND&yIni#IUO-0e:)&+Fj@~7m,9`Ɖ5c ugE,S8(,~D! | I!>ג/-o0`_<0y#q~C*w2辢Z¶{ lRP'DW\hbJ`>iZwzhz3_,|BR_:=nξZ փ|}spVmU,އYrK oG&Ք˾9wyL2_ԎV׫nQF#` wݬt ѝpt,0][769pxs.W"C_ɜk0k9{?%@>Pu/O!4%ߠF5jI!6Ӕb 圄§%m?/~+=;I.dYzHQsTIpxɧ99hJ)AMߞ{:bi% ! 4^U%^^|dT{1|(+x9V 3f|ŗ1g!Y.di?3ZѲQZIn %%m&oAv3mw1f2%cJVΐ [ּ&liLcolߵq춸Z+JA0: g"n,3 Nb2~r ͕ͦRm \:~3V0( Mn%I= LAYSq[C\lLh!#('<15qn_U\z70}`9=$m:Z`(ֆzl Tj20-4`4g@/E s..|:ƾz*>1c7( e8/ vuU?82vcf%uTF}y`ԓ*;%78ޠw?V ڂ'c"q<%q ˈ'/)#^V2D,?G"ci7[ԠC[NAA񋪒 G^iIETwJ(iswAg0_Uu D hdиFÈc- 0v0>7gl`LVbd7G"DŽ"^eD:7bkśEAb[REdB=iL,Cu4ŴjO+XXƬ! #:2*dG!"og)EIגowo-]e;6[fB[*"Ze& S{+0 t4޼kqE )Z{WFWqkNMа5!iLILI}3leӁՔq)I/X.Zڗknݕ/UJ3U>ʧCʦ~q;.K7?n4OEdYrtBȰT'WODU 4B9۶mk5 gmpt4<2&%Y[N;qvdچ VOJsnS9Ոg A*~NaClI@RəhA( 砱cs .|SyPwzsˢ\h Oanq.lMS޹xzN}A# УzVyQ؀.ZAjsTۖ[6rUÿtU,1QDR}=7Л8wZzƝgڭG¨^cjrbŵYzj23ߡ51~8e^h/WQyak՜G#d#c 189:v!v ?}1@7H_?8}%vK ;>l}~\Kfaciͤ N{*ܵY2CQfI?Z(=#J5OI;C9-]Y=V=cΜ,3y6̀cέ,$ƫgJqjUDU2H^482höI]ltV 4j0E-" G 9&e6DQqX:k U9spf&{f0?X"@1"h,q xy8 mbf_l&+v;..MP%($;άSr ֍Tۅ8hM5iYv H=RQR=8N\xڸgL.,j*/Y\kqD2MuJJj|.z}HC(^s!Y`(޲3Xm/i/'fWeEJ.o1N:uq|6:C }G]eƸ2Nf;cQa=Og1fxÇqb֜Ađp\+VŊeũX1ҎBe4'}Hi5-4SRheG!0ar񍥥Y%16sQ٥ҡ5wBPøhb.*D4 ؀ XIC 3Lm냰qԁZ׳ IZyPp9Mx/8KYpPwTЯ> iEsHE kP,4vy03h|娳yʀ]ڟd ,Y(.YS11ջh۶KK%牝O]:24PWET@@bsn眎Sp>Vc:fZCimh)`y.hV|t+wYqm. x7^ZXәZ. mJ[ZkZZ}춭gC*3R \?R>)ǀs3֔3/ȟڠ7mk@eU*.in13pC,~/7 Ň8]nߧd_%H] X ީ`qY\jmc)TV|\KѝؙU:SjO0eoR{|\ڙҞ¯6,< h|݌ Ru}C=Cp1 ]`rYQӹJVKr]jɉ `)r *J@J+Ue%wy=|\TK%4g:5uG{4ki:?׺fM 5m8tto#a @B L%ՃTbmJx d͙ZuWʴW:7ٕm?U1}9""كM&EDز3ӊ&Ljyx4?Iv*Czzb*0SyN!FW6\ ڔ qbP NtoL!SgL8OVUVFpyE`*ˍ]_~UqBOcMrIin,/6{A` w8Z"믉\4S2,X֟Smh=V6YʎIMʒ 0XšGQ]%C1N8Rצ_hz(' $p\ LiL7YW^99-I_,K<1 "x/:1k>UF; )T]ɦkoljTvT5nW_ %6=P]lJ6C۾r΁T@vD1I" BIR1 1;%*ۋq(w'c8[3 հ*ݛlWewWZ*ًK eYy #xsX!IY9&ާDB;+<]4ݛ F=S J#£ܯ( O,9]uJ}ٚ,C) -͡ L`׃۩Q9VkןPXVr'! 8n_J# mPRMidGO2CfeuJYTjnW76%%:OT}h`ʍNnnz.mUg`oǦǚb𱂓U ȱ4۶\zy[e +GIDER{W7e'ݓD:s|2;JE#+9,:r-xNW1ϾZ9Z%iqZu좏Z+]kvΌH^ h?'n\{bRG}p;-Q$axlQ"51NgjX3'+ Fg4XJ*+yݝdp+ VRiʶ8mӭ[}~6yHv^z@+rT(ٔMO oq!E2svޭׇskru Ob;cځ/ -cj >a)M! Q.ώ=*˳&u"-?E=b,iA*P3}(%3{0{:'{Hŀ$OHZj: % Bj(+TJ@GTg)z1FU`= ݣrcM$kJPYoIBgg KEa=R'g]$Y媂їTRϖF'k3oMB9xEՋRH~jĽV"5Zc̋#(u#Wapψf ZӐt]fMςV旑lz4o^:u!;q@M_~/QH|+ "o2К̓Z 7jj2 FgMħ74ƆI6z5s?\MEJI`هn0kٙ54; 0cC$;hSZCDp7"A~E)pLU!WRidul27h1{}7P0+M5 9WuWUwbaHa zD? 7FG:a>c7%=DqĘXy 69hs/ˮхjs-ȵ( 0 Ls0+y8V䱣'`:}e6wO^yy#U?*VLNl7>/M*NMbU".KVgƞR8B#Pijcfh=\OY!80y=Fp_{cent=ִ*',,aIL>M Mx:[m$,$%IRI"cEz K&- 0~bLXFW||XUZJ]̓>3]`nKMo̽fG#qW !l7/^db<=POIş.s?E,v,>;<|4wq@a;A;];~z) =}9pKǦON+.o܍ Յ.o|FMS;{{rmmBrfs? oe]!'u%aq'8PDPj+i:4wuBv\jT/6f/UU*E,47L713׏]27O7%f]];5O^^3`> ݗG6mv6sgŹZ1WQj٥ r&=@2hԶ7~}]IKJ`W>c]ƘupcΙb深u1k9 .x@:4ϦOOf)Sniؓm`7pPESg-I ^6RkJ|" 4,FEWǯri7WPTz>rk&"puN-{$Lvdkw 9e&^7ףRǦ'[r mfu!P5w,Ҽ81EV0$Ǥ7Ο$zRmgl x?.!ե<]ʵs[iӵ_ c7nSnovubD"7nMjeN]oꓝz@F{}P Xi 1|- pƀKaޯћa3j{q|H …iAɈ+ _0K)~<FE'яx|43_$)>7,+;a'-S|*`'gSm1*^uD:*yAK6%eEM._Ft\pfUc*Gwݩl) G"QK?/nx.wS5a/ _W+;ly֒LwmPC#[Kђ$z~Fz F=_u 麀}{J 4 /VHxwWw&l#2&kJ/&2;BmZ2m6Rѝvmi4"{yx|]o|G٬=}7$0{@!XAq~*P"]AD\22y? Z& ,^]nPM} l'OڔwwY9'ѸaX. vˊŁ̬ pdGb ɔy9r6D%o=9&nԖg*[,UK6M[x@(˾zyٙ T%cq{3=]'fmaSZ֎B#69nlz͌xn bgxAV\? \ /HIJS-ϨCY gQ%.ǎ.s\'4i$hR#54<‹…q|=$yҕíypu59 Y[TcJp͘1>{/1A{ܢ\pP rVjh\nʅґ=.фJRhBB6S_.UvIBeqe!@N-`N1*ÅCvm8F;,gqx*gNPL n:FF\/B+Fs(CͱiE@2GZA8 g )W\'2{xXRqxҸp^_ۢ12_ɬ8ujcJ_l{R}  JӃt\Z_Q #Éƍl B$@+ />nQg~9FRS+kEoO.(~Q'f3$(çP =S= QIɗH3iE -rB Hx3ꗗ@e7}gH^ȵfNs+=UhR("*[)i ,rC,N`zǽWW`K* :?ɍS蒧? l0adc!oj-w,Q{֦40&qx֢oM;Kׂ?fr_1!cKbz&CU8rƑ15hr~qբ։v*;לtqKSoQYr:u"=0',E6_$Q ۇ*Jڇ YVe_0\)rТ >҃1G %0@ԍ]>ZX LpH:?9Jxyyxd[yٲ,ʰCBrLrcQVYy@# }9Ħ3I|>[ضX5O֗UPZR_Cs*d_P@`R^; ~(3IAOYXjAg?1+"He~D"G-X #4ʄ@?TѸSHf"Usy0 \`ǞfyS /}⳼Y6l?Gq>3 ZХ'2񔹷M1MEM ^8 )9H J)dty@ϰ# ȍ7;-t\\B/s@?@I5315GeN'}KP,ē $%\ E秖44[DŽǻW5MS% agЏN4<)+ TrߌCu}u: ww9JcH6+6rkH1)f"$yUI+!<uMd2a#h, z**nBm\D2GciJђHV>FR>%L '_1rw)],#Ԩ H(fӱЍFkkKK1!adU֛g_m`E&'\vg{`M`wz)TT2TJUQ&-MdVm潣ny꙽~ Ǽ6=s([ipмurq'r39C\ 3X^yo :0P@Å/ yO^DQF+EOȨV{m5dX4yI0Q⒒$}t'z.ٓAzzCty;_T;\1Rquۏ5~gv2r[AyI4m5[.M.e HH%(a_Q~PNA1$h{{hU-]% MAf [P Wk$hc`+/gOBh`*%3a{ӂh}+J2duA!P}X65G(VY6˓+M<FՌWX ME6E:i'[6e ܗIR Y-R` Created by FontForge 20170731 at Thu Apr 11 17:37:47 2013 By ,,, Generated in 2013 by FontLab Studio. Copyright info pending. PK!I wQQ"admin/fonts/CircularStd-Medium.ttfnu[pFFTMpQGDEFY6GPOS$4GSUB>OS/2OwOx`cmap-ܷ 8^gaspglyf]umLhead,6hhea 4$hmtxO`loca߭ maxp IX name2( /post_wX GB]_< ͌{S͌mH"F@NXKX^P$ /P{LNTO )A  >KDY%-S/E1D%=0=C40At-(Ck-x!'K!' E.5*F%.F3F#V>!!:* _U*UFU-U*U$U#U+UUU%*ZU%*nUW"_ M   ~ |*0U0 -\K%Z%$%^M(>K 9  K KiK>KC%\KT%|K mAF .  &m- UmA#H"-Q>I'X U6L 2*;G-t-2*RtE?87HKA(*+>2%2e4      *FUFUFUFU$$U$$U%*%*%*%*%*$&%*MMMM~ WUGK------h-%$%$%$%$%  K  @%>KC%C%C%C%C%B4C%AFAFAFAF\K K<5p*%W" ~ |*&Rq-HKt(k(?DI%%%%%%/?R.1%%D#6)777779771+87777797? d -2 222&22!2"222222#2#"k<a2(P+#NN&:s<i)U8(+4A!2+LG!V> < >A2*iiFEN 5(5(2*5+5+5+5+5+5+5+5+5+I(/ki74+8777779771+877777971;U>>;Z<>UU:GUUUU>U>)K?F.>i!>:: :(::0::: :^:2::":,:%::-::::I:0:K:>:8: : :O::::1:/:::::,:;::/:J:J303t-0U0m-m:St-s87B%%*W%W%W%W%W%W%W%oK<*ki;N TqtxT8 ~1BSax~     " & 0 : B D Q p y !!"!&!i!o!!!!!""""""""+"H"`"e"$%%%%&.'''" 1AR`x}     & 0 9 B D Q p t !!"!&!`!l!!!!!""""""""+"H"`"d"$%%%%&.''' sgQM:B.|vTߤߢ߂߀qkZ jkۑہkh &%ٻ!$GM   !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`ardeixpkvj,)s-.gw!$#*l|cn(+"m}b5HIyqz0X^v Pd:X&8L`@j&BRl"^p ,<N\j ( T v & 2 d  N r  B N . h Z 8R6Jj6pHz$Ft6b@Z >\~ LD:n$6Jb(P| Z$>j R .P~  B V l !!>!\!!"""2"F"x"""#J#X####$&$B$$$$%%B%Z%%%&&@&|&&'''6'Z''''("(N(r((()))*)<)N)b)x)))))*****H*|******++F+f++++, ,F,T,j,x,,,,--*-L-|-..B..//l///0$0\0001:1:1b1v11122@2\2223323\3t3334*4Z4Z44455@5b55556 66F6b66667 7B7d7x777778 8T888899,9\999:::`::::;;$;X;;; > >8>F>X>h>>>???(?b?p?~????@2@j@@A@AAAAB2B@B\BzBBC4ChCCCCCD DD*Db\anp4/Q[kS\QY l > W]dY%$#&I$%ui vH/G ^HJo jk _;"GfEGn + /</1!%264&"462#"264&"462#"%#3)<((:4/)0-".TaoK?V/ SISbaOTL{k\C+9#6&3$- ,(% 462#'&%&<&-),O'' 0X=(670DD!>>=X ('654'7 DDa=>Q7''7'75wyNIPKJLywł(V(f6ih6e(V)4/ 3533##5#4ccS_A[746325>7#"&A0#(3e>#5 !+I ,:0_i;>&*-GX%!5!GgC6462"C/D00D)D00D/ #k]1->32764'&#"7632#"'.$@>&--&>@$.w:GG::GGD~;00::009$WjjWWjj/!##5>73/vD\ hRE4!'&54632!!>?654&#"t}jh|}~7 A+FRkS947: X}vV|MN!)jW3C4F+:C5'7!5!#"&'732654&#"7°NtoluI69BE.'&YidjYX|wV8F@.47!< 7533##=!mmv̎xpjj ?32654&#"'!!632#"& qH74GH5D(qPc(+Qc{nf5DA59?-)Gi-td^s.'&#"632#"&546323264&""0?\y2sbzhxšXK35IIjIwbq^Mx~96CBnBB#>?!5-N:5|:HEi,eo^ey\i*  +>54&"264&#""&5467.54620;;`::09AA98AA8mC5.;Ā;.4Dz5)&66&)59T::T9ejR6WS0QffQ/TV6Rj%"?3267#"&4632#"&4&#"3267!/EdnS8\hm(VDJ23IH43Ibn^!*w4DC57BCF 74632#"&4632#"&G/"!00!"//"!00!"/J"//"!//s"//"!//Fc746325>7#"&4632#"&G.!&0`;"2 (/"!00!"/E+8-Zd8;$(w"//"!//#!&75% #.^oo>!5!!5!%%W^_!!&5-5Z0R^np!'%#&54?654&#"'&5462462#"'dQ./845<qxzd+2y+<++ \;!"5*;D.RvRiG#<<,,<+*3?%"&'#"&546327332654&#"327#"&54632'4&#"326R&4?"BVtR!9 X5"(?xmT-)?㤙u'$1<&'.;!!`Lb0&jIl@=&.ҩܻo(-U5+5T  !'!#3 3:CBlز;CU732#!32654&+3264&+Udt:/9Fzbwm4<=6jz6A=6~jU7Q\>Vn6-.57^9*"&54632.#"3267ԑqhU_aSlnʧ̂d&EVzwZB$cU732654&+#32~b~bn}vwžU  )!!!!! J >pmU 3#!!!!x qo*!#'#"&54>32.#"3267#5!a pOg^{qlP_b`e[Z,=ɩpUz^+@T|{e:iU !#!#3!3yxxMy/%U3#3zz75732653#"&u<108x|ch{.B<<=6a}U !#33 ^xx1"3gTtU)3!CxEUa !###33awhu U !##33}xBx *264&"4>2"&ghhVVVVU>32654&+##!2}9AA9}xe}};23<z^_y*64>2'#"&327'7654&"*gh\TQWTe_a;/uRv1VVpf^E_1VFCayUC !##!232654&+XydzVJ7CC7{\Ll;12;"/&.#"#"&'732654&/.54632'lD@5ESf\dt} pTH>C2-dSacqx")D<*InLXW 32#&5#"&726=-QB}$..,4jpVjel0fJ[6CA&>K !)1'B]fP0/MW;C 7%K73#3>32"'$4&#"32qrR5jw}.H;9JJ9:*oqMmQQGFT%"3267#"&54632.8NO93= fsYkj[sh 9QFGR7#%A^op^B&&5% 732654&"#&5#"&54632H;9HFtJtoL1he:GFUVFERS1(#!*ok*&%3.#"#"&54632!32=94@bsTh`p~M6^).>ACWwpt7HM"3###5354632&#+qquUU^L)q!)@e~eCQ^ c(3 &732=#"&5463253#"&72654&#"(kC1J2b~ck%pz^8EF78GF.;3(gcG>GlfK?>KK>?KK#3632#4&#"tt/\V\t04.5=lU 1;>93#3&4632#"ss, ,, >-, ,3 3#"'5324632"KtNC,<, ,->(EW `>-->,K #'#37̎32632#4&#"#4&#"soQ+1N3kHdp//-8r//.7>$(,*V^[)-7>.)-7=/K#3>32#4&#"tqM,VZt0405A('lU 1;A%62654&"2#"&46rOOrOnnmYRIHQQJKB7#3>32#"&'%4&#"26spR6ix~g2NH;:IItIB!,ޑ&DSSDETT%B#5#"&5463253264&"r'hgh:LoIrJItFnl.AVVRKh&#"#3>32htqL0vN'- )?32654/.54632.#"#". e4,"'9H?DhK0J)b++(1JDHaW2O-#0 * L4@]-*-!) N7=_//D|3#327#"&=#5326=ee -DNZ%&|g ` MDg*"IF%#"&5332653#&M,Uct0215to6 $nT31><1 r,- #3tƀ~\ ! 33# #3_xsavtyvw|cQ^ 37'373#' cjq52OI;#33|uЃ{4& )5#5!!refb-gh"526=46;#";#"&=4&-/:aZ.,6006,.Za:d/1__Y.31@ B03-Y__2/Ug#3bbg@""+5326=467.=4&+532@/:aZ.,6006,.Za:ud/2__Y-30B @13.Y__1/#v%'&#"'632327#"/4(B9f50.8"B8f265d55cH+ #'462"& +<,,<+++<+*-!#5.46753&'>7'E[SjjS[EYd8(bZE+%PZZX R4#= -#5R 1D >;)3&54632.#"3#3265#!5>54'#C@tZjdn4,'6S*.l_N1:bp54PnnI141+'@_c/6( QhhG+ '!#747'76327'#"''7&6264&"P!JHJ3;:0IGF#"EFG1<=3IGI cBdAAd>4KGLJGH5@?5FFHJFJ1rfBBfB@%##5#535#533733#3touTJTTJUf3#3#UbbbbqqL,/9%#"&'732654/.5467&546324&#"'654/!R|U_lm2/(22gCI/!R|U^mn2.(33fCJf&4e'*B9WSjfU49+&05"M>*B8XSihR48-$/5#M6)16(/ 0i 4632#"&7462"& %&&%%6&&6%q&&%%&&%%* ,3264&#"6  "3267#"&54632.|xwwx0М,>>-(/ P[FTrqSHYR-B2٘?78@*3JuWXsJ4);'m&46?654&"'>32#&5#"&726=;:-V :#QN@LHR!E5A",R+,5  .CI9' 4='+ %d %#'73#'73ooTood- %#5!5! eގa-GX%!5!Gg* (66  3264&#"'##32'3264&+*0ЄxwwxLV:O-%U1!!12٘J6)?4A4!5!4AZT^264&"462#"s)<((<1 r,-;t##"&5463!##U_Rucna_hqR_m]-Ax 4632"&A. !..B-* .. !,,! '73#"&'73254&#"u#0N'+6=>%>)#&,i+K<.%'52# +W#5#5>73[Y(4RW<+>' 264&"2"&4&33L34)fffx5`440/6gggd %#7'3#7'3Qooood2#5#5>735733##=#3[Y(4Rc>>Zgih<+XIGGI}}2 +#5#5>73#3&546323!54?654&#"[Y(4R$ihXTJ@?JKGW<)<+xX3FE2B-+ L d4$  48%(,72654&#"'7#5!#"&5733##=#34P&6"# [^.9SD?Oc>>Zgih!=EKHE:/4G@XIGGI}}'332654'"&54?65&4632#"cP./846:rwzc+1*++]9!"6*:D0 R~wQjF#?{<++<+ s !'!#3 3'3:CBl؛g;C|| s !'!#3 3#7:CBlUmf;CR|| s !'!#3 3#73#':CBlطktwnK;C||@ y %!'!#3 3#"/&#"#5463232=:CBl88+#&  K8,$&  ;CU59 59!  x462"$462"'!#3 3&8''8 %8''8\CBl8''8&&8''8& ;C u 32654&"7#'!#&5462al؁***CB,LjMC8%f%;5II)5!#!!!!!%3Js >wӴpmH*!/'7.54632.#"3267#"&'73254&#"r#ԑqhU_aSlnm+6=>%>)#&,i+1 Ɲ̂d&EVzwZB$Z #.%'52# U s'3!!!!!!gJ >|| pmU s#7!!!!!!ڎmfJ >s||pmU s#73#'!!!!!!ktwnKJ >||@pmU x462"6462"!!!!!!}&8''8&8&&8J >8''8&&8''8& pms3#3/3zzog2||USs3#37#7zzmfŮ||Ms 3#3'#73#'zzktwnK2||@(t462"64632#"#3$4%%4$$$zz4%%4%%4%%4%  !##5332%32654&+3#]RR~b~b?])n}vw]Uy$#"/&#"#5463232=##33&8+#&  K8,$&  }xBxv59 59!  *s '3264&"4>2"&ag،ghh||VVVV*s #7264&"4>2"&Nmfghhs||iVVVV*s#73#'264&"4>2"&HktwnKghh||@VVVV*z".#"/&#"#5463232=264&"4>2"&98+#&  K8,$&  ghhw59 59! eVVVV*x#462"$462"264&"4>2"&&8''8&8''8ghh8''8&&8''8&VVVV&3 %''7'77EEE3EEE*%4>327#"''7&7&#"4'326*g_bXGNHbh_eTDPGb{1/5>a04=acpV2[<\gpV0X;[gcAy^DyM^s'3"&53326533g*wMDELx|||9JQPK2|M^s#7"&5332653mf]wMDELxs||~|9JQPK2|M^s#73#'"&5332653 ktwnKvwMDELx||@|9JQPK2|M^x 462"6462""&5332653&8&&8&8&&8wMDELx8''8&&8''8&|9JQPK2| ts 33##7xmf,)gs||U>732654&+##332}9AA9}xxd;24<Ņ{zK31"&'732654/.54?654&"#4632}!032#&5#"&726='3-QB}$..,4jpVjel0fJ[6CA&X>K !)1'B]fP0/MW;C 7%ؔ-'+746?654&#"'>32#&5#"&726=#7-QB}$..,4jpVjel0fJ[6CA&߃_Y>K !)1'B]fP0/MW;C 7%l-'.746?654&#"'>32#&5#"&726=#73#'-QB}$..,4jpVjel0fJ[6CA&akylcF>K !)1'B]fP0/MW;C 7%ُM-'?746?654&#"'>32#&5#"&726='46323253#"/&#"-QB}$..,4jpVjel0fJ[6CA&a9.!% L9-!& >K !)1'B]fP0/MW;C 7%8;,8=+-'3=746?654&#"'>32#&5#"&726=4632#"&7462"&-QB}$..,4jpVjel0fJ[6CA&d%&&%%6&&6%>K !)1'B]fP0/MW;C 7%%&&%%&&%%-'2=746?654&#"'>32#&5#"&726=#"&546324&#"326-QB}$..,4jpVjel0fJ[6CA&C/.CC./>K !)1'B]fP0/MW;C 7%k^?@./@o&-B*4;%#"&'#"&546?654&#"'>32632!3226=%3.#"bxR;f"?}S`QB%3.-:fySr6Dao}M7]/3JA(>94A BX2-_V=>K  +2$B]GGu8G A% /'7.54632.#"3267#"&'73254&#"#!^zj[sh 938NO93= f]H+6=>%>)#&,j+3 ep^B&&5QFGR7#%9Y $.%'52# %3.#"#"&54632!32'3=94@bsTh`p~M6^X).>ACWwpt7Hϔ% #73.#"#"&54632!32_Y=94@bsTh`p~M6^q.>ACWwpt7H% "#73#'3.#"#"&54632!32akylcF|=94@bsTh`p~M6^%M.>ACWwpt7H% 14632#"&7462"&3.#"#"&54632!32s%&&%%6&&6%=94@bsTh`p~M6^q&&%%&&%%.>ACWwpt7H3#3/3ssaX=K3#7#33_YssH- #73#'#3>akylcF:ss%M462"6462"#3 #4$$4#4$$4ssW4$$4##4$$4#%$#"&54632&''7&'772654&#"N{vm^Y&<\,E$iRp9NN98PPu#{hl,J7=H*Y;3KABJKKK+#3>32#4&#"/46323253#"/&#"tqM,VZt0405:9.!% L9-!& A('lU 1;A8;,8=+%62654&"2#"&467'3rOOrOnnmCXYRIHQQJ.% #72654&"2#"&46ʃ_YYrOOrOnnmRIHQQJ%#73#'2654&"2#"&46akylcF:rOOrOnnm%MRIHQQJ%*62654&"2#"&46/46323253#"/&#"rOOrOnnm69.!% L9-!& YRIHQQJ68;,8=+% (4632#"&7462"&2654&"2#"&46|%&&%%6&&6%\rOOrOnnmq&&%%&&%%RIHQQJ4' 64632#"4632#"5!+**++**R:**:+:++:+cc%#27#"''7&5467&#"2654'!G:4>4>nF82?2?9O9O!A3AHfp ?3?Gip1$QRI.$ F%#"&5332653#&'3M,Uct0215toX6 $nT31><1 r,-F#7#"&5332653#&_Y^M,Uct0215to~ $nT31><1 r,-F#73#'#"&5332653#&akylcFjM,Uct0215to%M $nT31><1 r,-F ,4632#"&7462"&#"&5332653#&z%&&%%6&&6%FM,Uct0215toq&&%%&&%% $nT31><1 r,-; #33'#7|uЃ{f_Y4єKB7#3>32#"&'%4&#"26stO3ix~g2NH;:IItI(ޑ&DSSDETT;#33%4632#"&7462"&|uЃ{W%&&%%6&&6%4&&%%&&%%K3#3ss# )5737!#C^^xE*d*PGdG- 3#5737tWWtZZ'e'g(d)*6)5#".4>325!!!!!264&"6J]_gg_\ >oQ`VVaRpml%%,2>32!327#"'#"&462654&"%3.#"!yI!_4p~M6^bsTwIHzm4rOOrO=94@W(/t7HUCWXXcRIHQQ}.>A"/s-373#.#"#"&'732654&/.54632mHKlw4lD@5ESf\dt} pTH>C2-dSacqxsAA|")D<*InLXW 32&#"3##"'532xIg{b?+'I zQc?,)!IlceLL eT@coLL e%n#73#'akylcF%M%n373#bFFbj|MMA4!5!4AZ#S "&'32673GQR#F$RQ#V=$%=V' 462"&*<**<*n**** #"&546324&#"32C/.CC./^?@./@&&$"&5473273DfDR9/W-'8J*g'46323253#"/&#"9.!% L9-!& ,8;,8=+$b#7!#7^L4kL@13 !W;@/-"!53.546 3!5>54䴈pKнQrrQKpfyfZym gg myZfKB%#"'#332653#&M,&tt0215to6 $ 1><1 r,-(F%#"&5###5!#327F#ACsSP3  J;}dd0?AW%!5!AeIW%!5!Ne%#"&5467632*#-Y7/ &'2)U[73 %%46325>7#"&%* $/\80 &(4)X\75!&%n746325>7#"&%* $/\80&A(3*W]85"%%w##"&5467632#"&5467632w*#-Z6/ %*#-Y7/ &'2)UZ74 %'2)U[74 %%v#46325>7#"&746325>7#"&%)$-Z7 .%*#-Y7 -%'2)UZ63!$'2)UZ63!$%rv#746325>7#"&746325>7#"&%)$-Z7 .%*#-Y7 -%?'2)UZ63!$'2)UZ63!$v 7##53533#c||c||4^^/735#53533#3##5#/|||c||||c|]]]?W 462"&?zz{{&WzzWUzzRL %"&5462"&5462#"&54632L*>++>**>++>*++++A++++++++++++1 !%1E32654&#"462#"&2654&#"#332654&#"4632632#"'#"&)(()\`a`DC`)>((*ihW))))aCH,,HCbaDH,,IC`!))! )*C]]CD]] *)! )*!))!**C]77]CD]77]d%#'73oodd 7#7'3opd##,7''7'757''7'75!7''7'75jkE@GBBDkijkE@GBBDkijkE@GBBDkir#L#[/]\/Z#L$syr#L#[/]\/Z#L$sr#L#[/]\/Z#L$s63#3iih)7''7'757''7'75jkE@GBBDkiSjkE@GBBDkir#L#[/]\/Z#L$s{r#L#[/]\/Z#L$s7Px254"4>32#".\#A,-A#"B-;Krrss%@9!"9@$#?:">ZgXIGGI}}7P]732654&#"'73#632#"&7O% !"J/֞/9EOF8PKI@78K<7Ok&#"632#"&54632264&#"[#-A 9:HVBA[tX1$2#$D /-%@tIYOau227Wf#>?#5f#3%`%$ M%Ej?5cA2 L9Og *2654&"2654&""&5467.5462.0<: =FQ'  M~L 'P2c=0/ -.;;.- .1>7Oj73267#"&54632#"64&#"32J#0B:8KUC@[nY4###`F -/%B8:IVMgt227x-7254"4>32#".\#A,-A#"B-;Knrrss%@9!"9@$#?:"73[Y(4RZ<+8Q7&546323!54?654&#"TJ@?JKGW<)3FE2B-+ L d4$  7d?2654&#"'7#5!#"&7P&6"# [^.9SD?O !=EKHE:/4G@7 5733##=7c>>ZgXIGGI}}7]?32654&#"'73#632#"&7O% !"J/֞/9EOF8PKI@78K<7k&#"632#"&54632264&#"[#-A 9:HVBA[tX1$2#$ D /-%@tIYOau227f#>?#5f#3%`%$ M%Ej?5cA2 L9g *62654&"2654&""&5467.5462.0<: =FQ'  M~L 'Pc=0/ -.;;.- .1>7j73267#"&54632#"64&#"32J#0B:8KUC@[nY4###PF -/%B8:IVMgt22?(3&547#53>2&#"!!3#327#"&'#?MM^#C.0M54䴈pKнQrrQKpfyfZym gg myZf2 #3!53#5ÍohHhhh2 %!53#5!###YwhhhhhHH2 %!53#5!###3GwhhhhhHHH2 %!53#5!#3#\pXzhhhhhHH{2 #3!53#5#mDjbzhHhhh2 %!5!#5!# 3#^mŔ{hhhhhHH{2 %!5!#5!### 3#CmvƔ{hhhhhHHH{2 %!53#5!#3!3!3#BnYwhhhhhHHHH{2 %!53#5!#%'#373xhբSW_`b[hhhhhHɁ2 #3!537'#573io^kg_`b\hhhhhɁ2^ !53#5!#35^{{whhhH2%#5#"&5463253#.#"3267uCxwAuu\RX{zZV\@OK==QyqnyY92 #!53#532654&+}LUoqWHhhshjs2%!53#5!!#3!53#yyy &||[Zhhhh+hHhhv%V7'7!!VНe#m ###ץd ND5!5!54$dc% 33eiR< !<:yGzzG{!''c:{G{G2)777yG{zG|()bzG<|GI;532#!'7!2654&#fdj:JK<-dz\Z|О@14>+'7!#! d6ϝ#3#!55!d7ϝ3!'7!He;`ɝϝN5!3!;e`ϝ7-:5!3'3:<Ϝad<< '7!!5!5!50  VОeϝd)<""'632#"&54632&"3265&LC(Sl)OWA*fcr3xHNQ7NP1i!\.3OY~ri~9M<;ExR?13 !W;@/UY!#!#!YvxX(# 35-5!! !(akkoo4T%!5!=` #k?nAx 4632"&A. !..B-* .. !,,!j##33~jx|+p'%#"&4632632#""327.2654&#"\YOiiObU[ZPghPc%..%6?#3H&--&3$!6eefggfe.D-M*(-"#-&)((8G46;#"+5326m]P-&#ZP1'$0P]g%"Q]g'!i&'#"/&#"'63232#"/&'"'63232>:a45/3%@;^19/! 0$>;^65/6%@;_18/"44\.6]5\ .6]>0%!#7#537#5!733#3CnCTFBmBQFגbb_f^__^f</% 7!!5% <Z$`acY[c>/% 7!!5-5>ZZ$܏`iabZZdAx 4632"&A. !..B-* .. !,,* $3264&#"6  3264&+##32|xwwx0s=""=LLV:OOB2٘4 MlLi)3!i;i))!!)@`F !,E !% ,_R . 7'3#ttbc( 66  264&"(4s4⠠( 66  (44* #"&6324&'6%7567'5י֘t}`_|>N:8P2f׳:@B6 99 7I'_ADR  ' 7  FHG!G!GG+  3264&#"46  &#5#5>73}xwwx0[Y(4Rۘ٘<++  23264&#"46  &%&546323!54?654&#"}xwwx08TJ@?JKGW<)ۘ٘3FE2B-+ L d4$  +  .3264&#"46  &?2654&#"'7#5!#"&}xwwx0P&6"# [^.9SD?Oۘ٘E!=EKHE:/4G@+  !3264&#"46  &75733##=}xwwx0׾c>>Zgۘ٘/XIGGI}}+  03264&#"46  &?32654&#"'73#632#"&}xwwx0O% !"J/֞/9EOF8Pۘ٘=KI@78K<+  (13264&#"46  &&#"632#"&54632264&#"}xwwx0$-A 9:HVBA[tX1$2#$ۘ٘GD /-%@tIYOau22+  #3264&#"46  &#>?#5}xwwx0#3%`%$ ۘ٘IM%Ej?5cA2 L+  '>3264&#"46  &$2654&"2654&""&5467.5462}xwwx0X.0<: =FQ'  M~L 'Pۘ٘پc=0/ -.;;.- .1>+  )33264&#"46  &73267#"&54632#"64&#"32}xwwx0#0B:8KUC@[nY4###ۘ٘F -/%B8:IVMgt22'3!!3ϝ<)d(+7'3>32&#"3#"'73265#7Ǐؙ_R->Epؙ^S->Fpz,Z"p,Z"p/7##"&54632&#"265ǎؙؚ[N*;Cpbؙ([➞q'"3#####5354632&#"354632&c,qquuUU^L),^L)q"(@e~~eCQ^ c"(@CQ^ c2!2&#"!####535464632"&),DruUU^, ,->, c"(@~eCQ^F ,->,,"353####5354632&#,ssuUU^L)q"(@,~eCQ^ cs1462"'"!######5354632&#"354632&,>-->,FsuuUU^L)+^L)t>-->,)"(@~~eCQ^ c!)@CQ^ ca+"353######5354632&#"354632&c,ssuuUU^L),^L)q"(@,~~eCQ^ c"(@CQ^ c7x254"4>32#".\#A,-A#"B-;Krrss%@9!"9@$#?:"73[Y(4R<+8Q&546323!54?654&#"TJ@?JKGW<)3FE2B-+ L d4$  7d72654&#"'7#5!#"&7P&6"# [^.9SD?O!=EKHE:/4G@7 5733##=7c>>ZgaXIGGI}}7]732654&#"'73#632#"&7O% !"J/֞/9EOF8PzKI@78K<7k&#"632#"&54632264&#"[#-A 9:HVBA[tX1$2#$~D /-%@tIYOau227f#>?#5f#3%`%$ M%Ej?5cA2 L9g *2654&"2654&""&5467.5462.0<: =FQ'  M~L 'Pc=0/ -.;;.- .1>7j73267#"&54632#"64&#"32J#0B:8KUC@[nY4###"F -/%B8:IVMgt227xv7254"4>32#".\#A,-A#"B-;Krrss%@9!"9@$#?:"73[Y(4R<+8Qv7&546323!54?654&#"TJ@?JKGW<)3FE2B-+ L d4$  7do?2654&#"'7#5!#"&7P&6"# [^.9SD?Of!=EKHE:/4G@7n 75733##=7c>>ZgGXIGGI}}7]n?32654&#"'73#632#"&7O% !"J/֞/9EOF8P`KI@78K<7kw&#"632#"&54632264&#"[#-A 9:HVBA[tX1$2#$eD /-%@tIYOau227fn#>?#5f#3%`%$ nM%Ej?5cA2 L9gv *62654&"2654&""&5467.5462.0<: =FQ'  M~L 'Pc=0/ -.;;.- .1>7jv?3267#"&54632#"64&#"32J#0B:8KUC@[nY4### F -/%B8:IVMgt22;'m&46?654&"'>32#&5#"&726=;:-V :#QN@LHR!E5A",R+,5  .CI9' 4='+ %U),#3>32#"'64&"32XY 8%JTXIH1L12%&1df3S^45./6>'"3267#"&54632.&34&!)P T@LhfLAR Q'@5/.5#/CgNPgC0#>),#&5#"&5463253264&"WDI^]HK0'%10L,C 0gNLg,\78\5;'3.#"#"&54632#32(&"+LR#732=#"&5463253#"&7264&#">Q-!\FDZYEKVX[C[%./$%/.%a._HFb0*MfH1R11R1U1,#362#54#"[[|BZB#'MK !! U1, #'#37o^'ZZzdž*\ڃU1,#3[[1U1`#3>32632#54&#"#54&"ZV9K$J4HX#Z>#1X+::B@$(%(U1#3632#54#"[XF<@ZB"X,5M' 264&"2"&4&33L34)fffx5`440/6gggU7#3>32#"'74&"26ZW 9%IUYHG2L11L2,dONf+-66-.66>%#5#"&5463253264&"YGI^[I)4 W1L11L,gNLg*~\77\6K1 &#"#3632 [[XH[bX47?'R$732654/.54632&#"#"&?N!&//0I6AAL3 -19E?DG 7%.B>%1 9),CC., 3#327#"&=#5326=FF*  29?gP(K81P1>(x&5#"&=3326=3#C1Y !57#5!3Y妢1OOL 13#3##7##7#537#53733737#\o]p#b#n#b#UhVi#b#n#nZ[[Z("(.#5.'75'.546753&'54'>UZ_ln2/PXiQZPW j < U[bWH"&G#$mg sG.F \GIl hi ^9!FdDEl > .;-%"*532654&#"462"3264&#"462":! !RRrRRr! sRrRRr_]6!!!!RrOO9:O4!!4 srPPrP0/  3533##5#0ccS_E746325>7#"&6(-:sF(< &0S$2B6lw CG+/z6462"6L77L/L77L6 &32>54.#"47632 '&.$39,$3x4ED44DD4D-;*&,E6$/CM*+E5%OggOOffO^ 73#5>733!^CY hNhTRD5h2'&54632!!>?654&#"t}jh|}~7 A+FRkS947: X}vV|MN!)jW3C4F+:C5'7!5!#"&'732654&#"7°NtoluI69BE.'&YidjYX|wV8F@.47"/ 7533##="aavʎxpjj,?32654&#"'!!632#"&,qH74GH5D(qPc(+Qc{nf5DA59?-)Gi-td^s%&#">32#"&546323264&" "4=[xT9a{gm›XK24HHhIwbp^!,x~95DBnBB #>?!5|54&"264&#""&5467.54620;;`::09AA98AA8mC5.;Ā;.4Dz5)&66&)59T::T9ejR6WS0QffQ/TV6Rj ?3267#"&4632#"4&"326,!/EdnU5\gk^$IdIG42Ibn^!*w4CB57ABt 4632#"&4632#"&3$%44%$33$%44%$3%44%$44%44%$44Uz746325>7#"&4632#"&2%*6!58%7 #-3$%44%$3O!.=24T2>A(,q%44%$44I!&75% I.^oo0 !5!!5! %%W^_K!&5-5Z0R^np>!#5.46753&'>7'V[SjjS[EYd8(bZE+%PZZX R4#= -#5R 1D 8+3&546324&#"3#3265#!5>54'#=@qZ7S-o1+'3S*.l_N2:cp72Pn"84KGLJGH5@?5FFHJFJ1rfBBfB -%##5#535#533733#3tinTJTTJO3/9%#"&'732654/.5467&546324&#"'654/ Q{T^ll2/(12fCH/!R{U^km2-(33eCIe&4d'*A:USheT39+%04"M=*A8WSggQ38-#/4"M5(15'/%#5!5!eގa:/ 3533##5#!!:cc9^`13  %''7'77ħEEE3EEE/'   462"5!462"+:++:+:++::**:,bb:++:+[7#537>32&#"3##"'532Ig{b?+'I zQc?,)!IlceLL eT@coLL e& &.65264&"462#"463262#"'#"&6"2646"264-,,eIdHH23)H23#%dII24#"42H,,,,n_^,..fdGGdF3F%%GdF%%Fg....,.)3&547#53>32&#"3#3#327#"&'#,FFW#hB1$3:a45/3%@;_27/"3#>:a36/"4$@;]29/"34\.6]5\ .6]/0 %!#7#537#5!733#3 DmD\G$BmBJGђbb_f^__^fJ/% 7!!5% JZ$`acY[cJ/% 7!!5-5JZZ$܏`iabZZd03( 670DQPPQD[ :\\:( '>4&'7DQPPQDg:\\:-#G!5!G#gU+)#3#3+ttdZ')#53#53ttdZZ-h)"526=46;#";#"&=4&-/:aZ.,6006,.Za:0d/2v__Y.30B @13-Y__u1/@)""+5326=467.=4&+532@/:aZ.,6006,.Za:d/1u__Y-31@ B03.Y__v2/S #'462"& +<,,<+++<+* %#'73#'73ooToo-.G!5!G.g %#7'3#7'3Qoooo'332654'"&54?65&4632#"cP./846:rwzc+1*++]9!"6*:D0 R~wQjF#?{<++<+8$:!5!:$eB$!5!N$e%#'73oo 7#7'3op*"&54632.#"3267!5!Փ~siSbdRq ̦̂b#DT}{UDj % 73264&#"#"&5463253#&H<9HG:;IK3ig:I qoGXYTT%.pl0@r'2% "73264&#"#"&5463253#&'3H<9HG:;IK3ig:I qoXGXYTT%.pl0@r'2%"#73264&#"#"&5463253#&_YH<9HG:;IK3ig:I qo>GXYTT%.pl0@r'2%%#73#'3264&#"#"&5463253#&akylcFH<9HG:;IK3ig:I qo%MGXYTT%.pl0@r'2% 673264&#"#"&5463253#&'46323253#"/&#"H<9HG:;IK3ig:I qo9.!% L9-!& GXYTT%.pl0@r'28;,8=+%  44632#"&7462"&3264&#"#"&5463253#&x%&&%%6&&6%H<9HG:;IK3ig:I qoq&&%%&&%%GXYTT%.pl0@r'2% )473264&#"#"&5463253#&#"&546324&#"326H<9HG:;IK3ig:I qoC/.CC./GXYTT%.pl0@r'2^?@./@o&Ka #462"tu.D//DmD//D.<-%5!##"&5467.54632.#";"32675O{wU<0>{]npu84(:@$ 8XKEAMggiw]HdP7OkpS3:2'-1g?A0FKB* 73#5>733!*CY hUhTRD5hP#462"&264&"'##532'3254+opp, '"3#####5354632&#"354632&c,qquuUU^L),^L)q"(@e~~eCQ^ c"(@CQ^ cs1462"'"!######5354632&#"354632&,>-->,FsuuUU^L)+^L)t>-->,)"(@~~eCQ^ c!)@CQ^ ca+"353######5354632&#"354632&c,ssuuUU^L),^L)q"(@,~~eCQ^ c"(@CQ^ c2!2&#"!####535464632"&),DruUU^, ,->, c"(@~eCQ^F ,->,,"353####5354632&#,ssuUU^L)q"(@,~eCQ^ c4( 4632"74632#"&#$#4x#$$#W4$$$=$$4#$:s462"6462"#4%%4$4$$44$$4$$4$$4$ s'3g||x462"6462"&8''8%8''88''8&&8''8&@e!5!@,]s#7mfs||s#73#'ktwnK||@s373#mHKlwsAA|Yv "&'32673T]"@"]N6 6 462"&+<++<+:**** "&4624&"2 IdHHd((dEEdE**ay#"/&#"#5463232=a8+#&  K8,$&  v59 59! ds#7!#7_O8kPEs||||#7HU4632#5267#"&',O2)!`"+&>:,$<z!O!u   #f D/ Mq x &  B  $q 2 $ B1    * F  ^Y    &% aGenerated in 2013 by FontLab Studio. Copyright info pending.Generated in 2013 by FontLab Studio. Copyright info pending.Circular Std MediumCircular Std MediumRegularRegularLineto: Circular Std-Medium: 2013Lineto: Circular Std-Medium: 2013CircularStd-MediumCircularStd-MediumVersion 1.001; build 0002Version 1.001; build 0002CircularStd-MediumCircularStd-MediumCircular is a trademark of LinetoCircular is a trademark of LinetoLinetoLinetoLaurenz BrunnerLaurenz Brunnerhttp://www.lineto.comhttp://www.lineto.comhttp://www.lineto.com/The+Designershttp://www.lineto.com/The+DesignersLawful use of the fonts or the data contained within the font files excludes modifying, reassembling, renaming, storing on publicly available servers, redistibutring and selling. Any unlawful use of this typographic software will be prosecuted. For additional information see http://www.lineto.com/Lineto.com/Font+LicensingLawful use of the fonts or the data contained within the font files excludes modifying, reassembling, renaming, storing on publicly available servers, redistibutring and selling. Any unlawful use of this typographic software will be prosecuted. For additional information see http://www.lineto.com/Lineto.com/Font+Licensinghttp://www.lineto.com/Lineto.com/Font+Licensinghttp://www.lineto.com/Lineto.com/Font+LicensingCircular StdCircular StdMediumMediumCircular Std MediumCircular Std MediumRegularRegularP  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghjikmlnoqprsutvwxzy{}|~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~uni000Duni00A0uni00ADuni02C9uni0394uni03A9uni03BCuni2007uni2008uni200Buni2042uni2051uni2070uni2074uni2075uni2076uni2077uni2078uni2079uni2080uni2081uni2082uni2083uni2084uni2085uni2086uni2087uni2088uni2089Eurouni2113uni2160uni2161uni2162uni2163uni2164uni2165uni2166uni2167uni2168uni2169uni216Cuni216Duni216Euni216F arrowleftarrowup arrowright arrowdownuni2196uni2197uni2198uni2199uni21A9uni21B0uni21B1uni21B2uni21B3uni21B4uni21C6uni2215uni2219dotmathuni24C5 filledboxH22073triagupuni25B3circleH18533uni262Euni2713uni2715uni2780uni2781uni2782uni2783uni2784uni2785uni2786uni2787uni2788uniE020uni21B5uniE022uniFB00uniFB03uniFB04uniFEFF zero.numrone.numrtwo.numr three.numr four.numr five.numrsix.numr seven.numr eight.numr nine.numr zero.dnomone.dnomtwo.dnom three.dnom four.dnom five.dnomsix.dnom seven.dnom eight.dnom nine.dnom space.fraca.ordnb.ordnc.ordnd.ordne.ordnf.ordng.ordnh.ordni.ordnj.ordnk.ordnl.ordnm.ordnn.ordno.ordnp.ordnq.ordnr.ordns.ordnt.ordnu.ordnv.ordnw.ordnx.ordny.ordnz.ordnspace.tf numbersign.tf dollar.tf percent.tfplus.tfcomma.tf period.tfzero.tfone.tftwo.tfthree.tffour.tffive.tfsix.tfseven.tfeight.tfnine.tfcolon.tf semicolon.tfless.tfequal.tf greater.tfcent.tf sterling.tf currency.tfyen.tf section.tf logicalnot.tf plusminus.tf multiply.tf divide.tf florin.tf uni2007.tf uni2008.tfperthousand.tfEuro.tfminus.tfapproxequal.tf notequal.tf lessequal.tfgreaterequal.tfparenleft.caseparenright.case hyphen.casebracketleft.casebracketright.casebraceleft.casebraceright.caseexclamdown.caseguillemotleft.case uni00AD.caseguillemotright.casequestiondown.case endash.case emdash.caseguilsinglleft.caseguilsinglright.caseG.ss01a.ss02 agrave.ss02 aacute.ss02acircumflex.ss02 atilde.ss02adieresis.ss02 aring.ss02r.ss03ampersand.ss04one.ss05registered.ss06 caron.alt commaaccent commaturnf_ff_f_if_f_lf_if_ldieresis.narrowdieresis.uc.narrowgrave.uc dieresis.uc macron.ucacute.uc circumflex.uccaron.ucbreve.uc dotaccent.ucring.uctilde.uchungarumlaut.uc caron.alt.ucundercommaaccent .:;CD DFLTlatnB  aaltcaltcasednomfracliganaltnumrordnsaltsinfss01ss02ss03ss04ss05ss06ss07subssups tnum  !$JRZdlt| $,4<DLT\dl*xJx"*Fdl>X~8^^ r    6 : V Z ^ b f S}~0cdefghijklmnopqrtuvwxyz{S  !*3>@EFGHIJKLMNOPQRSTVWXYZ[\]^`cdefgimnops}%&+,-. &2BP^lza|MWNX{;OYt<PZu=Q[>R\?S]@T^AU_BV`CbsDD UU $"[*4@"[bbd $,4<DLTC B A @ ? > = < ;   {tu MNOPQRSTUVD",",  ("&"("MV *4"MVMV",6@"MVMVMV$.8BL"MVMVMVMV&0:DNX"MVMVMVMVMV(2<FPZd"MVMVMVMVMVMV *4>HR\fp"MVMVMVMVMVMVMV" ,6@JT^hr|"MVMVMVMVMVMVMVMV$ .8BLV`jt~"MVMVMVMVMVMVMVMVMV#W`$"MV#D]b{ X)|}~) !defgins%+,-.& >@^`cmo}6 "(IOILOLII*B "&*.26:>;<=>?@ABC033 *DDhU Pp$aMNOPQRSTUV[&N$WXYZ[\]^_`bcdefghijklmnopqrstuvwxyz{D]  4NDFLTlatncpspkernX ciBnnIrsJxyL||NOPjkqruw|!&(.GGM`bdfillnqs{}}1+.|-!  j~   v        R         % % !((%         < / !m!   <   {Y"<H E KX?_\)&WU 4 !!!,""M##))334499;;??AA BBbYYt[[w__``aa cc#ddeeZggzhhiiTtt`uu]xxDyyI{{A||BN9+6'Jcdefghijklmnopqrs^%%8&&((Q))0++ ,,;--5..-TTVbbccddeeffgg%hh*ii.jj/kk1ll2mm3nn7oo:pp>qqCrrLssPttSuu[vvawwuxxvyyxzzy{{{}}=(FG$O @Rl% %$$%%)&&'))**+,)--.1)2233)4455)66+7788::<<==@@DDEE$FHII JJKK$LL"MM#NO$PQRRSSTTUUVVWW*XXZZ\\]](``kk,mm oopp,}} )))"$"+('&'& 00,68,;C,GK   !  ! |  !"#%)349;?ABY[_`acdeghituxy{|%&()+,-.Tbcdefghijklmnopqrstuvwxyz{}>  X <( <   +!    ~      L   {   "   kkmmoopp}}   0068;C  T(*  T  Q=Q,G G  !!!#""$$2%%M&&4')M**4+,M--3.1M22433M44455M66677788899::9;;<<:==J??@@LBB/DD;EENFH@II>JJ@KKNLLOMM?NONPQPRR@SSPTT@UUPVVBWWCXXDYYZZE[[\\F]]K``Laaoo=2I4MHM458:M;@O@P@ADFNFO4@6B:JK=VWUVWUQ+01.$$-%%&& ))%++,,'--&..$GK>")SRRS4<P 1 >^kmop}0678;<=>?@ABC.)+~&         %!          !      w           ~    b ~   !(!!!!/(!!!%!!!!!!!!!%!!%!! ////( ( 2+ " +  !  (!! +   !               %         O&&''((**+,-- ..//012255 66 77 88 ::<<==DDEEFFGGHHIIJJKKLLMMNNOOPQRSTTUUVV WW!XX"ZZ#\\$]]% "$$ %GGHHIIJJKK{{,.0q8pp"2 ddcddfghijk^ n>lyyysyxxyxyxFY \n]7o(tqo<:+/')v3dbddddd$ehhhhjlllllllyyyyyyxyyyyyz[ZdyfjkLqq}~|}~|tv?@ABCDEOPQRSTUVWX;ooooooooooooosssssa`  !#%&*1469=GHIJK-Mr _uwNrruwdmmmmmmmx5$$&(*258 ::<=DXZZ)\]*,CI`jGKqvդ'͌{S͌mHPK!!admin/fonts/CircularStd-Book.woffnu[wOFFCFFTMpjGDEF[$46YGPOSa$T1 GSUB[XH>OS/2\`OBOcmapD^gasp[glyf BX&MheadX66,^hhea!$ hmtx0`XUIloca Lmaxp  EnameOS :vpostT4 G_sBqs_< ͌{6͌m+xc`d``~ K/g 9xc`d``L@ `> gxc`arc< l,LLL  Oj8/ğf '2(52R hxڝhUǿwvnu;5SvtW 5![пlT "5Pb Z" msNL.|x=?ڼrky^Y;}Byo|{V}i2g> fT9Ӏ=-ٽʛ%lmJ-ЧgUl?~Zô cq֔62~V5=`3H{jVƇ" }"VVQ ܌/bVٻ9^Z=Ț89xj3;o+~]ԥr]BMuh>L{X9wj4sFFRas؂@ͱ5d*m`qm5*I_>^8O._fsDLvϳ9}2j6i^{wjqt,",͆b+Z:܊eh qZvy_o =G7tj5h/" |ٵr{zf7jS0c^&1;Ni/j1/jk3; E߆RO1 vC;ƚUW) ꕄzk!CO`ރwMxZ̳׹{tkԄBbȯ=E.x2ss`露Vs.ig'({w\k=Qv]Ga-2;`':Ç+qWޤs ?).p7T"lJ~L܋'Dߨ[4Y × .śY0'5Gs>u?`3 5j2o)͞MfR;! qx>ϡFa$!@K~wC vCg4NwhlGkQ@_WGgsid^V'޿pw}7>ꨋzۈ6bqB ]MlNqJk7qڎZSa_y,xiPE|0JaxS)1BԲt<0t<@QS Ӛd<*&gҚz3Eo|bw><4$i L4ͣ_C ^ZQ⊞"GBTlN[Vgsl)cdLґCf+ lHm{=boW؇rN;$:N9jNAYt_z|*mݎjp]Qi,2LEƲXjRm,>Q&Id̓%K=dˁ%X"IMg"m,½ֻUn[un 焳I}Q_gi]u>+>]ez J:[RDQjJQI*NTjbBn>t.T~8X\,N |>)^1-ݑu=WzI_4-yd0Ҏq ёdRۙdRL:lRIOtЕ 2FwxC_@6`0GF1gy F$<]+,@"MrYd0ʧ|r^e9)^c yR]SBs\koyb$:VDxrs­|vQy~f?rx_wqx-}H p=<8;O;N1C"bxDCDBCD#"cHDD1"FĈ1FH<""FX<_,owG9~_(`ƁL 6hi x%pZX  =@~f }Eь$х& < w9(Sy+APċĐ<yt%D/J*MIKr&:o tmݗmᲜlC+$Q9.O{ XW ŜoŮA*ʷ}WI5ZT5T7jRgGߢ&45̓Nj+~GS |`v`}?~O;|1Xl !cX2 Fq˜7O] 1LKS̙gK]_s1-^`mc؃ iX,6 |x XUVZV;3kϦ=l[s۽3{پm~Gα8.'|:Cgϥu=wrZ  (%ƉD,D8"GRE:9N:GWr^w]sQQ~*OA<Oѳ楼S޺f54?t2tI+]cʗyR- ߽O ҁB`1 | l< >P6T5C7apf2|d` Okf4%==⊔"M2LmDw1W->>6Nx)ފ$D!QM%0p} z6>g;}: %7,\Nn&wzZNG #nZӳRz9GGW8 .ǽpw=Q? xTE8zOݙɹ'vԓ:M9F ",((.+5຺kN}JQۯ@=qnSNSuS40 |N0,#b}"HR5ϣH0 b:?2'i9 aU,2B=FGzhLZ KddGRz;>5?RQ,o﫳TEm|t݂uq;s5QbFx6-6^ciqX 7[!$\o 4K<%"3g*8Sp9|Ǘ iMZwj|HA`T0|bD$iEZ,1{duS.~d:qsBE+o!u͌1țJ3fdʨ2ozP 'NreSMR(6Q԰D0%n_iL1H!VA>L(mV,[RoPy㼎WPumJJjZm(ˬK-"較1"JLy2=yR^cO֯\3ulcNAe)tvi]%,TGU7Jp?(qDj}k#6lLv ɣ>0ǧI:'fB #(>xAj-לD!PR4gMeo?\SjJYdS),,Ԕs3[,z}sPPkf#C/qB?ب$P #f !my768viڡ9#Ҕi4Q.\s?TWU_`9 T:\C%6AnaM|iqc\.f`JuTfR&_(HuJbK(3;]CT"sZxI¹jU|#2w@8xpAri:Zt3,u`ga^ʖxhT^?GxuQ0D[B$_T,B ,IƼрGXTmyW2!K-1HC|QiE+ʤE^2:v%!Lu ܖM q6K@+K3eY*ǫj\O?͞<g(nnˋzknVʍ?/^-7.3ťu?o^K]ZG.'QSShDVJkBZy= Kiס)aHsd{Y٥.*)Y!(3:1jnm[9 y} s6RD” m}Du.j%^~ha1yCN=9}?ۓ6BTA|>񖱝_6j?!up]C9ȋkG̽ Dׇ5V/zӃݎT5KK@\fkhEe˛ܾ}4--]pJhj[vti;cg?^AG݃0> )3?33ȓO 694\#9̇D~/?j!;ߥGX|s/w`C/Cn?7\ G ~Xv!vs/b={ je#Dj< !ʵÃȳo yN),}{ pz+< w<%o_!= i]ipzhơ-q0 >*Ÿ![_OS"_-D[v`= 0Nc=9y3Gӹcb؄^w=oc>aL)FGDD06TT"Bjspv{ٚKsw(z3^~S ,G,Zd]ۯ:o=FXpv۽m/~56?9MjXaC7%\f%+=z(|[[]QVw%'1&"R2JSt!~=uZ#$3 @ռGE|=3m*1} `89 ƻ=Q&EdF=ǹerbT(2洰W̧Է^'40ARI!ف^$)$S.Tx)XS *, @-hx621o w:/je m9FŊrm)'BŇFhkrtj!Y '.&ڙwxEoX{9k,Ʋ}/Oң]Cge6ge)s&rƳs@=wtt/_?SrJT(wC 7/ri}HxtUh4>Q_.( aO[\I~["] 2\^@.z̵o?o ZKtp.<&ߟe<І]w1XÁMԗ9mx.Jˆ2/%)-Wyݗ|>'/ bMF%嗇AD{:#S0PLAxzݶGPRϥ+fNX!pղLuD<}>M~>GXogqm^x墬7ft'h/f%,T738_ V7ع.T{ _QSe|(D}^yo )<3<<@n:1~2$e27_F[kS:R;vڕ$?un2ǥ,L"'Id$y0,%_dd| ,:@}Bt^6 BM r'yoUP J]5Mstig@쮵SG|vxaK`u4+yqZx<]Gxg Y Atn&svϸ8? wLf7+WHD59!ŽD=q2>d~G|Gi}U);CvյyݠQ<ķZ2VQR98w_ל֒lɭߍLwYy';C=gJ8yj΢Auf4HPst7$ZCԅ+!sN?f``)9V,͜2B+NX>I-6o'ѵ׉:x= nS~PӉm{p ̙ܱ{Љ~T؟ARG:`aDJjkjhj2,&68_7U^׹=FmAa50I,M*Ǧi \8=FW>=%q~xKL^NnaWa._qA:rp x]3^v9u뭍v|P| >vҔ(SKc*̉r/*7`O^abU3WnYҎ7?Savo0?V+*%DCBWx@\PP)Ex_glVө{Hds]?Meys{ndr=Zn(=9\xV=e:*ͨx Ք>֜C:!UJ6.ηVH¼ >3V-MH [^n3,uڒUc ($*նΨ6gvй+WklVNz͞xN\&ڀ~.q|.;~Z;dfL;ixVsaڎ g4?cI2Eay;@2˷HeP.mW) ~SCvJ=$ڧL)ßgR%3..X "gL#==KJ*tao:kX ś5g ;5Y2io$ LLP>(* a UFH̶ PqM^$Y 1)1M?^ں ՛+86~C%0?%*Fa\Yeiax\~f4,SČdzN[@7W MU##n#? 4Q"g G1[<@&΂,4w} I%˱c0A yti%6nbP< 2*j AK_'D_Xlt|#È{l{6M*1PBMƢ0g6+LI˻51E&mw~[R8-/L-]]ZP16ݚセ.u5f&pA9311 !kǴ0ۺA^>zUpfn$^pv{Í_aG 8.:+ ,q2Ѵs3xem3&Dz`]-EehdE}{cWA_-WϱX -;6Y`Ð?67\ع#xbDzf јmbU$ O,+PW?x=P>)m+;-c0,{{;:z Pۦq%t3nԟ8H#Ѝh76&6kk\b6ktk7.M3"b0#s%{Lv=Hq~m+sekmeMɝc *Gz&o"H ;;䫏bb0;{+[Ar=b2.GAwQmee {FL'|-͂gvOG||:K1MS:WʓQXg)ˆiA| T mܯOn`:@$6]:fǢXj0$񳫪'J1JOMN! Uk+*-، 7B(KuzF4'b[Gha(y)W,4fXL/J[*)Z24Ȭf>^ %0~G:]NGuXC,E }hĵ2{`n5y Q? fC b4E(I-^ܪ x)2x8@tЙ3T$m?LeE Ed ! 4T@\pGQ¹ ~?\zFa!+z*r>Nٗp|AZ^^EoZ<1vپy{3>iG!:ȈabXB,j #1z[2Z}&^hSBLp6ۥrI838ze8,zhqu,.O_Q]XO17Z)8m<ŨHbѶurBsG([[3ǘ\w\+*c/ 8us<=?^ۛ[O_964.Je*lgAol/r͑\ܓ?A#Lݴv-7۸kW#/Sp=.B,F{9[n--O_|ObD+[yx媇Vuժ֖U#[ŬYLd6항R4դSOBG=WG f2/]zۯTűTq4wV'%U}.3z|6psr/*cdh|(/`(rfnqS㥨Nӳ1LҌGŴ'.2W';~?+5}񽱅bΟlPsqV4{V 83!8MFO 0iG΄ ̦t$Pj5vSuW7fe6[ȓ0a=ƕq9ĘmŋmCI39)ijTU׻$%uņZ8"cEх&s2^k|ּS'PciE~[LGGGE2L̊d)YJvi؟|Pa$Dmz45~'ЉR?uDyNק0ә<ⱴM%B* (P TlGJTK#(-2,4""4(IXtt+7%*')"9;;9"eF&Tɢ/dɬdio5~zCHxIVFekT%c0I<G3؈[Z1[J[VZA%n?#Yj>?=uX-1XECB>ÆG;.=-ʇ+ht|@:q|z|`z acU@a]$ șE<>w;[O F=ݺà)Y7=ڣѪ U><:(NP0 Zy%}4T&8V]RXPPd*+_4Ǟd SҘnpDĭb 1u&L][PTjղsڄF`=>l/ߣ/A1- ;7vVFϹNtǃ/R)BšTd ]sMZǽ%/ qS$ x%n4BA~ wsKvFڹvx,*ҲBI>L]^y3}ssq| 5{R2&I'Թy3sܗO8Xl N`@>qW׳kϭ<o)|Ma `*V)Xz~l} Ną&}}Bp}ص[ِn  zۯ7Ayxv42;`)te#G&w;Ͻx#H)ħb9h##B$fVg\܇j[x>Ƚpe ׏ $|ePVea-\0CsޡX9C<(xOoDm_?_B/zM=ȟ/µ~~u;c`:VYYӺl< jcO>bµ;q-jmnwxϝ W.v  '؉Aa[u.o 71ڵh$byN>b4%tR$͚l.tV.HFKiYN ~pfZ#7¨Qs 'a<9ZVw-ۆ)ZljMb="E1T &0npY)I7Y8O 3nQ]L;?Gb9ܤ+:9,'Yza2;OBehu򶳂Ớyx\mK~–l#5U%6uCyFͧ>)# ݽ@f/x}} CкCv6 ){Mryf)ę*hOϥ:Ns՗78ʠ2:Ov}:2f3-0ϊ(,1\P3-$aszヲL9Oq̟-l(87N&i_@4 +$ui0r5Vfi蜍Jیu629'hFlͳ5cv]umS&i{4,_Šx׏%Ztc$@o < -\=V'OfKwb>Ze|zx΁uI͊[:aѣ~Jr=曂 {OfAwǰQѣ߿k? &. lCk{T9mOU[d#Tn7hZWƿg{ + "e0X]-'jSH)'c'P? $'8=gʏ! Td zF-9^[7l_q6g&zx,\n'mC(LW;7f8=H(>QJ'?ΚoBߞ;'5' rǻ M B;. g (K/#+7L-I>_0z~A8~`F[~2~a\_.@2"HVP~Ogag~ w+̔ G G;.s-QXKg_/8_{%_ ~6\Qɺ|?u2ҞؓȦWY园jjP=OL0?- ͨL$fmܿo235 UCU!FF&̩-L,)%n7} ASg![1bz} 7_A ٹ r|j)ߊԽ!mCr&Y#E?9├F-ވiQfP[`{e /g "t^.fV&D[T)~Cq[jPTUI{[iMd7x}:FC87NSQ֧O^,##Yg6R̼nюu7YN_`$VWW)p㫺^Oxv#kܲݣUUm1 11 e4A*M!*c3fƗhl!3r,~|0XmLvCS#KsJrnm[XRUFa[u#MhynuE4?h:_ǔFheY^C+ߣcEou<g?\ܛg;/f*v`|`ql{>.ʗцywyDv1״547 w'8kGBذrcޣs;?Es}~'O9'= .lXX*ejh_F`"NT"#T5MMP> = (* :sF}=ȴ/=Lμ0޷gp-sgTq#)tU,Ük=s*=/[1.f{O^N.IW)RRdJOJ<֐*@$܂ `7ۛC1Wl [YR%ii^O߹!O^vz.7`0~z^n%WM7ǏWuۯ֝nRiw}Sts(ҺM a-zy\՝nq.tKjҝnz&tcw ^ehN&Nu)GVMӍ:{•n|CeskцW}- SrK]nkR\[O;!jRNWDޠ/W0֍ΘJ'i4/A`L,s'6*F _8V5.4̸ˍq,]n_ˍ\ U@L_Mρ r΁n MʁNN^! zNtA1I8v/JӠΧA/24Y ]W*:bֳ(A/%#eÅɃ`5ǿP èlL̚STn%$/t$-.k(8&O(񋬍og%eHMڄB}BFIUkEɏy4 rʵCmly\6c{瞻L9=K4;Apݢl˄ [*7.hD:z~65"jϦz0Ao m̧:c-]CXy WIcRi@`y`RyZJO+/O3*d96D+ *KKK;K5R8"1 Frmk9zIBbق(K,U3K}eWRwAM%u1 MA 4{"槩تU$5(' }jO1ΌRg+woOA[_Y]8*,_%NhFyaLٺH!Ok?4Y,s9/ZY,㐽0`ɊXe?MC\~b30dWLa2NwuV8Ѝ[ K#[Gn#W,;m5 _DJ/!iC$›v'$~ڝ$R<_Bt. il)x]wGRЫ?1'g ~*r[D2O2Bo<C|vr.]va=ȝΩqD7BveEu-ifg5V͑5li r=ovfyvNHQp+ttg!UWnϙkby~R{tlYaڞ*uW|G5C5_E?gɉ0"!3R%̊i)ܜpKf4vܩsfEqz ~b\泘 ;462=#-(M@{11xFo+/ιDNطZ0v7@HokM]1>ϣ-/SWPo߲r$8>v|ASPVAfbPRmquaѹ1\D _SJ0A%7G`…{55-K I X .~Ųrcx؞j>I0 KdhtQ!_?kg*ӝJ-EhG@ĪMYq`H>7J N|4Sdv)ʒl5$1X}.wc?%A teRarZzIF7 D8.0j:f;{zʹ\K;]UBٟb>9%{e!<׮+qqVMÑnxn;TΤ 9ȝ9b$QJ9 b2Sy<XFE,:[kTb#s̝"Hd;Ά?3fCF>tvm( fU!/q\aX2Cό3nX x}:1߈l /fP GGK*3eU1 sdƜa3|åaR)mpxڵU;o$E?v}g'. wk_H~KH3#Ό{N!!# ? $$$|Hg^MDoGQDwTpDz#@"mD ^{яi#n nЛ')x M[W魅EK ^vU&-6c[|6Z\38^@GKIEFF_ ^ ڏ njz=Jmz'A*-, ^Xƞ zMj6E wi=!C-iMIQ]=#*!ԃeg53[XෂdH#hg+h9)K'0V{PG?UGe{:ʖ:(͆#A*SY18@:V8cd6sm,Ue Sf q4.} Ux;잇ϳo=zͱ^Фܧ! haja,g|[@j 5e V5'2Hư :@!zKTu 2"QRΙ gNN{$g#y"񜟐ryC 5ϔپYF{@So'Sga_A:X`A3Ysuy^dbZf7xf{rN~ ѭUeZ|fo>l9h2sU;:ҏ`:UZ^k@Qʩd~I=7S,7NI^2S sYz(6ɧJ,(g #lH3~Z)typR{TE~8ƋVj%ʕ?րrQ-Ij5-0V4<&ZcV8Ŭݺ{0\Q۽,1%tc>.݇t>_5}7Z1xmUtI,2%)3s]I,l9vRft<Ifь!efffefL1eeǻ!}ZK>{Ϧs+A}|Bp%lA hEmHD10+cհ:X kc>6clͰ9 [c`[ACȣ";b']0CB,® c쉽{_qA8PqQXaqn8 r|pnl/p .?O+p&^7;7f܋7l\2ނ&x#p?.§?8 Kb)FE!a & 8XA4~oq;V{ _;|o[q lc a< X=xyv]\|U*W\kr-u.87pnȍ17܌s nɭ5aef>< ,r;n#ĝW܉;6\kq.p%r$+w܃{r/}/< "<ɣGm*ktKNe&#8'8e<8x"O<43x&<< x!/ż2^+x%ռ:^x#oͼ6;x'ݼὼ>ȇ0| >ɧ4|ȗ2_r:|o>?~ϸ ~ɯ5ȟs"t:@s m`Qا9`Ҡd6 K}Y\F3638y'_, &N-x`LW(@)~8ӟ6f }9~üah8hpp8ia09(ѦZ`EhMI3`X2L%S~ɔ_2xLΰ(Q݊jJ%+9`eQV 7U!WmEBWfy>o,o,o,o,o,_7vę4m䌮 `7<4<\Aw땶:z-Y Hkگ9;wM@uC 2L)Z9̡t%Qe;=в[ ,-#FYѨhT5jF]4FS#҈545&4&5)Jو6ݪ/d9<+R[ mǏhxqSuKz I:I 9 G=eaV3v9_apPU)@ZڛNݝRT8⪡cE mL5~UvoOʔ*P;rU/|]6Ww}a{&(1,JV tUsΈ!vqD nZdSQ;F# &OSrlJ2]M Kt!j:]JUSFM4'q:Ѵ\0)WhJ1w9gyX8`&fQiLӔSrլ>-M[tK3[4x)ZiٲHݖzs&1r6vZeW6*.uyF( N.OPԝ!\WT]yeOV(ΏE)XWd.~7N368'@1IlnF2^{Q[S<8+SL24+OLr~+c<q(C%jЀXXM؆؅=؋w W`2Әɳ<泀%Jָ{co]v+:-?HOWڙ1z>1in1== Vq&gy-kX8ױ lsy#o<>'^}\çOug,[/:>\]8/b@%,snt `"yMhx-1՜C #y\8!c8 ?2O"K/Ro,'0g )MW̩B.Q/Uo<^);Q^sd ~ 2_7/Q֩|@W"vSIoY6{̾š9vdnt/{8C?=:3**O[ѽS̔Yd}tXs/Õ)V)kE_5CY½嘅zn2!P2[bhܗ#ɢU&D7|UR׳WM gr2 X۸s ˸+` k۹z:3 eiAGu7zn^^O˄Zr[ g1p iنj [0"֬ٙA|SauzcdHg>ֆmbز]M׏j@^i 5* ( ƨ0$pgN"km5:+ NRVqY+]dLe&G(Ωzvuӝ묹}}{kQ"A˖_4ذoK5K:-lTQ`㮽i=;_\iⱒ1Zn37qƑ yG"\}LJr0O~/poYT,Vd(/qyzZX]}5P<$&TͮZX} oLԴUfLj0`ʈ#~_Y;G;\,uV:;}WԷׯO?i/ihiho԰5Z 6հ!Pw ƦƉkx1<-sjjn:nFW/46p9aY&#%O=z7C kCxs`j쨛FQFwFsԇn>^KtL:NH$ҍ2J餌FK+8ǽ$&$&Yb5R]֔w~5i&S2|Պ'Ʀ{O j{ S2[M՘\ؚx7v7ƀuk[ĩA-jl%%P[7ތ{% u$e-J?)O<>&]6}T(/r6/tjPvCqx̦ 3QftP@E7x8T?ksçy{o#Zմ}]R߉{6x+_T2 $)m65%i[UFMMqHGl;Q~xD:&@%hZ&gW&  =|zǭo׵}֟߅Dik9FyOĝ/pX{&͉kQ֣'2>MyCv[-_C]قQ^3Y ;pL~ۍߣ% ^yʇ(Y\Ow  wX>JEt1;]j# ЯW͓Vx}ٶ&utiS툣JJ C(,Q]+^EniS'=le4F:2OgxhvֺEV-u2lc a[,}U8X>@w5v3&QG%1h~9h D[Ey}h =GѣqPH}7MKI>BW'O (Ϡt<A\ZKMyy}z~ze4Zc82qh0XRm9h6Z8(>]Cμ97!yI25>KjPN4@gVa/,BuGqL+ی4҈eG`>ܯG)3-( J[Qj_k BnIb Ip$OChT:DǭIؼw$7zVq8{OvP{xb2x"D}cu~d =5csIZ/v)ēE}{LJSЏ׌NuS;8jG1=F.b)G {>:x5VY#LΨG4ihDm<5N;8.]ؿ+=8^Ž*oo-<Þi,:(jjp},cQ;VQ;Cۆzp=+pE<#mw[Ʊ]<1e #ط7҆L4PGȯAUo fOC[quZI$(\gOz&kפo{pT ސĕ2%F%1AOГIb =B{)Vnjz=J)m/pw ǺY]CRݎ{u_M&aݍ _؂rJ]Aa}(ƾ )mTM-ul}.=A&Me3{PVlwTokQQ;9vר}h{{m+Q GlKpG8>uA8:ı>YuC(Ф'}tߗS~l5`B{rq{֥ ]+S(43(](Ϣq:$DgJ*݋F>shn kHEޛ#+4EF=>"NZ:on [sW3hb(A+lGDӽu/Y\(aAo=K=U֦?>_4ڥIϰfOX'PGUk6ӽ˱8l\/nDBT*7CUx__*K?RJ$grL8ҟ3*Z3GKIx.3G92*CƈB)oE{0X_Ok\d5mO)LOQb@x)bUIHJt,;ӯ$ExG*~u)jҶ g;u \VT֢hZr=_77 9+iT95'O#UYtE6 -)xe֎sJGJ[_.CՃ%X[yK*E-<ĺR~>IX$:Ry2pón-1,s{l7|cn$+RQJ2g<ӖJɰd^OSchh])b> &N+nv=cZRϒWs7yxjXY]דrϥ6fSqz~%vlJ:@?p15=cxqs HN;x j?~ĵ]On"'g{)}ԧz d&aǪHn5(C?NG8%#$=E36fZkDPz>Q|Jm8Kf8ǵ rzcx!0cdQk8_cJڙFJq_ Gg?_cש䯙}6:::zeg=Vr62ȚV+9S;ej <0_czNڢik^N/SswsFUs#%cCu83KIo71Nةe\} HC5im)Tnl3 C\s@K,Kp4+p΄E2FnV+S p|J&%N 3eZ t@/.sz|bqZ )Wd)`gg"wF@lLMi -kr,CrX,au̮'I f׶K0Wq6`owJ.-`pQ$IfyE#{%&Grp;GD j5UM45MSCnPtPT3^Rru@N)nUFiV&iUfiS[QUm^u\mҩrs~/Vdکvʥ~uW.Yvrڣ5j+>OnT~UPz@vV!٫T>uX 3.%W 2x2WqzF+[-$ffyMsapNYiOfg`&f*锋?JElr`,ep9`,TC:?2f_ Z 9k`"e`܀M!= p̀f7?[#!w-5h2R1\-PT!13P h/Wк1/pyB-2Kb.EVhU{GM=9oCM].")h50zaA'Ff={!!A<>y=9= |rrxh|Xgu;ޫd^'d!}1WL^A}ﳙ:XE!=ȹ1ƕ=?ǩ$XHuoˌ 79>W~hY\tv?[X@lIdVE X`c]MMV㾈3Ƨl3+{^G\<[ğ2יy^NٸS|p|4Q?K=nwV[~z7m=rܒ=7.z3^|F9=71,^Dӂ1bfA;V#{N8}z<؜ 0qYD}qQRd{w+d=4gWM__ēf6G5f׽[~q+cb>^4hFGpX_6%;u^l?v;1@K'oWbvu$J|K==%R5}%R~n;h!@ߡC5}}Zմi7oH;vxpvx ZZAz^Ch^G cc2k^Cs=̋a.gZpŌhHM;% Y sេ/;].S u "uZ+Ru$9Hދ8HdU tڷ̜ YD+bu^-mE0MwЗ U:'wt\`GX&Qx >'}&JlYQ@/ Q3|5^~c o2UN™>Z !)3zT0>s>+E s3+7z~֠gG*Jrp!+ B{EجWjP|d?z|1it_=Q` f̷;xQ=\7zr<-yn~rjj:aǙX릍hWPy_:p2QOA=rq36pW8"YZG*FNf͛VXsN.UB+&'-r$Wodc8vDz*.~))}ՒV>Jd}-!s⊭Ѷm91]RbIy$ҟK ů(^k(~׌@P1du8PFSr I-Q"כw A#kp!L=w81f'k^HfG#& ~5A0u"0D9p4ʑJD.R֎#+Ϭ1FL R:7U𵒸?BWV rumX %oD+NhՍ8]$7̵Q\_?#\Z e~%콺nucƏ>o1zn6=EX diDiL|z1͑Ac;t3#G#&5@ P/dGQԑ ?F$8l8>cb 'on0)hGۯ.JTc}VPyo4e"&.ѓkHVg'هIO{%vmJh}:~xvf|p| ~:Re7fx1xqy,=<>ȋ8>KbcT'fd+ĵϝ1:G#|_~* pGm.fy!lu}khsau}{sѶ }ak\ ubLD"cY{ŌaGa.O# ^rL\Lf{~ҩ~]ҙ:rt/7{Y+)~J΂H,; ſF*>nX^`K׏ WNT!c=%z"k̵QU717{(4!␄Wlfi"o~/g:9tw)och+ί|+[ޑ3М(.o)}oE 6*bю!m6\D.4_JJ#n+7Y)5Yr;rsj`F0pQKSgԃ@5󢃷m, Xs},n982 W}<9a ~ bebO8gcqZhs2ڡ`,k;cm'3ri{*Jx7/RXY?1_1F0g0Vbޢ3Lr/ '-ZFbp9Í #"f{Z ;gps-<󄛙s'1[x20Oxoe/ȗ_|Z\|:728$Oɳ9+E— ngVxf3+àR-c]Q%[*T^ 9mGe7aGun[DCsmxO" {۱g~o 8X@Iy{e&g!Y3⟁[npj, h=\ͯAAq#vmD5e>9W:\q7-ϴRH<9[)[@~h鸥|li~rm`~{00TǬQ\];k;XpA&S?؉ royЛ`e: 3Ր[YvǠfA}5&?z`swCߔ@~դ'͌{6͌m+PK!y{"admin/fonts/CircularStd-Medium.svgnu[ Created by FontForge 20170731 at Thu Apr 11 17:38:16 2013 By ,,, Generated in 2013 by FontLab Studio. Copyright info pending. PK!Q$a$a"admin/fonts/CircularStd-Book.woff2nu[wOF2a$C`?FFTM6T`^ X_ 26$`  G[|q[} ~?wA.07uw2q?;`+ j كV-Bn#Gy1ifvg]5IH'|m ۆ  Cf*\pS(0bL;f_: NB?ޫ~/2.Ncq܏[Q^pPxC6^ ]#U'^hgPQ*4:$[hUKX㍱11! biSec6`aX`# 1l R:716ƲEc0EJL8<:N2ꢌ< ׵}P̂N@-h?]Y! dQUCDEraYןFiaai[nd#F!{(| ,\[_"O@@cJ1+昘11cRM ۤPmD,BhiosW?c)3jcЂ5,JB#R!Q)&[%NM98D1fvO&N Xtڤ[i}uȼzedd9<=* *4U ]zoPX莸JIPzz_^t0W ^[|]iK;\'=(j<K IaI0}cj!B|T夃idiF0IddkA<1D .m6Ueӥڢ,]x>7fm~;`v V""Z[Evp Oj2VL'H r-,PfKaA_*l!7[Kʯ=HdRʰ^ϻƛ9+ND8qo22°uj#*k_iDX+lV?~zwcjc '' %~w^KBB {wk݄@ }$nA ݱϜ@r L~H/B!(QpZjlK5h+B]s]4CTG;*BoVm\Y *T̩އ0(@8R o_̏[,bC,MCRmh)G]Z+u;i-Zmmֈѓ>\zuq\/}{u93w糹ޖx6bY$U}}X Zm5ٽ6]5O:yuttO>^6>G 9s[osge]Z;qN͞l4}ݜc=sŵ.׋H5V)p\;S- *Č˂.R3l'Z@ >Җ ٷhB(-j0D#k "0xyI t.'D@-#ڭ AB&ߝjKai7Qټm5;jvxW:j!ZS7%Α=hu0H)HAFcP B֖8JT$̖,4[5 6/Oge,(PSH5hJÀ*P$/JSXM"()`(-ꬡsU_ 4DMf cFcD+U'$BIr) Q\ȧ,-Ic(rgG*KOY=cT(qZXX[I(N,$X5gs!.լ&`)\P\1`<\E]7i#ȑLאdT#jTj FDlmp&\H% ?g(Feu ?r?GRwSW! 7!BSd 13+l5Y>R;Q!I;gPM1ךw5?Sm'vo[cVϮ5rE,kPՒ2:;lEH e`w(CB8˽Si>#+W+nL!ѡzCC5Z&u ԕ{ \ȖM[KHڶ*upTaGN:,{(cąûXw5Qt|)B{C'B*)V-W96ZY)8CHxA@ia@ł 'Qx V1bA͡>Y1PzXϰZ _o]`(Eʏn ȓ"z¶V)dT ۰;(#gU)K_ZSlR{Ubk6 xM@ 0X88@`e&6Eؐ1LpQJOe XXoZ*P8 hfP@H SB&T%R%T; ZQ6k4 JTMH#uBܐ8<K?j< zmVp,%gX8Z, d p0J%:cm U D@0%@m9z4@7Έ PFk݉1^uUSPPZ502L*F..ETXIp4WT.zkh?]F9tCI,ܩ]x9+d%TѠhՇ [DM+ƒtO0wC#ZY`ucpK`! 6JT [ &Zw0mB*ŒŐ sd✟.`AtF?qEN@s?-Â|f @mcq?3=D9祸08",&N "ɉ14('-‡Q b*I Cd @" 0Xᆋ16MbWCEb-LJҬUN]^w"j~0Vo^G:N1nhmU<\d9=d,75o\g;{E.Naz  aF\qzaDP%+O*=Οڪ@p.YqG:v7܇5!}tvn>0.85d@isVA֦ N[P0Jk~i83؄c-"q2Ņ'cLK ?j#oyx"[%ޏN墺Xq{6!peXJq_HW漊ċ%@ባ5>[i;m֡F'% ږҒ`xXAL&&A`b HBp /zёDHW\v.Ybm[ .UCE]vfvfvؙٙEnQK(41Wtb6@HzIt WmU,W}촗nKwo^;:QsPut.RYKhIf]E#N 9(IDIsm^UpʃlYQ7S|Kfuxt|8qDʝ3H&z'^xuHE5ZP7oXg0Yt.@_9ѩԆ>flnuٜG4lOZ?Yon K蠻)BXW '4fE$GTRE +vRmn8N%]fQH "-f=/C@UZe%+[6CՂ=!~qKxNiޠ~%uA>j˅߲iu: }O8{zkZ49p;D+>BhQ=XA Ho(P$)-YTC%EC!W]4'!$>=,Tec8[E=xӃV L,Ĩ ,*z OōDj$kTNwvPY%gt7~+WFǀU:w`[XQR L@H+Ue's`4ߍ3Zbt1J CDGJ6q6q7;G}.!3f O)8*8(>N I']N @2Q!u.)3*YYfReH3 3M0QIM6H?pH,paUCX`NtzsXd 1 gU54AghFOVfrIU`db old(O$XPaɐ%^DIkFu2"P=t޾!)g S˱Wz %C hPp#>ڑ` Ynf9t̶ ^6Nx7 N$_ĎoTG;c< TZ{:mJa+O> TEo5E;*Zv:w z]%`p@ ֖ڍ&^]RFK+l\j~ew++p Gzo]F?k2ko^}G{~VEŕ CX7)+V*7*wS WcJF zTXSͲJWzuo|FLŗ ϒ3HM% вScQ/{ӕuݚ\DtS-o˽,~r?nHF#.oA(}$B|_j^J+kWZZ▴eͷr#u3vy+Z٪Vw5|k;TuDuT[6 4u-VնCzUh׵DǃHѺs8B9W?2dҎHf<@ SHcƳL*lNit]=+hN3rM\%&vFdSzLIIeJ }96E4ƵHx:(/=N?#W:+ ^z%ڢO>T{4K:R1XtÁQ;;>5!`&ɂAi,Wm iVB"s7 ]4щSN$8t1h"<4gH/jw،;~?Z"-%'J$iP)&t|DaX!=LyIOp>$A`\F> B 96[2mA9 c Kr YDrE]xR#f4  Z{_Rɀ1ɼ' &S|mo$Aom`mFo$h ø vk9R8VУr35`yh0Z|t˛٬f7U4-hmk&39Fl֝8_T|cg<`y./wfL0&2$N`_:hWS mݳ)#C`veIZ"\qRaGt M!E_ Egb*PH(aP¡D@Y" ш ė 0'׷}9f(U7=hP|%#!i/H'M˗j?SSJ&mWP QAzҁ=￰9!PxR'R {j hdP0Qsx(`:DKښXWֵe֯`N:t#& /R]Og?r9+,L׮CO}eUcGF|:s%T&2fX6pMȫsiuΐ:h>jN\_^㻣[v;om6vj;4濚7_i|5=npExtit Vuuu5-:.g&y艗oL̷R,j 6Zk?o?0@Zh` 8 78 ' DKY8#D񀥞Oo0ZX'ioBuji22Hc,†Mm4RL#|*2AUHՃlE'ûuRI<"P\_6`'JRq1d=, dO䚿Фz=fel,%=Io$|)'MY0K.k\_O?N[/)# cLd B9p'x׆/GЄl`]MTb[_J.-!nBV;ʧL H ^ǖe$hs'1g<@gl*Me!.Lv.|T`yVu^4v_N|q ) ]u2?`Lt] B L(MZZ"r$~GۍmL[Th:ϫ9)U}P"U5[v2]qUS˔a3V gE$gx:멙@˅j, }\| 6!ecMU+#5/"15`-} :GT a20@^L;Ap[H5+Chl ѵg~8Ķȩ<ʐER=C_eBlHlV~~n&@9j/맔j . 1rqV:Lvy+)_6tܼ,C^y {ysQ o77u}mYVMtJ~/eBbKCA L]),nQիd&YQF>b A@3fwYMDz4g4l'&|fJWDэ_uՇr_B@n +QS^<ޡ *Y{\DC{h[3Ыb Ju zBz=]RA E:N@Nե pS ]!JAriKhN;q' .]px;K-Q4"?|ь ;\N(7B>ގ0oԔԋ;( VjyK*,GLa ȊOTo*;HEZ[P8#.:he:;VT$p@3r 嚫9@3ױ  )"}sl4+U_'֓~Ft *޸Z =mFUw @e5i E#hT7ֿIY n= eB}c8g~8GAnl +%v%ߵ[_hc_ZrUe>:G ,$w8*ې zK< ;Ҥr"bg3 쮍w0Вo0 TaӕIdt?RZ2NLZ (D]:Jд~+b5mV$$=U8&rK]Dt(:^U!F;/h6spuƍtfP93.~H:נfՆQN>r'74P o@b` {`^y@ @'A#P$~0=Ѐ5ž"rm2~Sը向 D?/T*oܵ,u`Xf\\^^|ǃ_M ݎU zkQ:htQ3 1YP,(Urs6N-2<46 _ >J Y%vp>Rdp9vªQ~ȾkiqT64$UP.v= UOWN'emb0B{4L/i$5k\./|\XT ;/EgL[L+ue߲*u6aq-S,pV&gv= ,:u._e8e)-pQ b #04 nqVy|msп#_ڍMan@}@+0iB?+%O@/r(:p}3>frÇ|xENy )hjAacbi6}Gӭ&JkՄ,$e.e[Cd 5@{=!EPOY6BE%Q(#P'|ytpBw{dQt59Ba l]\ U<~"#DfWM4_D ޮrX:!'3UNDn@VM>mV#m멙bPӥ].5ǒ2lQO?yЖgǶt)0=JYl+iP+˜M #vEgXBJ;MeȌV Mඪ45O9;K9kWѶV\iPWuѳ E.*;[j@ߙA+0ŻOwzkPuRzigZ ZqFk<|- :mHU8 kćiilou3=鋕[#Rth-}7njƮu:Mm^mk[] "tWF;3>(Ԍ圉Mp5]'[ڰ;bXd2'%Oed.dQN;@䓞TtJtYStW*|r8aO67-E9(nkiQ9oNC[υcCw~",['R|lJ*?F/v;MF)DAPMֻ kECtKF]3kd|o<Z2dNwU0J;u ,$E;`M̬mCmeG"A㳎 FQzh6`DfsD4֓Yuĥ~m"i jO鶘ԀjSl>#Sّ$6>Wd$ 6XʐqQcb2Á( Y/}_uL(7\nuwq+:r/6D;QGj%VuiSP|3,]v,k^d %i~|tIfP-\L%gwý$r&KaV%硦*)<WAܜ(ePU` lv@]y\ [#T{ ZO8 u=r4yvq<".bm7Egw5u$ʼn'SKhI!flTl8+tRCr*6y$dG8 {*uVŬAZw-*0ƒu7 bBQ4G:1tԻ`[5s'b^yWW{v 8M;8EkR-VҾ{~/˿١XN_(()Rr_\M 8P^$3s :Vڰu0Rw% )qOO~W,L|LRw|֓hzhUziFԧSX|]doHd!:@ i1hN[0-SktcMxGc NB+Fn.k[zƆȑ3ӁnW+_1@M۪ݛs=u6kuP'h2ڋSIf1ST%Ά.qĵv=.@I#($"<`aPt`@Kz 0K"D·@U H?_m44YyImF*=\_m.8W8pʀ{ԋ'Jyd -_; >r>| A\_z1NzD*T*I%s4sHhN^3'z&4Ko{b q&QvCHbw ^jjUiULM&U6mLTHG"K%w| 9+ic=ht%^x~{p6| Wg?[îY3<4C"&\8 T۩\FZhe;C<<%JL(hIrNh^ŝ߿P?+AmZ@]W+wiڹϛ\.u n=:KSJ `  c!!df(Td_cIpSOed2\)3G %~¾+HS6Ԯ/.W(so!XD>:l6Tf?EତyqGm )\)UJonv83j3:[m2j=w,tm:8s?C+_3 8 qb%uOtęژ_cAP/?ԫQ< V"hdsVΛeKlf~ך'Q=䌨D2]Wϴ*D6I)Ƒ;#OErc!TNa2WiMÙ*Y]+֓) d5 VJİ:/mPѥVvʺz* 3 |ն utU2`!rQ7s0l-t{Ryx6w$̟VKKܮ^}I]g_X7$%uiU[-WKj%y~>Thiln0OmFW;$:)^‡Iy̓^u4T0FSWa9ukv;"܍"űďoc׮?|F]ؗ{GPtaZ*FS4x*!1qAEa>3^) TŒ("wJ&ln 9[3exGղWm=K THB=|F75^ZE}v3-A޼R`E| hZh _H&HWogQPІ,:_7S,r2Y׮vx%McNt N̲>Vߙd=(AQgEW?06[JK_=9>zG]=Z~vyÁe{ͧv;W{V3OL>Nj}pd̗üR>82N2O]O>9I;})݀\(ae)(\ :^k&/CX8c h!yozO@M}_kVԱc0:áLh*C˱t35+ 1^QeA 75 K/ץ&fW ^s.?#mb27adSsy\ԧ>2æ_L]C#U.!'1DTF >OR)sSP0ptJG|ӥտʔƠϾv)I?,%2*a+ə#V(U4*`25ti?Z.sdM we%dɍ5ֹF'Km#GKN5,O {-Zr\Y#"c(2$I:';\K>MI$+4+&kMSWT=8D|X Y{M#sqʛ׷Fj40:VR0xA%-4 3bp:G.DOק(|fy~xU k7-:smriDƫ9NW4~2df#ѲtM˒ar~֊jQ2%՝.+аcicܛh6i>%k ,dk9D;"6nwjl@vݑQ"P= b) VG,.;/B,= PdPXSr^1hdlg橕@1Z8*^4\^ .Ĩ";|<>87ߪ0 !NkaR0.Ȉګ,(o@O)oOB'A G H!5Ş>So%" L̽M SIgetW5ggHkVkĤ`!ReYR|_CUv`7(p |KSר>%'NJLM##6# /N~Ε0<#`J)% u}ݱ ȯGy-c=K>}Io:T+'VN *U*tCv[an@,SZUUũl ^w\SG!%*+b{qz3Aڹ ǭW;dԭ kg\D͉OZ?zX`, T'ʨ*rÓOTL˷Wlu;*U-W; иT΃~3)qL F)ljm}j$Am9{CUڊ|P:nNy/Xb{~&gkhQ_d}}=Mwss@1jJDs1U;#ëA4UWGpEDTT"첯5͵*m{jED^%!{nF-5o&n e}ImΦظWWrn>$"pF8Kk׋=*Rʅ*I!_%,_elvy3skﶋsZ|}¼N8|<~gM}&(/Rifv<cE1KCQ," AI4x Xe'HETLx'5RI<:EFL0+tk6P%|"  9J۰x|ΰ~pIu} bChb#XtN'XO\cgx Amlͼx4),~J;L7'cgzˎoTߝJ<$*n.z~XTȸvyW6*\jڡ~o@[״/p['I%½wˈUF2.jVwbeŖz7\^ąkVwʙR Й InCsflaqFᒔG^VÞ l!Pte_Nm8 U܃he6njDKe:gkj({:Hc1:ćs$ױwAב,{|!tB{_#aw6LP*pVs`)t0ZȱiGG9tx(ZaVPTniZP'DP.QywZQ8]`vfDjt6yPD'^%7Ҙ&rp͟N3,!KņƆƄC%BT\KR<~4$2ʬXb7^WƯ}˽.i/X&s34g[=p(7{ê`&Xt T_jZߎ\Sf^VgvPZ)옼cs8?94 Ӕko)HThvc[`odzԠA/v16~Y#4cŌT%QǸ>wiќuh݈9k<=nBdJH8l)}8Z5-͒Mi?לS8Y.VA2ǚEeq- e|48I?Tq3KX6!8|R/ԀwMMuo7 YLd$$db*`f} #s/8͈ 1=@墇R ?GzDJs{JclZ / :D/E0oh_ kWtGv2p##R27YbW($IX%|yAR06|8`غކeTݸatݲ^ju Ԕ0L?'MJ`uã6&g,F|+`cYjDH*aE`߼Uˋ j-*V8s? xFOp9Zu jM=4^Qm7˚X:Q]yƨˊ4,hr@C}M쌌HYPQ=_SԱ* [Bw5CZs?=3s \,q ;xH] \åtRZ B#(T,ɇa~ (58Ԝc%|?Lfnjp:;eRr [o?M<3sd @*SSV=v 4^4X&V@ m ߕsP.WrYnP ۴~q*ny(q'U7s?*|?uѧ Aӗe+zu2su2IpyͰlA%rTRG@]`H5_\cd+Vb){0l\ʔYvC@:Gǁ Ӌy0DzLoLj bKOd)Z6$~s:i=MVRbFcۄi'iSSuCV[*Qq{ Ty*PY ~a1cVV|Fҧbi[;k]c UR-[LD4,x$'INliG]WDD& MSA£ExO唜d:'EnmtPMe̚L./dP:E U ^{M} d/Kt-۩e-2(Acќ9:RA^QxgAlF*. V1;K?A7Uv=o..Yx}!zp˹UN{j_>b9fu7ZGC}a(+p5^-Ֆja mE:Ihٟyk ' "uT{MCbx=ʺќz-LVN+t?󮳥盛V Q G` ?otкL8Z\cDAiig~5 D#ͳ&,4n.!?U &)i"tflBR !}FJkD7qlzq\ ظ료'm[tTn0`?Ֆws;Q"e8|[-e亶&NX5$4>$ @v1&C.P =&БPu % ~<"`iB(0DϏ 6B^C#1@c8} !P'p D>wHf]Vdm5ڟ|t "4Uq%r_T_uw"W0PAcԜ2 5?e!- w`C\bqfe9"|B<(ɥtV b k[Sܥ X }yZ#X0;vZ)0NzR}K_S!ٲdʚ+JPV& FR5:usϘk&AF+py cō_/4:E6ƺ)2v6;C )${B ! yPHB5E''2s!FCZ$ 8K>%tg`[.sf6sRKŶѳv (*M iN/׉-5 I׸'_.XJT_j6Ҿw J=G߬ŰmzE?no~]R)ؿ{mM(4# FD׿|!/?X.h {T X3pJPK! \z2RR"admin/fonts/CircularStd-Medium.eotnu[RQ LP/{P ˇ]&Circular Std MediumRegular2Version 1.001; build 0002$CircularStd-MediumpFFTMpQGDEFY6GPOS$4GSUB>OS/2OwOx`cmap-ܷ 8^gaspglyf]umLhead,6hhea 4$hmtxO`loca߭ maxp IX name2( /post_wX GB]_< ͌{S͌mH"F@NXKX^P$ /P{LNTO )A  >KDY%-S/E1D%=0=C40At-(Ck-x!'K!' E.5*F%.F3F#V>!!:* _U*UFU-U*U$U#U+UUU%*ZU%*nUW"_ M   ~ |*0U0 -\K%Z%$%^M(>K 9  K KiK>KC%\KT%|K mAF .  &m- UmA#H"-Q>I'X U6L 2*;G-t-2*RtE?87HKA(*+>2%2e4      *FUFUFUFU$$U$$U%*%*%*%*%*$&%*MMMM~ WUGK------h-%$%$%$%$%  K  @%>KC%C%C%C%C%B4C%AFAFAFAF\K K<5p*%W" ~ |*&Rq-HKt(k(?DI%%%%%%/?R.1%%D#6)777779771+87777797? d -2 222&22!2"222222#2#"k<a2(P+#NN&:s<i)U8(+4A!2+LG!V> < >A2*iiFEN 5(5(2*5+5+5+5+5+5+5+5+5+I(/ki74+8777779771+877777971;U>>;Z<>UU:GUUUU>U>)K?F.>i!>:: :(::0::: :^:2::":,:%::-::::I:0:K:>:8: : :O::::1:/:::::,:;::/:J:J303t-0U0m-m:St-s87B%%*W%W%W%W%W%W%W%oK<*ki;N TqtxT8 ~1BSax~     " & 0 : B D Q p y !!"!&!i!o!!!!!""""""""+"H"`"e"$%%%%&.'''" 1AR`x}     & 0 9 B D Q p t !!"!&!`!l!!!!!""""""""+"H"`"d"$%%%%&.''' sgQM:B.|vTߤߢ߂߀qkZ jkۑہkh &%ٻ!$GM   !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`ardeixpkvj,)s-.gw!$#*l|cn(+"m}b5HIyqz0X^v Pd:X&8L`@j&BRl"^p ,<N\j ( T v & 2 d  N r  B N . h Z 8R6Jj6pHz$Ft6b@Z >\~ LD:n$6Jb(P| Z$>j R .P~  B V l !!>!\!!"""2"F"x"""#J#X####$&$B$$$$%%B%Z%%%&&@&|&&'''6'Z''''("(N(r((()))*)<)N)b)x)))))*****H*|******++F+f++++, ,F,T,j,x,,,,--*-L-|-..B..//l///0$0\0001:1:1b1v11122@2\2223323\3t3334*4Z4Z44455@5b55556 66F6b66667 7B7d7x777778 8T888899,9\999:::`::::;;$;X;;; > >8>F>X>h>>>???(?b?p?~????@2@j@@A@AAAAB2B@B\BzBBC4ChCCCCCD DD*Db\anp4/Q[kS\QY l > W]dY%$#&I$%ui vH/G ^HJo jk _;"GfEGn + /</1!%264&"462#"264&"462#"%#3)<((:4/)0-".TaoK?V/ SISbaOTL{k\C+9#6&3$- ,(% 462#'&%&<&-),O'' 0X=(670DD!>>=X ('654'7 DDa=>Q7''7'75wyNIPKJLywł(V(f6ih6e(V)4/ 3533##5#4ccS_A[746325>7#"&A0#(3e>#5 !+I ,:0_i;>&*-GX%!5!GgC6462"C/D00D)D00D/ #k]1->32764'&#"7632#"'.$@>&--&>@$.w:GG::GGD~;00::009$WjjWWjj/!##5>73/vD\ hRE4!'&54632!!>?654&#"t}jh|}~7 A+FRkS947: X}vV|MN!)jW3C4F+:C5'7!5!#"&'732654&#"7°NtoluI69BE.'&YidjYX|wV8F@.47!< 7533##=!mmv̎xpjj ?32654&#"'!!632#"& qH74GH5D(qPc(+Qc{nf5DA59?-)Gi-td^s.'&#"632#"&546323264&""0?\y2sbzhxšXK35IIjIwbq^Mx~96CBnBB#>?!5-N:5|:HEi,eo^ey\i*  +>54&"264&#""&5467.54620;;`::09AA98AA8mC5.;Ā;.4Dz5)&66&)59T::T9ejR6WS0QffQ/TV6Rj%"?3267#"&4632#"&4&#"3267!/EdnS8\hm(VDJ23IH43Ibn^!*w4DC57BCF 74632#"&4632#"&G/"!00!"//"!00!"/J"//"!//s"//"!//Fc746325>7#"&4632#"&G.!&0`;"2 (/"!00!"/E+8-Zd8;$(w"//"!//#!&75% #.^oo>!5!!5!%%W^_!!&5-5Z0R^np!'%#&54?654&#"'&5462462#"'dQ./845<qxzd+2y+<++ \;!"5*;D.RvRiG#<<,,<+*3?%"&'#"&546327332654&#"327#"&54632'4&#"326R&4?"BVtR!9 X5"(?xmT-)?㤙u'$1<&'.;!!`Lb0&jIl@=&.ҩܻo(-U5+5T  !'!#3 3:CBlز;CU732#!32654&+3264&+Udt:/9Fzbwm4<=6jz6A=6~jU7Q\>Vn6-.57^9*"&54632.#"3267ԑqhU_aSlnʧ̂d&EVzwZB$cU732654&+#32~b~bn}vwžU  )!!!!! J >pmU 3#!!!!x qo*!#'#"&54>32.#"3267#5!a pOg^{qlP_b`e[Z,=ɩpUz^+@T|{e:iU !#!#3!3yxxMy/%U3#3zz75732653#"&u<108x|ch{.B<<=6a}U !#33 ^xx1"3gTtU)3!CxEUa !###33awhu U !##33}xBx *264&"4>2"&ghhVVVVU>32654&+##!2}9AA9}xe}};23<z^_y*64>2'#"&327'7654&"*gh\TQWTe_a;/uRv1VVpf^E_1VFCayUC !##!232654&+XydzVJ7CC7{\Ll;12;"/&.#"#"&'732654&/.54632'lD@5ESf\dt} pTH>C2-dSacqx")D<*InLXW 32#&5#"&726=-QB}$..,4jpVjel0fJ[6CA&>K !)1'B]fP0/MW;C 7%K73#3>32"'$4&#"32qrR5jw}.H;9JJ9:*oqMmQQGFT%"3267#"&54632.8NO93= fsYkj[sh 9QFGR7#%A^op^B&&5% 732654&"#&5#"&54632H;9HFtJtoL1he:GFUVFERS1(#!*ok*&%3.#"#"&54632!32=94@bsTh`p~M6^).>ACWwpt7HM"3###5354632&#+qquUU^L)q!)@e~eCQ^ c(3 &732=#"&5463253#"&72654&#"(kC1J2b~ck%pz^8EF78GF.;3(gcG>GlfK?>KK>?KK#3632#4&#"tt/\V\t04.5=lU 1;>93#3&4632#"ss, ,, >-, ,3 3#"'5324632"KtNC,<, ,->(EW `>-->,K #'#37̎32632#4&#"#4&#"soQ+1N3kHdp//-8r//.7>$(,*V^[)-7>.)-7=/K#3>32#4&#"tqM,VZt0405A('lU 1;A%62654&"2#"&46rOOrOnnmYRIHQQJKB7#3>32#"&'%4&#"26spR6ix~g2NH;:IItIB!,ޑ&DSSDETT%B#5#"&5463253264&"r'hgh:LoIrJItFnl.AVVRKh&#"#3>32htqL0vN'- )?32654/.54632.#"#". e4,"'9H?DhK0J)b++(1JDHaW2O-#0 * L4@]-*-!) N7=_//D|3#327#"&=#5326=ee -DNZ%&|g ` MDg*"IF%#"&5332653#&M,Uct0215to6 $nT31><1 r,- #3tƀ~\ ! 33# #3_xsavtyvw|cQ^ 37'373#' cjq52OI;#33|uЃ{4& )5#5!!refb-gh"526=46;#";#"&=4&-/:aZ.,6006,.Za:d/1__Y.31@ B03-Y__2/Ug#3bbg@""+5326=467.=4&+532@/:aZ.,6006,.Za:ud/2__Y-30B @13.Y__1/#v%'&#"'632327#"/4(B9f50.8"B8f265d55cH+ #'462"& +<,,<+++<+*-!#5.46753&'>7'E[SjjS[EYd8(bZE+%PZZX R4#= -#5R 1D >;)3&54632.#"3#3265#!5>54'#C@tZjdn4,'6S*.l_N1:bp54PnnI141+'@_c/6( QhhG+ '!#747'76327'#"''7&6264&"P!JHJ3;:0IGF#"EFG1<=3IGI cBdAAd>4KGLJGH5@?5FFHJFJ1rfBBfB@%##5#535#533733#3touTJTTJUf3#3#UbbbbqqL,/9%#"&'732654/.5467&546324&#"'654/!R|U_lm2/(22gCI/!R|U^mn2.(33fCJf&4e'*B9WSjfU49+&05"M>*B8XSihR48-$/5#M6)16(/ 0i 4632#"&7462"& %&&%%6&&6%q&&%%&&%%* ,3264&#"6  "3267#"&54632.|xwwx0М,>>-(/ P[FTrqSHYR-B2٘?78@*3JuWXsJ4);'m&46?654&"'>32#&5#"&726=;:-V :#QN@LHR!E5A",R+,5  .CI9' 4='+ %d %#'73#'73ooTood- %#5!5! eގa-GX%!5!Gg* (66  3264&#"'##32'3264&+*0ЄxwwxLV:O-%U1!!12٘J6)?4A4!5!4AZT^264&"462#"s)<((<1 r,-;t##"&5463!##U_Rucna_hqR_m]-Ax 4632"&A. !..B-* .. !,,! '73#"&'73254&#"u#0N'+6=>%>)#&,i+K<.%'52# +W#5#5>73[Y(4RW<+>' 264&"2"&4&33L34)fffx5`440/6gggd %#7'3#7'3Qooood2#5#5>735733##=#3[Y(4Rc>>Zgih<+XIGGI}}2 +#5#5>73#3&546323!54?654&#"[Y(4R$ihXTJ@?JKGW<)<+xX3FE2B-+ L d4$  48%(,72654&#"'7#5!#"&5733##=#34P&6"# [^.9SD?Oc>>Zgih!=EKHE:/4G@XIGGI}}'332654'"&54?65&4632#"cP./846:rwzc+1*++]9!"6*:D0 R~wQjF#?{<++<+ s !'!#3 3'3:CBl؛g;C|| s !'!#3 3#7:CBlUmf;CR|| s !'!#3 3#73#':CBlطktwnK;C||@ y %!'!#3 3#"/&#"#5463232=:CBl88+#&  K8,$&  ;CU59 59!  x462"$462"'!#3 3&8''8 %8''8\CBl8''8&&8''8& ;C u 32654&"7#'!#&5462al؁***CB,LjMC8%f%;5II)5!#!!!!!%3Js >wӴpmH*!/'7.54632.#"3267#"&'73254&#"r#ԑqhU_aSlnm+6=>%>)#&,i+1 Ɲ̂d&EVzwZB$Z #.%'52# U s'3!!!!!!gJ >|| pmU s#7!!!!!!ڎmfJ >s||pmU s#73#'!!!!!!ktwnKJ >||@pmU x462"6462"!!!!!!}&8''8&8&&8J >8''8&&8''8& pms3#3/3zzog2||USs3#37#7zzmfŮ||Ms 3#3'#73#'zzktwnK2||@(t462"64632#"#3$4%%4$$$zz4%%4%%4%%4%  !##5332%32654&+3#]RR~b~b?])n}vw]Uy$#"/&#"#5463232=##33&8+#&  K8,$&  }xBxv59 59!  *s '3264&"4>2"&ag،ghh||VVVV*s #7264&"4>2"&Nmfghhs||iVVVV*s#73#'264&"4>2"&HktwnKghh||@VVVV*z".#"/&#"#5463232=264&"4>2"&98+#&  K8,$&  ghhw59 59! eVVVV*x#462"$462"264&"4>2"&&8''8&8''8ghh8''8&&8''8&VVVV&3 %''7'77EEE3EEE*%4>327#"''7&7&#"4'326*g_bXGNHbh_eTDPGb{1/5>a04=acpV2[<\gpV0X;[gcAy^DyM^s'3"&53326533g*wMDELx|||9JQPK2|M^s#7"&5332653mf]wMDELxs||~|9JQPK2|M^s#73#'"&5332653 ktwnKvwMDELx||@|9JQPK2|M^x 462"6462""&5332653&8&&8&8&&8wMDELx8''8&&8''8&|9JQPK2| ts 33##7xmf,)gs||U>732654&+##332}9AA9}xxd;24<Ņ{zK31"&'732654/.54?654&"#4632}!032#&5#"&726='3-QB}$..,4jpVjel0fJ[6CA&X>K !)1'B]fP0/MW;C 7%ؔ-'+746?654&#"'>32#&5#"&726=#7-QB}$..,4jpVjel0fJ[6CA&߃_Y>K !)1'B]fP0/MW;C 7%l-'.746?654&#"'>32#&5#"&726=#73#'-QB}$..,4jpVjel0fJ[6CA&akylcF>K !)1'B]fP0/MW;C 7%ُM-'?746?654&#"'>32#&5#"&726='46323253#"/&#"-QB}$..,4jpVjel0fJ[6CA&a9.!% L9-!& >K !)1'B]fP0/MW;C 7%8;,8=+-'3=746?654&#"'>32#&5#"&726=4632#"&7462"&-QB}$..,4jpVjel0fJ[6CA&d%&&%%6&&6%>K !)1'B]fP0/MW;C 7%%&&%%&&%%-'2=746?654&#"'>32#&5#"&726=#"&546324&#"326-QB}$..,4jpVjel0fJ[6CA&C/.CC./>K !)1'B]fP0/MW;C 7%k^?@./@o&-B*4;%#"&'#"&546?654&#"'>32632!3226=%3.#"bxR;f"?}S`QB%3.-:fySr6Dao}M7]/3JA(>94A BX2-_V=>K  +2$B]GGu8G A% /'7.54632.#"3267#"&'73254&#"#!^zj[sh 938NO93= f]H+6=>%>)#&,j+3 ep^B&&5QFGR7#%9Y $.%'52# %3.#"#"&54632!32'3=94@bsTh`p~M6^X).>ACWwpt7Hϔ% #73.#"#"&54632!32_Y=94@bsTh`p~M6^q.>ACWwpt7H% "#73#'3.#"#"&54632!32akylcF|=94@bsTh`p~M6^%M.>ACWwpt7H% 14632#"&7462"&3.#"#"&54632!32s%&&%%6&&6%=94@bsTh`p~M6^q&&%%&&%%.>ACWwpt7H3#3/3ssaX=K3#7#33_YssH- #73#'#3>akylcF:ss%M462"6462"#3 #4$$4#4$$4ssW4$$4##4$$4#%$#"&54632&''7&'772654&#"N{vm^Y&<\,E$iRp9NN98PPu#{hl,J7=H*Y;3KABJKKK+#3>32#4&#"/46323253#"/&#"tqM,VZt0405:9.!% L9-!& A('lU 1;A8;,8=+%62654&"2#"&467'3rOOrOnnmCXYRIHQQJ.% #72654&"2#"&46ʃ_YYrOOrOnnmRIHQQJ%#73#'2654&"2#"&46akylcF:rOOrOnnm%MRIHQQJ%*62654&"2#"&46/46323253#"/&#"rOOrOnnm69.!% L9-!& YRIHQQJ68;,8=+% (4632#"&7462"&2654&"2#"&46|%&&%%6&&6%\rOOrOnnmq&&%%&&%%RIHQQJ4' 64632#"4632#"5!+**++**R:**:+:++:+cc%#27#"''7&5467&#"2654'!G:4>4>nF82?2?9O9O!A3AHfp ?3?Gip1$QRI.$ F%#"&5332653#&'3M,Uct0215toX6 $nT31><1 r,-F#7#"&5332653#&_Y^M,Uct0215to~ $nT31><1 r,-F#73#'#"&5332653#&akylcFjM,Uct0215to%M $nT31><1 r,-F ,4632#"&7462"&#"&5332653#&z%&&%%6&&6%FM,Uct0215toq&&%%&&%% $nT31><1 r,-; #33'#7|uЃ{f_Y4єKB7#3>32#"&'%4&#"26stO3ix~g2NH;:IItI(ޑ&DSSDETT;#33%4632#"&7462"&|uЃ{W%&&%%6&&6%4&&%%&&%%K3#3ss# )5737!#C^^xE*d*PGdG- 3#5737tWWtZZ'e'g(d)*6)5#".4>325!!!!!264&"6J]_gg_\ >oQ`VVaRpml%%,2>32!327#"'#"&462654&"%3.#"!yI!_4p~M6^bsTwIHzm4rOOrO=94@W(/t7HUCWXXcRIHQQ}.>A"/s-373#.#"#"&'732654&/.54632mHKlw4lD@5ESf\dt} pTH>C2-dSacqxsAA|")D<*InLXW 32&#"3##"'532xIg{b?+'I zQc?,)!IlceLL eT@coLL e%n#73#'akylcF%M%n373#bFFbj|MMA4!5!4AZ#S "&'32673GQR#F$RQ#V=$%=V' 462"&*<**<*n**** #"&546324&#"32C/.CC./^?@./@&&$"&5473273DfDR9/W-'8J*g'46323253#"/&#"9.!% L9-!& ,8;,8=+$b#7!#7^L4kL@13 !W;@/-"!53.546 3!5>54䴈pKнQrrQKpfyfZym gg myZfKB%#"'#332653#&M,&tt0215to6 $ 1><1 r,-(F%#"&5###5!#327F#ACsSP3  J;}dd0?AW%!5!AeIW%!5!Ne%#"&5467632*#-Y7/ &'2)U[73 %%46325>7#"&%* $/\80 &(4)X\75!&%n746325>7#"&%* $/\80&A(3*W]85"%%w##"&5467632#"&5467632w*#-Z6/ %*#-Y7/ &'2)UZ74 %'2)U[74 %%v#46325>7#"&746325>7#"&%)$-Z7 .%*#-Y7 -%'2)UZ63!$'2)UZ63!$%rv#746325>7#"&746325>7#"&%)$-Z7 .%*#-Y7 -%?'2)UZ63!$'2)UZ63!$v 7##53533#c||c||4^^/735#53533#3##5#/|||c||||c|]]]?W 462"&?zz{{&WzzWUzzRL %"&5462"&5462#"&54632L*>++>**>++>*++++A++++++++++++1 !%1E32654&#"462#"&2654&#"#332654&#"4632632#"'#"&)(()\`a`DC`)>((*ihW))))aCH,,HCbaDH,,IC`!))! )*C]]CD]] *)! )*!))!**C]77]CD]77]d%#'73oodd 7#7'3opd##,7''7'757''7'75!7''7'75jkE@GBBDkijkE@GBBDkijkE@GBBDkir#L#[/]\/Z#L$syr#L#[/]\/Z#L$sr#L#[/]\/Z#L$s63#3iih)7''7'757''7'75jkE@GBBDkiSjkE@GBBDkir#L#[/]\/Z#L$s{r#L#[/]\/Z#L$s7Px254"4>32#".\#A,-A#"B-;Krrss%@9!"9@$#?:">ZgXIGGI}}7P]732654&#"'73#632#"&7O% !"J/֞/9EOF8PKI@78K<7Ok&#"632#"&54632264&#"[#-A 9:HVBA[tX1$2#$D /-%@tIYOau227Wf#>?#5f#3%`%$ M%Ej?5cA2 L9Og *2654&"2654&""&5467.5462.0<: =FQ'  M~L 'P2c=0/ -.;;.- .1>7Oj73267#"&54632#"64&#"32J#0B:8KUC@[nY4###`F -/%B8:IVMgt227x-7254"4>32#".\#A,-A#"B-;Knrrss%@9!"9@$#?:"73[Y(4RZ<+8Q7&546323!54?654&#"TJ@?JKGW<)3FE2B-+ L d4$  7d?2654&#"'7#5!#"&7P&6"# [^.9SD?O !=EKHE:/4G@7 5733##=7c>>ZgXIGGI}}7]?32654&#"'73#632#"&7O% !"J/֞/9EOF8PKI@78K<7k&#"632#"&54632264&#"[#-A 9:HVBA[tX1$2#$ D /-%@tIYOau227f#>?#5f#3%`%$ M%Ej?5cA2 L9g *62654&"2654&""&5467.5462.0<: =FQ'  M~L 'Pc=0/ -.;;.- .1>7j73267#"&54632#"64&#"32J#0B:8KUC@[nY4###PF -/%B8:IVMgt22?(3&547#53>2&#"!!3#327#"&'#?MM^#C.0M54䴈pKнQrrQKpfyfZym gg myZf2 #3!53#5ÍohHhhh2 %!53#5!###YwhhhhhHH2 %!53#5!###3GwhhhhhHHH2 %!53#5!#3#\pXzhhhhhHH{2 #3!53#5#mDjbzhHhhh2 %!5!#5!# 3#^mŔ{hhhhhHH{2 %!5!#5!### 3#CmvƔ{hhhhhHHH{2 %!53#5!#3!3!3#BnYwhhhhhHHHH{2 %!53#5!#%'#373xhբSW_`b[hhhhhHɁ2 #3!537'#573io^kg_`b\hhhhhɁ2^ !53#5!#35^{{whhhH2%#5#"&5463253#.#"3267uCxwAuu\RX{zZV\@OK==QyqnyY92 #!53#532654&+}LUoqWHhhshjs2%!53#5!!#3!53#yyy &||[Zhhhh+hHhhv%V7'7!!VНe#m ###ץd ND5!5!54$dc% 33eiR< !<:yGzzG{!''c:{G{G2)777yG{zG|()bzG<|GI;532#!'7!2654&#fdj:JK<-dz\Z|О@14>+'7!#! d6ϝ#3#!55!d7ϝ3!'7!He;`ɝϝN5!3!;e`ϝ7-:5!3'3:<Ϝad<< '7!!5!5!50  VОeϝd)<""'632#"&54632&"3265&LC(Sl)OWA*fcr3xHNQ7NP1i!\.3OY~ri~9M<;ExR?13 !W;@/UY!#!#!YvxX(# 35-5!! !(akkoo4T%!5!=` #k?nAx 4632"&A. !..B-* .. !,,!j##33~jx|+p'%#"&4632632#""327.2654&#"\YOiiObU[ZPghPc%..%6?#3H&--&3$!6eefggfe.D-M*(-"#-&)((8G46;#"+5326m]P-&#ZP1'$0P]g%"Q]g'!i&'#"/&#"'63232#"/&'"'63232>:a45/3%@;^19/! 0$>;^65/6%@;_18/"44\.6]5\ .6]>0%!#7#537#5!733#3CnCTFBmBQFגbb_f^__^f</% 7!!5% <Z$`acY[c>/% 7!!5-5>ZZ$܏`iabZZdAx 4632"&A. !..B-* .. !,,* $3264&#"6  3264&+##32|xwwx0s=""=LLV:OOB2٘4 MlLi)3!i;i))!!)@`F !,E !% ,_R . 7'3#ttbc( 66  264&"(4s4⠠( 66  (44* #"&6324&'6%7567'5י֘t}`_|>N:8P2f׳:@B6 99 7I'_ADR  ' 7  FHG!G!GG+  3264&#"46  &#5#5>73}xwwx0[Y(4Rۘ٘<++  23264&#"46  &%&546323!54?654&#"}xwwx08TJ@?JKGW<)ۘ٘3FE2B-+ L d4$  +  .3264&#"46  &?2654&#"'7#5!#"&}xwwx0P&6"# [^.9SD?Oۘ٘E!=EKHE:/4G@+  !3264&#"46  &75733##=}xwwx0׾c>>Zgۘ٘/XIGGI}}+  03264&#"46  &?32654&#"'73#632#"&}xwwx0O% !"J/֞/9EOF8Pۘ٘=KI@78K<+  (13264&#"46  &&#"632#"&54632264&#"}xwwx0$-A 9:HVBA[tX1$2#$ۘ٘GD /-%@tIYOau22+  #3264&#"46  &#>?#5}xwwx0#3%`%$ ۘ٘IM%Ej?5cA2 L+  '>3264&#"46  &$2654&"2654&""&5467.5462}xwwx0X.0<: =FQ'  M~L 'Pۘ٘پc=0/ -.;;.- .1>+  )33264&#"46  &73267#"&54632#"64&#"32}xwwx0#0B:8KUC@[nY4###ۘ٘F -/%B8:IVMgt22'3!!3ϝ<)d(+7'3>32&#"3#"'73265#7Ǐؙ_R->Epؙ^S->Fpz,Z"p,Z"p/7##"&54632&#"265ǎؙؚ[N*;Cpbؙ([➞q'"3#####5354632&#"354632&c,qquuUU^L),^L)q"(@e~~eCQ^ c"(@CQ^ c2!2&#"!####535464632"&),DruUU^, ,->, c"(@~eCQ^F ,->,,"353####5354632&#,ssuUU^L)q"(@,~eCQ^ cs1462"'"!######5354632&#"354632&,>-->,FsuuUU^L)+^L)t>-->,)"(@~~eCQ^ c!)@CQ^ ca+"353######5354632&#"354632&c,ssuuUU^L),^L)q"(@,~~eCQ^ c"(@CQ^ c7x254"4>32#".\#A,-A#"B-;Krrss%@9!"9@$#?:"73[Y(4R<+8Q&546323!54?654&#"TJ@?JKGW<)3FE2B-+ L d4$  7d72654&#"'7#5!#"&7P&6"# [^.9SD?O!=EKHE:/4G@7 5733##=7c>>ZgaXIGGI}}7]732654&#"'73#632#"&7O% !"J/֞/9EOF8PzKI@78K<7k&#"632#"&54632264&#"[#-A 9:HVBA[tX1$2#$~D /-%@tIYOau227f#>?#5f#3%`%$ M%Ej?5cA2 L9g *2654&"2654&""&5467.5462.0<: =FQ'  M~L 'Pc=0/ -.;;.- .1>7j73267#"&54632#"64&#"32J#0B:8KUC@[nY4###"F -/%B8:IVMgt227xv7254"4>32#".\#A,-A#"B-;Krrss%@9!"9@$#?:"73[Y(4R<+8Qv7&546323!54?654&#"TJ@?JKGW<)3FE2B-+ L d4$  7do?2654&#"'7#5!#"&7P&6"# [^.9SD?Of!=EKHE:/4G@7n 75733##=7c>>ZgGXIGGI}}7]n?32654&#"'73#632#"&7O% !"J/֞/9EOF8P`KI@78K<7kw&#"632#"&54632264&#"[#-A 9:HVBA[tX1$2#$eD /-%@tIYOau227fn#>?#5f#3%`%$ nM%Ej?5cA2 L9gv *62654&"2654&""&5467.5462.0<: =FQ'  M~L 'Pc=0/ -.;;.- .1>7jv?3267#"&54632#"64&#"32J#0B:8KUC@[nY4### F -/%B8:IVMgt22;'m&46?654&"'>32#&5#"&726=;:-V :#QN@LHR!E5A",R+,5  .CI9' 4='+ %U),#3>32#"'64&"32XY 8%JTXIH1L12%&1df3S^45./6>'"3267#"&54632.&34&!)P T@LhfLAR Q'@5/.5#/CgNPgC0#>),#&5#"&5463253264&"WDI^]HK0'%10L,C 0gNLg,\78\5;'3.#"#"&54632#32(&"+LR#732=#"&5463253#"&7264&#">Q-!\FDZYEKVX[C[%./$%/.%a._HFb0*MfH1R11R1U1,#362#54#"[[|BZB#'MK !! U1, #'#37o^'ZZzdž*\ڃU1,#3[[1U1`#3>32632#54&#"#54&"ZV9K$J4HX#Z>#1X+::B@$(%(U1#3632#54#"[XF<@ZB"X,5M' 264&"2"&4&33L34)fffx5`440/6gggU7#3>32#"'74&"26ZW 9%IUYHG2L11L2,dONf+-66-.66>%#5#"&5463253264&"YGI^[I)4 W1L11L,gNLg*~\77\6K1 &#"#3632 [[XH[bX47?'R$732654/.54632&#"#"&?N!&//0I6AAL3 -19E?DG 7%.B>%1 9),CC., 3#327#"&=#5326=FF*  29?gP(K81P1>(x&5#"&=3326=3#C1Y !57#5!3Y妢1OOL 13#3##7##7#537#53733737#\o]p#b#n#b#UhVi#b#n#nZ[[Z("(.#5.'75'.546753&'54'>UZ_ln2/PXiQZPW j < U[bWH"&G#$mg sG.F \GIl hi ^9!FdDEl > .;-%"*532654&#"462"3264&#"462":! !RRrRRr! sRrRRr_]6!!!!RrOO9:O4!!4 srPPrP0/  3533##5#0ccS_E746325>7#"&6(-:sF(< &0S$2B6lw CG+/z6462"6L77L/L77L6 &32>54.#"47632 '&.$39,$3x4ED44DD4D-;*&,E6$/CM*+E5%OggOOffO^ 73#5>733!^CY hNhTRD5h2'&54632!!>?654&#"t}jh|}~7 A+FRkS947: X}vV|MN!)jW3C4F+:C5'7!5!#"&'732654&#"7°NtoluI69BE.'&YidjYX|wV8F@.47"/ 7533##="aavʎxpjj,?32654&#"'!!632#"&,qH74GH5D(qPc(+Qc{nf5DA59?-)Gi-td^s%&#">32#"&546323264&" "4=[xT9a{gm›XK24HHhIwbp^!,x~95DBnBB #>?!5|54&"264&#""&5467.54620;;`::09AA98AA8mC5.;Ā;.4Dz5)&66&)59T::T9ejR6WS0QffQ/TV6Rj ?3267#"&4632#"4&"326,!/EdnU5\gk^$IdIG42Ibn^!*w4CB57ABt 4632#"&4632#"&3$%44%$33$%44%$3%44%$44%44%$44Uz746325>7#"&4632#"&2%*6!58%7 #-3$%44%$3O!.=24T2>A(,q%44%$44I!&75% I.^oo0 !5!!5! %%W^_K!&5-5Z0R^np>!#5.46753&'>7'V[SjjS[EYd8(bZE+%PZZX R4#= -#5R 1D 8+3&546324&#"3#3265#!5>54'#=@qZ7S-o1+'3S*.l_N2:cp72Pn"84KGLJGH5@?5FFHJFJ1rfBBfB -%##5#535#533733#3tinTJTTJO3/9%#"&'732654/.5467&546324&#"'654/ Q{T^ll2/(12fCH/!R{U^km2-(33eCIe&4d'*A:USheT39+%04"M=*A8WSggQ38-#/4"M5(15'/%#5!5!eގa:/ 3533##5#!!:cc9^`13  %''7'77ħEEE3EEE/'   462"5!462"+:++:+:++::**:,bb:++:+[7#537>32&#"3##"'532Ig{b?+'I zQc?,)!IlceLL eT@coLL e& &.65264&"462#"463262#"'#"&6"2646"264-,,eIdHH23)H23#%dII24#"42H,,,,n_^,..fdGGdF3F%%GdF%%Fg....,.)3&547#53>32&#"3#3#327#"&'#,FFW#hB1$3:a45/3%@;_27/"3#>:a36/"4$@;]29/"34\.6]5\ .6]/0 %!#7#537#5!733#3 DmD\G$BmBJGђbb_f^__^fJ/% 7!!5% JZ$`acY[cJ/% 7!!5-5JZZ$܏`iabZZd03( 670DQPPQD[ :\\:( '>4&'7DQPPQDg:\\:-#G!5!G#gU+)#3#3+ttdZ')#53#53ttdZZ-h)"526=46;#";#"&=4&-/:aZ.,6006,.Za:0d/2v__Y.30B @13-Y__u1/@)""+5326=467.=4&+532@/:aZ.,6006,.Za:d/1u__Y-31@ B03.Y__v2/S #'462"& +<,,<+++<+* %#'73#'73ooToo-.G!5!G.g %#7'3#7'3Qoooo'332654'"&54?65&4632#"cP./846:rwzc+1*++]9!"6*:D0 R~wQjF#?{<++<+8$:!5!:$eB$!5!N$e%#'73oo 7#7'3op*"&54632.#"3267!5!Փ~siSbdRq ̦̂b#DT}{UDj % 73264&#"#"&5463253#&H<9HG:;IK3ig:I qoGXYTT%.pl0@r'2% "73264&#"#"&5463253#&'3H<9HG:;IK3ig:I qoXGXYTT%.pl0@r'2%"#73264&#"#"&5463253#&_YH<9HG:;IK3ig:I qo>GXYTT%.pl0@r'2%%#73#'3264&#"#"&5463253#&akylcFH<9HG:;IK3ig:I qo%MGXYTT%.pl0@r'2% 673264&#"#"&5463253#&'46323253#"/&#"H<9HG:;IK3ig:I qo9.!% L9-!& GXYTT%.pl0@r'28;,8=+%  44632#"&7462"&3264&#"#"&5463253#&x%&&%%6&&6%H<9HG:;IK3ig:I qoq&&%%&&%%GXYTT%.pl0@r'2% )473264&#"#"&5463253#&#"&546324&#"326H<9HG:;IK3ig:I qoC/.CC./GXYTT%.pl0@r'2^?@./@o&Ka #462"tu.D//DmD//D.<-%5!##"&5467.54632.#";"32675O{wU<0>{]npu84(:@$ 8XKEAMggiw]HdP7OkpS3:2'-1g?A0FKB* 73#5>733!*CY hUhTRD5hP#462"&264&"'##532'3254+opp, '"3#####5354632&#"354632&c,qquuUU^L),^L)q"(@e~~eCQ^ c"(@CQ^ cs1462"'"!######5354632&#"354632&,>-->,FsuuUU^L)+^L)t>-->,)"(@~~eCQ^ c!)@CQ^ ca+"353######5354632&#"354632&c,ssuuUU^L),^L)q"(@,~~eCQ^ c"(@CQ^ c2!2&#"!####535464632"&),DruUU^, ,->, c"(@~eCQ^F ,->,,"353####5354632&#,ssuUU^L)q"(@,~eCQ^ c4( 4632"74632#"&#$#4x#$$#W4$$$=$$4#$:s462"6462"#4%%4$4$$44$$4$$4$$4$ s'3g||x462"6462"&8''8%8''88''8&&8''8&@e!5!@,]s#7mfs||s#73#'ktwnK||@s373#mHKlwsAA|Yv "&'32673T]"@"]N6 6 462"&+<++<+:**** "&4624&"2 IdHHd((dEEdE**ay#"/&#"#5463232=a8+#&  K8,$&  v59 59! ds#7!#7_O8kPEs||||#7HU4632#5267#"&',O2)!`"+&>:,$<z!O!u   #f D/ Mq x &  B  $q 2 $ B1    * F  ^Y    &% aGenerated in 2013 by FontLab Studio. Copyright info pending.Generated in 2013 by FontLab Studio. Copyright info pending.Circular Std MediumCircular Std MediumRegularRegularLineto: Circular Std-Medium: 2013Lineto: Circular Std-Medium: 2013CircularStd-MediumCircularStd-MediumVersion 1.001; build 0002Version 1.001; build 0002CircularStd-MediumCircularStd-MediumCircular is a trademark of LinetoCircular is a trademark of LinetoLinetoLinetoLaurenz BrunnerLaurenz Brunnerhttp://www.lineto.comhttp://www.lineto.comhttp://www.lineto.com/The+Designershttp://www.lineto.com/The+DesignersLawful use of the fonts or the data contained within the font files excludes modifying, reassembling, renaming, storing on publicly available servers, redistibutring and selling. Any unlawful use of this typographic software will be prosecuted. For additional information see http://www.lineto.com/Lineto.com/Font+LicensingLawful use of the fonts or the data contained within the font files excludes modifying, reassembling, renaming, storing on publicly available servers, redistibutring and selling. Any unlawful use of this typographic software will be prosecuted. For additional information see http://www.lineto.com/Lineto.com/Font+Licensinghttp://www.lineto.com/Lineto.com/Font+Licensinghttp://www.lineto.com/Lineto.com/Font+LicensingCircular StdCircular StdMediumMediumCircular Std MediumCircular Std MediumRegularRegularP  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghjikmlnoqprsutvwxzy{}|~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~uni000Duni00A0uni00ADuni02C9uni0394uni03A9uni03BCuni2007uni2008uni200Buni2042uni2051uni2070uni2074uni2075uni2076uni2077uni2078uni2079uni2080uni2081uni2082uni2083uni2084uni2085uni2086uni2087uni2088uni2089Eurouni2113uni2160uni2161uni2162uni2163uni2164uni2165uni2166uni2167uni2168uni2169uni216Cuni216Duni216Euni216F arrowleftarrowup arrowright arrowdownuni2196uni2197uni2198uni2199uni21A9uni21B0uni21B1uni21B2uni21B3uni21B4uni21C6uni2215uni2219dotmathuni24C5 filledboxH22073triagupuni25B3circleH18533uni262Euni2713uni2715uni2780uni2781uni2782uni2783uni2784uni2785uni2786uni2787uni2788uniE020uni21B5uniE022uniFB00uniFB03uniFB04uniFEFF zero.numrone.numrtwo.numr three.numr four.numr five.numrsix.numr seven.numr eight.numr nine.numr zero.dnomone.dnomtwo.dnom three.dnom four.dnom five.dnomsix.dnom seven.dnom eight.dnom nine.dnom space.fraca.ordnb.ordnc.ordnd.ordne.ordnf.ordng.ordnh.ordni.ordnj.ordnk.ordnl.ordnm.ordnn.ordno.ordnp.ordnq.ordnr.ordns.ordnt.ordnu.ordnv.ordnw.ordnx.ordny.ordnz.ordnspace.tf numbersign.tf dollar.tf percent.tfplus.tfcomma.tf period.tfzero.tfone.tftwo.tfthree.tffour.tffive.tfsix.tfseven.tfeight.tfnine.tfcolon.tf semicolon.tfless.tfequal.tf greater.tfcent.tf sterling.tf currency.tfyen.tf section.tf logicalnot.tf plusminus.tf multiply.tf divide.tf florin.tf uni2007.tf uni2008.tfperthousand.tfEuro.tfminus.tfapproxequal.tf notequal.tf lessequal.tfgreaterequal.tfparenleft.caseparenright.case hyphen.casebracketleft.casebracketright.casebraceleft.casebraceright.caseexclamdown.caseguillemotleft.case uni00AD.caseguillemotright.casequestiondown.case endash.case emdash.caseguilsinglleft.caseguilsinglright.caseG.ss01a.ss02 agrave.ss02 aacute.ss02acircumflex.ss02 atilde.ss02adieresis.ss02 aring.ss02r.ss03ampersand.ss04one.ss05registered.ss06 caron.alt commaaccent commaturnf_ff_f_if_f_lf_if_ldieresis.narrowdieresis.uc.narrowgrave.uc dieresis.uc macron.ucacute.uc circumflex.uccaron.ucbreve.uc dotaccent.ucring.uctilde.uchungarumlaut.uc caron.alt.ucundercommaaccent .:;CD DFLTlatnB  aaltcaltcasednomfracliganaltnumrordnsaltsinfss01ss02ss03ss04ss05ss06ss07subssups tnum  !$JRZdlt| $,4<DLT\dl*xJx"*Fdl>X~8^^ r    6 : V Z ^ b f S}~0cdefghijklmnopqrtuvwxyz{S  !*3>@EFGHIJKLMNOPQRSTVWXYZ[\]^`cdefgimnops}%&+,-. &2BP^lza|MWNX{;OYt<PZu=Q[>R\?S]@T^AU_BV`CbsDD UU $"[*4@"[bbd $,4<DLTC B A @ ? > = < ;   {tu MNOPQRSTUVD",",  ("&"("MV *4"MVMV",6@"MVMVMV$.8BL"MVMVMVMV&0:DNX"MVMVMVMVMV(2<FPZd"MVMVMVMVMVMV *4>HR\fp"MVMVMVMVMVMVMV" ,6@JT^hr|"MVMVMVMVMVMVMVMV$ .8BLV`jt~"MVMVMVMVMVMVMVMVMV#W`$"MV#D]b{ X)|}~) !defgins%+,-.& >@^`cmo}6 "(IOILOLII*B "&*.26:>;<=>?@ABC033 *DDhU Pp$aMNOPQRSTUV[&N$WXYZ[\]^_`bcdefghijklmnopqrstuvwxyz{D]  4NDFLTlatncpspkernX ciBnnIrsJxyL||NOPjkqruw|!&(.GGM`bdfillnqs{}}1+.|-!  j~   v        R         % % !((%         < / !m!   <   {Y"<H E KX?_\)&WU 4 !!!,""M##))334499;;??AA BBbYYt[[w__``aa cc#ddeeZggzhhiiTtt`uu]xxDyyI{{A||BN9+6'Jcdefghijklmnopqrs^%%8&&((Q))0++ ,,;--5..-TTVbbccddeeffgg%hh*ii.jj/kk1ll2mm3nn7oo:pp>qqCrrLssPttSuu[vvawwuxxvyyxzzy{{{}}=(FG$O @Rl% %$$%%)&&'))**+,)--.1)2233)4455)66+7788::<<==@@DDEE$FHII JJKK$LL"MM#NO$PQRRSSTTUUVVWW*XXZZ\\]](``kk,mm oopp,}} )))"$"+('&'& 00,68,;C,GK   !  ! |  !"#%)349;?ABY[_`acdeghituxy{|%&()+,-.Tbcdefghijklmnopqrstuvwxyz{}>  X <( <   +!    ~      L   {   "   kkmmoopp}}   0068;C  T(*  T  Q=Q,G G  !!!#""$$2%%M&&4')M**4+,M--3.1M22433M44455M66677788899::9;;<<:==J??@@LBB/DD;EENFH@II>JJ@KKNLLOMM?NONPQPRR@SSPTT@UUPVVBWWCXXDYYZZE[[\\F]]K``Laaoo=2I4MHM458:M;@O@P@ADFNFO4@6B:JK=VWUVWUQ+01.$$-%%&& ))%++,,'--&..$GK>")SRRS4<P 1 >^kmop}0678;<=>?@ABC.)+~&         %!          !      w           ~    b ~   !(!!!!/(!!!%!!!!!!!!!%!!%!! ////( ( 2+ " +  !  (!! +   !               %         O&&''((**+,-- ..//012255 66 77 88 ::<<==DDEEFFGGHHIIJJKKLLMMNNOOPQRSTTUUVV WW!XX"ZZ#\\$]]% "$$ %GGHHIIJJKK{{,.0q8pp"2 ddcddfghijk^ n>lyyysyxxyxyxFY \n]7o(tqo<:+/')v3dbddddd$ehhhhjlllllllyyyyyyxyyyyyz[ZdyfjkLqq}~|}~|tv?@ABCDEOPQRSTUVWX;ooooooooooooosssssa`  !#%&*1469=GHIJK-Mr _uwNrruwdmmmmmmmx5$$&(*258 ::<=DXZZ)\]*,CI`jGKqvդ'͌{S͌mHPK!-CC admin/fonts/CircularStd-Book.ttfnu[pFFTMpjCGDEFY6GPOS1 @TGSUB>8OS/2OBOx`cmap 8^gaspglyf&MLXhead,^6hhea 4$hmtxXUI`loca maxp EX name:v post_s GBqs_< ͌{6͌m+B@FXKX^P! /P{LNTO )A  2P7Zv(2S217F(.7.#77&Fi-Ff2a#)%>#$#D30-E("K)K#QA##:- ZZ-ZEZ'Z-ZZZ$ZZZ"-UZ"-kZQ&P P i j x- Z  " 2QP(L()WB-2P; PPYP2P<(QPE(oP#c6K   (a-Za:#I2QAF,FZ=U{&5-B=-i-5-W#s7A=<#;Pr#F& %2C 7 7R7      -EZEZEZEZZ Z"-"-"-"-"-("-PPPPj PZ7P 2 2 2 2 2 2j2())))P:(2P<(<(<(<(<(77<(6K6K6K6K QP P/ |-(Q&#j x-(##W#j#%#!yo#-;Pg-fAOK((((((-*FZ7C#,-<<<<<<<</2=<<<<<<<A#[-7777#77 7777777-7("j7j7-A2#HU.7R7c.Z7-7F#!-69#QAAAF5-nnEE,#?-?-5-5-5-5-5-5-5-5-5-5-.#8-2\Z</2=<<{<<<<<</2=<<<<<<<2BXCCB^BCXY)FXXXXCXC HCD7C[%C000(004000"0i0500%0(0&0!0-0000J010J0?060!0.P00>070300000+0D0000J0J)7)i- Z a-a7Zi-#n7;A-G(G(G(G(G(G(G(JPA-##\Z&6Wsuo#T8 ~1BSax~     " & 0 : B D Q p y !!"!&!i!o!!!!!""""""""+"H"`"e"$%%%%&.''' 1AR`x}     & 0 9 B D Q p t !!"!&!`!l!!!!!""""""""+"H"`"d"$%%%%&.'''sgQM:B.|vTߤߢ߂߀qkZ jkۑہkh &%ٻ!DGM   !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`ardeixpkvj,)s-.gw!$#*l|cn(+"m}b5HIyqz.Xd|$Pd >^0DX6`~ <Lf|&bt .>R`n 0 ^  . : l   X |  F R 0 l "d"B\>Rr>zP,N|<lXr"Tr&ln"fTh|.V~*NRl @Df   : V | !!!!!*!8!X!x!!""<"P"l""###"#n#|###$$H$d$$$%%6%b%z%%%&2&d&&&'('>'Z'~'''((J(v((()),)>)P)b)t))))))**&*<*P*n*****+++.+p+++,, ,2,l,z,,,,,--:-N-p--.,.^../(///0080p0011N1N1p11112"2T2p22333B3n33344>4p4p4445*5X5z5556 6"606^6z66677>7`77777778(8t8889969N9~999:(:D:::;;;*;>;t;;<>>4>J>`>n>>>>?? ?.?H??????@"@Z@@AAlAABB0BfBtBBBC0ClCCCD DD6DDDRDdDvDDDDEEE,P3!%3#P;O'Z #462"C&6''6\6''6&(N 4632#'&74632#'&(""*")""*")W"" "" 253733733#3##7##7#537337c$T$$T$"$T$$T$~"T""LLLL2")/#5.'75'.46753.'74&'>5ZNap _>8NXkTNSYZ2*R`f[_0//0\+1uh sI4N ^l ij ];!!> fDGl !4 4SI67#'264&"462"&264&"462"&#3,B,,B_``_,B,,B_``_\ZD--D,NA\\AB\\D--D,NA\\AB\\TF(4!'#"&546?'.546327%26?'7654&#"4Z_h_n=@ !oHRjd$`[%="$<;6053'"5^jlI@V0!C Q`_NSJoN(&.=&=+8$'1$2/( 4632#'&(""*")W"" 7`.67799"622`'6'799X22#a7''7'75{|R=SN=O|zņ*H)i.ml.h)H+73 3533##5#7RRGOFa746325>7#"&F*"/\8$.&@(2-Zb4?%%-<H%!5!<RF6462"F(:)):#:)):( #[W;24 276'&"76  '9(~(99(~(:EE::EE<**<,<***VhhVVhh!##5>73`BZ VEC6#'&54632!!>?654&#"bzfevzE M:GQlY@:=@ W{sT{MR,/[R|4F9N0BJ; %'7!5!2#"&'732654&#"0Oy~mk`Q<@IN6-QZXh]VzwU?ME3;>#/ 7533##=#oo_qe[[=#?32654&#".'!!632#"&#^Q=;PP32#"&5463232654&" 0Dc{Y?JJ#>?!50O<5 e$075+ ^.fraMl_A. Z- *>54&"2654&""&5467.54624DBlBD ~II~I~E6.<||<.6Et:/,<<,/:>/0??0/iQ9US4OeeO3TV9Q(#?3267#"&54632#"&4&#"3269 3CooW>Zbh&XRT89SR:9SQg#0ufb~7#"&462"K(!,W6", %(:)):>%/+U]1;$#c:)):(#'75% #6U__A!5!!5!11ZMO#'5-5d8IU__# (%#&54?654&#"'&54>32462"XS,5>9=@a,hIdwf.,m&6''6 d8$>0BL4 1ZBxQiEB 6''6&-2=%"&'#"&546327332654&#"327#"&54632'4&#"326Y%6.IDUvR#= O6&*B}uX)+B⢙o,(4CU3A B^Mc" 5 )sKoF6(1өܻo-1Y:m[  !'!#3 3EMKiqy;_Z- 32+32654&+32654&+Zcs:0;Ezabz:DF35?-"&54>32.#"3267hZx[rWhhWtWȪrSyh PW]M g}Z732654&+#32hhWŽZ  )!!!!! Q.M[\Z  3#!!!!b.[\-!!#'#".4>32.#"32>7#5!O vS[chZrYwRgf8W1Sd/DSRua&MU$;<XZ !#!#3!3bbbjb;/Z3#3dd75732653#"&bB86>bu`gv.CDDD=`{Z !#33 ebbL+BlmwZ )3! ObOZX !###33XaZa((AZ !##33fbbbB -26&"4>2".Ԗ=e~~e=iiV[22[VrTTZ732654&+##!2?JJ?bazzzA78CxZ[v-!4>2'#".6327'7654&"-=e~~e=dSCVTf[idjD8{D|?cV[22[Vg];_3T;LtZ> !##!232654&+ɢjc bw\P32#&5#"&26=2PB%4408ZpNfb\M:GZ?L &+>K &05,EWcM+$# 0UDJ$*P)3#3>32#"'$4&#"32]]S9itxhl0MA?PP?@#/noS_[\_("3267#"&54632.=UU>XPOZ<'$8HQrQe^mzS=g"6EICUvns @RC###5354632&#"3BtaYYZD+ -ttUQMX T%-L-3'732=#"&5463253#"&7264&#"-[H6M4`}|an&]6aAY|=LL=>MK3CE#,fcLCC0SF(eUUTFGSP#3632#4#"^^0bSY^p4:FjT!yG; 3#3&462"]]r'8((88(''3 3#"'532462"P^H=#A'8((84BSO8(''P #'#37vC]]C8P3#3^^P!3#3>32632#4&#"#4&#"]ZP,/N2oEa]331>^332>@&(.-[^Y.232#"&'%4&#"26][T8huyg5RMA@OONK&0mn,"I__IK__(B##"&54632533264&#"]O4e{g:O[M@?ON@A%,lj2$Jaa]P[ &#"#3632[^\,ddT\#)?32654/.54632.#"#"&#U:1&,>R8@eF.H(S (#-7N@E]SYd}'3%0 H3>Z,& &. K69\Y6y3#327#"&5#5326=hh$(>H\%%yU" P HAU)!NK%#"&532653#&N-Rb^5p:^Z:$%mT/6FC8"x/* #3_js  33# #3_a}jca}cgljn  37'373#' rvtoq|z쩩 7#733gxleL( )5!5!!~y R:UR-l\ 526=4;#";#"=4&-0> 6,7117,6 >V14K182@ @281K41Zl#3RRl4 "+5326=467.=4&+53240> 6,7117,6 >iV14K182@ @281K41#k%'&#"'632327#" .6*9:^1..:#98^/9._7.]I' #&462"v &6''6 s6''6&2!#5.546753.'67;LTiiTLGWQ -&KP[E5++^Y[XVO5! 3J!3O&tN+A8*3&54632.#"3#3265#!5>54'#GFrTiab90*<3H@7I;I#SKnIInKB7M;N#J;I9DF5G;H!%L;L6@:JJ:9JJ-%##5#535#53333#3aurpwHPGGPZl3#3#ZRRRRqqU)1=%#"&'732654/.5467.546324&#"/>544 )/xU^eY860:;hCH5 */xU]hZ85/<32#&5#"&32=B:-X"" &EM;IFG I4?Z_/+6  $/@G7'6<](c %#'73#'73]]F]]c-%#5!5!TϕR-<H%!5!<R- (6632#"264&"32654+#32#'-՗טJ4"$F4L:N1'ZWT2٘=I5*@ #A4!5!4AQXZ264&"462"&l,B,,B_``_D--D,NA\\AB\\A3 3533##5#!!ARRKMO=XI#&546323!54?654&#"JH<;HFHU<+81DC0B,-A ]4%%  <P`'7#5!#"&'732654&#"_d.>Q@=L C+&(8OA?P903F<+###7~OWPB%#"'#32653#&N-.(^^5p:^Z:$%6FC8"x9 #7Y##"&5463!##HSOsaTaSt nP]iQ=Fb462"F(:))::)):( &'732#"'732654&#"s!0G'+6<9H&%)e'L<-%&4.-"2X#5#5>73MV$3GX4'C+264&"2"&4):9T::"cccn73#35733##=MV$3G-\ZU@@Mo4'xIAHHA7 +3#3#5#5>73#&546323!54?654&#"\Z^MV$3GEJH<;HFHU<+4'X1DC0B,-A ]4%%  7 *-!#3'7#5!#"&'732654&#"5733##=\Z_d.>Q@=L C+&(U@@Mo8OA?P903F<+#IAHHA (332654'#"&54?6546"&462XS,5>9=@a,hIdwf.,l&6''6! d8$>0BL4 1ZBxQiEB 6''6& n !'!#3 3'3EMKiqyf;_ww n !'!#3 3#7EMKiqy>^e;_Mww n !'!#3 3#73#'EMKiqy[pxu\U;_ww@ t #!'!#3 3#"/&#"#5463232=EMKiqy%5+&!#D6+#& ;_P69 ,69 # n462"$462"'!#3 3"2""2"2""2rMKiqy2""2""2""2";_ q34&#"3267#'!#&54632ZyHH/ jMKi2I13H_9%f%;2GF)5!#!!!!!%3Q~~.Ms[\X-&/'7.54>32.#"32672#"'732654&#"s!hZx[rWhhUvWe+6<9H&%)e'0 ơrSyh PW^L ]z !-%&4.-"Z n )!!!!!'3 Q.Mꊁf[\wwZ n )!!!!!#7 Q.M8^e[\wwZ n )!!!!!#73#' Q.M[pxu\U[\ww@Z n462"6462"!!!!!!"2""2"2""2{Q.M2""2""2""2"[\n3#3/3ddaf2wwZEn3#37#7dd^eũwwAn 3#3'#73#'dd[pxu\U2ww@ h 4632"74632"&#3  ,z, dd.6. !##5332%32654&+3#TLLݑhhzzER.WRZt "!##33'#"/&#"#5463232=fbbb5+&!#D6+#& B 69 ,69 #-n26&"4>2".'3Ԗ=e~~e=ii2".#7Ԗ=e~~e=ii^eV[22[VrTT}ww-n26&"4>2".#73#'Ԗ=e~~e=ii[pxu\UV[22[VrTTww@-u026&"4>2".#"/&#"#5463232=Ԗ=e~~e=ii 5+&!#D6+#& V[22[VrTT69 ,69 #-n'462"$462"26&"4>2"."2""2"2""2}Ԗ=e~~e=ii2""2""2""2"V[22[VrTT(7 %''7'778997898-&4>327#"''7&7&#"4'326-=e~DhWHDIbi[gVDFGdd;L=Jj9:KjcV[27\4^grT5Y3\gsI&mKS#PNn"&532653'3aSRb銁fy0QXXQ-y~wwPNn"&532653#7aSRb`^ey0QXXQ-ywwPNn"&532653#73#'aSRb[pxu\Uy0QXXQ-y~ww@PNn462"6462""&532653"2""2"2""2aSRb2""2""2""2"y0QXXQ-y `n 33##7vpbω^e/32#&5#"&26='32PB%4408ZpNfb\M:GZ?L &+.~vV>K &05,EWcM+$# 0UDJ$*ߒ2)-746?654&#"'>32#&5#"&26=#72PB%4408ZpNfb\M:GZ?L &+~OW>K &05,EWcM+$# 0UDJ$*q2)0746?654&#"'>32#&5#"&26=#73#'2PB%4408ZpNfb\M:GZ?L &+WhkhXF>K &05,EWcM+$# 0UDJ$*ዋQ2)A746?654&#"'>32#&5#"&26=#"/&#"#546323252PB%4408ZpNfb\M:GZ?L &+6+#H7+ # >K &05,EWcM+$# 0UDJ$*e58 +58 +2)5A746?654&#"'>32#&5#"&26=4632#"&74632#"&2PB%4408ZpNfb\M:GZ?L &+O!""!!""!>K &05,EWcM+$# 0UDJ$*-""!!""!!2)5?746?654&#"'>32#&5#"&26=#"&546324&#"322PB%4408ZpNfb\M:GZ?L &+B.-BB-.B@>K &05,EWcM+$# 0UDJ$*A-@@-.@@B((2B*4;%#"&'#"&546?654&#"'>32632!3226=%!.#"RvM>i!9O]PB&:41=X{Jw4EdmzTK %26(EWPPs ?SEH @(6EI('.'7.54632.#"32672#"'732654&#"! ]wgXmU >8:A SYF+6;:I%%)f'2 dnZ?$*8HQrQe^mzS=g~vV"6EICUvns @Rے)!.#"#"&54632!32#7D>8HQrQe^mzS=g1~OW"6EICUvns @Rm)"!.#"#"&54632!32#73#'D>8HQrQe^mzS=gWhkhXF"6EICUvns @R݋Q)'3!.#"#"&54632!324632#"&74632#"&D>8HQrQe^mzS=g!""!!""!"6EICUvns @R)""!!""!!'3#3]~vV]]P"#7#3"~OW]]O 3#3'#73#']]tWhkhXF@Q 462#"64632"#3, n.]]V..("#"&54632&''7&'772654&"Qqk\`,F^/A\Rm~VV~W(xhj2SlC91<1>+!&?W?W A0BHfo?0@Hhn8-[[Q9*K%#"&532653#&'3N-Rb^5p:^Z~vV:$%mT/6FC8"x/* K%#"&532653#&#7N-Rb^5p:^Z~OW:$%mT/6FC8"x/*K%#"&532653#&#73#'N-Rb^5p:^ZWhkhXF:$%mT/6FC8"x/* QK!-%#"&532653#&4632#"&74632#"&N-Rb^5p:^Z!""!!""!:$%mT/6FC8"x/*W""!!""!! 7 #733'#7gxleh~OWLВPB)#3>32#"&'%4&#"26]^S6huyg5RMA@OON$-mn,"I__IK__ 7#733%4632#"&74632#"&gxlem!""!!""!L""!!""!!P3#3]] )5737!O``bO!*W*MEWF 3#5737^YY^__'W'm*W*-@!26&"!5#".54>325!!!!!ԖQf[i=e~Df.M]lTrV[2l][\( /62654&"%!.#"#"&'#"&54632>32!32~WW~WE=8HQrQ;g!FlkF a6mzTR8@eF.H(S (#-7N@E]SYdWFFXfo}'3%0 H3>Z,& &. K69\YeQQ `n462"6462" 33#"2""2"2""2vpb2""2""2""2"732&#"3##"'532zKn\;* "3 R\;- NzSqHI S$8PSeHI S#!^#73#'zWhkhXF!Q#!^373##WFFXfoQQ#A4!5!4AQ#!G "&'32673CNI$F$IL!U9&':T*462"%2%%2N4$$4$# #"&546324&#"32B.-BB-.B@-@@-.@@B((!(47327#"&!f?U0CsV-(9D7)Z#"/&#"#54632325Z6+#H7+ # 58 +58 +#L#73#7ZB3dB=13 !i;U-"!53.546 3!5>54șST{"{US|seXllXesPB%#"'#32653#&N-.(^^5p:^Z:$%6FC8"x9 -5%#"&5###5!#3275 :<^RS6  E2qRR1AAH%!5!ARKH%!5!GR(#"&5467632%*S2 * "#,)QY/: !(46325>7#"&(' ,U5!+ $%.*T\0;##(m{746325>7#"&(' ,U5!+ $=%.*T\0;##(]##"&5467632#"&5467632]%*S2 * "%*S2 * "#,)QY/: !#,)QY/: !(]#46325>7#"&746325>7#"&(%*R3 * "%*R3 * "#,)PX/9!!#,)PX/9!!(r]v#746325>7#"&746325>7#"&(%*R3 * "%*R3 * ":#,)PX/9!!#,)PX/9!!i 7##53533#RR=QQ-}735#53533#3##5#-RRQQQFR 462"&Fyyzz!VzzVUzzZJ|$"&462"&462"&462J%6&&6%6&&6%6&&6V6%%6&&6%%6&&6%%6&7%9264&"462"&264&"#3264&"4632632#"'#"&,B,,B_``_,B,,B\ZQ,B,,B_AK,,KA``AK,,KA_D--D,NA\\AB\\D--D,0D--D,NA\<<\AB\;;\c%#'73]]cc7#7'3q]]c# ,7''7'757''7'75!7''7'75ooJ7KF7GpnooJ7KF7GpnooJ7KF7Gpny&A$_)ba)^$A&ysy&A$_)ba)^$A&yy&A$_)ba)^$A&y,3#3\\Z-z7''7'757''7'75ooJ7KF7GpnGooJ7KF7Gpny&A$_)ba)^$A&ysy&A$_)ba)^$A&y<Qn254"4762"'&N#))##))#{{||T0::0TS0::0<X 5733##=32#"&546323264&#"T!1B 2;GT?=ZmU6)))9 63C;9HVQ`u:"":"<Xe#>?#5e%5'R &$ E %FnB7gC3 B<Q^ )2654&"2654&""&5467.546244@##@#M$ KtK $1[=// ,.;;., //<Qd 73267#"&54632#"64&#"32N!3B 29IT?=XjV6(((d; 34D:8IVQep:#"<"<n,7254"4762"'&N#))##))#n{{||T0::0TS0::02%#5#5>73MV$3GH4'=I,7#&546323!54?654&#"JH<;HFHU<+1DC0B,-A ]4%%  <`&7'7#5!#"&'732654&#"_d.>Q@=L C+&(^8OA?P903F<+#<% 35733##=32#"&546323264&#"T!1B 2;GT?=ZmU6)))9 63C;9HVQ`u:"":"<e%#>?#5e%5'R &$ %E %FnB7gC3 B<^, )62654&"2654&""&5467.546244@##@#M$ KtK $[=// ,.;;., //<d- 73267#"&54632#"64&#"32N!3B 29IT?=XjV6(((<; 34D:8IVQep:#"<"A)3&547#53>32&#"!!3#327#"&'#AOO^"fiB(3PEp%''lD_61Ssd#`Nis/M%DANP@B6FGrg#t"675463227#"&=4#"6#%I=@G]RC8"0'NO%'*QIUOGO3GLU XH! W@GJX###5!#5#'#373JpLp,He;bLckk])Dm-"!53.546 3!5>54șST{"{US|seXllXes7 #3!53#5ÖtX(XXX7 %!53#5!###l`XXXXX((7 %!53#5!###3Z`XXXXX(((7 %!53#5!#3!syXXXXX((]7 #!!5!#5!n Tm[X(XXX7 %!5!#5!# 3!r‰XXXXX((]7 %!5!#5!### 3!ar`‰XXXXX(((]7 %!5!#5!#333!3!hr`ĄXXXXX((((]7 %!53#5!#%'#373aiV\hrstmXXXXX(بÛ7 #3!537'#573isomgrstmXXXXXÛ7W !53#5!#35WnXXX(7%#5#"&63253#.#"3267`A‚~@``bTbbZbCQ6M?FR_>7 !2#!53#32654&+7AŇVW{x\TX(yrq|7!#3!53#3!53#5AcLhX(XXTXXXf7'7!!!fS(l ###ǞS A"L5!5!5HөS^%'33өSZH7!7$t;uu:v!''}$v;v:7)777t;vu:w-)Qu;&w:f'532#!'7!264&#ZZj;UT?ESyX[vDtD2'7!#!Sa#3#!55!vSD3!'7!PS0}U5!3!%0S}dD7 5!3'37DrS7 '7!!5!5!5  cSS.2""'632#"&54632&"3265.L@ Jj(MU?*cgt7NVY=VVT~J+3PY|ph9XMZ#&13 !i;UZU!#!#!U_bn- 35 5!! !- vV VZZ7G%!5!YO #[9xFb462"F(:))::)):(#d##33w[l -z)%#"&4632632#""327.264&#"0U/KccKaVZZKccKc*33*:G /O*33*/%:64`akka`3N2W !2N3 --8146;#"+5326mUJ%"&RI+!(!HJTV('JUV*#k'#"/&#"'63232#"/&#"'632323:X04/ 4'5;T.9.##1%3:X04/ 4'5;T.9.##1-S-/U-S-/UA3 %!#7#537#5!733#3J`JUUI`IRUddOtMccMtA3 7!!=% Ad3OUThhTA3 7!!5-5Add3͂ORUThhTFb462"F(:))::)):(-%264&"632#"32654&+##32{՗טiF!'&"FSSL:NN?2٘~"#KlKn+3!n;n+)!!+CL.E !,E !% ,K#  7'3#RRbc-66  264&"-4̄4-66  -44-  #"&6324&'6%7567'5ט՗Qj('jFYB@[c2٘rHRSEh ?@  7<>Q;9m  ' 7  ;&<$$<',;-,;+;-264&"632#"7#5#5>73{՗טMV$3G?2٘ټ4'-1264&"632#"#&546323!54?654&#"{՗ט\JH<;HFHU<+?2٘1DC0B,-A ]4%%  - .6632#"264&"'7#5!#"&'732654&#"-՗טU_d.>Q@=L C+&(2٘8OA?P903F<+#- 264&"632#"5733##={՗טU@@Mo?2٘ IAHHA-/264&"632#"732654&#"'73#632#"&{՗טB'%%%@1̚08DNC4M?2٘  BVA67J7-)3264&"632#"&#">32#"&546323264&#"{՗ט!1B 2;GT?=ZmU6)))?2٘9 63C;9HVQ`u:"":"-"264&"632#"#>?#5{՗ט-%5'R &$ ?2٘$E %FnB7gC3 B-&<264&"632#"2654&"2654&""&5467.5462{՗ט|44@##@#M$ KtK $?2٘[=// ,.;;., //-)3264&"632#"?3267#"&54632#"64&#"32{՗ט!3B 29IT?=XjV6(((?2٘; 34D:8IVQep:#"<"#'3!!3ݺDS[-7'3>32&#"3#"'73265#7ೃؘaU%DLxؘaU%DLxҙ/J&w/J&w27##"&54632&#"2651ؙؚaU%DLxbҙؙ/J&x'"3#####5354632&#"354632&V-ttaaYYZD+ -ZD+ %-LUttUQMX T%-LQMX T!!2&#"!####535464632" + ->]aYYZ''(8 T$-MtUQMXZ8('' "353####5354632&-^^aYYZD+ %-L,tUQMX T])354632&#"354632&#"!######5$4632"mZD+ -ZD+ ->]aaY''(8QMX T%-LQMX T%-LttU8(''H+54632&#"354632&#"353######5mZD+ -ZD+ -]]aaYQMX T%-LQMX T%-L,ttU<n254"4762"'&N#))##))#{{||T0::0TS0::02#5#5>73MV$3G4'=I#&546323!54?654&#"JH<;HFHU<+1DC0B,-A ]4%%  <`'7#5!#"&'732654&#"_d.>Q@=L C+&(8OA?P903F<+#< 5733##=32#"&546323264&#"T!1B 2;GT?=ZmU6)))}9 63C;9HVQ`u:"":"<e#>?#5e%5'R &$ E %FnB7gC3 B<^ )2654&"2654&""&5467.546244@##@#M$ KtK $[=// ,.;;., //<d 73267#"&54632#"64&#"32N!3B 29IT?=XjV6(((%; 34D:8IVQep:#"<"<nt7254"4762"'&N#))##))#{{||T0::0TS0::02m3#5#5>73MV$3G4'=It7#&546323!54?654&#"JH<;HFHU<+1DC0B,-A ]4%%  <`n7'7#5!#"&'732654&#"_d.>Q@=L C+&(8OA?P903F<+#<m 75733##=32#"&546323264&#"T!1B 2;GT?=ZmU6)))b9 63C;9HVQ`u:"":"<em#>?#5e%5'R &$ mE %FnB7gC3 B<^t )62654&"2654&""&5467.546244@##@#M$ KtK $[=// ,.;;., //<du ?3267#"&54632#"64&#"32N!3B 29IT?=XjV6((( ; 34D:8IVQep:#"<"B+i&46?654&#"'>32#&5#"&32=B:-X"" &EM;IFG I4?Z_/+6  $/@G7'6<](X,0#3>32#"'64&#"2IJ ;&JRVIH#3+*66T5df8Hh;<34=C+"3267#"&54632&(99)&+CP=JcbJ?O CN<34;',@gMNfA.DC,0 32654&"#&5#"&5463253+*33T4H 6#IYZGP3?@23;=C)  fNJg4B+3.#"#"&54632#32.(&/@Q:GebBMX7(D".0x/**X50 #'#37]h,JJď-bʎX50#3KK5X5Q#3>32632#54&#"#54#"JG8L%K1FI""!)JD!)5S,==B?!(-"I-#X5#3632#54#"KI!E;?KJ"'S.8K;O0C+264&"2"&4):9T::"cccn32#"'74&#"26JI :'ISWHI!4+*66T51 df21>>b?>C%#5#"&54632532654&"JIHZXH)6 H4T55T44hLJg"02@@21==H5  &#"#3632 ZKIG NfS8=C+M%732654/.54632.#"#"&CC& )6)/H3>>@ $5/1C5GL^m\<7LUhQLQUW0)P]cX\....Y*/hd oG3L [h fg Z: < bBEi 2 3IG4%/532654&#"462"&32654&#"462"&2####LQnRRnQG####LQnRRnQ\Z5##""7NN78OO##""7NN78OO43 3533##5#4RRGOIq746325>7#"&1#(6jA*5 !-J.:4gq< H++h 7462"&.D..D.J!//!".."2>4."762"'9P99P9e4CC44CCiJ9J1##1J9J9J1##1J733!iBZ VaXqEC6X5'&54632!!>?654&#"bzfevzE M:GQlY@:=@ W{sT{MR,/[R|4F9N0BJ; '7!5!2#"&'732654&#"0Oy~mk`Q<@IN6-QZXh]VzwU?ME3;>%' 7533##=%ee_qe[[=(?32654&#".'!!632#"&(^Q=;PP32#"&5463232654&"0Dc{Y?JJ!#>?!5 e%1:7- ^Ml_A. Z- *>54&"2654&""&5467.54624DBlBD ~II~I~E6.<||<.6Et:/,<<,/:>/0??0/iQ9US4OeeO3TV9Q#?3267#"&54632#"&4&#"326, 3CooW>Zbh&XRT89SR:9SQ~g#/ufb~7#"&,@--@.-!$1a;%1 )|@--@,*50_h8B('J'75% J6U__1!5!!5!11ZMOJ'5-5d8IU__?!#5.546753.'67HLTiiTLGWQ -&KP[E5++^YZXVO5! 3J!3P&tN+6 ,3&54632.#"3#3265#!5>54'#<3H@7I;I#SKnIInKB7M;N#J;I9DF5G;H!%L;L6@:JJ:9JJ"%##5#535#53333#3aurpwHPGGPP41=%#"&'732654/.5467.546324&#"/>544).wT\dX7509:gBG5*.wS\gY75/:;fCGc?c*D M)PedS8C1,86!K=+D M*PehO9A3*86#J 6-7 6-7%#5!5!TϕR>3 3533##5#!!>RRKMO77 %''7'7789978983- 462"5!462"'4&&4'4&&44&&4'SS4&&4'b7#537>32&#"3##"'532Kn\;* "3 R\;- NzSqHI S$8PSeHI S %-55264&"462"4632632#"'#"6"2646"264$ ..aGbGGb,G12##31GG15!!41H. .. .x\Z200hbEEbEbE&&EbE&&0000+&)47#53>32&#"!#3#327#"&'#53&sJY"g93*+FomE.'39e"[JE NisR DANP?A RpgP DG%!5!YOk'#"/&#"'63232#"/&#"'632323:X/5/ 4'5;T.9.##1%3:X/5/ 4'5;T.9.##1-S-/U-S-/U03 %!#7#537#5!733#3J`J_U'I`IHU֗ddOtMccMtJ3 7!!=% Jd3OUThhTJ3 7!!5-5Jdd3͂ORUThhT7) 6777PQQP7a1XX1 '>4&'77PQQP7_1XX1-(<z!5!<(RZ #3#3ooZzL #53#53ooZKL-\ 526=4;#";#"=4&-0> 6,7117,6 >7V14tK182@ @281Kr414 "+5326=467.=4&+53240> 6,7117,6 >V14rK182@ @281Kt41Z #&462"v &6''6s6''6& %#'73#'73]]F]]-9<!5!<9R %#7'3#7'34]]]]# (332654'#"&54?6546"&462XS,5>9=@a,hIdwf.,l&6''6 d8$>0BL4 1ZBxQiEB 6''6&7(7z!5!7(RA(z!5!G(R%#'73]]7#7'3q]]-".54>32.#"3267!5![i=e~Dv[tVkj_y TrV[2zgQUeLX( 732654&"5#"&5463253#&KB?LJNM5g}d;J][LbbLK\\%1nh/"Dx,-( #732654&"5#"&5463253#&'3KB?LJNM5g}d;J][~vVLbbLK\\%1nh/"Dx,-( #732654&"5#"&5463253#&#7KB?LJNM5g}d;J][~OWLbbLK\\%1nh/"Dx,-( &732654&"5#"&5463253#&#73#'KB?LJNM5g}d;J][WhkhXFLbbLK\\%1nh/"Dx,-Q( 7732654&"5#"&5463253#&#"/&#"#54632325KB?LJNM5g}d;J][6+#H7+ # LbbLK\\%1nh/"Dx,-58 +58 +( +7732654&"5#"&5463253#&4632#"&74632#"&KB?LJNM5g}d;J][!""!!""!LbbLK\\%1nh/"Dx,-Q""!!""!!( +5732654&"5#"&5463253#&#"&546324&#"32KB?LJNM5g}d;J][B.-BB-.B@LbbLK\\%1nh/"Dx,-e-@@-.@@B((P<#4632#"&^_))))B))))A-%5!##"&5467.54632.#";"326=VwsU=2=wYjl`>9-@D( <`SJHSYY ju\IeO:MjoR:@9+07ZDI4KUI - 73#5>733!-BZ VaXqEC6XQ#462"&264&"3254+'##532opp>QvRRv*-4S($$oooxSSxSAA'%K##7@Eų#4632#5267#"&##'E-&$%6:("&5463"632"2(F,&J%$3=('"3#####5354632&#"354632&V-ttaaYYZD+ -ZD+ %-LUttUQMX T%-LQMX T])354632&#"354632&#"!######5$4632"mZD+ -ZD+ ->]aaY''(8QMX T%-LQMX T%-LttU8(''H+54632&#"354632&#"353######5mZD+ -ZD+ -]]aaYQMX T%-LQMX T%-L,ttU!!2&#"!####535464632" + ->]aYYZ''(8 T$-MtUQMXZ8('' "353####5354632&-^^aYYZD+ %-L,tUQMX T8 462#"64632", n.V..h 4632"74632"& ,z, .6.n'3fwwzn462"6462""2""2"2""22""2""2""2" >^!5!>% Sn#7^enwwzn#73#'x[pxu\Uww@zn373#[QU\uxn@@wVs "&'32673SQ%J$QM4##5r462"%4&&44&&4% #"&546324&#"326B.-BB-.BAP-@@-.@@.(]t#"/&#"#5463232=]5+&!#D6+#& q69 ,69 #Vn#7!#7`F=jFGnwwww##7DIž#4632#5267#"&#'E-& X$%6:($<zE!]   #N D/ +M x "  >  e 2   B    * F r ^A   " =Generated in 2013 by FontLab Studio. Copyright info pending.Generated in 2013 by FontLab Studio. Copyright info pending.Circular Std BookCircular Std BookRegularRegularLineto: Circular Std-Book: 2013Lineto: Circular Std-Book: 2013CircularStd-BookCircularStd-BookVersion 1.001; build 0002Version 1.001; build 0002CircularStd-BookCircularStd-BookCircular is a trademark of LinetoCircular is a trademark of LinetoLinetoLinetoLaurenz BrunnerLaurenz Brunnerhttp://www.lineto.comhttp://www.lineto.comhttp://www.lineto.com/The+Designershttp://www.lineto.com/The+DesignersLawful use of the fonts or the data contained within the font files excludes modifying, reassembling, renaming, storing on publicly available servers, redistibutring and selling. Any unlawful use of this typographic software will be prosecuted. For additional information see http://www.lineto.com/Lineto.com/Font+LicensingLawful use of the fonts or the data contained within the font files excludes modifying, reassembling, renaming, storing on publicly available servers, redistibutring and selling. Any unlawful use of this typographic software will be prosecuted. For additional information see http://www.lineto.com/Lineto.com/Font+Licensinghttp://www.lineto.com/Lineto.com/Font+Licensinghttp://www.lineto.com/Lineto.com/Font+LicensingCircular StdCircular StdBookBookCircular Std BookCircular Std BookRegularRegularP  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghjikmlnoqprsutvwxzy{}|~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~uni000Duni00A0uni00ADuni02C9uni0394uni03A9uni03BCuni2007uni2008uni200Buni2042uni2051uni2070uni2074uni2075uni2076uni2077uni2078uni2079uni2080uni2081uni2082uni2083uni2084uni2085uni2086uni2087uni2088uni2089Eurouni2113uni2160uni2161uni2162uni2163uni2164uni2165uni2166uni2167uni2168uni2169uni216Cuni216Duni216Euni216F arrowleftarrowup arrowright arrowdownuni2196uni2197uni2198uni2199uni21A9uni21B0uni21B1uni21B2uni21B3uni21B4uni21C6uni2215uni2219dotmathuni24C5 filledboxH22073triagupuni25B3circleH18533uni262Euni2713uni2715uni2780uni2781uni2782uni2783uni2784uni2785uni2786uni2787uni2788uniE000uni21B5uniE002uniFB00uniFB03uniFB04uniFEFF zero.numrone.numrtwo.numr three.numr four.numr five.numrsix.numr seven.numr eight.numr nine.numr zero.dnomone.dnomtwo.dnom three.dnom four.dnom five.dnomsix.dnom seven.dnom eight.dnom nine.dnom space.fraca.ordnb.ordnc.ordnd.ordne.ordnf.ordng.ordnh.ordni.ordnj.ordnk.ordnl.ordnm.ordnn.ordno.ordnp.ordnq.ordnr.ordns.ordnt.ordnu.ordnv.ordnw.ordnx.ordny.ordnz.ordnspace.tf numbersign.tf dollar.tf percent.tfplus.tfcomma.tf period.tfzero.tfone.tftwo.tfthree.tffour.tffive.tfsix.tfseven.tfeight.tfnine.tfcolon.tf semicolon.tfless.tfequal.tf greater.tfcent.tf sterling.tf currency.tfyen.tf section.tf logicalnot.tf plusminus.tf multiply.tf divide.tf florin.tf uni2007.tf uni2008.tfperthousand.tfEuro.tfminus.tfapproxequal.tf notequal.tf lessequal.tfgreaterequal.tfparenleft.caseparenright.case hyphen.casebracketleft.casebracketright.casebraceleft.casebraceright.caseexclamdown.caseguillemotleft.case uni00AD.caseguillemotright.casequestiondown.case endash.case emdash.caseguilsinglleft.caseguilsinglright.caseG.ss01a.ss02 agrave.ss02 aacute.ss02acircumflex.ss02 atilde.ss02adieresis.ss02 aring.ss02r.ss03ampersand.ss04one.ss05registered.ss06 caron.alt commaaccent commaturnf_ff_f_if_f_lf_if_ldieresis.narrowdieresis.uc.narrowgrave.uc dieresis.uc macron.ucacute.uc circumflex.uccaron.ucbreve.uc dotaccent.ucring.uctilde.uchungarumlaut.uc caron.alt.ucundercommaaccent .:;CD DFLTlatnB  aaltcaltcasednomfracliganaltnumrordnsaltsinfss01ss02ss03ss04ss05ss06ss07subssups tnum  !$JRZdlt| $,4<DLT\dl*xJx"*Fdl>X~8^^ r    6 : V Z ^ b f S}~0cdefghijklmnopqrtuvwxyz{S  !*3>@EFGHIJKLMNOPQRSTVWXYZ[\]^`cdefgimnops}%&+,-. &2BP^lza|MWNX{;OYt<PZu=Q[>R\?S]@T^AU_BV`CbsDD UU $"[*4@"[bbd $,4<DLTC B A @ ? > = < ;   {tu MNOPQRSTUVD",",  ("&"("MV *4"MVMV",6@"MVMVMV$.8BL"MVMVMVMV&0:DNX"MVMVMVMVMV(2<FPZd"MVMVMVMVMVMV *4>HR\fp"MVMVMVMVMVMVMV" ,6@JT^hr|"MVMVMVMVMVMVMVMV$ .8BLV`jt~"MVMVMVMVMVMVMVMVMV#W`$"MV#D]b{ X)|}~) !defgins%+,-.& >@^`cmo}6 "(IOILOLII*B "&*.26:>;<=>?@ABC033 *DDhU Pp$aMNOPQRSTUV[&N$WXYZ[\]^_`bcdefghijklmnopqrstuvwxyz{D]  4NDFLTlatncpspkernX4ES   $=189:;=?@:@Z2h vN`fl$*.4: j x 0 B H n t  Z     " <f`ffff V ` n |  Z f4 0&00:::DR\ftz  *@JX^hr"(Fx"""((>pR.$ ((( 9 (9;Y2%(9Y  9;Jt9; Y[F!_ r)+,.    !?B r s &+, .    !B_a hr s % +.  !ah lrs | & ) +, -.fu !#Ba r % &+, - .    ! #?Ba % +  &   !"#?B_ahrsy22 %&),.f  ! ?Be+, . u F  9;9; Y  9;Y[  ! ?BYl|  ,  ! " #?A BY[^_ahilx#2 !"#;B^ai uxy (kwxy z  !9;? (:   " #9 ; ?BY[^_acht u y{ #  wxyz(  !   #9 ? BY[^_ah y(  ( M(  9; Y[ 9;Y[< "# ?BY[ hx #?BY [_c y  D(9;[9; 9; 9[  9; Y(9;[9YZ2<((#9; ! " #9;?BY [ a y    ?l|?( ( "?F@(`(P((<< ( ( "(?F2## ( ( "? #(#?9;  #Y[xy &  !(#?(BY[at u x{  ((J 9Y[ 9 Y[ 9; WX8YZ.[\] ^8_`9Y9Y9Y9Y9Y[9Y (   ((((Z   MNPRSUBMOST8QNT 8TTMNQSTV MS MNPRSUWXZ\]_WY]^[X^ ^WX[]^` W]vuvwxyz{ bdefhprvwxyzvwxyzbdefghkprvw x y z{ bvxz bdefhprv{(defghpru wx y z{ bdefhprvwxyztw x yz{defhprvbdefghpruwxy z { bdefghpruwyz{defghpruvw xyz{ bdefg hprtuvwzy2   9;(D9 9   9;  2  !?BFy ("(.   (6 #%&(*-.!3?#AB0II2LL3TT4YY5[[6^a7cd;fi=nnArsBxyDFGMPQX]^_abdeop!#}%&(.GHJJMZ\`bdfillnqs{.),Nv- j  ~   y       B      (( (((        2 ((t (  2t   uT;F C HS=ZW(%RQ 3 !!!+""J##))334499;;??AA BB]YYo[[r__``aa cc"ddeeUhhtt[uuXxxByyG{{?||@K8*5&^_`abcdefghijklmnY%%7&&((N))/++ ,,:--4..,bbccddeeffgg$hh)ii-jj.kk0ll1mm2nn6oo9pp<qqArrIssMttPuuVvv\wwpxxqyyszzt{{u'DE#L >Ol! !+$$%%,&&'),**+,,--.1,2233,4455,66)7788::%<<==@@DDEE FH IIJJ KK LL MMNO PQ RR SS TT UU VVWW'XXZZ\\]]$``kk*mm oopp*}},,(,    )$#"#" 00*68*;C*GK & & v  !"#%)349;?ABY[_`acdehtuxy{|%&()+,-.bcdefghijklmnopqrstuvwxyz{ ~ M< 2(2   2(~ ~       L  ~  "   kkmmoopp}}   0068;C  "$  H1H%8  8  ""$$9%%D&&*')D***+,D--C.1D22*33D44*55D66>77,88=99::-;;<<.==???@@@BB'DD/FH5II2JJ5LL3MM4PQFRR5SSFTT5UUFVVGWWAXXEYYZZ7[[\\B]]<``@aaoo19:*D;D*+=.D/535F56EBB3 *5>G.?<1KLJKLJH()$$&%%&&))++,,!-- ..GK2#II*0F1 >^kmop}0678;<=>?@ABC.)T+2&       (         (     ~         j~  (( ((((  ( 2(  2 (  ((   ((         (        O&&''((**+,-- ..//012255 66 77 88 ::<<==DDEEFFGGHHIIJJKKLLMMNNOOPQRSTTUUVV WW!XX"ZZ#\\$]]% "$$ %GGHHIIJJKK_ss%N(k/UE*{aa`aacdefCgZ }5hqqq~qppqpqpwx=yMz W}]XGj!mkj31$' "+{{{{{{|aaaaaaVbeeeeghhhhhhhqqqqqqpqqqqqrxxxxzzPOaqcgDkkuvtuvt\m6789:;<HY[IJKLRST2jjjjjjjjjjjjj~~~~~ #),.04>?@AB&Ql ^noFllnoaiiiiiiip-$$&(*258 ::<=DXZZ)\]*,CI`jGKqvդ'͌{6͌m+PK!IYDD admin/fonts/CircularStd-Book.eotnu[DC LP/{P sq"Circular Std BookRegular2Version 1.001; build 0002 CircularStd-BookpFFTMpjCGDEFY6GPOS1 @TGSUB>8OS/2OBOx`cmap 8^gaspglyf&MLXhead,^6hhea 4$hmtxXUI`loca maxp EX name:v post_s GBqs_< ͌{6͌m+B@FXKX^P! /P{LNTO )A  2P7Zv(2S217F(.7.#77&Fi-Ff2a#)%>#$#D30-E("K)K#QA##:- ZZ-ZEZ'Z-ZZZ$ZZZ"-UZ"-kZQ&P P i j x- Z  " 2QP(L()WB-2P; PPYP2P<(QPE(oP#c6K   (a-Za:#I2QAF,FZ=U{&5-B=-i-5-W#s7A=<#;Pr#F& %2C 7 7R7      -EZEZEZEZZ Z"-"-"-"-"-("-PPPPj PZ7P 2 2 2 2 2 2j2())))P:(2P<(<(<(<(<(77<(6K6K6K6K QP P/ |-(Q&#j x-(##W#j#%#!yo#-;Pg-fAOK((((((-*FZ7C#,-<<<<<<<</2=<<<<<<<A#[-7777#77 7777777-7("j7j7-A2#HU.7R7c.Z7-7F#!-69#QAAAF5-nnEE,#?-?-5-5-5-5-5-5-5-5-5-5-.#8-2\Z</2=<<{<<<<<</2=<<<<<<<2BXCCB^BCXY)FXXXXCXC HCD7C[%C000(004000"0i0500%0(0&0!0-0000J010J0?060!0.P00>070300000+0D0000J0J)7)i- Z a-a7Zi-#n7;A-G(G(G(G(G(G(G(JPA-##\Z&6Wsuo#T8 ~1BSax~     " & 0 : B D Q p y !!"!&!i!o!!!!!""""""""+"H"`"e"$%%%%&.''' 1AR`x}     & 0 9 B D Q p t !!"!&!`!l!!!!!""""""""+"H"`"d"$%%%%&.'''sgQM:B.|vTߤߢ߂߀qkZ jkۑہkh &%ٻ!DGM   !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`ardeixpkvj,)s-.gw!$#*l|cn(+"m}b5HIyqz.Xd|$Pd >^0DX6`~ <Lf|&bt .>R`n 0 ^  . : l   X |  F R 0 l "d"B\>Rr>zP,N|<lXr"Tr&ln"fTh|.V~*NRl @Df   : V | !!!!!*!8!X!x!!""<"P"l""###"#n#|###$$H$d$$$%%6%b%z%%%&2&d&&&'('>'Z'~'''((J(v((()),)>)P)b)t))))))**&*<*P*n*****+++.+p+++,, ,2,l,z,,,,,--:-N-p--.,.^../(///0080p0011N1N1p11112"2T2p22333B3n33344>4p4p4445*5X5z5556 6"606^6z66677>7`77777778(8t8889969N9~999:(:D:::;;;*;>;t;;<>>4>J>`>n>>>>?? ?.?H??????@"@Z@@AAlAABB0BfBtBBBC0ClCCCD DD6DDDRDdDvDDDDEEE,P3!%3#P;O'Z #462"C&6''6\6''6&(N 4632#'&74632#'&(""*")""*")W"" "" 253733733#3##7##7#537337c$T$$T$"$T$$T$~"T""LLLL2")/#5.'75'.46753.'74&'>5ZNap _>8NXkTNSYZ2*R`f[_0//0\+1uh sI4N ^l ij ];!!> fDGl !4 4SI67#'264&"462"&264&"462"&#3,B,,B_``_,B,,B_``_\ZD--D,NA\\AB\\D--D,NA\\AB\\TF(4!'#"&546?'.546327%26?'7654&#"4Z_h_n=@ !oHRjd$`[%="$<;6053'"5^jlI@V0!C Q`_NSJoN(&.=&=+8$'1$2/( 4632#'&(""*")W"" 7`.67799"622`'6'799X22#a7''7'75{|R=SN=O|zņ*H)i.ml.h)H+73 3533##5#7RRGOFa746325>7#"&F*"/\8$.&@(2-Zb4?%%-<H%!5!<RF6462"F(:)):#:)):( #[W;24 276'&"76  '9(~(99(~(:EE::EE<**<,<***VhhVVhh!##5>73`BZ VEC6#'&54632!!>?654&#"bzfevzE M:GQlY@:=@ W{sT{MR,/[R|4F9N0BJ; %'7!5!2#"&'732654&#"0Oy~mk`Q<@IN6-QZXh]VzwU?ME3;>#/ 7533##=#oo_qe[[=#?32654&#".'!!632#"&#^Q=;PP32#"&5463232654&" 0Dc{Y?JJ#>?!50O<5 e$075+ ^.fraMl_A. Z- *>54&"2654&""&5467.54624DBlBD ~II~I~E6.<||<.6Et:/,<<,/:>/0??0/iQ9US4OeeO3TV9Q(#?3267#"&54632#"&4&#"3269 3CooW>Zbh&XRT89SR:9SQg#0ufb~7#"&462"K(!,W6", %(:)):>%/+U]1;$#c:)):(#'75% #6U__A!5!!5!11ZMO#'5-5d8IU__# (%#&54?654&#"'&54>32462"XS,5>9=@a,hIdwf.,m&6''6 d8$>0BL4 1ZBxQiEB 6''6&-2=%"&'#"&546327332654&#"327#"&54632'4&#"326Y%6.IDUvR#= O6&*B}uX)+B⢙o,(4CU3A B^Mc" 5 )sKoF6(1өܻo-1Y:m[  !'!#3 3EMKiqy;_Z- 32+32654&+32654&+Zcs:0;Ezabz:DF35?-"&54>32.#"3267hZx[rWhhWtWȪrSyh PW]M g}Z732654&+#32hhWŽZ  )!!!!! Q.M[\Z  3#!!!!b.[\-!!#'#".4>32.#"32>7#5!O vS[chZrYwRgf8W1Sd/DSRua&MU$;<XZ !#!#3!3bbbjb;/Z3#3dd75732653#"&bB86>bu`gv.CDDD=`{Z !#33 ebbL+BlmwZ )3! ObOZX !###33XaZa((AZ !##33fbbbB -26&"4>2".Ԗ=e~~e=iiV[22[VrTTZ732654&+##!2?JJ?bazzzA78CxZ[v-!4>2'#".6327'7654&"-=e~~e=dSCVTf[idjD8{D|?cV[22[Vg];_3T;LtZ> !##!232654&+ɢjc bw\P32#&5#"&26=2PB%4408ZpNfb\M:GZ?L &+>K &05,EWcM+$# 0UDJ$*P)3#3>32#"'$4&#"32]]S9itxhl0MA?PP?@#/noS_[\_("3267#"&54632.=UU>XPOZ<'$8HQrQe^mzS=g"6EICUvns @RC###5354632&#"3BtaYYZD+ -ttUQMX T%-L-3'732=#"&5463253#"&7264&#"-[H6M4`}|an&]6aAY|=LL=>MK3CE#,fcLCC0SF(eUUTFGSP#3632#4#"^^0bSY^p4:FjT!yG; 3#3&462"]]r'8((88(''3 3#"'532462"P^H=#A'8((84BSO8(''P #'#37vC]]C8P3#3^^P!3#3>32632#4&#"#4&#"]ZP,/N2oEa]331>^332>@&(.-[^Y.232#"&'%4&#"26][T8huyg5RMA@OONK&0mn,"I__IK__(B##"&54632533264&#"]O4e{g:O[M@?ON@A%,lj2$Jaa]P[ &#"#3632[^\,ddT\#)?32654/.54632.#"#"&#U:1&,>R8@eF.H(S (#-7N@E]SYd}'3%0 H3>Z,& &. K69\Y6y3#327#"&5#5326=hh$(>H\%%yU" P HAU)!NK%#"&532653#&N-Rb^5p:^Z:$%mT/6FC8"x/* #3_js  33# #3_a}jca}cgljn  37'373#' rvtoq|z쩩 7#733gxleL( )5!5!!~y R:UR-l\ 526=4;#";#"=4&-0> 6,7117,6 >V14K182@ @281K41Zl#3RRl4 "+5326=467.=4&+53240> 6,7117,6 >iV14K182@ @281K41#k%'&#"'632327#" .6*9:^1..:#98^/9._7.]I' #&462"v &6''6 s6''6&2!#5.546753.'67;LTiiTLGWQ -&KP[E5++^Y[XVO5! 3J!3O&tN+A8*3&54632.#"3#3265#!5>54'#GFrTiab90*<3H@7I;I#SKnIInKB7M;N#J;I9DF5G;H!%L;L6@:JJ:9JJ-%##5#535#53333#3aurpwHPGGPZl3#3#ZRRRRqqU)1=%#"&'732654/.5467.546324&#"/>544 )/xU^eY860:;hCH5 */xU]hZ85/<32#&5#"&32=B:-X"" &EM;IFG I4?Z_/+6  $/@G7'6<](c %#'73#'73]]F]]c-%#5!5!TϕR-<H%!5!<R- (6632#"264&"32654+#32#'-՗טJ4"$F4L:N1'ZWT2٘=I5*@ #A4!5!4AQXZ264&"462"&l,B,,B_``_D--D,NA\\AB\\A3 3533##5#!!ARRKMO=XI#&546323!54?654&#"JH<;HFHU<+81DC0B,-A ]4%%  <P`'7#5!#"&'732654&#"_d.>Q@=L C+&(8OA?P903F<+###7~OWPB%#"'#32653#&N-.(^^5p:^Z:$%6FC8"x9 #7Y##"&5463!##HSOsaTaSt nP]iQ=Fb462"F(:))::)):( &'732#"'732654&#"s!0G'+6<9H&%)e'L<-%&4.-"2X#5#5>73MV$3GX4'C+264&"2"&4):9T::"cccn73#35733##=MV$3G-\ZU@@Mo4'xIAHHA7 +3#3#5#5>73#&546323!54?654&#"\Z^MV$3GEJH<;HFHU<+4'X1DC0B,-A ]4%%  7 *-!#3'7#5!#"&'732654&#"5733##=\Z_d.>Q@=L C+&(U@@Mo8OA?P903F<+#IAHHA (332654'#"&54?6546"&462XS,5>9=@a,hIdwf.,l&6''6! d8$>0BL4 1ZBxQiEB 6''6& n !'!#3 3'3EMKiqyf;_ww n !'!#3 3#7EMKiqy>^e;_Mww n !'!#3 3#73#'EMKiqy[pxu\U;_ww@ t #!'!#3 3#"/&#"#5463232=EMKiqy%5+&!#D6+#& ;_P69 ,69 # n462"$462"'!#3 3"2""2"2""2rMKiqy2""2""2""2";_ q34&#"3267#'!#&54632ZyHH/ jMKi2I13H_9%f%;2GF)5!#!!!!!%3Q~~.Ms[\X-&/'7.54>32.#"32672#"'732654&#"s!hZx[rWhhUvWe+6<9H&%)e'0 ơrSyh PW^L ]z !-%&4.-"Z n )!!!!!'3 Q.Mꊁf[\wwZ n )!!!!!#7 Q.M8^e[\wwZ n )!!!!!#73#' Q.M[pxu\U[\ww@Z n462"6462"!!!!!!"2""2"2""2{Q.M2""2""2""2"[\n3#3/3ddaf2wwZEn3#37#7dd^eũwwAn 3#3'#73#'dd[pxu\U2ww@ h 4632"74632"&#3  ,z, dd.6. !##5332%32654&+3#TLLݑhhzzER.WRZt "!##33'#"/&#"#5463232=fbbb5+&!#D6+#& B 69 ,69 #-n26&"4>2".'3Ԗ=e~~e=ii2".#7Ԗ=e~~e=ii^eV[22[VrTT}ww-n26&"4>2".#73#'Ԗ=e~~e=ii[pxu\UV[22[VrTTww@-u026&"4>2".#"/&#"#5463232=Ԗ=e~~e=ii 5+&!#D6+#& V[22[VrTT69 ,69 #-n'462"$462"26&"4>2"."2""2"2""2}Ԗ=e~~e=ii2""2""2""2"V[22[VrTT(7 %''7'778997898-&4>327#"''7&7&#"4'326-=e~DhWHDIbi[gVDFGdd;L=Jj9:KjcV[27\4^grT5Y3\gsI&mKS#PNn"&532653'3aSRb銁fy0QXXQ-y~wwPNn"&532653#7aSRb`^ey0QXXQ-ywwPNn"&532653#73#'aSRb[pxu\Uy0QXXQ-y~ww@PNn462"6462""&532653"2""2"2""2aSRb2""2""2""2"y0QXXQ-y `n 33##7vpbω^e/32#&5#"&26='32PB%4408ZpNfb\M:GZ?L &+.~vV>K &05,EWcM+$# 0UDJ$*ߒ2)-746?654&#"'>32#&5#"&26=#72PB%4408ZpNfb\M:GZ?L &+~OW>K &05,EWcM+$# 0UDJ$*q2)0746?654&#"'>32#&5#"&26=#73#'2PB%4408ZpNfb\M:GZ?L &+WhkhXF>K &05,EWcM+$# 0UDJ$*ዋQ2)A746?654&#"'>32#&5#"&26=#"/&#"#546323252PB%4408ZpNfb\M:GZ?L &+6+#H7+ # >K &05,EWcM+$# 0UDJ$*e58 +58 +2)5A746?654&#"'>32#&5#"&26=4632#"&74632#"&2PB%4408ZpNfb\M:GZ?L &+O!""!!""!>K &05,EWcM+$# 0UDJ$*-""!!""!!2)5?746?654&#"'>32#&5#"&26=#"&546324&#"322PB%4408ZpNfb\M:GZ?L &+B.-BB-.B@>K &05,EWcM+$# 0UDJ$*A-@@-.@@B((2B*4;%#"&'#"&546?654&#"'>32632!3226=%!.#"RvM>i!9O]PB&:41=X{Jw4EdmzTK %26(EWPPs ?SEH @(6EI('.'7.54632.#"32672#"'732654&#"! ]wgXmU >8:A SYF+6;:I%%)f'2 dnZ?$*8HQrQe^mzS=g~vV"6EICUvns @Rے)!.#"#"&54632!32#7D>8HQrQe^mzS=g1~OW"6EICUvns @Rm)"!.#"#"&54632!32#73#'D>8HQrQe^mzS=gWhkhXF"6EICUvns @R݋Q)'3!.#"#"&54632!324632#"&74632#"&D>8HQrQe^mzS=g!""!!""!"6EICUvns @R)""!!""!!'3#3]~vV]]P"#7#3"~OW]]O 3#3'#73#']]tWhkhXF@Q 462#"64632"#3, n.]]V..("#"&54632&''7&'772654&"Qqk\`,F^/A\Rm~VV~W(xhj2SlC91<1>+!&?W?W A0BHfo?0@Hhn8-[[Q9*K%#"&532653#&'3N-Rb^5p:^Z~vV:$%mT/6FC8"x/* K%#"&532653#&#7N-Rb^5p:^Z~OW:$%mT/6FC8"x/*K%#"&532653#&#73#'N-Rb^5p:^ZWhkhXF:$%mT/6FC8"x/* QK!-%#"&532653#&4632#"&74632#"&N-Rb^5p:^Z!""!!""!:$%mT/6FC8"x/*W""!!""!! 7 #733'#7gxleh~OWLВPB)#3>32#"&'%4&#"26]^S6huyg5RMA@OON$-mn,"I__IK__ 7#733%4632#"&74632#"&gxlem!""!!""!L""!!""!!P3#3]] )5737!O``bO!*W*MEWF 3#5737^YY^__'W'm*W*-@!26&"!5#".54>325!!!!!ԖQf[i=e~Df.M]lTrV[2l][\( /62654&"%!.#"#"&'#"&54632>32!32~WW~WE=8HQrQ;g!FlkF a6mzTR8@eF.H(S (#-7N@E]SYdWFFXfo}'3%0 H3>Z,& &. K69\YeQQ `n462"6462" 33#"2""2"2""2vpb2""2""2""2"732&#"3##"'532zKn\;* "3 R\;- NzSqHI S$8PSeHI S#!^#73#'zWhkhXF!Q#!^373##WFFXfoQQ#A4!5!4AQ#!G "&'32673CNI$F$IL!U9&':T*462"%2%%2N4$$4$# #"&546324&#"32B.-BB-.B@-@@-.@@B((!(47327#"&!f?U0CsV-(9D7)Z#"/&#"#54632325Z6+#H7+ # 58 +58 +#L#73#7ZB3dB=13 !i;U-"!53.546 3!5>54șST{"{US|seXllXesPB%#"'#32653#&N-.(^^5p:^Z:$%6FC8"x9 -5%#"&5###5!#3275 :<^RS6  E2qRR1AAH%!5!ARKH%!5!GR(#"&5467632%*S2 * "#,)QY/: !(46325>7#"&(' ,U5!+ $%.*T\0;##(m{746325>7#"&(' ,U5!+ $=%.*T\0;##(]##"&5467632#"&5467632]%*S2 * "%*S2 * "#,)QY/: !#,)QY/: !(]#46325>7#"&746325>7#"&(%*R3 * "%*R3 * "#,)PX/9!!#,)PX/9!!(r]v#746325>7#"&746325>7#"&(%*R3 * "%*R3 * ":#,)PX/9!!#,)PX/9!!i 7##53533#RR=QQ-}735#53533#3##5#-RRQQQFR 462"&Fyyzz!VzzVUzzZJ|$"&462"&462"&462J%6&&6%6&&6%6&&6V6%%6&&6%%6&&6%%6&7%9264&"462"&264&"#3264&"4632632#"'#"&,B,,B_``_,B,,B\ZQ,B,,B_AK,,KA``AK,,KA_D--D,NA\\AB\\D--D,0D--D,NA\<<\AB\;;\c%#'73]]cc7#7'3q]]c# ,7''7'757''7'75!7''7'75ooJ7KF7GpnooJ7KF7GpnooJ7KF7Gpny&A$_)ba)^$A&ysy&A$_)ba)^$A&yy&A$_)ba)^$A&y,3#3\\Z-z7''7'757''7'75ooJ7KF7GpnGooJ7KF7Gpny&A$_)ba)^$A&ysy&A$_)ba)^$A&y<Qn254"4762"'&N#))##))#{{||T0::0TS0::0<X 5733##=32#"&546323264&#"T!1B 2;GT?=ZmU6)))9 63C;9HVQ`u:"":"<Xe#>?#5e%5'R &$ E %FnB7gC3 B<Q^ )2654&"2654&""&5467.546244@##@#M$ KtK $1[=// ,.;;., //<Qd 73267#"&54632#"64&#"32N!3B 29IT?=XjV6(((d; 34D:8IVQep:#"<"<n,7254"4762"'&N#))##))#n{{||T0::0TS0::02%#5#5>73MV$3GH4'=I,7#&546323!54?654&#"JH<;HFHU<+1DC0B,-A ]4%%  <`&7'7#5!#"&'732654&#"_d.>Q@=L C+&(^8OA?P903F<+#<% 35733##=32#"&546323264&#"T!1B 2;GT?=ZmU6)))9 63C;9HVQ`u:"":"<e%#>?#5e%5'R &$ %E %FnB7gC3 B<^, )62654&"2654&""&5467.546244@##@#M$ KtK $[=// ,.;;., //<d- 73267#"&54632#"64&#"32N!3B 29IT?=XjV6(((<; 34D:8IVQep:#"<"A)3&547#53>32&#"!!3#327#"&'#AOO^"fiB(3PEp%''lD_61Ssd#`Nis/M%DANP@B6FGrg#t"675463227#"&=4#"6#%I=@G]RC8"0'NO%'*QIUOGO3GLU XH! W@GJX###5!#5#'#373JpLp,He;bLckk])Dm-"!53.546 3!5>54șST{"{US|seXllXes7 #3!53#5ÖtX(XXX7 %!53#5!###l`XXXXX((7 %!53#5!###3Z`XXXXX(((7 %!53#5!#3!syXXXXX((]7 #!!5!#5!n Tm[X(XXX7 %!5!#5!# 3!r‰XXXXX((]7 %!5!#5!### 3!ar`‰XXXXX(((]7 %!5!#5!#333!3!hr`ĄXXXXX((((]7 %!53#5!#%'#373aiV\hrstmXXXXX(بÛ7 #3!537'#573isomgrstmXXXXXÛ7W !53#5!#35WnXXX(7%#5#"&63253#.#"3267`A‚~@``bTbbZbCQ6M?FR_>7 !2#!53#32654&+7AŇVW{x\TX(yrq|7!#3!53#3!53#5AcLhX(XXTXXXf7'7!!!fS(l ###ǞS A"L5!5!5HөS^%'33өSZH7!7$t;uu:v!''}$v;v:7)777t;vu:w-)Qu;&w:f'532#!'7!264&#ZZj;UT?ESyX[vDtD2'7!#!Sa#3#!55!vSD3!'7!PS0}U5!3!%0S}dD7 5!3'37DrS7 '7!!5!5!5  cSS.2""'632#"&54632&"3265.L@ Jj(MU?*cgt7NVY=VVT~J+3PY|ph9XMZ#&13 !i;UZU!#!#!U_bn- 35 5!! !- vV VZZ7G%!5!YO #[9xFb462"F(:))::)):(#d##33w[l -z)%#"&4632632#""327.264&#"0U/KccKaVZZKccKc*33*:G /O*33*/%:64`akka`3N2W !2N3 --8146;#"+5326mUJ%"&RI+!(!HJTV('JUV*#k'#"/&#"'63232#"/&#"'632323:X04/ 4'5;T.9.##1%3:X04/ 4'5;T.9.##1-S-/U-S-/UA3 %!#7#537#5!733#3J`JUUI`IRUddOtMccMtA3 7!!=% Ad3OUThhTA3 7!!5-5Add3͂ORUThhTFb462"F(:))::)):(-%264&"632#"32654&+##32{՗טiF!'&"FSSL:NN?2٘~"#KlKn+3!n;n+)!!+CL.E !,E !% ,K#  7'3#RRbc-66  264&"-4̄4-66  -44-  #"&6324&'6%7567'5ט՗Qj('jFYB@[c2٘rHRSEh ?@  7<>Q;9m  ' 7  ;&<$$<',;-,;+;-264&"632#"7#5#5>73{՗טMV$3G?2٘ټ4'-1264&"632#"#&546323!54?654&#"{՗ט\JH<;HFHU<+?2٘1DC0B,-A ]4%%  - .6632#"264&"'7#5!#"&'732654&#"-՗טU_d.>Q@=L C+&(2٘8OA?P903F<+#- 264&"632#"5733##={՗טU@@Mo?2٘ IAHHA-/264&"632#"732654&#"'73#632#"&{՗טB'%%%@1̚08DNC4M?2٘  BVA67J7-)3264&"632#"&#">32#"&546323264&#"{՗ט!1B 2;GT?=ZmU6)))?2٘9 63C;9HVQ`u:"":"-"264&"632#"#>?#5{՗ט-%5'R &$ ?2٘$E %FnB7gC3 B-&<264&"632#"2654&"2654&""&5467.5462{՗ט|44@##@#M$ KtK $?2٘[=// ,.;;., //-)3264&"632#"?3267#"&54632#"64&#"32{՗ט!3B 29IT?=XjV6(((?2٘; 34D:8IVQep:#"<"#'3!!3ݺDS[-7'3>32&#"3#"'73265#7ೃؘaU%DLxؘaU%DLxҙ/J&w/J&w27##"&54632&#"2651ؙؚaU%DLxbҙؙ/J&x'"3#####5354632&#"354632&V-ttaaYYZD+ -ZD+ %-LUttUQMX T%-LQMX T!!2&#"!####535464632" + ->]aYYZ''(8 T$-MtUQMXZ8('' "353####5354632&-^^aYYZD+ %-L,tUQMX T])354632&#"354632&#"!######5$4632"mZD+ -ZD+ ->]aaY''(8QMX T%-LQMX T%-LttU8(''H+54632&#"354632&#"353######5mZD+ -ZD+ -]]aaYQMX T%-LQMX T%-L,ttU<n254"4762"'&N#))##))#{{||T0::0TS0::02#5#5>73MV$3G4'=I#&546323!54?654&#"JH<;HFHU<+1DC0B,-A ]4%%  <`'7#5!#"&'732654&#"_d.>Q@=L C+&(8OA?P903F<+#< 5733##=32#"&546323264&#"T!1B 2;GT?=ZmU6)))}9 63C;9HVQ`u:"":"<e#>?#5e%5'R &$ E %FnB7gC3 B<^ )2654&"2654&""&5467.546244@##@#M$ KtK $[=// ,.;;., //<d 73267#"&54632#"64&#"32N!3B 29IT?=XjV6(((%; 34D:8IVQep:#"<"<nt7254"4762"'&N#))##))#{{||T0::0TS0::02m3#5#5>73MV$3G4'=It7#&546323!54?654&#"JH<;HFHU<+1DC0B,-A ]4%%  <`n7'7#5!#"&'732654&#"_d.>Q@=L C+&(8OA?P903F<+#<m 75733##=32#"&546323264&#"T!1B 2;GT?=ZmU6)))b9 63C;9HVQ`u:"":"<em#>?#5e%5'R &$ mE %FnB7gC3 B<^t )62654&"2654&""&5467.546244@##@#M$ KtK $[=// ,.;;., //<du ?3267#"&54632#"64&#"32N!3B 29IT?=XjV6((( ; 34D:8IVQep:#"<"B+i&46?654&#"'>32#&5#"&32=B:-X"" &EM;IFG I4?Z_/+6  $/@G7'6<](X,0#3>32#"'64&#"2IJ ;&JRVIH#3+*66T5df8Hh;<34=C+"3267#"&54632&(99)&+CP=JcbJ?O CN<34;',@gMNfA.DC,0 32654&"#&5#"&5463253+*33T4H 6#IYZGP3?@23;=C)  fNJg4B+3.#"#"&54632#32.(&/@Q:GebBMX7(D".0x/**X50 #'#37]h,JJď-bʎX50#3KK5X5Q#3>32632#54&#"#54#"JG8L%K1FI""!)JD!)5S,==B?!(-"I-#X5#3632#54#"KI!E;?KJ"'S.8K;O0C+264&"2"&4):9T::"cccn32#"'74&#"26JI :'ISWHI!4+*66T51 df21>>b?>C%#5#"&54632532654&"JIHZXH)6 H4T55T44hLJg"02@@21==H5  &#"#3632 ZKIG NfS8=C+M%732654/.54632.#"#"&CC& )6)/H3>>@ $5/1C5GL^m\<7LUhQLQUW0)P]cX\....Y*/hd oG3L [h fg Z: < bBEi 2 3IG4%/532654&#"462"&32654&#"462"&2####LQnRRnQG####LQnRRnQ\Z5##""7NN78OO##""7NN78OO43 3533##5#4RRGOIq746325>7#"&1#(6jA*5 !-J.:4gq< H++h 7462"&.D..D.J!//!".."2>4."762"'9P99P9e4CC44CCiJ9J1##1J9J9J1##1J733!iBZ VaXqEC6X5'&54632!!>?654&#"bzfevzE M:GQlY@:=@ W{sT{MR,/[R|4F9N0BJ; '7!5!2#"&'732654&#"0Oy~mk`Q<@IN6-QZXh]VzwU?ME3;>%' 7533##=%ee_qe[[=(?32654&#".'!!632#"&(^Q=;PP32#"&5463232654&"0Dc{Y?JJ!#>?!5 e%1:7- ^Ml_A. Z- *>54&"2654&""&5467.54624DBlBD ~II~I~E6.<||<.6Et:/,<<,/:>/0??0/iQ9US4OeeO3TV9Q#?3267#"&54632#"&4&#"326, 3CooW>Zbh&XRT89SR:9SQ~g#/ufb~7#"&,@--@.-!$1a;%1 )|@--@,*50_h8B('J'75% J6U__1!5!!5!11ZMOJ'5-5d8IU__?!#5.546753.'67HLTiiTLGWQ -&KP[E5++^YZXVO5! 3J!3P&tN+6 ,3&54632.#"3#3265#!5>54'#<3H@7I;I#SKnIInKB7M;N#J;I9DF5G;H!%L;L6@:JJ:9JJ"%##5#535#53333#3aurpwHPGGPP41=%#"&'732654/.5467.546324&#"/>544).wT\dX7509:gBG5*.wS\gY75/:;fCGc?c*D M)PedS8C1,86!K=+D M*PehO9A3*86#J 6-7 6-7%#5!5!TϕR>3 3533##5#!!>RRKMO77 %''7'7789978983- 462"5!462"'4&&4'4&&44&&4'SS4&&4'b7#537>32&#"3##"'532Kn\;* "3 R\;- NzSqHI S$8PSeHI S %-55264&"462"4632632#"'#"6"2646"264$ ..aGbGGb,G12##31GG15!!41H. .. .x\Z200hbEEbEbE&&EbE&&0000+&)47#53>32&#"!#3#327#"&'#53&sJY"g93*+FomE.'39e"[JE NisR DANP?A RpgP DG%!5!YOk'#"/&#"'63232#"/&#"'632323:X/5/ 4'5;T.9.##1%3:X/5/ 4'5;T.9.##1-S-/U-S-/U03 %!#7#537#5!733#3J`J_U'I`IHU֗ddOtMccMtJ3 7!!=% Jd3OUThhTJ3 7!!5-5Jdd3͂ORUThhT7) 6777PQQP7a1XX1 '>4&'77PQQP7_1XX1-(<z!5!<(RZ #3#3ooZzL #53#53ooZKL-\ 526=4;#";#"=4&-0> 6,7117,6 >7V14tK182@ @281Kr414 "+5326=467.=4&+53240> 6,7117,6 >V14rK182@ @281Kt41Z #&462"v &6''6s6''6& %#'73#'73]]F]]-9<!5!<9R %#7'3#7'34]]]]# (332654'#"&54?6546"&462XS,5>9=@a,hIdwf.,l&6''6 d8$>0BL4 1ZBxQiEB 6''6&7(7z!5!7(RA(z!5!G(R%#'73]]7#7'3q]]-".54>32.#"3267!5![i=e~Dv[tVkj_y TrV[2zgQUeLX( 732654&"5#"&5463253#&KB?LJNM5g}d;J][LbbLK\\%1nh/"Dx,-( #732654&"5#"&5463253#&'3KB?LJNM5g}d;J][~vVLbbLK\\%1nh/"Dx,-( #732654&"5#"&5463253#&#7KB?LJNM5g}d;J][~OWLbbLK\\%1nh/"Dx,-( &732654&"5#"&5463253#&#73#'KB?LJNM5g}d;J][WhkhXFLbbLK\\%1nh/"Dx,-Q( 7732654&"5#"&5463253#&#"/&#"#54632325KB?LJNM5g}d;J][6+#H7+ # LbbLK\\%1nh/"Dx,-58 +58 +( +7732654&"5#"&5463253#&4632#"&74632#"&KB?LJNM5g}d;J][!""!!""!LbbLK\\%1nh/"Dx,-Q""!!""!!( +5732654&"5#"&5463253#&#"&546324&#"32KB?LJNM5g}d;J][B.-BB-.B@LbbLK\\%1nh/"Dx,-e-@@-.@@B((P<#4632#"&^_))))B))))A-%5!##"&5467.54632.#";"326=VwsU=2=wYjl`>9-@D( <`SJHSYY ju\IeO:MjoR:@9+07ZDI4KUI - 73#5>733!-BZ VaXqEC6XQ#462"&264&"3254+'##532opp>QvRRv*-4S($$oooxSSxSAA'%K##7@Eų#4632#5267#"&##'E-&$%6:("&5463"632"2(F,&J%$3=('"3#####5354632&#"354632&V-ttaaYYZD+ -ZD+ %-LUttUQMX T%-LQMX T])354632&#"354632&#"!######5$4632"mZD+ -ZD+ ->]aaY''(8QMX T%-LQMX T%-LttU8(''H+54632&#"354632&#"353######5mZD+ -ZD+ -]]aaYQMX T%-LQMX T%-L,ttU!!2&#"!####535464632" + ->]aYYZ''(8 T$-MtUQMXZ8('' "353####5354632&-^^aYYZD+ %-L,tUQMX T8 462#"64632", n.V..h 4632"74632"& ,z, .6.n'3fwwzn462"6462""2""2"2""22""2""2""2" >^!5!>% Sn#7^enwwzn#73#'x[pxu\Uww@zn373#[QU\uxn@@wVs "&'32673SQ%J$QM4##5r462"%4&&44&&4% #"&546324&#"326B.-BB-.BAP-@@-.@@.(]t#"/&#"#5463232=]5+&!#D6+#& q69 ,69 #Vn#7!#7`F=jFGnwwww##7DIž#4632#5267#"&#'E-& X$%6:($<zE!]   #N D/ +M x "  >  e 2   B    * F r ^A   " =Generated in 2013 by FontLab Studio. Copyright info pending.Generated in 2013 by FontLab Studio. Copyright info pending.Circular Std BookCircular Std BookRegularRegularLineto: Circular Std-Book: 2013Lineto: Circular Std-Book: 2013CircularStd-BookCircularStd-BookVersion 1.001; build 0002Version 1.001; build 0002CircularStd-BookCircularStd-BookCircular is a trademark of LinetoCircular is a trademark of LinetoLinetoLinetoLaurenz BrunnerLaurenz Brunnerhttp://www.lineto.comhttp://www.lineto.comhttp://www.lineto.com/The+Designershttp://www.lineto.com/The+DesignersLawful use of the fonts or the data contained within the font files excludes modifying, reassembling, renaming, storing on publicly available servers, redistibutring and selling. Any unlawful use of this typographic software will be prosecuted. For additional information see http://www.lineto.com/Lineto.com/Font+LicensingLawful use of the fonts or the data contained within the font files excludes modifying, reassembling, renaming, storing on publicly available servers, redistibutring and selling. Any unlawful use of this typographic software will be prosecuted. For additional information see http://www.lineto.com/Lineto.com/Font+Licensinghttp://www.lineto.com/Lineto.com/Font+Licensinghttp://www.lineto.com/Lineto.com/Font+LicensingCircular StdCircular StdBookBookCircular Std BookCircular Std BookRegularRegularP  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghjikmlnoqprsutvwxzy{}|~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~uni000Duni00A0uni00ADuni02C9uni0394uni03A9uni03BCuni2007uni2008uni200Buni2042uni2051uni2070uni2074uni2075uni2076uni2077uni2078uni2079uni2080uni2081uni2082uni2083uni2084uni2085uni2086uni2087uni2088uni2089Eurouni2113uni2160uni2161uni2162uni2163uni2164uni2165uni2166uni2167uni2168uni2169uni216Cuni216Duni216Euni216F arrowleftarrowup arrowright arrowdownuni2196uni2197uni2198uni2199uni21A9uni21B0uni21B1uni21B2uni21B3uni21B4uni21C6uni2215uni2219dotmathuni24C5 filledboxH22073triagupuni25B3circleH18533uni262Euni2713uni2715uni2780uni2781uni2782uni2783uni2784uni2785uni2786uni2787uni2788uniE000uni21B5uniE002uniFB00uniFB03uniFB04uniFEFF zero.numrone.numrtwo.numr three.numr four.numr five.numrsix.numr seven.numr eight.numr nine.numr zero.dnomone.dnomtwo.dnom three.dnom four.dnom five.dnomsix.dnom seven.dnom eight.dnom nine.dnom space.fraca.ordnb.ordnc.ordnd.ordne.ordnf.ordng.ordnh.ordni.ordnj.ordnk.ordnl.ordnm.ordnn.ordno.ordnp.ordnq.ordnr.ordns.ordnt.ordnu.ordnv.ordnw.ordnx.ordny.ordnz.ordnspace.tf numbersign.tf dollar.tf percent.tfplus.tfcomma.tf period.tfzero.tfone.tftwo.tfthree.tffour.tffive.tfsix.tfseven.tfeight.tfnine.tfcolon.tf semicolon.tfless.tfequal.tf greater.tfcent.tf sterling.tf currency.tfyen.tf section.tf logicalnot.tf plusminus.tf multiply.tf divide.tf florin.tf uni2007.tf uni2008.tfperthousand.tfEuro.tfminus.tfapproxequal.tf notequal.tf lessequal.tfgreaterequal.tfparenleft.caseparenright.case hyphen.casebracketleft.casebracketright.casebraceleft.casebraceright.caseexclamdown.caseguillemotleft.case uni00AD.caseguillemotright.casequestiondown.case endash.case emdash.caseguilsinglleft.caseguilsinglright.caseG.ss01a.ss02 agrave.ss02 aacute.ss02acircumflex.ss02 atilde.ss02adieresis.ss02 aring.ss02r.ss03ampersand.ss04one.ss05registered.ss06 caron.alt commaaccent commaturnf_ff_f_if_f_lf_if_ldieresis.narrowdieresis.uc.narrowgrave.uc dieresis.uc macron.ucacute.uc circumflex.uccaron.ucbreve.uc dotaccent.ucring.uctilde.uchungarumlaut.uc caron.alt.ucundercommaaccent .:;CD DFLTlatnB  aaltcaltcasednomfracliganaltnumrordnsaltsinfss01ss02ss03ss04ss05ss06ss07subssups tnum  !$JRZdlt| $,4<DLT\dl*xJx"*Fdl>X~8^^ r    6 : V Z ^ b f S}~0cdefghijklmnopqrtuvwxyz{S  !*3>@EFGHIJKLMNOPQRSTVWXYZ[\]^`cdefgimnops}%&+,-. &2BP^lza|MWNX{;OYt<PZu=Q[>R\?S]@T^AU_BV`CbsDD UU $"[*4@"[bbd $,4<DLTC B A @ ? > = < ;   {tu MNOPQRSTUVD",",  ("&"("MV *4"MVMV",6@"MVMVMV$.8BL"MVMVMVMV&0:DNX"MVMVMVMVMV(2<FPZd"MVMVMVMVMVMV *4>HR\fp"MVMVMVMVMVMVMV" ,6@JT^hr|"MVMVMVMVMVMVMVMV$ .8BLV`jt~"MVMVMVMVMVMVMVMVMV#W`$"MV#D]b{ X)|}~) !defgins%+,-.& >@^`cmo}6 "(IOILOLII*B "&*.26:>;<=>?@ABC033 *DDhU Pp$aMNOPQRSTUV[&N$WXYZ[\]^_`bcdefghijklmnopqrstuvwxyz{D]  4NDFLTlatncpspkernX4ES   $=189:;=?@:@Z2h vN`fl$*.4: j x 0 B H n t  Z     " <f`ffff V ` n |  Z f4 0&00:::DR\ftz  *@JX^hr"(Fx"""((>pR.$ ((( 9 (9;Y2%(9Y  9;Jt9; Y[F!_ r)+,.    !?B r s &+, .    !B_a hr s % +.  !ah lrs | & ) +, -.fu !#Ba r % &+, - .    ! #?Ba % +  &   !"#?B_ahrsy22 %&),.f  ! ?Be+, . u F  9;9; Y  9;Y[  ! ?BYl|  ,  ! " #?A BY[^_ahilx#2 !"#;B^ai uxy (kwxy z  !9;? (:   " #9 ; ?BY[^_acht u y{ #  wxyz(  !   #9 ? BY[^_ah y(  ( M(  9; Y[ 9;Y[< "# ?BY[ hx #?BY [_c y  D(9;[9; 9; 9[  9; Y(9;[9YZ2<((#9; ! " #9;?BY [ a y    ?l|?( ( "?F@(`(P((<< ( ( "(?F2## ( ( "? #(#?9;  #Y[xy &  !(#?(BY[at u x{  ((J 9Y[ 9 Y[ 9; WX8YZ.[\] ^8_`9Y9Y9Y9Y9Y[9Y (   ((((Z   MNPRSUBMOST8QNT 8TTMNQSTV MS MNPRSUWXZ\]_WY]^[X^ ^WX[]^` W]vuvwxyz{ bdefhprvwxyzvwxyzbdefghkprvw x y z{ bvxz bdefhprv{(defghpru wx y z{ bdefhprvwxyztw x yz{defhprvbdefghpruwxy z { bdefghpruwyz{defghpruvw xyz{ bdefg hprtuvwzy2   9;(D9 9   9;  2  !?BFy ("(.   (6 #%&(*-.!3?#AB0II2LL3TT4YY5[[6^a7cd;fi=nnArsBxyDFGMPQX]^_abdeop!#}%&(.GHJJMZ\`bdfillnqs{.),Nv- j  ~   y       B      (( (((        2 ((t (  2t   uT;F C HS=ZW(%RQ 3 !!!+""J##))334499;;??AA BB]YYo[[r__``aa cc"ddeeUhhtt[uuXxxByyG{{?||@K8*5&^_`abcdefghijklmnY%%7&&((N))/++ ,,:--4..,bbccddeeffgg$hh)ii-jj.kk0ll1mm2nn6oo9pp<qqArrIssMttPuuVvv\wwpxxqyyszzt{{u'DE#L >Ol! !+$$%%,&&'),**+,,--.1,2233,4455,66)7788::%<<==@@DDEE FH IIJJ KK LL MMNO PQ RR SS TT UU VVWW'XXZZ\\]]$``kk*mm oopp*}},,(,    )$#"#" 00*68*;C*GK & & v  !"#%)349;?ABY[_`acdehtuxy{|%&()+,-.bcdefghijklmnopqrstuvwxyz{ ~ M< 2(2   2(~ ~       L  ~  "   kkmmoopp}}   0068;C  "$  H1H%8  8  ""$$9%%D&&*')D***+,D--C.1D22*33D44*55D66>77,88=99::-;;<<.==???@@@BB'DD/FH5II2JJ5LL3MM4PQFRR5SSFTT5UUFVVGWWAXXEYYZZ7[[\\B]]<``@aaoo19:*D;D*+=.D/535F56EBB3 *5>G.?<1KLJKLJH()$$&%%&&))++,,!-- ..GK2#II*0F1 >^kmop}0678;<=>?@ABC.)T+2&       (         (     ~         j~  (( ((((  ( 2(  2 (  ((   ((         (        O&&''((**+,-- ..//012255 66 77 88 ::<<==DDEEFFGGHHIIJJKKLLMMNNOOPQRSTTUUVV WW!XX"ZZ#\\$]]% "$$ %GGHHIIJJKK_ss%N(k/UE*{aa`aacdefCgZ }5hqqq~qppqpqpwx=yMz W}]XGj!mkj31$' "+{{{{{{|aaaaaaVbeeeeghhhhhhhqqqqqqpqqqqqrxxxxzzPOaqcgDkkuvtuvt\m6789:;<HY[IJKLRST2jjjjjjjjjjjjj~~~~~ #),.04>?@AB&Ql ^noFllnoaiiiiiiip-$$&(*258 ::<=DXZZ)\]*,CI`jGKqvդ'͌{6͌m+PK!"׏]#admin/fonts/CircularStd-Medium.woffnu[wOFFQFFTMlpGDEF^46YGPOSd1p$4GSUB^H>OS/2[`OwOcmapp^-ܷgasp^xglyf F%]umheadX66,hhea!$ hmtx0=`Oloca x߭maxp  InameS8U /2postW G_wB]_< ͌{S͌mHxc`d``~ /~` 9oxc`d``L@ `> }kxc`ac Ul,L@|Bxgp)#P#H9Q xڝ_Heǿ;3uY8O9=ǩ't35M37mfI,DVQ b,bEPP[lAnbЄ. *"NqA><}~y5$uc_ wE n~IiZ O \nZYG V&h2JqVn(_6ջ4~{પ#]A_)=w46  r_;M2~6X>ب*SNh;7EU=L\wHVwE5T-utg  Y8H~/sSUp~#g5ʵan'߫X*mrݠֺGүq^QE"cYr<~rmUv1yjwbMs2tU+iVeJT4:H>KPtV,V9^K!5Z,k1y_l wh p٠z-f^|.lr#1SC^[5u%s^%]h{SD/{ o>D4KJ9,aogyMS5ziT%@>:|W}g 8 ]ϵ|=:tx:5\H9Ү(,TN%k@p*(aߪ*Rr;=P3s6x53 +tl0a|wDvn\u>_Cj\%|#uK|qjc]sA_ _s#|\a&Db.ۘNp$ѕ/:3KtLu ёs YY>[*SE'N,B ;TRE .QpXG^un<1?E.s7Y:SZf=&>d P ~13Px-}Dk }총G;>iv}vvv̕$ɕ<<$IL$$3皤?&+3y$וy*'ߑ); bQh*B.otZ^ףB(NJeH9\V)+keV< ?Op>ntWվV-RQ;JlhZfڪFh]V=#=[=~OOoboӀ(ð!g(N<8f\4e|2!`*n̨6{3sY1˒eR|\XbBX52"/ȳJ[mk&l-m]~؞I^?NEW2z>8֑q'v2Eg%r\+Zv]n{ν[c8F6cv}yW"*^[xxҞ<%ϹI@D C' wa3{ Zn6HXVSRCYxm+rt ߌtvt33zfkRPTZYIװXUȵZדOy:<=~-ʄ1 bD/PET6'|ߺKզڪZpK[Vyȶȭ [ne7"(&12bM2f1O"6P&@, 1k3:<UMj,o:Z$ZbbhnťnK*  xa/#w<]zX`ܙlڍGɟ faAIV&ʃP /*0MIܾ=?va!އcoںeӳ&3I7Id`ZdqE2uR( b Y-f*V6/OT t)V>~7/96Fil>Jam,˪3Ϯ)h-ͭk΃STVxEc G#u1m o1QޚYjLĐ 0 c02QG+Q˙ǿx)rrH;lZ=RSg~*0# ~/hd"Hkd[znIeYiUĆ>kwL]FR 0_aTYT;Nrƛ[1r{,`#㐓1ug,/ԥ&-LԸz,AEF('_b'3ʳLT1?!!?R T~Z+c :ϢLt8TdJYZ<"oʂEQaCtvFdfGVmRZekOKHHRR/!1T0bFcTU&0ܟ<3?JrpJ2P Y bav]um GՋjR̶T3̻aʺs*c7̅y~(; S2PD?"LI<lNs;ip+P5%{v݁7]U\m00(&rfrAY%HXd;6ǎ~qc\"ǿFML-Jp_E`"EŖe}_չf@_EXs,)YX(ZxX?պarހt2rm!.y13Hռ3ictGȍUfUZ猼uʥXrrsyZ>9&ReYϵ20ںP|Dafa1xL,1*XHR],)6*B B&$$/٘g1]µisFKjZRjSSkS⚄*cXRgx`å9rRwXcyfq9NA&:%OSIy_\ k*{FIYRXҠo~*:fgL[ {.j=k/,likǂnAS.7]ySIwܯFF`j0roaPfޠ<(w##eDHOLHYٷ]Cpn:bo^(@ yx*Fr/qÌ^NiF\`n|Hmǿо]U`={WE0ERCF2v|>.1 $/Di۟=̡>۲nשuuGO]&; -s:۹sD5iIt)oF[V3).d8JZI J]QqڪCқӌ+W&nzZ s[d 7浯yx#5Hv- klyy {5aCZbR(L?#YC40]=2]1#bQ~k𺛼zg%jwt.Ak6GWU&@q.kL5H'ܩ>3OTjǎe[+.u 7<';X^Us G׹Ҫ2$y; Ą_Tt w~n~E ;yX,P??n\cּ~Ǒu11<WX &!ЪL;,7] ܆)t2U-F@ !B,^G JT3mkrػ>ZSqYxĿ~+;/wLh@;zc,CxlL`obED^J+Ra^Zv݆/‚硇qEW"Ɲh ^ E I&M76of= XRǡTFT5œ$k*w]3w{,vO)m:nͻ&G)[.W&js[z*%s$lj^)?wzKU1mO(mĒՖU4GqZJiiJ*z{Osp9KvTU֒-]y9T9/H[b_{gӐ;n*,97.ӚXx<`@xFp6lN-p^]aAu 1v}bLJgpqbJvJ&* 0I)@+b#poK׳]hb 9*wZaG0d)-"p%& UUDe+k-enn=lΫjt'}7!o %JFRj2ٜEyĥIXg\^:zm_$ڒ i{Lͽۊ2;{Neeef] 2?~665' s1 =c&FGp!h7De9FL pgLNN휉='101ak~byց;9j9w=t"c0agG_vJ>3TRm]87i܋RKJKA*u;?ڭ]~MM~Am-)7Z#=&d7!ھލ rJ ?]ށ{ mhԇ~V;' 8L\Z jk8 1Mbl u\d{fͺ(mJqV~_YBilᆷV1IM᪄8rsvK>.0<\z͵eɍI<~ Z&)5Q' 'nyTϟ֠p[0kNqQ%N9 g$5=*9h=P &tbfz"A.aus%8`M!v|.y||z|/o݀[Nv)8@{Vb(hi*埬u ƫ+=vaVY!zCTj/#,&i62%{lXdQ&AFbRӪeÍ]uZkwG rLLu뀥s@I@91^iTI}i%Q=[2k[b-X9V,-.5& 3L%E%]99]2eEҢbKv8BQZX'7G-b)V:ש5k59bB=:xh˞x]vՖւܥR?QD(&ƕĪy?V-[˔ * Ⱦt*AH?ό%IƘ޼E4d1zJh qyRsJ&!5'PZjNGC-90kXA$J1,SaoI#aMxjFcUeaMXZ. vW :K6Vo$p"%3kU#ޅ޼K1zU5._VS<߷Z{r!; eْ#L+Jry,?o@ K^&H1]z LU*nnK Q`ةxvF y%)h} 6G6Ù.8;jKdw [nZ=&͂Lj]C,G;o~77E"hUvHpq7 TmyD-z?%ʕJy+v/^/b7z1oSk`\kDJJD|;@$Z4;H>O cTX]e `6.7bp*4(U_daRj*ex`hGFAYq{\Mi؛Hefc|ٜG2ARz2+#64w6k0o .a)浉W\ mpyYuے+oz:9ߘ`31D* \=ENGˆ+OXv0ڔ^+T s֌LuJ -/KZk &N<36 ėqG5^d' Oaįsd,0V={sU(;}7no]??:ߒp/Qꄡb49(?֙˽CJ{ፏJJ֭E,{!*TbB;~+ƶ7:r 3>6ʨ$]ajoͮY_b"pN|8kHLv ^je< $8Kd+ƚ};q 9Հ<@ڒƥ'#ׯ/֤= ӟ>!`1CLܹ /v-sU<˜cI T=x2* +Svu&cLZMa'C(wQe6ONWi1ʒuoldH,b7#.ٍ9 »d͚d6f[򥆖Ќvr;s&$l6T ޭ߿.."".8p7ts(}e`PPzm4KI :X}>O$fʕr_ ݂u[~P+%]8!n۞۞ ޵$hMyqd7WYIUŒu0kK+|eڵc^?'+Ck^v, <;<+/ PX_aeMq23E&!6h-V(#dobʠIx>@s. x!io+."'*;10&&7 ۈ Ej aѡal,.";i10&AS]6DlC˥j>㽜7BV &uuoau?!L4](6$3tݟƮ&0lsr1؍˔v4p)xLpw+h.GSV^ O jW(c+{C?aG1L7zjpqpvt Gx!A߸v.@P&jjB'ﻯ )~ѣǎףx.1<"'~t@ujbSIef-Ή=P4P[wm~eQǚD0Z2oۡsѺ;KhHkߙ["nVm)R~\0ͳh,g.&riq*̵ ,bCxPt:Jx]Uy>Y 4~8u+t+2VRTOqd_tRNR*8۷mkiIt^t5O>O^9l' Ȯ .  H>p-,ȤHyltNґ|SGHCp+L--AaHilP[tQX2sr|pmOYs{G#x%^Ճtcy1}G8*};8q髢Ѿhɝ;8ɣ!- xU!ŠT{)SJ,?詀 N!Y(&&'`FxUpS v|/R|~ "!Oޫpѐg0!ҀI"5+`jBB`s^6<'"'a.sv|;PWqAt:'*k]͂Mk}[uͱpFS閜E)朣 I ܖ+$E^92WZH 94V~< 3R LpbJggl Wa,_7*stAE?^p G>6DCJ<)d6" ټrɎ5![ͺKI;7%P]š_+eDžM3Y[ZLHuE\""RӃ>L+cB A.trC):_h?h:LxI@SaGx|npC9&|rf <s?锟B mWN|;篋N2m'v\uFO3E('~[y>E^|<.N/NKSStvϸ/A}fwJe62j(՜i9P3L\R5"P1,e*Zt%F}j6=p.cv":15c [Wȗp\|!ZW{['æU؈. y<ONA)'L4CS8pJSYj}q'v"Gh1 '=fK#^Jr)':"/c_,yXX"gsMWnh,}_@HJRkċʳʯϤzf F"3*!:pǎB=u"fsB\@4zIK˸7WuwܛeKQD{{{{11ߡB X8B]0B<'oP 4I|g6vu} ba1s{y7coj8lQv=LBoS{V´ImHw5# z֟vTmlNV$r !<a(5B9z'591dwKnxVq]uN^4XE:hyONbh=lf=7㰒J媷.UDm H=hk8ߜätOdE_+ |{5Xs?F!34Rڵ!0݊p9 [\Ƶ~/%*ccq8oVΟ#?lgF s"X.4ʋF6 ^y.>eT߲*㋥nZ vG,*._pza\dli66ʣՓ?Oğ-5,%[y;~pf$qsF8blP #X$9JdDD "qݺ_riew!uv2*%;Z^mz؄0)GRGC+磵&rxo5Tf1ka]n> %AbN۝Kڂ6SNTǃ/RѝUBE۲[jw "p{?)Xg?ix%gh چow@[>x4e17|عJN߶ ݷmս}Op|,4PO2&I~qh6m>gOfLblw4obBZMr¢"U,9{.QK\˿:FO<LC&1sKCO) n_9h4_x"ZNاawN/j귴-h}Bnƽ|c'~M(@D,!QF 3YP;k_RT>8=i_7~UΊ5u_}]q}2Qz)~{*FT:%GXGqO_{yVЭ#ĞpJ%YR`5Av-/<7WFjkԱ4F_?9Z=j| F2a(޽]\g/#wzF֝{/U>p#Kp1? K#/>| RtH]Ύc犐 h?_b-h:!u ^Ofo{](KIǕ<}Y4bjVֳgwrSH*DPl*?rbS]V0Rm$p>gFȭDWrAnadEPL$[l<c@}}wq7yf<\Z\<~#ʃh#A>6[$l?c=7ͫό=&~2 nFǭ3KY a4NfWW0no_paEǼ޾N`P[T&(&Ih/w `ω[kbcb1Pۗdb@J GXF -ꨱ7ZzB.8f!p=q[wZvaRg& љiV1Xaߵ%&"YgCnوN@!HJd{jZȫC][=m=mm=d0F8ԼGdžGgK#\#w.:i=#ݹ%/S(܇:~?I}W'~2cIߡ yT3;.ƎeߏTn?b bṣpS1C` oWG.\$aZmX.e6$aUlټ^3g> :I&N _??OR_l`>y{uhO>|z{N>QQ^^ue%cd+1VTfXmZQzw߽}Gmk!sn/+ ɓx\=*5;۹fl.|n#=J9d{dlwE '+TM_F,tؼ@64i!s/0- wPrQRqcyI>Xaq?sx{ JNL'Or _}uV]Ҝ+3[WepU.pz)82̸MENVW؜5F0nNidЙ焙|s1MXjHoG'唟mr6z u-['{ζpݟȃ-ᓷ9%p_3C&ڧIpFeg&ǧ>ӡ)6sûOJ |3 `3\?0z0?3:/q8O}O}Q3 X}u3 hf 3}3`g {fbp{ύ>>3 Evb|}A/3qtnw#g&<_:5kRnO=A)顆>چbÉIj $?u1մ-ɇi1qYɬQƊ*gfTϮТl`QzV%Ip(* {(VKZ[dĄrV# s{u/q7ے-ֶc\ .Oy.[@&*rޮF`NGn+2j+j<|T$c:MZ6%}%XQf͉M-Bc;%mX8<5571W^P'ha59A^ݘ 'Agԍ _c]0M$9D#S%N*OL,O:EtU퉿Ao V+cp7UϐZTTk.%xБ駐ĭoٚ$$ D=)9{5V (փ;xM;LWlw>qWIB1i%de.zWɊD#m?d$7wW;IvwL2ki ~'D^tOܴD™[4 ; ntGEp˔0yo'͔G։<ꈑc]SO>?9w@įR{P*9 ݤ͞=O? zIh&q~Vw>?y+WNϏ3][ {_w!C k:nz,[،~ ׭a^~OS$z=mSg?l8=(5?P$ `|qWydJ~fԴ4Tg+;nt%t3-О"T§zh''x{X%d+ Fc>hg΢X,츻ȵFVABX`UkV힗e` lI͎In(+șX}UKqX\iXߔ'f$zw|_\gS'K{<_NwB s}Hoqpwʵ&E }ԃH e&+d0 ׃T}U<”6KE"SJ%AfA`VġQ6BCUU%W$d4!E!7=CTE2o)ȫO㺞4G8.r]E!v0 iޢoLJÕXv};c=i^ nӗo_cIxpa e_W\'Rϙ狢e|v%D^$`oe[PTv tn5(22J7v㔜HTdSIr >'طy0g% V awttJq Dgމp\>=ヒq'ak\[E2/, i*1|<^mW۲!K٨DeH7QblEaxJ'ED)b|a&F:SVWIV"գ9aVMYXrȺ 6BJaU7:=[<.I>UAbld9щͤQebDi ߠ6{Ϧs+A}|Bp%lA ZцڑD:хn`.a>V*Xau5:Xa}l 6&asl-6ŶH! Џ,ClvN`E a1X]v{aoQp08 G,܂SqN8.8_\8WLow\o ͸o5܇Qظ%MQGx~T7\O1>AğqRǍ0:B4#8&Lbp ñx7q)|# ?iv/w߲l5LI<+xb9NK8U<فg.vs92W\s ɵ6\\ !7܄r3n-%܆ܖ)as̳=wwj\r'p12A9ƓB.܍sɽ7܏ȃx0^<0#x$bMY2+.}s!sx/^x9W^x=o7x;w> |1>'$|9>"_|*_|o-w.#~O)? ~/%;~#ϭR)Cg }~A$3T0oXhfӚaapə8f<7q&n˛xy/oM|apJI達a0c8m7 !Æ# + )GJ튡[FX &|^0i &M)4ES~є_4MESIg YQUCD<4L,ʈFkUrZl7=eQ:2f΄ϙ-˙-˙-˙-˙- sTfUb*eg $9aǵ--Dz=^K84;nk8㎯EGv]P(AMP!C:d's(?C:rT9nNo97K~˨Qp4DcQ5ƘFЈ4bq I)e m)F6 -Q < ^wB#!ֽ!f% JҤf[䜅0K AV8ɪ^ - N+P8c*cE mL6~EvoOɔS*P;rUN/|C6Ws}a{[(q$J tUsΈy!vqD nXdQz= &OrlZ6]M]uKt!^j8JUғթzU4'Qq:QyYq+L4ΘI۳jSJ,oZ0(e~>cX4䔛Q_U#ך5o.lYh$Jhseˎ#-Xkeϙ4Je\1҆Px?wBWwݡSqra a[8?%{`%š?Wd.~7N368'@1IlnF2^{Q[S<8+SL24+OLr~+c<q(C%jЀXXM؆؅=؋w W`2Әɳ<泀%Jָ{co]v+:-?HOWڙ1z>1in1== Vq&gy-kX8ױ lsy#o<>'^}\çOug,[/:>\]8/b@%,snt `"yMhx-1՜C #y\8!c8 ?2O"K/Ro,'0g )MW̩B.Q/Uo<^);Q^sd ~ 2_7/Q֩|@W"vSIoY6{̾š9vdnt/{8C?=:3**O[ѽS̔Yd}tXs/Õ)V)kE_5CY½嘅zn2!P2[bhܗ#ɢU&D7|UR׳WM gr2 X۸s ˸+` k۹z:3 eiAGu7zn^^O˄Zr[ g1p iنj [0"֬ٙA|SauzcdHg>ֆmbز->PX T* 4--p'Ɠm8SR:iF:~k͞=$Znַ2{^{{=FeL9^|˗ ep[Xuq)‹KÏ~>|dpWEYE#Z@+T1bfS1}y-RyzHݐHL2UC*攭:8:4hOΌ.E]}F?&**+*+O O<yjs+]zʏ*WvWO_uaլUzͪOVV>)sU?QtO?9 ]yfQ5ZNvk?6x ΰ5lӰ_וԽQ质wcI8ޔYq2IPCNT:1ux#)AJ$Q"I["VIke,[t=)s6P6vy,k aPbH.t:py SUZS@}QO$7u]^lCKtv`Z,ѷ`ޅN`B<:FJ'hs5Љvk;ގlW r/;/+*Y鬑W:F~SΕ5OZb@u'ŇZď"VIȪܾv>#W5hϴV#S1*ײ܄xNd e:@>-X ]SoZ@Ke?hASp=-Dupa1Zխ^˶Ԯ-(l ըkG\`|>F|.B^ ,w9n!lWkPqGsn zo@qeHи]zCk8I@%F *sP]BIDv8ZKz0D M&?Z khWHFRPh[- ԃ?# *CD(]nD7beAݏBoK5t!(@؀Wzh<(zpzOY=OMk };@K@3P׆XFϺ!GmIOҖ?qZߎSz `DW=`PIcCn!75SQn%ިlA6QO):%:] KRm(20E-#BI4RRq3Z$E6 2Ww5p2X!#u e'FT=hvOF'xKC5Ṧhi >B^rCm- }#'y'FWcH)Ƽ#+KRϊl܁ʶ2`l8j$ '$d=fgmM߳>'ni=>%)nFfP. uG_/RVjD V iMY ~膶و>GNg= r?p_/y |l7r>)WGZK8x2ϢVoZ;NKVM@/&F&[`HcfԻX ++-Vo5K 6 FwAsq`iKKlXZ ,VK끥'5J`i3 XZE-u+(F 82`^H(Y`섵kdQ$ņF-6Z@?~ZGZhx~*?zGu&Psw Х[&eHt>4;X:-tQ*R{ Zl#;/:Akii sCNnAnu9 }I/I3aF`~,Unv:o*^+띗a|zzyEC c $H+^Jc1$h*z#u^:o(FAoϤ^xmA5VOzb@8 ~k+q Չy)$sUEjkPG-Z=c՛P`Š$[mnn`ZA-ʤ53a?zI[BHxk*_1R5z;ˇ"ń =.Hj%䗑_A^*kޑ!bɰ#l _nA nSc{&e6(7վm+J/%Rx4fiMEƻ/new}km])[_Vr[]+N3Tlχxh6<^[+' ӫnD;{'5xœP֓"=m1@]ahw-%Ʃ* 3+"' &曪mSRE~2VV+a.PgzOGƺP.}^9aL̡g X<> XsgS#(aXmD AFbJ/gd2}ޱ1/G  |:ްxߠV*m ]RCGk䈺уt+?%Whk,ډZ*S}XQFVZb~nu l=֡ Ó EP( )@r4z@Ҡ%$I皚ZA5#!YK1NˁIiNLE􉎣>r#(th Omޏ2QH'J}Xz$7 ꍥݤव(Nos=ocsog @hm8Ƣ|֌&$m Lu7}J[ښB#G]yz hG/ZЋfb#zz hA/Ћm9x-e1A6ȷ#/By1KiފѺx'b='-6X!RDI?ZGRttC d<8] ]DW:UΩjs3N]ݮTkj3I]D7(dzs36Wݫӗ{j}X7lhgkv%>|'zSkuulKmt8iMђ*eM51y%(J48JlGI!ڢ:PQXƫ2JZƓLl#`jcK{n 5Uje}-?aLtP |D yBQL .A y5եTno x ?a9tܽLu A@]J6Å-] ԗ,:KR+JHh5shꈎot;ƻxmI]~u] xR9Wk"un.[ckѢRw :b\ԵP/Ci-<#߄yV oV owMJ907 Gu,§Ҳ>@2[P{\R@ W>]USP*RIJ9EȋuL`ui~:G]C2ۓJu˜]'׏za 7 μ @Ffo^2{ Qʋ%Y5MP2ΧRZnR [J%*33[q;5,=guv+?/"2UV"eA3%lڝJqv헸D4I E`QڸZuWMYmAMmVSwskMZ uT)Nh0H+ACq50EO yhXl "/w=ʶ5HW1J(om\x7ePgm\ρ9Q[X7Sa^t:NjK&,IٳHg go,D@˝Kчa/ѓBfHjY+ϐ=F Uj<yBM|Qͅ%mFʻNPz@sC^^WN##_j 0>gFX3[|'W9?A  }TNbNQCSz!(M{9wZ]҉J·>mWG4{tO%@AR,gA9x+vķ,,->[oBN?|㭀5p.}o8$k(v;;]d¶C` -Rog"\}bq7;A~kvvlqF[qwgg0J48 3Ր1b9@L75vg[=QOP$ʴgI/vXw6_o(-55@gMXTyWfRskxfy rt9FܣAsep_pfO=_KC-gՠPg^[мZh0;8:=4:c$ӣAۡ C6(.`>]I-JkY|uzD yis F)yD=Rsta~(yXfAq,]d?ϖj&-k)큾, ho{G?;me323da=HdKmD?욠 +,lg;eVp*iދ/J"[Pq>jx7w;oM*}Y^TH%hBR.N2i<>GTz6G49D_Fxt&!0,g#T\=Ao"#!zceR܀u^ i܌4 o/w!]#KΑeH+z*\Og&eXyVNHI"gHCBѧ7\/F'n ͗8ҍ&%tVBZ Isrv"I!!HASwz+Q ANWhU\ƨ1r 5NIuNT' j%Wj2XS$nP7HpuQM&9^ݬn-U*'s)6u|Y-T +vuLT"9Kݡj\Tw D-].Zݭ=K-UKnL-^u,S)W\~ZVy D}ס_U{2EmRd&hjp7pp(4i8WA3ǀn5FehNF!)mM&-G< ?' D9ק UvǐvT1P+HEr:RLD*>) SjA{㾆4Js υiwh~3].r)q&R\TƝq}1+Uׯ# ~y R#yv+tR)hv`f8yi<,6E?#Uc=)JHci>ZgȋzJV7'ZrYT&?z` 8C*Ffi$O_#cHdR@#5#8B i!'@OF²Ti:I$it穋9WA[*𕦼ajZ-!ccW?QktZ;?U?'Jޑj"whɪe>`6d8eH/&@ N~ِxbԮTir#͐dwq}h!HBJ RSHH?CRg?MR sHAt 1bdĉ s!Ȧ  x~x}!x|x{1xz xnRJsӕҏ7,+dAc1u1ܖpX;FwdܱakBfdDmvְ͌%Er'zCo>ΙyyJ_=3;3E>4ے͆û˥Uzv~?6O_L[\t%evU^\k_3%w'{Nً^"<HVv$A]m/-wV/OO@?~~Z }"O }}}bzM{+z;z; (d4iICٷY)52t܏pџizYOAGېZy6N['mz] چSOݵ1-X5,m-GuΓ~i9nԽ$[m9Yxh6]ϩ @3=wE/8MJY-9]ZAVI;-~ҟ!63x QzvxDfO\bm/BO3;t=$`-:m3>{2ۗ^qJGgbQљu!=6)2:[w3QY6wOpqʎݧY-|7taݚc]YӛN^4Zs^Nrl>P >F>ZI 9CƉRӭW=f%n^K^ўQ~";{O<#IO5齝CR޷;0Aeok/[)ɒpmsBӫjēNmZw۴o#I[~PL'hd+ F?=Ҝ!bI^%1؇okB1dHw۴ë&Ѭa)n.YK=K=.]u@x0R}V6; 8vz&gpnY9}|iA'&aGKp.,]ۑdYY絎9Ʋy Xz@N \@DPw[Һg$i=AlDsnUkٲzo8exx2nވoGR\H|nJeE=3_d'3;Zٝ0gC!+{bD0ORY'=Zn4gj~@f~9Ѹ ΦYj&sR:\,vY)i䚔GKƳt?~/yl';#ʨdsYnb'FJ۶:rώ]lFy3KܺvNDDԜxe';|c-Qhֆo7dYlv9/JEO۩5H 笿Gjl 9ˑ۝g7-NjZucfryC M5= i]ᬅ]WI#fh{wiIӄ猲; #Ųւug棲o7x ڲ%W@gdT8mAl%cp ["/jJ8SF٧,XxC"'(G ؓ2qs\,]rVcQ)*p| ."筀w3u(򟿟A’;m&r"fcs,q5FOr#OĻw;dR9Y>fNڦxiu->^(՛m:k2ۉGo7}ѷ+1k|ٶ-m|MϊLsޣG=Ǯ3jɂVLwo0| ۥEc{3x?Domd9F\n3qxvq{;2u0ӳ=csdu7ڞoMw3ffv+Iz__X3zϩ brO߫ߑ{ YTt3k{F3ǡќV%+ZzF]'#׳XwVhNh~+ ;<>dѦ]RJ({Wc4>ѿ8#Z>O|+gxUWD]2My4DZ ydM2M\Wcsomd! UIMe/=p5$6~gu] ;w֗5٫PAWVգcu>9,YԒ>Şu`rß/5sM]޷ 䞻鎿̅+wg?ao@cfJe͂{>Ϻi?w&X:iȉ\vgȶ]n&@`;ۛ.aeFҿ9˖ ߘj?pb=~oܓv:-7 K | s<݋{o=Vg'wt}M$z)*D-dl*5]a|GrffsqW-lz=ux \µJC*҈{z+9$'" `( 'q^\A_˥\2Z.\Z9IGpW5\zJT_:)^9u\<^y$W*5ʣFXcp|}kKkKy "\^WkHYt.;`ZZEZZBU# yW!r(Brr}\A\<˹x07ֆU Z].E"\E\["|F%ϡW0%ȧ*`$FcW |Qc>Hȃr_}œ%nof__} Bs,pXjQTg]n#;ݔ~~ r}c+Nv}42g$y#@~\tzzbȳG k.ܻ2i1]4T`8Ti 힉==Ka {Rhd !O.4%0+ȁ[F դ'͌{S͌mHPK!n 'admin/img/heading-statistic_reports.svgnu[ statistic reports PK!V(admin/img/sonaar-music-banner-orange.jpgnu[ExifII*Ducky<Adobed       9 `  s!1AQa"q2B#R3b$r%C4Scs5D'6Tdt& EFVU(eufv7GWgw8HXhx)9IYiy*:JZjzm!1AQa"q2#BRbr3$4CS%cs5DT &6E'dtU7()󄔤euFVfvGWgw8HXhx9IYiy*:JZjz ?e;1H^!/ A~QdK"Ns08htňv*n۱JBw〖@:. 26+)aMb(jvQkA$4-Ɩ W xNv*i u'`wm\m ڍz7 难,ቧ2V/v, \E"y9'@DtIyqmrIR)yP4EzoLeb|n6}|usKwH*є~6rZ})6T%!g୶IJku낓kՇBAn`MOÁ7i-Sh|-ڧFAJP+Ž>\c yG\4*n"mn=)N5de9!*2ɦhI J?XN#٧/{/z3>ڝ?fb.#]€T#`ZT#B<;tLޙr;MJ>%T8~~Fg8q=$=}3m]] 0*Nc'mgNȐY]~.9ɦ|Rt§ƒ~y7okp@铎>LM& +fU4RK ue J()9!Dv% Xkm+EjE#pbA>\@Z: !'O2 3(C2)U˸KG - -k2FԊ6ހ Qz'HUXJVˌA cޙR~tc 1p$2Cm\bb2@LO#te"3;(5QѐvK$^ cOܹ 4g`hJP@,n,-ITb.,CƖ$Ҵ[+LlyXP+P{TwbeI% "m~P_3Stw淠l ՎQ\Lª()C؜8G4ƒz~f銚|wvyEe!Z+Z2*U(ǶY"eJFa@,6B+\Y([Y/ ݱ) 1{q 1C8nZ Dk%MSc-# CJ7YH(90#@w RҸm6TSlZA+cM' rQ5ں!(X S\;qB5xaU%PJʌxov|T)Lq[| +Il.4mk$V5,@,@b#vc2P/jU-+ r+QR#zw0- X\F`IXNI%!pJ UFpTx&O%o i^R䥓j-,KXk 2q j!]v #[Xt]鳬7 !(ӳφV<۬[jrC4qzabTpʎ3[ٺYa{"0؜r4雀S bثV)8^g юowʲHD[FݑF|X4h:e׊ {z0&0xWM5Iԥ}#Orר1 s;~$SӦ) koۧlU1K)\ A]S*PPznțltTIOJdLY4ܘF;HHY(xQQ! \O6J+Jq%M݀(LC#&XPs_T,f.AZqB6P70QAQqpB4B?US+ tH6Z=1* 1/Rw$ٰ*quc:\/OӶ* u,  y&b]]kvv(lkAZnpZ@(..iRRbTb :,]O `TMJb abl k ^um(o[lqKXv*خAp8)-RN4țll0%qjOӂn&lVЎǮ+mWNzA% &z0Zibk\KnH+c"YӚ6c_VClK|ȐT| nI|A%!IK@-:1NTFiT. xƔDm{YHr. l7brD$ZAIF[Ď*I*'"g"QjwHtejiw,;d:;dqX,{vX'[pd]@y81$Peb!V#ul0\Y;Y%Ґljfa""ÔHœ{c2PHn2ȘeՔLr=FdE<C/QOyJE55NvH8D;=:{).InuąNIvNHE;/GLXjG*P RW1ɶh}Mҍ~]cd]hl.I%rc-_ntʱd1nZ eMly'DD5v91r#bd Yu,B" AeF&f""l .n@q0AFL|ze,2LzBAJn2$3wjIܜ%{iP*oQ# >ُ)){E&ruS01R} H$ẁsBƽ0,"8uQ3kg2p%#U6$,(Od@b'@zfdd9RI$ޛgk3p%K{f@v W|L-A}>ZPT|3N,~H{UyCM(GZSSVSA3ep}E%ƙ\_XJ~#Ssjڑ<@;ĵohvq](֚NC8z 0nқ7jHj8fE*I22~yۣLJf܏3B(F''r,H~"vNe\[qno&4í2#3E()z զE *-iCH倴)' ߯&Zv];E J,0ZTT]nZd l8. Ju ĩ2d`BG^ٱp +qmcnp%RM1%@]@A^%\(+XĖ $JJaN'7Ͷ2rjr\,xa: .Z`2(R VZKNf_P )^]X֝ CdM޻RTYw69 BEA @YKxH u6ݬP0(.Z‡i Uu^8-SLA\[*{ҕp2E!ƥMG-c]RQN#t 6_ E]EOR& 1FHE ;/_Y#o܉! xz7dCW\E+NœCw&!ęQ5L(i إء+қlۿ8P1( Rh*Nȋ̘[ȞL4^Rz lm#6翎Dq*(؂*Gs FYjEr~(˄d1'MF@ $7h s$@"Q TFP;v ZVz7ljm'}鍭5*Wqd?EuȥPʪ`+#w>7\4YD0Ӌ%crNg Q& Mts%Aw/l4lnM%v#t쇐6偦ERTvFBWy)#\,@:n$b $Ÿr5E4mrYI$+K~oif#j <.yq_ޘr-VLɷ3Ude& nU`7=xdYҏDq۸̷i LJbٝٚI&ͩc&&Žk`99:t߾ ݔbI(P; )A%$bށ[!1"EJ  )S_rnHaOlbWFK(fS~e!mh׮Bv۱JR:ܚI(ǣJ$i"?^`cC8!0y#$)DH3OjGj'B퀑ZGqŠ\Rjj)AJ)Mw [  U 4`H qHTQ*z6WUڊ%M@>!+e8RɵR,Z]C֛tH5t CӨqZ\6`d?v,IiM iZv=0Z8v;k ”!iH[>,j@nzeJ O%Iz `9^}Q*bPUpv TЮƞ8)"d k b]Z®]v)v(v*ڒ:S7BAbR-bRiAZln``H T|+Duu  '#0u92[o-[q3MPƾ#ܚ1⦀m]僛IIl҃0ثx+@v*)v(u1M;*nk^)ڜ Kxsja̎N#nrZN L z҂`:Dq*v1޽kmD9clmj-@78I@ ~16B[]\+TVȐoPjD;?(U>8z`HTCA!(U Ffj6#]̈y r1LHX@ 6Z?S"R(h:ATyJA\2~[RՐ K;VCvY݉ݒ=OVsP ifE]^IȋِiV Vh?ks2>N<>K%kr&ݶqNjdW46H`Xm|h NNDgDA[KTYSv o:fD>bFzl})~1Eq2Qr0i_]q_?v8c%t̸%V }8D >G;@KPu6 n$wƒ$m$h. Jr=+ޞ LNh=\(L8#mv+28N%-o|Q|[W;FT٫vȂDU)IjZt$Fb3[jǎZ'm',t$xa= LB(ArυQ+ԍ%E[쪻W)6ȴ9\ʂEUy<}U&W;c㲷R2l9;Q!PVD-{1 c0Vrzi%A4FD+5jIS+jw(rRT.YǑ뒶HdQRI6WxH[$ @w-$A Y7i7ieı(98:07h[@ʹTˋnMg!CB\MU5[E0<f$G7S#&KeH9P;)sC.[\g gDԐ8`q列E舄HhA޿NBUф$$MKd5O]^4%y? ?,FT#`8HsSI" Π1ڴ镓[0&K.ӏz>$N9^;ܨ-s}պ-i F"6)L$I/:I30F@PiU#tdSPV{|B7ɘRcZXP jH@)6_|*B&$.QOc#b䑽bH*lI>)O۽ RdDBW-QqA\w]5Vf Pl wDž!- 2R(+;k!cļ48 y#jw XP*68ݭRڊaBߎH5 hN5LVePBZ p+?፯ j(,=rLJ^P7 ؤ4M(uwmSvj-J,&\.14zWL[(ST  `V$ P mM )2S M C\4^?vF<+w~ؒ,,iM)CXFMUIH*?eT F2Mґ9&\7=ib늷[PIYD"M9Sڝ;R Ÿ+]l rS2y4lPW_n BSj2[tjnv'xaӅXPR1WbߧzbUs! F͸?-[") niOW 4+\1HV#!*lmckE4c)w-i "ER} (`;)+ڸ7>تQ_2$UQGdIf$fVddi"JGȥ7̷j (^y(F»a2|JoDf%J{;$I֭%Uk. vZd&ߟn&+xaSMCJ B mb; m$,KP a4;x_~~FBD XAbIZ PJ-'4'ӅWŽ ϏDd܈M64$n6 B^-HTtAjh 8 j5ޝqW Uܱ[l ߮aV)ڸ)IuOmUrTWd7(H4T0D-3Z]iiʼnQ] Rv[W$Ąp;`EXj/d2aF;V\"bv,JҵXdcMSMb h|F\+l o~F)^z\$ӪH#e"Ԉ#54@-b)gk [*ኯ}>pFvSO%< l(jƵf 3A @DkNI,]j[[XX XثWb]v)nW½rPoT*WA½>we|EpZx[ A\IHnXkȂvh ]ҕ>%rA,- b<%: w R#$I)abCx}8rq%K% w_jlhrj!"blJ"Д˚)bl. d"X5+ZT`ǚ̓b8 I낙Zh{tekA# -5\ne#\[cq-Qr4ˉzצ@mɨ`I..,p5L 'ŽAZ9l-E銢YK Ip8ڬg [D&tQf^1932'k\@=:S#+l2jĐҼsh"}? ;5 f+^m,ru_<ȽxAsQGEIMbEn'o<gizۙOƞPkҀtl rÓ#ܔ5df|4f++uY'P|kŧiHjԓfA%siM @" bf'XJb5ʈݼn@1[M&=:1ƖD,, AJ$7B@썅IT('n'dUݭ|I)ŊQ5е㉏. yt>tk];0ZңejO^ِI*MV?lk;:Z$nTZLr9MҸ-iJK@:Y'M{+4Z|GaJ/7h@k@K@Jށr3*$H9 ysŋ =~|ЗRrp+XOć/mh6~&s oaF.\bBm3R[ICRjT|} Q$yF\'BfE҃^(` Z|sO4nU,5ZmY8zN+ǩ;c c[$ ڵoͨ5t.i\ӡy^|F:+rH bdy)iZDnxHJxHn* O7obX'%嘙A.&PJ7zkd1;Q'=,lIXEx+ecH5۰ rd:dfBv QQ=rf'dOJW*YH%2FVB IQZP{`G8TVö$ړkE>ǵ'j[4 V=N1]=zg̘ȎMһPa31oˆ]Ib6Fgar!DZmQ!ǘ N=F]#.ڍQRz )R)%h]VzK\l4Rh$}ɂIjdk1iC* &-ƇlBJEbZ$ D$1t$ƛwmh5]sJ"7ɰX8B i؄zL h CaEwkMB6 HS\(֔ʜ~nOᅉhhpo|,VƧ!"B rE*wΔ ZT#&x]:`4ژB$.&8-P 1>8B$€AXp k  FG 016?NV:̸S %v*/H2Ejwț`t6j(6w|c}S*'e:a`iŪxbS Ӈ݁C|O4튻\"p*?`tDխ.ol ^Ʀs-aUဤ/$JȲ;8xVŲQ?gaZ bh=pT« {K \"!PS`wOM&9+cK,=EFRk>َ"D&ɥ>zN (낶 V5Q;,+# OU.?)JR*+S{dxb`~쐶&Qi\IP#R^"f죌f)"lb7AJRۍv钉a!/ErYJ$֯۫FΆ@ dBh!!#udLvQfa;,yvLmߏ\4hZCu+LUVȡ`Ke:b6]$"Q we8Iߎ&耑h Cu #]MUa2\A ?h R,BI5dh{aB pQZn:o;;'ޘݭ AHk֘*hAT=sM\l$_rsH 춴&EqBH7J▱CL*O\P0&*dtc܌U}Vj ^@-RNѻUV,(=raYko*(qI t(w*UڸXX|Ui8XP M( -ŹbxJ2,,bhY`UؠZ]v*UإثWb+1?K8Ѿ$m<4 l2W[W+bMUंIyUxէs1sbI$ɵP b݊#DE:wH^͸m*Ei$|VYk bAn  B}[yp',j.lS \Ya\@A-L+TP!w"T)+O2^NiRpI V)S^eb\NXKLRU.Y^-ȑS(|1h tl-T7R~m Ԛlp\$wd7A\4TG CdJ%:Jee(<["q){Sn'zo!>Jd`/|$I^b/_W Y_xʣڧGfH2 mFlD,|uʆYIB9#_Q IJ51lyG&AJYIdi&59Y,y `BC5Ll6p^|aת)fA9c;BבvX_`+^$!z~ی'1P`CgwLƈzKѪتC~4FX*Leٔ]5f+ ۉi;'R1豩/P78h# |ѴJnlt5ApDAa!U''ڝ+c@nєP Վ|M2oaҸ#z,'%ܩv9x `(^|@!@!p1@BNiZ xb{+U--pцHpOm 2둭Αu;Wq,' X ɀ $Hr;2!.ƟfB,ܸƷꀸ'31Ȅ闏Z2mɉP#,lr =݉: ҡ' *4lS1{dik(mӄ!cv X ѻ%VS(zԞ;bbZ1Aۦ(܌/A'zolȅ:hֿF)l{׮+nw lUxb+Z#Lڛ+Mv^RL,U1h726υD +]#RNH:e;2[C{bSȲTinr7A[_ FfbRZ(+m9"DR&k255xދӇ86^+ WPu$SrcmRFx%( Tb%vʂC "{1 =RwÍ%vo%li)?*+*P1V(hSVdcg4dWNT/8 4DڠңHH4<(v]Ɉl+$45p2YŴ1):DAfۑ=:{e|;o[;֑ʽa=Q9G% ɵ8x]+lե m &ܪIP$VOƙmld;*qE;k Uk] d :(ZU@߽0 21!ov÷lm8Zb"|6(7"r6'U㋇tzm/|3!Ħm]LjwlV ~XDOmCciXZ; vv[˯ECx'ځ{ءثWb][ *5,NRE5VANB&s06Ķ8@D6Ŭ,])v* vKpl҂{di(onT0[*]Mʶ[Ok baCWWu6UثK`S)o[Zⅻd$XwB$J aC+8|i"N؝U})l{`J 7M&i> ȖA]Ym?v!JB4=+FiȣP;90cӐCJ\ Ǝ90p$mъiz*qЌAC:h떃a-CmU!@l啨~-IR;-vK8+Fr{`Z |%'FTYd1*%<{Pi3!RiCFYDn*ݴ^J6n`%5XD#gw?=$l؆OL I*Ԗ>S4HN&u!(KKV~lD q+ȴPijM)2 cчo|ĝTU%1KwȌ`0[QsPbhֻx(Ge}JJp]"QȼXҾiB+D8|5''{Cd]\ʈɈm#;rwi'w[ヽ#3YV Jli_1e%mldjKmQ-D2,P\rZscnDY;u9(};\Un4A7( LuӾeqwm*Ò0.@LI1PǨ̸D"ʌLN\aU+Qy O9IvE}Z̓( kGrbLg!E 4@F4I ֧- ${`!Akj<09ڴ $[RQ B'%HLE)ԓM6+| +Ko\ 1%NdWE-pg T ~jwlUjv޾=4aC€U"wd6 s9s E0ԺV&ְm-|0)1T`BAڠtaƦ{d'*l ]4#$!E"SZ IhbS\,Bj;di+ 䩇rL w!ƔZK{8p5w:,rE™7EnvA[XPVbثW wCqM5 ]-nVr&>jw;Qn\zbӊAO RqKc) Z5'wz4}R†qUjwʜqHq+A |F|#dZ֣+[ n•&$ ?hSzv ,'ہL5$$ǩpx^ !M%(b+&ͬ*~Y0\J=[Mmv*LSN? UثUMF6I;Y|!u蜘-Bӓl4 nH %LK}oMp>8]@1Z^<n/Pm5m7(﷾ d뷎D` E̘F;WR1!"<6,N3(K\je"df^jZD790vRmL57ۦ ;=i4HP6 |$eM sb "vN91ujcoXSV,xWc]Ipc׮4i!(k|'oʧ[1F屮P#PqVPbM`'E2Vb\d$F'l8hR\*F]mTvۆ7l5+[ S/ikip( mLFw `_ fx=\8GEIWfھ0518Pbo똆ckه(eVxI%GNr$vk3D8$ `\7偿&o> TcL1Kz eD6kr7O$g9$(ُrܬ݄aa"{9L!u7485JUcO4ƧQ!EB*0!= 3P6O6% 2> . )OJejjz{eLpf* Vjze͆YTv T%E?-+-mCǡAlAw`ZwBCDxaJ QA ek8iRwc;7=QA`Hn.lF!abi6өɆI€65 %=foڇGj;O{ ;> $4٨{{屠;'f[sBH]\+^d|>AA D<1ƯT}dbZo$9OzbJԴ=6l1DH=mm q\ARS|,\]F$Y V |[uۦR%$H P+ZZAqES*=&cobVSDbCb(kdpRmrֽ;,CG.]5 I1J 6`zREiP\4;ⴽۘҾpё^"X' v߮Ij~*)۾El 0$(ԡ+KV&\X;oLUbֽ&JqZu1U.tLPU:b!T oҀdYb…#r,ȱ*(w rסNxjHY7nOރ+F[Zp_ AcqP@W;-I@;NcHj=h 'rߦ|x:%}Kt_N@HHSԎ [&u\APv8r9. Ums(N%uf?Vl $B7dHEG^5، X/zNVI (F|WQ# ToSͮ@sL1$F4F'SH˸߹ yB9* cqrƍ(qi[M)+I5iLT5Ļ*ࢸ@UEi06\5Ar,oR;]Z@vVJXT+ǔHXg(պ *'jdږ6❆ĩd:;wъ]Ca -b1$oAEp 7H+ػN26Z(ZHP'*3ҀH+s~̜mՂ=م@f1Ǐ\i2Ihw=Tu r? 2Μx&7?g*[1@(},/Hfddhed! P)S8Ft2 &0cgp[ܓ dHq'VF6| M @NyyA5k@)9ŲP!+k1sZa$1;4%OQ )?\j%lik-ţ[[]v*RP*(v*SMb=p3aC+LPKXK%m\mi(v)v(uN)⫀ UK]Ԑ|r.7r*Z5xajKWNu=*i& [oMM T(®.bAuwnף\ iS8)H@-fMшёW+'};S,U}E8Yw++NkQ֝W/&}ܴr3CHQzQW,v(Gtayfx+ WL̥!gs5M5-­)}YזIPppR Aklj>.v=p)j UDn:dIf2\U>g2eKtqA6\4nQR*iրTYaRd`Op2#gnUq;\e n?g~{ex8vR"& hN4n6zvIpb H | v‡Pb#尠;I ݫ`d.ح4XqO 759ԧdw;bS*owleS<<C]9 ]}y,>rkԚ B6h#PQzNUv(@Pε{{f9o@2F$,( $q>;wBtiR96I*zDEJe"zse!a ⽺IQ_p+ޙL)Bwj]Su:JV}j}bj69Fld~XDAq4LI.z*Rz͔5~^ILeNzR3S#/RY i.&pqr#BUq H6IZzab qRpSSXPPUƇ{ o;5[b[Z[Z[]Z]]v*Uثc[0$7\Y[uuq[k baCCmءUp #|PB凜nNS?,T@H{Aɰ\@j$2QE~~Z"-M<0j9tEE#v|22 %xi+!%;FMh:eS" z6_ 2T`ٗ kԬKAz׾sx*\nnhӌbs+#NF!'tmnOjv3&BbWmxMf{EۈP:A;%NNM5vQH\ңpM`ndnȤ d9y,#KImϣƟn2vu1mrV۾L,j)@܎-ϊ%!h%L̸> ǐqI."iLTɁ06G@7%hFMfJhx, R"98ʙTу ~2VrضjXt@}9Wh~#^ Fw ?h%qoivϥUC 7!Ds)|M-=5mP OZ$h$/s$N܁$;X 'l5j݅ V: sa`|v8uWeq̜\ AU^@YI;`,\h@FI ؐ.`d\4h>l[#J(2k!AC`c*$S\zHZS|6b| )aAaSMiMҤt<]K4*E=+RU*J;}96±dihcKjq,C 693BFDxȬ:_ h`[ʈ mxE erZ ֪kS1珈D2p38g9h5eN*WdgAwRq!(FU^:҃锁=T4Ppҫo\` S$Kw4aJH.Us(hj{w520<+Jڝ2& @&y.CG G%Aͨ9ƆȔhlT E[1%285`Y{Q$k#nlVwSٔ9pJpJGSHU=rxI<$RH^{?䌄dFJKf@4rG##QqU!p|+V5;7\2 p*I(ŎM-mPkqg2AARTVnM^JL]|Tc|=u8*˾d#Ez۩>cveX*_|dC8ȆKfVZ҄ @ځ+P1'cL`⳺(:i\#r$A۪ccF =PƔw$qz(>MB@LH$Ҍ *M;e¶JCTJp5#yPe/>$̸ܐm[q(aȒ8Sp

<LID8FThBƕNA67NB #nNxXq¾8 _% +Pz":j҃$ -X S|m@UU4|,E”C>dՙ0񘓿?bN6 "w2u >[&AO oj0]Crj8,x!w2z{Ōі nj&;xKʬ ")3Hl1VM sP( 3>")$M[XkBT0)vҬJ:;!"!V x) d"A✈)3*7q.$ŵ> Cr$V;A&o&TiTʞErVƚe] XcZJ´GSJPm \h~Xm=J4Hw8-<([$9h)۠ҹVLrݏ :i2BSzCAqP_$ /`U^,+z}&6JO4SA(TJ>D;+idDE><@O& 1j0ߺtݾY,*F80j9(*۰$ 5&Q(B}FIrlܨEpܺxPjBU-0Cʥ"3FSR]VӶ1j@~rB`d $:ƷkTB*,hj(*6趈X'& QS`^52<éK\ q;t̜3gƧ_kJm∩K qaCᒌk*ddsPA!0!i酉k;q5?b(v*UyE\ąjlHC\d`@&.[bbb®]Z]v*_|RPUp;]v*Uإث`hI TT"lAF!H-⭁_@Z(E|0[# 8֊IWEš†b۱WbW[mup-]'Mh:u4qVj트R -|X A]P)FRI$BЫ k2+׶J!rS \0TadHgQP ;A덣cE*SRxwɉBScuGKvH ,`WߎDq-ΥOr C, -)ܶƖיXRIQWa\,RrAXkL,WLRW a;6 ԉ4"WIv)^Sdm,aE‚:E,aCCc @؅d#aؒImhzJ@:d"`ܜLJK{$[`-#PI)&܈]G (nOwLd!lGS畂)Sxaƿ]jdi6K3J|1&1*[L,FrVde!-(A|Ј2($ʌU(lQ 1I 4򐲘$nY&p"Di@-j7Bp 2kRwdD(x~'jx;3ِMLD_)QHE2moj碽i"(J;2Dn ݥxmNbAz"FhB+P(#{k#{B]3!VBjkr njFZjwZlȵ$Gfw SL@33lv$ִ_ e3.Azu @:S--Ŕ1Vy.^ o *U|LRt.Z[z\[ڢdڇ9f<'nM$B OɎwRh-%dBV K|D Ӱ|TR#AMtӒ Vm A pF*$9>Ĭ\»b 7 Z ĩakG_l,W8-4ҀM݄B!/JS|'DTp`>ZI;3W^` D$+[ĭ}|03M[ָ)‚ p(<{%"2a3j+N(v*UثWb]\RU]\VڮR*m1:59 m ƾ4Нb0 ;G|lwr#7O*UN;ֽ2$;ZZT ɀ" -w4jU6|NH0! mVE6i6lm4LUT:E`wVA`qhv8R`,gAmq+G<^F'lNQnV$14jhZmK}3NJ.?_&S0Rm =~xiK =NcKM(A&>&+ ,@TUȒ覵%{X*v|Nc!ȄYQjZ&Ec@+L2,ajކ6c{\ $(4mx{!E{ȖCiP:PY- Aty5 C /F@X I퐜9 UBA"[Hw^N*v;DBoۮW#LeA#Q{1evF5짜HFT(P lŔ#lK(bךd+{ZU_Q\cٹ4`XDA zB;%XZ010>Zd-Mw ùqGSZ;bNGJፕ{6cP Ԟd07o8zl DHL^һйN0ɑ<ܓH V]1QQ2 ڭߩ1&րOL(\7;d+:Vr251݁H$(;\&*Ux4]wr0 y!LN29=*YRi#mTt#le ni47^ݚNBa(J p4JҿvU{m S5:2pVtDx(2]H F`B[V 1f:CIw]o-Ljޡ?(cނFW,Gd3;x'r#)zK$4Adj;sarߒ%<@X /+(xqG.OF2R#!Ŝ3-xNB6 # M0j0xO)U"t'2ˈ[͏DtC4$)!wb7$ثDb‡bnUrd %!$)P;+"ہD ?*dLY!ML4A]cJ$%^ >%%kSC!&F ;m 8WV v-_l M `UbG\@^7˃vtI+9lcNfF5$#L\l V+74Mm0D&e e1jܱث\wƖբ>'ɲ $-FQl*U^@ CJ=АҕcTJ1HS(rV֛EPkX H]rD*; dBza!h(: Wc!%z* rK^"cl#10#A)lGDy|UcɊ'R9UnΔYLcmM+q)!LdEqTbxZd 6&>+"W`b{(Q9$,u(PٓX("T+~Ln^\&gvʸK_ @=BB|M7WBX%U5XB|*CtBYjzfF$ThIkL7x冩(7v5'~3fv n Z0+I JO3(HS$)mm ~$eSR"HNk`HRQZa,h>ڢ'% RI|mȈK5Q \8@ۮG\M"O<&.j3DݎDY*R&#p*@+&rOoO5=Mle? (Hdf>Rk<"4W>P)QJHٰ" d4,Y7]}W!EAߡ-Bԃ\J> аZ`e7 Qmj{So "^MZ9|^Psu5BFi3,1ja,Q,ѕH$xx`I!l8'v嗃&y|z햂EXφP"r`Xl;Ws2f!|ڕ#Q0PP((*kROJ6uA0,Z]SZR+ևamE=)է5_:]GBGO`eզ}T5Td#0'Ep<Nn ׍6 F 4 +M,is8` ~dMG!0}!Aݧ RH} W,+BBDiCQS t wB,  7I6R*: iҙTǒn 76!%Y&#qPmϕHeUi)ߕvm㺚>JEM6U,b\a;W7\>2v,|pC-86<) @;}hn-؝LɉĘh 1fN56[鐔[#>ZIX? " lȏ-[&NAɀeHWg W׮N栒k#ύ coeU6aVR>;LHl6|vfM4MZTq! Dz'a}Y!@Q]g?t>pqK uQk~<yq&9N-(WԹʂr>QrB3LU%zdD)dc2M$vdJ -B2[ZxBdWU7Rr@ A1^*GY6Vқ(ą]b\ TviXrAa;m mQAlkMpF&f f2\rRe-490iX@NX5鱦xV/(!LO0 GO|J]xm)0ɆMIKkO\(iwLB A%lHS+ !MjkT4$Xb®CxVKWb.+%; =ID l"|]AIC/q_ Uq[^ i㑦vi!w V!ᕘ6%sD oCx1>Mxу.:Q)Q ƽ퓋\c)֙o A95u5‚,KU# ^rHwM$\E6;.4xK*FMțf!h }8@^$ԏ>,tUN [#:p~p+kN&SRW|{:9 li6yִ

PG9t\nO-v5դ# $ry"Mw4dKBǐ2b\Y PprZVk 6@&۶w 8 efh`pP4R'3(tj"Ki?'f;zm*~=LE6㊗tUZNQ,\FĞ]}omV)M0 hT^|dR+L(i*<{@r#PjALA R?LݷĊ !v=EU(5M|6XDE:ӊ|*zʥrlG/Rj;|;NT Esg2%/Dx*|r|T|L*Ȝ 9^b " ňhhj zom޿*TSaY Xa1Eg+z*Gd`ܪrȖՠdf9x,;rm6SMlc%Ѩv OMiE妣 mr8iXA.Rd62F;5A;OLdTh9#n*:{f1h1(I*UF̈NŷFvlc$iOf][!2zع5=;eR 9,۱ܜvH l T֝LUa!BkJ/Z{ k (kZxmC!_ ,(pjteEʵT~H+PY-y(t8DPeue AU{bDO-Eګ,)ԧ|a&5W ^lbV T8. #u*UI#0y&P#tɆP@vX!i*Y6P(k v*)kov*) wȐ$5=29i2wclZCبUP57-kQ]!A]u MIk$.\-C6x9u #ezwH9IqSCQXT6Ɲ$oqu*zЊy,FiS 5†p$P,ĒjN6Rmt4ą8kRq*Qߥ2%+\:{dy2PrHi~X lZVP o!2D袕e\ kew@T)});!"j -qU^Ͱrtj+q%b"Z-zdY5I޽ 1(!>RF~GXSwbiCm,H·O$hm ,KXwZ#k +XPUثV)Z ]BK<j]Tu9HDYl $u| ъ­VK{`KW/vڞ8ղc^B7$ [xUإpC|U? T 0\v‚*ኆWbb]iثWbb-T;0$.ƛK1M*gKx"HL6Seu@ qS !`p"W21yBRM)@A`‡t$~4׮_k` 肢*Ek=̭u+ad8X qYk1Yn\ێyLOQL_I"[k:3rQq+)A$kSբkK"#\{u$0J FFޣ.xʨ=m4 Kq$ viG޴vEOrL<+ᆘs@O)(v5?,4iCN0 1XX6CްԊ䘶PI_nE2+kh#qRTo 6%z|D̳NIUDvZF%A<@ƾ1UwC Wإ^|Ry( QᑐٜeERIGƪր|c)JzSH&NW -Ў\rYi/vU"#!UP}+mIzjO=5܀2ҿTuY'D}#I<{?`:r w d;_JN$`Nrؖ D5O?,@A&`TFb$Uu&1;**j+2mW_ݕMZj|r 2%Q-ݢiUdL@j5#~%E"e',$ D)H' iHƣđ5]jKֈ$&vcK 62KWY_[噻/`4(m4.hwH3O2u*Ie4 XfHmLfZsjG8zq JiY=ŠZ ̖^-˖JMKVKxE_fX1#\<nY5kf(ZdsQS).&DH|05ݳ4 ^:Ujg-%։z$ą4xױߌBEC@Z]msJZ[9ܰz &1QQA,ڧ:*1j'SJdjʭu?!g$;ОȌb.3Tj j}DžrO-WaSUiu? Y .$pOpq/ |Aa^j"nzQ\mtɒVBS"Leq uz4l+RW6c pԖ*u䵖.,B`D,-Vef&D5<ҶZucs%b/~"XjQJK7PVIط=!"xuj" db$/БU2 ZZN@A6YSsڽ;l۶<I7aCnz $T^O91% _*Os"PT ە:屎ynH2r(T7܅}*@O瀲C bZFLlisv($ƹ!C HĶ!Rv%BZj:ᓎR٩.xF,`MN"GTK! piSߧі $K‚8-aCWPbSzbk 6:H aWbb]]Ve5 Ĉq'[GUP O|jP]o]bCmPHx 7#û`Գ *ZثxءإثWaCXإءثV ;[œxT iP26Λ kqpwၕRdPX^9)j,d,ipr`) 63 bN " pĨ--S߶. k\WL \_=U&n‹lb! '|,]]VPQn(ɮ1J$Azd `=^̄wioC,HAݽ%F"O\AȟS E; &R #1!AL`8&ByP}Ӂ2ˌA䍇B;ǒ:o$12EMǮĴ0ǷӂjI(գuŇ$o؟2 |~4Z3q_l7I(O=82RԄ+f(I"J]r4ۨ4-dwA2q\+L \|I $4Dӡ J8U9`KH{CJJ*nX$R549;kժz: >xmjsLXMKz4d WҦL$R rmKj`,PuȲZBۿ(!IvI\iQCCL4; 1P'þ eM>㍢Xn Xla EEra275SfIo-(-bb-W~ G7TqͬUثl(FWm Ȥ}Hǡu)6'O5+ 'e$ UUeI%o_Bх5LSjRhҽ$,JP$4 ;6-2V>N|UjmSE2LKAjvKXxa-T: MIܞUvlbN+A"x,:`d#8U܏Lim*F)i5L__dYDLЈ+0E@1h,fբٷJG`ſH@!-z{סŽ% *5  j(~X`D =~|ZM@?$:6@Da}_ @,)Fh* 5h zנ/jTI-qz3}0^NTE OLJM#L T2Mc2\vbHƽ[D-U@h_]6m0.*~)Ȓ6ėFMn"D':M#ѭco⹮c.zohjcQpvmJ -Ԃ~% 0ÌX4Ye uo9sK2IմVt ҉@fN=4}=_1 @!YJNX4 %^]<]zf^=lNV=\LOT)$exP EHޟ\2~Trڒyt{#u4¹ Tr}&ܜSbU'o՗%2B7˱q -s "i`V% eڼB^cnU"ZֵFE/Q{Ɖ4CvA)R|! Mݷ!B4˭ʗ~Ah "ͪKJ >>XAJIH\´^M;ԒF7Rr\ #PVZ6#tvaׯle501 Tr4 de(s nݱLW(GD`/Q_.Mbԭx-4U5YR`t#{FH- Jd(^B2$ b_*$EUcB(}\4nj@h6 EjkZoTȯ^CoF=)đ%ljkAE6 k<"@Bb )HSɍ nl^[v[ BX %QX"abFƇ&i3) B_,@\9Q,pw', Ee*[6v cA;fMтNֹ6 m̱G Ee''D}@ KV$lz`\`V,KP(k MMqRVCCXثWb][+(0D-ż k 8Cb߯l 7 KXxWWlV݊]]bءإxrcV-fIثx;;pCiثc 0&†*8b )W 5RW 6e=q)vM*}nm93h9&\UxS۫M+a1M [JW Rq( .\miͰ퍤&59 JP`M\Up8 p2w![uq[jUتP_|%LbV,J– p ݰEqJU;Fـۊ+ M܂(r@0%Li\Wȡwi,&RU"l!T@ d@g+`T䈩*)228ǦiEvP6$* 5X@\hv>Bj!*\gB,QLه\(ڜ{Y#g|ÌLvAI Pr%1D=]'-X1oT2zݚ=8sKAև2C3-jY\\LP&Q7'ngR(Wh` F31ϒXDJC"9nMw̑J"D Z7ucK`W`CWbTfn ,g^+rgvú9V~dD4dAAȎFF3:7o[3l<; OZ}9#nEZHU9Tr4LzX w㙰"rbE &JIOe[! T0NkzY'D2|ԑ'1JN9YYR B deޓ_[RB=45"4(bV4$("jMertbrzlHzPckp2<dy^*cmN `2;,;䘭*@AbCT#zȍ4ƾ8.hJsWҙNX(o@+Y7aI6uR:ͱ7WyVgd_qOrxee ,CϒĜr |Q7mShmpn6%Z5z-I?.Q j{f,LQu#o Ǝ>`Cލӵ7S*€1`ћN9s%ڟ a<`Ld * 8 |=a0dDj}" FY;1rC%2)E/7maI!$WWMtⅬViZC$TЭ&F)@W̭>X95R'#*RܛzdGrN97K"iK%\F9)cːZ:NJO֙L Eϥ Y_ Zja M|)]擄_0qSaeGUI 46",j >8%Ԣs,T3֦7 @,/FTz䌸aR ɰSg5" dj@vc=֠ x(QckZxL^ f9*C;o_(ZOz}A-S֔ "<"LWOJ|FL2/Q+Qj}Ț ŝ< pȂӬB08Uݫ&@1n&Zd v-x˒֟WYgCJ T])@ڗF2V­CA^;$AH;dR.@#vۦSg#fj [rε:TBm┡ĂUX -\#p^Y糴c `1I&x`Ta5ǨߦXlDgR .<=mEe rVœAڐ-㊹O 1',LU LX];q55(v*bbZ®*UثV%*R;o[.Z]x5[b ^]4R(nM~ (ƛSdVኆEv*lUw+Z`ڳ0UDib|1EbޙVT{`$# JÅl*1K*1V+Z!;cJJXӰFS \CB]ڣWV!n6]]vqP*ኮ(•i!Z4p*ڊ CV!" Pr lRBFY` R+b EeOL GQ)"6fwQS&ZÌ|R/GC Q1KJylQ6m7KmJDލ)ਮ§f}@ '$F&+N31qsQjlbe߈)!7ҝ-PN(u1J(@r24%pS|ܡsr1 mV`f2SncR0w4/4v%'ŔTVYIQ۾i9Џ -SvR,DAa]|dAZ8Ew*>eY&A-I6RU9ll@YDY E t53<]2O$iƪG0\%@5ZvBD+kv;v*E;R2Zq&w9ccjTz J{rMQtf#Pv"8dwLe>ǮZg͆{le^EkW|p4_ ŰrBSWĨ82!G/]v*pY44"*EZC]8D]3E!v*ƤdJb U(D]R7㓆d,#:=Y;ucrm6ubGdo54-ə̭8BYװl0&GvQ≫ t4햂(٭jrAJ0yԀރ@6EPWS)P|Lk9= $ۤ|+ȉ*>mO DPu$֙0ZX%Q0[o!HX{d$›I&t[E9H21)P2N]㈪G 2M"d/]p]!pU?37FVEmG #b'l]Xǰ(Xr`%,]v**,Z]C5&o:`DrzNԙH<$pc|$VCPN|mFDJfE ꀡf2nj慖 ֘Zz D}&v6QkԚ`) F[V+ͮ'Mp-:GLSKJN"1VV;V_$Ӿ*? *$KBAj'fDxGnmd2 D\KUN$rڕ;k]Wk-דW<֥v Rǥz`a_DQ.jWij{dO*+Dh:W6ꝏQצ($ҝpA{/ Jt늆|:EYg"3@LnvkR7¼j#Dq!!CV[Է"}+ @5yP2AIEܩdb" @ ! a52&GZ}jk% <`5vS֪oK/#ơ}KaZ$}ERAJ”±4l,zǒȃ>IH mSv郅H!xd5֌E|rfF.z-|2 G &PH3 "&-cFKXeEL5$dJ{LznmJ. vˆ ُ W+3=c=VK OZφȱCi.ʡXw!Q] 18%07DM~yE\/n;-4Åjtwq)@VBTm]7RS $䲖AʜRٯZWw赠U$%h0ICfQєS v R'$KXUءA"Pl &(.*AƛcjC@b;b~!X՞U;w\ M$㇒)l(q,8P_ZMN/SB7Mإ4 ,mŔNMLE!31"59ǩZ:e2 kLfp|T㊀2!aŬ(\"v* 臑{eRD2m8nZ_9Y,*+RG CJ;Rګ]@3%W JwpRBUI E^!\%IEZ2(QquFhhڹXJ\*Z7 HߒnG.@k4]8Z 8ݻ8P ߮GɅTvzf GN,se RYrv3@ 3oҧ2ң Vd,e}Z\?~n&ڨm98*,t xCdqejEvrTkܩdydr8 qkR]q9a)!HZCI#~6熶c{䓈RV5B$E qҿv&*&ҐOֽ1*s%b oErL ہp(bMZH-ӶHA#Ve5(ISS RP9cAZp&PZءUSmbb.[,oDaen#obzHd=i9n@w^FaYǂzuYp 8"qVNf _F]Ti#iUIOlXrkOJ[*Пlɉq& $PA5 iFޢ+t Im@逨u1Kj 8\}킙ZD֦~ M"{M˅JG4 Ҵ؊SbCLmJaHkxS6C`=[C}(]A۶l ݱUxцD zjiޘ%u`WoE F>&Os nwe" ,~5kJw e+(cѺ)15ki\(TT cOY\UY-Jxc]Wpv֞eq>4銯"7qҠyň wd m¸4V4eW2BVƷpۡqV)SwZiUjK`TBnJ) _b[ eu6A6,*yC-N>Ş#cމc=ǽ-bVPzqve7DYv/2$o2$oѻԌo`|JG0b;Eqȝȥ%z|ݑXM Pk޽2% EYn:7S2,[ԍő?# o28^?,n"TdhS2c@Fbk_MռmjWB2g'^K6Zhz x~K&SBi^*Шj1G2HcA=F4 `j92Bk㘺P&jiI2JZ(5ڨOQ bD9CsiVR;DZ4t 'K0مz9Cz SS+OӖA"sOfk J0'#k[BN NU( G,b$E]k"KSUaQ"[UGtZFG8Vh7޹cZNNʸAݺY@Mi2\պGe:k G /L3f'^lQךW"5Nek ㇉+L4d=2 Z5SASC bC(f"y8(>@nErRڛ\ZmZ`XڄԌ/unoƖS'ŲJk"|jPUثX|M+ckM UUثv*RPU*U(o].[]zbv(v*UF!KDPKBPځԚ`,Bz}81Pm4=ZiY5aCj: I'wUL3BBrtm' M-ثWbہ x-pOR22ds4`ڲLJ9li ҽEZЩX L-6NASEldB^&}AbE- ,WT`@) 0Zpk ;-W8UBd1Bժ;-zby5RmCF* L GV5+ڣOjQmS-JY4FԦ)lmQ`P69Oz5{e:W" #"rmnRSHTp")ɵ:`KB뀲 [$WzW*oC*zJ% װ(˄n飽v+J|6@g \nkA cؐNǦJLb_':@l)T:A@#e(dvnda iHWr }>嚀C#1sh8QXס9$:*DYns ʲܶ y.[M+Iod4Sūy%ER38,DQx׵Čj0l<'lMTȱZS)`%z%lpdx5N_-ZjW5$eMJ3$%v\a!fS (~>9 i4)fJnTݎT> 3j)J 1hPЭH阙,)m۱1$h4R8y ̌r-F*{ѕ6Hxss2فA\Ó;ᓃ(CIJmJdb;a+ڞ^sI=lWcnl`J;pMؑdkSZܝuFĬ,wy*ckK\mQ)h1[$ƽE#0HFQg )J:}?< r+}E **8iANY qt(a)Zeǒn Ŭ(v*(nb]].mۤ bNbP|7$L& %K|$ 4 4PJ9lcMS8|skɧĈK;H";f1Q3v.<۹J'lS3j! 듶h(p܊ajti*jƼ:`U$bB_ 0$6H*8Ѻxef-*-@e-Ea+Y8z2sm*45#ْ XWj`d T.aQ@i4PT[ ^|)oҘUUjկ* ` M;+1⤒~ R q7Ž#kfn9Jb4 'nM R pFOi\طFSKiR6‡qcS፭.CEa^F;TB ɧUTO#Nyxy*FYq5K6lЊWkTUpѿQeyCG e)oAmȁQᗴuEz1z\хM<<2#t[ElX׮ZQ7ܜ[sܜgRG㑔[#$Qh©{}Hd伩Z9 eaY\؍6!痓#(n&~ Rbe`d Ja˫7(/1|Xq8Z!04XDˈVDQR ;Zw˥-QLeX8:qΕ!#WyCQMP ~8%$WF2Ԓ))%?ܤ#&mL: 맹3?`|h|s3-ܜb$iZqUPχ}01%|ĦڔU@ڟ>&,")UwŊҵYks3F'.cҒj[}+[,x[6ZX0\Q"K0"2HUS޵Lnt#q5 &C)_-%?5;mE"fXZԠS 0dPE.Xmp$A:*;J|h)d h# %AE.j-<+FvJ悝2 t+2FVx##\]Pn;PvdRHAOS*A哠{R (دY!h!5zWsX7ՙ&Г"ˠWz奠&6ȡUi_٧sr}*6C>ƠDfw:H zuBrkVJ c9udSԭdRd CGj'(KTkd ˦' sty<} hW}MG|$49jZD70=w5"K8qbmB|fV$}T^2Z3l:uWaVv=xViq@jh"iQ myG !iJ׶,jX^0ԏ#G>l v場k*Wմ!--`iĴ*zaBdV[bm!VjH P.UPY>$x*Dm7TfI[UvfTTaHPzۯXy32M"x_*v6R,:6a$i"&)Fڥ\gՁp3jܧ :3^s8g0*J"o.YIceF(g5j*XvJqRonKCS(ڧ4MG*z*4\ @?NT*U'')ƟNd% oO"[\$P7? 2@z{_ ^`<鷈̀DS`1L:dzR|ʚ P7ޛm޸ b姅i^g1"FG܃+-1 q5YVtJPٙN냇謪h:o`*j|#3F Lx`J|0)k40A@WYYN{ef-td.9=j{*6_6CAw^=q\A":}[4mk*_𚏤unþ3[x}ia|RxU[-(`ƇZW}lAO?<H#62-`)!jnI|cf#(9$ la_c\cGnUSF)QQQݻ77Ż2TT&ƟGBScM  @䤎Ɔ2#$C9 @=m*tYnyn=GREnV7c8ԧ*Vx$ŹwE* аln|}h8 3 rMID>3[:>)h8(ww̱9#B  TPB6O׹"2KTR=mtƝ\f{J>-d;a퍯 #x]@7%JC$J`zd;[foҀrdcޫsZɳ1qFS|>FQK\lu0q" |FG,|;dJvɆ->  LJ)[L,)AquPCVՊv#q^`" 5†)ءثWb]v*Uׯ+n]]P5{Sd[JaE6V% [G CWb]v*jt&\P&aCU# 6n dGE:[\V݊۰Wbb[.]\V݊[b]x@&[h !A]  x̤-C&ԨcL jοE1+͠r>x) Szҹ*d!j dpi `Hh↉®튶pIZ+\ bXӁ8[0+x `,[[xJȖAVE,ߑV䘯J!`k2$22lO\,YQ$a䭰d%d6)CpW`* ʬ; ]DB&hrVƜ@Hu?֛Z0Zj,[2H6[(Yj=&UNL9Hyx.9e;o]H[nX6FSmcH4TqLoS \[4ZDS#*-9)w׮B7I:_]hhrD1 @Tu=!mܶ=oITWj=r2,ǷI'm(F=>l+WJ[3v|il2Jƨ91⣩nʌD_LĹ &:( `*JN2=]I=rj)6 /oly'S)oU᩠h>NT-Ȉ2mjN2+MeWIqtZiF^l@RA&EWa=L|w*hkCċA]OjcIS۾p/ X҈7'a}\u:tR8~8@H;dl' ӵ4ƀ+>=ᚬ;!f^2Pn-J'5 SOTY)GGNfc"k%JKMGq$;H$.kk*z"0B; 1FY9RfiFGE)F-5$_W bVcClD`*Ȥkn&OJcc!ԕiԜ֔bb jt IR2C%l^#5ʧM(ժMKWDHpd-@NæYp5z*byTwj#uS)ԯN68AӶDrtUHKǥrQڴ1 GP^czQZ$Y4|Qat p\ضڒ&JW(N]h|;)Hś& $hpI\۞2 )pA^ ա#W&JTDB׎#qR0AW [Gtx!"^wmP|iMB! ߠ۷EbJ24rŽԡe|')&^ZTB͆T %FV B76.Bߖ5.X٘*kr$6B6h-2Q2Cv2E$Q[CE6-aBA1"†v\Qx $|xE]I56ItL,ixt$5v)l1A٬PU  HY+ӻd$Hq>K $5olUPاq_ Rokol ]"*5|KZn=&N uP0Ziƾ8Í( IK2Mk Ҡu?vDXPN؅4;UإU•ޘ FҸ)=abRR(v)ov)lSUU-ԝ&)xbFڛƝ2A\܇|Jĵ `JN2C%*~"C`5lM;1D`H0+0\iEn.]d=1UPz, 8Wv*(u)@ؚ¸kplm7mt8PRӅ~0iCӭi}!ڻ)~bEp-ԟl^(H둲ʃeE)#q$Wj|AԊQ_4i`ǎ؈{2~D)zzuCm8:B!-޻ 7:ץujc/EwFX('HSԋBi>n 蝅J,J Tmc,51Õ*kum9e4QAa mQ|}r$o hn~Vݽ[^S QA9ysysTi5qT2즕=St)/e}ȩCfGG H _džc\y1{Qi+(v*Uتnj1$ 2t(zb (4hJ1#.+C̼2ȖqKbv=v="Ȅ6jp&\I4I /YOo ?y=EjFU-e44 Ӑq* j?m&4 П {j~]2eni$K/P~_(Fbg)A\SY$^u ;vˢ6a)n*HOTʮB4;M g6Džc^pR:m NMCoɗ}pBL[^ء<~!S &.|UқAZbT;Ɲ1Vz;b֕逤+ijkͶUѴ5P `)Y\?#"HJ@v9KetVdڸ"i u+6z6:.}SE,tN8S'$!-hTI8׹ EN?<,m=+M/DPFRꮑ AR l 9ISJ'#y"YZȜNE)AA#N<J TЯ^;cK=:n~RFz'1AZ>EEߠe2o^5X#ZmۮB[!ђHT%-p\'y!+,)fRAs84dzɮl1;jZiMLyHmԜ PUbUUiUUإثp<=E vȐKb$ث*Z]lCWbF) KX%v(v)lbbZ7]v*R*UĒjMO I6*U v  EhiQCII'~.[{Bȳ mH5 *ݏHr|RDc`n>4'Tni]WDKzdc0, %bPP7]@"Pȑl*Zp Œ"`ՏAWT klP b;v)v(v*WWmPJB~Yb{6$b7ƒ$ni=,'Li60? ZN +4pq&&G&C-AU`'#(Bk`zvȈ3FZ]>vIrcܜYR)Sn95q:8eCHdQ]Li28CqUK Ljխm_|#vU=Mun?Z{\'f#iL̀C2ȱRNQmC\wA̮y)DD㶛`3f:# !ثWb]Y*(Q@MAc@7@!o;wݷpu-F^&^K }0N1Kmg=V: 9RfL]\L+uWr*Nal;Uߩ78@M;x9RB%CT ZG Yg]x)ڙT%qWZmXPr!4 bOX>%5jjzc}Xe$^MնYrp OXoVGCI c`hFct1ܒG䃷A'8I 1O\)!E@=1[98˿|XI`r@RIE<+ ؃C-z$SF,iXjzV9M1)*Ew4I wEG/{dLmeJu`2(5$怃yxSG|1N|:jU~Dy\1!J1 Qһ]Ie; 01|2~ Y|qZl hhZ|JæJѩ*GL- %O+g'@ 5Gt ] тE02% $C]zğBk}|I)R:Ṵ)aw2AYRvb_ 7! 2]ɘw$]*v-.eP*v;PxAd@h -xȲ\`) r1;W RDbQY9U%Vm1]U=Rl6\W#H[[Bd|NG$Mɸ*\KnJerk |EFz('$MrdMrRw _(OzdeLe-Tס89 oMou>53;dvV&/$i$-}?jrjrr;nLV˚*TC Wn%F儵kr &~9_8g/yCz W(N1,?6ޢ| ḋ598?=LXٟHUBV,rsL9E r޸CRj=vqk4q&@kOW=iQ]I nI=+:uQaǶ0XH2ZT#ĶrpV\if3q%HƢ9NP% fhwpmHff 0q QJ}LAATX~pBk].cX$cq'ž=#2p% #Ү匴H].N)jaDx(HjlA`6,+}eC,ѭ{)Dz{|vKЀE:vDD2(qDQvڧrgh"Fħ]~LdG>"9LNx1?8%V@~/m+=&k`P$"oQZ5>]0.)hţg(A^ %=_h2=v.( Q@2ųRBLb@`zI-܂"W,wl#[\K$ZHpAȖƝ ɍIءe$xii 2 6%`S^ء L6u1SC`b#"K8jRw+qc XIGZM,5.өXPU@lRqM:viTZ[Z lRz~>G)k` 5 kZ|4|(٬P*RKؠQz̐Yk;;v*(o.]C@iqKCxثKxqR8`P[.Z b88 !Q 0q+Q{ p)k :`Hp8AJjNk% PaA[\1Kx߫7%aȲZFIhG;:XUءث)n=k4Z ہ 6JeN+ԊSc (-VV傖V+ӡĄJ@`82LW, DG2*:$F`Xn*;|,;D{{eD7lk1V,zRgtQ1 I 2mz"cLSn imYC阺UViPe?ўfzvNQgdu>!gqN"Gʴ9l M2"O%Klv*UثWb]Tm6`xJ)Uwaӑ2q+AzG7P vV013ϣ}W+77E]W]ˢL0`9tJQ@g`ouB]&g=15\DŽ!.`_M٬H#7bwA:(mˠv6V"x$% Liomg,-7H$P)M aOlC kLHDJaȒ*<2@0R&$KXP(v(v*;v(k ; v(v*Uتuv5TDciq%c*eܚnk$H QSn2Ma{JqĆ=$3z5 l DThI%ܫ^¾)7m+-mLrV@N9ݘ,WJP]^=:xƛHȌ OMS UԞcvM+PmTH"#3ڔIYV2rT8r2 l'ec)N@¾9D2F|rSܜ .Fc ׸98VEZIi눒#\LEZ,K3*OaYP!m5Ba;I\ԍ:v5ϧ@"zj~->Y X qrl#uHj I $s |ߕsw{j+CcArjʱJ8x l7%]M!w@q@MnR׎2c;sCN-i.$Ҹ iTZo/"EJޝ [arH%B)ҙZh@D No*j9Q=F(tJ2PNݲ x!8(HK[00sc;}]B>HuY%+ n-3LnՊy;<rǟ ;Gj)+}咖JIFC(j;1&ȩ,A \E.e18v2nFB̢u=Fp"A%{䪓T1P7A\<ѮVViU :晬ˬɩh1I`z˹HS[q6leL3H#qOXu7duxHpFjAO10'4Tb&$BÒ2S~(DsjDqkp%Z@Uo&3}*1mG|e4M U P99L%-4o #PW2uT?'rFFYU(_q m jVȿW4T2ZoهP;edŇjJL%r@: 2"U#e~ ƌ9ޛӝJW2 IQB;0KzZ|s6A6_L#T*}iZcm£fQg$"Rn-:Εo:SU v.z|[odyJ5hf4ι`h%@ח,j+YH5 $I=LY[L(SS6H.%%#eS ^y~UL |FQΕ/u.$.(@b ekŬ(v(v.8v*)k5VVWSӘ [](][1Šv**UWɸ;Kfn-aCx*Uث|4k^xCb]]-)(.‡bb][J,r {mL8[iG$*i: 2ISǦ!n(q‚{ P®[إM)*nhbuNN†qCXUjPPUت QQSD}8p[*ᶧl Z9;qWbW~% :SW Wi;↺m ԕD6rEZLm}T%,7FS2XrGf ]0b9Uď1I դE>: '6xV\q[TUv.>%3[9p'2 "`PRT%-A!A1V!ثWb]v*URxBMX%mHY֊xv[i'Ġhټo=wSܸSܪLH&(+[_T߾[9Ni|h~;fLdFH,5#+Ͱٯ6eAĂ:dz1Սkߌgc=EXSfbWSpG5gchPr*/C}~(Qێ4wA{O }"IRA^A340͈s”AdSNLfʻ=2Ly5@(k<Ԧ T98̨rYMVT nGzӠk!J IV1$PA$aAZ b FF+ƻW / UVo9]6mj29Q"&F.I$Ma45 & VثCxXPP;v;v*UثBkȑ`Ӻ"pS [2f6 (lM *$^ F&|Q.U>zx mgjE~P@ݦR6 P?(kƠv\ErtmI> ԧloq)^lejURk޻d99"從xer!KG@2&6d+1\Q-=Zr@c[#:^eU<$3i޵| R.wEub78BTZBX;񈥑e:5RHh;l@7AYchQYgzxmEV*P#댹,Nh}5?x d8M٘ksThzfW)7'$LNTCΛ/;[H51<3fî 'ŜfDŔ#T8TPu[U=+ P:w.Ju;fqPUVO; DrLm)c?"4+_uQE@h2w'f6ypri.JWE/2}54I+,R^` Zdz|bVƷKwy !H}QLec\P^2eê}bc>]X!%}+969/Em <߾j;)푖$ jg=$̎( Wޙ"FDPe!H9fF߈w1i]Y#0}-Ps%ʖf(>Of6^ёrqkvyZf26I]Ǵ@m{sR~"k֝#6 vۄ-䳌 hlL&Z3I+WpRT⦇w^2@ّ lЉa|N4ny*;3= =E19V'n5 FJ4F7D*R-K\hr*Ol4rS`߷l!\W뀍%7$仵\'1ܬR |U,G5̠7P;Hd ǵ02ڗMI`|=۽)qp*F죅~"g[+etjBA^6^dl *p]ڻS™~Kj$Bmp`FFO/R6 DɁcS!(0Ve!9:3"_ 2[~l FG#" ~̈́!ɏ{ F&Lzb3 ԃ}QJRP|v.!fF>ey{wɉUn~ bnWD D[zJLѮ JO#I;{fF `ITs9 TTlz{|$6r2-;Z$;(:>CrvuNk"+Y;=L Mn0z %9-eF6"Y՘T0@;e1 *W_`3S,nPr?2U^tT>\aޭ܇dvZ3B&aRےaf%2Wr:e )s1 B{sՕ$s(4R(ALFAP}6b*zb@gxPa l.[akI}"7+^/ˌ_D nA!@_fNIHѡ`iMYBŔc,ɖEw7aw)%Q] `&HV_ُ)Rci8ۮ13#aqf#aydckKuMe'rFNS)5b+)2rN|AR)Pyvuږb(u07-S )ث;`R(v*Rl)l v*4Ik  k;uq[k;v;.]p.[[ ab*UثV%ثV끒45YR@ȶ6:lqpj62MMaBBONYOl XU‹v** ۱V+R*;KF4vUخ.8PqCUm˜DbSl{⮠[ ߯lSAbhkB(qM8:U{kI  N 9IۨSJaָP[ A.`d8=dK (> r$\ajvޙY k*N]}b zUt5;,r% 'q(BhZ 嗨edVD`TulDl]lG4Bb+Jf 2慕whG|##jEI6Mȱv*Uc/-A+PSAoL@P!تq|2Ȇȅa˯|;'eRջ`GfYı $=@µ=FFSI+,er;{vcLwTICSȑLH)+ڹ 0GSF#j{dXߦ!BGxdS׈ ]t@_[1,Nv:+Xgf܌SnaMqiȁRr2ye/72$TB2㠈Ltq)/>rG" iIғX> *;ZV@ۡ1(B:*-hz5 k"\ɵ6#,AбW$HX(rLDW銖ѫP+0. z9*ٳuF{W FHaIK &Kՙ&R;UP&,3Xn#ۑ3$ZH8!$89l/l:d-CAL[v"6 z0F*z~ dqmJEcRzB|PKP \ qj20 2@K/mp~jhzS^)Gw $8d2e-\J#t;',@BP2"ZwEzwƜ튯A{dYZ&LEXV6Y\$:.F퀆@/z EC/:GAtQ+VVՠ$v=23S`v5$[W9&b*⢹\Ny֜Gf]5yd,VLN&N%i觏BG!eX1&iN唤IU lnQ|L=Pc{- ɱ`,M(2@D"47DiqlݎPԏ$$ysj K.uXDU l0pk5p@{8πHxXpn=3=鈑RKPcWC "6,;">Emֻu$ZdV@҄| |p@&,ݝ` LʎY =a >-N]̬Yr~N<׽Ps N W21J[t lр3#x3*zܚR0ra;$T.-f*L9H +;f'g0/g3V ؉ 8H+LzD!؊a_ߓ\AZT%LHUE eA6`ܔuɦ@:bK(Ĕ*u!n$i aHYذ~X%%OKqo3bTK'r/gq'u·#Nc_,LHQ @Z[哰Ai+-hBJmRmBqDt ԇlPM{`#dAU0d+G|(-bªK ,ME d%!Efbl5,JI'cR} )+;5⭵*iӱ=q Z‡bZ]ZjTӧjbYd@XaFңb4Ȭv :v6(baCWbb+M(I=;bżRLRZŋcc\RuqWb]]v*]ڞRU v)T0'<wژX8bUثW Rp[,*(پ74'TG&qEm9VPn٬jrc98WAo3$n~!2LF1I[ nh;XWU;=8p8ugTe2@Dlٓ!5"XҧM`Ǧ*b\c@*z+Vlux$ 1K^+|E Q(I5-V"0%G\tmf"lZǦRbM)%sLez-ۣE(;{)ܼ['*jY(b}9(PwaOl#%bw60\1C+Wb]p \1CLv(YL;6Genc`3S5l2dJ3$}ʈ٬MiEZOSָII- 0ڄK(rq͑B 9XШ1EBr *d >98y 4RCVW.[z\9Ah0hyfe*lx呍llR%ɖӵzDy1Dy1mE繺uk~fN#]#١"UIЃfd&ʌB|sNAPǏ٭q6S/H }$rRf2q䂠) |̂ װ-BFD`*(fQAJd喆@nDRxɒTwGGSѤU&(ڦz9)R.8Ek2¸ QNf\tqXڐzI9tR 9u°٭QSJ 9qShLIIo:R; YZ×CċYūS96 bok7 b®‡bb]LSn{E",Z#"$ #۾*B8di+ݺk/c$.XCKODɐpEa4G)lڵwTW. 0I:48 SJtIrl-R3MA\/-]m1:bTSkqV֟ v4Ɩ}ΥI _ "ivTdl}bƠa|vbMO㆐Ko|HPUxv (ע%iz'sH"P*e3FH C[.r8T ОF͙d`dH8҂#=,j|'@8"NS[\B2$%sAy *8^RP5 `r 9.~ 4= HlyLф*MS™Dcoi6i ˄mFH@  WI|iP )JOj\#1שS]wqKKGFX%#@ncu.o!HP69:u-NT)noNdPL(rZv'sa1I H@5x$Q גzȡ@VBpQ|sY7h3l-ȶivyZ&mv H¬GюČ#. Dɝ&^eEX"_ }O }ijŵ>.UdE-`aBX(|rɪrKT_n*l  ƣIgT|MZẅ́sbb` π\91R0B`h)~lAe$mUQȶSmYdݴcJW@)f60|@ :E $.?}>1 :Y/G'',1YK0S [g`JAڞ'.gWk8SNLczx}9`f#|2|A7HiIs%A"TKrѶ4$B#lmF ۧѓǐg & wcןŔv5.Vxԁ7J}wtcç/$T͸6(#ǵ:W/qTdzu”deT@UJ؈mħ ".#bJX|\%SmǷ4,QH1y\T~4QCaK2LZ(S )ثXtlYy( QQB(/$Zփ¸7YN) uP4۾0Ƅ -SRԊCoX,0v(oA0$P o+'n-bZ mO|Rbq)-bżRUP)k b]*UثWb$ `)qK+L ~=,#`,l(i$[L(u1WbV')œo6bbdHd !.QunR3>iJiI[H%o#1mǧ(w1UثثXw\ \ƛ^,abqWb`Ku6qCt8 k [[N8ATʈݸKeM(z-ۮ%D$ YL5][d)v^b.ld@)mD< ~t!tg9Yɕkh2UPPx Iopv*UثWbVҀ׮I+l0^5ck}$4a)]@ThTmmF-j)M@[8 J;V/}$($9JЍ:7!Fm*;@h&f$K+)IEaV})gfV(wvid A H3*rRy,3e`恶S ؓ̐K1s5H?쵡'fGo I6 %1+0S22GtЉxlw9u:H{0 <4v= w˱\Gn;[<>=.I é9hi!o^PInNFrٔ#ې+UȤ&=dbv{eRсE[đ)`90ʧ"[) _*9 @<2.6d<'l*ML 丑+nG& Q.I90s T"D)r=tmN 0$k-S5]b(-baCWaWbb]T7sJVONnR76%Z1UyQJtXZ 8CWRGN[ $ 39=BFUH$%z{1 A[Y ~/IU)}&6L[@*E"';b{k<ddjԫS$5R"퀲Q\lJ4 12 N¤n~X "v|6υL֙& k' …ӧ^H^ol i_@7CZ\ &^nTW@ PO$ 0 )>*b 3,Ow'IfmȘ+^B Y Zb=h{d%mb7FO, R]ߑ?3<6恾̄z \)A2[Zvp-Ѐ z`6TсٻD䶾&6د\ ATJRA}!rp&ƕ;dC2ԚWR O;dK!-߯Z( TP{,N_ oSA  K3z@e@nN%H"e5L6HdȐITlz|Q-ѓd/A瀤6o+kW`PFS KSi#C`3jGqI(f[owi$)zubf qs' JTw3 CT48i;ez~PTu5̬Cg+AFe(zvk!ثWb-fDA̍6N 0^cwnJB:1LHXzQ!!a-uG^ْ LRFA{dkvQAQ[U6x`2H # ;dG6R;Rֿ>--AA0HQ}{pBit)&Dlwbh<)mF NM-ybhrm1d`= Qm$jp+e+J߿l6lk۠oZq KXP5l R%1ZjQNhp@\5ޣ @ 62)iB.hSbֿ< bbv5v*U\UPኅB;|K!eeb NmH k5;v*U[m@,4zbRG(.][*R , pRmxlIP÷\2)LW[\ GI \(0+j})[M GQq]SVcKnQLV֜,KWbWT7¢snH9I-P4p)Sv(v*Up&4ʪۅx23%fIWSv*኷]\SmZ6,\H +ÑB)+R~&E1UxPW#M4Z: D7>8 B.L&{6n߾ىX-Y~)PSL2_o-V;v*UثWb]v*UتL$"EAxS,lX̫N]OS6߬9)88Qr^uKMO"F""PN˗7J*ܲJrp/7c!&\Ȍ@.7RlO7#xxv21bͰLtg'%Pd*; w̆_esK2UDfu?4sӟ(y*y+1#䈺q=|~^ e {1k59kCJG-bPV Ch*TOq=Y I$?&-RNHEisJkK(v*tLV*JiuImΪ '^9vے U!^&mrj}=! t"}6l('14S9+cK⍝Š|H8$h2I-'[TFP A܉ ]ZIZw' HB v|$l+ʾ¡icĵރ(T]%oN1ڴM! [ GU)\ #$\HJ4fl:v R98?ADD[ ؇1ic?>B)߳lWG+TMLUC4$u&d$i[O *L@Ȳp%b!6UUȒoK'BaBR:\qWR9 uA)#d`9J+qea16]+Gs =MVw;!J8Jh-Ӯ+-DGiZetܽMF%TB=( k2Rʆ#z++_&ju=rJ Wo (1mXW>@H Q)kksp([>]NIB7n6$, E@%&B@pk1LCN9)/iTrIS2+"ES#!$caӒ( 1ڂ,.4ʘڍCCJ&۵TiA鿎U GPw&i %J;Yd*M',`љãQ^Jpv_ XG[F2 ILe(WVz k^ ddaӚB !#d 4pV 1WaC%P nlAO %(l`KXPU+zUv[RÒbp[+4l`H^*WD`*`_LqSrT 6ΕS@df ek*-wڹ;#p<ĶǡZLGJxJPX"`UثWb]v*Uت'|d7 Ze8˙֦qn5H%Te kvjwʄmF0KroU C\9xp+D*HƟNT RZtZ9CBRܫm^e--.%Tff09&(Vjŗǘv$ E15N0qŽʪU~G}7$tGXBQn}G1P>ZWYqvq|CL7a"H5ۭ3fqp7aCz*hd;V̌'sv/>k-&L%}Izo֚X/[=S@9 8˹J!U#Uљg-0D [@;V3'R);3 #cN"]쀭YA$׭sc;;dio \6 *7jzԎV$ɂĆN#z$]i\={)F)CB62ONebƨ /9XIcjg$l![b4F$-IÕA` б=J",@j|T+2*%W쯅|0pm"m$7aVCCXUءثWb]*/Q" 3 rfGyV~~>jFBծJ̭qd8]{cE$"Hoqam$ॵզ`d%Z:h6}>,KKa*q&`@U֣]SQBE hwd*؃ӮH1%mv$8xoRms}:Oz`2ے  P+ R5OϦ@Mn{il!'G1A7mR"{|쌙RIgfe+Po퐌32*drߩɰ涄lqE;0ہ64A_, N, ^\C[TĐ:$Vd8l$D 3p T,ڸ782VƩi$*^?vjMufvn5j k *F޽[|~#F!q)5@M@Tql[jc*bZlAqZpRNK(o|p|rb2PSy &)B$i*RUj: JHhI=|LIPZvIRi);{eDZ S ec+N~Il,`* kT-   Z ڽ1\LJ`;o ڭ<:bJۮ-ZlF#LiQa~Y>Xtp0$4%(>޿,KQd7 xR䋷1@m~gm%ⅹF7*Sp5yU#Ut.{xeIў(7zvY)ܫFZxrxklvp+oMcsˉFH@]B44 =N&T L8UjI'G C1^FjW-,I©dEtjva:-TS+hY!(EMO1+6\i͗,J"F&TTՑ{V8^2U)8-vF4+(86#W2D':䊦ERcgo">MKx1NˏvUu!u#Gq ¨>æALUv*UbNM7]K/4W%~V<\> Aw)W kcCGӝfPt2$(5#lnQub^L %";YTlY懒݅j:ؘ("X$`J|mU,S [cMRď!wrQAl7b;wۚֈO݈ɺ[rhtDL)JU4o8wnhbBQ|GU6aЁ̘.ъPAo9G4-݄/R:T؂Mvkoxqa1Tݾ ԊtGRB:ʎP̀A"Ԥ9(Ad.\`dZ1+]dd$בLh!J^N/_{ 0vOP n. O U~&ðϹKN#~2bmØ2o$,*2VƔd‡bPZ# h bűR!X cA \Yk CiNئء*UثC%U4 knJ M,w3JSl%* $roHZUICT ǎ) ;SWSWbAD@ҙ$=|1VÞKk l%Q ?FE4›S|BT…EGQ"s( G`Kj ăRpfP9v2%q$-JxT.VND(4: cA2 */S+Vr!GSW&QIxb3NDmZWx]'cSd/c`M4.zi6|2k725L7*{6ҿ~;SƖ׍2%^^C`)ZLQ~\d@ Cә y֜Nx.qqtP]cPJrB@Q64( ;@@*MvJSY]ʜ #F;&&Rɱto{d6!`HS[h(PPxs[\IMɃl W"{m%mTǾU"ZJn|Ct@HӕZJ&:IRsTi.Ǔ}rH !(Rʬklq!a F55-n%ɗ$LQMFþS)Y)nG @jt+$<ʃ'mֿ-M"Y ڤc B"};oD H(cP8vR<ڷ<--emҧ0g9όHP(yU+ɾee4(@} y6_r.%s`7#cڧ*6#kC*M~(HMCe~!xm&b"]׭\q\geqqH֋ՏCazH:qG|<VI4mO|, 2V4+DeaV],P+dgN'NgFPfp6 q8\nu#rmrAR=RCI c9 592,VI4qXrB$%AI JS& At7=("PDemmM7P/A,Psin΍͹n:[=< 2$ӽ OLxB#䤲zQҴ6Fr l,ahnM>9ٴ)[SO 1z,A^E2 bl%Sʍ"M+c$+"ۧ\,En|O g07ER?Q=l#բZSRiAk@OiPoP{>(%vGZz,a%[W0K}?-v USɪX2˶+o&ʧe!ާj!@Mh4cˈn(()t;&t-4 xE5S -Op  OAɺ ΟX{wq<lͣAR90",-ͨSםÃA)I[Z)$v V$X֔ۦe IA8x!Ld5]COlU߫k $]vۣqZzǎLA<|2P̤҃->5]LV®].+kT5EK1KN(v*UثWb]v* voCWb]-AldPN lNJ8I[I ®'KC)RpVjz& @#PI#ji%C1PUثXPv)vlRp+Gv(]N2\@6ilR"=q[cs) ԕ`GQ,Dݫ+t IRl*D۴gvo(2ѿQ"05;{6mɡV1Z,J쀕eF@CiW!{W#un.q[,e L,)憑ȴx s:Aغ=I#cu00џvb6wq;cqꆫ#;HR"Re`O%zW'˅L5ʊ%H S+-eP%;B ږ(OlƓUn,x?,c Lai%ȔbA=s;+g7+dJ$FI @ոDUcji+ˌ[ 22 68 U+Dw+NCpKo7Q"p@HQFRI]K@"SE(e[(:by[RRx 6LםlTf#q1cKKnbF8T|ŔdlR1w^fÄ T*-~GR .X'vHZPWmPeȡ{` v4"tsO1-: n$wWN)Y M*+z?΃G ΂Av'Wq]ٴ Gn8SS |2r:Y;T$,FqP);a`oI=}1EDdֽ}> O0x]A19TˉG$l̈́@\AxtPMzB/S門j"vĨSRE$*dhnege)VS~"*eHPޑP7#Tqeb{IY V-ܔN$8P}L5r^1D#,U;Al$ƅsBH ><4JH5aE:5G TƜ6B^H܁ oZS\cWռ&<=e1 H5P(k v(v)k'>J*X`w| 4Xq0Za[llVW:,vR.ڦuƇjhS;努E`Hz!nA40đWZ+$léIث]U+7IMQiܑ~#&űC]MU 8V ↕|:b\(mY3]*%թ>1o#̡ݷ!zh $VIB,V.8яkn `Lv;퓶5Ǿ6IzS yJ>*d[sN 5Q[Hjkˁ@hG^ܭ4&ٔI9(`P+qt?Qj|6]HJ֛d|0 -Ǹ"?"?~@F >hi׍WvݮqWFbnb;d*sLnR(4y,LP;n4 r -ܱ*IދWz}nv8Cr^98c6QUy'-?[lDi,҇DIr@ Dq0N1k [Ux9*vXqٴr7v#WwTxbgHA0R~YETE!N1ӕ6J\A2⌹:ګf6 \0h늮kMm&PO%FhJȀz$^Yz.ݻ#v4QQ7m҅UU~ I vʡ2$(nxqd.h)sI= L'"U_u@dĽ+c$=ʉ*I!UZTWNYեe'ӘsĘ ~##!_!],pSkj5j`<2$0!Qӯ݂+{M 5=).*푔vc({dz8.J(HdF,+TӶg$9 EI^*gaDzxe աTݺkewC-(i6IgCB|6ή@@C *:>9>e2Ԓ֌|?V1D\ TuZc֑[GF[s Ȑ/ DDfxPkѕK{Tf'lLHrMJiYei`VGo&tteNkQ"-D+tZ܎ܲb$YfdZ4l6K8[_I̎h*;9)Ax֮ S fF#۱; rZl$$jݟD<]f1ž9ǾȻK] 4jrGiɋ5+3[ Q WaJrc KTJڌOXkһa[]<p i~#mtEŪA20:׿bce,M%Ҽ2LmE]rb͡c䜶!eD9j59m|r5 lP rVŠst *UPUثG X\Ѻ) li֘#IZp-oLVżPUثVWaWb#lWilV$:;(mN]5iQvtya\Sဖ@*)v,z4iEiPH&ר:Li$.k^)6|zZ>0HoDZHɓ #ceyF> NRWT2sZrcOj5(WLTN#1E7qZ$B7waץ? D&PUwOMӯj׶{i#&P4tJ-U-^1 =M Bk[o[H6N ycjUrv#X؅`G&(\(n<h3u A[YȨ`6BzS6Bh$|zڟTFUm CǿG&] `<”z8>ǵ2b~Mr[hXq6#[) d_$\{DvvD`QZdK G rn"gCv ;4񲊑鈕ąJUޝrEnP%ȐWb:֘)+Ե0B@Aʛck"?EmA#aY@t o^-4MxSс-|%pqПcC GVP]Fb67r]Vws@0Q GH)4ڽ7ü 1DA,l^m5;GTnשHe+t+[ 8VnrHOfIE FG|VY=JWNÌ@SJNq6fxsasQҿ,f<*FOm8܋~uF{S1 ͦbXqe7n@nkH.  }lSPbsn)N`elZ;7bܗj@d#K\TS3ɄQ4qDJ};4F$ *FS>92)+*W\'%*5Ov\6rJGA^ǡ=[8zTr*;\lx)L%Z[Pz+)uɒIQNfL( r!@RƐl翇 7B&2-O$u<@ {z9Ĵd`d?S*wq\uO.fP{90$C,`@bCS߮cLQqd(Zjw1  bBShFI}Ń@~='2!VD2 $VU!]FqԀvurJ5nm@?gi c'3LL,ffA wgjMR)t1a~r)|E8f94eEdy{xS &1-% BBoLN>HUz3(E$?! r#ڤP491nIf91ಚb䰄v'۶l`)Qg=e_|*D)ҝk2q=5$OV}lc"V9F~+uō5y=k-h+ bK[b+}۩@IxhKm${sW2$9j#މOLǩaİԟl1%amî-~ڀdb';X*ӡ$ (f⤀Z%L7;" b ) ]iLk$^ܖX5 bثWaWb b]ou1K+xU(v*UUUءݺ`KWaV%ثtڸv(\;'b@*}DDL"Npv*)o][p+U®]*p( aWbWhPUثXKXRhH'zu6Y!V/$Zփ§ ynD^-‡aCV%UPU1KUѹFE2{Ƹ(X*P 6۷|[2eCNcl1!YuZC|Fn b7M,f0 U\QLj+c9Ihؕ@iOz16*_;hVƠ)wwqWD<\;go9H-A1' ,g (Y`(*1YbM+&7lɴY%69ÄyLxG.3LTǥ[J, ӱˬSunVЂ@߂"", : n80] zr ;%7(þe^1S*zdLg`ăJvlDRV W==:9uilm- *i wOKP/)w<V(_aqx6s9GG饸f">'f 3VeCwْY{;ޱ Mzfvr@ 鶖~BC}*oN;̰T0p1edM|&UY ! O n;J źddo$osC mBA+ϱpU(Dw~G=1[<4pk^/`sH5Pޣ}LŘȅOBх2p?G+ڵ91Cq#.TFcĹXB;,I^u&(xBxklD:nk!p"G1 $cn 9.eXrPV{d"OV1'&RCJWQ^(p•"]5(Lԓ;囵셖A|}荜yKu۰ɍY! :Px倴‡偨0iڵĩ6H0*g$bp&4,,,HuŽ215jy& bqv jA/k ө)6Š[v(v*VPsPm, h#jfqVqWæB)HH҆ K\-4DRF%1iiQ(_l!KMx`E>37j  Z\4\ }$2B "ױؓ^ȬI; Ja+;YL"ƜR#"" hdm_le/$9ȨV mZ4&k0-/_cQ_{"UeynI.bJTۧ*m I'|!R(=E6F`Hr[t -QkSY[TEQ|,)ĕ;xdm6\HPUQ|;dlb߷L sP:▘|uH]eRc%A؞ ,.**VKE/4 8)CMȧL!jzA mܓ:d pGDP0'+HE]%Y,w5ʥv f RKCe-(Imk2ٴv-dBШr`G9!բCqۣ,"292x_|K!.Y PM^}x3G5w/\]JBPHE7Ly237KjR T֝iU &V^ :71rY.6Kn":r=k8h(g JM`[$/1M&W\Aԯ12mɌm5Q1 MA;<{ 84w2V4vxC(JP~N[ lPO;o[@9T*B|6YiK|3{p;M^"N%Y pq>b\c"J(wIcJμ$2q~fPD]ʋY\zbw5>8iגmefחhsz]14?E'2 [W[j#܅AGʱf=1G"Zl~,R%9(bB甃JoE 2P'o#ILm,&%G«^xf&\3m3G6K8ZD3Mqڎ$K·e ppg@W@AP\EKɑySp7̘lCd ;bI^@r[(Ga!faSDhy dd ,+鎋x,çb"U LȌ[TS* ? pylƠ#ܢ+㙽DSj{`=W;'gm"$A݈t"Ĉy<NAkOMUɜ VDliiHDْ{*ݲ.^f!D#KTGRS;[ % hI:,y2#Kwle5 n],goEdL@G]8Et ٓ;~6؝Mgq Gl@D4IW*:^)$:#*NZUw:u9Pk^!BS1Hx|vdF=\iˢJn?XIRnɆ9QN$|]zvbHPԮYF"N_P#sϊZmnt'r~񽔍H7  AMҸA`B_&+8 #4Z8PZ†bZ†CxXjXTJ%A+`Z‡b]] x?E.g} Oy0hO;pӦj1jsK1@urpUb.FLB7VV q3 ِknI| OdĸsQQ_ZZzɷ*צ-$ҙ;dee*g\u54K06l.֛(r% ۴0Y+ܶ/0 9Y4D 5b~[$ԹKCƣ|6Z1Zz|7Hᵆ64Z;  y)j(bC);S%b1q$PS{4Z\̧f!\E|Er7][T&6 )B ۾b! _oDʙʼn$ $oA2b"9}ةNɜy۾Dþ)Z2Un=ȆmC1OJo-ޡ<x/pRi¢p%wHs&',c" F "^%䓾 PdbƀbS*Uw  zA$"CKvۥ2)MDA}5́&%ClӯZ,ѿ5=NcG&=&3_w;P<\MWhKŎdyeGcdH4c`!4}ϨQއk#N84kܪGU^ŤrhsSaw1iF6 N8ۯk08ԑJz21E%kҧn^؉/~O~^AL'"=)U0+\iʤV~3c@'ṅTSlW'a!8_6izjW#bd<VD Gzee̺ݍ҆4$=?J䟥_RC /ʀT;W̘}nD~ 'uc@v9}w7R:Ȉ+U7ѐnG;l1p [H̊ `Ҁiy)ok2qٻvn;C4*9ޘ3!FW#ËpeD5NFqWC\Ua:ޝtB;3版WyIfuT>s^bIk텻HUz9@zQ2@pdpWtdx7Ue@)SS䑉raJG#Nua&@{o E{ FA$–Cbbv]>-abB;t3޸XCDV)ZiLTv*(hCC`=02k  1[v(klb8o`=2٬,]\Qmb[Z[]^*uvŕ;v)nn`VKWv81(-V۰+WaCiHhҀS~ 8P\0(v*Mq-bxxv`A@Mj{xd$ J6S튵S\RE =݉)**tql4*Ю!(d'Ihzo_6H9ew˙A 7(ore kQT)=-|T/_{ EZHKNʲlvr1n7UYBo1ى*Fƕ22 Uԃ׶V[A^B"K'cu@EA1aπHXNS#K1mCmv 'n*$ÉÐۮa)vvWs#7#4<JtrÄJ<%Y- L""bY{X B]L\Rt'ǾdaǾlvfL@C֧]ةۦH@,$xX^ "2[#1Wm0$gV^lѕ'42^竬E[I ]"w9 y&8ImM+ֻoXiǔ$ז̡@C3c .f9?RUDRH zt̓*\*V^Zb(i؊b$,2ǐHXCZ[ ƭM~J{a=0]3T},J*!"-GkCC2$A٣? a⭓uu5 ZPẅAs@NbTk'm=huk\Q׾H2*l dkb A Q"5$n*w;dLYf!fj++N%kSӄ1+i†PP9HĨ#Xث(h(v(vv6I=~_vi |^R(Jvs_ýwm Bz$YMDrGpGĔ5\D7ZBVLAk$ĵCLQMS†kZ(+J@uqVI+)s!C^6)OQ-M913HWUER| ^2AQ:YG,Fk1e2Ka{ "\)m J9'ᧀRnU:dmeu=q;l[ݖW MS 킻qL?h%L P;-SL4ڵݰ[ޝRDױC(U8aSxLŊnƜY2_rݖ5+JLã9O0{[ٳ 2|IP|2V—PP|x-#Xw«Jb~UxE&=ʗ&|.H5)N<A1 0$kxN"@ 3h*XI ( bHaD Kq飅Lc!R"6SK"zRv0[(!@̽ .$ ٯI]婏:urCQ#PCP x]kgz{`-9l蠷`.Ṟʪk5+`HzIdh%21=GL ݹ$(㌷WdR*l#е6>03'`XjMrh|%^2lj\󔒿`w``S|2d #ӯ3*[FjPHǹseUaW€ 3Q4nrZpa}ܵr?bH#ܜv$6GbBHiEhYh6 } 9TmSpE8R$4`6 FE'VL՘#B * 62l»-9ًٳ~7o])J`6;;\Yke2Ĥ0 P{Q@( |rۀcфA#qa^$n gEr.Cm#m! ӖJ7WJP_i2rڣt9189w,# S7#{+c(p9H?vXZzPca\ 3'&_Z&Р\[!joSE wr<,}]+PzoO y^ X&i㍠DITP+R~&Ë04za@-{ↁLPyZAć UhHLm5N1V%H Ў :ƙ[CQ[u +Zk\A8KHĻ犺4pء"L m]*(oNMo bb]][q U v*UثW RUUn,PkB*>[(6!w |MJ{*2 Cxo]mث=1MX `VKKcu8u1WbWbҘiqUjum k P>xE*K̞#:* 9Qs~@~Ю+* 3%ɐI-ze'g n-XA ܘE ^DF T2ec9 l\2hkfڀS0ƚ'S!%UREc-DܔW"$@Mw* P@$-RĜ1[;F ^i[U"UN(^GǮWaUSlsEDtE ,́Af"2@l:퓁g+2-Vt@[—s5KN,߮ ({*ɌK\% p']mA|Ǟ q-Aڽd|@?|A0 f,˔][FL/6T 3O'YO 3]n K+oQ7\ -q8G zfl!VBkJxfP$#hҊJ@ d`~g2F@DZZ @R[@8%=)ZdLQKg쇢L@ K.?Sˁi:^:Œ5XI+*rTLjzNn&oڇ$urLZ>jvAh)k ثTSDbĆP1H#!V8-aCW`WaTu17QҞ>K5I8@bMP8miU ?5<o …'nm.?en7 AkۥTeOetRɵ+P1Z!\GkpK/ oR4 @f9lJޣ'HkA$ź)T؎B $Z"Z *-66C }ZrW ek4C!%܉)7nALiAh14N*JR2]{9Q{Cmxw2w;f=/''V'.&"jD0 _78ODH <ٶą$ִ9e5Z>@4Ejh*pJB"b8-iĎ @M bRkBwT/$2, 7`9Mz:*/EcJ-egKi" zˀLTᐣj^Vzt:HC cC 7s'M=S DZ{y4LJAXWr{eM|*w ; G׮0sFI_ a-@"b1>!RZ93LI*_l!5dnvtWܨp: Jvj`rߥpزdE<\&ዥyבZ3G *@Ƅֹdh2tf{}5!?ʌ-b#JJETZT64;Pw3'LOF&?qd8~"{LcKZIfUW6|B+K$%U 9*Pu|.XDWs c]k} DHDMsyDaB"B΋+FՌw#ǥ3p bE#~ܳ襷b\5Q(تj?eRa_ 10R{/'l@|h4eTȂ lej8Z@[{{cXR zݥcR;HPWzE|Ğ Y@B rLy/Jhlr, Y8 ALdCSGx8l1$,%KZ +֙I+D xTկ]SJui)tk)`MI1$mBև$ێCXR.-wmp?NZ&%qV RqI S )zBOo"Ad kcq*k^C], ­P]bqI.\}R(v*PUثWb UqUث{bbw2bHk;v*RUR Uo6)~ XPU{zt^5>:ӯ2"ٚ貔9&.O\QMVbCX`bɬP q8b]\U+*(v*U[ڮ*UUإ[`UH-F |URdDk^#'"Vd Wur,^)Gz$ddBaiFN+-]0L\u`y &ӗ'bX k3eom-|ʿ9B[s[q$e#%7c ++ u+r~kִXFXma|GvfD%*xMs,Orĺ4@$L-%R9ܰ$#CŲ(V457C*mWCFH( ddV , 'lf@^[G@Mvi98 8Xi$i\;F- `$½*/^ J6Ebzxh+.S($#nA.3q{,$Tza1 XI a!ڇc\a$s1Bt\IhIAso)A@^0ża,PTn"'m|DOއIw-Nnyd1(T l>C5Z@202˒]q`m S99W" Ԑ̮Ikq]\4>mKZkĆq's+K'{.F;!uG_hB cki3#` I90v6i$eeZsvW ~EZwȝ<@Go*ˤzk-6bKP|p. QMnPӈ=}|Ac)RKuJU=^ ;XlƧ̟ B"")  ZR߳uʕ3[ʦiUH*Wr<+Bڧ"H[V߇U295̎IRĭ_م(KgQ6W3"lխ*F~8Ĉ%jj\{tV>#'~y XGk5Y$,cCȁ7BF wD6K[eMd#u;ҙNF /Jdgwk}ЖA COvXHn.%qC3-y&wa.!llZ/ v1nk@)6'!;#û!4-0RI{-9"c%gթW`ۏ C-a*!%HdoqL(]RqO5Ȕa'IQaRra*@cX 1W#jaRP)9NC`%3 []Lmiĵ5LQN®]\|qRP0ثTSj(1uR=rMeE7xMxb8)*I"Yn -qg+EZ,C;bo N TZ+V({NGlAJ_W.0+Xkt= MYFH&@(GC;(+ZK҂YEU6^z,&)ZJE M*+cMԠWqH\9ov^hJ ޜӵrA֜MMU8iZ imV5*@$$ڜ(x% : GvGe]ILB-蠩Ǩg,{)/Qڹ!;a,d7n sR1!Z8¡@2;\JJ6+'ĨTuS] l+C\d]r+,O'f? #qHBPz{dQLNƃ[.Rצ+2KH t^!ZqFڝݮ{a&&PLފN_On6pqۿC6XeF~ǚ3$Ǧ8 #^gESZ IZ&ALUȖagi9W9I|ۀ9Iz䣺'*dPJ[_^6l[Jָ B΄|0lZ@=w]e{t+TJ q/@צFB \7#bAIqyRԏ#4P ,͈.0*cn> I) қI%ʢz n,NXT #3\=r0^ֈL<@pQ n0!nm=6 )M$$Q# =qa93|{Y|F,YxP RF@#6): (wmT*M8HSd{`JƕæHE5qLmiiuŠl>x\I*`qI[b*p(N|qMXثt\SMabU_?!22TT&KX\)䧐&({YءثWb]sbRU =Lm&$8PQGb][+mbo\plb][. Cx_}FvCVK`W 'hxck¶X(v*R#Ǐn7R+Q HW..~^B+-(5ed7FV$"S;9dEt:ً"Bb9 %|"*mbpiDQi\490o .!$7ZQXFv kgW U<mKEn٥92`%8=%݅r*~u;=Pp&@)F=Z= ]oAjM 遗DM$ ֌j9VL`d$\1=T&$k.*(z w$dS*9/AMf<'w#(Hחp0<GAJd! vcJ!jYDQҾ+F*A,i[@ nA)x[iM"n@޴s^R s"z!/%5<qץ2Q$nY7B+-8lw]@5!c&CCPŧzO]\+dY-^8 B"1 H´؏VI&T#|T^K`1d6wQ^6+$2P/z҇#VȆ?-P gĴ>50\Q`H?)DH]2؂@ȳFJ}8[uTl47.>LH,N[x*wktor2ؐW*Dg4'îOE$G4H޸5 :(N>{8>/$ "6 )B*m^d39T^]|+pю'rXS_ [5ʘ[YKNX$H9/0vd D@v3mVz$1\ȃՕ nR21;dDL~k~ ך6qPZRC ѕuPy$]r)Sj7d ,2dnZ΃p2i5MB0ZXA*nkح 1$> (-SqE"-$Սw1@oj4 sa˒c3j;S6Bj@`JxJT P+:R5R܁_Jl:Xp.‡m.# k ۿс-aWSbAp2p(v*UثCWb]uqM;v*UثWb;oq\0(l]bNk .][WDEyqt[[ 9K3ҹ֙XCDA-abPKCWbd$4#jDRZGU 8@Y,zXDt;U NZ6-qH)Ƶ/ƙLv0nҵ PZQcapjmpRm|kҧ倖Q {`$,H( +{dIfjƣRjYGeÑj偗WskSƄ ֛%R5nqӯN]tm %@ }RJk3}Fv4n2⭋ Ycv>?PآƱTٺ eVhq妩jD62VjYYڝk FQE@̬lMK ?1ad&@ۊ0 mz iEDdFD-ELlˢjRwxvԀ-v=tסGu$dbvV1Z5nNM[wNfR'p'F3BKv'eeD_NNQ8Ȟm3Kjxڃ.8 = >Uب?N]mޓYA ٱl@S ח\2i$ V]mer*ZcfLNLrG]e u$16|Njkr1լgA@\HɆHZ讼XTa 00f42#٫_7\*u¨Z 0W™#9p}F-\e*'mb7QJL]棱̪$ - lM  rc -rB|;7_ ,H[:m-7}69&'~ئƣw= Tprk@/E$d4!C%Ps] j+2LZثV%تӅu0. .' ,@u? SNZ_P*ݲ,.5Z~ _&>Pc(k;Nԯ \zӽ+lɦ SǧjkXثWb]b.]v)v***URb8v*U n|M6i|_#p|216-hHáąmc“;Y\0ءڿӎW;v*`M7]!ɳZſkolUUuv†CWbb\qCKcCXUr) 2%*JMD 0b*X@_B*GFCާQ-Dh)wTdKt ^١צ(PA*Zp2]+{`eh$ZPT6m1$u:dyF%k :@i&<+ܩo|IR_ɖ#uq2{aVզW*Q4==k>y 7ɍkW -kJn*:{e#(5UNi9A@(VWœ6Y$)JJ,/GgjS.@T~g&uE=j>ܲ3Wk-h+lSleE,2">NMN^Km4I88BL |$Z4#02oI XGB0jv.N$U~ BmOuȐJFE(kၒ4 "$Bڒj\PA% ;(7Z[ackw„AX*6y_ 7p+n $ZPEXFlzJmcUQ:dn6*FlZI4΀ z{b#EVUnU 8IP JȈFt^['[06*n;2l &ǗzVo$#+ OaaZnZ"3*i VwHLq˗Kzҟj2OWŰZާ~-niUFq#"d;NUMi2V;'a8ڜu21_ju(Ḃ8A)}ʴiįzF<{9AcvޯÑHiOh ;k(0鞩":rOj>~mztS"D ҆r -@3{~GNW$›4$mW0^rMeFRF4UU"~kfG^Q`JSLcMS )BM2k n`0YeS$›xmiԧ\U䟕1Hp*5>^jG$]]*(v)v(qKCKWb. b Ph9FvI*{ wCCWbbKXxbP*?[86b].]ҕۭ1۫B@' tekI\,Ik;v* pcY9PZ ?#|udg]Mkv*UUa-sBBUn և挈-}Ce c8X T7[xDW*,T{YJ TK $˹T*""K0-T! K0RF bN]crjn'R#ÚtrK62%\P*~ؓH%q YFs׉|2FDg:'(j':ew۷3 CFMjcD"`&27 ~"MdRG (h|3)F[nߦeărbA(t65Vң-X/=ĠB:Ȍ Ióԥ@X_K\A |rZ*Hۨm ,V=rAф6@ W6ju\75pMd-eHR]eR}6=qڹiA T塠zRjv5;⮖G>n&Ò`*Bʣž8 @jPN*Gр91 *g$Zţ]qWbJM:8uъG( $6qU#!F;Fq&ŦQ14ZL4j0GW)^B eRǦJmv|P mSL$9wP1x+m+ޭkg8XaɐCvxAܝK8ӹ=pF6S&%l$"%ҽ1+F-V"m8TAl 겴;abچc@EnQS{bT UGickpyiQ0%L||1^ SӀɐGZbKdcϰ ǍFd{${mR|W$. )ƻ츶[+zJ]A6{)QJbA)텉m1) m-FƔ}6DC \z@R[ nqGC) mֹ-ʔ5٤.)T%gZI$KG^TD tXZ'%ڄ|ETGObz呋L1S1l؝) E2faۡ d*0!d6ɤ<[ ^i$,HAEa2 3Ccq4UG.v JdJbzg{euh;)z&43N+bLfm6;*^z1>l;#׏: ڙ.[ӏ q'f&n86 Ք MÚDD 'mV=7Z#qn爐#ES9#Q>e2<ÑPRzmY(MB ۹B(˂3>ӓ fwX%cxc મÑF4/7aJeH0Ȫ䂜h Yw&b4pT[ҝL!IQn%He26MPOb3:TP u]6kh8x ʶ:S \.hD5$w9XMFA@IWbaV%ثWo*UثWb[@*q% [XثKxx;-aC+c8.ԎQmb)v(kvC*+_ӵF4<0$8RUmSn(Y-΋0޽6_c_m&`# |dҜڝ:k,5ⶳ/QLd<{d$F""$MhH/ZeS'v(JJU~^hpOݖڼH=rHR()Suv<0*]QOl @R|0pRSeH3 WPF}<3>*#N\\U\\mkeXu` E5K}zb!+ēAZ=9[7sӮ$b-^+pbw4WRr7r4mTmlͮ2KX K\zcHWmz"f,QMjk%pÿ^$^Puԃdx>7rfFOLeU%vTx"e0Uv6%vL5`-Ƈa6$| c2A[ƪN}F6n:>Jbj*QpZQokŵ,$u0.| ]PNg@jm28X{튪ѫ8! KdfGOsavKk lz2ᜊރ@w8i В#u64=lI@ jk[*n{wJv8b\QjGob]ƤW鍭/h?VۗfsZ@UD&>`C@ 5⪀5h{dm}.@OmyAJ313#U}'XKN]QfaKVA[ɷ)LP~_lB 8Rĩ퓂FF-Fiv$ǹdTrS)rTI6$((uI;̷@uW+@ct`\!_)͋SV\|A4H*N>#şGQoȾyޔ,ŭs*z(ILGZmCt}%|m)W=.q&a 0fVچ.mq@Z9H@Cs$"6q.ֆ_߉*'l \-a\0?ZzXg":Vq)E!WH}R$j%X#zq\U(w= C4RVhI$ڽrƤ;, %o_ c_! +8LoeBAR5ɵTLT/Jn=1e>A jrւin(]juMPk_Z 7RAd6m\BJĕ"ID@&n23g@"Ԙo Ea5qESLSkpl VE \llMxn=*"8h֘jh=$.\) RSS""m\!Qz,&8X#; yQj3ZLbFV#(Ą(rp*9Z)5[ u) hZ<4+׷lRW5酊QpUlE - S\yδ2zX\c]q x8 j~#@zfdn'lB |y4½MiֿNFPkrVcSqȨyJ6 )Jw|I@ QvƓaǠb TV. ` +#(q2>CJr: 2&=ߑVy* ߩ"Y|$r$ {ʽEpEWPKd+ӓt@K92:PкKĀUg*JOJf`k*֟T)wZqmLPıݲ܎Zܲ=J+9>>$0cQTg%x~jWz:r[Z m1V6Wz hR|iK~2Q j<;K("4l,DesFv9VX-6~Gt )6s|h}!&ȯ@A"Yc,d_P~Q1nSɹtiَ) <~)Ehӥm<#;8c IQh!+E|"|2AmbN͆ i M@.msHGkWb:b#Q1q/bjwl93B0aWm~EY]U +"5f}a#|Ft8+g /u *|)LGe3HY}䣎QAn$5@GR@۩86j̲>[e*7 @Gt~HxE#uԆ. 'ƽrkcF$ёv Y^Lֻ)pmK).^PzP\6S^pP|2Gj#d>  lR Q慖E5o@kU(c8āN9lJ2_ ~Z$W4[j($".Le)U֞ᙷG_3g9x.g{WfZqƫZQ1]0ރDTCyXT-i3:Jɪ-ɪj͟W Sa .P*Vɱ*j[%(P&P=Zrƛ+O%҇`MuvBgfEm܁}_1LrX  Pr,00 5LEaS`Tcֹ ĭ,jpl)*[pA6I% p(OlMW%>퓶+To4>B[R}֖jW!K]xbZzb\) d⦃n-$-4" Qэ+N"eL8ЀAERþH0+IVC w\*U ^)r@O2 uqWb|7[ S@b9Z D F/Tjn)ဖ@^ȖAQJ=73\IDŽ/sJǩ"*fv8i%VoLimƣ~ت0}?<#wb1]D\wM't4D06I# ׯ%BֵoEk  :[jvF*JSR7"퀦+]TDO%B^a"텍[i17msZ[M(-4T!H54`:m+ңz8 mӐ- ш"k,¤7/U BP(ΛP}cY BiᖀJ vHe=c)YY! 뒊$V_|,W-;ǥ{W"%205mq RmMI/QTPtr1$޵H zo7T;e-)bӑVAJ;ߔuc'Tq@r О]{ɰW|' B r" T$YIjF߲*e<\#Է7fW[$dI=v"s%tZY(RFrUCrJ5MMƒr?|^5b4@ri">&oĹщSiENs\G{kP<1"9bkCcDH(u>FU\,l j^Cq JS;/vvZ *; P q u~ey>7£Ɣkr |I0ht덠L1+N(uq[\Ҵ9YmA\*Kj`!DI'L )-5,!Zp.]<()ZlRa@k b+N*늇$Sv*UثWb]bثWbǾ*]ov*RPUUثWbbbbv(v)\0AR) aR+{$-[L,]]SLSn튵 \Sn(kv5;o\PUciWb[Њz TU>&,@ a zn"@O]l "V) Sj9"tЂWbGC'*΂w$rjrwʲ\GYf ۠M69`Q-V^ޘHbTlm&bGbUa͂"6l"\`xw-^8h>ȩ?D 7_kR)C>T1nS%Tmџ~*$VY+nFK)Mh6|2EBł9(rAN~pqI[S]U#[$ oŐnJm^xSUcjN ClJh:0~1WӘBalbO{jHliֻb@ 1nlP L9HiPPra Oc8.8x.hס"GQ2JP2|C*F]މ! oSQ=덿HGm b)㇄x)HA:dl\P6FNw,Bv"2P1hڤ e+CP4UwȖAMݷ rA^H5YbSEXƑm_j1-@(FCǡFF[67XUz׎J@SHj%EjCXM1mRb\vZbjkL!p*iAuȖct3dTsSּz ԁ{sFI$ō:fx. 4C SӮ+h$⋵<S )n bxxBڹ!t@Zp-S8$rrƵ:][\1UE#R"y2]2 К~^"l23hH (hz!P:ùoR/U$Cu'cH]p[*ja4ӊ)YA re.e 7^*CcL'cP=Aw/ cNæ K#gS8] 9OzTS3p㪋KqvCNLc\cބcRzu헆ѧ U! Ͱ@KfT֕1+*}d `J-, _<+ƤϒɾLAPvF4[+cITCgIn:ŸOE W6LQ XAe 9 ;*6@nv_i3}w=9":, H2 I2 `FI$tVA };=Vㄠ E|0(oI.>*|bj-Rh+zv$EMɂBF<0Y‹Sd))-\TmHhsPYO )qˇ=˃V{i'zaE1lz j+$ C  2HJ]NPl2WE<[+.SyhMh6&ݿ|UNتj 7ejWmj@'a 2Ki. 8`dqUH^NA#+l21-Z֮N>x͡^v*9d8B޴L]6~x}#\(G|2LL[Bӑ${ Ȗʯj*kQ` /">kPh~TfP醘4hzm +\6i qӦ6 +1i5K@,UP|r,/O7!ĦIH!\f;94$rڴ>&;)҂68X xxD-piRApzb(;i-T[t?q!AǾ) "YB @"ӑfY0WWOܙok9b<0[ Hlm@D[Ψ4)>mjt+*fŜN7LAn ^O2C%Z׸ ^*CT7zSbJ_lnV T1Y0bf'`hdwXGbTڻlUvxRg.:׮D @;K0һn0%V,@H@Z6"G0v4%:/_Fڤ{~K%啓CpXN;n٨<#5fzh#)QJ Sny8:bIůJ5547xoWk w#QxJf|z7DBks0]˯L,[dgab|rD+P24D[̱XT(y!mS=@ZTm4Z)8*O!0=R 6h;wJ-!dYR h+)ijXNPT#ԩm,d Z%"R88xAO+  23ZI'zQJ#% XhoͪXo9uR^7MvSl8g\0N)?}*j:skDvT"TnMW,mQGtZХhk1gq厊&U,S!8pi\KJ@cX(YI@fqDm8a;8GU<+Lq6XitẘG)YX Sc q^ N{ۉgrG%jr}iqrsa"DDDZA#72h!PH~ʉqKOL!F DݲReF%YY`w۾ًjOW. pҝ:2S:LCQtF1қs,WVR+ۑmmS68Ӓ)|UP߾dFN$54ZOrO a&m+vq!5 =F4%co ,mFx VJ#IԯNثRQ H#q^ MQK2L4 q‚(\ƻQM!"TXD,[.Z-bb];v*Ub]v*RUءثWb])v*UإثWbbS5;mH CbYN bӱCu8[mثKuƖ ]| k )%PUث+QƠPV=o]v*UPUpV٘qFXTT {YF 0+ȃN1@=J[ط?Ɗ> ݫ)3Jӻ@Xa=Wm6̊iԊS-҃;5ȬrTi-5n B ӦDxqқ2^18 !ȏUXjr v\UȖC`ܬޟ#u٫wW,fx{ ,/& 郅"[H>^*wrq61[!&>hi*Cɵ XPl*+S<#lze3.F0n#~f)" UU~x- 6{V#LlP9f'`#kѾ=DU5;t¶ܩ vn>,"L O ʠ0%HɯLgJ-"BHS!e<Ƈ:N2 ^k%Oe"f6| .l`oOh q>x569nWYPW)Z똧A`G$G ͜"8\¢n[FMS~Yg9}' 45x七. CNWZʨ^ P!vX]s S+uKV\EEHM +>΂5; j৮6Vz~tP8P1OO2@JThIYwRTu`N$C' 4=2)Z7;…XQNCb|=!uV0+Mvy)CTwj )hl:єF΃ePP;ti;y3;y!tm63"pnkh-@9eJB1Vp ƛ|jxiAcKlhFR)Ve?ZxIݻ[ǥh-V;PֵfA#ﳁ0NN{%R=(L΀@\*"-v27-ɼvg=wNmRI(XLB;v9}[ KMHPOv5lZ+Z&J}k6U+ r٩,ۧF" !.dc.AV"X`Sʹ4a 1و&`+2")c ┣]0J6QCjԷ *~R0Ea CHVXAL-&j5}bd]-Ǟ:hwG5\Q6 #gu^ሕ-H\dwh ',/a^kmERkHDSBڀuc'piĔ CN`ZH"DÊ]QUOS@Z1mɌ$N J ٍNw 4( VS!"#t]/Ku+JX5 ݽ| [L,Dmi&,B]IbT Rĝ͎ T 癷MUj19B+LftrbH]2/1sӚU8HcQM6q&21^3q9B\;xʈqPƲGv-Bs]^mH&NLjIR)N)m`i^'LdhTMkP! Hz` 8Yb,]]\V݅Z8.]k bbW(&*pmaCXWb]v(v)b]]v*UثWbb]v**bbbb]]v*)v(v*KVKUfz(v* oLQN* +bv* u1Zo**(\E*!&lq=w9-JFʸEhq$kZ{"ErYq#x׾JI)N7"uK0(F+ke G*LVʥECJ&!J\?[U**׈Rj pZiU^SWؕ ,(r,/JdHd >f trJef-HyDB}Az`GpDA5}Bj&`w!n0 IPqqb9ۏ]5ɕ½+z\q&0qgfEp>v ڈ0Ip 2#'LxT < .VêoGZ?_֙dܙ$Tڣ!p7Nd"MOLL:C OXe(15 ..T:JJʓj'o !uHr)Y$J1bKJ!er<ݯFQJ0ԕw%N4!VBzmbՁi*J! R)m4(lu;urDMS";[Z`ȩڛ0nLn-eFA҂I qD4Nd4#ͭ a`)Z`G|AǔOԏ|yPj塴4"=iPpv^$EA~n%a6 -/ƣJsH;)4ޙ*E2Ў HW# .V!Pp\Tq:|1h ʤ/ scާl10p̒J G.>a<\\Ì0 ԎVv7\a.-&8OXȩ.z5`7n.t  5䁭$DF UB1HDyb,,wے$E"dM`|NSqx.QXtɠ w$gvLeJ_> HM(Aajm(Ȕ?fYTc䣮խ2gv۽H5N &RL -b~őTFVbE: m2%*OOɈq%+CZZLeE;i6=JxI%:8;YDo^lcMRҖ!+Z(k OJs:Ž3Y DQt‹hI|M+#lv7āZm(-S k v*Uث}KE5 VS̩JqKn]܇Z[@wm<.#RӅv(v*UثXUثxثU,*zV8NbXgxEx\@)3Qɰv*PUإثVW R(SbbWb)v(v* v*)v*A#&zODp-bbqH-KW`K]\N(-P6vh@q*AcM!+g oǒ) (=:TeGg o vփ0N$vR=H1+Uk$m3p;dapRp [DD9 Sɺb~^ mW@deɔ9SR6(6\Aivc @ yq 2vKae{> ^N)w<٣ V)OȚBҡo-dQ瓪k%C1 TxV(H7߮ kZ,t%*0i5q,#OFPu$aWYb@$ʌJqt\L+=B}2L@M!ET.m[2z݉KT9qehi7߿[,4AڂPWCV n$m#[*kmfr.ҝN cP Xl lKgC *Թ56wJ@ak7LWEv=Fl *m-+ʤnbgܤET"ϣe_׍$BEj+HԜYUbQT|]J^2TÉIJ`0'e#N?W0ji\w銭aPBM)Ahn; 1Poc ,][j}8m\SHו9+J`Hp⪆U 29dCU plØv+fg}e-Oa$@3Ih6w44>rx &1;HOOmP E[H9a""24J4K ֵS Sڟ$q'q qUPr7iO$EWҝvd'IXλ ERDͭg|pV-ܱĤرN0Iӥ7'(p;-1OA,h[ӝJHaB+HHXe#jxdXqFC )M[l%֦*`,+R>,&jlwO$(+dxC.3k30[]Ӿ%Cl jllVN zxa##-jEo'*|^8mTw{6Dߑ "8bBPud*gEKT>*䭮'SMDMx^ E*:׾)߶DٜMn$J8W#lP Fڢ7ݐ,Qa@&i}[x$p2 OF\xةCukB{ cP@aN^<V87J\ZHJJ $|֎H]$) ё81,R9}Td/f}I mQ/FazeQ ݧǍեPNٔX]R7銶)S|ErQkhaʔ5Kvqun5aecFC^B{L7dq%ArХaaJ0rJB6ZU #EE{l2 JWA %lM({t€jR9jw$PWݎU"a쉆ᣠ;SS<`JYLh*M|3DŽcE/pc(fc90z@rCU-B JJ(|`L /sT]̡ʹc^W BG\MER*P|w-;!҇zjeB0>m="X_~87#RO \ȏHbGәq&bI2K¶9φ(طDJk:vQ"IP0j U@kLT0hVI8ԚrJ8̬I=@*AZnOa؈M6!$`K4i"4kvq&ÎǮ!d)erL-U,Z[ҧKXP㊗b+N[02k+)} AR OQZ07xu4|>%&ԨFP$ ;ተqK+;v*U(o]p-Wbb])v(p!ثWb⮮+nZ]o;l`HlbĻ7]p!!rӸ'n8 *UU Aֵ{5RGLTCDx5dTPP9aYX!Zzc8 F,ʠ-Y XC XaJdYIr& D/'۾FI=;w'1a3hdE]|̈cL{ӾHE`|b[x׶Xy4=(V⋽E|BmRHܟ|EcJƄL2˶H s$&ɌeYAe\gSL8c>bGSe+91S炓m "RWsi゙],$L,\,^%B?T.Uڊ괟1LHH;}UUZ6xe\-t]+&5k$:vckHjW؜6XGIt+)#$O YL)܃V 튺 _рo4ۮ*N7^]ʘ۹cKm8 Bv;dirdjwtLzڛ0q!~So0p-zK!ʤJmho4Ȗap֝p2oGOQA^!f88E4tLxbc-Ji%J< ͅzvk[y V^Eג'`79&QǦ qڭᑭg#È޽7/jm*vb| h_l(\vژ") @ lӟ8L΅Ж$F<4icý!PbH\ XjI] '"D@ZF.楷6 t{Tt9vquyR vHWeMkl`-c 'j|V@Iq PՉe٦[Rk.#Wv Om<=YqtnJS,c%MJܙ;&.bOz)X p\OL]W) _aBj V:er $(#H$<1DI H%/cUO`9BJQ"ˮX͢BF!ۻqh(+xb^N:.ҪE/ZLhmcO$ ҹ%Zhv8+XrW+w7%]V?v >,\zHd_Epv$4U23>-B~BFXsn"=䐆ۯ!RdhkJB^ 5\ͥ]ĔFYvCz V9Htu#ۮca-ŸKyz1<d2jUl%vp,HnbA}XFIVğE0 Q mXhwrىsbܨ[l*ߚ%!$h,0`2:F,Ai16Z릊<X$ԓH &G DqRhV L2m UnLe8A.2uXԢPXE$8VH.; iCb.CB58XP*hM=@mVeV0 4ZL,iUءUتjh |28X R#`•SQPQZqb]+m'r8x\QkA h)S1|Jy&bb& nI-bbaCV%ثWb]v*UإblR*Wb]v)v*UثV!k bV%ثV2WbI(ժ_|p$ۡvQɵ Z$ۮ۰%r) Ƕj-A׮DDtaZQ"9Bm# ٣F6ñAWszLQ^w߰ȐhF(2-Oza$@o, vbVӸ\mi[eIoPoM4-g ARz|t~ٕ* OCP܆E0D)+cLkKn =*uI߾FI^~9uZ p$JTEKҠφCnL<ԏpjH؏Ff!0 w;bZm)"q&~ r1ر$'_TarD1^ eme!Я|H-jNh+ #/(ٻSph$q7Qj\AqRqR⟎EԮ0M27{]]ՊªTsOecC'o*3/ u y smB64 H |  ո}bNc.>ImIUxZ`ӒO;3 ؁3/y H5!-3*7}@<0ZP%Jn>9mwaVcͲf$$OM!) ٦UBڎ_H0fdFfx)*zoLQ'm܅+HB!,KCȵ*F@Ӿd[«[^>d63[IԡbAޙmk$>SBwD{B q*E(hþ_a4J|6hKBOs{R'rMdL(?6†59P hCDa%n-P]v*U1ӹR$G?^5oj[WbCxثCXB 8P]=CUmثt'u1E5‡b[b]u1M7m<-bثX}KCWb]v*UثWb]]0$6qI[Wb%P4UrBǠ"ˈ"q$L(wl k JRTq]$gqH AXRi!%VIܵd!HAB î H*Hw,%p HXq;4[F4jFɵu)'AQ Jքv;3Kf C !H듶V8 !*l)f;/`f*"  Ɖ v.ȝcZ@ V5'L$3W@i$"t7=het=TdҙA^OfԂq<ђ[I;m3R(CIZQF$ӧHnT.Md/*v'饈B$|6ߒ%*[n% qZs%,EjRe*X CPþvDR~d-aC\N+N+֚e4LPBa =E(OQA31곉i%li#lB XF ĭ5F@~%({zmHH#[XتRէmS49+0R :А{ y,G6d%BtPkNV|WT=0TצRC~P{%P0 XP4Z65( ܏mB"ո=2DJuHsb=q\Zt8 KKJJ֛ :L^r%\C W5|fp2;*Fm!Nzތ6b)cr#ʀv eXip~ LA<1‚@ĔvbZTnZw&Y#l[č\6Ɨ^/ldCA=qHZh>,U!z}"r]#8Wnn"@ٔB 5{RI'6wmiQbuBSD3+瑶Td$;qW_**#I%!' 6@P{e2KmE6Lpfm+D{ ѧARr+$HJ@VRN]jD(n4, Sۮ&HZCRa) HT n7r2,Js% =[#-Gf|%´Cb4ZM(:W+vAHvTER9i(}>G_{eQ#k?`HKDjS݇ĹjpuG5Kx9YR|c ={+2[o#z"Wu9)JZbdMT ؝&KnH^;eA]ҥkO $v^5##曵:b)oZȲXC#ΨJNL;TW+3 ͝͞/ߕwxfL7 Q, znrahjID>'ʤ;ADyԝ$3$ftM 4qcN3&"]'כ^V)#q6ePeUsbkSRk,[9%ѫN*J*M:!#MRòisM=5챈!F$Xtn(ItQfHĖƖejoGBn>~,U=\%^_Ӄ$H)#8 ]\cL%+@zz;.(L/ /A`?\"w"FrYg!Te*0"i;cPŚUo]!0߽&Z3%!oLXiz X‹Jqd6q4kֽX:&6TКljYC:$ƚ -bb8W PF@xҪ H L0zb(v)lSj!Jt CWSXثWbW"rjr 6 Q|UX;k -aWb KVS4&CWb]v*7..]v*UثVSmKNثt=1M;vv*U BՅGLiK;1Zʕ%HqKi(o^ T•YK,.^0Aq*G9dv]W2qBw[ĤsK@q(9W~ȑ0h[aר=F4B("nkdDHN)V 9uDSʪ}g9*N`4ڴrRTgV34`z MQ :o$#ϹLT ȳ;8R*eɎBM*f1|wF<[X+0YA321 JFZ $Hn e|5RK0DdJݑ$=OLHej2m+Z:RiJ :8XHC){u W +^-e`wBU:նou9o@Wo&MZ_6RAM|p)o`fEN\;B<[!$;. + TVQءثX`G阮ŠȖaUBji mWsL)kJӀ#kH,On w42ZDH`ڿ,I@ op0 ڟ ᅍ5LV]q]^6ښkQZtdQڂ20gEI{' L KmڭCW4TMF{bUs6?ۮ*M+N46 qV[wu;hlu+G|$uJbX{v8OP( ;ӷ†zbT9uIp=6Ws+ҕƓt$qB`HTbIrݑ ^k_"C0U+#ЁPO]V z-hl My!x;22۾6/B)g`F%bPr#˫3;RgBrzd,I TC I XhM~ȅV;wUm縘C @I0KDY䎗Nؼ#$+r [\2q@fӐB5F;7m32 [CF+ByaR44ɲZL4_ʠ}HX₼}`US/LnᦟZ1c#(RUOPv(VJ h-2UYp*BUy5֫Oj%%rsQN&;l ,T?fGFQ!T0a_^TRi&E@QL̬Piʛ@ՆNT(Zٔq%~ wߩHT4HYVP[x0| 3,ɣA+ qLN}3yCۗ/YG۔=(JN=їcB&dfO3c*!e@i¸rY&xЇMB2XdLA<ӌlٓd*߾YMDӕޛƂS=Η^1CWbjĎ3$"JF' R;(lgܕgTWO !MRԦ̀~*OI7WW+:uL.   Mj@o~VLbGBAMv̐ 8"NM攮@J$GQJS]C*+ڄWIk b@z7[$(k bb]uF+n]LPU8:HZ܅n>) EO$c=ḀN"`d*`Ss@zd& 8etIٷE +ޠe<&JD'r;m*-h\ H(!F@}@O#_ʷ7V-l'Fv1^FR{rw5,Ej1VR*gf;l$PSZi[xE[Z^&-F+ a,yܑ Vž͌E(O9Y7ߏJe%:*2̆㓌ij#`$Ob׸\&c]B[6G~k^ v`k_HFؙQNIjw'-Ez偪JLBATZ_|l P$u +6Wl oGg{|H ([5SO*0j[V4 &%%hz $r޴ɣjAF"pKExL6)eŶZ'R0 ncQlJTyVһ҃K -c djpv8imxcһdiS r[Pb‡I߮*M1PT4;v[*ն,,E<7:;r )(b{`堵(A44FRe-1+|.irͻ<[<2OBJR) 2FԡZRI]UnS )HEEІ߯0Z7m5 ƖqliuLkߍ"ь/'%RHk:ޛ=}? ^+v8 f#Jr)A2Q;5n&%aXRLmig.QֽS6ʠ$]AR;6*6+ (j6*=*@;b[S`) ƀ#$@E$Q Ӯ%)Pï88pe"}>AbC*7…N|&W6\)UT=DWC Uuv7XJLW)R kdC*A QV"h~u,$JޛeFU6hǖ1S,H4pE.88<$+eI=I+3plTƀS\$8!) k2n4;呋 Қ2&Qxb#e=, %7 1eAHҵ+5  بV֙aP c@ \Ipl#] Ik  T:Zצbgx\E77Ƽ@^l3Rsq Ȍ¿GZp|#F7,bnC#jҤ}!#v5Z|Fn(P?OZ`v;,;^LV+P‡ "QuĚHk@;}X8bC0=+(,@,j@#9 X$~;a6SJ|Zb@jIX|oK9'}S @rV K8(-Б14\M0 $›c ajBi~5=iL6ƜM| ab#Km}N(h R-p,RGSU`hF DEc" X;8ܒTS"AN?Zӿߍ'E},,W#b$W Ĕ:Tm) L(\〆@QA7͗bZ05*Jo-^f+)Mw ٰL@O7j/&N,*GU>d6JaVm0;&r9ݕ4˰p* Br Mao"DI{U$ ;:Fy%.ZjZrs/(z\8Fzǁv#fQl"My1.6, 慑h{-0bc&;h@Z E,T7 ÿݔJ'( B+^]a H`n!ZV,qpJffA|:'i (mhjG8 CN ;w- ,۶Y99+Z Td&z_ WI]` +Z-I+ wL(K?\ pܣ=H 9xr=uqе$̠wUi*U#B'vriOlI Q7jאT {xѳ,/tč\ʧ㇉ـ218bvD$EP# !l+e Q%1N&tSq&%Q*u; ɶvG$_\ [)0tl2|(JuUl6Ml;f/_b5Z퇅uN DsEwnM,5+xOZUrG„f&lH#,HN9 rƅ!#J"-Fd?NN&) 2 XHz?A?,4aOC-'l2wk7l!. h*CƖ 8"yWzeS-ֹН$/P04j$~=-eit֔xجhA&>='&R Nrɉ9~1AlHsv$|IV{dYD'FӁ5xr'-Nc =լ`YVSNhjcf.H K\o Se*ztU=j>썳ᠱ # p)|P<GSS(2( uld8!ޙcKF (h51PV6bn0Zii"un4T=2VBܓT`MK# @4,[*Al[n;fvjҨ.hNCA6+p$s$5ƃ`yjZU]}cF2> Fmޏ\yltrc9zߝ4@dfLɦ ]lƛb Je$5fzxTI脍}RӉ$nonS԰Ix#my lIZTwBOT5Gu>8img!ڤ… u9MNU)Rz ߾)]SJ} h,l4%d'"ldhXP`yS- `J|h܉6Y:ኯXQW顦BQ'DJ\VP#'׽kxTw6G,xMmd#tt ~#bf; ]q Z=hMFĪ3Ē@|$Q@)5 * mNQi!0(Uj)q=n 9ZT,E7Vzڹ(]nu-J_q g![ӪNKTW4-fu<0@",ݎ0w`@Ԕd26kv}& tByGw8ʆKRΫR;[) 4dש!e%9dڭjrQXJV)N{]UvQ99(BiS7AN!!$&s1G-nI3g"JVtH%b*+Ǧ@63RwN"*gj,Wcdk%~ ʁ(T:S YL,VbZbpsbZªHQw4ܟBgm1vy-OaaDʘ9&mMI bKhE0$-†銺K0[:h!5L,i CzvmثKXXv*UPb⭨(+|jCk8 Ĩ9({gGjQɵ;;v*Uث`F!PU(oZ® KVثKCWb+WbZ†%ثWb[KGW xUث`Cc [.4UsSJ"rL\a*>YnbYcr* Hl%R8n:,'HR"<}"7lg$4T35@86f.O9Ϥ[}/QMS!:nuhUS}ro%lN;95Zנ$"1+b۾IQ*KUwB Sc`lj-0*F"C8T7Cl C!+P#JN&cJvJ=T]Pmc5 Hd%ѣ# ȮW$r0%d%$PYJS?OS^EUN痶Yͧ`\:k% ׮%!m )+[bTrL |{i{hZJ6ʛBa"P܊BI7>db)72{[&"ڻOSO"C{^$U{ҿIPH-Nګ L0!hJ 9zZ@<1rB˛% Ra,n|$ p*>#BNOP J=z AP'j~9e4ڬOG2HKTCC$*dX{6 <)Y$̙ElbI#rffLjO3 FԟcL`V<6…C]p^5e l7nU=ɭ0FԏL5CG 1PA{JiPF -kH jy2V2U_b2=%~4?-] S+wܘR0Rmj0Ud'cE$RL ܃Sm4nP~J2z˓(Ui""*,d8i$T)lWc)Z]l4e`5|PV Mhf~էJPmCW*{`&Ng+ƿZb"))T&zEjv;ZS$1PȳtD$2Xՠ }f[tKFFûQy1T`hP{+>hQbjA-9[*Z‡|WbWE#rknn.]]nuqVCWb4*] KXUء6+MaVhWb]o][]TE5v*)n`embRup%RU]- W+Fܖ~С둔mdB+@T")YN8 @k\)ߦJ6dnҰU 1RW)жԜ7" dR+J*kRBrpv6=.UVdVZ ; 7pFXuGO^X:BZr ҋuy֤"d þ^Xj䘕SZ.B \OQFbȒU@ilsSm/Bk" $2lL1DԍrMe ~YtZ 0/idCl`Fž#hWrL,K@wޣƗ`^%0 NkVb?bs!!m46\7Hݐ*49>MwkuZC"F@"Zn,crg[7"90KV7#\$4GDckZo cfa]&DTROW$Gz^F($; PxwDLBP;ՖHtv1=~~(3ʎ=Зׇ~Yt;| < {-uP)NaFI(;0I[BA=QJmҔ1+MiL,JGװZx`m^j@x`o 36Ԅ@\!dc܌,)k- PKm^ݴpN(%(^eoLEyt)׮G{ffjd8R1Pn›R d"UY_^%@Mzmn\XVbHֿ*3mQ`Ɇ +@ p ;L)Wԁ(5vF.aj#=n䇨5̍6doHXJ T OofFFJ;IZvmɵPEq}b0]aBjow24bH);W$_5#~ڞ6 GJmL ."͹wÙt ckt fXL(p4=>UR jT_la%E|CVjP `#ddwQ Wn6ZClb@U}Sv+-1qM(l M.h{x<슱2[;Zk|{_]ƍXT1+@…U,ǢR~ J\JXUVjHOJdgPZ[%Lm ^`@)PǶD,R:!+F[[֜$aP}!!L8Y%e: m3޻.V:'l{C5-7Ԩªqҹ!^%* -ƻ}!"K A !w!j6nx`eTGNuy4\In H`LVw B >GTy'M|J)6ȘD[ һs :C"%)wX ^XAI }6;dدyXF)Ȉ& mӥraknFbmzݑ,R|bSI"!Iʲn;ӯщA\Z޿S1kH]l=Zf 5zdYh9Ufը4{w;kvWaJ;*K2/Nh2lDpD‘QDRTO%jCZ2hacʃj䩍%b'|(Ddr?W!`*rFk_F^#qe3cbH-»}25 {&SO]x(@im~'ƤW-BW)AbмZ$=z'L|.6iIEi ƍFKmؤeOV*kң,JT'A_|<6*Xd *cĨQVwPr$2M@(NI.R8PɿGd) ))<\qu!+ٳ?6,N!L?A:zh2C8Jw2?6KP;z- 0#A$ e(>G\#DV91Zt#2ٌ `I#߾].6YB4;8J,~-a+ 9&%R0kP*FȖQUUO'&h6cʺsnc,A $!Qx֙m4ԦǮIZl(%wZbs3' \(Ýi˵F7$խ€xnD25JaOݒ 5\QjGx 8^;w55=N }츉ܦ 2Lq8O|m^: SQAiW޽})mpEܐr)Յ+ʧK~,䐱$a)Zw5[XPP;+D Q;ʶ(ݽ+XPUءإVWbKXثWb]|U*k T\qWb]v*k 7.]\V݊v*UإU -bӱV%Sv*UR KxUW"YOiU+_ f@Z"Vz0' gf`>d":ܑnM犫 B=QڙGw2&-ߦMo¹\ ;d @A,].l-)7`HO_iXo l ;76N& 6+~Rب!YL-BԒi F*dO_limsrZ֘O%:o%L-ZUpY׭0]R )Ӯ+=<>Y\P] F]֘٥jRaJ|2qr'ɵT9 PԑT!E@ș2K dSj|\LL\x7%ZSpn MAdTۯn.}U| A%"ZuH) ;N?h!eK`3l>,BA~Xd zU+^= 1;ȘbGQ\R)KtP Yv05v8Xz'ytԇ*A* /?IaX4덦,nCx‚oWiN]͘59~,}:#c $$ۖLFJvm!1ָljZp.6i b_Z5ԨB1$W@ȔB=ƥ^E:Lh"riZGe>]@c?+Os/3 H*ԭ߶L @7Ȑuwlb/P˥ű!?rueץ[@[ɧDqQ4^\ ȟvfb klkZ4RԦ6oqҘ-vw)mFB($a6"b׽r@ Q'x#An)^ 2z?L5$ω†.Wjm~#JD$z!eo zdIQk8|rVƛCM6^H |[R~"Tm*nT︮\z 6r,zu zoeEz&1ԟᇇ{AԲ7UUE>8H Gq,7X†FH1- TlZN.W$sOO hҵߎ'idӍ)6OȖq\z|V]%VltѹWHv8"lXL𹩧ёe(;[nCqJ3F{w\Jk[I 71UU`@ 4LՐo\&(w"i imcL*~9F[.0Ǔ)sCL$dCDʕ+`:b:QE RP([ -@*.HT%UGs^ ) olAR1wɂ8U"!"ț%hWî4ZBcgj%7}\U[,M*rlj>2ؑJ&&\5;.W^|SjRɀ"h8 ݕJ-ҵ$HT{SddYZ:8eY K'^xˌUaB)4rf>"G5EҤsSAf\JhzJQSjtsZ heJalbҟiAM1{:S"R2,c|6-bѸP ]Zi&ĤGK)ʇcM|<ؙW4DTs0sEfvԈ#kHˁDُCoFU՜IHո`j;(=2##_FԃwZqS#j= ={dږwX n▎LU4UuG+UCĞ! lEՑia@Kpuq[wLUʼn5'A6R\ IvțqiN~PBڐ텍 m↰EԧS㊒Ew_ۮ XP+AAM Xpk7XW T:;/F46 ;`V b]v)v(v*UثVث*UثWb[baWb%ثXPU v*UKVxӰ+a;vZz#1cփ~ q<#; ȡ6 6T!R)\ʕU"K01CEzڙTR@1sV׭zd fhYXW|!Ǚ-]EGQㅎZR|0}e3s]}#&P(U PàצPOW( 8K *\8z \w8krARAHd'lhunܗ9qm nHLCl#h6 H-'|mim`⫱DN8ݳRq N$5LRe ~^ɂCD&փH涝E.")ɰ*`iZ!D[> h-$tP\ON+wvTX : u'ITp)e%#=Jdڙ X F漚 V_J4mX*7#Z-6>NQ3V1coMEX {@leFh%v#'Xƍ4 ۣQvvDF:x#vմX p6rcPON0(i[ "L͛X܉R'QD#To3`[Xxf`vCYJ-h#=271ےr@F)JNE4p LPޕqR X(uSr@6+-B4*&mVYJTtޝ2'ɸ+ B0O<f+U+$/&-B{% ra P9`,mv…5ȴt5B3փacR>l|p2Q`k^`k!m+텋b! QN*ĂOJxS)3mN╡L^XZRIR-^0+»LzE h6dd&g좃 51_xOn[b V]P~.F!Sq#d&BZ #\5ڮ8b-Wb2(cN[ҋz$.9XactPN<oȯC1DtQ6rv4Ĥ/^K_)7 U;`K`F#"_EmiYPP_޹I/&@yÐ o_|A{X+턔G(ÿ}sO%:o֣$T{dIl-XnLdmttx`)rE;t9Y ђ&>Jv~yT lݒ6-ɿ/!qM6NCTT`bCkNi r+OlFr`M $FM DTL#MZ+owEz@N4R6U^[9{`!A^`,Zy}-PI %Vhhiè@J9!؅5'MdENFtLIXyPznE #~%@Z@0Sr?nˑ58@DDr\mi/*r7lpdPnU"p]RPcgj*zW"C0W3U I&X5+^FL5ID( S镖਻uȖA=!k1H\ ВK$I'9|b`rR#~$*dlRԊddQ"xLHԳP2۵dfzebX'U%ш+R7=3eR35HRv*: ^ig#⑔o/pxվ .5B9,~=;b[JPЁNHsa^ 1%l[*!A*q&ђ( 2TnМg_S45ڻ)74Lz ; 8FGLj(˵:FTr(OlUrQx翎X$(4zt}*L ĉ%/0` cNs;r 4ȴ ]1 hyLZ@ 9nmex=kSyU-b AiTzbM(kqH,EzOze"vqҔOZ q)bVbU j즣cvĄKpv**hzR1DFE641F߸Y;7;X!FQSQ_~0 rmEP-[ҊJzCMZS&E5u¡q$|+wCR>UNPZ銻  zӶ+mbbaCWb]]^zx`6WU-bثWb]v*RPUثWbZ‡b]v*U k baCV%ثWb[X}KXءإ`dUr;)Fpl"98Ikn;[uAUQQ㐑mFKq߯ls'-Uߵ rey<@ԁhlqeA1=ÊJþը JK lf0;SpYMlHad$l8ƅ"X#eB+I4n w>)#i%dfkn{aTLm4ă `µda)wԔZvlsk/VYvT$abWFT:TXԒ0!U VR=l"œeH5z6ٷu2#װ䩅b~y*kni\ ` B oN" NJ\$oLh+b~ьՀ%. %^ڛuM@ŶUF4^J/ wANXQJ %v(dBA)eS؟LUtA߾SaPT Qjx,b#ޣ"C8T]HS O%l)PSaJdzV(R6%}F93Fܘr<#&]m4}4+I KZjFEB!r`PĕMPr ,଍CXC;- [&ZWJ1':8cDέF>Y)\@` J,11Q$\NB:QW]ăˢ!W9`*B׿abЮXjX^I#קs;,oiR'limr -Zp)rl)*q*QbT7‡SlP=<;VQҬ*<2[S@wT+bi_lWTkP~C! uö4YXZV "}VI&IP782=Sk?hPii! c?M?h\R9v؜`1diI$0$UrpJ ) >~ :5 ^a6"ɀ-,0Ĥ+0zfD R&"T( O:k*%iMZE~XP\tPW`*:)=rۅ$,4=dhꑁMOTw-!&7)p=Q g![+5*: 1̞jZ)1 t߶ @W ;m0%Lk! ٍ$\z*; hA*h2Q$o1Bak"K86N v`cIp& W2IԓpkQJS[pMvYQ-CV4aiIj(1M,Ӹ=ǩ8@S&&GLL9|_NWvVڦ@2 nr]u^jȏ&gMNU9u,%1+KxW+Z{z25Jb9&ȖakMZdNm(nYݏl^+QSڛ(HOɇ>Lƹ5JIj1MDJFݲ|-|K^CNDŘDHr-u$ڔ0A9TR*w=2Ơ`e b=Z ) jRuɆ,bzwɆ)Mi$IXAɀPM*z ""}!Xv*UP\R2 TJfxj6r[b(VKpSJQ-*ҙʖb75V*i֔h^q= zSeuqObbկXEǸ $6Rv5p%r)5jM$FθP *qVqWVd|WL)yڼ֊-7*QGf*1]8ӏ_^Kx $Tt8m|0)SW4q*ƨc^SZIeq6=ST|C状ziAhRXPE>X 1al2Ȯ*VYD"!}9TV$": rkMO|GtmSP=N vU(i%ld)fIK|JQ$27*ߑ%x=:dK!0ߠd$"UDC8H!ɉ00YJphU2 X5 J6aKH^aZTV˹2vVYYI߮Lsk<[&@mL(GEl!QVC~)߹Ɇ>)ܞݾmQgJVYZzo zYO~bEcv&JlC$VH*H ph1&Ԝ$(-2vAA BiOb1R қ Zz:d+ PA[;aCDr5$ 덭- A |0%r ʤ@ٺ;ū$  ^|ڿL!5ip6$Kҳq!AVIbE7yvq5֜M[ im!4cHTzdHgST(}wXOe4҃2I|24'\=G])ZS%Mv)@7\ I[M酋bČ:S.'f}jckV$$ŢAb 50%1Cd/-G)†WaVZ*(uq[v*RpZ@ZrLKW`Vic*L s$lzBk$ҝ0$8!Hk-aCd`M;v(pR|>;EXi'8±*0*b> .!1EcjV- r[VWT;v*UإUUءإUbbZ7"AOIJuk-aWbbKWb?v*])G. aWbb+Wb];v*B *(RE9 q3+W[!TBGMDikN8Vb䨹خ{&C=>"7:27n%+߮dHn9(E+CcŲ d1|TaRSQ]llBuq4ĜBd QP 0ν\:IyU\ΧB4ɺ)<FTlnnDU0c$ n1[&E` s]$S#R5Wԩ)$1+dh7U5tqᗃд^ID -{MDV2I8I@^r6ˆICz~i*M@ho`VkO,BȎ5dCN $n-9*ck6mihهF뿎 ȂW08숤1}Erh%rIB)bNSVJ,'g0l/L?"K1҅R@j*ӧ\Aܪkc- b_ l;R9(HE@&Z\zn2)Xk1.a6q*;a!|S4QP7;ž2^9"**ˮ,$e6OH1-q4'6l[lMGz?Upצ0IlkKMp4I&㊸қ}8hA4w`1MM6qjp3DRUy:~Zq52IM =25G^^٠Tm%LF+Gs3Nu\AꭦEfb}"=6<{+O kњA#NB!]椞Fe61J\ J;YT8㕨v;{ [>ԓp%QȀȕ4&$CUᒻ I_q+mD²E!tB B7>9x*"=w;kih<1*l >ݲ`!"eZ%Q5MD0:׾PcEʌ,$Tv+AS ;ȪLu,VΎeca EjwkL[^7^r&gm;JF R 4'ѬW07\H{- -aV+Wb]v*U*v)v**m´|{ղUѵRvOA)+Ji"( $)h^'LdA YnFqɍW%&uAjZ^6~".JFهUACdUy0XR#*v9(FA>EjHSLSY8C$clE&Y*gL5…ޡ#sR{)RFjy;W#Bl]wQpT}8Pn߫V*KBiN4?ZE0b?, mzUr'`% *% Sdajv70JVh>ƍ yc!`)6+LYO ,iuG)V<>(XFIDi!تZ)vªֿD v']צ@]6 )O|Jo e½RY4⌚ Txxf8H/peuۦKIpXeޘxX8HlixY*%,è;ưcTT`YXmQVȐ5߭N!S-L>9DL`>rP [AV[PѴ~9( ސ-LT֟!+&  mxc"ɀK+]%cHA'`xLr(hӰmBnOڊ^ 241p7HSJNX'~$ŵj7AuR:ȶRH\,Vsl1ёh ۰톩n{X azt jW1*|\>~h[ٗzjibȀV4ze58o7sݸ{⪜.u߿FUު1:) RkńvP͸(Az M)]Y:akȔT! |A4T8TIT*iZ~9Y%J!n:kqa=Rmv▚‡؍ڱ& D3_!‚Ī5{dbIJ@Q\$)ezdت6Ǡ=2@jr;Zp'z|Ӑ2'|{.tt1lPI U#02XR^)?ěy{͌ \gr2o>Y7]>nbKS>cןޜbrA7\ohx>Ga肥y؏Փɪh)gQhcƕ:TI[/Vc>krLZ/7r*s?^B\l>ƖlTኪ0!kVS~x7??W~.^i|NNNN.iט:_yntǛ8eM 4>P9)rs'O0*C2l瀤rwqW?Lm;}8 D?h?+t9Lc%,emZ_Gd^Hj^F\ îX]lmNv%Ew!!h8X,hrmV[Bck ᰩrL۟ 9'$/lr]W\ QUK1zdO/ϒ塨ʟ7:umǒy95EI9 Cɲ վ_Xds'My9A,p%z?,ZqA\h`)7\z>8.Njv?϶F\Ò4iz6ёj"[SV?#z,}#$XEJyȶk6ǢG4t_Ǘ63dtN!i|C5V,dG?#Ts([˰??< `|@=WG*[o$h~so<;՗.Df99z8 fgH5) Z> DTSkZ~‡qUICcI^! !k %G%ֿL_׌_PL5 U|l|2<~y&+Ĭၓbip3 _!ZzbV\!UI~|Ų\0lJX*VB\a͹?&JcIRnŲ}IXB G O~YO̓vqC\!P®8k;ov(v)lwbbabR)k;5bbR\zءثV v)o*R|7Kk O6CP9cZŋWb]ɬPU(v*v*➍bb+8:,CcCx8br (nf4.cK<!cߠ~'?4MG2۰}(z8dc2:8Pr֕q~_+mG81}~CC%MO+ Q.9+E 6"2S%վY>ɖYX.K?\d2dER<.<~+%\%T?Y(lk.nN!KC݊SlQoraݜG'IesYrS96?r<6}dSY:7aPo`jnFF8P##qd8F"VH91(hom#/ ;֛P\IHDG+c2M݌l}/P'Iz"t{[ RvB(AETЉYSAmP*dҕ-fHkh9p)CԂqcjz%?[F)!+v=0!8 C,a1l؅`-:I %2ZۙSjjmXfg,d{|UM+$.";%W XX{l, Jhz}Piqǡ3];q|Ӏn=T.DQLbWJ,t"M Y&E++M._?"zmql:K EwW,AMS7V<`U)"@}EM5S/Ʀ׮Vt2܂7jsjDNA,^xA G)Ł-Cw סoJ~حٞOlU"vADQJV.Yb]ă-*Hjwʐ]~(LO 7Ŀ^ H%<A9ZQ$v;%ĦMLm 5݄Gn[שb{Vabb;D,D-Jo^T<'Ⓔ[y @R)%7'Y%+? m_ q;H_} TPs]PQBy&`hB@|$R[|U`d{xbM[]݇L*UfvzV&|qJU >)&aM)##q44|[Aߪ# UE@G]Zo«J8F)XTUk1=qU +Tjzbaa^­l:\`Uxb⪢WDhըf޸UHqXwMBv T⨋K)d) eR/^**O0Jↀv>تw DP. 4~PWV*ҧ\UEcъ;qRUG#Mت=7*;,5VUURH<۷j|$ < WSnU\ mo#SR ˠhXe5z!!H2ral P9tV h⮦ث銮^aEUw$x(ŔЊaZ}MLԑ5[$R3ZW}AnF"7 `reB[ڿwݐdzKavZ$Rp]z=;W1Wj)\xp-]08YLkB텊Jzr´rrUV[fA!PCaQ^$+jII +|6 *R;(`)C#>5-b[*# Nۍ:_jaVUh*GlU)Z⨘+!m{S˜%VF,fX׊L7"3P9GP=U^I=?6oxoU]:"FޟN)QyxӮ;aqB1Bl**v…PS]cR 6®wv5v,ORMN*W+Q@׾!]!.KWe{b*o\UlUm?U 7oMrb…> h*iƕ" KTqS炒 ~UE:QQNUmZ5;M <=%E)uu#p--T&Jᆐc,h^-,0J`\Ҟ<+'Rt]\Z:0 J*,WFpA$tc+K(H銯Xm1C`mVZm׭{*-gORh9!h„TxZ,\ OW)֞إACSaNj<:aSaR|PٔZ(ܷ)SwTm^ؕZNjaQZbr>;xb~i:Dh=ҙ[aUk|1Wwߦ*J|l)kV⮦*ъ[ܻnjqVZ PĐK:F }iy=1T=hv-IZ'wkv*U1POV8U5mZLUb.0xaBqHRTu4dJ-w|0P}8)m^D+/J Se>`wEۯ*1Vlh8U`Wb @i1UbAª{w ^ +,wQj]QսlUz"qUd4]^\~L(qS|O*{⮮(m\v=pxZjui JB"6~xP[努#U텉d,iAGJ5z `ZcNMk*J7Aޙk Ӧ6z*}2z1;xaB#Cdt6)\HO4k"@&2My1<0k;Hȵ+u`Kl O$XfTëzoٸ ]/J aɎVlb?ݒJqVIe_A=v*S.LP$dtc>X&kZDE7AsKJ=4%-: :ab'+*3] +@:;"sDPBҸZrt/UT @adH&Zo k@L}eouw$1W챠g A4yf!#BTEV;QoP=ŷ՚(T% i35IF,Q(RqŁ)_b~lX[PzЮ…,Iݎ(\]Jae"Ыt$o!;Jv8o"M<8juP{}Hٌ?0hLo=)jxSvPUQ*1ڣ^8UE[5 >8 H Ϧz_@`ve'ۮ%*EIeUr#JZ۱WT%Q:rE&Ҡ8LCCkzbo[«j1UPqUv8VF u†Ҧ`J*աGP:'aZCLSHrĀ+aFh JI~rp⤠&|R6늫[dH+Um<>[B+2WJ↝8vUe[M:]$ZBS C#sRı|Uqp#Rt*4$@OqWp%}1TEą}UVGV$&ލ46٭QU՟,uQIjwiQWF>!ޞ8Ut;;P5R&|iW)g=MVPQ@SP"[T_^&+(c]`J1-)p%c尦/J!tS4Ǧ* 2ߴkMHۓSbic5V% l)$A4AESbV.X)$E()ZLUFJC0*RƀT *qJRo*][_8C@qZ4bV|V\U46\Uj tZ]WSZIZCt«XZ*V늹Ҕ5vB)lU]եx`[0qsJcI5$[X< u#(#{rnMnCZ4 m:[B׶D+UqBS-\naI o~bZ8`m\UUu)LUƞֽU|qBJUت,bkaUdL X϶4=1UhVo„Ec@^JU%(U=6~٩^+Uy]ꦠ\UqJ6}O B0.ٔ1)D%* ڧ,y77LWMY-.(z{kJ.}/C|Lȝ;1(n4ONZP%I' dF~@RSYbaI92E낛#&cgm Ō2z<'Sd=QDTi }yLfN{VpZWmGvPoIPp6LDsK|OisD0B +ls]J=!;qqT5N{ꬋӂ N p´b^+!]p:ڸcaڿ&wAY\jY& 4V)Vkk=Ő(5%xVS xvCpp+(\l}F54[]ZT7.=w}81-ʲ*zkO%-tf8H&)c$SR@ *2(k]uL,XM!hz|K"A_|nCݼ)zTԁJ[sW_Q\QJW|ܸ}#%(4Gc6 Z'kƜвvަXFejjI+CFX) 7mC1U#>?N*$3(<c{"\ c[( B W_ QiMr`mmi!$2FT)"H F@N YJRyrطH ڽԐ8`qD W鯶%E%0['$@"A߯HQdISOiSl@;4a4 Ҵ27L t8* ^S E0Rx#&)LYcnuUZ!e)#dR$^U|XWnDذ*ȦB6#*JX;bPC Nu`aRS[}$Xf,(1'm 5,F%F}b8▙Kb RGg @)rpQ1hV.J銮$1…Szf0wʕPMIQhzV Z㊹|1J]C``jъab]N*Z&….Z劯146P(jqUȂ1U' jքt5Tʚ{⭡^O]"qUj(v+QC#AYkVޛS?QU8PeLUT2EqM|FJ&- Z'sO| Um{⭒M+l0p0R5,$ 8ЁAs |!a= nI哏)֊:,LU}^\5W-{v…OWb:Ƕ[t=OL #I;*gZ[\lbߧzu.b2G~[b>R8PZb>Ux PsW U^&Ev9%5…:8T7BZ*bOlUpWln}U_=UeEoኯ7rGAZBq܀8 P+Gj$()XWaO|UU&x$v B*:ЊH"Է'ƘॶlĠTָUgզd2>4/Mwq)1UM}W= R*vl(YĖ I*$qI˗~~*AUʕ5pE늴I▆TP@r_~Qb 6#^Rk,2@ƀ' YXqb6#o4'w_Up+|*;mp'^fb ta%@m[nbGX9.{N,$e&瀔lVcNOmK Ԯ4*MAp[ 4/8\ڔy:!B~~~xd8%lRKC2*JJA™9A뷶2X!|26L!&^F2zSҸJ@k{.,䫫y{XȢBK_JRI) ZOR{b%VfF%F2?mEZOz Fxl[ XQ]CWz=)FZMlࣂM{R9qč"Թ(7꺦{nfӂ)2JP{b %Xu'Gcȵ+?QbY.qT3$H҇p) biZT~c-1F/Z2O,OmdF;1Z/[!h+ۯG#SuT<d!n@\,}7)UkH?ĥRN#<'jN6kWrɏ q[d=<є I% a,>kmF*XVI;SmTtZ> ^`iT΂i `;qBdJeO,jG|TiR;OmdE@xJsEԝ i-[QNQdI0A DX@=y"RRrݽr6Xnҭ E)&#s$tȅdWɉGzMJZ8-3=N%2\Ԕb$ME"EěRmhz{W$K.-\TjrBIFy iM* "(06%ŘA-Kք5( ql}@C|TMR]酂 kJoB 09U7+ە9u^إi l6m T{ CUa4Z4VN(n1UTH5>ثPLTzUP=éT7(QbF*Ҏ翆*GNNcH>*jlUL VA@޵>8JSZ~b'c[Z H«~xX&hd7'QA'煃t2)h*6\=UehD$>#W`د64mL^w8 tP_ Z{╇=2)wbwA֞^ت/)&B{`K*S*1][b$ڽ1V̇Qi\UU?dQ~6\Đ=p'|UbWWy !b^#ɩ; ||7QiqBe,KgIj,d$$ ,V֢dA e+0ܡ; bUk d R<>.4UL@+Qʧ45*W*[Ԁ+ av).^>kyZ)xAR:*(!*J(TbymRH^HȦOa9<1U"NzZRAqǦ*\UW\Eql1LU0["ՔEt`ǒUk5l [*Qo Y$Px 6VLFY)ŸFZCj~VJӦ)UUH( Vn*Fn:br ~-`U'mX*-]iTTw4sdvEӶFZOMIUu+튵Zx|CU= l)8Uz)[:M8F/ P⪍$WgS'-TmZ R=5\:⭲vZU]G_O-Pl V}cTJUJJ̥%CAR8U-]N**]v*v\޿F*'nUI'$ f6S0RVP^O|UqWRj~U*^a z(/)Zw>9N#JƬI9m48lUxcJv]\Um+BU؏zd#zׁ+qKtW/%;}RڭH;r~!c.jkd|U+߾*H@ĵ61VxvZ߮\)BZl;l Ur'7PM7!$ADXS^ae(1C`WTXڄzw†HN/̑V#!O~\튶)]ZUūtzԐA 0 JC+yoUr!(iN<&2YʌvV>:-@RGŵ7T @kY gfpJA^C5qQ^Cl2X QȲDBmB 6RdHޟV>#Hz!yb-kKųqMG%1lNJ{4$Midc<54gjֈDRWg dK0wߐXPJISUb)G: ӦIX!KA(vN,N6@wrjkQW-8Nb1-\׵NĢ ub^2( =~YZ[ED'\5ӨZJжqWQ(O|=hUA&! (+K)ap5%1:DuU$|+ǪE @( wM |EEG\REiNW1xScR>X-w0FzEQ Y(YBM,,f℟v bf(ʅNتS8`jw2-D*\OJ3R\w>تꡯɼk!kҘݙ.x?ʧsؤO뗆+i24*Fc^|,*UN+I5[TDvO7m~5ؖ[JxolPBQtGjhZdP޼ h}TeUaӾ(RݚOP3?F(FG=(pMB%iXB x+{(C $IPU-A'*Bj}U.IP4*2[!XO\Yo Uk}p+L_*C^ fr:mɫWll* {ZTSb'n;$JjMzo;J{`JY|Ue>,P Wxb1>(E$\TxRCa#57<0!a 8FjvX7۶*Bؚr^[[\UpmUM:bhxz^~dNԐRCLUIDjđ֋^µ;bfUث|PuSjx+ǤL‚qn)OLU@m=\UaS]%^@RFթN ua"z.7Rz@yRENl$=Wd0þ* q ,(*|ᔉP)D'tV]aVրq DZ®u-Ǐ*lU\)l*Bm=:L-N@il(Z t> ܯ @5PaU>BH[Z`ӽk~#Mb=;bmU0N"iߊ9mZx⪈ t*5ߧኣX[*ֻ+v4Ы+|]GlU6aNDIy}pf*?o} >֔W=bPN#XwU )z\Uo $!.@ޕc!BD\4 =y34ًu'()|;a]V2F»TF*ӊJ튴F*1UU˜)4H!L^+]ԩ*"mPiQh Wv\]ʁ;aR0%OkCW%& #Pg.IRV\=*B ZoБצ)C*\:Wu Ȁ m犹PvUVOƞت0p+[^nw®cvZZ?Vªka@늮x]BVv;|UчApE486p4zĩķq_Ү' SUMH P4wV0%iO wxM=Tu&~*tXTmO Rqx#(Zj~Ua]U֤"dS"eqZvȱ!4JckROݔ9 ?er%"|gzݻg\wCZ7r;`YIrc$W}4>&mL$tpå*r&Q=A {IXi׶` CrѨTm:TGt qD F:C׾NglixS~,))ڎH5ZB(;xƖz h)iLAPi.ͰxH8b.hy$+SNd%w>3*vj9tr)ZbHEP*ըO C4T(Q1tڕ8Uc>MqU>\V<0oqBx[jv.ppV=V H ( ER~Tr1JJXW[Ğ6m ք >j+A1.*xC^5ڟڛ\3‚qJ)ↆ)VTg›t1U3! TIVi޼6#wUCr/=0d$qz:aAEp!LUmqV,'wjvZ[P*9nB#j7lUngi,KXO~d/},IqU8; _†O h{}8UH{315?;qVw1V*[u1J(jEG*c-HQG8TE )UkPv=Ek+bHU& ƃCs9Je!Ԏ5NFP n*V2]i@#A@iӮ);"p!`{v­UL Mt2Q6G" TcLAP`[9 nAh^Cv P!#+MB:,M2P! ju@#ZM1VU*WAUy4Až/pxb}iALUR2*̱~({G5DVLQ@^$ֵ5<6CJME:-Z]B) 0+WbӕG[$'if,szW &U^DM?l X20u'aU0㊮~Ui(UJ۶*jo4Z*(﷾)DU o|R:MB孾1Sbʔ&+* }h4{٠k=+Ll/"d~]KXbABB%Lw:\Lʥ]+|8*P ө튡 Ԫ ףxbS[xN\I<ԕ) +"pCq\PZF*`+NlUI*ӊV US :vZu1Vuބ Vm t]Ua늻blP:bш8gb]KnpV**lU](lbTxS \ *lwWBFdZF6b4jFt5%77.+x*x,cX%ƯEv9&~TALKD|N*۶*AZbbu]*[Z}8wju.*N*l7銶j1Uw,*Xu[/ 1WWSqCUK UMwU}8Poׅ 3ثC~+^~P/IEY- n}y sK N[b|(^kUbmb0I !QjPRdփJ&8-O0gGZvBAR:J>[`*& 24Ҟ=02iIg"# -r8z*,T^7(|[t(jOZb+\ YUV IaTK\]ӊ$(h1JϬp+m|U܏qUEcǮ(E^IߏjiLRcPfq ڔw>JS?Pδ%UŘ)UUYXVw### vzKT$WzQN[P_Q`TI#IQȍ[#*gSoh^ ЌE$H֫r_ !2M#4 h g? gJdm%BM !Pҵ|\ir5,W8ymXTnprX \ >$ߥȅ#鑓lmCm==25ʕv* VZqJVzVs! '덦kApMBՍթZP T :b"*"1U_ZE*blUDiF< LULW6Q , 93[uJ^\2U#}U[;q*F)iVMUlUI+}U{bUw,UR2z;%޾$mqC}V*.$rKSE(X`K05VVpPiW߯…|Uk; I*U{z kdyT);Uȥ Ӷ*448`TxVtW*L *ZmWSbWֽKZۮ(pp Uءv*+LU3^LI7 dKGd>UH"1o K}x/^pfX,#- =ހcI9p_XP>!]t«c4tщgL6]kJQiO| Е&6_Z}j}gH1G𒢅N*0wl#y׷!xI9!":KP~x8P)'}ʜl)qԚS K[\UmiZOlUU⭌U*6ᅥl?j UX. ␻խA $b\Ur0ߊd1eIeJ &Co*ctPN*Ri?4RV2,Hޣ V)UVկv«&RPpKM|\UM vn G㷒sGQzYbh6u GsSɀٔ f{?vM*zmN]]"պ쵍d)z/э㷨O7،TIoI?^>L @4RǪ܍X|;WxTq#R-]en"%,hf)~V!$xN[cCO|Si{P)Z"pX<bp3Pw8B]u;aL d镖Ҿ؅ >dHMKJ9}t==RAt[Ĩ)dG㊡aۤ:nر!.`Kn)رRܴl  D㷎!V>qZAFT_,JOSG ;ETSbBw+br f¬`JWMP @p2B}e z.j prTėzJ {t4qj5ߩ₣*'s)^8U@~=qB0*rRsUi$V;6T 6zdr\t]LUPC늢"PVژfx/|PLPSbwZ助gF*q&VoaK(\-FaU)68T;o*6{{t\zmN1C]1T;vK{ox`Dv]Cl*`zV$қ1VcE+ы)S"!M0%ҝj>{iSkr)bkWS}8Ub[*ּk{-- p8^ Iژ1x@8UMW~UO*.ث* z*[8p؃ȪKxd[v=̣4T{ PTBޛ[G(5m>.`WR804P;SzU"ylUi`>]N** ^CEZQ}zqUbOlcHQ1HcsÕBW`OSLQNhi]*B wi44鷎)TpQJ4ZQ ĥBSa:ރ=ώ*YbHBv#m@&wX. 0 eirZ"eg2ҢmgB]={*{V;dqc(qkQ A8OoJҭ OU0A~L43fE37x-x򛢏 -8QVHZ :sGB m-d9&pi ]gHq_o!I5Ȗ$DmF~0*ӹBJA u 2+xUG#`-`%BnƇ灸\pRVN%)\c?"f F7=w 4ʨvPHQ:H`.jEE1ZY}hRn{W~.{^?}Eڧ}Ņ ~ c,uSA]Ǐ*QC{bGzSj- >64U5jY8'P86 T0* ^xJl=?4Z 4d*ieMzD(Um{$8g>+5FV Aŵ ]b>…Cױ+Z=װ>T;j>UaAb+LUzT.N* JT Uw4=Jȉe"wqJUOZP&l Z?bl 1JU&8h$75j[W#a-s=UqR \1Wt6jblO*|PUDhr GFd8a Sm]NjOSW"rS^Uco|+EVUw-}Nqe)AAZEmjM: 'zg߁\cԩV'hbVJ|UU{P1UqC\W oozZ*qUv$׾Uw⦤(4*+Jm* qtqWlMiO1V^*ncڃB9% ~!|+۶(ZRUsl iAmʽF+C /hOBzT;  B:U5:l3rx Vw5(*jz tķ^tmֽ|*O">W=d߬"RY>ի|{EI~* s@~' L0'mr64Ll JA*9MKGr(@@Mjp6F=R?hk<1xbQQA}yu9( ^=zuփ-m]=0"TzP7)D2 ޣ&%Bcc*O*ԡȥ=ș!E#PP<}iATqWӊcPԮÿ) ¥+v% 's(^~ʞBʕR犕" Tb܏኶VX\N*A銮<+a*Ojw*wk U7 v]W|R" B;]*7\{ }8PZWثE Js̈ux&QjM6j&*/B1;=Nl kaiopDEy#ΐW$RHRaD.h|eMrJƁ78[FR)/XK}dIAqJGS#Ijj;"(*GGtƩf@|wr0J=:FZTp5啱;$)e,1`Zxx+J,]R#kaB>NH%wB"1RQFCˡ8(إ]vKhS0*MK*1WU UaV+X*** UĒjzWQ)z*bQZ]qCxlo4vZ8p=*NDA}aݱW UWlLU⮩[&[\ ⭌*]e 5\R⭠Wxb|UĚ'`1W6*ol %iyw\1U˜1V UzUUp}T…ʿ Q⫐@qTB S*H;:U-iSJK EAU+ipz *ɯRc*jb Udo*8`F.y{xb*;v…S!\ p^\UULR$i+#zr6MP%T)lrN Rկ()TДbz-d54<,Ù$zt7O$UZX+L-ea(|SJArƊR( Č e=iC|U̔H…zqӊ5Uj╯Q8FP]:jEPEO*5#:fկ-E wĔ,o ߦ*A1U., ֝T}]H*>mrNm`BQ@4ހ|1BΣ"bTMk\vVV3Rb Z'\Ub[-⮨*­XmqWbb^{B&9ց\rߩRmjLQ*Tq m<SޘR 69K8U{Xcx2,JL⠞;b)V t;R!/.m繊2[81 G742h"V(iAZ:b{\)^XI+:1k@aZ%8Z;xإa ;mUp [8f4(IWzup-eA}Үhx鱦i_׾ )ȥrͷO@x_H++\ZwV,Nl0' p*+[(Tz$qɫ(6Qqpe'*]i& ,Ic^T }UZ xP)d%h>XY2k>i[񵍚1#=*I:dvRBQ !]H^ ( ?^V]lM1HeF [i"Inba;!m}bI}5bGa% ]j c$ f݇r,ȂQ+q(v!rĶ-Ib;J{|UZd+PJҶki Gkr.(RFc(7q *ڞCr$AK/cb54A=~R^U:bDUn4>;bv[v=+W"߾->9nJө052 Y8n⼌,)KhZmL YN. S.UiU'NKKJoZqZS ƃ`wZUJr>)Z|IZU#UK$ 1 7qCN4* qHD|N ?ǶJ[),5@EG13}a!B umZ'B x GApNjp3c c?,UaըU$bt)1bKN6ZyI&A&Q 憠{{OtM8R I#rN$@sI[gIBPq~ہ$ jySIPDb(GlT = x ⅌)b ^J * ҃vVWv*ݱUGaIFrVTWZ +@*|1Vk 銵]]bhz8PU8qVV"Ǯ*c]LUS߶k}N**8*RX('`=l #bPFت UB.0K {imt+ *(7T)=0%u튷uqW:↫*"`US犯=;u†I@늷VqWjت :⭫X|,AQȨ~.aBE:èRiLUFi+ۦ%!LUTq*4SaC[64BKjR[:m-=8ꏙV트0U6 JM•>#%Bȥ;T39EBĢ֋SA^FkW)U6=p%E[;qB)SlU\Ug ubaE4ǹUXE( N23UrwCVsB1ܳ֒;dB^4Uޠ\J&9!P8(|+%qZF,GE}cmVn2k޸"BgULOO|V%@@GCB6Ěq bF{ Q!vrVW[8E/:*Xzl0+N.vN6Q +5~*k r̼YI["#vT"ԒI*QS*M/;efBZPtZE:۠)L76O*l%IȑPQIbC]Z٢~P; 1`Rd]ؑ<0S֦ P a )j-,\ 9HV WaZoS,Q߹ŊJL&Pc-ׯ[U)EOxRbI8#qJw– h1BiOׁJ=`^xCpPI}s'qtՁww>pNׯ\P݊{xb|Ukከ'[\U{xbp+Rx Pm)7\UqU[*劷Z⮮(n L*튵]CxX>^Ш)Ο hO*Ҷlp*0q،mi!w&*Q8ֽ1VB¦.V~8jx=$㊴P8l']j®xhj~ jU`MvV{bTЊ*<)\U8lhnpb,9%Tv0ڰb=T=(2B L=@_T1c(*«R9Q %O킓kLWP|q*p>xiB4=*ЕWlRU튦i-"~[ՈL"ЍĒEI=OϮEycJ E voiIE4xT7CQQGP+N'z⭅AČRLU)(,à~8ijRX.ƮE@U.ņU%PԬ\vZ׾Ke6 Uj"6,S7֋ָ ($k Si1*+Pl1-'ʼ"U22$m^=E^tH=2ME(#>ǷeP߲TxSHhē]Wsjw*ŅqUt;ӥiTG;)- lABja1BIG=VI xK[!jUV ?F47nSJ ءhc #ѤnDza$)Hجj:K˵[j8 8VG dXo^?M8M r7R)Bᕸ,|@^( Tԝ|RM 8QzTE&TĜU;Sd`9R@kCJbEI"ƥOW|<%&=SDŽ+^WkwJ9х2ZPmU"3n!w{m^M9% i߁S oOo}  NG8,6$l"!CB?Ol2ADM[=d*9£a Zoli"Rơ|vŐ>=F"ۊTmQ^)֖[7XJ((WDPM;xR6߀"-$: Tam!Yݢ'¸m!ZkQZ4vl$-H֦0ǁ=H44P z2** :oᆊ-H6ȥثE|qV\USk*~I¸a-Wp$CZ8XI|mӊVWb[­PjԖ+SniZJr@}V0+X`b8gcLU˜WP*6늶NUUXTWck*TB؃QOB RΫ͋qt߄Hrp2kor?6 ˜n4$j]*I> UP:U']lb튻l1UDfңq!m8Ew48P\UrѨkQj3]Nƣ…H}C<`JƘ W,ªUrI^U;^A RMat-Qٰ)(e(TXu֐/Ub;d닉f+W=vXqUUa  -3qsAC+.`{+)SE-Wl*Xb.,O\UVA>qJ|p*WlR;beP5 ҇ZRwxdR(qW oEPkW W ;XZbnU^i*kXQW ,0@V]x UXq#`1T؇!|N~Ep5` i_V"s('.;L~$ȢSȯg*^ ܨ{eĜ[z4[`67~^\Q,5$*q$-;b@H=BB^03@݉mH$ a`S/,5=+\rٓvt}a/PVqi^1JBj\ nqJ"$q6@ E TP:b7mBfv3C;j f\e3;19b=.N FPu=L6' $,.64 1fmL1&N$'JT˲_dm+ ZV\ T Sj{aUcj|PB:$(⦛}䴕؂bFg,6ޫUEA;Zᵥ?>URG#\PQ\$wnA#,jUFPL${ƏLZ̬(HbCP6ރ:SE*;p%0[ID--:R6@+%y|]k;NuKDqqڇဲLctR\Lɏ#VHaEZ"•qߘ֤ xS$ҕ8UĜU¤m(W'ƾ8\®1oQ*W*u>*ZbE ”H&ڝ1BP$E(G@1UJ/!~R?XYʱS QVE˳C)X—^J7#/]H#q58k`ѱ=TXG{u-BzSzbYQP׷ƚ,'k 1Bhе^HG'3LkѪO}-eym^! "T4+ acQ|MhR恻%7[ I$2}%Q{% ɶ;mCPJ'"z|UoO CCM6 UXQw=;DEOŽ1 BOQ lT$`jO|XFUSAFءlXvbpoʣLX2XӾbTy0-Nō!卉T@em* *(w@Zަ iBA\ώ*o(Y%i_*NlFi[qQQ)FIU^ڕ ґсTKM(SH@krF*Wbd|(oph78|D|UM1U84;mlUiZaP+=Sd*]U c%k(VZPN(Zp!ثC =]QZ[n\Up z|b.֜L?܆CTqy%ƅ_ʙUV1U쬬C x 4)A{iG>8XmEfC*V^ZTcKhy Av!Zc˭0ZiI;| ZH5v< qU#p8W~BާsmJ<7\UAOEp*7*mHiBO\ .+үQ޽HWH 6wB6 ,Aqny B8#?Qp v NUޙK~5M5AջTRA5mO  ªjh[-%E< ]6 ˾WX`W":t2$AYJOܢpEEiˀ'Ik@zQ9C;uL,mBrI'M0+B E)o@idުB.U] qHM`IV^n;l}oo@9X5h(? 787(@Z`8#k`=4wAjS7yKqPP:ɖmoe +TQA8 d"~yQ%c =lsgko!ӉoD3SV;|Q- (IޤRVё)B#>qeH}$$t)MP:{ q*&%C$1d,jcqbu8r1S^ت5ݱU(q%cW`Pִx K}J5FX9i HYܜP}*ۿk4XxKskMoFqUE«j5㊴ʛ0+|@ZB' ޘ\M۲ Wz٧NWuV$.@W >?<,j \>8M+cl2&G2)feU[ثbxUi UҽSߊ\ 91V®Ux5[  *튫Z(kL1V^ Grv…dEzm|B*VqKF犬 V8# hqR+)!\Z92HGANƸ)6ߦѥߩZAVSw2p%6lU(1U#w\R)VF hiQӸ=U7m| lR]b0XTMCgN,BGkC=pcB6\UkH1VӡW4;b+=0@㊹TW+| %Qp~x:;?xTm2"UOզqJg,Xrj|)P%x1TLS?Ƿp}Vs#z" vUR<:l;IyTt=F)]yP>B>uqE^] ._Z%<6ŕқߞJ\TzxbL"+2 ȝ6BIwb PcR~ "a&\#&{0GUK탑kUPTu=NFFؓj-b d,~HH4k9,6q-ȼQҼ8-14OLƒe9E-*)ȡK]vLjpX(:o_|KM AǷ) ѪlSޝ1EW3(44R%+RN&(bFێC`i>h+n.T2m\X ƿ 5:u d31|`P\bjԷA,JX||N9b P*ZwES4c{ =Xcq`y7V+D?zS!}7ߠDS\SJ cP{UlZ+OwHZ,P5j?V*wiNjC^I;kQ,W=MzGg Zރ(:74*LЌJ(µj0%V;o)Ew8vQ8 J; Q_`iW*!?Ҥh$xfߠmT@3"y-MMz$Rt4KM?Rw"8rM:~P,c}Q։R T'rG"YD&sCv-۹Uy;;݀ 5YyƗkȡܧ_ԭvQ_ʕއRkmQ NSf"켿wWW#nI@ NT͠`DTń*r, OߦIZ-%.&5ʢljxH 7d4 ǍG|PB04;RR +U%pr µ늕u"Y&GK^-J#4 REw0!gĊE1ZSqC|I*qKaHW=K >P<1KH\>5UB(ĺhEG Hbmm8:+^_eJ|q@)Y)Bkۏą(?rL. >c;s>b@Uw銫%_l< &<*QAkT[7Z>آг<9*|1G5)-Pרh!Jt!vPX، ִ\ UMvUli[*=hqVUhGAژe| F7"6m\R ^F]%:GK58Ѓ#t;|EZq4ŠQPءlARjPqJ-Xa[P65تoAFNqHa=K&75qHKnZRU.r"ʸdDb,OHtЃ1luo+rY8T 4R<qKFE(^ȵW"b]hv8zQ䅖[qPFX`P5LJSm}ɶ5_OO] }(+%$ҔAr,В$<#^F#PpOMabt5߰ bQ 8DE]qYZ6["Vv){mKTҌđW|X G,j>z`k! 2QkJPPxؓNbY}{BڸA/ bH=>XOlPح6VdUj9,ň XjE{b<WVܜUD P ;WhTo=GrȢ 덥E#~io ab):ABM*a,V8S#Z[][*qt]&V .hn>Xs.rP<+YU 757Pwp?A-#9v%;~m+7*W=T-scӑJh0%n4 0)UX]cFbRy{m1%@P8ኪƎZr4ހu8i!ylk޽1UwWEh†zx⴩+:sE ֕WqUYwE(ĢOJmiI;{`\R%rx5)W\r݆yZEƸvv;F$eƋhu{}j2tCˈ#e4 S'u5جQB K00"Oz }Nrvgo|PKK9boOWNL*ڻv RWFG:Q4;bIcz+M"1jR%ur4+*2 2u*GJFzUⱙAWcٍH=Z[l {LU".F,۬Iք Rw2_[=ɸzEhztacHu1H.m^el,˶ѥ34$}4ʹS@DZsj6%yIZi%1tU kAҕO wvK5̖mkbukf&u\AL_CWYIxkw߮1/,Fݻ()eZRO]nF$ Kr^+Z/ K*ǩ4B C!6g}^{+tmV/ ȍRzJ(ђUqQT`AC`UUPéVXSWz@ N)of;JYnzQQ޸T*L ԤzQ4 ) :$+$.0"צ eZSZaAm qJ-&FP^LMAd W73@@OOJj:Ġ+PmQLTEL[ձ!WHjȅau偕<"h~%QOÄP qpyΕf= 7IYE$ڃiFWHe$o,m3"{BjGUV*V8X3j1bN*܈HR7qC|HJ>'(N,bc|5>>be9bM62JA6U&|(CXWo1Ajk۩`/@TSOKALNG0*(h 6V)V V**& bH#_ UثX tqAt**l UV9 )if$oӦ+M'bUztV⭒vV⫱WSlb⭌U ݊Ϥoh#Z#][4pXUjw[>bVxZZ\qVVWbzU=qV(_NTS+4<(r„ߩU$ʠզ(2i+)CW\7l*P g| u<*=VXz▫V늪!F j^$ъoq'a^YS\ *ӍpZiLR⮮8N*8q5ߧ*{0]Eh *7*f {tP=qUȟS$h*aߦ*Zs Ei.UQd+R7"W½2h$n b`P#Jo"F*l|zU\qUTbO]R0_j`U@(7)tDrF)N-bY(@&ӅQ( VءL2 0!BRQ“Q⪱Bt(2 ©VzX]آJ <1M 8*v(VSYw4f)ri!FiA&" RTmL-2(@t bKc V*UثWb9$Y AoF"PO!w:`-wAMn”hp2+鲚s  ݑ"/KVk@hY8*,jQF0f=N,T"7E: +Bn+#@O' bأw4s`ޤTI+^SniYAϨI%xQ T7QΜɡPōE 2Dv"7Ő D W Ud@WJ Y(T$l8*, R!@*);S8)B:{Uàr:lUo:QM(~}U+@z ) |#,fC(}J{qP5ɵ|;⪂kU-ۿQ+ SZYx*(hiV;æ* ;0$+M3UMNJAݻbWZ SRaCϾ-8XlP !e} !O%ǥqWbwUY8PTv5 XzQ \4֕dcZa,Jh5jdpHѵX)4V4'Ʊ4-x;iH.sWv~ت `KA*v*`1UJAMIܜUv5\1JOjmQ\*⫔h7>T,Uxq,:)T⭃㊵K`T׊q**UQM,svuP#*t6kuVWq "dG_MN޻WM4oň !bp)Cz~~^ C0rMF }QzlrܡА%XO,].l4W螭9ml*WJ*ץEp%4pXI;d5h}6r `V))(+3zaBu qUq n=늣c~uR~}ئQ$ nSqE$N H$m%vSO6S,!nԨl7\nN6ђŶDZH%_TkAmq$m7,-qǺ[gceF ul!=J%QbZLw9Cyv#diEu(2ByWMYO2?m mOV yF]: (1]BU*@Lkr)U]\L8 PY%iJBjmq׺mNn @J((:UH|UIpb7Rɾ7Sҋ¸ iMZRajrOCM KT !?k *\TY' W`B%WR x8RQU5*)eH5 ƙ֖ghXKj2`6~UŨ[ ht6U Tڈe7 U"G)sDGiUV#zJFƤp%tl^bPYKjH465Z>8*i܃*;%Jt$V's'j k(BH ' hCOlX[2m,wP Rc5r Bƈ@j784Byk~XRz mLK0vj=qR#ERBӦ)=LXDA읉XvlT'֘@hU6S5V UkpAn*$qUbU c**Up­⫅+PCGGvث{W8]V**ib\*E{aUC("U)_ Pw;wZ=V犵⭀N*APҞ?N(Y[Z8Z8X[銮 pv*F(TxኹXb!So(o7ȃz⫃1C@TW2S-]U7(Xu= i#qIhU˾ZV˜\qUBhĚ҄l0WU.$~* qU6? }:zĄ+MPz~$ /*_oR hԭ1M!/#Ɠľ8dӝe3n&H"dص[، Y^ h´-7`nz$h 8Rdחejhv*UثN R|!!UPȄGmU Xx8k@;<AFU^!w5~l*^'ܫT@G 2dnI㡡FQ*~XooR0iB[D|Yc$(Zxb o Z8M **[[Up]7aTtZ)^Pm1@JqaQ ~(AY㵹h"BWA%i]7qmLLw(Eʞd##@kE܁_*]Ӯ*XIR0%;tW`:⭹BNcF]Ty;mLRR +k< _|}#O'G4+ŻqmX*hAߗ- Mwb˔u5( <xT|I(­x~v(P}߈"=Ēpb{lEG M"p&1(-1?:㊒P Z@QI41UpcRT wZ:u HVmڬOJbqVWSZqVWRa\F*Ӂ]l*[e$@xB M)ZqVU‡k®ڔ]]**>8E|Uí&Z-KsdXq`B:m%M7k2jA`ُ’6#N,\Cአr ӂդp~bU 3bmj +xG0 6kҞ'lK"XTEGjd*Y%",h^4VgW@X***U s 5U]Y^)R{5)-bdPraTlP2PRr% k$l~!{bEdz>UFiwU¤ 'ŀzqBY:R_ka`S;S$ `_b!Gnozlm{U%bWH[Uo"лr?{asO7ͬJnd0z8S%l('K[BϵGL*cBʞ=k{r%ZSu p(Pchٻ-$չ7. ZSITVIL$vNޘZ|@…E2VL @@5iG;|U#;#hu…7 *A54p0;`P nW`HWgDu bzaJ 8#փƘ#r4$6iҤP~'H 0$a $i,ĜЂA_lˇd pvD'"OLPm!D;"H%I~LYT5Kd,y0rOvd$lqhJ5FJR -Jo;*Օ7%.Wg `(P@CFBcxbw TJwġ^O,~LMQ- U7b3U|qC)qK qV튵A\U1W7kZF*1Ub* lU'\U8]AZ۶**U*l)b[]\U®Wb8Wb*OGݩZ~JФ|1V⫀8r\(r1UE=wlU  uHQʫE0bצ*`UjUwPܚT{l1%TzbUME- :SlW6dP:}3v)\ \UpJ9iQ\(iCe?USb)[ZFqQBvV6[AVQC RU+oXk犪+-*~bGZҔb*{b*EE,kI<O=MjdЫLATrT?_ k$LP=1}9c *2nlZ( ЎhZAHWc K \ᶨ۠*֮{td#Ie]pk7JH&?Sw ڜ4Lw(!'`bt!+]l $t8U3 vNes[dDQ ,vOǩ]L$xlYœGL']gvH#mv($VIHG)*Uت)FN%BH#R:olQĚ '!R1Th;oD&Fv"8Pn"'ejQx|6ƻқCSƽ|0%SWŠNŎ;s bPr:oR<VT _Q +tUY⊠ʋjFVrXp8v;VpXE_AF;H/≯ENdy~=;LPErANehhX/@+lZ#b8DR)Rz ((N5lUV3TG*­LWA; zZ~3ʟN*/h;nF*ܱW675L(BȌO*mTڔ o U\}*!<|+R g%ܝR{6EBE)i5p!R(&ٔRO: CޙaRyZHan 1:a\㷵핮d+V>5,zBV: +z늩{`Vۦߎ5W)4WL(q!bxLPR7W\Ӳ*(M;j OS[$Uإr„Uټ.xxj%vF7@]`,3g%5'8~[Rw%z*K5kRqUJ`W(Uqcҽ:aUG}ȮXZö*! U]Vl ˵GC_Pz1W$ҝqU( B7p t0uO^OZDbn!AAFxmZԍOs)#s)FDGm]qJl˫p5 T)VYJhҤt`ԠN\m H 4텂&2Gr<0DvA`eHdv,jb6X. ٛq^ȭocwىrjz}",Ӯ`Uw#n<hV2`T)w"˛oe)xd`:t|d*1뒖*G@~/+G|==Z*t&_FXf[_}dMF<a]=f=kZRԥ!xGV;I4|!%Mhy8@T0 Z_"w,ZEQɈ=a;)!v(RHR9~'e.JR)ő(nA|)Ɣ;5<jH`7@~`JĎN^;^l]T-v 1TMOƥkd6(qHRO] Astq:m)h8@h1U.GF+Jj^_hd2Da}88!VDqJmˌSc'w, j?lX:²ȧ~^4bP5<*Y7Hň TU0 B8 LU}V(iu[ 0,*a+pZ @XN~4 N "߶?jޘ };|RVM* 8ѪHJW\늸Ump+VZ⪔C]Ā= i@<)KNE-b\ہ=Kd⭩WUi\Q A dҸ-qW1]ǿ\ D)+U>XJ5bռH]Mm-Q@&RMj=bdB&> k>+ː#cぴ]D8Ժֻak8gU 8-hqd"YjJ1L w4 E.e#AnH4S-lB O 2D Waȩݺf)^lbhEjwڣc=SSCxbVᄪئ,3njMY>"V*%큚jPA' ŊPƇXMp!f**U:UUثxUثUi8< L]2jG|;eLξo B0chI>81hmJ5]|ȨR ]JD-Hl 톘Q2яC$PA`Ka&60jk`U:P*J7ݱBD֦~*bN^cܚPu V JJTaiZlE-2)⭀F\⭖bztW]vW*{xWvWR:W"GOS+bU.$yјMN܈Bj8T4"W=pjX+*R 5wYF+MyiY7=~d vOl&{&v}P؊,NAZݴ6Ey'n*NH4mNfw^ ~ґF(Q lЃ=ǎZu ӏ)~7 H4К6n(wNy2D'.rjĀ*Nî%ךF@OG]r1C|=0H~{duֿ}2$2Dlw_MoXr]z w'H7ܬP#˜c0X! y^4& EEjkQn,p%"B2vZD5d4W,jmڛvCX*7 IJ`*H "bkޘA;vfB*!>P jtuZIR]뱭()۾)LtFx-\*puӴHI})!wpaڼ{P/"AZM ֿv*,FBYa^-O)S ' 9w.bOHUZo#MFEDZEv_2܏mP$24 nV T n$rc3!ho$BlXhvM-6 J)nACƖ*^Fqg5,+qP&EX(@+]СGd>=: $?ۦر"DMYvX)R?Z"b@?kz0M|p!UrXux]%`6Vnf:1VLU¸uªQ1J,T-F1JoisqGV;SqSM]t:bHN(XR#mUIcRMHSءJځ'a㊯U*mW\U銡@OmIJ*{ST;"REiQD%< HboK)xTF `rv^cP=7Oɦ2#Ic~_,K 6uI"nGLJp-EhּG\O{Y5V%\t$FA+AH4cz⴮LёNSա=xCROF-Z't)o0#u9*JO,LK7*WuYi|vjrcC^ V+F3BL!8lv3mㄗFYw !p1-ЖI#W=p6<,G;%ޟ)rR3cŌ&݃#kvaHAlբ#4lTb 慕f!bFj xVkq@)߶,gSj%~X*M+P?AxMk jcV ^ ׮UmXAsM0!FVb7=U$A;7کeg'A5\ը\TvVK+3rG|UOO|UVw#`dee>gVmP;UJiU٘ :a\ bT_lPFӁ 0k\[mҵ]L*o \Uqٺ58 5hX>9Z@RvXz(=m q> XYqpY281uZJڤR`JbW-vmqW+qU2оx]MSpUѣT[8}VhG(l¼{W1UxK`8 BctWL k7+BHZƧ.CEa^X5=vU~)L.ôr""Ĺ VlK!B&r>PV**߳Pb`}=.=R̯o5WN灟fh~"RV?$u )#1j* 75$I8^ ‘^qhUU",sNeCݽPQ;Y]ЍSk#KƄA]I -1Rmy7PiчjQQD'A$ʼnH&bm2d) z`ր~AŨ޼H*AWp+N9"4mWr84`+(c!*ӯJAT۴\#۔L2ȊWy%Q4dևƇ"˒ΗPU;xwPP$pKUFJq'v\:"ü=ƫ3,BkV5ɇFYZ]?B"bA,E'5>J IKjN-]NeAT^||p-b.]i)(V8?j"H@튀mڝp& V+PRkqd (\<;WyaB|TWz,)QŻW+Jn_;ҵzErTk'}a@2(U,~#ӾDRF@ଦMj|E)M+HNwe>#3 ՞Zn&Wr$6F`%7!⤒ji0(;,{am\ƱCÍ:׶Q-ЕYQB`<iç,T@LR*aAnPmğ D޽A¦,ҫ<$<MW;lx46#p~QG޵ yպbTI <1e,M\|T"Bm ?LfyX TURF d"9剣A{VoWjqn?U2DE(Tt+` Q}iǮN--?<Yq)eZ0$^66CӹaFH?,޽02K.!*,z,PR>ԓ}JA^Ko=`VF^TPg"_;މF2kJ< JLVOP `IƔM U=i5VKE׹Pcp]UclP߾R ;(Y#}* qV`\'Nت7تsXl M*Dz'SfP*d)UikL(hV]V*U­ ).%/*$jE:W*5UjQQ]ZGE-A.#+*:L{U&'3\(*oR(+)= %ZA^T"A2 G f) J ;S2UM|ACUTt#\k."UX%a Ph9n[&7eHvԩ$;zGd k| \PvU)Pʠ *ҞV*VǷZܜi]qUƕqRI uT▩NVzmծ)lQMXWbJWi 72شQ,4r*v/;TC}M W3) ޸jȦ)URVzS 4l)ihJGob$U$8Z↣Ḑ4lRiQZ;R,G )0{SSH:%ReWq n TrqW)|2H'nF+7mj"GfcʴO.0pEo i)gf4Ԟa`sja"ƪW @B}RJr7bB_2DR+ءŏC0*P=kmWՆ;\!h;Z p:u8g(Py{P`¢CU-8׹T,+l<)FZZG%VIӀj߶EB*J>n\Xҿ~6A:J el\Ѭ Ozn7ˣ>rVG5t#e$CɣK2D J`8 KZojH*t!S)צSVPw@qRP)P58M(M|)W$A6 #c,@cŀ:i"RDÉ=~^VUN۱;uȖȆ*f9Fl(p2r]@4~GlĵޕdB[BL#% 4,LȤUE$HB"@=rq.6XXyAZqɠ (=~jF,|"? iֵlΐ<<#er&E.)J|Qc8 С$by*[(XmMB+T1U"4&U*:n\+⭤4#q^ڵl |VbqWRX*銻|U 9SqWR AXTUPȚ<}i4=p%r#5h+AS-c`)ဥnu1VLUثVWb鿎(ZңUzޛbGlU:TaAnY#׈'mAከo]_Uqc5_q*1Wt[[;b l ኶N4*Ҧ\ W ɠ­ЃኯDwP*|-0j+N4ߊ| Ή®B=UJZ!Rk"mSV⫆U&bvW!U{b֘PYNN*bbbw}KX1U]*qBWƵª)pm\Z+*UEqVz Uz7*ӭ:b6M?V*p*<”;Vҙle *EgLŀ=)d1M?~HJmPڅՔjyPi^+) GEIJ~*iWA@z*'ZqB DF`QʫEu-I#FP3ӂ4*vѫ\iZDԚT th.0ZFYSaN+dwePtD~[gf_TW0υ6H+J.]dZxh ;ʼnخg WceRPz+o-m+oQ qZNnN'r̥x596)#B(k1^a剙?Uta٢;҃rTF*E2ʪ5BH( u5샸CFށoY\ԑ=FV:W oxr:Ɨ*6ƌAmȨ!q noRq$m`CdJ 4 %4*(G3.я?zBnDZJg^pߓzzV NC$ͷi"?xVj{_qᘒ-1٢h_|핲R܍%]W;3ԫ0*&՜ J8*<h)BЪ5_   M8*;Rzt*!w:\0YG:!rA*Yi2'v}[ۦw.kP(iIR\X (.}2( %z#DV ڿ,"( 3nS@7*{oU"Tڽ\R8,Z$+ )!^2Y :^LTzr/=u(譖!H}8rЏG L֜5 Sٸ- $Z; !9:{ci9-1<[FKbQ!i֧pĘ,%0$mRf%5:z -ZǘWcC)Oc! 4V5⍰*7\#* wI!VxT3}*%J2-MqBRZВRJB[^ aҜOEk^ӊZ IL4(BhFk(e,^ SJFwl0$e֧! k8Ǧp^ء6(J*IL4tHWs(US]~`ddqYjȳ+ZoGQεQMZaEls*~z\IDB"hc3=Lt⮽*:Pt9$EeGsZVZP ʽ:`}=43VG6RAW\P r&#o |1Ja`%FzDBѯ ,}F$j[zm"?Hn#jdY^ccqKk0.IޡyS>4[P  ƒA$r1SCĞF F[!"P#/)ܲ(ugH[7Gej]A5$P֟~,W,LbJFHaF،U$)e >Su*ؠ0'cPD$!M޾8Q*ځ]`Vص:ڸUe1V@;UU U[# eu}ZjiA&Ħ(Ie^gy8F'c"z)H_{HE-UF[W1b Rڌ(\w \^L lrZ8XLUr/&@ؚA*⭒Zh*kW_+Cz֛u =)Vb ޸z튪qBG\Uqe8튯B8pq!BוՏK{2~]Vui+S°/ObM4[+Zx%ߑ:7[TPPA5э/HOnyƕ85ZWZB##~g c<ZeLaU =(ǯlMES"b]KnԓBTTP  jXEM|A-'b<*2mB̼Hq@\Dz{mFۀa@mܷ"J(ƞ8ՔOQ\((dmƶ9w#_`qՖ.eUf-peюuhЗO OL V`ޫRʧһW_QA40"XVRUJRFJA-)(SZt9}jCoъU~ 'nUo xꠚ.CzIPS+LJ؄/o(a@H*|7Ѵ)!Č-@6mRv*cJ4sv&v*$EiZ+WDe%_JADBVbNB6V›Sn { =).sUcj„[dImR&^DhT'w99!\H96APS$ }( ca 9aێ}Xv݈5>>8mgfG}kX-h%n45VF_׆5p:"Pv V \ *(ZkE_ S^{ɻCO !T[aɭoH9ӧՂpC,)RC)+uy*4,Jv 1wOOp+OTӦqQw }mDYVz\!$+E? eAH5gJ2"mcQ+Q6TM91Qv`6 AYA P ؝LkLzS2u`kݐ~ᗋ C U97>;dKWQJ@Iؠ=iMqBckH (AڠfwcQk$S@V0q 4! = u*q=+A)ڄ~PJV O_DDRIZS}0%I1 nA{|hye\69LlkaK'ZO+A]藚uE29/3ubr`db֔6°C/4SP%lHCLH A[qd*Jq laqVҝVf늮KiK*NFE@xnp&ҵ*b* m\qWb[*C*GR=VaiK"WlUuk׮**ث׵6ثXثxbקq[ݱVW׶5w.W *8#qVj*ѭw[*Uثu[~\UbYIpU k|U⫆*v SlRvZ4(~X,O׾)laCt46=*VZ|E Vt>8]UhkF(V ݏS_ 4 q)ebj9l:~iP })Z:RV⭍kC'}B Z*W~GLUȡ)`fSZZ *khbvZ[-',J VĬA*nت銮g؞qVÕpqָjkG&OL CI[|GoWztp>>_c^ڣd0| D«`U4R6]蜇7P:~m.HWDZZoLe1zUGHc~+R 5A<޷K:[5J܃ S!EƐW"5\4tupUFS-о;+RAM"P픞m%~;v*UثWb( צNJW=AcZTQw-.-4W Ԩ S2DIʕ= N0nzR K hM)@6[Y? 䇽=DRp-MiUgzWո'4chNx0X-*k%#*ǯ6EWBzֽ> U$f(OqU#SҠ⭩U"׍? ;Ol*h0R^#rxT [KS_ݑ4Vm5z}خꞄ%Ii -IM\\-J1,3uj"xÑ]BV${T() 0MʛtY|R;⭁ă@}`Ub~x ||=JҘjYHB)SEN05ő_mjVb3YTHh[0ՠ+᝘Mw~'ۦ7ikA,MTSl-Jm@"F(YRv트_`b*3;qUNá#^ȁyF]8Aۿ Pm\7|*[[#lbY ӫmɮV*wܯ#mZ U(}觐(0'o -L{ т[޾ (#98ӀާF`45b9#^KWo$3BU3|LZRCs@Xс$KS&ʢN QVhԝ1酉*RTk>XE8{M^nigh iAYR񸽵2I+2RnZI;"!_FG c$۶ĐR3SP7#cI yrBUHƊm1塺8hJiRҌZ} ~ (h[7)Djnj=vm5Ln]74PYMJCjȶvBC33tb)N9&P2(,vMVʭ(⨤EAဖP-}X0 nȷatsE䭨2=KFո*5!wJ[z6pR#XK#U4RP2)0O>S ʫ$0&AH&ژKYs"ϚńwPS*@,zW$]P¥b]2TZ(AbcɎ„=0[. iGv F ֔N &Lԕ p``(Af=d6drOlT*ܚ#lqJ_ 6Z*H9m{WzS0~bBĪۺVvҧc SQ $VO|Jd*p/2v?0pp#}F!#tA =鑑mcnA$HА7@0nYˆ!ML9go<+ᓧ̤]חㅬ"j#tcBd$x@ lt|PW|P: Uk*P'q8]VIU"`HEIg,,=d(HTbȊ@,b9l wTVQɨD4۷mMxÊpJ UثWb]Z a ʰBAۧђbXtAX\kZoXGBv&>S(:\|!S'*"k~eNJ&zMS]ij EFP}#UݲA'w#}lA%Qʄuߦ)(kQb6JU}uT8INV[)BIr`nN$^lM$&""nT'3)()bQUaN$u2*$3!55VVPP3uK m VSolP|r`ЊAsCՒ*ʔ}2 E*P{b)V])(j'튅)$_P榸[C׷kv(hUZ8Gk5v*UثVaw`};mԬ!I4;xoV:GNMiO֔FۍU$ *g]Poi؁!EVbU-Ra_ U4ڕVJ>TksBNjRL4>)T~N4Xs7tJ b QyRzqW,Ev'*V*IU4zI^Wo|(NDA_I Z@m+>D&#"#7F68oû7"KnĚS~HkZS,Vr,еƖܑW M̱DcD@*I=DTʚgI6uڞąNKTy5()Y~->XxkqVژV~XPJz6mKj+CS+56G$jT( u qa5 -N漟1?dma JQqhJ|[`B:+jc\UƤW[@VOD$(aYi NjPߖݱEw$jmS^ت4mT[*JjzoV$̇=TdmCaK*Я緂?^F{ڻ0)L Й cK9x¼TL i]a9qL Z:ЏՒ ()TR=rJC(QJvJP)t%e%%G"64ȳK%{YU&cTJT+n*`HVZ {b2[ -gUdSԡL:%ǕmL'"aN,eN+j]Xs>6`C{%Cc*Ԯݻa%(BnzGZ2 9K {*﷍qA*^\^Z]:+vClGD ]^+H5j7l(8neaH-8 -BHk 2RJ|4_3uKT_\\( IsRH5M*l _QOKBvAj1Aoȱ*Yp ;RpGO2CQ ) ױ=@)scn_ QH,$-U }6]E'q-S[JĢWz@op5dLwRV#l :G4=rMTD? ?ґIy|`!dWȶc AD}U^L4ljD}`4ȣ@ *(Spյ C `ׇ\ 2mlG^>!D+P$6q2JӃ B*iJ 6MLcr2983!of , iD7;UMؑjBR k\P0 H}-*#lU| T7JyrIbjkqR}R4<:w4 ǦLjH4jr qtTSj#0u[YmLv,cK9Z|4=Y#M[,DHoK$zS'f  H#Ʉtt^_h_lywȫ m3;!kL04AQzW1 $``Ye]>bj }eы"㠮mʁP>\(AUSQH=[*(_ UB@Rp*&튷:$j86ߑV$U6;Z> n*Gc \wVo #]\ &Z|wXEHZ6ā8LvLU}168XoI&)lV}تMJv *5;bኪUn((I$ S~GϪ]]A\H E0EiZ{Ҵ3} FXf$|^ZPۏoZ׿"Yn%$SUe4a=Ґ&rPBE#>&T2*R wZMA+@-g胕?Ő $$Ɔ=Qьz_V%ܒC.^>sܜRYXTS$bvBK70#T[1(\Sk%y%1H ()ZJcynlxg;=XMi)/p ݷƚΣtZdRIϯp p|=-:Y♚9GPZӦMrKBD n1ޔC{)h2>BGggxI;rwCӥ7@h 'gy##}JG517Sa MCrX]t4l-Gd "E, !W~V|;[W-=4%zKr,8P=ڵ d08|Tlz9!&bNm䛚qG=@i &@@=pM#I|s%XFRlߧ7؁q,@_#e1r6;}7T,To߅\C| TA8p[TS|P)R r؟lRV 27P*1Z[7SJa[oQX$-#|U'hivht­[p&o_Um 1VZz$zV]kv*Uثu$na=1Q.,)L _b@@N!aZkZQ])wқ]ۦ*⭂;Euu1VV*P*(&Y$f k=xE;5^ VqWAlGC~xXUq;AaM:|Vr\U]UIT-W\ \ZM*O P֧h)l0Z=:WRv\An\U~u)[0+DQ-~UbZwM㊵VbqKc(olUǮ)pӊOӊF*⸪UW)*p'~ت">}­> ^xZ1T](¨Ibv wS]4Q9 U[' ۏZw }ծ=b2t^.,֘L~IU&AJ/3M*iFOB1 _i7n (ƀbR@'a%*(r%%T@k !RHJv*UثUJJ=- )3r@\Qd̂_qFMF+.SydgrP?du9Q6\{i8UWJ/-׎/5[) ӑ9%*K1 b%XȋS.GA[Kn @>'\-eUU׮E)|hG.8Xkұ j T%@~Ȩ؞^8Id3r:H-t)TP1|Ft&v-ɷN@J=qJءFNMp+|6rqBoAP UiV Pt;VoG*H<% Q^AŐpbN""Ph9q ڏNî7#;qBPTS,'[:DVVV*UPUثWb]闵-\+] n8UUЃbZv«: 蜣]Z{)bAڂbe;}z.C2zҾ'[AءSr*vlUPCaR0%ʜޛ7ЀG!h@"Z Rӊ*\Q6 j± # =iMFa>r14 *+*X#ro 1bbWg#*{7@.‑LJZ1ap'FFqZ@ HsPzd\K]'h%l ) b&S7/;{b?6#j+O6|v34I!3Rdk/,}3ilIwb1%apPTAp3&[߅ "(<2@dLf,巆InjCku Kj(W;_[]2\H"ĕ2/3ajzP';O mjv-k צ#& 1эKlʨFI yr<@;P~LT$TPF`qE(#b1E4Shk|UIV@=mP=B5Ŷր{⮧QҽqUVv,U1V튶zbb\ׯlUb;mzA\T8bC,Ŗ4.T!Eh*[0)ī YPߖ)^=0* تlR?~تCT NJkbvzoLR%‹4̒hz*ѭG}|0VFiMŐgee[N`s 6dDjZ5D2+Pڬ(V#sO.h ܕpH#@k1ĴA@{f96M`CWb2!sF$ 2āV=WBidqI* ~Jq銠\!$e RleCh jݰqljdl*r*H$*Ck6GNϹM`1LwVIODƘWf: 6dDa8|Gr|F DIy0AN#d+b1֒y߈{lP ~nİ~#Jf uZk$4@Qa#\4,1AX1gS(ۤ`-#UA5plXӵj{u‚dI Aq-HG 7>lЁZ┾XI0! vġ({VGQPCi I @UKVU?,*(v8DWh遐Duw=p3eQw*hǵqR rOJڽ0%)CcLX4w aM+LP+_C1b '5\U, *UثXDZ b]v*Uڛ,ʼn=Nm.jc[;|*v0*PwVQĞݿ d ^0LIEv+5xBO)Uj>N+LNKpNʪ>X&זшoS4v~nSdjw`ef(!꧰V$s$Z*M)p9&WE{MaM(ˁ<8R\Z+[xcvDW! Tndl,c@Iy)TVFD<>ғRFbȃԎC<pEU#U_5؜mI4jyt H .;1`LB:]n zW-ב!b(:* !JH$*Nؖ'ɀkRrރaeem4a}0j"LW%*"-%-zS14y>OHa211z4ʭ{WJ`J-L CEs:h [@ڴAECϐ ;S/r wR<:iM'JhjdX 4eLІZКR e;rZ3{(HyK0wn8)2 ./IJ b}7_QzvEcݫ֟KNQՍ4|FT>;נ68յD× ՠZR+H íZb³*H5 VlU8^b4ߦءÓ:**ۊ> S!FKI X P8]*OZbyROBX築F8U «d*lƖ=Wv튴ԯZ]-lUA=_Jq*+f*A N!y & )U\U#f~]qCAUko=bokj#@GIP UE4$|"`MXw-b]MKmDBȾ*o1BԮS~i늶1Vv* ei(\Ԩ  ULUZUr5w{VV銸uU*…?F(]ZՅZW*\ UI#PQEJa%,CU~8ii8⭀$xqVFثt^Е;nk ZE0+lJVl ZbWr8|bi6-PI-bxU]Ia AARWqbBH ܀M Pt卓cwJP$lF+Gf,=%+Vp8=*bVOWAU"*N XkaW=O~#|Uie'5S ` 2+nE1ujGd|Ш{#fφM-ȃuJe=qgծTxkǚXVx>{rs< -v;v*Zcu1UiETMI|t(A`(+!kHRHI5zs?vN1,۬GGM%^0|bTOñsH+ 7::)w$&yVTdeŲ!C ܏Րr8 Vfw>HI!I .k$Rpr `X}؁^>+$JnتVji 1) Th{E:̫\FN HPդ[V$mMCl P2ķz P~=H ULG牂 vZ 1W%^+Ac)M-4I:hJula mmlPebBto-J1__`0G\Ph?*BCz\Tr:צ(C0aVbZp+WbbN*(v*UثWbY@"m/i\2@:S%U-_"Wjn:UlrH6(8Rb;*wN*)~Uz; t8P?U]HUsWVm;V0Vh)(RJBBǦ^Xb | W5Zߕ:SV ?ۭ)j}!n%צTVBTi=U^Bf⪨2'ji:_I íkSeѪ6.h4XR)\;߈49}Nی AjG\d \j}ZQP0;m]X=6buj"eg@HP~GCZn1R0̀]m~ rNMy޾M)e`Iz| E, Z2h#qB;3E4 n-d^r%?@Yjm/ ;@ecpB<1AQvCQޟN-4K?A˯Tz ڸm„K]*d[Bi"=a A>UC01sҠ+BUZR*mt$ZBAj}a O)L#OE7 ,JcO$C1UXojx7Tbgf@zӠUr#eEW)YnQ"7U#< M;nnIޕ[Z*z/ء uP{8"d ^r% OE l5<|ȷZٵ @~Lza])MGF| ĤD/ǿ3VzL@? 7߿\(+,74k?'瀨NF #+0n1evo hY!V?Iզ+Jla⽾Cirdv>8 J%gtQ~]1!)uв±9,;-w"Cd'{2@+-Bz%hEik=uCM=HB*2\yA!=tȭl.gYcU(*b;ah32 !N!푧(+LbIDEccbZ+TFT pZT(dqrLtX`$i%14 ;bMd拱^aZn@PĔ JĕmNH_(##9;[(9/I}xaH+RWjҌ"[MbT\FNUEO}9 D #H/mpY$UhRTTmZ X)Ŋ6Ur4=7p:7aRą]BZ>.\Em`UyU>CD%$ַjbX +ЍU|nښ4*; S U"f"!]Z@uj{{IbC#T䁤kgyY[j{P)F;t8oCuyU ^=뀅h1Wo\Ub]Z@ǍxBv4Ī乞$dFEq’8DT`K{T*}UT){bqk6:{bk⭞\zS^%N8LRSkV1W) v⮯lUUUi[]lW|@Wp[\1VW !i N߼"xNx @c"VK:CCQặs aml k2bz{6GehsڴϹL4;V 27,dPW+ SY"[>!I~I8II+YQh}ݦ=@#'S!~4c%EjD|4-r% 5:5X 1[!}FrwEe*l{b [ ӵzɈr\]B.UʀGY[6YPWƧ-SZ&I.o^`AdqP{}PȨ5jI 䀾)ck*XmᅏTUiUQȶ9&wO'^ESy40)9H;G֟Nb6F~[imE<),=A+6Bh0Z ;aj' +qg KʚIx>t)EoRhj> N7"33(ufp[f4{djNō!zU\R )Mcݰ+p^ w1,[ %I=1Dhn?!wjiऒV7'MB\FTC0J&X]qWj"bXl7L,[e݄PG%@Q:plxhcXw&ޠӏm\2@ބ8[Jmi\x{ u+:mJZWlU=­|*U.Y܇FH3FJI§de^W56qU`W7Ƃ*Z*t'Ź5;qZQ↱Jҿv\OZ"[bLUUv*v; PRlUֻ\ik|UثTWb{b]ƽ{bSjU?F**C1 [ZTTxB;WǾ* , QqCL ku1UwZ+$4]‡p%u=z PT ^12ܚ2ZoJ|p%p+Z 5`KXV\UƴlUh+1B# zӶU`KUU{Z**ኴ[][ثc^}>8)E«XP[B)\USBvQpU {BSy7G^$'k_g˜ $0$bOR(bv ]jVMĮbZ BO**UثWb\qWbS#W +d;6#l"Q:p:v֛h Pm֝H5[Lb 偧$hh=Im]KFҧPH| >8b5'[\:Ƞ|l?*5M b(Av AaT SOPROܜPU$HlkBh :8\`PԱ4Qڟ#ZqU銴qV]C u+)NU48TUz5ADjwow?UHB/¡z!O|P \M@'r6\zTi㊶74*;S[;U]uZX*y5w$ hPV)**?*`K[\\Uu)+ U's) )EEj÷)^r>*-YK =h;ߋl!6␕vV*S,ɺF<4mB"C32X.(ZF#z K`74ܶGЙ>}JbĩMT@aQ¿(<(n~xfP)b (Q? =V}v^^-drKL-s) 1]և  HVtbPQVJb |,b wm5bXQ1N)1{hDOL6|Y Zu EHh5Zil[=żӖPn2%+|z`bHMS- 8RI=*@yfRP P(SPOWא؁O M;URU& nk *W;VOn.ݎ( }LY9$ bӮ䁹)*=AȖq4޻ 5"\@ >>}knҴiNP \Q$<81*KSoªtU^P"4*n=7p-q*Ҟ+"U*+]ki)*~G,hx9&)dQG~dBWt mEYJ5T(OlShRƵ:Bs6V fmz Ubn(qJ=]Д`ȡ+D5@z .ϑe>&`:Pk`d}rWdiBaR6a`+?Kľ)WWp҉)\ɪ@$x{cH24rӿl4N++aI:}7fH&Kr?MFic]sNDN*-ʊydSH%CdAۮdDzr_UyU=7$4w&Tbu^ ,MYSH0q,eA%$0T@9ނJ#)Қ#m'fTH5;\E:3+E#GNAkT;/הk#|,Qh4ޞڴhZڀנ=2m9PUE:%*W()Jxd̤tmS- {uG*~!CN\4˚@dZȹd$NRܩZ`M ރHUlj:v®W/ i0 ^ZBj*<+k G-6LjRxQZ~<=SjEh|242SFݫ4ۦpSpTثv> ;t[C^ث}AQ}v) v*UثDU=qVVb޸T=I\=qCXUuj|}CD]\UUv bWW\*PUثӊ\U'\W]S 㐏銐V(Tlw>8o\0 ӧwϦ*اlUvS ቤp*N6q4p+$ ln1VGPwaU̻ UqKWW]VS[C3!#jT)lSh[']6*\)l Up "r튪IT" zCP6^5*v2-&(@Ù =J0B- 3tq`IS$[<2cѕ<}ADlv*UثWb]P;2,Tv=6Mъ >frŰE2(c^[ XGÑ2$ i$a"H W&[",#dK'޴Z%*쥛׮I.1RUd"˂)8ݨN,qJqA)vΌ9;l ESS 8\!(7 j)8mmr@aB g `a1v%;|[m 'O֞8Ml T#EآAmnքYv (+q(Ƹ,BxO*QNUEOD8MM=:8Y]wT \|3r1NTتka\PتT¦ o^_@O!ӦPGMUXIׯ݈R5:3Ē@QEl$ $ kZmw.4Wh>Rj|7UDjEP۶4UY E,u# d$CGO vC-Ǧ@@)O[RHv (Tn+Z>jzmVP߉VJ V2>T5z UP =Az*Gc1UQhU{]3=b{"LEAv Jz% +[Jnr,!4f޸ - 'b:… h0-6TanͧjDV1JtUaA,~'Qᅊ&;~fM|GSEpkwX kOc\Pd N;֕_ Rk"&E"*w%c@>4) #P@xciW֑NYBZ֒;~tYӗ)끘iRf`M~Xnj`y >2rJRQhc6~ʭڌV!aTw"܁#4Xzk\MQOcD]4 =:}8)$lUjI'ѐCK1^FjW瀖b49dG m:_zndX]!)P(j||) $"B/z1aޘn}UTl<+\iJA"׋Wl,#}]<#W4r}6KY +!+~"NԙZ <0iW҃adnEt.%Z"RS2|@$|4TUث*hS#%;r!mXc BM}2e߮>vgE5"  8P5V m&p̑ uZ:cl @Oc,uWcH) ⧨z  eZQzWpĔ\%G"n ۃAZ, &Jl*+CzP{ki) qr$}ɧL jRЧC?F*HwCOhrďQq[Fv qzaHGۻzm 0|#œ%S޸-ɟwK%QZ~>{eeByS㐭bUثLH yq#|2| Q*:b]\|"w>8(9.V*9UC~\̬wė"1W$pp ^s%z倦 ڕwF,.%V&umi߼BiҘ B :%Z,)֔0sQhKd Ѓ~iTG߇fb uWɫq܁I(R+bev!MZBز<]Z$XFRpjzQ)@:cj) mE;ГRuڙr%F" Ěw;QI,r4fmQV QZו!cNwA[IPb>((+pBOn<(0!.nbB$$h[IV, Tʼn }ýBS 1呣,@'oydBLJnXdRIpM:`d]:G1wbI$ܱ7רe@<ٷju?, LW5ԏJ@Oı)Lo p!c&L銩H0* R1WbqB]銬e45([*RR>B1Ȋ *r* *^5NVb)klUnR6Y@mRy. 8oSæmE7*ƵJm kǾ*WnE)TV* ªd _ U8QCPpv،UiCbPҔzbE*:XUsOzòq| ԜR|UPrbIߊNiN<4(4Gت֬BR"{D;{Kn4CoݰRY{)/ B#IwhԒC1!,E3+xj*Mv s/} T>4ƩnłG(yf B!( q"+'=ZW% {ֻ`d+-- 8 8mHRmQܪ*^>ąx-_*gV Ձu5lVR˶ݫR.="7{ (b׷zSA ޜj93wDd¦* m,&ti]JĻsP(a -`A=*2xY&PTVZIid05Vy}OPlֿ%^$K\POE*G,avيQEP8LGLQgRxLţ)>2A#)JyU 0qCe8ׁYHX6r:aF,H?zL<@vDkxIR*1m#UT֬jzB`#xT!ֵ8a iiHʃ׷Q^ѱOCpNt=JTv?O`07♷( qtZH HL'XcV;<:`m1ͽ6˔@F t\*ji#*7tze=͜*EfjQJ>7VQMRCY v,ׁET,f 5d+\'x un☈`zk{dƐ-2PH K!gu2ejNBۙnLJS (P}GKṞԉuo LWWRTijE&dEV]qMZ)g^ !I5)lwl$lzb_~&-ZWpB$,IFء#YPPTZm/ӒR |XHU]]z)Tr~& ͜F*77m4DJGmJ[WA⩥uR׭| A<rRE İJ$P}C/|UV6Y>'L M:6NXU OZtĨXI4-^,U|qhyCpvLR#-R lmOq*<뀦s aA$ִ_ Uwo튷ABkN5lͱt"~SnVOSKPCT@lqUeSTnHWBIzB21Z'r+QD%m{╱M"Ur<Bwv-@]pjPFé)UGt ]kQ1ʠ<~xcby1 ]TqO$Z0zH:o`f+1b[kT$PHjnAxcktEn)svk“E$Q/ۮ]D[KX;hTWf5S]g]Hz0Rwq! }aضcM iTjR(゙qk""cS-Ѷw Ɗʢ*l%Wv#iEo,!2s l%r!F'z/Az}fdLdMA ^v8 g2@y@g`RU}&2[̗1T05ڿ P%.K\FDĂڢf_'SҸxQQ_^TwbI `a~$9pOrzV@-jJ..&ҝ|!S{DRR(^%aġTT<܃AL"l$DQ< ;ݻ=A62'XUANԯ݂rݻ)]޳R`{Ie#t"ZsBߋSkΘzϖᦑ?ZP'˜ o/hEq)4Qrg֙'H595 i8QBl*xWeo=VY]#lpt+J٩11K >Hn=x޾91&’{niIɵ eV={@ab]MxaZ̤RW$]>BRzS& Mm^>Y)ĆQZ (CUïݖ٪Vz>(n[ԓ|s63NJ5H#C f Ku I-ח3ٙLO7'[sZwvBbr7ݘݺ*WKC;x|Nݶn`w+-O4kIm寤*PPzuVC! CRQF!kHV"m(hFZ;biP1UqW5+*UZ[$w#ǏjյbZ8*ثcW7+^ 7-OUvث\ikoov(ouqUhœE+_aVq늶*[/***{qV늴OLUUثFcqS&[*⭩lUAaUXl@>UR <1K/֔|UZ>U(Z*alb銷nV“ \iZ튵qJFH$0?N4rvUPӦ)WG,7,(FdE1IR#(Wp) EI=5-"c,)(}0r:Ĥ ŽW##"wmŕ}#AeX-ARmO aqۛ;BSү!|݀p  @ew{_ U%I$$ IW<9V@is/"i9T06Scj™ 7r? I'15=)6uIGe$p\')$ңUGRMi",6G>8+XQ}=qBЪn}~io$MĒ= a)圫! bBfHHef tqImdfAށkti1p"-F 0.葝M(GlR HL:ڍb5>8KjQlii @ A$LWkHS x$ בcJt튷C,jV6'0$%\`W ń(P640*MH'bI*j'B# QacZiCS1U%ES Z$U*(ZZ^ʑ$lCi]%aVҕhaXUb P};bbJ Zһ~qcNbI ouiz[^ثh⫈+#n@T];W*8\*|kV?O|U+)!p$JTTR;kqV׶>1USv(EXʐj(*T_lR+Ep+GnUH?QL0G5SF;A |IcF[zVA>;cJ5Z TsKE!RjïB=a"\~]^-i|,֛D=[Thӈ;r5j(ƸmLUlRCb]ca+pQcBR‘HU\0Dm+L5Qemp * ima8Z $dOJt)m#?Ł$2Z{q;!S {ŠX-` qnCP7늪#**Ep*V4 HM1M5$. McLUbp9ÿW]PWP ^]HR=U^&T#,[_c ,U ۹ъ(-VS)ĵ/rqZTUvSLU|aZ fA]n`]p2P voʛgȐ:9ރ]\G"zD'zA8> 'y$jV13+!4r&| !y|()wp*A^Y|6˅6Ujnש\Q+1M,~jδ}> gGZ*ҁHDrU8 QJji^ڈɹ~ (j{bFsP %%2b))F[?:#?O !X$:tqË"ABڼn!$fJ'0?A퀆p\aUUd}!K \T!!GNG^ Z *S>8%4$ 6evrM71fùȗ"(q){ׂiE"%S=N-HUd,g8Ė"!/2K7Miڝv-Rs, ЊG?u؎x!#wFrO5h ]HXu< +Cm ʚV 1kk#M@Hj zɸ/kaj[)]`Gj %ZlJqMGa Nca{r#VHIR JW>q4IrQؠz%?|G6|\Q 2;D=8xeǒ ?P,ii>+"llY OĔ(NHĊz\ C5zqLI.V6p!AMև_ -c~;,H@NN]T3~8 .ЙI7˭;VX~Ua늻*bbkvjx[nXuvثGju]]Wb#klCOcqWb ⫩{bu7U$I]OpV트bqV†V)Jo^Xx1V H IUN, Kf;l,mdNώ*]R1B!^OD(1'hEz12J!dF(?jJ*ѭdرGэ%ż !׸za[,2l0Oj|+9$ OLֵbBydzcb e# Jҧ0R I ʃz oI$c>V6E$б{oM*BX5'#Bmx%!n.MTxw| J|o2>vW~bKOZA:n(nG6>_N~JqE( "@xĚí(تZm҇~P*Da?gq$5ݾX6ew8O@:R*"҆W#b Fk\ZJzb)Ko4P'0%ޣSW\ez br{b܊|$^S\ T|hqJ*k^@}5BP r$M)rmJSk⏒ IAT*)_o|iPB*p-(42BwO"Ob^늫$կ 3{|1Jse Sj%lƾ,Ubvi]*N$DUEhC ZaUtZ^D UE+)UԡejЮ[ J* C>?NA: P|2*zPحNE"L+RN*\#8TܑAZMmmnCܼmS|k;\'%҃jQ- hOq+zU)* NոVP6a99!XJ fK+EqP1&9eFf}{ ZB̅µP~8 l}Y6ACd] 4e!^xD Bb(X ja;-5ӖUɒ[Ĝi_\r V|-Q}F1 c]Q.D;VC0=qMT@ڦ1O6?UOR;&VFZ>ݷ{w)5^+`:rnJ'g JOrb'"9d&6W4 ~y Zg[Ce`wt|Jƀ+t<ЂԡHg(}NF'X|abU~[ऒR3;8φM %J1CߦAqQDv}q̉*P4-'o No3Ȝb ]k}Il(w#"!wWmc P2yI]߁ eNqMMO1sF`A%*~Irص f '{ !ҡ_NY"*|JOPG \K\O"N鐶\(+#2 xc<]6%1O)Ԇ'mg?ſ.]~/2]'`K]?,G1`6 j@G8;t@$⪓"%($*)[_U퍫D1ZHp+D튭'kPyaUW q3S[+Z*Z1WSb{vVqu1V^v* ]Zv**ءڴv*ҧ*lUثB޴ZaW *a !*D =Fjh⮮abUSv*UUbUw48PR p|03`x?@Vb$`V)q\LAj;vZ:-P@4')j*^&bG\U}+LUn*66Z=1W vtX$⮮*v\ N*\UT{Ux^Mvx}=8\<;aV&At#iin)E VP)O}Q?T $92lBqbzD1؀z8L>!ڸUZ+jbkfM>ŕ 7K8/+Џ!Z/Uy8Zmʠ$LPdv7bb%BqqL &*` !'$Ur gAʛX(RO6ȂC_Yb|}F {9%%$2BF(O2ܪ`IvIK.Euq00%/fSʆ=ƕJ[s+m 31v4,Sck<%IT(Ð"rM 4(frG^FYJ'jcl+-9~qC!}o%I i]za4vP:}9P n2um؆[Ds4No@?/ M4޸PKVhz$r'E7Bol z3F*1U0*Ӱ8P;ⅸG|UiVozbUw^A[aFAU&]h֘iSfVQHWrzf@h,S< W]RJ aCUG! W"Y;Fv'-b6_ UND+I'kS(v*ۦ*Ib+s_*FǡUU $n;b/jɎ U@mn0x hJ+<@9@(1UU XZzx U s5hX۩T&g,we=QHܧӈTx T"D5<.z*By 0'|Pb8=*A@k(kI[6*UF ҺՉ+ MF>sByzehjG^əDEO*SᕳCBR1^ zW;*ZRF*ƣT"最銻 1JB; H)\HU__|4YG 4QEI2`VxLf&0](~<1O@Μ3cN4Nh`9X2ANvaSz㊦?nZRC^  lFH4bƵPv]i EkQ"X=)EKT!Ҧ׀3+dHIm^|,mxcq8k]`MO^)mYn&=vp2גjqJ]F;Hh@pqZ2@!7F*wC+e`(=HώHOFNdО ;GP/~c)rCΨKpHN@Cj[$Ez fDa@k*20n(QI:61B| oNث^GvGrGڼZmߏq`-{Yn R#ի]Hݩq@MOSRv4?F);~ۜUAߗJָUNFB0-T5xm튪$LEHbp*w&,UXqJV=)ӊխ1Bb)i;`K0,*;Z⮮튭 b+LU PfcV܀bVՒnS(n̆~}+ x9ZaUEV S#!'5܀bT V۶*ؐnWױxPeCGCNը4ɵ6jZujeVKjP/)V)HsS}U yAC~]xU㊮UUS-E&+*PjOa*Ejwr`1,F52 keu zw4HdW@ ԊإFYvaNBp69An /mrQ],Qt^ݾ-,SQ O=*6Oتw=JlR kJ|"6ScIwQ hN)5#':KjE(^N(D4ZՉW)Vy^HPhVJQLBĤne%>Vsa0-Ju8&onS"d]#K8i(*5%{=E $텨-dv(rˀ@Wo=$rzҶ/^B%BV "'46[Q414֘da*-:V!@p6sȻO!8^WfRO1)٭.[zn=Idd0-ϦnvƙPA+Px@*NýrE"I uf^Fd_Y٩ rCQOzE Gq1ݻXp)Bzbe:#^MCƾ0+tC^1%E i_b).h$i֣æjQ[n&j>"UcS#,FZ1be{& _T$Py7=0B(o ŰoQ#zWxǷ$  ^'"[@6B$}uȶ[5,f@=sj&L8^_ 6ڴcJA"brZpq{; K hJG;3 E, 2;)(vFӘd WĸYTSƒ"'{턳"m"!j„m,&Q9 [h+Qg`6u Si]lH[& M[nHVBY_Ҥchi%nHyQVHJpڃY^3,N ^<-nj*@7qHS`B.(iO o97Vl(Y-d-*@>#P e/M ĆQvT+u2r?jqM7(1\TvlH@Gwm"*8٨zWM[zh,OL*L ~Xí?*ُ"lR}8MF*9FBU?,U*=N*ҝU1VoRV\'**;;Uhi^DPbbО4.؟ ULU=bn*kv*UثuLUث*bbUSp[*P=Wv*lSLUn]\JhEG+$JҀOa uuqWF*⫆*|U⭓\Uyc…WV*[1VlP*m[Z5?F*U**1C`Wo1US`rH)NJERT|KEU*qV)FY]B~=iTMޢL@'}8*1*͛joOl,֥E7V^'Ƕ*F*bqC_1ڽJOU#ԭ ߶(jKhFte@PJh>TȥB(|1Tny]I\z[em Ta*?ji|JV۶nF*T،U|l Tb]aiZ )B {WlP\Uzh Zb܋o;8A⭚ ⫀ª )RoQUM]|UtOL Е n*7- AS|UN>\ [MMQe%`nGΝ0%q3ĚC Ĩ_ƥ T"ƜJ5qV(؞F*(N0$jJSE"1B̨}U4݇w1{y#PS/_NukW*}f@;mOzy6HRKw>Ir5PFӥj ^G^9ⵣ1ߏTC;Xx)"ɫRG~c+ZQhuRNE#} ekCH* П|4E ugb9-)CiNҢXPb9 0'O]X@5IC-*}\THO>DqMY]^XDt/NAQ-5VI h*: m.Y>5Q\ GҪ"#ʲWŸ)jePU@gd 栍z79HvqSSF}WdE<Uzjhu|p4UD0beh7'ƕ VWTgpЁJ(ּjb0 UU@*ZI8G@~_xB1e*i=,{ɇhhRhsZC?AUa0Rclٹ'V`8kQ\mDS&'A<;$(ܓmDl$4"تU@Xo͍Y":3;S \؞dnʪaWhqR-Zy9,d yR g 2ke%HxApe;<o.~0,@44XЋ$0dt4;ce[[%UnqLVM#D'TEHOP2ĝ0db'l*wrm2fӘ0(ڝA\;1+n% 4JbX8ڱUމb{{ ",a sjTz}+q*ӊ]4qL 'RݺckIc; XZZ+֟<6(M)7߶kp%8S*:aU2;CF&iJh}[TJч_c&qB޽1Uî*\U犵^uMk]Uø*0&**UzWb jqBFO^vFO(jN潰%L=KM*lU ;X UĎ1U=1W UثWb[qZ[*{VWXr1BR1BUUvU[[h ⭕epb{mj6]֛SUoH ʴRjv)҆v=i[mkMU3lWr_)TZ b@=V1V\*U˜1KqC]ȌU{b]*|)q$+{* ?:Q@ŕ*3$=8҇Wت"dQzRsH$zWlTbI_H),>1逶L]R+;]e` b'[_Z9Mc";5q$lFlz&$>DO(>4rGDiY]t;Pw)CI/ 4#8.4z@b)%&*( 3(4ₕM GOLZ OJ |P(-Sjd}ڊ,s$P$`'֟Y$ &S4ŲqUQ T\3/tкXrEj(KOOC@Vr3} wKLr9l1H*\rru(|rGfȆ5*H$^Y$W"3%+II=dq^DI^4LRpZذۗjz!, VolP@+U TSUdV{ָj1UUZTLP RT=@*2B>Kwr6r Rh 鍣Ussq FF[n##m0 a򨨦)(vLҟhdW!6#Ysp)ؠ#Է7nؕ h\ SֈAIQr4jW] j0S,\aHʋ Жeb+Y- jHZI 5(+b21bPU~c_ /<"Rƌ Ϟ⊁ l(SԝaTإf:`VASgo UWlUkLU\TN*58Pbǎ[SXP[%BY2p~%wۦ)nN*jv튷O|UU튵v*UثWbVN*W*v*1WbčSKR.p\㊕QZ1Wb(pPvژbUZWT8Xk] SmwZTb{7*;⭁犷*⭮\@j0=)8h UYaKj?wS|UH▱B.Ƈҵ} qKouF*⮮)n`U]UU *B+,ZqUʥ !P N])#d׶aH)&hϮJMtnFw(xW_(1 "(@&n½ddZyѭ8j% #l[c+Tdu^jCl"luYƿh`1ا[a nĖI TCbI*Խ8!!T}z;~- , Q(BRMYw7ၰ',6ǟĭ_ݓh$r,ޔ:b(JbEo'pp#m9O_ !ihMUHg|E,y-ɛr< ʥ*L^3nI24XH9-'21Piԏ LS+KukUMd"V钉ԝ"GȮTN%V M%Zݺ2bU=!E/H *>X72C2ʜK/@|7 Qo3mV*Ƨ V-PWb­hc*ЧO*1V. C喵(\Ump+|j1Vo<1U8UQI$V \ aUDW|UҝU:V[4`y9`T Ho|(9jc޸V;1!x;}qB:U@k vߩ ZǥzxtZ%H{eM*m jPT1U|5?|Uqa* ӵqK8튺h ~CsQ2{.\*5jE*y*0-JKVMuGF|#UV67`hLBNq@iR;2".ZAro7"q)Jp$h A8Kj%e!G_ Q!FR R-+%Z?ANiRFتEVP))p-/[1f. Ey H;+R @N>(nUAzÏ*7݀ /-E+Q5h>Xy@R{ӮؕQ0*++WD` JԪ-=7TrLޣ%D"|*qJ벟:bԒjx⪃!U…"@=wb\TZ}AP r4I^%fY.Ixh $y=H!ރ+L'!>wL 舑$K)bΨ jAߛv#m$/n!%uo3 0 Vhm~ҕ;lȃCJqqZY#PTN߆)4Sž8C\#5)̎UBM7'$K^8A d EG@R$ ꧑RjBo@GZcvD^D쵮E"-PvJ:Sx~rqJѓO+Fo)F=&bG rcNqP06hJ6MX,B~ 12C# (uLm|RMUޤβ`$lSL%` kf$P)NiŔr#*7$Ab&Mg۰?i5&.CC6컕))팋!_oM𐀺5vuT(~X&׶:6!BP}M!fX*H h+Q[pPbu,dgX}}M|)\"GvJw|UYt|n w^W-4Xi$WC#EL-тY[ʿTAL4ʒvh2"][} "S%-PՅC+CUaB7ZR]1U#0+h@#OUڵc!ةyWǵ0&P=^>G5P}S>id$.`*ֵ8xYtەT(qV WULQ|JEob]KjCIߍ:{␏EdKdB0ɉbqi2'goFUHtO%3S49 =ORF4%`hOZRi4ߩ|H޸5 :䶦^na`iSl9jk˵1dIGcM|0Zz5Sr\#2I}SE {`A]dOQ Ԧ!y˭rdf5%\M+1Amq \\DFjPm6-Ր>0Ӧe*$(.Y(@T |i$z+ǒ K P@ѺR`p1R/s Kv4 lkKZbNƒk@z]]G%"xPbxUwF,; bOw bzB!XPí|UQbT(iCpU)SCRz| 6?~E-~Ǿ*\P]onSኵߧъ ujH5U9PW*SjSJdCXVWbbv**UOSWWw\Uv*qWb֘c\UU"c_|Up#|*=;Ӷ*qWb⭓p\P㊢"#˼Ui5w aQB(|Jtc{i7%LW$mܠM>YQlQ>VUV銮foMz]S1W{⮩[lUZ㊺qB^ Uv*?F*⭊b**N(uE}WH@N+A) tZp`nA튶y5zaBс+aB"$f .v|Rc)ޟTS\xy SsI6(pMGB|p# WtHv-.ǚO+Q[<'M \֌O;bI7+JbYعhd ~~S[Iĥ& JsWiAn#^CVEAҴŜkNX.aKn%[\킚<˥MFE'% 3rYp(7f$~xt-B~d2FCpM+3lU2ָ15;PoCز0g1JvZ҇f Ge'ZZ/UnK ڞi7HRmM^EQP=mXqذ\) \YNȎYM(JjNŴ@ZK+vDCJ7d$EP65#!kWX;"IX2a1i=։Q,S(P\Ҕֹ[ Ps̐Hh–ܞYR*w5%5>()qT`S`BChqj־mPrڸxUao#ȴ>R|p! $z:Sb>U «A;Se\GX֝1Vb ZWlUL VixتN1B v*bN [zoA%FZW}%Zjv?N6JiↈWbK]늧+*4e l*+B~UZ<"BBTQJ? mwE+~UT4b*Z#nz6*djzm)mG5?hSR+mBA; A7Rvw=U⨘D~\>TA{`U?v Zb ;aNܱVkڸPoe=^gSA_Նj 4: +y~uCĝt8EH&.*Aڄt2?6|*洯VIҠj}< ٻMڸtaǨF*'nN*n˗HwF!)MlAW*Qsr ~)3Eln!p A`Hٜ&9ѪDmᾬƢHXՖ~,lDA;1C7WxԞ6pBfj7vBTKx`E![eXIi* ZԌPB()b6c:UZ⮩1"Cr䝱JOLPW_*4$ª2GR:bP wzPb{C+hVb ק(Z_mK|O:UwUj =U6`ho 2;ŬUUc㊯sNTJ­8NG%kzZp+Dbu1VVWG]W|UW*1WbqV늻q]*EqWS|*㊸bWq4. RjUC3$YlWԌQZYt4Ms(\ hR1WN]SLUv*qWt[چZOAl)]CQMC*8fX*J}8w]RqWbll0+T5® )bC^ت5ծ8bF@*N@A[cኺW+qTT25YyW:zadZ6VnSF)?} Ы-zb7 Q+/'A^ v⩶s(0 ֝6ĪO2ŐrcIf$qjM,B`&?F,Y&76qܫƤ";>9&[IQHFOŲsҤ(68(թBmV ӡ+ۮت}d`wP$(W/-Ly<1L/C#WH;ӗ WPŏĦN)^#0Uj *FZ/vT.\(=p"Z,pQKڵVxo/'?]QMhJ8Jִ⣧%1tR, ǧN- [kw(z{|ƊA 4ucN[i'y ʦZɴBMzc qkRXJԞ]IʼnB\$U aP7߿niY%ۖ%\AcqU +a mQ(Xz Zb)qU߾[NLCLUH\UF)N*n PW*A@;Wm|U"ثKNí1V1J֝+ ^aU6hP)W o^UplUR;w[-U)rl\W hp8Z4^%umqaW ZOLUX,l-ŁGs\P}h;4rG2 u}fa$((3Rr)\҇LUD𪢓J⭗$vwc.]A/Z۠*M+{)l6ý1U+V܃ҘBy6›ZK?h|*0 8Zp*bw"[ aTMA:Hʲ`6C^'%Ld-u8b_l28UsO1nLI>'y[* r4 ӮRb7=Ut#jwn>$ѪUQ\-6QjSEG*%x+BFZcPzOjFAJoVFێفVQ-:N #« LUr*zAZSFUo_"WnUJQ*i~RGX$h|K5w…NFh5%G0w^IUZSZ?,IHC9J\wlTLW) צ[۟(=RnUEv' )*&VVpYOa]rEll/>WߗWzRdYR߰W昪"/EJdnj;␾Y$/Y**+ZS4byژm"-M67-Z׮$V*a+,p|qdV5JZT{`d %$] Y/!+_oX? C|$ښ8܊JxHo cbT^, a\EjCJR(x,e1UcQL" w\V"U?˽`fJzy }3qu(R9;TxbCeh%M cj ilD7Rx!ejru's*qWWv*߆*UتLWp}AXz UF*x8b)SNb_ m+T0]W1U2Ě8U]""YC@QK Ĵ#}b|U\1TJӢnX6 T`nCJoRuR L7\1J PZ{qUnDb*ClWZz;o)XE1WdUU}تbU*xWUFNaIPhZW "*)T RT[]χFªzlЫq}@>xC({\:MIP3PEN?)T@mZ R+ #n*1)F ${إ?̯q$(oN^BoN Be eq?`v9unpho6ŬK~m.ĖǏkЎV&rﻱ$zXjfC1CvxRJbxݪ+qJ#M"XH*`kb(˯Nk^Yyc(bܸ*zMmub1r}%å0i)@PzbKDC+mĢW56…P z}Ϧ!"ؑʧodJ:{ұڦ ?;tlWZq8$4jۨciM-Qa5(LEOF8J& bbuw p)K(C ,ZHlHQCޛxb`yD)NWh#o=@$CٗlX)RR:*AQXʴ#(7 J :b '`U\PE~Cl\*F DE'2P/zJJ]hR⨇uFoICi*p5\ \Zێ{)5N۶*(nydoJt۠M R?1UѪjBE7mъ[z1BPlUثU8ڸUè$WMQ*~&(H;6 Pt[Ue<#RJW ?Px=7 ؆"q_U`}zxbuUbpO5yivCjeLZ\†v|R\cE 5P5̾J4h:HtބC?gPM)˒V~\jVثJ n%xBݷVVl ƀvrD=0_0uvGJhALHk9|$SV*4Sp^ oUx BbVԃ6#mc%i@6Ҥ'(^g>J ŵ--yXT|6)L ZH#=+iZVuo DǏz}UƘzU ^t)DR|65(Fvi kl*Lju6̣Z|W"EN*b5wö*IoA;Wy!# 늩 ˾RmCM];zt;qJTUVF]Ӆ4ҝTD3LT3XGa*JvZI M**ԎY&/lT6Qk" )W3hFenZ&d+x,R  tKVEP~zu!ȁ VaB;S u)vbAv‚O#I !`dܓ_,JŘւZ q q#ES'e;4qﲅ(Hk^d-g]eF)|!lEUM>&i6Jn•S;" >A`sJ3CքW}nPObPEHXivXz]Y8۠mږ,FȌH]ㅌT#6CTEEul.'&BqBf'}:yS#v$>dB;0@7VN!ƙJ'xC/T5 ] .텉KZ|,Rib'VJ~8eI=1CD|*| BmM B \OI=0%Z"d HLuHė{cj"XʖVIkJ!CaQ5SC"Yh*6igwDknn, Wq,`)=}K %PN$lk )m#o׊[3+h WT TZoUOT4‡Gg~q J>+ktIBEV m*S$E0R(>I-TRzbbh+_ZcV&Ӂ[\088nO8h0+V*qWb]wLU]]WUUSLP)q"b[Ef!TTbb[*[Rg[ت1U\=by{b@8׮*Z-7VB$ԯjk\i\*]U[ST@ />Yʲ (@cr}TՎ]ueXH&SiڙYfA8^nZǷ )EE02WZU4; bY$=01EȜ5'kH;v0dWUHURUR&Wʼn =+h; (1+-i:G"Dx BKn䕔oE=튖1sㅂRwqB ҦqQ8Ө;qT;24T^zջSN?kŒ>(c֛W@_.fRv,*wŶQ yMx6ńahʆGz wޞ}ҢD`SH*&oZJV_"w%4%@PtImsJ%03B؆vd7żJ{hw"Ůe(0 y*؜Z3]0#alX Xvڸ-Q늕I/B (@*dN[˸ 2FLMO_w'l;8eU+Oj(Hi+WPlc1cILP`y~AV0^So48lu[, (NCR-ANVwUQ~ت*i S"< jl튩H$`U/[ ӯ,8VmQ[\Roc0p$%8h+A|V;A)DhԨ j 97J1~Q9WcȲSbp+VZኪ+#eiE5p*é▀*yyAؐz;ɚ1UHOeEQRaQzo-q:}8qRYzbA&qn:+Uv5Z&bH}8m:\9JXc zl Nv)iUvZV1U8EHOQ['WO|R!Ě\ +ӶUEN .U࠷MJ C e=1J* !j/n5:,=,K(Fz1 d^Q-5HL@v FuUNo[1#j!=I4P|l&Ֆv 1VNH{y㊧bwIne~䩨ˢh G]"H4%ӵrAa.JRnna,"&CZ`-Ky5Zi*RLhկ^آG^h=Ȧ*“AF_(kN*w 6S4&M˿p"MP(v4 IXHZ@5;}8%g@x)⼊eͼI"d+vuF 0;,URr&֗Crm#p@Ą &kјv?1nB飀i dIqi6=n.h̴#P}W+(H_a cWf=qA*W.VcĊ~Rq*N ,hڵ`O ;J-`ni:qcl SOUBTPT|v4U'Է&އm ]zO ;q 6HGyJҵ.^(Aq gNb- )ƈ(l`++G| KZ*!Oo +~A\ I,ByVco;،wy ܺ-7|@{1HO$zCpbeO]@ޣ!,2 =h!,Y9VJOp6ZnPi$,wBQVLs޸UodVvUV4Q\(GJ89T pR5 >OOIOQbgIa ~xPP|XA4;a." RT(1Vڸ(DzBₛo^P5hJAwUQ{rU((#kJOSfmxV*Uث+Xثc ,掠fEGeQdSupA Ry9hwl ')qZ**]ث*U'[Wb⫐-~"iCJ+\qWS v*h8]v*v*qCuZbW l+RUr4 +*_)jWT\F*S6\UcWkki*i튷l v\;VZ*(Oo U=L(\fb:jI;bp*PSn w׮*o)U*LUYӉ 1J*9z,^XYցk@qJ˴]6~# v=6jTl>G /Q1 MOL!!$^lJbhړL *dVcUf?aR|qo<{S:Kܨ b8Ȇ?܍j݅ `{bIՆ bZx%덶P! Wt} w덯 VTRokn2? h V߻ ƭ$ Z$ HVoAJ0vlM:xW.JDZA6k 'ᣔ8 TWz ctbRrNbȠ$/Fw@{ҸhSВ`z3-~XjVND^xYȅ*+NXH. Fm7qCEH_v**/p1C@Zኬc1U]bJjI[zTU6j =%VX㗜P@$}B և| P&GpcĎǷ[qW8=WbSrl늶OO 5# lOa트UĜU*k\UQ=*ۮ*+"sph! ކ9>+UΝt4nO'YWfZLiD(EZ#ۇ%Z:`"VNclRTh7={xUM"zpmb0*Q*Ɏ7B @ָ$#U978RܜPU*$,y=N{*E>W5$FXSBp(+S -gFK4n=2tM{bU rpmr)DNלzd[O_'a`KsHZIjM~6I=0*J0cUdoOn%-zn UĩޣpPqJ ֆZԃMbը+Z`JfUcFf l -ȺS#FWp!5 $Pߦ*MF+At/|TDX*)V &%a )Z.LʶqjwHQZO& A d)Ť*33#=ZidR[4_Ȓ);ʷPb;uH$۟4Ilv֭`OJ{% k (p,Y?7NL*/ý7=ȮAdJH@?Vș&GᆘڤW1 JP PwRRPn?^X7qw,08a{k(Q1` SQj/X&6r,K yCU@ZNLL7/Ex 9.$5$D%jN4%h Pק@(n&d*AoAWb%iROAoHrGF%CknKM(;mVYj@?:t!2M>lH4+A+[vI $IoAW tYPPp0%1GZr䁀-M‹F%e"a<1Z[r];zL ~cpv4>R STE)~&{abU (MN<>XXݧvRL|&qfWG;푓~c d[. bw1 g8{[8[MR Kܡa7#4 =HMXؑZ֙+q1i7$A^ 4Tc#-e|D1լ'RS<_1, ; 9t2٩ž>,qf\@L+@"OLu E,FxjB=.wc#ֱx hiAR RH4[nBzbId (+( CܟȲnİ,T4oSQ#Jom P3ȀTw˻*I?y…k"@q>wژBڝHō-aBF(ZS}U UӷlUR5j&dm^9*-$DP+˖ǮHSvh!zv3od>;;bMH[u1Vv*VViI'تV`WWp4klbXO`:r%Uث}V銺 acw|Ubup+*5­`V[ ҇[]uv\N*𫫁[®W W[PI ^ekfV{RnjvQI9=;|U&,[n*8}3zڸf$ IQSg(SqV㔣zM3P+F4b?1JoHmkB(G6ɛ6[ PJzeNop!e5Z=W#.nN#a.iyG,Jmnmč;RYoI#]> Jq84$9'*8$,ZMR 61iG-r]Wj{}8rUjWo P{F "%ժSd-ۿ )FɴtRq*}2,F\@(eh%TI'c\-mZ$ȱ.\,UEmj~*$HXG* : () H$r*(UUey5r]oT=H*x-5mTk)nnPو5Yme`vq!62riWtdMh2dDRN!%=xnUND >NhqT#(GS !k L4"y1dvc Q#IaOa!97@Cߒ ЃBGE{b jiJW Wig)RdpN<7 !]#T.6,@5~XAa(IPu`:dq. y$qFȖB[wƻEGы+Y5QM`;"*P1KRێ{U3 Ƈ1p٤ EPHӢ,t$PpZ15f (̗Xq4bµ?䍰2Yi}dҫV;h@jhttb$k^uƘ,Gg;db4,T[텈2;Sʓk|<uESn~R ½c PE9&_g<ש#ą㇋U#؞m<,)*|) L@4PiCSl )u7]O U'kM1VىxwP\GqV*UثV⫀,UثV*J qV]nU Wbbb]v*| ئ*iQJbY(CV4'z`WVvZ;b{bUxbvlbk\UqU WAWb]S]WxW!JT|l VU>iU Ud#D/ZE;w%1АةtܐXJ})EX}^X_Bو ^|E:ҢVԟA}zbg)kP j^G1UX*pnkjm^رLiJH{WqRPf,,S;h5)~צ)RK a).T;T$|RMv;mTn̊!ZֻℶeEqJp!eMvS :8d4" ZYYHҕƴmX/cQ^Hv'`M+Qצ2MVphA;xrLJ uwŐF۵6FewŘ#$ŪRL5co^M7րT튞IM[,u!2: PI+RLl$R\u>k%+gcɟ$Ygo7SCCL*ОMG5km+04O0X"v,Qj7b0jqA@=Hq'W|6Pǿl km#h5'v'sp# 1UH(0*E!fSS*IT!BLUF;)4;aVB5b|w銶)O|PR: #O- ZQ[Bm#oLjTƝ;!:![ޝr$&Ij5=%C}UE z*)-3 SB4K`WUxR* v+&ţPNS\:|u8<0TBTWq c2RWCQ ('qև_}qK|>*VJpo 0+T>#)^ ;@~ClṲWu>XP7mT*$=L $BmcCScNçኹx([ *oh[%IA| Ep`U N miܪۿ)mbP`U:㊶Zp+UU ,^AY\z⫃()O֘F@$X4$7dB)^B!LA:$S)rH_ 9t鍭7rG+$/($> T9%p9;l-H+В؃Jʑx`U2{mB3#®VFR=+Aڧ F^YۅZɠ*D5='l$-qF۠]ǐC*XN\RmjN*F*JN UVIQ6}%4FYR@;h6Śce [c-Q񷪮y=>|;GRX*@ y'm jҢ2Ɉc@r+HwԱ@*ilL P=\ , ]Ђ06sDF~ 68E 0nN_Vw9 JJm+2U#*BApXSဳ4RFGWpsK."T1<{CQ ZXo dDZ|,vq$kx*R1)LUVvX+RG^]2{uS.4zPM:~Gi&uR YVmiXRVBi[ PHc`G6DDR714G##mD{E!%;x׾ H>j7 +mTclmcB0ɷ\ Kr,[(So *UN8.,Y5*hkm csRB=6mTR <Tbw۫GH‘1Ehn'm5onA,MIgӒ y7bgA< 3PP и=OL MaQS]+LA0"H $Y Ya?v"N $('ZZ~-aLnn$sV706TU@Z (o4 `V-mW$Fy5$Rd&#4 `4S4#F@ARGZTZFbS9/Qo7W=@E{aJ{ [^W^lU UrƤ8(S?t튵S⫍j5]UثLzRfcV5$ZMqW}8V늵߶*5,Uh8xU0lR, @"w*q@Nr&+CHDٰ<Pw-^RgS!(=U)$#WG'hF݁*/!*7 ܏*ؐ^&8.;q֣qM {B.fdaZ*_QK/CE~5P ۶"tx$oLSJg۰sD$,өBZX&#bH&iC|@*$eaۿӊȓ*\FڡG *nIEzPԌR66a @*A`A[E0S~T#| fj!Gd;xWZHF)LRR:{om~×src ')w4 !F&BQӶ*r kLUs17LPT~Al'+%1AMjk)1VԑӾ*$2*zF4"XP*zU E|=V`WjaDZ? wJj2 @O]STXP\ Q- P ST* L*⦀↙h7ZTL((=}>]i^:k'OV$}8LVn;Ѝ$(*u銭mZ0Mp0^vj4jQ|2,emmns7&-@*k@(7銶)ۮ*:`}'b SM ]Z7ܟ ^BMvޣks\ zUYbxd*H䦄 +EA\DB0܉֛BmnMiO UX zLVݥ Չ-v u +`{āɋ(1Cl0a5]?+ЅZJx}g Vo(hqJ':lUc=x{b)PP> w=A1TCRR!6vjV֞.+ ;TbPTv+7&=!qR'* Ӯ)iȅ'\U*7*H=zZ(r.БO ;W^ Sq![F`Ww8UP …4mPnT~bs$Qƀ{Ӓ|!Vm E_}\3[K$}9n oZY-#zJUjj*7p*ڂw$)nfU@MOڨ*"v4 zUIqVo\?⪨J^UBj; Wr4vU푘w=kf#iZ{C iY I%ZI][f610MnVI ^8FG)AJ | ĵƆmᕇ.\HRr.|rv)#9<~>mL)$ -;beUMG M&%Aڸl2C !iQETb $7t.th URP~iPH"(N&<-¯qnSqVUQA3=Jq'€-$xj•(~ B=[~ H_%ioe zYRFP9&LUUKjI4;UV5:bESs@I8]?vJ@03F |TuW-ptzb0H)Q׭i-#@1UpdRV&…[ ToӁP  Pn+Ȓ߿kVj*vUPlZ{*Gj$VJ > ?a$kצ/({ KJI#2ߴ;mIT iO"W`I B06BO*Doߐ;w]{`b<+?WaZRqU`ƿN*DOF(^PbGdu*-'o|U»bW5%N€o튵ψ4늶%kT*$"6,,E * =m>*lpl>-*To ULↁ(Zi);bǾDF^48z,2sb X(GE"z?L Sc_­߶(hTW>XfRT*=96u+O U.*까FXj P{aWo]CO׊1UYDt®qTEA2,o鸪N+Kr /b=1Uk;I\ !r$SA mKi~RHT7˦obqTE͝ŰF&A$\a튡)hVl1Ux ?ARP 44e*H`A|q_΂h\UrM*|l[*A<])*PJUP zsBj@W~tؚWxS|U1U\UzPo_jaJN=(^iJ7v-խi_G'~ARO(j,zBnAFŸ.VPkJK iw$2Щ?,'EijJ鹔 ~y,5$/Mw~e@xbi ~@$p #(Q ԡ5ެ{VWyx\,SQ@$r@LQfF[!QdV8*/צWDFţ]FP#QMzJ$jU $/$\H!i@ђk;,~yjwN$PS[VX%:+ 5p:z Hؒ Hh)fV]o4hTO*~4ѕ$n6X p+FIS',=qVb*']jZ:b4${m>v*Ur+5i «E; b]LUb*b]v*UUbWbUUZ]op;Ubw]**** \ ⭂qWbp88i]\Up8|*7]LU$݇\U 7\zSp\UqVbmUvQ6ħ~85㊢EF|RG*zֵ}U+YxWjU?Ez⨐F L [* F*¿GlUUVGA⫙R: b|zEy (ip\R4 '&0*o*nO1U*+BUp-Z&YW UH~77>ȑ USu4#~HC4i\»LP>UǮ*'> 5:o6…*0%@Ӿ*; U`*oZScCk iLUomCQ\HWq1W|VǾ*ঽpUz‡킕lR[Pw+OuA銯D+U|$|MI [H@H ȅ(4HNIawsa8ݚ7PTHrHRp% v`}"jYkO^F%![G6kv]CEVWo,/x|d!VȂ#TBɈ<֔kҽ+幖UfveAkv t*u#p-\ : sE3JUIH<:Kq9xUL߹XzҔ]C)uc|UxGqWq㊶mgP !Us,D T S"FJETҾ"QM#-ipmh~V5TRھ58rtw#],{{]^g !*Vyv*!fޘL;QSWE}qJN)TYiOU v E ǥw#*]kJ2MU<݈r@voikp# qrb5$%~<$,g$'JZl(N9-JeY%y"^ۅIH,; HX{XTEEHe+PzwW7r^EBǙP3@EyS$Y#M(p=j)þIQ܌ otGe#+lSh~Lr'a_Պb,UQ*hH#UlRuuʈ &rhA H E >8^TMNꦆm`ҩN*rXbMq[CAz|Uw$27(F~8[unuFvbFhvi,`(Sh:uا64#SCJdi4XIlM q L&ŨVM%B޿9*?w#ň64lJ}0M]k*2(f *=iTG*qSVo#ue(!Ͷ2ڔ6S~|j^pF ʴ#,mBybJW[%܍8eS8mzmK.ɭG%Jr"DTozjWs_MT앭߯|,I_k"8!x5VUXU;W@GdIk21SQS"۱Zm͠♍VH wRjW6!FRKvz6`gHw,9x Ti'V)ؐ|ybDIJ6Nұm˷]}Elы8wbJZ=|3RXDU)-y9yzÉDێ@QAL5H9izҝ<>,PsAj֘/ZЎdTVţ@<@oKFFA1A]~5$J9M<|03?*oOl,mע*UnqlQLs"A>*a‚c'G^SJO)eU4ۦ5CϪևwR-E ZM(ZMv튬a1UU3NT|qU7Z*#ItqUVQkvv*Z­)E*`Ww¨涳~FvJT?.vN[62l UwH8i_R`U~UݽZ#*UUoTFF⧫RU/`K{"U4bxf4>NUثWbv*Vߦ*1WolUb' N* N]\*(s1V wF]DkI; UmqVUVlCNUWmZđc_|)VzbAcMUѓb[ FWp|1MUfE*0nkW%Xʂ*8$mJIŷ4RsV^ULRZP ۊN*VVWn@[VOzWԨLQJ֔ ydvڸ ,k_e; Y6]^H/٦rK/+2hv]6\"[*9.qZdi "ӭ@b~vUO|qs eޝyb1G8 x X`^Vj;mR޸&B*{*" áQ6AшAzMs7w0ژ-˅,;ӾڡK4&r`4V)=銬/ZS*'q5 p%wiOpabU}늮tH(5y^A!kkO| Wr-CSC#4 l>JnO}U#V$*'a.mnhM8 ># BAj<0%#w5W$ثSN^*+VrRzu?^+kӱ؎=?k\xR Dh·)~(sP\(ho'a]OmTD/SVMҀ\ yPO_@s)KbƣFQy*T!܅%AҁH{V[pZT\Z@7%E϶*)DEzS ƕʸV@Iׅ(;TyBG ׮zcNNHء#p\*}9YfN\j-HfMrn1*QK{YQjwRF 2DZL'iMO}y eU &sh8= -!.|PwVn( P T/%r-$Bd&Ø(GJs" ǏZ|_Qs*>آӻ r) i|J v`]J:W*T]`h*v„@@ #(- ؽ }q)>)G㺌U|!_A^3ɾ6&jv02 * IHz[B6 ~vR=&2y"YDRWy'0x@$n|z -es[3Ď.e #S**OQOl4wrZpBą=Ct'e"BDbt0VDާH( zMd0SQ)l%x,텍,ߦ(] B¼F)nq4't1H*!v@'w>CLՅV,J6C\o1 ^ (sN>"a^'j@o2 |Wz+@Nݎ4L+qyipt$x[M{ ktNsD(_pJضL]4@9%ܖr$$?,,AVZ*i*@Pjz 1%iOCr#J[ȠʫXC4; *~x-zG`9b+9 4vME.վ j w8XYE]2GZI*厌 Iz`#] T&|Ev5 nM2-[RS9CȒ=UjRɋvIXzbܚw;IݷL ȍY755DiN P:HomiXLI$jҽ*ԊĖ{bV&$nu.CRJ:nc1M2#%~;S!#m j7'u :t4aW9%i߾Q+{b5+]Tфl–Egy~AZ!*_yRF}X)jŊ] b[&4e") Gzb"yREwq /CPUQCx*$ K.g}Ŋ½lj5vB$hkQS┺Idj7ڄ.Y;ޞ&)#rqQ^xmVjp𻛎> \E@`MXV+6azVSlP5?,U`iS%IrPx8sM9v*32=;Ca*zm {YA@"T@;)CJU0?iW(߮*|UolUamZ늸UEkTp8ӽqU3YLU|ay { mU**?MZAAd5*kC,'l 6 ׭u=;PWl*deFAJ5+KRW$!죢SUzFZI*JT状 =U)eOhlVԝLP2hzoU TWSxpkp&@ƠvmUœh:׊MUaJbmқ WT*`#Z#;`U #ªPjqBe%X"D#N=H SшRTLl#sOꞋZ~8_9۾Ou M&nHL UOM"D&XgL-FSu12Y$"A m>vͭf@Zrc ԧ瑓.ZZF5: RX%RX†fjqT㔌H%pfTP~6mi>U]nHUM+s#bj6RC`} -\(~0)\ r銭9ju^,}xUdV&HbTytؑB ɔ2 Ҙ 8^("Εx|F f *ITDじMXI!rH;|eՁڞ8 誧0qN[%%5c_z䚍t)Bᗕx]4]^*i}A[DC>%=? 2ByLԓ˰VjvĩR N^,P"*ZCOˮR]ot2O@5`Gr>dv(\ U=+QRwo1UƊ؍Sd<ГVZ%Gd(@ђjV ?hqLO7VUH4"sʚCdq`H ::0f$(v"ێ;z) ڄxi kQ!a}OoL8%o)B?wLm)4ȱ˱ @&_anFt,j*xV} b$eJ># P* ~>.}E&N=MxI4 >ڙGڡ; RZ₦p* ڔĖx׮q[Z1Uv`h%OOM{ 4TbdL 9P `J8[ { Uh*sjF>$[WX UO\UaAbUWdF\t4kW-*  $l(XMI-_"ӒGv kǮ+«׶(ojuV5)_q;LUUJ(M;mĐ<;hiZm|U]uqWb*Uث#*]oq>1V[ ǎ*Wkv*Wov*UI\UUثx\8P\ op||UݱWWlU­UP⨫[URGxjZ(!Mz8$YRqV b׶)^=UXJB% 0VGu65ٰ' mb'~U^w߰«T CUtJxaVGQ1{SV?xT9U 81'*КS]*Vs$3!;;T.'!vf]bKhda$~H}B I+SжVձV.d Zz(\)Ce Gh|0*h]TU#irdzݱUvuCiPƝ0b;5[0%Qd*M?V)CSS=%;:["wN'hZ:5jA4fwI5)PzmᅬJn*/"ZN(+Q[jUbUMw*STAABV$}B5TF6 -bX)MDZ kQ!w?gJVⵦZAZOL*J`BBUpit•Aъ,vR0N*"#fScm j{⨘DuQkH K@Tti,כT44VxEBBFRJbOlUc Uh[|+L čU<1U­p+Dw\}⭩:W[\U4QjPt7UV`5%ix~ ^|JP›}R ,R8n\EBG1V;Vl([Nbc*=p*s@XԁҾ$bV{Y H TPN9]#튴 #*"`v>sҿ"$ Pl)a&)p%OO Rׅ:0kp+@׽1W(q |K@W)>;8uW U*A4$T#U$B!r$I'o ƠUI;oV o)i; {`xuS{CF.qZUMk$WbֆڟTWO UVXFUZm,lA*3Rh;{MZRhj b+kHkG ^!M*3bNHS$~P,+75CB#KkGhx= ~]\DGþ*4* W^kΧqLP44Ǯ)q4w7&^Ve`nhkbZDā5$#ӚWcNRq<7銶n⎄#cڸR65Qq7"(hk%|!S@(6{S%׶@;3k(%(=(Ij /`䘲 ҝrM'r4*w$Sf`H: 7v' UW}rUVįZb[6xQEsUy V"["mfz%$p{tIvoAT Rw>إ+MXvjd]qxUXh;lBl!F:w'-qtoLsC޴lBKvq2aƒjJ7ztY^@jAr$l$CFN-~M̷&m̜!cCdX%A)YK JNxRssIfOT֠TP 9*Q8i)DoJ@Qkj.8XJx HĖQ* rHd;|z:!sX^:4ĎdZg43Vھ#@D JIcA`zciJ.nVQF+LI@uҪ23򡨯ZdKlS>r-"bƠcAnso\@ѷ&|;BȲiКeƑm3:dGм2zįqŔrB31b!zCWD ٭9بև$ +Kh*( $qJ[@U[aW煄,L2%H%QUFŕ5daNؠ]QH$+"Z|^q,B*j2~c`tKDdNZʷfn}z !l4r ܛZ[I}=rU]ɔZR@H9 0SF2$2ƀ5 =6[ۜ ZWZ {}8L6\#jr; OZxb; b*7iViLUƸ*aAۧ(w6Th1֟Su.[*lt®Z]ZWR­@kj]SJvZbE7? ǯANتO`VqVVqWWuqV*[LUwAl+bWb Un**'nGw]**b[c\եFSֽWb[⫕_~VU"PBwf=1VDW銭I*VqV4% PPH>*W U`UAA>8Ր"[˅ wpуV,5dPRI@LimUeO]jE;ָI@)$e)˩zF ڍR| j(dݹCJd@ls+[`vJ@)$Q./RS We߽qTM/Q8(\e< pq6jɠ] Jՠ߾rVmUD~&cAL {9#׈'¾8l觩x2!#u8 Dbj? C|__P|"6?1`mLXWF f+G[vOs Q)LdgHV$AP x{#+oEYP,~5Yߑ 7Rw ")C>!Mbה%[ 64ɴK-抭*TPWp n-' @+B}P A"S|aVVzSx[#4qPjXtkG$+`QƔ9Q^BT;apw/U$8Fe(R2Cka2zò\IHǾEV5'O I= piLjԛSAZ5 %es]íi5i)ڎ$W vQ(B3ՍaMnzZJ w4_>iK*VKn:z 84Q9zn1B2.AaZʦ\.Nl|5{5mPU|k(*nTR>kCө+܂*D"U H,,C^1N~,JǙ뱯Qk 51Bo ъJR9:o(RVpaCvqO@(UGmo8/fj7 Q(-h_]v5sF鯹މ\+v1*TSZZu c+eE(QSJ= ӯ@CobUpң\Uā׭{|U 7aWКl+JEZCVmJ^VLUSlh UiClG%b`*i\ĚRn>V\RnlR@Zn<auqVWb[[4یUثX{bHy*lMXl0h%ǸQB1U3\ Zw] U]*UثVW {⮦ث*늻*Uv*[|U1Wbnbb[]MMhbOW…3- ⫸ [늵^aU_E pV%UqFV*„lA…~:`J5UqJBV*@ۧ\*vW/Q^تZbQG8PՊ\HN8hA5' NUO*ؑ v m$q%*D//WaMb7F40zc\ r] IRMe8^Dg`+ت4zOqQH7vHTs⪪TP^qTFgQךT U`փCkSMExc-&mKm[+<~XOí?V*hBQ-g EI(ܸ$qəl `T#z4qTV* P FYħ0XXK#5deQz[)2E﹌u?d JD4+Z|1kqQxZKtNyHR) @ Sj+Rm%"g%W AJQo>9Y:vGj8w[R+F*+H9z>Xa0**|]8CPzH"lGYG#ъ:`U&aU›1B ⪛*n\^P/VaSZSr^*V*߾6S BA+߮)QeA =WzPI.(xH~!JEoqؑ+ .ء!JrbUjM qJІ*7 Eg,()jTlU+Qc=Mh7ޞUIp+Uob?^*WmLUUr i㊧`1QZզU!ZSl(Z#«x$RoBc4\fO˼;x*KMIm:!•W~%c+{Vi#{{Wb)[F}b@4GE^GK`̯"RK/O6Z AڭUR8^UWl\U5jӮZ7~Q⫇Z`JIWNr5>IJ׽p/ĽVz@ 1V#o\[fߥ\U*2R\I&z݅U]7"rO ( k]jѕj !w0oU%\%# hHjw54n$MDO}sr% AhMBkEMrDt q#,;~XR 9P gԆ1Tޝr4JasB(uddmJНvP̠o\UV0;ҵ=Tm8?T"?,z6ز+ZP뷇eD)P\z`JG|R[I,g#|5BJ($Mp2VIʴu; uzu+0Q׶!dP$-oOYHUb: kte p9|J{lJrrJ偒ljB~X^7![sқ[%R"hZ ݈pQ=I Zb)>A49܌Ug^\kh[NVcDAҝUH<h̯g"w)r0$'SJ̍]>W Dhb~m#.4- yD_Bnw)Rf kj5wcjޥU: zg{"!nG n5._x#C`v7eA4/AP!1ۮHCkVG<%$j# Џjva1o 2B3O\,ZY%Bׁ銲/* 伊-<vދ˾FEI39|!=(O5e& wQH*OE0K&$Bd 97JS$rA!i&Z>1%97nA cZ+Qwo zJY$|&UpILF%%=FK[4fׯ\&4m¿gs"=;\*kqJsBPl*+vɃAʔ3 ki #RiL*1Uz ms-4NRh4nUHR]fbXܒw8-i}*l? Uz7VWCL*1TD#I4>_萻ثCj⪑GW[1mW* uN=U54n~UaR=L DD@>F*گB|h PBN}Zֵ?Rzn6ejޣ*4Ť,ۻnĞ!.L ^ Hb=~x"iREj'AOqB@Ƈl*jULUէLUcJbUP j{⫔|5ҘG*ԂE:JqbB:b S֟ Ԍ NV4銮H+@p4'p(⨤fp|jc˧ᆖJ})U>4be=QHr_, qn0%L|RJ>xl @޽S኶ʡJx(ij([F&| lTm ¸i`KTƕ1VG\Um7)p*FmOPqUDǰdRObWNqJC VZza[C"Sߊ:t«jE}bUJ&Ak~c*qOL*z ,W!…UX.ၡt)1<ڜ TLU1.UR2+ʤGLH&*ږ}~<(;m*]̆A1JZP*qU ڴ+Ěo↑AjbMBE S*ƀ6iU&wk ohߏ=tFKj8E'Z| ~U֧a21?[Y9+A) Ƹ_INP(8$UUw {x(EyN{S&滳Qڂm:4C!텍H~6PT0*'*|p2-ip:V,M$̠UP m:̥8߆E!fdTS+AAӃƃjƒʻUsX֛Q}J` ^5O 7RiӶ6NNUb24@]6ڹY0ԇo"bdO4" MI8itؘxn*_E5׭ PZOO|;*?@N[7(~$lil5XAH7IL_IxN#%I i8@>gYʗVQڟDQp#(M+ၘ+/[UOlB&vI 6r$guyʼn(6bQZzLdSA〆k.$FEo[Iag|+O(*ROl4txȯш,gtKJ?$4[ozRJWoN:q 'Mle6k)@zSur$dwP{xI7ƑŲBv#vĔ<< z[t2CR}Ḯ,1z jGzdKt%(O\]RXydDU'oᅁ w7 0VkQ@Ocݽ 8 yZ$02)yDAh+/V0JHRUGjC+#Vk`UbA),^jVBA,(}*TjԚ &Z( JFp.F4­8cXjH#v5N*̍%hmTtӛH7';4^+t$Xl 惷\ ёP|C`Z~bU90V54*⭅%I튭$W|B)BЊ8N*㊴u)D@ PBA;b9\I"Gv*C\Us2mw84ӈ//HT-P|0+Z\F*+F*኷lU}ث\U'svثclVcO[\UƸV銻nXVWb\U׊VUqU7]pUv z-kL*$2<#=`޽!nHZTlE%i5\=U?&!ڣ JԑNA裦koSkw|*Xt],UBy늴Q߶*9q;b$]ZNk9H'EMއ8BBv1 ~~*mcΣaOlUk1~aUJ  Ul݊TX(@RIl:+mabTW7;J 5Lzc7% 4nٟdF8mP!aS$b {}8]:⫐oqUE&1UI*1W+.C_=8hpAV.i^Uʢ$fr~ wE+# ; U=7AONU2ڊ@@JhhXtHv>rx,R$ '⭕=Ǧ*ZƝ*Kw5튨w*2jEwB$䥤4  %Ami+{ POT\-2Lx!v⠞) $bv8Zצ\ҊN H!? cv P*)(-*ZhnE*;\%+ r/ЃRaCgXHBẗnON9\Ħ0+ڣy죖dImolV2ev6qaOZ5A@=!8djUQY%w(,UEWza9"[eƐKR*'nA*]pԁ@~6`Um@GrEpmT:TmKD[V ⨕Eb'(h) aU[?+F mS煑An9q=\W­aVԅpH c=-M\\U(V#Uی|۟DTb{xT)}Td[^ I<ڧN ȥ^+vpĊ LUtwRByDY*iUm۱(vf._l(pj+h 5ڔ696@od /s+Pn|Gze-۵ (s;T!$_YI6'$Jt={хm SRzmN" !2U/s^fP>"?*wTUYD3YM8P[" F.}qvQY'ܓH1c!0^UR6 c*_{n) %VJk1-"=vW l(R^,t##vlYk-8c\wEFQR2)/0*:cH3[ jdF I/)cڛYIBI"{VwkU?[QyFhFc$hɥhN(_C5ZڧzbhH, HJ0IzRzo-UF ír%(Ӊ=|H٠Y *R\#)6 uw "J0Etbxa|&2[4rE?W}o`I]mEW=Ihգ _ dHnnSL/|2J"56%Vba%z)ᅅMbK+ZძeRI3nЊc!I;pEj| At4,A;JgHIoJ#p̕}Ő3BĆT9 |?Ł-GC*Z*4fo*? -RKPŦ"W~RlUSbk^ {bqN8FV⮦SUI#KѐPF]O%ĭYXܱܟmF\:W\BkQBjƽO\ ⭊bou®5®bb*bZ***U*u|U[LUU^ثX;[b]qV*UU\1UTaU| |Ui\*R݊qU UvSJUm<0`S(\⫕NUSG_ k_SANr*V U`r*X,JҬ^,jJ_Q$ V|HEjvV4$B@0ܕO+DJ #Y8V>j@UU[1=;v*bIbĚVg;UhV R)j0+#FT16Q|{ dUjܲ^Xf'cUzuQp܁#RNC ;*UrG 7c* HHtR@N,i m&vE([Gs_ v~`zDvZuާ'aZMW4'z6N*>U޴sNsƔ \!F@: ЈvqTNvKZ'SB~K21.I$6p*ûm(T*I{Y'H/.UR+ӑ'̼XA<:Mt2:f\r13$JW\-PVd77UV6#N(MnUOФP|qKJj+Us)PjFqUV1զaU< \lUb7~ mO| \VbGMun*jLj{B !u#1w,IYUu?,Ws9 ԅ%Za-a*hۀܓANk'RU%NU\RBG WUH &qZEO~をOHfTנi׮ͫ.:/PzKmŠXT]!VKifQh; qFRrǩX҃IqHBHݍh>BTT8V3RnFeR*< RG\YF S)"i^r5%Bj`fr/u˻\Es՘E6maJM#u=*=b$܊#bTd/mһ|,QqHZz$y%zz[AXцʼnFA0E hPf 8 'CĊ#&ʶn8@'pB?mVF* FWKq ʇ: `qOy࣓$/"I\ڄƠL5!vEy f; f(fu$)!t]`f3/#A3@W3E޵_,)=B  I]l Rw'H\!yR>FO68eWV!8DM_"OZҔ‚PȣcCׅ&6EjlEhx-`(SN Q[`iE4p LdK%[n**I6#xⅬ(ZI)p Bqu܍iNkJ Zz 987" Ub \UĚbp+B[SMB"+Es ĭ'z|0%$fbԓ\Ui5VS)*u+bvU1tUkNeъ'k"LUkLP; l;)pqVShZ?F*WR«j:SUD^-H~Ġ3RM{ 5Wb;W!R *z1'j\([M%bt[SUثxGv*UǶ*Uݽ[Z]|Uثx:]pW8{*Wb+|U*A`+NhW\[;b>8t(r⪍Ǣ}U(ڴWU>XcP; •H,@S]$ ;-l„*q*wV*Q- V)D5iAL J) C$i~HxTS_~Q4,^`([R< X+J(Uw*QюCA4U#b1Uh=*E_ZƻW^P@4=*9iR)Qfjت=UlUPQ\*exl7*Jjj$$r:¨ƤB{W?Ju'rqT1(sΝ*rNxb-AJVGV5+Wq=Hb|[W"m i l(+UB-jZR]`BCKp:^m$0_ 콥r jT2ö"`LbS%x4;S]4pQH⊊oJTPf`F"pRmX\]1;W-Uִ늬XJ_5[ZZ`5h0f .M6-4PY7!4#Qo-ghTiʔzbDdp>Ts-\DӼg"UwG h~ Hrq{4TuGV,bL-CFKj*XO5*n$(Y-0Skz+†2|i-"Rӝ xn@b | "Gjb~,umZɋ6䚓po&WՑć|lU)Q_|* Q Ԅ?) C\ YAO~/ZҿXX#qO @^SWjS0:MB^"7j*l,i&hfzb٪珁-h5_WlUfeAQ…'\UaZuGA\"DUc9`)Bz0%hy&#_ $y) ኮyTx1\ BT5I߱x!Gaק\Rkָj惇0Xue+˓3rEA..Y)3#E >]AB%Ll7(n5VҠS / ? +r~qp3 BK^CS_,I 5"+$S|PaF1b5* a7D^途&qU^J [4?eiԜ0T煅E@ٯ*{ҙ W,V`VU1VRIlU(_s9's+vO*-6=|1Wv8ڃ*7* WeMF?ƞ+UDy 9q-mE9D`br2 ԃ"O*-b4트U#ƕ8h+~)XzVWb=1Wv]*㊸h<dkv*Z]~5V⫈!A4NUUثWb⭌UbNvثd+ Vw銺]1V*;bScuqKu  Z]L Ntn, > T} Z\ U"((N*P P W wo?D[ڼ,h@v`$As ~=*])W] N=JaFÐ q+_|E&F^R ,Q4' ,׿cԱR81ʑcƬznEiaU ӁVnGJ.*UA`7…6v^ AL4jơcUcQ̡HÍ "E@]r)LaVؚ*}π” <>NT:D&oi nC{ ՉC| [BA=Tۥ)jҘEu A]5Z((+ָLǹčBqV~ثU#iI'p gsnAZҝz p%ƢY2v52)]apEE**L4DK/ Z֝w„M$tv!Q#B68ig~(4$[WKU&ǩJl@}U B H<9i'U=ˇ`*@Aݺw" PTCJ$`, q>AB7dY+dGW(zCOUQP;ĊPVz XZq~m4drUf$b'ZJtW$UH؃#eS$nk]VXćӯ %ޘ 6+iFU@UT|Q4n.yeWJ($ho 6T vtȲMAEeW$ PSnMRc w%MWV l| !\UGgc *~*_gǩ®GjS  nqUb2j]eU'm(5Z\RVGե z' W$`(+QJ;oV`p}w- $x…^[9U NAOs w=kFˍy톑{3Sv>:V1BI#p&( QqU6J1`J R:⫑OVHE]GbBK30;Z߯A*KT=CZآ׬N"tۦ)ed$|5=p/dR%,|r(SU?A9R6IЍFEp٪lUU@\A {C!ӡڸ'|T*'ZqVQeRK/0*-d=JWJ0wvڟIי#ŊoY*Qoj YÿQT NMEPz^$(8w}3%Ni ee V8 qv$XHYZd>+kJ3HI4 GQ7e$AD"+锅Z(rXWc,w(ƕ@Q+HK) P) H4Y 7tȡa+#m; ,9 YD*c8y< W zf91-Vm `XzRv4rMe昤%׳H$ph1$&HS}*7Q$XU#zuNkp>k-tqM EZbcc6,(pc_1V?v*=p+mb@BJ~8#Tp(F*T_ ([]⪦W%+x(;*~Pc8E P5̴9!5l*)w,]鍪$ ۑBaJ2@K1 T9cR^8*:btIQN>5Z)oJZ4]|UXثxX[q*UثblUkv*]QثW UU qZ*UNt]ʣv*p[]qUá«z`Wbt5-b`C8~Rc^66;b+-TGl*(tVJ(lU }ꤊv4=147)Dۦu5HDR!cvR6~9 Ugz"(pҴ)NbH~ ,,F? -fs+R;(SX^J P (;7U&j@v+>UQQDFZ1VʭI&ۮ)C_ P;]K~\ܸZӾ*ZƽVk* تz«A:uO E߽p+|#i(_iQޑ%'bJI%.0Uj4덋jOnPy@?ىJ0X* ˠOG Ν(1NP͹zwPݟ,姽4\rr]I wSJ"O(`<2%!-snOJ7*Sq-r l|Fv~-Z ~+8)6*b7zV;JXT M@M^ڡQUiI'sԓ-AژyvA+J=qUHy*һ*]Ɔ m_jjo [[h:aVTWz#U9rn;U,8=5*=jO˶6#$ x%^`iRPH=|`]><1V+(\7+- Z{1ӅW*v⫀vc||(-ׅ սJ9(_o! LNܷZL݁t5AJ"C PoEY"8ЁR+P9t<z2& `[ĒPʕLHBDj]m*PQ|Qhf J$}=F*Ҏ!cOJ` =A>Xu,t [3&u9(JtKfh+)0c(W4FvP ֞8eڕN%65 kYWY$w}{E?N9T*PCjX$(+QMnO5sRI?< C[XԠH/R>C"-2 C 0iPp^" H1 ۏ ZS k܀x{c*2#Mb2|4z⫞Y>#p: T3V ,m^F`:4W`61E@qidžA* Xt;xa"[삞c/)pBW| U[z !D>x G7Cӧ\6$[Zpy.PiMSmjBO^ءa#N1B{b{v (zqW6[ҝ%9VCĞ!=*^71IVuvw@ ~P;15U ڤڟ~%cVw'Ձ!ib^M|qUw (h*@iAwJ@5"vZrAkWAqEdY9TAUQQzZ.Gv*rO~ STLuX<{Rmks| j\)ڽL,crr@N"qU7ǢقܒiLPTn`97^.)A ] ? jF!UeKh#bb}8ˈ=C8܍(p^"WTއU27Tދg^b]Fܩ]i.'mY-ޘ(ZP­ZJj H-PJ,RSnLE{l1BiE,lO)\RS\ss›v!,եk0LUtc:U.c*Mi\U1Vj \;{bV^K{+LUL~1U,VErZCUe^p⬥@<@?qIi37"@: ,Q(Y'ZH B Ztb#]P.d|AmPdr$҂UrSъqJrjv'"NQ 0P-JW\U@>(BݖoFgvG%I&׈ۮcI|B PևzK R+LUs5EM(=TKW8+»LUOcDBmcb; /o YS_Uw%>*Z=)ZB w|Un)lu\= nCAUWicV5?IĕQorXU=дtI%XEui΄+dci&u픖йne R=9,6;iCJ֐ȥ;bג׶8tlWUIzQ-ϐ*ӻnH+P~=:Q ^5«V2jhN! ((;=0R#~إYUԝA1+fw;sՉ?N*T!J*XNbB6"7cou92D9Ym O8rJH1W8䡈V:a:kMFȯhd CqUo)h⨻XbvWL GDdT3B^U#uu8XnnͱpPF'~mQ[ 芰$4冘^!E)ӾE<UY8N FHR zȒӈ o۸ȖKe$-E!,ۑbjIZ*x˦)Z*{⪥$DW"~Xix*H؀iQUy{xU<bRYHӈ HEvIWgw5щb(W"n Li6Ooj="ROo AJn!ܒX$z`B,VJ^CNvEwf(UsaȀ~=L=V)$АOQP0ރSX ȌAJz`^"/0[Z/"gaZ-daHa(x] Fc n}(Rxn*q%X)Ͽ)udž*"*O|P#3zJA;QS\U_Ͼ*疀TWjI,1,h>o\$&€S[['>*k%.M$= p> c(5 +遒T A:4bȡnRBHH!8z+]WbS;Mf[i-ӧldR- jWa spp%WAI =0+jWSJ֧mUc TlPڡnVяh ]mޛ BY>*b ."B1CWe<|UoSJ0dP*Mljq h2qSr)P`AGj(Z=x*.`H!: lC2{0%إîf&LPԊU6'*8XU ҴzbbR UbtZ\)\U>Uӹ^#>;M~Rojbb]*኶<|1W~UVqWu[*v*Uv*]wv*1Wmp[[Z]\UpbqW UZZ.[ bI"Q(H4'q8Z>G[ƜwM+5`qTJƈ$l*4R$Iը\P 1Uke%Ln"aiJPB "G) %|rJv$J7P45*VYi!)@ۧa+ĩ ث_㊭C,ؚICåEwQjIゑJBZ w6q« )٩C_q\UJYj)"I㻑 iPZ`U԰ *v~tBSPO㊬)RHU@"vN*]r={*XsJ#XU:||/o%*9_| * Rj(T& )6+A8 TP>=ØX]4|UӆE!PwȲ_spO$5bޚ *z(īM'VZ)OtTioV;|=JWTAk-qVvobf*#k+fVH ЊzcVuvW(KuUƔ26\(w (OriXVח-+dY8qo WTm iUS'7퍭6*[}EB\v6 PU71 aH(k^!v~DSZڝ2F+KZӢ-_ABPM; 1-PjL \HZ5F*(G!//q+)_ œލ]qTW\ RVw‚VeUH5'aⶣy/=0>cu\,RTp2U%u xQw\G#+!$mQ6[Iȣ)1\XRet\q?=r)_}aJo((o7nZzt(mAx%Bq?iIm6  B]VN*+DBn犩Pmiv ^RP] JA`| i˽zSwܗAQ9,{1RNHN+@S"!<ӈsSzakTb)nJ J'UGAUO]-w^* uS￶) G\XLME n 7A6ۨfVb;}PcWԧ>RAH)u+`x㑣ciC=hk(s̥=mh㿰Zv6*5jC[P. 1uS <1CfI$~R*^-R㒞lW!ƛRBT{b̄-: 6n*O+\@cJ<֍iқMqּhp}LUxC fcQ)*˰L qaUV1V†ʯ/=-0%iZ銻ߨ[*v>]b'j U|P{vVbS6*v[|_vq"p@ǡT)\*E+ZaCN)Ӧ*]E5w bUʅ+@x@A-.;LfԍQGdR`|v=Q11,I퀤)`K`Wb]v*኷C* |UZ1V*D|[ PTQVP|Wbm_ Uq1VhvZsL%]^+Z|*`VVWbxث*銮l^ت⮩-[⫪z†I'@EK:W\i\*qUA«jx5A!#S{1- ǓZYMkc[E pFS֛dL9b**bBc#hvnbr zF6 V[ Ec+$nFoKXɘqh`kN؀ƽCʣcOr BWƕjUkZY^5+\R/gZT4aWƇT@4..q o R6n&KeiyCRLQidY#u1BzB"vQ I%,H?vEW⫥iBkq*[aZ Rv8'PWs}l->*WJ3 j|~UsÿBޤW\ЊmSs6TU THwJBLT֝:Wr)V ㊫ '(FA }6‹Ck= FتNimh78u>U|S" ٪;u 2Ph:mBކ*U&ܰfĝjEUbPW| ]ܞثl;R$zbӄsOd`jŔW SimgU.#cюKdcmTfrUA'Nm2]P+T`xoDW *TG|(yT~0%a l-4cMHDO|leJCoCND]*JFS'`1BZإqb`iQ4(aUX$/Ұr U\LF(PS›U!D4;TUkd$(#(H j|U{^Z F;# -N`A6Ӧ;c/%#Փxdnq I Au4,J*I]! XT55RAdn47%N|RJvm}X(4VRW(bQ^?M*Wr~8-0P`x=M4̡kQM*bX̦3ˇnDR+hwxⅡM ;X~#P(<*O E? q1 "ӱHC?;abFolUwµvUhIW0j((?N$hG~Z^$i8U<{xPvqWSu7_ኵB6Vk +^O U@wZܱ\VE\0[r:[WѕOCCh*Pj$b?IyfBvI QՐ6AےjrVp#uF(q51KXdXVU bbSl)?G\U)F 50ڵZ8R H x敦**\U׊vjZZ8gv*aUQ=h=*Rw_l"Hȥ 1V{⭪+b; ZIb]u]ҘWg1Ulbɩ[VŰqSS~аI)s!@+Z6W$ױx=(OJp'Cd1^>`APZR+bʑ]sr8bS0/O )% ԁ|سm}u;VHT- *ִb jdqA 7SYM\6C(78iUd\*z孤1r jqf%H>N쒕1A =m@#Ir~>1A =ԎjP˱0!Z}|ZŃQVኯ:)↙5=GlRAOqQ+V^[T%(9 *BGNNGnXqnVքUtjb$pĚbďU<1V$-*| 7໱銵V T؜Uc{b8*`UۀqJ䎠1aUh(LU :JXoM *;ichrz{ Ui,Uc5)\UM| kNتh|Us]"QI*;i_j X^eb>#ȝ; /ko@1;r pf;Vڣ-ڔVmKB~*0*MV1V׮)^Wb]‹Dje;Z6<\hEAЅiA:aUTe5|UتZLU׭ *HcmıQB+P+Ӯ*MbWzm-*Sn-]5hG@N|( 63:V)c,3EhiHv1C\ٚol*wiY#eP$ӨiUlXrcIjSZZJoWjQq!v>%liotQ ĞÿcKD&acĖ`næ@P5à=PUz`dw QZT3BtEj9#6VVZ"Ѷ?~7rǷ=*#GᅊU_[=E*g6A?( Aۮ)We4Oq% Xo =OtQQ4OޅA#n/1Bj샽)CF[;[V1jMWc1dS[j-6'$kU@I,z EksNGj}SHՑ~:n˱$>'PZv*YmR0ZyS w`JrwL.Z,9 p5;`dE`=QPn\<{v=HC+m+Uޣ ܢqC[IjK&+WR?U^fTRceV5 =֖2:%H"gZtbH G3E@UI, P׊Kz ՐrOPr»劓 ?iAZw)t[HbM쎠k-Q*(qd::%;QAnDKR)LNܙ)E's-A)ue!8Qhi\֟,ZRJ [- RPRh:[XnU$8&}%늯5` W@OJuJiƫU+jH 1U~P׮*A#ojX0[ BEI K3+RM+㊩:bn:Ud \@ FR()^+b[v[*z\UV\U2I?,Uz-qUFi6;`JPhjׯ|(m}. MCӹ[XFh&kփ6=p%bmFh֛}0Mr)l#5LRUثEHp+XUث]W0zW Ka>>Uj0W0UV*D+Ě|CnӧLUa&[8|Uت+]m^I0wޟR++$*^ilI7 sG!Y1AhA%7Ɛ(:Bƪ'э*"heG)#cIF~U(x RPdU Aۙv(E > >Rs)d?;GC:KesB%"Ƹ)|XQ0e:!,@9 rFң#$ݶ9Tv)9OƐU)Ěu֖ICJ9 QJuDc^RN*;(mX݀P|1V`Jp?*zъ\Uɷ;P}IޡEx7'Z!8Jl6$ DZ(! \UDNnAoRv8p]V&F,UvT «4]-JRWݎ*.pG?+2BVZy:u86 3 WTNHuW9TN5)\\M…MF*MWi^ث*+eM7U тOlU!c1޵7|@9SvK*U:$Ҧ), j`튭8wV^E)PijLU,6+B(qK9g ]+Gk)QgrS_>_0e͐tIdmYJƧזn RިoR?'Dd$%7Ϣb?m~ՕCIdUd}߫D?G$uA7\%x?{W%q-ث0%TaBqUz }ª1W/cFH1,pkV"7p%C犴[p%_(R~ } :* JNإ?O~F*zE~'J~X~0C_2Ad_r?[MgQqfտ?+-/,?, ~MF]Wq%U>aUd#0_{ſ$r, o?Ye.!J u\8 bh|%^8p,o,(*1_~…D~_"}:~H?3T!gqCIѾX/>U[^)h}8?h6޷Wa~ ~*8e%1B7OȲQO>M@S~C|E^^.׾_/1>,Zc-7lU{ UHn]\R_N*XPT.> Ul_hbⅇU(\g0%1UHQ䢸l߳g Yp y<&*< ~x0O*]1TVI*UqJfN%ۦ*GW|WKĪ*!H`J+*qՄ)`JUh0*ثRu1Uq- U͊튮>xUݎ*V*?,BmqKV}**ت *UV+LU qVQ]lt[1Vb_%ג}?n%bZqWwWqUV\Uî**늸b}8h. UEX0+k WS^pg$əlT_3Gп_ !S[Ϸ8*Vݷc?$ ~| S^Nu?HQ{bM%*ݷ(~/%5ŗz # P}JZ3)$?o2)WA?,UVE~xoT*v*zUAW/8Rv.*{⪑:C7l _aJcGO(l*BO@n__ARPY/EaU!\W劬~ءq_”!] LUU_V/$?h}fˇ2K%яT[TȪ ZT**CXk犬8[ъVI"2sb{Y8⫓n^PK!ūxx%admin/img/sonaar-music-logo-white.pngnu[PNG  IHDRU!FKiTXtXML:com.adobe.xmp I:IDAThU_ !$$cC0-M"m X7jӑMkFٚ5)E!jDa!R1k/#I㜇{sy{,~ޞ{|@?NPX]]D?G3oէԅ?C]vԇ3 ߩ^\_1lP?X\>̿%tu Ϩ |+%ꟛqj 룽 KCbag'M!NAuj)i%#3 gmUձjeVZlǞ|h䌏Ox>~]o.ux~{ԛaK^dZ=*hԩ]Jǟ2iܥ.RGq-_8zzM_Uuu_}9Mݑev6uR?_ ll'{z=3q:_ݖ+k:z:&>Z^P |sѥ^,3莢({~g1q `4 l @<cȏW;КCТC l%972m*lJџn&'GXO'9t0&"N~hL|ԅ:@kl]&Yz*vG"`0puV7"v fr;x)+8mxkٟC\WYs?#g杦zJbbassudS)Q ̷ڳVёDz:zk ǭ)-ڨ'+ 2 "|xiY}Uѡ |e`"1"v%V Җ+ۻ5r+}OhWRL=VQQE;89.|ӂAeza GHQBRz "gR?]@J6E v06 lGDZ ڈؗE&GĖzVfڀt)^֒L'%LG*&fT_+M &|}.)Y,ϴ3as.i,$gHZA]  ,&6ymYoQu$'?S2aR,WByEV9l8?"6b}>R֏Emmbܝ/Г*U<'"b@D#bVD 0; var postType = $('#mp3-posttype-selection_for_import_file').val(); if (csvFile && postType) { $('.srmp3_csv_button').removeAttr('disabled'); } else { $('.srmp3_csv_button').attr('disabled', 'disabled'); } }); /* * FOR IMPORT MEDIA * */ $('#sort-date').on('click', function(e) { e.preventDefault(); // Modify the URL with orderby and order parameters var url = window.location.href; var urlParams = new URLSearchParams(window.location.search); var currentOrder = urlParams.get('order'); var newOrder = (currentOrder === 'asc') ? 'desc' : 'asc'; url = updateQueryStringParameter(url, 'orderby', 'date'); url = updateQueryStringParameter(url, 'order', newOrder); // Navigate to the updated URL window.location.href = url; }); $('#sort-alphabetically').on('click', function(e) { e.preventDefault(); // Modify the URL with orderby and order parameters var url = window.location.href; var urlParams = new URLSearchParams(window.location.search); var currentOrder = urlParams.get('order'); var newOrder = (currentOrder === 'asc') ? 'desc' : 'asc'; url = updateQueryStringParameter(url, 'orderby', 'title'); url = updateQueryStringParameter(url, 'order', newOrder); // Navigate to the updated URL window.location.href = url; }); // Function to update or add a query string parameter in a URL function updateQueryStringParameter(url, key, value) { var re = new RegExp("([?&])" + key + "=.*?(&|$)", "i"); var separator = url.indexOf('?') !== -1 ? "&" : "?"; if (url.match(re)) { return url.replace(re, '$1' + key + "=" + value + '$2'); } else { return url + separator + key + "=" + value; } } if ($("#mp3-posttype-selection").val() == 'product') { $('#srmp3_tool_importmedia .srmp3_option--producttype').show(); } else { $('#srmp3_tool_importmedia .srmp3_option--producttype').hide(); $('#srmp3_tool_importmedia .srmp3_option--productattribute').hide(); $('#srmp3_tool_importmedia .srmp3_option--wcdownloadfile').hide(); $('#srmp3_tool_importmedia .srmp3_option--defaultprice').hide(); } $(document).on('change', '#mp3-posttype-selection', function (e) { // post type dropdown $('#srmp3_tool_importmedia .srmp3_option--producttype').hide(); $('#srmp3_tool_importmedia .srmp3_option--productattribute').hide(); $('#srmp3_tool_importmedia .srmp3_option--wcdownloadfile').hide(); $('#srmp3_tool_importmedia .srmp3_option--defaultprice').hide(); if ($(this).val() == 'product') { $('#srmp3_tool_importmedia .srmp3_option--producttype').show(); $('#srmp3_tool_importmedia .srmp3_option--wcdownloadfile').show(); $('#srmp3_tool_importmedia .srmp3_option--defaultprice').show(); if ($('#srmp3_woocommerce_product_type_from_import_media').val() == 'variable') { $('#srmp3_tool_importmedia .srmp3_option--productattribute').show(); } } }); $(document).on('change', '#srmp3_woocommerce_product_type_from_import_media', function (e) { // variable vs simple dropdown $('#srmp3_tool_importmedia .srmp3_option--productattribute').hide(); if ($(this).val() == 'variable') { $('#srmp3_tool_importmedia .srmp3_option--productattribute').show(); } }); $(document).on('click', '#srmp3_music_tracks input[type="checkbox"]', function () { var select = false; $('#srmp3_music_tracks input[type="checkbox"]').each(function (index) { if ($(this).prop('checked') === true) { select = true; } }); if (select === true) { $('.srmp3_create_mp3_playlists, .srmp3_create_single_mp3_playlists').removeAttr('disabled'); } else { $('.srmp3_create_mp3_playlists, .srmp3_create_single_mp3_playlists').attr('disabled', 'disabled'); } }); $(document).on('click', '.srmp3_toggle_selection', function (e) { e.preventDefault(); var select = $(this).data('mode') == 'select'; $('#srmp3_music_tracks input:enabled').each(function (i, e) { $(e).prop('checked', select); }); if (select === true) { $('.srmp3_create_mp3_playlists, .srmp3_create_single_mp3_playlists').removeAttr('disabled'); } else { $('.srmp3_create_mp3_playlists, .srmp3_create_single_mp3_playlists').attr('disabled', 'disabled'); } }) $(document).on('keyup keypress', '.srmp3-music-lists .search-box #track-search-input', function (e) { if (e.keyCode === 13) { e.preventDefault(); srmp3_updateMp3Playlists(1, e.target.value) } }) $(document).on('click', '#track-pagination .tablenav-pages .pagination-links a', function (e) { e.preventDefault(); var paged = 1 var page = e.currentTarget.href.match(/paged=(\d+)/) if (page && page[1]) { paged = page[1] } srmp3_updateMp3Playlists(paged) }) $(document).on('keyup keypress', '#track-pagination #current-page-selector', function (e) { if (e.keyCode === 13) { e.preventDefault(); srmp3_updateMp3Playlists(e.target.value) } }) $(document).on('click', '.srmp3_create_mp3_playlists', function (e) { /* Create SEVERAL posts */ e.preventDefault(); if ($('#mp3-posttype-selection').val() == '') { $('html, body').animate({ scrollTop: $("#srmp3-post-type-selection").offset().top - 50 }, 1000); return false; } var type = 'tracks'; var index = 0, itemsCount = $('#srmp3_music_tracks input:checked').length, progress = $('.srmp3_products_progress_tracks'); var post_type = $('#mp3-posttype-selection').val(); progress.val(index).prop('max', itemsCount).show(); $('#srmp3_music_tracks input:checked').each(function (i, e) { var postData = { action: 'srmp3_create_mp3_playlists', post_type: $('#mp3-posttype-selection').val(), product_type: $('#srmp3_woocommerce_product_type_from_import_media').val(), product_download: $('#srmp3_woocommerce_wcdownloadfile_from_import_media').val(), id: $(e).val(), price: $('#srmp3_woocommerce_price_tracks_from_import_media').val(), tracks: $(e).data('tracks'), title: $(e).data('title'), taxonomy: $('#srmp3_woocommerce_product_attribute_from_import_media').val(), nonce: sonaar_admin_ajax.ajax.ajax_nonce, } $.ajax({ url: sonaar_admin_ajax.ajax.ajax_url, type: 'post', data: postData, success: function (data) { }, }) .then(result => { index++; progress.val(index); $(e).prop('checked', false).prop('disabled', true).next().toggleClass('disabled', true); if (index == itemsCount) { progress.parent().append($('

', { class: 'notice updated is-dismissible' }).html($('

').html(itemsCount + ' ' + post_type + ' drafts successfully created'))); } }) }) }); $(document).on('click', '.srmp3_create_single_mp3_playlists', function (e) { /* Create ONE post only with multiple track*/ e.preventDefault(); if ($('#mp3-posttype-selection').val() == '') { $('html, body').animate({ scrollTop: $("#srmp3-post-type-selection").offset().top - 50 }, 1000); return false; } var mp3_lists_id = []; var type = 'tracks'; var index = 0, itemsCount = 1, progress = $('.srmp3_products_progress_tracks'); var post_type = $('#mp3-posttype-selection').val(); progress.val(index).prop('max', itemsCount).show(); $('#srmp3_music_tracks input:checked').each(function (i, e) { mp3_lists_id.push($(e).val()); }); var postData = { action: 'srmp3_create_single_mp3_playlists', post_type: $('#mp3-posttype-selection').val(), product_type: $('#srmp3_woocommerce_product_type_from_import_media').val(), product_download: $('#srmp3_woocommerce_wcdownloadfile_from_import_media').val(), mp3_id: JSON.stringify(mp3_lists_id), price: $('#srmp3_woocommerce_price_tracks_from_import_media').val(), taxonomy: $('#srmp3_woocommerce_product_attribute_from_import_media').val(), nonce: sonaar_admin_ajax.ajax.ajax_nonce, } $.ajax({ url: sonaar_admin_ajax.ajax.ajax_url, type: 'post', data: postData, success: function (data) { }, }) .then(result => { index++; progress.val(index); $(e).prop('checked', false).prop('disabled', true).next().toggleClass('disabled', true); if (index == itemsCount) { progress.parent().append($('

', { class: 'notice updated is-dismissible' }).html($('

').html(itemsCount + ' ' + post_type + ' draft successfully created'))); } }) }); /* Create Single MP3 Play Lists with multiple track*/ $(document).on('click', '.srmp3_create_single_mp3_playlists_from_import_file', function (e) { e.preventDefault(); const csvFileURL = document.getElementById('csv_file').files[0]; var post_type = $('#mp3-posttype-selection_for_import_file').val(); var multiple = $('#mp3-importmultiple-selection_for_import_file').val(); // Get the data-multiple attribute value if (!csvFileURL || post_type == '') { return; } var form_data = new FormData(); form_data.append('action', 'srmp3_create_single_mp3_playlists_from_import_file'); form_data.append('nonce', sonaar_admin_ajax.ajax.ajax_nonce); form_data.append('file', csvFileURL); form_data.append('post_type', post_type); form_data.append('product_type', $('#srmp3_woocommerce_product_type_from_import_file').val()); form_data.append('price', $('#srmp3_woocommerce_price_tracks_from_import_file').val()); form_data.append('taxonomy', $('#srmp3_woocommerce_product_attribute_from_import_file').val()); form_data.append('multiple', multiple); $.ajax({ contentType: false, processData: false, url: sonaar_admin_ajax.ajax.ajax_url, type: 'post', data: form_data, beforeSend: function() { $('#message').html('Uploading CSV file...'); }, success: function(data) { console.log(data.playlists); //var message = JSON.stringify(data.message, null, 2); //$('#message').html(message); $('.srmp3_importfile_notice').remove(); //$('#message').parent().append($('

', { class: 'srmp3_importfile_notice notice updated is-dismissible' }).html($('

').html(data.itemsCount + ' playlist drafts created'))); var post_type_url = window.location.origin + "/wp-admin/edit.php?post_type=" + post_type; $('#message').parent().append($('

', { class: 'srmp3_importfile_notice notice updated is-dismissible' }).html($('

').html(data.itemsCount + ' playlist drafts created. View them here'))); $('#message').html(data.message); if(data.success){ $('#message').css('color', 'green'); }else{ $('#message').css('color', 'red'); } }, error: function(data,jqXHR, textStatus, errorThrown) { $('#message').html(data['message']); $('#message').css('color', 'red'); } }) }); set_sticky_spectro_field_visibility(); // set field visibility on page load $(document).on('change', '#sticky_spectro_style', function (e) { set_sticky_spectro_field_visibility(); }); $(document).on('change', '.srmp3-music-lists-per-page', function (e) { if ($(this).val() !== '') { var form = $('form.srmp3-music-pagination-form'); var action = form.attr('action'); // Get the selected value var perPage = $(this).val(); // Extract the current query parameters from the URL var url = new URL(action); var params = new URLSearchParams(url.search); // Set the 'per_page' parameter to the selected value params.set('per_page', perPage); // Create the updated form action URL with the modified query parameters var newAction = url.pathname + '?' + params.toString(); console.log('Updated form action:', newAction); // Add this line // Update the form action form.attr('action', newAction); // Submit the form form.submit(); } }); }); function set_sticky_spectro_field_visibility() { // set field visibility in CMB2 plugin settings if (typeof document.getElementById("sticky_spectro_style") == 'undefined' || document.getElementById("sticky_spectro_style") == null) { return; } var x = document.getElementById("sticky_spectro_style").value; if (x == "none") { $('.srmp3_spectro_field').addClass('srmp3_hide'); } else { $('.srmp3_spectro_field').removeClass('srmp3_hide'); } } })(jQuery); function eraseSonaarCookie() { jQuery(document).on('click', 'body.album_page_iron_music_player #submit-cmb, body.sr_playlist_page_iron_music_player #submit-cmb', function () { document.cookie = 'sonaar_mp3_player_settings' + '=; Max-Age=-99999999; path=/'; document.cookie = 'sonaar_mp3_player_time' + '=; Max-Age=-99999999; path=/'; }) } function cmb2LinkOption(selectItem) { let id = jQuery(selectItem).find('select').attr('id') selectorValue = document.getElementById(id).value; if (selectorValue == 'popup') { jQuery(selectItem).parents('.cmb-repeat-row').find('.store-link, .store-target').hide(); jQuery(selectItem).parents('.cmb-repeat-row').find('.store-content').show(); } else { jQuery(selectItem).parents('.cmb-repeat-row').find('.store-content').hide(); jQuery(selectItem).parents('.cmb-repeat-row').find('.store-link, .store-target').show(); } } PK!JХadmin/js/select2.min.jsnu[;;;/*! Select2 4.1.0-beta.1 | https://github.com/select2/select2/blob/master/LICENSE.md */ !function(n){"function"==typeof define&&define.amd?define(["jquery"],n):"object"==typeof module&&module.exports?module.exports=function(e,t){return void 0===t&&(t="undefined"!=typeof window?require("jquery"):require("jquery")(e)),n(t),t}:n(jQuery)}(function(u){var e=function(){if(u&&u.fn&&u.fn.select2&&u.fn.select2.amd)var e=u.fn.select2.amd;var t,n,i,h,s,o,f,g,m,v,y,_,r,a,b;function w(e,t){return r.call(e,t)}function l(e,t){var n,i,r,s,o,a,l,c,u,d,p,h=t&&t.split("/"),f=y.map,g=f&&f["*"]||{};if(e){for(o=(e=e.split("/")).length-1,y.nodeIdCompat&&b.test(e[o])&&(e[o]=e[o].replace(b,"")),"."===e[0].charAt(0)&&h&&(e=h.slice(0,h.length-1).concat(e)),u=0;u":">",'"':""","'":"'","/":"/"};return"string"!=typeof e?e:String(e).replace(/[&<>"'\/\\]/g,function(e){return t[e]})},r.__cache={};var n=0;return r.GetUniqueElementId=function(e){var t=e.getAttribute("data-select2-id");return null!=t||(t=e.id?"select2-data-"+e.id:"select2-data-"+(++n).toString()+"-"+r.generateChars(4),e.setAttribute("data-select2-id",t)),t},r.StoreData=function(e,t,n){var i=r.GetUniqueElementId(e);r.__cache[i]||(r.__cache[i]={}),r.__cache[i][t]=n},r.GetData=function(e,t){var n=r.GetUniqueElementId(e);return t?r.__cache[n]&&null!=r.__cache[n][t]?r.__cache[n][t]:s(e).data(t):r.__cache[n]},r.RemoveData=function(e){var t=r.GetUniqueElementId(e);null!=r.__cache[t]&&delete r.__cache[t],e.removeAttribute("data-select2-id")},r.copyNonInternalCssClasses=function(e,t){var n=e.getAttribute("class").trim().split(/\s+/);n=n.filter(function(e){return 0===e.indexOf("select2-")});var i=t.getAttribute("class").trim().split(/\s+/);i=i.filter(function(e){return 0!==e.indexOf("select2-")});var r=n.concat(i);e.setAttribute("class",r.join(" "))},r}),e.define("select2/results",["jquery","./utils"],function(h,f){function i(e,t,n){this.$element=e,this.data=n,this.options=t,i.__super__.constructor.call(this)}return f.Extend(i,f.Observable),i.prototype.render=function(){var e=h('

    ');return this.options.get("multiple")&&e.attr("aria-multiselectable","true"),this.$results=e},i.prototype.clear=function(){this.$results.empty()},i.prototype.displayMessage=function(e){var t=this.options.get("escapeMarkup");this.clear(),this.hideLoading();var n=h(''),i=this.options.get("translations").get(e.message);n.append(t(i(e.args))),n[0].className+=" select2-results__message",this.$results.append(n)},i.prototype.hideMessages=function(){this.$results.find(".select2-results__message").remove()},i.prototype.append=function(e){this.hideLoading();var t=[];if(null!=e.results&&0!==e.results.length){e.results=this.sort(e.results);for(var n=0;n",{class:"select2-results__options select2-results__options--nested"});p.append(l),o.append(a),o.append(p)}else this.template(e,t);return f.StoreData(t,"data",e),t},i.prototype.bind=function(t,e){var l=this,n=t.id+"-results";this.$results.attr("id",n),t.on("results:all",function(e){l.clear(),l.append(e.data),t.isOpen()&&(l.setClasses(),l.highlightFirstItem())}),t.on("results:append",function(e){l.append(e.data),t.isOpen()&&l.setClasses()}),t.on("query",function(e){l.hideMessages(),l.showLoading(e)}),t.on("select",function(){t.isOpen()&&(l.setClasses(),l.options.get("scrollAfterSelect")&&l.highlightFirstItem())}),t.on("unselect",function(){t.isOpen()&&(l.setClasses(),l.options.get("scrollAfterSelect")&&l.highlightFirstItem())}),t.on("open",function(){l.$results.attr("aria-expanded","true"),l.$results.attr("aria-hidden","false"),l.setClasses(),l.ensureHighlightVisible()}),t.on("close",function(){l.$results.attr("aria-expanded","false"),l.$results.attr("aria-hidden","true"),l.$results.removeAttr("aria-activedescendant")}),t.on("results:toggle",function(){var e=l.getHighlightedResults();0!==e.length&&e.trigger("mouseup")}),t.on("results:select",function(){var e=l.getHighlightedResults();if(0!==e.length){var t=f.GetData(e[0],"data");e.hasClass("select2-results__option--selected")?l.trigger("close",{}):l.trigger("select",{data:t})}}),t.on("results:previous",function(){var e=l.getHighlightedResults(),t=l.$results.find(".select2-results__option--selectable"),n=t.index(e);if(!(n<=0)){var i=n-1;0===e.length&&(i=0);var r=t.eq(i);r.trigger("mouseenter");var s=l.$results.offset().top,o=r.offset().top,a=l.$results.scrollTop()+(o-s);0===i?l.$results.scrollTop(0):o-s<0&&l.$results.scrollTop(a)}}),t.on("results:next",function(){var e=l.getHighlightedResults(),t=l.$results.find(".select2-results__option--selectable"),n=t.index(e)+1;if(!(n>=t.length)){var i=t.eq(n);i.trigger("mouseenter");var r=l.$results.offset().top+l.$results.outerHeight(!1),s=i.offset().top+i.outerHeight(!1),o=l.$results.scrollTop()+s-r;0===n?l.$results.scrollTop(0):rthis.$results.outerHeight()||s<0)&&this.$results.scrollTop(r)}},i.prototype.template=function(e,t){var n=this.options.get("templateResult"),i=this.options.get("escapeMarkup"),r=n(e,t);null==r?t.style.display="none":"string"==typeof r?t.innerHTML=i(r):h(t).append(r)},i}),e.define("select2/keys",[],function(){return{BACKSPACE:8,TAB:9,ENTER:13,SHIFT:16,CTRL:17,ALT:18,ESC:27,SPACE:32,PAGE_UP:33,PAGE_DOWN:34,END:35,HOME:36,LEFT:37,UP:38,RIGHT:39,DOWN:40,DELETE:46}}),e.define("select2/selection/base",["jquery","../utils","../keys"],function(n,i,r){function s(e,t){this.$element=e,this.options=t,s.__super__.constructor.call(this)}return i.Extend(s,i.Observable),s.prototype.render=function(){var e=n('');return this._tabindex=0,null!=i.GetData(this.$element[0],"old-tabindex")?this._tabindex=i.GetData(this.$element[0],"old-tabindex"):null!=this.$element.attr("tabindex")&&(this._tabindex=this.$element.attr("tabindex")),e.attr("title",this.$element.attr("title")),e.attr("tabindex",this._tabindex),e.attr("aria-disabled","false"),this.$selection=e},s.prototype.bind=function(e,t){var n=this,i=e.id+"-results";this.container=e,this.$selection.on("focus",function(e){n.trigger("focus",e)}),this.$selection.on("blur",function(e){n._handleBlur(e)}),this.$selection.on("keydown",function(e){n.trigger("keypress",e),e.which===r.SPACE&&e.preventDefault()}),e.on("results:focus",function(e){n.$selection.attr("aria-activedescendant",e.data._resultId)}),e.on("selection:update",function(e){n.update(e.data)}),e.on("open",function(){n.$selection.attr("aria-expanded","true"),n.$selection.attr("aria-owns",i),n._attachCloseHandler(e)}),e.on("close",function(){n.$selection.attr("aria-expanded","false"),n.$selection.removeAttr("aria-activedescendant"),n.$selection.removeAttr("aria-owns"),n.$selection.trigger("focus"),n._detachCloseHandler(e)}),e.on("enable",function(){n.$selection.attr("tabindex",n._tabindex),n.$selection.attr("aria-disabled","false")}),e.on("disable",function(){n.$selection.attr("tabindex","-1"),n.$selection.attr("aria-disabled","true")})},s.prototype._handleBlur=function(e){var t=this;window.setTimeout(function(){document.activeElement==t.$selection[0]||n.contains(t.$selection[0],document.activeElement)||t.trigger("blur",e)},1)},s.prototype._attachCloseHandler=function(e){n(document.body).on("mousedown.select2."+e.id,function(e){var t=n(e.target).closest(".select2");n(".select2.select2-container--open").each(function(){this!=t[0]&&i.GetData(this,"element").select2("close")})})},s.prototype._detachCloseHandler=function(e){n(document.body).off("mousedown.select2."+e.id)},s.prototype.position=function(e,t){t.find(".selection").append(e)},s.prototype.destroy=function(){this._detachCloseHandler(this.container)},s.prototype.update=function(e){throw new Error("The `update` method must be defined in child classes.")},s.prototype.isEnabled=function(){return!this.isDisabled()},s.prototype.isDisabled=function(){return this.options.get("disabled")},s}),e.define("select2/selection/single",["jquery","./base","../utils","../keys"],function(e,t,n,i){function r(){r.__super__.constructor.apply(this,arguments)}return n.Extend(r,t),r.prototype.render=function(){var e=r.__super__.render.call(this);return e[0].classList.add("select2-selection--single"),e.html(''),e},r.prototype.bind=function(t,e){var n=this;r.__super__.bind.apply(this,arguments);var i=t.id+"-container";this.$selection.find(".select2-selection__rendered").attr("id",i).attr("role","textbox").attr("aria-readonly","true"),this.$selection.attr("aria-labelledby",i),this.$selection.on("mousedown",function(e){1===e.which&&n.trigger("toggle",{originalEvent:e})}),this.$selection.on("focus",function(e){}),this.$selection.on("blur",function(e){}),t.on("focus",function(e){t.isOpen()||n.$selection.trigger("focus")})},r.prototype.clear=function(){var e=this.$selection.find(".select2-selection__rendered");e.empty(),e.removeAttr("title")},r.prototype.display=function(e,t){var n=this.options.get("templateSelection");return this.options.get("escapeMarkup")(n(e,t))},r.prototype.selectionContainer=function(){return e("")},r.prototype.update=function(e){if(0!==e.length){var t=e[0],n=this.$selection.find(".select2-selection__rendered"),i=this.display(t,n);n.empty().append(i);var r=t.title||t.text;r?n.attr("title",r):n.removeAttr("title")}else this.clear()},r}),e.define("select2/selection/multiple",["jquery","./base","../utils"],function(r,e,d){function s(e,t){s.__super__.constructor.apply(this,arguments)}return d.Extend(s,e),s.prototype.render=function(){var e=s.__super__.render.call(this);return e[0].classList.add("select2-selection--multiple"),e.html('
      '),e},s.prototype.bind=function(e,t){var i=this;s.__super__.bind.apply(this,arguments);var n=e.id+"-container";this.$selection.find(".select2-selection__rendered").attr("id",n),this.$selection.on("click",function(e){i.trigger("toggle",{originalEvent:e})}),this.$selection.on("click",".select2-selection__choice__remove",function(e){if(!i.isDisabled()){var t=r(this).parent(),n=d.GetData(t[0],"data");i.trigger("unselect",{originalEvent:e,data:n})}}),this.$selection.on("keydown",".select2-selection__choice__remove",function(e){i.isDisabled()||e.stopPropagation()})},s.prototype.clear=function(){var e=this.$selection.find(".select2-selection__rendered");e.empty(),e.removeAttr("title")},s.prototype.display=function(e,t){var n=this.options.get("templateSelection");return this.options.get("escapeMarkup")(n(e,t))},s.prototype.selectionContainer=function(){return r('
    • ')},s.prototype.update=function(e){if(this.clear(),0!==e.length){for(var t=[],n=this.$selection.find(".select2-selection__rendered").attr("id")+"-choice-",i=0;i');r.attr("title",i()),r.attr("aria-label",i()),r.attr("aria-describedby",n),a.StoreData(r[0],"data",t),this.$selection.prepend(r)}},e}),e.define("select2/selection/search",["jquery","../utils","../keys"],function(i,l,c){function e(e,t,n){e.call(this,t,n)}return e.prototype.render=function(e){var t=i('');this.$searchContainer=t,this.$search=t.find("input"),this.$search.prop("autocomplete",this.options.get("autocomplete"));var n=e.call(this);return this._transferTabIndex(),n.append(this.$searchContainer),n},e.prototype.bind=function(e,t,n){var i=this,r=t.id+"-results",s=t.id+"-container";e.call(this,t,n),i.$search.attr("aria-describedby",s),t.on("open",function(){i.$search.attr("aria-controls",r),i.$search.trigger("focus")}),t.on("close",function(){i.$search.val(""),i.resizeSearch(),i.$search.removeAttr("aria-controls"),i.$search.removeAttr("aria-activedescendant"),i.$search.trigger("focus")}),t.on("enable",function(){i.$search.prop("disabled",!1),i._transferTabIndex()}),t.on("disable",function(){i.$search.prop("disabled",!0)}),t.on("focus",function(e){i.$search.trigger("focus")}),t.on("results:focus",function(e){e.data._resultId?i.$search.attr("aria-activedescendant",e.data._resultId):i.$search.removeAttr("aria-activedescendant")}),this.$selection.on("focusin",".select2-search--inline",function(e){i.trigger("focus",e)}),this.$selection.on("focusout",".select2-search--inline",function(e){i._handleBlur(e)}),this.$selection.on("keydown",".select2-search--inline",function(e){if(e.stopPropagation(),i.trigger("keypress",e),i._keyUpPrevented=e.isDefaultPrevented(),e.which===c.BACKSPACE&&""===i.$search.val()){var t=i.$selection.find(".select2-selection__choice").last();if(0this.maximumInputLength?this.trigger("results:message",{message:"inputTooLong",args:{maximum:this.maximumInputLength,input:t.term,params:t}}):e.call(this,t,n)},e}),e.define("select2/data/maximumSelectionLength",[],function(){function e(e,t,n){this.maximumSelectionLength=n.get("maximumSelectionLength"),e.call(this,t,n)}return e.prototype.bind=function(e,t,n){var i=this;e.call(this,t,n),t.on("select",function(){i._checkIfMaximumSelected()})},e.prototype.query=function(e,t,n){var i=this;this._checkIfMaximumSelected(function(){e.call(i,t,n)})},e.prototype._checkIfMaximumSelected=function(e,n){var i=this;this.current(function(e){var t=null!=e?e.length:0;0=i.maximumSelectionLength?i.trigger("results:message",{message:"maximumSelected",args:{maximum:i.maximumSelectionLength}}):n&&n()})},e}),e.define("select2/dropdown",["jquery","./utils"],function(t,e){function n(e,t){this.$element=e,this.options=t,n.__super__.constructor.call(this)}return e.Extend(n,e.Observable),n.prototype.render=function(){var e=t('');return e.attr("dir",this.options.get("dir")),this.$dropdown=e},n.prototype.bind=function(){},n.prototype.position=function(e,t){},n.prototype.destroy=function(){this.$dropdown.remove()},n}),e.define("select2/dropdown/search",["jquery"],function(s){function e(){}return e.prototype.render=function(e){var t=e.call(this),n=s('');return this.$searchContainer=n,this.$search=n.find("input"),this.$search.prop("autocomplete",this.options.get("autocomplete")),t.prepend(n),t},e.prototype.bind=function(e,t,n){var i=this,r=t.id+"-results";e.call(this,t,n),this.$search.on("keydown",function(e){i.trigger("keypress",e),i._keyUpPrevented=e.isDefaultPrevented()}),this.$search.on("input",function(e){s(this).off("keyup")}),this.$search.on("keyup input",function(e){i.handleSearch(e)}),t.on("open",function(){i.$search.attr("tabindex",0),i.$search.attr("aria-controls",r),i.$search.trigger("focus"),window.setTimeout(function(){i.$search.trigger("focus")},0)}),t.on("close",function(){i.$search.attr("tabindex",-1),i.$search.removeAttr("aria-controls"),i.$search.removeAttr("aria-activedescendant"),i.$search.val(""),i.$search.trigger("blur")}),t.on("focus",function(){t.isOpen()||i.$search.trigger("focus")}),t.on("results:all",function(e){null!=e.query.term&&""!==e.query.term||(i.showSearch(e)?i.$searchContainer[0].classList.remove("select2-search--hide"):i.$searchContainer[0].classList.add("select2-search--hide"))}),t.on("results:focus",function(e){e.data._resultId?i.$search.attr("aria-activedescendant",e.data._resultId):i.$search.removeAttr("aria-activedescendant")})},e.prototype.handleSearch=function(e){if(!this._keyUpPrevented){var t=this.$search.val();this.trigger("query",{term:t})}this._keyUpPrevented=!1},e.prototype.showSearch=function(e,t){return!0},e}),e.define("select2/dropdown/hidePlaceholder",[],function(){function e(e,t,n,i){this.placeholder=this.normalizePlaceholder(n.get("placeholder")),e.call(this,t,n,i)}return e.prototype.append=function(e,t){t.results=this.removePlaceholder(t.results),e.call(this,t)},e.prototype.normalizePlaceholder=function(e,t){return"string"==typeof t&&(t={id:"",text:t}),t},e.prototype.removePlaceholder=function(e,t){for(var n=t.slice(0),i=t.length-1;0<=i;i--){var r=t[i];this.placeholder.id===r.id&&n.splice(i,1)}return n},e}),e.define("select2/dropdown/infiniteScroll",["jquery"],function(n){function e(e,t,n,i){this.lastParams={},e.call(this,t,n,i),this.$loadingMore=this.createLoadingMore(),this.loading=!1}return e.prototype.append=function(e,t){this.$loadingMore.remove(),this.loading=!1,e.call(this,t),this.showLoadingMore(t)&&(this.$results.append(this.$loadingMore),this.loadMoreIfNeeded())},e.prototype.bind=function(e,t,n){var i=this;e.call(this,t,n),t.on("query",function(e){i.lastParams=e,i.loading=!0}),t.on("query:append",function(e){i.lastParams=e,i.loading=!0}),this.$results.on("scroll",this.loadMoreIfNeeded.bind(this))},e.prototype.loadMoreIfNeeded=function(){var e=n.contains(document.documentElement,this.$loadingMore[0]);if(!this.loading&&e){var t=this.$results.offset().top+this.$results.outerHeight(!1);this.$loadingMore.offset().top+this.$loadingMore.outerHeight(!1)<=t+50&&this.loadMore()}},e.prototype.loadMore=function(){this.loading=!0;var e=n.extend({},{page:1},this.lastParams);e.page++,this.trigger("query:append",e)},e.prototype.showLoadingMore=function(e,t){return t.pagination&&t.pagination.more},e.prototype.createLoadingMore=function(){var e=n('
    • '),t=this.options.get("translations").get("loadingMore");return e.html(t(this.lastParams)),e},e}),e.define("select2/dropdown/attachBody",["jquery","../utils"],function(f,a){function e(e,t,n){this.$dropdownParent=f(n.get("dropdownParent")||document.body),e.call(this,t,n)}return e.prototype.bind=function(e,t,n){var i=this;e.call(this,t,n),t.on("open",function(){i._showDropdown(),i._attachPositioningHandler(t),i._bindContainerResultHandlers(t)}),t.on("close",function(){i._hideDropdown(),i._detachPositioningHandler(t)}),this.$dropdownContainer.on("mousedown",function(e){e.stopPropagation()})},e.prototype.destroy=function(e){e.call(this),this.$dropdownContainer.remove()},e.prototype.position=function(e,t,n){t.attr("class",n.attr("class")),t[0].classList.remove("select2"),t[0].classList.add("select2-container--open"),t.css({position:"absolute",top:-999999}),this.$container=n},e.prototype.render=function(e){var t=f(""),n=e.call(this);return t.append(n),this.$dropdownContainer=t},e.prototype._hideDropdown=function(e){this.$dropdownContainer.detach()},e.prototype._bindContainerResultHandlers=function(e,t){if(!this._containerResultsHandlersBound){var n=this;t.on("results:all",function(){n._positionDropdown(),n._resizeDropdown()}),t.on("results:append",function(){n._positionDropdown(),n._resizeDropdown()}),t.on("results:message",function(){n._positionDropdown(),n._resizeDropdown()}),t.on("select",function(){n._positionDropdown(),n._resizeDropdown()}),t.on("unselect",function(){n._positionDropdown(),n._resizeDropdown()}),this._containerResultsHandlersBound=!0}},e.prototype._attachPositioningHandler=function(e,t){var n=this,i="scroll.select2."+t.id,r="resize.select2."+t.id,s="orientationchange.select2."+t.id,o=this.$container.parents().filter(a.hasScroll);o.each(function(){a.StoreData(this,"select2-scroll-position",{x:f(this).scrollLeft(),y:f(this).scrollTop()})}),o.on(i,function(e){var t=a.GetData(this,"select2-scroll-position");f(this).scrollTop(t.y)}),f(window).on(i+" "+r+" "+s,function(e){n._positionDropdown(),n._resizeDropdown()})},e.prototype._detachPositioningHandler=function(e,t){var n="scroll.select2."+t.id,i="resize.select2."+t.id,r="orientationchange.select2."+t.id;this.$container.parents().filter(a.hasScroll).off(n),f(window).off(n+" "+i+" "+r)},e.prototype._positionDropdown=function(){var e=f(window),t=this.$dropdown[0].classList.contains("select2-dropdown--above"),n=this.$dropdown[0].classList.contains("select2-dropdown--below"),i=null,r=this.$container.offset();r.bottom=r.top+this.$container.outerHeight(!1);var s={height:this.$container.outerHeight(!1)};s.top=r.top,s.bottom=r.top+s.height;var o=this.$dropdown.outerHeight(!1),a=e.scrollTop(),l=e.scrollTop()+e.height(),c=ar.bottom+o,d={left:r.left,top:s.bottom},p=this.$dropdownParent;"static"===p.css("position")&&(p=p.offsetParent());var h={top:0,left:0};(f.contains(document.body,p[0])||p[0].isConnected)&&(h=p.offset()),d.top-=h.top,d.left-=h.left,t||n||(i="below"),u||!c||t?!c&&u&&t&&(i="below"):i="above",("above"==i||t&&"below"!==i)&&(d.top=s.top-h.top-o),null!=i&&(this.$dropdown[0].classList.remove("select2-dropdown--below"),this.$dropdown[0].classList.remove("select2-dropdown--above"),this.$dropdown[0].classList.add("select2-dropdown--"+i),this.$container[0].classList.remove("select2-container--below"),this.$container[0].classList.remove("select2-container--above"),this.$container[0].classList.add("select2-container--"+i)),this.$dropdownContainer.css(d)},e.prototype._resizeDropdown=function(){var e={width:this.$container.outerWidth(!1)+"px"};this.options.get("dropdownAutoWidth")&&(e.minWidth=e.width,e.position="relative",e.width="auto"),this.$dropdown.css(e)},e.prototype._showDropdown=function(e){this.$dropdownContainer.appendTo(this.$dropdownParent),this._positionDropdown(),this._resizeDropdown()},e}),e.define("select2/dropdown/minimumResultsForSearch",[],function(){function e(e,t,n,i){this.minimumResultsForSearch=n.get("minimumResultsForSearch"),this.minimumResultsForSearch<0&&(this.minimumResultsForSearch=1/0),e.call(this,t,n,i)}return e.prototype.showSearch=function(e,t){return!(function e(t){for(var n=0,i=0;i');return e.attr("dir",this.options.get("dir")),this.$container=e,this.$container[0].classList.add("select2-container--"+this.options.get("theme")),u.StoreData(e[0],"element",this.$element),e},d}),e.define("jquery-mousewheel",["jquery"],function(e){return e}),e.define("jquery.select2",["jquery","jquery-mousewheel","./select2/core","./select2/defaults","./select2/utils"],function(r,e,s,t,o){if(null==r.fn.select2){var a=["open","close","destroy"];r.fn.select2=function(t){if("object"==typeof(t=t||{}))return this.each(function(){var e=r.extend(!0,{},t);new s(r(this),e)}),this;if("string"!=typeof t)throw new Error("Invalid arguments for Select2: "+t);var n,i=Array.prototype.slice.call(arguments,1);return this.each(function(){var e=o.GetData(this,"select2");null==e&&window.console&&console.error&&console.error("The select2('"+t+"') method was called on an element that is not using Select2."),n=e[t].apply(e,i)}),-1SorryThe key does not seem to match with a valid license key for Sonaar Music Pro.") } }; }.bind(this)); }, register_licence: function( response ){ this.licenceKey = this.licenceKey.trim(); jQuery.post( sonaar_admin_ajax.ajax.ajax_url, { action: 'sonaar_music_registerLicence', data: { 'licenceKey': this.licenceKey, 'response': response, 'nonce': sonaar_admin_ajax.ajax.ajax_nonce } }, function( data, textStatus){ var plan = data.price_id; this.outputMessage("succes","

      Yeppi 🎉

      " + plan + " Plan Activated!

      Grab a tea or a coffee and start your project."); jQuery('.srmp3_currrent_plan').text('⭐️ ' + plan + ' plan'); this.licenceValidated = true }.bind(this)) }, clearCache: function(type, e ){ e.preventDefault() jQuery.post( sonaar_admin_ajax.ajax.ajax_url, { action: 'sonaar_music_clearCache', data: { 'type': type, 'nonce': sonaar_admin_ajax.ajax.ajax_nonce } }, function( data, textStatus){ this.outputMessage("succes","

      Done

      The "+ type +"s has been cleared.") this.licenceValidated = false; }.bind(this)) }, invalidateLicense: function(){ jQuery.post( sonaar_admin_ajax.ajax.ajax_url, { action: 'sonaar_music_invalidateLicense', data: { 'nonce': sonaar_admin_ajax.ajax.ajax_nonce } }, ) }, errorMessage: function(error){ switch (error) { case 'expired': this.outputMessage("error","

      Sorry

      Your license key has expired. Login to your account at https://sonaar.io/login and renew your subscription.") this.invalidateLicense(); break; case 'revoked': this.outputMessage("error","

      Sorry

      Your license key has been revoked.") this.invalidateLicense(); break; case 'no_activations_left': this.outputMessage("error","

      Sorry

      Your license key is valid but you’ve activated it too many times on another domain(s). Login to your account at https://sonaar.io/login and manage your activation domains.") this.invalidateLicense(); break; default: this.outputMessage("error","

      Sorry

      The key does not seem to match with a valid license key for Sonaar.") this.invalidateLicense(); } }, outputMessage: function(type, message){ this.message.display = true this.message.data = message this.message.type = type }, closeMessage:function(){ this.message.display = false } }, mounted: function () { this.ready = true; if(typeof Chart !== 'undefined'){ Chart.Bar('chart', { options: optionsChart, data: data }) } var that = this; if(typeof moment !== 'undefined'){ jQuery('input[name="daterange"]').daterangepicker({ ranges: { 'Today': [moment(), moment()], 'Yesterday': [moment().subtract(1, 'days'), moment().subtract(1, 'days')], 'Last 7 Days': [moment().subtract(6, 'days'), moment()], 'Last 30 Days': [moment().subtract(29, 'days'), moment()], 'This Month': [moment().startOf('month'), moment().endOf('month')], 'Last Month': [moment().subtract(1, 'month').startOf('month'), moment().subtract(1, 'month').endOf('month')] }, "alwaysShowCalendars": true, "startDate": sonaar_music_pro.interval.start, "endDate": sonaar_music_pro.interval.end, "opens": "left" }, function (start, end, label) { var query = window.location.search.substring(1); var vars = query.split("&"); var searchObject = {}; var searchString = ''; for (var i = 0; i < vars.length; i++) { pair = vars[i].split("="); Object.defineProperty(searchObject, pair[0], { value: pair[1], writable: true }) } if (searchObject.hasOwnProperty('date_start')) { searchObject.date_start = start.format('YYYY-MM-DD'); } else { Object.defineProperty(searchObject, 'date_start', { value: start.format('YYYY-MM-DD'), writable: true }) } if (searchObject.hasOwnProperty('date_end')) { searchObject.date_end = end.format('YYYY-MM-DD'); } else { Object.defineProperty(searchObject, 'date_end', { value: end.format('YYYY-MM-DD'), writable: true }) } var searchKey = Object.getOwnPropertyNames(searchObject); for (var index = 0; index < searchKey.length; index++) { searchString += (index !== (searchKey.length - 1)) ? searchKey[index] + '=' + searchObject[searchKey[index]] + '&' : searchKey[index] + '=' + searchObject[searchKey[index]]; } window.location.assign(window.location.origin + window.location.pathname + '?' + searchString); }); } } })PK!Ƃ1admin/partials/sonaar-music-pro-admin-display.phpnu[

      statistic reports

      pro version

      Tracks and playlists performance insights

      {{totalPlay}}

      Total Plays
      during selected period

      {{totalDownload}}

      Total Downloads
      during selected period

      {{totalTrack}}

      Total Tracks
      available on your website

      Numbers of Plays
      PK!(}9admin/partials/sonaar-music-pro-license-admin-display.phpnu[

      Activate
      MP3 Audio Player

      PRO VERSION

      ⭐️ {{ currentPlan }} plan

      Enter your license key provided with your purchase.

      PK!fW&HH1admin/partials/sonaar-music-pro-tools-display.phpnu[

      ' . esc_html__('here', 'sonaar-music-pro') . ''); ?>


      * If your post type is not listed, make sure it's enabled it in MP3 Player > Settings

      sonaar_music_pro_inputs($per_page, $paged, $order, $orderby, $search); $track_inputs = $result['track_inputs']; $paginate_links = $result['paginate_links']; $found_tracks = $result['found_tracks']; $per_page_lists = [20,40,60,80,100, 'All']; $per_page = isset( $_GET['per_page'] ) ? $_GET['per_page'] : 20; //var_dump($track_inputs); ?>

      |


      * If your post type is not listed, make sure it's enabled it in MP3 Player > Settings

      PK!* admin/index.phpnu[ */ class Sonaar_Music_Pro_Admin { /** * The ID of this plugin. * * @since 1.0.0 * @access private * @var string $plugin_name The ID of this plugin. */ private $plugin_name; /** * The version of this plugin. * * @since 1.0.0 * @access private * @var string $version The current version of this plugin. */ private $version; public $registered_plugins_data = false; /** * Initialize the class and set its properties. * * @since 1.0.0 * @param string $plugin_name The name of this plugin. * @param string $version The version of this plugin. */ public function __construct( $plugin_name, $version ) { $this->plugin_name = $plugin_name; $this->version = $version; global $iron_music_player; $iron_music_player = get_option( 'iron_music_player' ); if ( class_exists( 'Sonaar_Music' ) ){ add_action('admin_notices', array( $this, 'shell_exec_admin_notice') ); add_action('admin_notices', array( $this, 'ffmpeg_admin_notice') ); add_action('wp_ajax_index_alb_tracklist_for_lazyload', array($this, 'index_alb_tracklist_for_lazyload_ajax_handler')); add_action('admin_init', array( $this, 'load_audioPreview_class' ) ); } add_filter('plugins_list', array( $this, 'srp_plugins_list'),99); add_filter('plugins_api', array( $this, 'plugins_api_filter'), 10, 3); add_action( 'admin_init', array( $this, 'generate_register_plugin_data' ) ); add_filter( 'plugin_row_meta', array( $this, 'plugin_row_meta' ), 10, 3 ); if ( is_admin() ) { //should set more action here. WIP add_action( 'load-post.php', array($this, 'sonaar_meta_boxes_setup' )); add_action( 'load-post-new.php', array($this, 'sonaar_meta_boxes_setup' )); add_action( 'wp_ajax_get_posts_for_select', array($this, 'get_posts_for_select_callback' )); } } /* * STICKY PLAYER META BOX */ public function get_posts_for_select_callback() { $sr_postypes = Sonaar_Music_Admin::get_cpt($all = true); $search_term = isset($_GET['q']) ? sanitize_text_field($_GET['q']) : ''; $query_args = array( 'post_type' => $sr_postypes, // specify your post type 'post_status' => 'publish', 's' => $search_term, 'posts_per_page' => 20 // adjust as needed ); $query = new WP_Query($query_args); $results = array(); if($query->have_posts()) { while($query->have_posts()) { $query->the_post(); $results[] = array('id' => get_the_ID(), 'text' => get_the_title()); } } wp_reset_postdata(); wp_send_json($results); } public function footer_player_meta_box( $post ) { $current_values = get_post_meta( $post->ID, 'sonaar_footer_player_meta', true); if( !is_array($current_values)){ $current_values = []; } wp_nonce_field( basename( __FILE__ ), 'footer_player_class_nonce' ); ?>

      registered_plugins_data = array( 'name' => $plugin_info['Name'], 'slug' => $this->plugin_name, 'author' => $plugin_info['Author'], 'plugin_url' => $plugin_info['PluginURI'], 'requires' => '5.2', 'banners' => array( 'high' => 'https://ps.w.org/mp3-music-player-by-sonaar/assets/banner-1544x500.jpg?rev=2569652', 'low' => 'https://ps.w.org/mp3-music-player-by-sonaar/assets/banner-1544x500.jpg?rev=2569652' ), 'version' => $plugin_info['Version'], 'changelog' => false, ); } public function plugins_api_filter( $_data, $_action = '', $_args = null) { if ( 'plugin_information' !== $_action ) { return $_data; } if ( ! isset( $_args->slug ) || ( $_args->slug !== $this->plugin_name ) ) { return $_data; } $plugin_api_data = get_site_transient('srmp3_pro_api_request'); //delete site_transient('srmp3_pro_api_request'); if ( empty( $plugin_api_data ) ) { $changelog_remote_response = $this->changelog_remote_query(); if ( ! $changelog_remote_response ) { return $_data; } $plugin_api_data = new \stdClass(); $plugin_api_data->name = $this->registered_plugins_data['name']; $plugin_api_data->slug = $this->registered_plugins_data['slug']; $plugin_api_data->author = $this->registered_plugins_data['author'];//'Sonaar.io'; $plugin_api_data->homepage = $this->registered_plugins_data['plugin_url'];//'https://sonaar.io/'; $plugin_api_data->requires = $this->registered_plugins_data['requires']; $plugin_api_data->version = $this->registered_plugins_data['version']; //$plugin_api_data->download_link = $this->registered_plugins_data['download_link']; $plugin_api_data->banners = $this->registered_plugins_data['banners']; $plugin_api_data->sections = array( 'changelog' => $changelog_remote_response, ); // Expires in 1 day set_site_transient( 'srmp3_pro_api_request', $plugin_api_data, DAY_IN_SECONDS ); } $_data = $plugin_api_data; return $_data; } public function changelog_remote_query() { $response = wp_remote_get('https://assets.sonaar.io/plugins/MP3-Music-Player-By-Sonaar-Pro/changelog.txt'); if ( is_wp_error( $response ) || wp_remote_retrieve_response_code( $response ) != '200' ) { return false; } $response = $response['body']; // Convert newlines to HTML line breaks $response = nl2br($response); return $response; } public function plugin_row_meta( $plugin_meta, $plugin_file, $plugin_data ) { if ($plugin_file == PLUGIN_INSTALLATION_NAME) { $plugin_meta['view-details'] = sprintf( '%s', esc_url( network_admin_url( 'plugin-install.php?tab=plugin-information&plugin=' . $this->plugin_name . '&TB_iframe=true&width=600&height=550' ) ), esc_attr(__('More information about Sonaar Music Pro', 'your-text-domain')), // Replace with your desired aria-label text esc_attr(__('Sonaar Music Pro Details', 'your-text-domain')), // Replace with your desired data-title text 'View details' ); } return $plugin_meta; } public function ffmpeg_admin_notice() { $screen = get_current_screen(); // Check if you are on the desired options page. Replace 'your_options_page_slug' with the slug of your options page. if ( $screen->id === 'sr_playlist_page_srmp3_settings_audiopreview' ) { if (!$this->is_ffmpeg_exist()) { echo '

      Warning: If you want to automatically trim, add audio watermarks, pre-roll or post-roll to your previews, FFMPEG Library must be installed on your server. Learn More

      '; } } } public function shell_exec_admin_notice() { $screen = get_current_screen(); // Check if you are on the desired options page. Replace 'your_options_page_slug' with the slug of your options page. if ( $screen->id === 'sr_playlist_page_srmp3_settings_audiopreview' ) { if (!function_exists('shell_exec') || stripos(ini_get('disable_functions'), 'shell_exec') !== false ) { echo '

      Warning: The shell_exec function is not available or is disabled on your server. Please enable it to run FFMPEG. Contact your server support.

      '; } } } public static function is_ffmpeg_exist () { //return false; if (!is_admin() || !is_user_logged_in()) { return; } if (!function_exists('shell_exec') || stripos(ini_get('disable_functions'), 'shell_exec') !== false ) { // Check if shell_exec function exists //error_log('shell_exec function does not exist or is disabled.'); update_option('srmp3_ffmpeg_path', ''); return false; } $custom_ffmpeg_path_raw = Sonaar_Music::get_option('audiopreview_ffmpeg_path', 'srmp3_settings_audiopreview'); $custom_ffmpeg_path = ($custom_ffmpeg_path_raw !== null && strlen($custom_ffmpeg_path_raw) > 5) ? $custom_ffmpeg_path_raw : 'ffmpeg'; $possible_paths = [ $custom_ffmpeg_path, '/usr/bin/ffmpeg', '/bin/ffmpeg', '/usr/local/bin/ffmpeg' ]; foreach ($possible_paths as $path) { if (@file_exists($path)) { update_option('srmp3_ffmpeg_path', $path); return true; } } if (strtoupper(substr(PHP_OS, 0, 3)) === 'WIN') { // Windows environment $ffmpeg = trim(shell_exec('where ffmpeg 2>&1')); } else { // Linux/Unix environment $ffmpeg = trim(shell_exec('which ffmpeg 2>&1')); } if (strpos($ffmpeg, 'not found') !== false) { // not found! }else{ update_option('srmp3_ffmpeg_path', $ffmpeg); return true; } update_option('srmp3_ffmpeg_path', ''); return false; } public function load_audioPreview_class(){ if ( !is_admin() || !is_user_logged_in()) { return; } if (get_site_option('SRMP3_ecommerce') == '1' && $this->is_ffmpeg_exist()){ require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/class-sonaar-audiopreview.php'; $srmp3_audio_preview = SRMP3_AudioPreview::getInstance(); if(Sonaar_Music::get_option('force_audio_preview', 'srmp3_settings_audiopreview') === 'true'){ function add_audiopreview_generate_bt_to_bulk_dropdown() { global $post_type, $pagenow; if ( $pagenow == 'edit.php' && (SR_PLAYLIST_CPT == $post_type || 'product' == $post_type)) { ?> plugin_name, plugin_dir_url( __FILE__ ) . 'css/sonaar-music-pro-admin.css', array('daterangepicker'), $this->version, 'all' ); } } } /** * Register the JavaScript for the admin area. * * @since 1.0.0 */ public function enqueue_scripts($hook) { /** * This function is provided for demonstration purposes only. * * An instance of this class should be passed to the run() function * defined in Sonaar_Music_Pro_Loader as all of the hooks are defined * in that particular class. * * The Sonaar_Music_Pro_Loader will then create the relationship * between the defined hooks and the functions defined in this * class. */ if ( class_exists( 'Sonaar_Music' ) ){ if ($hook == SR_PLAYLIST_CPT . '_page_sonaar_music_pro' || $hook == SR_PLAYLIST_CPT . '_page_sonaar_music_pro_license' ) { wp_enqueue_script( 'vuejs', plugin_dir_url( __DIR__ ) . 'public/js/vue.min.js', array(), '2.6.14', false ); wp_enqueue_script( 'polyfill', plugin_dir_url( __DIR__ ) . 'public/js/polyfill.min.js', array(), '6.26.0', false ); wp_enqueue_script( 'bootstrap-vue', plugin_dir_url( __DIR__ ) . 'public/js/bootstrap-vue.min.js', array(), '2.21.2', false ); wp_enqueue_script( $this->plugin_name, plugin_dir_url( __FILE__ ) . 'js/sonaar-music-pro-admin.js', array( 'jquery','vuejs', 'polyfill', 'bootstrap-vue' ), $this->version, true ); wp_enqueue_style( 'bootstrap-css', plugin_dir_url( __FILE__ ) . 'css/bootstrap.min.css', array(), '5.1.3', 'all' ); wp_enqueue_style( 'bootstrapvue-css', plugin_dir_url( __FILE__ ) . 'css/bootstrap-vue.min.css', array(), $this->version, 'all' ); wp_localize_script( $this->plugin_name, strtr($this->plugin_name, '-', '_'), array( 'licence' => get_site_option( 'sonaar_music_licence', '' ), 'SRMP3_purchased_plan' => esc_html(printPurchasedPlan()), )); } if ($hook == SR_PLAYLIST_CPT . '_page_sonaar_music_pro') { wp_enqueue_script( 'chart', plugin_dir_url( __DIR__ ) . 'public/js/Chart.min.js' , array(), '2.9.4', false ); wp_enqueue_script( 'daterangepicker-moment', plugin_dir_url( __DIR__ ) . 'public/js/moment.min.js', array('jquery'), $this->version, false ); wp_enqueue_script( 'daterangepicker', plugin_dir_url( __DIR__ ) . 'public/js/daterangepicker.min.js', array('jquery'), $this->version, false ); $sonaar_data = new Sonaar_Music_Get; $date_start = ( isset( $_GET['date_start']) )? $_GET['date_start']: date('Y-m-d H:i:s', strtotime('today - 14 day')); $date_end = ( isset( $_GET['date_end']) )? $_GET['date_end']: date('Y-m-d H:i:s', strtotime('today')); $sonaar_data->set_date($date_start, $date_end); $date1 = new DateTime($sonaar_data->get_date()[0]); $date2 = new DateTime($sonaar_data->get_date()[1]); $interval = $date2->diff($date1); $interval = ( $interval->days < 2 )? 1 : $interval->days; $sonaar_data->set_interval($interval); $get_play_count_per_page = $sonaar_data->get_play_count_per_page(); foreach ( $get_play_count_per_page as $i => $value ) { $get_play_count_per_page[$i]->id = url_to_postid( $get_play_count_per_page[$i]->page_url ); } $url = ( isset( $_GET['url']) && url_to_postid( $_GET['url'] ) )? $_GET['url']: false; $play_count_by_day = $sonaar_data->get_play_count_by_day($url) ; $get_play_count_per_track = $sonaar_data->get_play_count_per_track(array('url' => $url)); $get_download_count_per_track = $sonaar_data->get_download_count_per_track(array('url' => $url)); $dataDate = array(); $dataCount = array(); foreach ( $play_count_by_day as $play ) { if ( !empty($play->date) ) { array_push($dataDate, $play->date); } if ( !empty($play->play_count) ) { array_push($dataCount, $play->play_count); } } if( count( $dataDate ) == 1 ) array_push($dataDate, $dataDate[0]); if( count( $dataCount ) == 1 ) array_push($dataCount, $dataCount[0]); foreach ($get_play_count_per_track as $count) { $count->track_title = ( get_the_title( $count->target_url ) )? get_the_title( $count->target_url ): $count->target_title ; $count->target_url = ( get_edit_post_link( $count->target_url ) )? admin_url( 'upload.php?item=' . $count->target_url ): FALSE; } foreach ($get_download_count_per_track as $count) { $count->track_title = ( get_the_title( $count->target_url ) )? get_the_title( $count->target_url ): $count->target_title ; $count->target_url = ( get_edit_post_link( $count->target_url ) )? admin_url( 'upload.php?item=' . $count->target_url ): FALSE; } function get_total_track(){ $albums = new WP_Query( array( 'post_type' => SR_PLAYLIST_CPT, 'post_status' => 'publish', 'posts_per_page' => -1 ) ); $tracks = 0; while ($albums->have_posts()) { $albums->the_post(); $albumTracks = get_post_meta(get_the_id(),'alb_tracklist', true); $tracks = (is_array($albumTracks)) ? $tracks + count($albumTracks) : 0; } return $tracks; } wp_localize_script( $this->plugin_name, strtr($this->plugin_name, '-', '_'), array( 'get_play_count_by_day'=> $play_count_by_day, 'get_play_count_per_page'=> $get_play_count_per_page, 'get_play_count_per_track'=> $get_play_count_per_track, 'get_download_count_per_track'=> $get_download_count_per_track, 'totalPlay' => $sonaar_data->get_play_count($url), 'totalDownload' => $sonaar_data->get_download_count($url), 'totalTrack' => get_total_track(), 'interval'=> array( 'start'=> $date1->format('m/d/Y'), 'end'=> $date2->format('m/d/Y') ), 'licence' => get_site_option( 'sonaar_music_licence', '' ), 'SRMP3_purchased_plan' => get_site_option('SRMP3_purchased_plan'), )); } wp_enqueue_script( $this->plugin_name. 'global', plugin_dir_url( __FILE__ ) . 'js/sonaar-music-pro-admin-global.js', array( 'jquery' ), $this->version, true ); $locale_settings = array( 'ajax_url' => admin_url('admin-ajax.php'), 'ajax_nonce' => wp_create_nonce('sonaar_music_pro'), 'option' => Sonaar_Music::get_option( 'allOptions' ) ); wp_localize_script($this->plugin_name. 'global', 'sonaar_music_pro', $locale_settings); } } private function fetch_meta_data($post_id, $generalfields, $taxonomies) { $processed_data = []; // Get the post title if (in_array('post_title', $generalfields)) { $post_title = get_the_title($post_id); if (!empty($post_title)) { $processed_data['post_title'] = sanitize_text_field($post_title); } } // Loop through the defined taxonomies and fetch terms if(is_array($taxonomies)){ foreach ($taxonomies as $taxonomy) { $terms = wp_get_post_terms($post_id, $taxonomy); if (!empty($terms) && !is_wp_error($terms)) { $term_names = array_map(function($term) { return $term->name; }, $terms); $processed_data[$taxonomy] = sanitize_text_field(implode(', ', $term_names)); } } } if(function_exists('acf')){ $acf_get_fields = Sonaar_Music::get_option('srtools_regenerate_acf_field', 'srmp3_settings_tools'); if(is_array($acf_get_fields)){ foreach ($acf_get_fields as $field) { $acf_field = get_field($field, $post_id); if (!empty($acf_field)) { if (is_array($acf_field)) { $processed_data['acf_' . $field] = sanitize_text_field(implode(', ', $acf_field)); } else { $processed_data['acf_' . $field] = sanitize_text_field($acf_field); } } } } } if ( function_exists('jet_engine') && jet_engine()->meta_boxes ) { $je_get_fields = Sonaar_Music::get_option('srtools_regenerate_jetengine_field', 'srmp3_settings_tools'); if(is_array($je_get_fields)){ foreach ($je_get_fields as $field) { $je_field = get_post_meta( $post_id, $field, true ); if (!empty($je_field)) { if (is_array($je_field)) { $processed_data['jetengine_' . $field] = sanitize_text_field(implode(', ', $je_field)); } else { $processed_data['jetengine_' . $field] = sanitize_text_field($je_field); } } } } } return $processed_data; } private function process_data_item($item, $generalfields, $post_id = null) { $temp_data = []; if (isset($item['track_mp3_id']) && !empty($item['track_mp3_id'])) { $attachment_title = get_the_title($item['track_mp3_id']); if (in_array('track_mp3_title', $generalfields)) { $temp_data['track_mp3_title'] = sanitize_text_field($attachment_title); } $metadata = wp_get_attachment_metadata($item['track_mp3_id']); if (in_array('track_mp3_length', $generalfields) && isset($metadata['length']) && !empty($metadata['length'])) { // set track duration in seconds update_post_meta( $post_id, 'srmp3_track_length', $metadata['length'] ); } if (in_array('track_mp3_album', $generalfields) && isset($metadata['album']) && !empty($metadata['album'])) { $temp_data['track_mp3_album'] = sanitize_text_field($metadata['album']); } if (in_array('track_mp3_artist', $generalfields) && isset($metadata['artist']) && !empty($metadata['artist'])) { $temp_data['track_mp3_artist'] = sanitize_text_field($metadata['artist']); } } $new_fields = ['track_description', 'stream_title', 'stream_album', 'artist_name', 'stream_lenght']; foreach ($new_fields as $field) { if (in_array($field, $generalfields) && isset($item[$field]) && !empty($item[$field])) { if($field == 'stream_lenght'){ // set track duration in seconds $timeInSeconds = $this->timeToSeconds($item['stream_lenght']); update_post_meta( $post_id, 'srmp3_track_length', $timeInSeconds ); }else{ $temp_data[$field] = sanitize_text_field($item[$field]); } } } return $temp_data; } public function srmp3_customize_cmb2_file_save( $override, $args ) { // If it's not our field, don't modify the value. if ( $args['field_id'] != 'alb_tracklist' ) { return $override; } $generalfields = Sonaar_Music::get_option('srtools_regenerate_generalfields', 'srmp3_settings_tools'); $taxonomies = Sonaar_Music::get_option('srtools_regenerate_tax', 'srmp3_settings_tools'); // Do not index! Check if both are not arrays and return $override if (!is_array($generalfields) || !is_array($taxonomies)) { return $override; } $post_id = $args['id']; $data = $args['value']; // Fetch metadata and process the main data $processed_data = $this->fetch_meta_data($post_id, $generalfields, $taxonomies); // Process each item in the data array foreach ($data as $index => $item) { $temp_data = $this->process_data_item($item, $generalfields, $post_id); if (!empty($temp_data)) { $processed_data[] = $temp_data; } } // Update the post meta with the processed data update_post_meta( $post_id, 'srmp3_search_data', $processed_data ); return $override; } private function timeToSeconds($timeStr) { $parts = explode(":", $timeStr); $parts = array_map('intval', $parts); if (count($parts) === 3) { // HH:MM:SS format return $parts[0] * 3600 + $parts[1] * 60 + $parts[2]; } elseif (count($parts) === 2) { // MM:SS format return $parts[0] * 60 + $parts[1]; } else { return 0; } } public function index_alb_tracklist() { // Fetch generalfields and taxonomies once at the beginning $generalfields = Sonaar_Music::get_option('srtools_regenerate_generalfields', 'srmp3_settings_tools'); $taxonomies = Sonaar_Music::get_option('srtools_regenerate_tax', 'srmp3_settings_tools'); // Check if either is null and return if so if ($generalfields === null || $taxonomies === null) { echo json_encode([ 'message' => 'Error! Save this page first.', 'progress' => 0, 'completed' => true, 'totalPosts' => 0, 'processedPosts' => 0 ]); wp_die(); } // Arguments to get all products and sr_playlist posts with alb_tracklist meta key. $offset = isset($_POST['offset']) ? intval($_POST['offset']) : 0; $limit = 250; // Process 250 posts at a time. Adjust this value based on your needs. $args = array( 'post_type' => Sonaar_Music_Admin::get_cpt($all = true), 'meta_key' => 'alb_tracklist', 'posts_per_page' => $limit, 'offset' => $offset, ); $query = new WP_Query( $args ); $totalPosts = $query->found_posts; $processedPosts = $offset; if ( $query->have_posts() ) { while ( $query->have_posts() ) { $query->the_post(); $post_id = get_the_ID(); $data = get_post_meta($post_id, 'alb_tracklist', true); if ($data && is_array($data)) { // Fetch metadata and process the main data $processed_data = $this->fetch_meta_data($post_id, $generalfields, $taxonomies); // Process each item in the data array foreach ($data as $index => $item) { $temp_data = $this->process_data_item($item, $generalfields, $post_id); if (!empty($temp_data)) { $processed_data[] = $temp_data; } } // Update the post meta with the processed data //error_log("srmp3_search_data: " . print_r($processed_data, true)); update_post_meta($post_id, 'srmp3_search_data', $processed_data); $processedPosts++; } } $progress = ($processedPosts / $totalPosts) * 100; } $response = array( 'progress' => isset($progress) ? $progress : 0, // Ensure that $progress is set 'message' => '', 'completed' => ($progress >= 100), 'totalPosts' => $totalPosts, 'processedPosts' => $processedPosts ); // Reset post data. wp_reset_postdata(); echo json_encode($response); wp_die(); } public function index_alb_tracklist_for_lazyload_ajax_handler() { check_ajax_referer('sonaar_music_admin_ajax_nonce', 'nonce'); $this->index_alb_tracklist(); wp_die(); } public function init_options() { if(get_site_option('SRMP3_ecommerce') == '1'){ add_filter( 'cmb2_override_meta_save', array( $this, 'srmp3_customize_cmb2_file_save' ), 10, 2 ); } if ( class_exists( 'Sonaar_Music' )) { if (Sonaar_Music::get_option('srmp3_use_built_in_stats', 'srmp3_settings_stats')=='true'){ $cmb_options = new_cmb2_box( array( 'id' => 'sonaar_music_pro_network_option_metabox', 'title' => esc_html__( 'Sonaar Music', 'sonaar-music-pro' ), 'object_types' => array( 'options-page' ), 'option_key' => 'sonaar_music_pro', // The option key and admin menu page slug. 'icon_url' => 'dashicons-palmtree', // Menu icon. Only applicable if 'parent_slug' is left empty. 'menu_title' => esc_html__( 'Statistics', 'sonaar-music-pro' ), // Falls back to 'title' (above). 'parent_slug' => 'edit.php?post_type=' . SR_PLAYLIST_CPT, // Make options page a submenu item of the themes menu. 'capability' => 'manage_options', // Cap required to view options-page. 'enqueue_js' => false, 'cmb_styles' => false, 'display_cb' => 'sonaar_music_pro_admin_display', 'position' => 9999, ) ); } $cmb_tools_options = new_cmb2_box( array( 'id' => 'sonaar_music_pro_tools_network_option_metabox', 'title' => esc_html__( 'Sonaar Music', 'sonaar-music-pro' ), 'object_types' => array( 'options-page' ), 'option_key' => 'sonaar_music_pro_tools', // The option key and admin menu page slug. 'icon_url' => 'dashicons-palmtree', // Menu icon. Only applicable if 'parent_slug' is left empty. 'menu_title' => esc_html__( 'Tools', 'sonaar-music-pro' ), // Falls back to 'title' (above). 'parent_slug' => 'edit.php?post_type=' . SR_PLAYLIST_CPT, // Make options page a submenu item of the themes menu. 'capability' => 'manage_options', // Cap required to view options-page. 'enqueue_js' => false, 'cmb_styles' => false, 'display_cb' => 'sonaar_music_pro_tools_admin_display', 'position' => 9999, ) ); $cmb_options_license = new_cmb2_box( array( 'id' => 'sonaar_music_pro_license_network_option_metabox', 'title' => esc_html__( 'Sonaar Music', 'sonaar-music-pro' ), 'object_types' => array( 'options-page' ), 'option_key' => 'sonaar_music_pro_license', // The option key and admin menu page slug. 'icon_url' => 'dashicons-palmtree', // Menu icon. Only applicable if 'parent_slug' is left empty. 'menu_title' => esc_html__( 'License', 'sonaar-music-pro' ), // Falls back to 'title' (above). 'parent_slug' => 'edit.php?post_type=' . SR_PLAYLIST_CPT, // Make options page a submenu item of the themes menu. 'capability' => 'manage_options', // Cap required to view options-page. 'enqueue_js' => false, 'cmb_styles' => false, 'display_cb' => 'sonaar_music_pro_license_admin_display', 'position' => 9999, ) ); function sonaar_music_pro_tools_admin_display() { require_once plugin_dir_path( __FILE__ ) . 'partials/sonaar-music-pro-tools-display.php'; } function sonaar_music_pro_admin_display(){ if (Sonaar_Music::get_option('srmp3_use_built_in_stats', 'srmp3_settings_stats')!=='true'){ return; } require_once plugin_dir_path( __FILE__ ) . 'partials/sonaar-music-pro-admin-display.php'; } function sonaar_music_pro_license_admin_display(){ require_once plugin_dir_path( __FILE__ ) . 'partials/sonaar-music-pro-license-admin-display.php'; } } } public static function post_stats(){ check_ajax_referer('sonaar_music_ajax_nonce', 'nonce'); global $wpdb; $sonaar_music_post_data = new Sonaar_Music_Post; $request = $_POST['post_stats']; wp_send_json( $sonaar_music_post_data->log( $request ) ); } public static function get_stats(){ $getStats = $_POST['get_stats']; $sonaar_music_get_data = new Sonaar_Music_Get; $interval = ( $getStats['interval'] !== '' )? $getStats['interval'] : 14 ; $sonaar_music_get_data->set_interval( $interval ); $countPer = $getStats['count_per']; switch ($countPer) { case 'track': wp_send_json( $sonaar_music_get_data->get_play_count_per_track() ); break; case 'page': wp_send_json( $sonaar_music_get_data->get_play_count_per_page() ); break; default: $play_count_by_day = $sonaar_music_get_data->get_play_count_by_day() ; $dataDate = array(); $dataCount = array(); foreach ( $play_count_by_day as $play ) { array_push($dataDate, $play->date); array_push($dataCount, $play->play_count); } wp_send_json( array( 'date' => $dataDate, 'count' => $dataCount ) ); break; } } public function manage_album_columns ($columns){ $iron_cols = array('alb_stats' => ''); $columns = Sonaar_Music_Pro::array_insert($columns, $iron_cols, 'date', 'before'); $columns['date'] = esc_html__('Published', 'sonaar-music-pro'); // Renamed date column return $columns; } public function manage_album_custom_column ($column, $post_id){ switch ($column){ case 'alb_stats': echo ''; break; } } public function srmp3_set_mimes($mimes) { return array_merge($mimes,array ( 'ttml' => 'text/xml' )); } public function srp_plugins_list( $plugins ) { // without this, it displays 2x View Details link in the plugin.php page if ( !empty($plugins) ) { if ( isset($plugins['all'][PLUGIN_INSTALLATION_NAME]['slug'])) { unset($plugins['all'][PLUGIN_INSTALLATION_NAME]['slug']); } } return $plugins; } public function srmp3_create_mp3_playlists_ajax() { // create MULTIPLE POSTS if ( ! current_user_can( 'manage_options' ) ) { wp_die(0); } check_ajax_referer('sonaar_music_admin_ajax_nonce', 'nonce'); $iron_music_player = get_option( 'iron_music_player' ); $post_type = isset( $_POST['post_type'] ) ? $_POST['post_type'] : SR_PLAYLIST_CPT; $taxonomy = isset( $_POST['taxonomy'] ) ? $_POST['taxonomy'] : false; $iron_music_player['srmp3_posttypes'][] = $post_type; $iron_music_player['srmp3_posttypes'] = array_unique($iron_music_player['srmp3_posttypes']); update_option( 'iron_music_player', $iron_music_player ); $type = 'single'; $product_type = isset( $_POST['product_type'] ) ? $_POST['product_type'] : 'simple'; $product_download = isset( $_POST['product_download'] ) ? $_POST['product_download'] : 'no'; $title = isset( $_POST['title'] ) ? $_POST['title'] : 'simple'; $price = isset( $_POST['price'] ) ? (float) $_POST['price'] : '9.99'; $alb_tracklist = array(); switch ( $type ) { case 'single': $id = isset( $_POST['id'] ) ? (int) $_POST['id'] : 0; $track = wp_get_attachment_metadata( $id ); $post = get_post( $id ); if ( $post->post_title ) { $track['title'] = $post->post_title; } $thumbnail_id = get_post_thumbnail_id( $id ); $thumbnail_url = wp_get_attachment_image_src( get_post_thumbnail_id( $id ))[0]; $file_url = wp_get_attachment_url( $id ); $file_download = ($product_download === 'yes') ? $file_url : ''; $file_hash = md5( $file_url ); $song_store_list = ''; $alb_tracklist[] = array( 'FileOrStream' => 'mp3', 'track_mp3_id' => $id, 'track_mp3' => $file_url, 'track_image' => $thumbnail_url, 'song_store_list' => $song_store_list, 'woocommerce_download_file' => $file_download ); break; default: break; } $post_id = wp_insert_post( array( 'post_title' => $track['title'], 'post_status' => 'draft', 'post_type' => $post_type, ) ); update_post_meta( $post_id, 'alb_tracklist', $alb_tracklist ); update_post_meta( $post_id, '_thumbnail_id', $thumbnail_id ); if ( $post_type == 'product') { $this->srmp3SetProductAttributes($post_id, $post_type, $product_type, $price, $taxonomy, $alb_tracklist); } wp_send_json_success(); } public function srmp3_create_mp3_playlists_from_import_file_ajax() { if ( ! current_user_can( 'manage_options' ) ) { wp_die(0); } check_ajax_referer('sonaar_music_admin_ajax_nonce', 'nonce'); $iron_music_player = get_option( 'iron_music_player' ); $post_type = isset( $_POST['post_type'] ) ? $_POST['post_type'] : SR_PLAYLIST_CPT; $iron_music_player['srmp3_posttypes'][] = $post_type; $iron_music_player['srmp3_posttypes'] = array_unique($iron_music_player['srmp3_posttypes']); update_option( 'iron_music_player', $iron_music_player ); $type = 'single'; $product_type = isset( $_POST['product_type'] ) ? $_POST['product_type'] : 'simple'; $add_download = ( isset( $_POST['add_download']) && $_POST['add_download'] == 'yes' ) ? 'yes' : 'no'; $title = isset( $_POST['title'] ) ? $_POST['title'] : 'simple'; $price = isset( $_POST['price'] ) ? (float) $_POST['price'] : '9.99'; $alb_tracklist = array(); switch ( $type ) { case 'single': $id = isset( $_POST['id'] ) ? (int) $_POST['id'] : 0; $track = wp_get_attachment_metadata( $id ); $post = get_post( $id ); if ( $post->post_title ) { $track['title'] = $post->post_title; } $thumbnail_id = get_post_thumbnail_id( $id ); $thumbnail_url = wp_get_attachment_image_src( get_post_thumbnail_id( $id ))[0]; $file_url = wp_get_attachment_url( $id ); $file_hash = md5( $file_url ); if ($add_download == 'yes'){ $song_store_list[0] = array( 'store-icon'=> 'fas fa-download', 'store-name'=> 'Download', 'store-link'=> $file_url, ); }else{ $song_store_list = ''; } $alb_tracklist[] = array( 'FileOrStream' => 'mp3', 'track_mp3_id' => $id, 'track_mp3' => $file_url, 'track_image' => $thumbnail_url, 'song_store_list' => $song_store_list ); break; default: break; } $post_id = wp_insert_post( array( 'post_title' => $track['title'], 'post_status' => 'draft', 'post_type' => $post_type, ) ); update_post_meta( $post_id, 'alb_tracklist', $alb_tracklist ); update_post_meta( $post_id, '_thumbnail_id', $thumbnail_id ); if ( $post_type == 'product') { wp_set_object_terms( $post_id, $product_type, 'product_type' ); update_post_meta( $post_id, '_visibility', 'visible' ); update_post_meta( $post_id, '_stock_status', 'instock' ); update_post_meta( $post_id, 'total_sales', '0' ); update_post_meta( $post_id, '_virtual', 'yes' ); update_post_meta( $post_id, '_downloadable', 'yes' ); update_post_meta( $post_id, '_regular_price', $price ); update_post_meta( $post_id, '_featured', 'no' ); update_post_meta( $post_id, '_price', $price ); update_post_meta( $post_id, 'wc_add_to_cart', 'true' ); } wp_send_json_success(); } public function sonaar_music_pro_get_post_id( $data ) { global $iron_music_player; $srmp3_posttypes = ( isset($iron_music_player['srmp3_posttypes']) && !empty($iron_music_player['srmp3_posttypes']) ) ? $iron_music_player['srmp3_posttypes'] : array(SR_PLAYLIST_CPT); $post_id = false; $args = array( 'posts_per_page' => 1, 'post_status' => 'any', 'post_type' => $srmp3_posttypes, ); $meta_query = array(); $music_type = ''; if ( isset( $data['file'] ) || isset( $data['id'] ) ) { $value = isset( $data['file'] ) ? $data['file'] : $data['id']; /* $value = '.*s:[0-9]+:"track_mp3";s:[0-9]+:"'.$value.'";*'; $meta_query['relation'] = 'AND'; $meta_query[] = array( 'key' => 'alb_tracklist', 'value' => $value, 'compare' => 'REGEXP', ); */ $meta_query[] = array( 'key' => 'alb_tracklist', 'value' => $value, 'compare' => 'LIKE', ); } $args['meta_query'] = $meta_query; // phpcs:ignore WordPress.DB.SlowDBQuery.slow_db_query_meta_query $query = new WP_Query( $args ); if ( $query->have_posts() ) { $query->the_post(); $post_id = get_the_ID(); wp_reset_postdata(); } return $post_id; } public function sonaar_music_pro_get_audio_attachments( $posts_per_page = 20, $paged = 1, $order='desc', $orderby = 'date', $search = '' ) { $tracks = array(); $albums = array(); $args = array( 'posts_per_page' => $posts_per_page, 'paged' => $paged, 'post_type' => 'attachment', 'post_mime_type' => 'audio', 'post_status' => 'any', 'orderby' => $orderby, 'order' => $order, ); if ( $search ) { $args['s'] = $search; } $query = new WP_Query( $args ); $found_tracks = $query->found_posts; if ( $query->have_posts() ) { foreach ( $query->posts as $attachment ) { $id = $attachment->ID; $track = wp_get_attachment_metadata( $id ); $track['id'] = $id; $post = get_post( $id ); $track['title'] = (isset($track['title'])) ? $track['title'] : ''; if ( $post->post_title ) { $track['title'] = $post->post_title; } $track_file = wp_get_attachment_url( $id ); $track['file'] = $track_file; $track['product'] = $this->sonaar_music_pro_get_post_id( array( 'file' => $track_file, 'id' => $id, ) ); $tracks[] = $track; if ( isset( $track['album'] ) ) { $key = $track['album']; if ( ! isset( $albums[ $key ] ) ) { $albums[ $key ] = array(); $albums[ $key ]['count'] = 0; $albums[ $key ]['tracks'] = array(); } $albums[ $key ]['count']++; $albums[ $key ]['tracks'][] = $track['id']; } } foreach ( $albums as $title => $album ) { $album['product'] = $this->sonaar_music_pro_get_post_id( array( 'album' => $title ) ); $album['tracks'] = implode( ',', $album['tracks'] ); $albums[ $title ] = $album; } } if($orderby == 'title'){ // Sort the array based on the 'title' field and the desired order usort($tracks, function($a, $b) use ($order) { if ($order === 'asc') { return strcasecmp($a['title'], $b['title']); } else { return strcasecmp($b['title'], $a['title']); } }); } return array( 'tracks' => $tracks, 'found_tracks' => $found_tracks, ); } public function sonaar_music_pro_inputs( $posts_per_page = 20, $paged = 1, $order = 'desc', $orderby = 'date', $search = '' ){ //var_dump($orderby); $result = $this->sonaar_music_pro_get_audio_attachments( $posts_per_page, $paged, $order, $orderby, $search ); if ( $result ) { $tracks = $result['tracks']; $found_tracks = $result['found_tracks']; $per_page = $posts_per_page; } else { return false; } $track_inputs = ''; foreach ( $tracks as $track ) { $id = esc_attr( $track['id'] ); $title = esc_attr( $track['title'] ); $length = esc_html( isset( $track['length_formatted'] ) ? $track['length_formatted'] : '' ); $album = esc_html( ( isset( $track['album'] ) && $track['album'] != null) ? $track['album'] . ' - ' : '' ); $file = esc_html( basename( $track['file'] ) ); $product = $track['product']; $disabled = $product > 0 ? 'disabled' : ''; $track_inputs .= "
      $title – $album $length ($file) [ID: $id]
      "; } $args = array( 'base' => '%_%', 'format' => '#%#%', 'current' => (int) $paged, 'total' => ceil( $found_tracks / $posts_per_page ), 'prev_text' => '<', 'next_text' => '>', ); // translators: %s is the number of tracks found. $found_tracks_label = '' . sprintf( esc_attr( _n( '%s track', '%s tracks', $found_tracks, 'sonaar-music-pro' ) ), number_format_i18n( $found_tracks ) ) . ''; //phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped require_once ABSPATH . 'wp-admin/includes/template.php'; require_once ABSPATH . 'wp-admin/includes/class-wp-screen.php'; $pagination = new \WP_List_Table( array( 'ajax' => true ) ); $pagination->set_pagination_args( array( 'total_items' => $found_tracks, 'total_pages' => ceil( $found_tracks / $posts_per_page ), 'per_page' => $posts_per_page, ) ); ob_start(); ?>
      pagination( 'top' ); ?>
      $track_inputs, 'paginate_links' => $paginate_links, 'found_tracks' => $found_tracks, ); } public function srmp3_update_mp3_playlists_ajax() { if ( ! current_user_can( 'manage_options' ) ) { wp_die(0); } check_ajax_referer('sonaar_music_admin_ajax_nonce', 'nonce'); $per_page = isset( $_POST['per_page'] ) ? $_POST['per_page'] : 20; $paged = isset( $_POST['paged'] ) ? $_POST['paged'] : 1; $search = isset( $_POST['search'] ) ? $_POST['search'] : ''; $orderby = isset( $_POST['orderby'] ) ? $_POST['orderby'] : 'date'; $order = isset( $_POST['order'] ) ? $_POST['order'] : 'desc'; $mp3_lists_inputs = $this->sonaar_music_pro_inputs($per_page, $paged, $order, $orderby, $search); if ( $mp3_lists_inputs ) { $music_playlists = $mp3_lists_inputs['track_inputs']; $paginate_info = $mp3_lists_inputs['paginate_links']; wp_send_json_success( array( 'music_playlists' => $music_playlists, 'paginate_info' => $paginate_info, ) ); } wp_send_json_error( array( 'message' => esc_html__( 'An error occurred while retrieving the audio attachments lists.', 'sonaar-music-pro' ) ) ); } public function srmp3_create_single_mp3_playlists_ajax() { // CREATE ONE POST ONLY if ( ! current_user_can( 'manage_options' ) ) { wp_die(0); } check_ajax_referer('sonaar_music_admin_ajax_nonce', 'nonce'); $iron_music_player = get_option( 'iron_music_player' ); $post_type = isset( $_POST['post_type'] ) ? $_POST['post_type'] : SR_PLAYLIST_CPT; $taxonomy = isset( $_POST['taxonomy'] ) ? $_POST['taxonomy'] : false; $iron_music_player['srmp3_posttypes'][] = $post_type; $iron_music_player['srmp3_posttypes'] = array_unique($iron_music_player['srmp3_posttypes']); update_option( 'iron_music_player', $iron_music_player ); $type = 'single'; $product_type = isset( $_POST['product_type'] ) ? $_POST['product_type'] : 'simple'; $product_download = isset( $_POST['product_download'] ) ? $_POST['product_download'] : 'no'; // $add_download = ( isset( $_POST['add_download']) && $_POST['add_download'] == 'yes' ) ? 'yes' : 'no'; $mp3_id = isset( $_POST['mp3_id'] ) ? json_decode(stripslashes($_POST['mp3_id']), true ): ''; $price = isset( $_POST['price'] ) ? (float) $_POST['price'] : '9.99'; $alb_tracklist = array(); switch ( $type ) { case 'single': $mp3_id = isset( $_POST['mp3_id'] ) ? json_decode(stripslashes($_POST['mp3_id']), true ): ''; $track = wp_get_attachment_metadata( $mp3_id[0] ); $post = get_post( $mp3_id[0] ); if ( $post->post_title ) { $track['title'] = $post->post_title; } $attachment_metadata = get_post_meta($mp3_id[0] ,'_wp_attachment_metadata', true ); if ( isset($attachment_metadata['album']) && $attachment_metadata['album'] != '' ) { $track['title'] = $attachment_metadata['album']; } $thumbnail_id = get_post_thumbnail_id( $mp3_id[0] ); foreach( $mp3_id as $id) { $thumbnail_info = wp_get_attachment_image_src(get_post_thumbnail_id($id)); if (is_array($thumbnail_info)) { $thumbnail_url = $thumbnail_info[0]; } else { // Handle the case where no image is found (e.g., set a default URL or display an error message). $thumbnail_url = ''; // Replace with your default URL. } $file_url = wp_get_attachment_url( $id ); $file_download = ($product_download === 'yes') ? $file_url : ''; $file_hash = md5( $file_url ); $song_store_list = ''; $alb_tracklist[] = array( 'FileOrStream' => 'mp3', 'track_mp3_id' => $id, 'track_mp3' => $file_url, 'track_image' => $thumbnail_url, 'song_store_list' => $song_store_list, 'woocommerce_download_file' => $file_download ); } break; default: break; } $post_id = wp_insert_post( array( 'post_title' => $track['title'], 'post_status' => 'draft', 'post_type' => $post_type, ) ); update_post_meta( $post_id, 'alb_tracklist', $alb_tracklist ); update_post_meta( $post_id, '_thumbnail_id', $thumbnail_id ); if ( $post_type == 'product') { $this->srmp3SetProductAttributes($post_id, $post_type, $product_type, $price, $taxonomy, $alb_tracklist); } wp_send_json_success(); } // Function to create a new product variation public function create_product_variation( $product_id, $variation_data ) { $variation = new WC_Product_Variation(); $variation->set_parent_id( $product_id ); foreach ( $variation_data as $key => $value ) { $variation->{"set_$key"}( $value ); } $variation->save(); return $variation->get_id(); } public function srmp3_create_single_mp3_playlists_from_import_file_ajax() { if (!current_user_can('manage_options')) { wp_die(0); } check_ajax_referer('sonaar_music_admin_ajax_nonce', 'nonce'); $response = array(); // Check if file was uploaded successfully if ($_FILES['file']['error'] == 0) { // Get file name and extension $filename = basename($_FILES['file']['name']); $extension = strtolower(pathinfo($filename, PATHINFO_EXTENSION)); // Check if file is a CSV file if ($extension == 'csv') { // Set up temporary upload folder $upload_dir = wp_upload_dir(); $temp_folder = $upload_dir['basedir'] . '/temp'; if (!is_dir($temp_folder)) { mkdir($temp_folder); } // Move uploaded file to temporary folder $temp_file = $temp_folder . '/' . $filename; if (move_uploaded_file($_FILES['file']['tmp_name'], $temp_file)) { $post_type = isset($_POST['post_type']) ? $_POST['post_type'] : SR_PLAYLIST_CPT; $product_type = isset($_POST['product_type']) ? $_POST['product_type'] : 'simple'; $taxonomy = isset($_POST['taxonomy']) ? $_POST['taxonomy'] : false; $price = isset($_POST['price']) ? (float)$_POST['price'] : '9.99'; $multiple_post = isset($_POST['multiple']) ? filter_var($_POST['multiple'], FILTER_VALIDATE_BOOLEAN) : false; $cat_taxonomy = ($post_type == 'product') ? 'product_cat' : (($post_type == 'sr_playlist') ? 'playlist-category' : ''); // Process the CSV File and get the content $sonaar_music_widget = new Sonaar_Music_Widget(); $playlists = $sonaar_music_widget->importFile($temp_file, null, false); // return an array $count = 0; $imported_images = array(); foreach ($playlists as $playlist) { $alb_tracklist = array(); $post_title = ($playlist['playlist_name'] != '') ? $playlist['playlist_name'] : $playlist['tracks'][0]['album_title']; foreach ($playlist['tracks'] as $track) { $track_info = array( 'FileOrStream' => 'stream', 'stream_title' => $track['track_title'], 'stream_link' => $track['mp3'], 'track_image' => $track['poster'], 'song_store_list' => $track['song_store_list'], 'stream_album' => $track['album_title'], 'artist_name' => $track['track_artist'], 'stream_lenght' => $track['length'], 'woocommerce_download_file' => $track['woocommerce_download_file'], 'has_lyric' => $track['has_lyric'], 'track_description' => $track['description'], 'track_lyrics' => $track['track_lyrics'], ); // Create a post for each track or accumulate tracks for a single post $alb_tracklist[] = $track_info; if ($multiple_post) { $this->create_post($post_type, $product_type, $price, $taxonomy, $cat_taxonomy, $track, array($track_info), $imported_images); $count++; } } if (!$multiple_post) { // Create a single post for all tracks $this->create_post($post_type, $product_type, $price, $taxonomy, $cat_taxonomy, $playlist['tracks'][0], $alb_tracklist, $imported_images, $post_title); $count++; } } $response['success'] = true; $response['itemsCount'] = $count; $response['playlists'] = $playlists; $response['message'] = 'CSV File imported and post(s) have been created! 🎉'; } else { $response['success'] = false; $response['message'] = "⚠️ Error moving CSV file to temporary folder"; } } else { $response['success'] = false; $response['message'] = "⚠️ Error: Please upload a CSV file"; } } else { $response['success'] = false; $response['message'] = "⚠️ Error uploading CSV file: " . $_FILES['file']['error']; } wp_send_json($response); wp_die(); } private function create_post($post_type, $product_type, $price, $taxonomy,$cat_taxonomy, $track, $alb_tracklist, &$imported_images, $post_title = '') { $post_title = ($post_title == '') ? $track['track_title'] : $post_title; $post = array( 'post_title' => $post_title, 'post_content' => '', // Add content if needed 'post_status' => 'draft', 'post_type' => $post_type ); $post_id = wp_insert_post($post); if (!is_wp_error($post_id)) { update_post_meta($post_id, 'alb_tracklist', $alb_tracklist); update_post_meta($post_id, 'alb_release_date', $track['release_date']); if ($post_type == 'product') { $this->srmp3SetProductAttributes($post_id, $post_type, $product_type, $price, $taxonomy, $alb_tracklist); } $featured_image = $track['playlist_image']; // Set featured image if (!empty($featured_image)) { // Check if the image is already in the media library $attachment_id = attachment_url_to_postid($featured_image); // If the image is not found in the media library, import it if (!$attachment_id) { if (array_key_exists($featured_image, $imported_images)) { // Use the previously imported image $attachment_id = $imported_images[$featured_image]; } else { // Import the image and store its attachment ID $attachment_id = media_sideload_image($featured_image, $post_id, '', 'id'); if (!is_wp_error($attachment_id)) { $imported_images[$featured_image] = $attachment_id; } } } // Set the featured image for the post if (!is_wp_error($attachment_id) && $attachment_id) { set_post_thumbnail($post_id, $attachment_id); } else { // Handle error, for example, log or display an error message $error_message = "Warning: Featured image not imported. "; if (is_wp_error($attachment_id)) { $error_message .= $attachment_id->get_error_message(); } } } if (!empty($cat_taxonomy) && !empty($track['category_slug'])) { $slugs = array_map('trim', explode(',', $track['category_slug'])); $category_ids = []; foreach ($slugs as $slug) { $category = get_term_by('slug', $slug, $cat_taxonomy); if (!$category) { // Term doesn't exist, so create it $new_term = wp_insert_term( $slug, // the term $cat_taxonomy, // the taxonomy array('slug' => $slug) ); // Check if there was an error creating the term if (!is_wp_error($new_term)) { $term_id = $new_term['term_id']; } else { // Log the error or handle it as needed continue; // Skip this term and continue with the next one } } else { $term_id = $category->term_id; } if (isset($term_id)) { $category_ids[] = $term_id; } } if (!empty($category_ids)) { // Use the correct taxonomy here as well wp_set_object_terms($post_id, $category_ids, $cat_taxonomy); } } } else { // Handle error, for example, log or display an error message $error_message = "Warning: Post creation failed. " . $post_id->get_error_message(); } } public function srmp3SetProductAttributes($post_id, $post_type, $product_type, $price, $taxonomy = false, $alb_tracklist = false){ // once the post is created, we need to set the product type wp_set_object_terms( $post_id, $product_type, 'product_type' ); update_post_meta( $post_id, '_visibility', 'visible' ); update_post_meta( $post_id, '_stock_status', 'instock' ); update_post_meta( $post_id, 'total_sales', '0' ); update_post_meta( $post_id, '_virtual', 'yes' ); update_post_meta( $post_id, '_downloadable', 'yes' ); update_post_meta( $post_id, '_regular_price', $price ); update_post_meta( $post_id, '_featured', 'no' ); update_post_meta( $post_id, '_price', $price ); update_post_meta( $post_id, 'wc_add_to_cart', 'true' ); // set the add to cart button to true if($product_type == 'simple'){ $files = array(); // Loop through the $alb_tracklist array foreach ($alb_tracklist as $track) { if (!empty($track['woocommerce_download_file'])) { if($track['stream_title']){ $download_title = $track['stream_title']; }else{ //get track title from track_mp3_id $track_file = wp_get_attachment_metadata( $track['track_mp3_id'] ); $download_title = $track_file['title']; } $download_file_ar = array( 'file' => $track['woocommerce_download_file'], // URL of the downloadable file 'name' => $download_title, // Display name for the downloadable file ); // Add the downloadable file to the $files array $files[md5($download_file_ar['file'])] = $download_file_ar; } } // Add the downloadable files to the product if (!empty($files)) { update_post_meta($post_id, '_downloadable_files', $files); } } if($product_type == 'variable' && $taxonomy){ // Fetch all existing terms in the 'pa_license' taxonomy $license_terms = get_terms( array( 'taxonomy' => $taxonomy, 'hide_empty' => false, ) ); // Collect the slugs of all terms $license_term_slugs = array(); if ( !is_wp_error( $license_terms ) && !empty( $license_terms ) ) { foreach ( $license_terms as $term ) { $license_term_slugs[] = $term->slug; } } // Assign all existing terms to the product wp_set_object_terms( $post_id, $license_term_slugs, $taxonomy, true ); // Update the product attributes meta $attributes = get_post_meta( $post_id, '_product_attributes', true ); if ( !is_array( $attributes ) ) { $attributes = array(); } $attributes[$taxonomy] = array( 'name' => $taxonomy, 'value' => $license_term_slug, 'position' => '0', // You can change the position if needed 'is_visible' => '1', 'is_variation' => '1', 'is_taxonomy' => '1', ); update_post_meta( $post_id, '_product_attributes', $attributes ); // Get the 'pa_license' attribute terms $license_terms = wc_get_product_terms( $post_id, $taxonomy, array( 'fields' => 'all' ) ); // Create a variation for each 'pa_license' term foreach ( $license_terms as $license_term ) { // Get the default price for the term $term_default_price = (get_term_meta( $license_term->term_id, '_srmp3_license_default_price', true )) ? get_term_meta( $license_term->term_id, '_srmp3_license_default_price', true ) : $price; $variation_data = array( 'attributes' => array( $taxonomy => $license_term->slug, ), 'regular_price' => $term_default_price, // Use the term's default price as the regular price for the variation 'sale_price' => '', // Set the sale price for the variation (if applicable) 'stock_quantity' => '', // Set the stock quantity for the variation (if applicable) 'weight' => '', // Set the weight for the variation (if applicable) 'length' => '', // Set the length for the variation (if applicable) 'width' => '', // Set the width for the variation (if applicable) 'height' => '', // Set the height for the variation (if applicable) 'sku' => '', // Set the SKU for the variation (if applicable) 'tax_class' => '', // Set the tax class for the variation (if applicable) 'image_id' => '', // Set the image ID for the variation (if applicable) 'downloadable' => 'yes', 'virtual' => 'yes', ); // Create the variation $variation_id = $this->create_product_variation( $post_id, $variation_data ); // Prepare the downloadable files array $files = array(); // Loop through the $alb_tracklist array foreach ($alb_tracklist as $track) { if (!empty($track['woocommerce_download_file'])) { if($track['stream_title']){ $download_title = $track['stream_title']; }else{ //get track title from track_mp3_id $track_file = wp_get_attachment_metadata( $track['track_mp3_id'] ); $download_title = $track_file['title']; } $download_file_ar = array( 'file' => $track['woocommerce_download_file'], // URL of the downloadable file 'name' => $download_title, // Display name for the downloadable file ); // Add the downloadable file to the $files array $files[md5($download_file_ar['file'])] = $download_file_ar; } } // Add the downloadable files to the variation if (!empty($files)) { update_post_meta($variation_id, '_downloadable_files', $files); } } } } public function register_widget(){ if ( class_exists( 'Sonaar_Filters_Widget' ) ){ register_widget( 'Sonaar_Filters_Widget' ); register_widget( 'Sonaar_Search_Widget' ); register_widget( 'Sonaar_Chips_Widget' ); } } public function srmp3_pro_add_shortcode(){ function sonaar_shortcode_time_stamp($atts, $content = null) { /* Enqueue Sonaar Music related CSS and Js file */ wp_enqueue_style( 'sonaar-music' ); wp_enqueue_style( 'sonaar-music-pro' ); wp_enqueue_script( 'sonaar-music-mp3player' ); wp_enqueue_script( 'sonaar-music-pro-mp3player' ); wp_enqueue_script( 'sonaar_player' ); if ( function_exists('sonaar_player') ) { add_action('wp_footer','sonaar_player', 12); } extract(shortcode_atts(array( 'post_id' => '', 'widget_id' => '', 'track_id' => '0', 'time' => '0', 'button' => '', 'play_icon' => '', 'font_size' =>'', 'color' => '', 'background_color' => '', 'text' => '', 'text_pause' => '', 'block' => '' ), $atts)); $params = []; if($post_id != '' && is_numeric($post_id) ){ array_push($params, "id:'". $post_id ."'"); } $content = ($text != '') ? $text : $content; $text_pause = ($text_pause !='') ? $text_pause : ''; $shortcode_classname = ($button === 'true') ? 'srmp3_sonaar_ts_shortcode srmp3_sonaar_ts_shortcode_button' : 'srmp3_sonaar_ts_shortcode'; $shortcode_classname .= ($play_icon === 'true') ? ' sricon-play': ''; $shortcode_classname .= ($block === 'true') ? ' srmp3_sonaar_ts--block': ''; $style = ($color != '' || $background_color != '' || $font_size != '') ? 'color:'. $color .';background-color:' . $background_color . ';font-size:' . $font_size . ';' : ''; $style .=($play_icon === 'true') ? 'text-decoration:none;': ''; if($track_id != '0' && is_numeric($track_id ) ){ $track_id = (float)(((int)$track_id )- 1); }else{ $track_id = '0'; } if($widget_id != ''){ array_push($params, "widget_id:'". sanitize_text_field($widget_id) ."'"); } $timeArray = explode(':', $time); if ( !(count( $timeArray ) === count( array_filter( $timeArray, 'is_numeric' ) )) ) { //if time doesnt have format "00:00" set it to '0' $time = '0'; } $shortcodeID = uniqid(); array_push($params, "trackid:'". $track_id ."'", "time:'". $time ."'", "ts_id:'". $shortcodeID ."'", "play_icon:'". $play_icon ."'"); $buttonLabel = ($text_pause != '')?"" .$content."" . $text_pause ."": $content; return "".$buttonLabel.""; } function sonaar_shortcode_lyrics($atts, $content = null) { return '
      '; } function sonaar_shortcode_filters( $atts ) { extract( shortcode_atts( array( 'title' => '', ), $atts ) ); ob_start(); the_widget('Sonaar_Filters_Widget', $atts, array('widget_id'=>'arbitrary-instance-'.uniqid(), 'before_widget'=>'
      ', 'after_widget'=>'
      ')); $output = ob_get_contents(); ob_end_clean(); return $output; } function sonaar_shortcode_search( $atts ) { extract( shortcode_atts( array( 'title' => '', ), $atts ) ); ob_start(); the_widget('Sonaar_Search_Widget', $atts, array('widget_id'=>'arbitrary-instance-'.uniqid(), 'before_widget'=>'')); $output = ob_get_contents(); ob_end_clean(); return $output; } function sonaar_shortcode_chips( $atts ) { extract( shortcode_atts( array( 'title' => '', ), $atts ) ); ob_start(); the_widget('Sonaar_Chips_Widget', $atts, array('widget_id'=>'arbitrary-instance-'.uniqid(), 'before_widget'=>'
      ', 'after_widget'=>'
      ')); $output = ob_get_contents(); ob_end_clean(); return $output; } add_shortcode( 'sonaar_lyrics_placeholder', 'sonaar_shortcode_lyrics' ); add_shortcode( 'sonaar_ts', 'sonaar_shortcode_time_stamp' ); if(get_site_option('SRMP3_ecommerce') == '1'){ add_shortcode( 'sonaar_license', [SRMP3_WooCommerce::class, 'sonaar_shortcode_license']); } add_shortcode( 'sonaar_filters', 'sonaar_shortcode_filters' ); add_shortcode( 'sonaar_search', 'sonaar_shortcode_search' ); add_shortcode( 'sonaar_chips', 'sonaar_shortcode_chips' ); } /* Return TRUE if the POST has track set in the post settings */ public static function ifPostHasTrack($post){ $album_tracks = get_post_meta( $post, 'alb_tracklist', true ); if( is_array($album_tracks) && is_array($album_tracks[0]) && count($album_tracks[0]) > 1 ){ return true; }else{ return false; } } }PK!o1133!includes/player/sonaar-player.phpnu[PK!I;I;includes/widgets/sr-chips.phpnu[start_controls_section( 'section_content', [ 'label' => esc_html__( 'Chips & Tags', 'sonaar-music' ), 'tab' => Controls_Manager::TAB_CONTENT, ] ); $this->add_control( 'searchbar_searchheading', [ 'label' => esc_html__( 'Chips & Tags', 'sonaar-music' ), 'type' => Controls_Manager::HEADING, ] ); $this->add_control( 'hide_clearall', [ 'label' => esc_html__( 'Hide Clear All Filter', 'sonaar-music' ), 'type' => Controls_Manager::SWITCHER, 'default' => '', 'return_value' => 'true', 'selectors' => [ '{{WRAPPER}} .srp_chip_clear_all' => 'display:none;', ], //'separator' => 'after', ] ); $this->add_control( 'clearall_label', [ 'label' => __( 'Clear All Label', 'sonaar-music' ), 'placeholder' => __( 'Clear All', 'sonaar-music' ), 'type' => Controls_Manager::TEXT, 'default' => 'Clear All', 'label_block' => true, 'condition' => [ 'hide_clearall' => '', ], ] ); $this->add_control( 'target_id', [ 'label' => esc_html__( 'Target Player ID', 'sonaar-music' ), 'type' => Controls_Manager::TEXT, 'default' => '', 'dynamic' => [ 'active' => true, ], 'description' => esc_html__( 'Add your player id WITHOUT the Pound key. e.g: my-id. Leave blank if only one player is used in this page', 'sonaar-music' ), 'style_transfer' => false, ] ); $this->end_controls_section(); $this->start_controls_section( 'chips_style', [ 'label' => esc_html__( 'Chips Style', 'sonaar-music' ), 'tab' => Controls_Manager::TAB_STYLE, ] ); $this->add_responsive_control( 'filter_justify', [ 'label' => esc_html_x( 'Justify Content', 'Flex Container Control', 'elementor' ), 'type' => Controls_Manager::CHOOSE, 'label_block' => true, 'default' => '', 'options' => [ 'flex-start' => [ 'title' => esc_html_x( 'Start', 'Flex Container Control', 'elementor' ), 'icon' => 'eicon-flex eicon-justify-start-h', ], 'center' => [ 'title' => esc_html_x( 'Center', 'Flex Container Control', 'elementor' ), 'icon' => 'eicon-flex eicon-justify-center-h', ], 'flex-end' => [ 'title' => esc_html_x( 'End', 'Flex Container Control', 'elementor' ), 'icon' => 'eicon-flex eicon-justify-end-h', ], 'space-between' => [ 'title' => esc_html_x( 'Space Between', 'Flex Container Control', 'elementor' ), 'icon' => 'eicon-flex eicon-justify-space-between-h', ], 'space-around' => [ 'title' => esc_html_x( 'Space Around', 'Flex Container Control', 'elementor' ), 'icon' => 'eicon-flex eicon-justify-space-around-h', ], 'space-evenly' => [ 'title' => esc_html_x( 'Space Evenly', 'Flex Container Control', 'elementor' ), 'icon' => 'eicon-flex eicon-justify-space-evenly-h', ], ], 'selectors' => [ '{{WRAPPER}} .srp_chips' => 'justify-content: {{VALUE}};', ], ] ); $this->add_group_control( Group_Control_Typography::get_type(), [ 'name' => 'chip_typo', 'label' => esc_html__( 'Typography', 'sonaar-music' ), 'scheme' => Typography::TYPOGRAPHY_1, 'selector' => '{{WRAPPER}} .srp_chip', 'separator' => 'after', ] ); $this->start_controls_tabs( 'tabs_button_style' ); $this->start_controls_tab( 'tab_button_normal', [ 'label' => esc_html__( 'Normal', 'elementor' ), ] ); $this->add_control( 'chip_color', [ 'label' => esc_html__( 'Color', 'sonaar-music' ), 'type' => Controls_Manager::COLOR, 'default' => '', 'selectors' => [ '{{WRAPPER}} .srp_chip' => 'color: {{VALUE}};border-color: {{VALUE}}', ], ] ); $this->add_group_control( Group_Control_Background::get_type(), [ 'name' => 'chip_bg', 'label' => esc_html__( 'Background', 'elementor-sonaar' ), 'types' => [ 'classic', 'gradient'], 'exclude' => [ 'image' ], 'selector' => '{{WRAPPER}} .srp_chip', 'separator' => 'before', ] ); $this->add_control( 'chip_border_color', [ 'label' => esc_html__( 'Border Color', 'elementor-pro' ), 'type' => Controls_Manager::COLOR, 'selectors' => [ '{{WRAPPER}} .srp_chip' => 'border-color: {{VALUE}};', ], 'separator' => 'before', ] ); $this->end_controls_tab(); $this->start_controls_tab( 'tab_button_hover', [ 'label' => esc_html__( 'Hover', 'elementor' ), ] ); $this->add_control( 'chip_color_hover', [ 'label' => esc_html__( 'Color', 'sonaar-music' ), 'type' => Controls_Manager::COLOR, 'default' => '', 'selectors' => [ '{{WRAPPER}} .srp_chip:hover' => 'color: {{VALUE}};border-color: {{VALUE}}', ], ] ); $this->add_group_control( Group_Control_Background::get_type(), [ 'name' => 'chip_bg_hover', 'label' => esc_html__( 'Background', 'elementor-sonaar' ), 'types' => [ 'classic', 'gradient'], 'exclude' => [ 'image' ], 'selector' => '{{WRAPPER}} .srp_chip:hover', 'separator' => 'before', ] ); $this->add_control( 'chip_border_color_hover', [ 'label' => esc_html__( 'Border Color', 'elementor-pro' ), 'type' => Controls_Manager::COLOR, 'selectors' => [ '{{WRAPPER}} .srp_chip:hover' => 'border-color: {{VALUE}};', ], 'separator' => 'before', ] ); $this->end_controls_tab(); $this->end_controls_tabs(); $this->add_responsive_control( 'chip_padding', [ 'label' => esc_html__( 'Padding', 'sonaar-music' ), 'type' => Controls_Manager::DIMENSIONS, 'size_units' => [ 'px', 'em', '%' ], 'selectors' => [ '{{WRAPPER}} .srp_chip' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};', ], 'separator' => 'before', ] ); $this->add_control( 'chip_border', [ 'label' => esc_html__( 'Border Type', 'sonaar-music' ), 'type' => Controls_Manager::SELECT, 'options' => [ 'none' => esc_html__( 'None', 'elementor' ), 'solid' => _x( 'Solid', 'Border Control', 'elementor' ), 'dotted' => _x( 'Dotted', 'Border Control', 'elementor' ), 'dashed' => _x( 'Dashed', 'Border Control', 'elementor' ), ], 'selectors' => [ '{{WRAPPER}} .srp_chip' => 'border-top-style: {{VALUE}};border-bottom-style: {{VALUE}};border-left-style: {{VALUE}};border-right-style: {{VALUE}};', ], 'separator' => 'before', ] ); $this->add_responsive_control( 'chip_border_dimension', [ 'label' => esc_html__( 'Border Width', 'elementor-pro' ), 'type' => Controls_Manager::DIMENSIONS, 'size_units' => [ 'px', 'em', '%' ], 'selectors' => [ '{{WRAPPER}} .srp_chip' => 'border-width: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};', ], ] ); $this->add_responsive_control( 'chip_border_radius', [ 'label' => esc_html__( 'Chip Radius', 'elementor-pro' ), 'type' => Controls_Manager::DIMENSIONS, 'size_units' => [ 'px', 'em', '%' ], 'selectors' => [ '{{WRAPPER}} .srp_chip' => 'border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};', ], ] ); $this->end_controls_section(); /** * STYLE: clear ALL BUTTON * ------------------------------------------------- */ $this->start_controls_section( 'clear_style', [ 'label' => esc_html__( 'Clear All Style', 'sonaar-music' ), 'tab' => Controls_Manager::TAB_STYLE, 'condition' => [ 'hide_clearall' => '', ], ] ); $this->add_control( 'clear_margin', [ 'label' => esc_html__( 'Move Clear All Button to the right', 'sonaar-music' ), 'type' => Controls_Manager::SWITCHER, 'default' => 'true', 'return_value' => 'true', 'selectors' => [ '{{WRAPPER}} .srp_chip_clear_all' => 'margin-left:auto;', ], //'separator' => 'after', ] ); $this->add_group_control( Group_Control_Typography::get_type(), [ 'name' => 'clear_typo', 'label' => esc_html__( 'Typography', 'sonaar-music' ), 'scheme' => Typography::TYPOGRAPHY_1, 'selector' => '{{WRAPPER}} .srp_chip_clear_all', 'separator' => 'after', ] ); $this->start_controls_tabs( 'clear_tabs_button_style' ); $this->start_controls_tab( 'clear_tab_button_normal', [ 'label' => esc_html__( 'Normal', 'elementor' ), ] ); $this->add_control( 'clear_color', [ 'label' => esc_html__( 'Color', 'sonaar-music' ), 'type' => Controls_Manager::COLOR, 'default' => '', 'selectors' => [ '{{WRAPPER}} .srp_chip_clear_all' => 'color: {{VALUE}};border-color: {{VALUE}}', ], ] ); $this->add_group_control( Group_Control_Background::get_type(), [ 'name' => 'clear_bg', 'label' => esc_html__( 'Background', 'elementor-sonaar' ), 'types' => [ 'classic', 'gradient'], 'exclude' => [ 'image' ], 'selector' => '{{WRAPPER}} .srp_chip_clear_all', 'separator' => 'before', ] ); $this->add_control( 'clear_border_color', [ 'label' => esc_html__( 'Border Color', 'elementor-pro' ), 'type' => Controls_Manager::COLOR, 'selectors' => [ '{{WRAPPER}} .srp_chip_clear_all' => 'border-color: {{VALUE}};', ], 'separator' => 'before', ] ); $this->end_controls_tab(); $this->start_controls_tab( 'clear_tab_button_hover', [ 'label' => esc_html__( 'Hover', 'elementor' ), ] ); $this->add_control( 'clear_color_hover', [ 'label' => esc_html__( 'Color', 'sonaar-music' ), 'type' => Controls_Manager::COLOR, 'default' => '', 'selectors' => [ '{{WRAPPER}} .srp_chip_clear_all:hover' => 'color: {{VALUE}};border-color: {{VALUE}}', ], ] ); $this->add_group_control( Group_Control_Background::get_type(), [ 'name' => 'clear_bg_hover', 'label' => esc_html__( 'Background', 'elementor-sonaar' ), 'types' => [ 'classic', 'gradient'], 'exclude' => [ 'image' ], 'selector' => '{{WRAPPER}} .srp_chip_clear_all:hover', 'separator' => 'before', ] ); $this->add_control( 'clear_border_color_hover', [ 'label' => esc_html__( 'Border Color', 'elementor-pro' ), 'type' => Controls_Manager::COLOR, 'selectors' => [ '{{WRAPPER}} .srp_chip_clear_all:hover' => 'border-color: {{VALUE}};', ], 'separator' => 'before', ] ); $this->end_controls_tab(); $this->end_controls_tabs(); $this->add_responsive_control( 'clear_padding', [ 'label' => esc_html__( 'Padding', 'sonaar-music' ), 'type' => Controls_Manager::DIMENSIONS, 'size_units' => [ 'px', 'em', '%' ], 'selectors' => [ '{{WRAPPER}} .srp_chip_clear_all' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};', ], 'separator' => 'before', ] ); $this->add_control( 'clear_border', [ 'label' => esc_html__( 'Border Type', 'sonaar-music' ), 'type' => Controls_Manager::SELECT, 'options' => [ 'none' => esc_html__( 'None', 'elementor' ), 'solid' => _x( 'Solid', 'Border Control', 'elementor' ), 'dotted' => _x( 'Dotted', 'Border Control', 'elementor' ), 'dashed' => _x( 'Dashed', 'Border Control', 'elementor' ), ], 'selectors' => [ '{{WRAPPER}} .srp_chip_clear_all' => 'border-top-style: {{VALUE}};border-bottom-style: {{VALUE}};border-left-style: {{VALUE}};border-right-style: {{VALUE}};', ], 'separator' => 'before', ] ); $this->add_responsive_control( 'clear_border_dimension', [ 'label' => esc_html__( 'Border Width', 'elementor-pro' ), 'type' => Controls_Manager::DIMENSIONS, 'size_units' => [ 'px', 'em', '%' ], 'selectors' => [ '{{WRAPPER}} .srp_chip_clear_all' => 'border-width: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};', ], ] ); $this->add_responsive_control( 'clear_border_radius', [ 'label' => esc_html__( 'Chip Radius', 'elementor-pro' ), 'type' => Controls_Manager::DIMENSIONS, 'size_units' => [ 'px', 'em', '%' ], 'selectors' => [ '{{WRAPPER}} .srp_chip_clear_all' => 'border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};', ], ] ); $this->end_controls_section(); } protected function render() { $settings = $this->get_settings_for_display(); $shortcode = '[sonaar_chips'; $shortcode .= (isset($settings['hide_clearall']) && $settings['hide_clearall'] === 'true') ? ' hide_clearall="true"' : ''; $shortcode .= (isset($settings['clearall_label']) && $settings['clearall_label'] !== '') ? ' clearall_label="' . $settings['clearall_label'] . '"' : ''; $shortcode .= ' player_id="' . $settings['target_id'] . '"'; $shortcode .= ']'; //Attention: double brackets are required if using var_dump to display a shortcode otherwise it will render it! //print_r("Shortcode = [" . $shortcode . "]"); echo do_shortcode( $shortcode ); } public function render_plain_content() { } } Plugin::instance()->widgets_manager->register( new SR_Chips() );PK!K;Fincludes/widgets/sr-filters.phpnu[ $group['title'], // Using the field group title as the label 'options' => $fields_for_group ]; } } } return $grouped_fields; } protected function register_controls() { $this->start_controls_section( 'section_content', [ 'label' => esc_html__( 'Audio Player Filters', 'sonaar-music' ), 'tab' => Controls_Manager::TAB_CONTENT, ] ); $this->add_control( 'filter_type', [ 'label' => esc_html__( 'Filter Type ', 'sonaar-music' ), 'type' => Controls_Manager::SELECT, 'label_block' => false, 'options' => [ 'dropdowns' => 'Dropdown', 'tags' => 'Tags', 'range' => 'Range Slider', ], 'default' => 'dropdowns', ] ); $this->add_control( 'range_notice', [ 'raw' => '' . __( 'Range Slider Notice:', 'sonaar-music' ) . ' ' . __( 'The Range Slider only works with Lazyload pagination. You can enable Lazyload by editing your player widget and go to Style Tab > Pagination', 'sonaar-music' ), 'type' => Controls_Manager::RAW_HTML, 'content_classes' => 'elementor-panel-alert elementor-panel-alert-info', 'render_type' => 'ui', 'condition' => [ 'filter_type' => 'range', ], ] ); $range_repeater = new \Elementor\Repeater(); $range_repeater->add_control( 'filter_name', [ 'label' => __( 'Filter Title', 'sonaar-music' ), 'type' => Controls_Manager::TEXT, 'dynamic' => [ 'active' => true, ], 'default' => '', 'label_block' => true, ] ); $range_repeater->add_control( 'filter_source', [ 'label' => esc_html__( 'Source ', 'sonaar-music' ), 'type' => Controls_Manager::SELECT, 'label_block' => false, 'options' => $this->check_column_plugin_activated('range'), 'default' => 'object', ] ); $range_repeater->add_control( 'filter_acf', [ 'label' => __( 'ACF Field', 'sonaar-music' ), 'description' => esc_html__( 'Only field type Number is accepted', 'sonaar-music' ), 'type' => \Elementor\Controls_Manager::SELECT, 'default' => '', 'groups' => $this->get_acf_fields_for_elementor(['number']), 'condition' => [ 'filter_source' => 'acf', ], ] ); $range_repeater->add_control( 'filter_object', [ 'label' => __( 'Object Field', 'sonaar-music' ), 'type' => \Elementor\Controls_Manager::SELECT, 'groups' => $this->get_object_fields('range'), 'default' => '', 'condition' => [ 'filter_source' => 'object', ], ] ); $range_repeater->add_control( 'filter_key', [ 'label' => __( 'Custom Meta Key', 'sonaar-music' ), 'description' => esc_html__( 'Only custom key that outputs an array with multiple choices are accepted', 'sonaar-music' ), 'type' => \Elementor\Controls_Manager::TEXT, 'label_block' => true, 'condition' => [ 'filter_source' => 'customkey', ], ] ); $range_repeater->add_control( 'filter_selecttype', [ 'label' => esc_html__( 'Select Type', 'sonaar-music' ), 'type' => Controls_Manager::SELECT, 'options' => [ 'tempo' => esc_html__( 'Tempo', 'sonaar-music' ), 'time' => esc_html__( 'Duration', 'sonaar-music' ), 'other' => esc_html__( 'Other', 'sonaar-music' ), ], 'separator' => 'before', 'default' => 'tempo', ] ); $range_repeater->add_control( 'filter_min', [ 'label' => __( 'Min value', 'sonaar-music' ), 'type' => Controls_Manager::TEXT, 'default' => '', 'placeholder' => __( 'eg: 20 or 00:15', 'sonaar-music' ), 'label_block' => true, ] ); $range_repeater->add_control( 'filter_max', [ 'label' => __( 'Max value', 'sonaar-music' ), 'type' => Controls_Manager::TEXT, 'default' => '100', 'placeholder' => __( 'eg: 240 or 02:59:15', 'sonaar-music' ), 'label_block' => true, ] ); $range_repeater->add_control( 'filter_unit', [ 'label' => __( 'Unit Text Suffix', 'sonaar-music' ), 'placeholder' => __( 'eg: bpm or seconds', 'sonaar-music' ), 'type' => Controls_Manager::TEXT, 'default' => '', 'label_block' => true, ] ); $this->add_control( 'range_repeater', [ 'label' => esc_html__( 'Add New Filter', 'sonaar-music' ), 'type' => \Elementor\Controls_Manager::REPEATER, 'prevent_empty' => false, 'fields' => $range_repeater->get_controls(), 'title_field' => '{{{ filter_name }}} <# if ( "object" == filter_source ) { #> :: {{{ filter_object }}} <# } #> <# if ( "acf" == filter_source ) { #> :: {{{ filter_acf }}} <# } #> <# if ( "jetengine" == filter_source ) { #> :: {{{ filter_jetengine }}} <# } #> <# if ( "customkey" == filter_source ) { #> :: {{{ filter_key }}} <# } #>', 'condition' => [ 'filter_type' => 'range', ], ] ); $filter_repeater = new \Elementor\Repeater(); $filter_repeater->add_control( 'filter_name', [ 'label' => __( 'Filter Title', 'sonaar-music' ), 'type' => Controls_Manager::TEXT, 'dynamic' => [ 'active' => true, ], 'default' => '', 'label_block' => true, ] ); $filter_repeater->add_control( 'filter_source', [ 'label' => esc_html__( 'Source ', 'sonaar-music' ), 'type' => Controls_Manager::SELECT, 'label_block' => false, 'options' => $this->check_column_plugin_activated(), 'default' => 'object', ] ); $filter_repeater->add_control( 'filter_acf', [ 'label' => __( 'ACF Field', 'sonaar-music' ), 'description' => esc_html__( 'Only field types Select/Checkbox/Radio or Taxonomy are accepted', 'sonaar-music' ), 'type' => \Elementor\Controls_Manager::SELECT, 'default' => '', 'groups' => $this->get_acf_fields_for_elementor(['select', 'checkbox', 'radio', 'taxonomy']), 'condition' => [ 'filter_source' => 'acf', ], ] ); if (function_exists('jet_engine')){ $meta_fields = $this->get_meta_fields_for_post_type(); if ( ! empty( $meta_fields ) ) { $filter_repeater->add_control( 'filter_jetengine', [ 'label' => __( 'Meta Field', 'sonaar-music' ), 'description' => esc_html__( 'Only metafield types Select/Checkbox or Radio are accepted', 'sonaar-music' ), 'type' => \Elementor\Controls_Manager::SELECT, 'default' => '', 'groups' => $meta_fields, 'condition' => [ 'filter_source' => 'jetengine', ], ] ); } } $filter_repeater->add_control( 'filter_object', [ 'label' => __( 'Object Field', 'sonaar-music' ), 'type' => \Elementor\Controls_Manager::SELECT, 'default' => '', 'groups' => $this->get_object_fields(), 'condition' => [ 'filter_source' => 'object', ], ] ); $filter_repeater->add_control( 'filter_key', [ 'label' => __( 'Custom Meta Key', 'sonaar-music' ), 'description' => esc_html__( 'Only custom key that outputs an array with multiple choices are accepted', 'sonaar-music' ), 'type' => \Elementor\Controls_Manager::TEXT, 'label_block' => true, 'condition' => [ 'filter_source' => 'customkey', ], ] ); $filter_repeater->add_control( 'filter_selecttype', [ 'label' => esc_html__( 'Select Type', 'sonaar-music' ), 'type' => Controls_Manager::SELECT, 'options' => [ 'singleselect' => esc_html__( 'Single Select', 'sonaar-music' ), 'multiselect' => esc_html__( 'Multiple Select - Relation (All)', 'sonaar-music' ), 'multiselect_or' => esc_html__( 'Multiple Select - Relation (OR)', 'sonaar-music' ), ], 'separator' => 'before', 'default' => 'singleselect', ] ); $this->add_control( 'filter_repeater', [ 'label' => esc_html__( 'Add New Filter', 'sonaar-music' ), 'type' => \Elementor\Controls_Manager::REPEATER, 'prevent_empty' => false, 'fields' => $filter_repeater->get_controls(), 'title_field' => '{{{ filter_name }}} <# if ( "object" == filter_source ) { #> :: {{{ filter_object }}} <# } #> <# if ( "acf" == filter_source ) { #> :: {{{ filter_acf }}} <# } #> <# if ( "jetengine" == filter_source ) { #> :: {{{ filter_jetengine }}} <# } #> <# if ( "customkey" == filter_source ) { #> :: {{{ filter_key }}} <# } #>', 'condition' => [ 'filter_type!' => 'range', ], ] ); $this->add_responsive_control( 'items_per_page', [ 'label' => esc_html__( 'How many items to list initially?', 'sonaar-music' ), 'description' => esc_html__( 'If an number is specified, a Show More button will be displayed below the item list', 'sonaar-music' ), 'type' => Controls_Manager::NUMBER, 'default' => '', 'dynamic' => [ 'active' => true, ], 'condition' => [ 'filter_type' => 'tags', ], ] ); $this->add_control( 'show_more_label', [ 'label' => esc_html__( 'Show More Label', 'sonaar-music' ), 'type' => Controls_Manager::TEXT, 'default' => __('Show More', 'sonaar-music'), 'dynamic' => [ 'active' => true, ], 'condition' => [ 'items_per_page!' => '', ], ] ); $this->add_control( 'show_less_label', [ 'label' => esc_html__( 'Show Less Label', 'sonaar-music' ), 'type' => Controls_Manager::TEXT, 'default' => __('Show Less', 'sonaar-music'), 'dynamic' => [ 'active' => true, ], 'condition' => [ 'items_per_page!' => '', ], ] ); $this->add_responsive_control( 'filter_open_on_init', [ 'label' => __( 'Display Dropdown Open
      (Can close)', 'sonaar-music' ), 'render_type' => 'template', 'type' => Controls_Manager::SWITCHER, 'default' => '', 'return_value' => 'true', 'separator' => 'before', 'condition' => [ 'filter_type' => 'dropdowns', ], ] ); $this->add_responsive_control( 'filter_close_on_select', [ 'label' => __( 'Close on Select', 'sonaar-music' ), 'render_type' => 'template', 'type' => Controls_Manager::SWITCHER, 'default' => '', 'return_value' => 'true', 'separator' => 'before', 'condition' => [ 'filter_type' => 'dropdowns', ], ] ); $this->add_responsive_control( 'filter_searchable', [ 'label' => __( 'Add Search in the Dropdown', 'sonaar-music' ), 'render_type' => 'template', 'type' => Controls_Manager::SWITCHER, 'default' => '', 'return_value' => 'true', 'separator' => 'before', 'condition' => [ 'filter_type' => 'dropdowns', ], ] ); $this->add_responsive_control( 'filter_open_always', [ 'label' => __( 'Display Dropdown Always Open
      (Cannot Close)', 'sonaar-music' ), 'render_type' => 'template', 'type' => Controls_Manager::SWITCHER, 'default' => '', 'return_value' => 'true', 'separator' => 'before', 'condition' => [ 'filter_type' => 'dropdowns', ], ] ); $this->add_responsive_control( 'filter_position_relative', [ 'label' => esc_html__( 'Move Content Below when Dropdown Open', 'sonaar-music' ), 'type' => Controls_Manager::SWITCHER, 'default' => '', 'return_value' => 'true', 'separator' => 'before', 'selectors' => [ '{{WRAPPER}} .multiselect__content-wrapper' => 'position:relative;', ], 'condition' => [ 'filter_type' => 'dropdowns', ], ] ); $this->add_control( 'target_id', [ 'label' => esc_html__( 'Target Player ID', 'sonaar-music' ), 'description' => esc_html__( 'Add your player id WITHOUT the Pound key. e.g: my-id. Leave blank if only one player is used in this page', 'sonaar-music' ), 'separator' => 'before', 'type' => Controls_Manager::TEXT, 'default' => '', 'dynamic' => [ 'active' => true, ], 'style_transfer' => false, ] ); $this->end_controls_section(); /** * STYLE: DROPDOWN STYLE * ------------------------------------------------- */ $this->start_controls_section( 'filter_style', [ 'label' => esc_html__( 'Dropdown Style', 'sonaar-music' ), 'tab' => Controls_Manager::TAB_STYLE, 'condition' => [ 'filter_type' => 'dropdowns', ], ] ); $this->add_responsive_control( 'filter_justify', [ 'label' => esc_html_x( 'Justify Content', 'Flex Container Control', 'elementor' ), 'type' => Controls_Manager::CHOOSE, 'label_block' => true, 'default' => '', 'options' => [ 'flex-start' => [ 'title' => esc_html_x( 'Start', 'Flex Container Control', 'elementor' ), 'icon' => 'eicon-flex eicon-justify-start-h', ], 'center' => [ 'title' => esc_html_x( 'Center', 'Flex Container Control', 'elementor' ), 'icon' => 'eicon-flex eicon-justify-center-h', ], 'flex-end' => [ 'title' => esc_html_x( 'End', 'Flex Container Control', 'elementor' ), 'icon' => 'eicon-flex eicon-justify-end-h', ], 'space-between' => [ 'title' => esc_html_x( 'Space Between', 'Flex Container Control', 'elementor' ), 'icon' => 'eicon-flex eicon-justify-space-between-h', ], 'space-around' => [ 'title' => esc_html_x( 'Space Around', 'Flex Container Control', 'elementor' ), 'icon' => 'eicon-flex eicon-justify-space-around-h', ], 'space-evenly' => [ 'title' => esc_html_x( 'Space Evenly', 'Flex Container Control', 'elementor' ), 'icon' => 'eicon-flex eicon-justify-space-evenly-h', ], ], 'selectors' => [ '{{WRAPPER}} .srp-filters-container' => 'justify-content: {{VALUE}};', ], ] ); $this->add_control( 'filter_color', [ 'label' => esc_html__( 'Color', 'sonaar-music' ), 'type' => Controls_Manager::COLOR, 'default' => '', 'separator' => 'before', 'selectors' => [ '{{WRAPPER}} .srp-filters-widget' => 'color:{{VALUE}};', '{{WRAPPER}} .srp-filters-widget .multiselect__tags' => 'color:{{VALUE}};border-color:{{VALUE}};', '{{WRAPPER}} .srp-filters-widget .multiselect__select:before' => 'border-color:{{VALUE}} transparent transparent transparent;', '{{WRAPPER}} .srp-filters-widget .multiselect__content-wrapper' => 'color:{{VALUE}};border-color:{{VALUE}};', ], ] ); $this->add_control( 'filter_bg_color', [ 'label' => esc_html__( 'Background Color', 'sonaar-music' ), 'type' => Controls_Manager::COLOR, 'default' => '', 'separator' => '', 'selectors' => [ '{{WRAPPER}} .srp-filters-widget .multiselect__tags' => 'background-color:{{VALUE}};', '{{WRAPPER}} .srp-filters-widget .multiselect__content-wrapper' => 'background-color:{{VALUE}};', ], ] ); $this->add_group_control( Group_Control_Typography::get_type(), [ 'name' => 'filter_typography', 'label' => esc_html__( 'Typography', 'sonaar-music' ), 'scheme' => Typography::TYPOGRAPHY_1, 'selector' => '{{WRAPPER}} .srp-filters-widget', ] ); $this->add_responsive_control( 'filter_width', [ 'label' => esc_html__( 'Dropdown Width', 'sonaar-music' ), 'type' => Controls_Manager::SLIDER, 'size_units' => [ 'px','%' ], 'range' => [ 'px' => [ 'min' => 0, 'max' => 1000, 'step' => 1, ], ], 'default' => [ 'unit' => 'px', 'size' => 200, ], 'separator' => 'before', 'selectors' => [ '{{WRAPPER}} .srp-filters-widget' => 'width: {{SIZE}}{{UNIT}};', ], ] ); $this->add_responsive_control( 'filter_height', [ 'label' => esc_html__( 'Dropdown Selector Height (px)', 'sonaar-music' ), 'type' => Controls_Manager::SLIDER, 'size_units' => [ 'px' ], 'range' => [ 'px' => [ 'min' => 0, 'max' => 100, 'step' => 1, ], ], 'default' => [ 'unit' => 'px', 'size' => 30, ], 'selectors' => [ '{{WRAPPER}} .srp-filters-container .multiselect__tags' => 'height: {{SIZE}}{{UNIT}};', ], ] ); $this->add_control( 'filter_border', [ 'label' => esc_html__( 'Border Type', 'sonaar-music' ), 'type' => Controls_Manager::SELECT, 'options' => [ 'none' => esc_html__( 'None', 'elementor' ), 'solid' => _x( 'Solid', 'Border Control', 'elementor' ), 'dotted' => _x( 'Dotted', 'Border Control', 'elementor' ), 'dashed' => _x( 'Dashed', 'Border Control', 'elementor' ), ], 'selectors' => [ '{{WRAPPER}} .srp-filters-widget .multiselect__tags' => 'border-top-style: {{VALUE}};border-bottom-style: {{VALUE}};border-left-style: {{VALUE}};border-right-style: {{VALUE}};', '{{WRAPPER}} .srp-filters-widget .multiselect__content-wrapper' => 'border-top-style: {{VALUE}};border-bottom-style: {{VALUE}};border-left-style: {{VALUE}};border-right-style: {{VALUE}};', ], 'separator' => 'before', ] ); $this->add_responsive_control( 'filter_border_dimension', [ 'label' => esc_html__( 'Width', 'elementor-pro' ), 'type' => Controls_Manager::DIMENSIONS, 'size_units' => [ 'px', 'em', '%' ], 'selectors' => [ '{{WRAPPER}} .srp-filters-widget .multiselect__tags' => 'border-width: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};', '{{WRAPPER}} .srp-filters-widget .multiselect__content-wrapper' => 'border-width: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};', ], 'condition' => [ 'filter_border!' => 'none', ], ] ); $this->add_control( 'filter_border_color', [ 'label' => esc_html__( 'Color', 'elementor-pro' ), 'type' => Controls_Manager::COLOR, 'selectors' => [ '{{WRAPPER}} .srp-filters-widget .multiselect__tags' => 'border-color: {{VALUE}};', '{{WRAPPER}} .srp-filters-widget .multiselect__content-wrapper' => 'border-color: {{VALUE}};', ], 'condition' => [ 'filter_border!' => 'none', ], ] ); $this->add_responsive_control( 'filter_border_radius', [ 'label' => esc_html__( 'Radius', 'elementor-pro' ), 'type' => Controls_Manager::DIMENSIONS, 'size_units' => [ 'px', 'em', '%' ], 'selectors' => [ '{{WRAPPER}} .srp-filters-widget .multiselect__tags' => 'border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};', ], ] ); $this->end_controls_section(); $this->start_controls_section( 'filter_box_style', [ 'label' => esc_html__( 'Dropdown Options Style', 'sonaar-music' ), 'tab' => Controls_Manager::TAB_STYLE, 'condition' => [ 'filter_type' => 'dropdowns', ], ] ); $this->add_group_control( Group_Control_Typography::get_type(), [ 'name' => 'filter_box_typography', 'label' => esc_html__( 'Typography', 'sonaar-music' ), 'scheme' => Typography::TYPOGRAPHY_1, 'selector' => '{{WRAPPER}} .srp-filters-widget .multiselect__content-wrapper', ] ); $this->add_responsive_control( 'filter_value_height', [ 'label' => esc_html__( 'Dropdown Max Height (px)', 'sonaar-music' ), 'type' => Controls_Manager::SLIDER, 'size_units' => [ 'px', ], 'range' => [ 'px' => [ 'min' => 0, 'max' => 2000, 'step' => 1, ], ], 'selectors' => [ '{{WRAPPER}} .multiselect__content-wrapper' => 'max-height: {{SIZE}}{{UNIT}}!important;', ], ] ); $this->add_responsive_control( 'filter_box_space', [ 'label' => esc_html__( 'Space Top', 'sonaar-music' ) . ' (px)', 'type' => Controls_Manager::SLIDER, 'size_units' => [ 'px' ], 'range' => [ 'px' => [ 'min' => 0, 'max' => 100, ], ], 'selectors' => [ '{{WRAPPER}} .srp-filters-widget .multiselect__content-wrapper' => 'top: {{SIZE}}px;', ], ] ); $this->add_responsive_control( 'filter_box_item_padding', [ 'label' => esc_html__( 'Item Padding', 'elementor-pro' ), 'type' => Controls_Manager::DIMENSIONS, 'size_units' => [ 'px', 'em', '%' ], 'selectors' => [ '{{WRAPPER}} .multiselect__option' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};', ], ] ); $this->start_controls_tabs( 'filter_box_colors' ); $this->start_controls_tab( 'filter_box_normal', [ 'label' => esc_html__( 'Normal', 'elementor' ), ] ); $this->add_control( 'filter_box_color', [ 'label' => esc_html__( 'Color', 'sonaar-music' ), 'type' => Controls_Manager::COLOR, 'default' => '', 'separator' => '', 'selectors' => [ '{{WRAPPER}} .srp-filters-widget .multiselect__content-wrapper' => 'color:{{VALUE}};', ], ] ); $this->add_control( 'filter_box_bg_color', [ 'label' => esc_html__( 'Background Color', 'sonaar-music' ), 'type' => Controls_Manager::COLOR, 'default' => '', 'separator' => '', 'selectors' => [ '{{WRAPPER}} .srp-filters-widget .multiselect__content-wrapper' => 'background-color:{{VALUE}};', ], ] ); $this->end_controls_tab(); $this->start_controls_tab( 'filter_box_hover', [ 'label' => esc_html__( 'Hover', 'elementor' ), ] ); $this->add_control( 'filter_box_color_ho', [ 'label' => esc_html__( 'Color', 'sonaar-music' ), 'type' => Controls_Manager::COLOR, 'default' => '', 'separator' => '', 'selectors' => [ '{{WRAPPER}} .srp-filters-widget .multiselect__content-wrapper .multiselect__option:hover' => 'color:{{VALUE}};', ], ] ); $this->add_control( 'filter_box_bg_color_ho', [ 'label' => esc_html__( 'Background Color', 'sonaar-music' ), 'type' => Controls_Manager::COLOR, 'default' => '', 'separator' => '', 'selectors' => [ '{{WRAPPER}} .srp-filters-widget .multiselect__content-wrapper .multiselect__option:hover' => 'background-color:{{VALUE}};', ], ] ); $this->end_controls_tab(); $this->end_controls_tabs(); $this->add_control( 'filter_box_separator_color', [ 'label' => esc_html__( 'Separator Color', 'sonaar-music' ), 'type' => Controls_Manager::COLOR, 'default' => '', 'separator' => 'before', 'selectors' => [ '{{WRAPPER}} .srp-filters-widget li.multiselect__element' => 'border-bottom-color:{{VALUE}};', ], ] ); $this->add_control( 'filter_box_border', [ 'label' => esc_html__( 'Border Type', 'sonaar-music' ), 'type' => Controls_Manager::SELECT, 'options' => [ 'none' => esc_html__( 'None', 'elementor' ), 'solid' => _x( 'Solid', 'Border Control', 'elementor' ), 'dotted' => _x( 'Dotted', 'Border Control', 'elementor' ), 'dashed' => _x( 'Dashed', 'Border Control', 'elementor' ), ], 'selectors' => [ '{{WRAPPER}} .srp-filters-widget .multiselect__content-wrapper' => 'border-top-style: {{VALUE}};border-bottom-style: {{VALUE}};border-left-style: {{VALUE}};border-right-style: {{VALUE}};', ], ] ); $this->add_responsive_control( 'filter_box_border_dimension', [ 'label' => esc_html__( 'Width', 'elementor-pro' ), 'type' => Controls_Manager::DIMENSIONS, 'size_units' => [ 'px', 'em', '%' ], 'selectors' => [ '{{WRAPPER}} .srp-filters-widget .multiselect__content-wrapper' => 'border-width: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};', ], ] ); $this->add_control( 'filter_box_border_color', [ 'label' => esc_html__( 'Color', 'elementor-pro' ), 'type' => Controls_Manager::COLOR, 'selectors' => [ '{{WRAPPER}} .srp-filters-widget .multiselect__content-wrapper' => 'border-color: {{VALUE}};', ], ] ); $this->add_responsive_control( 'filter_box_border_radius', [ 'label' => esc_html__( 'Radius', 'elementor-pro' ), 'type' => Controls_Manager::DIMENSIONS, 'size_units' => [ 'px', 'em', '%' ], 'selectors' => [ '{{WRAPPER}} .srp-filters-widget .multiselect__content-wrapper' => 'border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};', ], ] ); $this->end_controls_section(); /** * STYLE: BUTTON STYLE * ------------------------------------------------- */ $this->start_controls_section( 'filter_bt_style', [ 'label' => esc_html__( 'Button Style', 'sonaar-music' ), 'tab' => Controls_Manager::TAB_STYLE, 'condition' => [ 'filter_type' => 'tags', ], ] ); $this->add_control( 'filter_bt_hide_label', [ 'label' => esc_html__( 'Hide Label', 'sonaar-music' ), 'type' => Controls_Manager::SWITCHER, 'default' => '', 'return_value' => 'true', 'selectors' => [ '{{WRAPPER}} .srp_filter_button_label' => 'display:none;', ], //'separator' => 'after', ] ); $this->add_group_control( Group_Control_Typography::get_type(), [ 'name' => 'filter_bt_label_typo', 'label' => esc_html__( 'Label Typography', 'sonaar-music' ), 'scheme' => Typography::TYPOGRAPHY_1, 'selector' => '{{WRAPPER}} .srp_filter_button_label', 'condition' => [ 'filter_bt_hide_label' => '', ], ] ); $this->add_control( 'filter_bt_label_color', [ 'label' => esc_html__( 'Label Color', 'sonaar-music' ), 'type' => Controls_Manager::COLOR, 'default' => '', 'separator' => 'after', 'selectors' => [ '{{WRAPPER}} .srp_filter_button_label' => 'color:{{VALUE}};', ], 'condition' => [ 'filter_bt_hide_label' => '', ], ] ); $this->add_control( 'filter_bt_random_color', [ 'label' => esc_html__( 'Use Rainbow Colors on Active', 'sonaar-music' ), 'type' => Controls_Manager::SWITCHER, 'default' => 'false', 'return_value' => 'true', 'separator' => 'after', ] ); $this->add_responsive_control( 'filter_space_between_container', [ 'label' => esc_html__( 'Space Between Container', 'sonaar-music' ) . ' (px)', 'type' => Controls_Manager::SLIDER, 'size_units' => [ 'px' ], 'range' => [ 'px' => [ 'min' => 0, 'max' => 100, ], ], 'selectors' => [ '{{WRAPPER}} .srp_filter_container:not(:last-child)' => 'margin-bottom: {{SIZE}}px;', ], ] ); $this->add_group_control( Group_Control_Typography::get_type(), [ 'name' => 'filter_bt_typo', 'label' => esc_html__( 'Typography', 'sonaar-music' ), 'scheme' => Typography::TYPOGRAPHY_1, 'selector' => '{{WRAPPER}} .srp_filter_button', ] ); $this->add_responsive_control( 'filter_bt_justify', [ 'label' => esc_html_x( 'Justify Content', 'Flex Container Control', 'elementor' ), 'type' => Controls_Manager::CHOOSE, 'label_block' => true, 'default' => '', 'options' => [ 'flex-start' => [ 'title' => esc_html_x( 'Start', 'Flex Container Control', 'elementor' ), 'icon' => 'eicon-flex eicon-justify-start-h', ], 'center' => [ 'title' => esc_html_x( 'Center', 'Flex Container Control', 'elementor' ), 'icon' => 'eicon-flex eicon-justify-center-h', ], 'flex-end' => [ 'title' => esc_html_x( 'End', 'Flex Container Control', 'elementor' ), 'icon' => 'eicon-flex eicon-justify-end-h', ], 'space-between' => [ 'title' => esc_html_x( 'Space Between', 'Flex Container Control', 'elementor' ), 'icon' => 'eicon-flex eicon-justify-space-between-h', ], 'space-around' => [ 'title' => esc_html_x( 'Space Around', 'Flex Container Control', 'elementor' ), 'icon' => 'eicon-flex eicon-justify-space-around-h', ], 'space-evenly' => [ 'title' => esc_html_x( 'Space Evenly', 'Flex Container Control', 'elementor' ), 'icon' => 'eicon-flex eicon-justify-space-evenly-h', ], ], 'selectors' => [ '{{WRAPPER}} .srp_filter_buttons_list,{{WRAPPER}} .srp_filter_button_label ' => 'justify-content: {{VALUE}};', ], ] ); $this->start_controls_tabs( 'filter_bt_colors' ); $this->start_controls_tab( 'filter_bt_normal', [ 'label' => esc_html__( 'Normal', 'elementor' ), ] ); $this->add_control( 'filter_bt_color', [ 'label' => esc_html__( 'Color', 'sonaar-music' ), 'type' => Controls_Manager::COLOR, 'default' => '', 'separator' => '', 'selectors' => [ '{{WRAPPER}} .srp_filter_button' => 'color:{{VALUE}};border-color:{{VALUE}}', ], ] ); $this->add_control( 'filter_bt_color_bg', [ 'label' => esc_html__( 'Background', 'sonaar-music' ), 'type' => Controls_Manager::COLOR, 'default' => '', 'separator' => '', 'selectors' => [ '{{WRAPPER}} .srp_filter_button' => 'background-color:{{VALUE}};', ], ] ); $this->add_control( 'filter_bt_border_color', [ 'label' => esc_html__( 'Border Color', 'elementor-pro' ), 'type' => Controls_Manager::COLOR, 'selectors' => [ '{{WRAPPER}} .srp_filter_button' => 'border-color: {{VALUE}};', ], ] ); $this->end_controls_tab(); $this->start_controls_tab( 'filter_bt_hover', [ 'label' => esc_html__( 'Hover', 'elementor' ), ] ); $this->add_control( 'filter_bt_hover_color', [ 'label' => esc_html__( 'Color', 'sonaar-music' ), 'type' => Controls_Manager::COLOR, 'default' => '', 'separator' => '', 'selectors' => [ '{{WRAPPER}} .srp_filter_button:hover:not(.srp_filter_button--active)' => 'color:{{VALUE}};border-color:{{VALUE}}', ], ] ); $this->add_control( 'filter_bt_hover_color_bg', [ 'label' => esc_html__( 'Background', 'sonaar-music' ), 'type' => Controls_Manager::COLOR, 'default' => '', 'separator' => '', 'selectors' => [ '{{WRAPPER}} .srp_filter_button:hover:not(.srp_filter_button--active)' => 'background-color:{{VALUE}};', ], ] ); $this->add_control( 'filter_bt_hover_border_color', [ 'label' => esc_html__( 'Border Color', 'elementor-pro' ), 'type' => Controls_Manager::COLOR, 'selectors' => [ '{{WRAPPER}} .srp_filter_button:hover:not(.srp_filter_button--active)' => 'border-color: {{VALUE}};', ], ] ); $this->end_controls_tab(); $this->start_controls_tab( 'filter_bt_active', [ 'label' => esc_html__( 'Active', 'elementor' ), ] ); $this->add_control( 'filter_bt_active_color', [ 'label' => esc_html__( 'Color', 'sonaar-music' ), 'type' => Controls_Manager::COLOR, 'default' => '', 'separator' => '', 'selectors' => [ '{{WRAPPER}} .srp_filter_button.srp_filter_button--active' => 'color:{{VALUE}};border-color:{{VALUE}}', ], ] ); $this->add_control( 'filter_bt_active_color_bg', [ 'label' => esc_html__( 'Background', 'sonaar-music' ), 'type' => Controls_Manager::COLOR, 'default' => '', 'separator' => '', 'selectors' => [ '{{WRAPPER}} .srp_filter_button.srp_filter_button--active' => 'background-color:{{VALUE}};', ], 'condition' => [ 'filter_bt_random_color!' => 'true', ], ] ); $this->add_control( 'filter_bt_active_border_color', [ 'label' => esc_html__( 'Border Color', 'elementor-pro' ), 'type' => Controls_Manager::COLOR, 'selectors' => [ '{{WRAPPER}} .srp_filter_button.srp_filter_button--active' => 'border-color: {{VALUE}};', ], 'condition' => [ 'filter_bt_random_color!' => 'true', ], ] ); $this->end_controls_tab(); $this->end_controls_tabs(); $this->add_responsive_control( 'filter_bt_width', [ 'label' => esc_html__( 'Button Width', 'sonaar-music' ), 'type' => Controls_Manager::SLIDER, 'size_units' => [ 'px','%' ], 'range' => [ 'px' => [ 'min' => 0, 'max' => 1000, 'step' => 1, ], ], 'default' => [ 'unit' => 'px', //'size' => 200, ], 'selectors' => [ '{{WRAPPER}} .srp_filter_buttons_list li' => 'width: {{SIZE}}{{UNIT}};', ], 'separator' => 'after', ] ); $this->add_responsive_control( 'filter_bt_align', [ 'label' => esc_html__( 'Text Alignment', 'sonaar-music' ), 'type' => Controls_Manager::CHOOSE, 'options' => [ 'left' => [ 'title' => esc_html__( 'Left', 'elementor' ), 'icon' => 'eicon-h-align-left', ], 'center' => [ 'title' => esc_html__( 'Center', 'elementor' ), 'icon' => 'eicon-h-align-center', ], 'right' => [ 'title' => esc_html__( 'Right', 'elementor' ), 'icon' => 'eicon-h-align-right', ], ], 'default' => '', 'selectors' => [ '{{WRAPPER}} .srp_filter_button' => 'text-align: {{VALUE}};', ], ] ); $this->add_control( 'more_options', [ 'label' => esc_html__( 'Show More Link', 'sonaar-music' ), 'type' => \Elementor\Controls_Manager::HEADING, 'separator' => 'before', 'condition' => [ 'items_per_page!' => '', ], ] ); $this->add_group_control( Group_Control_Typography::get_type(), [ 'name' => 'filter_more_typo', 'label' => esc_html__( 'Typography', 'sonaar-music' ), 'scheme' => Typography::TYPOGRAPHY_1, 'selector' => '{{WRAPPER}} .srp-filter-more-link', 'condition' => [ 'items_per_page!' => '', ], ] ); $this->add_control( 'filter_more_color', [ 'label' => esc_html__( 'Color', 'sonaar-music' ), 'type' => Controls_Manager::COLOR, 'default' => '', 'selectors' => [ '{{WRAPPER}} .srp-filter-more-link' => 'color:{{VALUE}};', ], 'condition' => [ 'items_per_page!' => '', ], ] ); $this->add_control( 'filter_more_color_hover', [ 'label' => esc_html__( 'Color Hover', 'sonaar-music' ), 'type' => Controls_Manager::COLOR, 'default' => '', 'selectors' => [ '{{WRAPPER}} .srp-filter-more-link:hover' => 'color:{{VALUE}};', ], 'condition' => [ 'items_per_page!' => '', ], ] ); $this->end_controls_section(); /** * STYLE: DROPDOWN STYLE * ------------------------------------------------- */ $this->start_controls_section( 'filter_range_style', [ 'label' => esc_html__( 'Range Selector Style', 'sonaar-music' ), 'tab' => Controls_Manager::TAB_STYLE, 'condition' => [ 'filter_type' => 'range', ], ] ); $this->add_control( 'filter_range_hide_label', [ 'label' => esc_html__( 'Hide Label', 'sonaar-music' ), 'type' => Controls_Manager::SWITCHER, 'default' => '', 'return_value' => 'true', 'selectors' => [ '{{WRAPPER}} .srp_filter_button_label' => 'display:none;', ], ] ); $this->add_control( 'filter_range_hide_value', [ 'label' => esc_html__( 'Hide Value', 'sonaar-music' ), 'type' => Controls_Manager::SWITCHER, 'default' => '', 'return_value' => 'true', 'selectors' => [ '{{WRAPPER}} .srp_range_value' => 'display:none;', ], ] ); $this->add_group_control( Group_Control_Typography::get_type(), [ 'name' => 'filter_range_label_typo', 'label' => esc_html__( 'Label Typography', 'sonaar-music' ), 'scheme' => Typography::TYPOGRAPHY_1, 'selector' => '{{WRAPPER}} .srp_range_header', 'condition' => [ 'filter_range_hide_label' => '', ], ] ); $this->add_group_control( Group_Control_Typography::get_type(), [ 'name' => 'filter_range_value_typo', 'label' => esc_html__( 'Value Typography', 'sonaar-music' ), 'scheme' => Typography::TYPOGRAPHY_1, 'selector' => '{{WRAPPER}} .srp_range_value', 'condition' => [ 'filter_range_hide_value' => '', ], ] ); $this->add_control( 'filter_range_label_color', [ 'label' => esc_html__( 'Label Color', 'sonaar-music' ), 'type' => Controls_Manager::COLOR, 'default' => '', 'selectors' => [ '{{WRAPPER}} .srp_range_header' => 'color:{{VALUE}};', ], 'conditions' => [ 'relation' => 'or', 'terms' => [ [ 'name' => 'filter_range_hide_label', 'operator' => '==', 'value' => '', ], [ 'name' => 'filter_range_hide_value', 'operator' => '==', 'value' => '', ], ], ], ] ); $this->add_control( 'filter_range_rail_color', [ 'label' => esc_html__( 'Rail Color', 'sonaar-music' ), 'type' => Controls_Manager::COLOR, 'separator' => 'before', 'default' => '', 'selectors' => [ '{{WRAPPER}} .vue-slider-rail' => 'background-color:{{VALUE}};', ], ] ); $this->add_control( 'filter_range_rail_active_color', [ 'label' => esc_html__( 'Slider Rail Active Color', 'sonaar-music' ), 'type' => Controls_Manager::COLOR, 'default' => '', 'selectors' => [ '{{WRAPPER}} .vue-slider-process' => 'background-color:{{VALUE}};', ], ] ); $this->add_responsive_control( 'filter_range_rail_height', [ 'label' => esc_html__( 'Rail Height', 'sonaar-music' ), 'type' => Controls_Manager::SLIDER, 'range' => [ 'px' => [ 'max' => 50, ], ], 'selectors' => [ '{{WRAPPER}} .vue-slider' => 'height:{{SIZE}}px!important;', ], ] ); $this->add_control( 'filter_range_hide_marks', [ 'label' => esc_html__( 'Hide Marks', 'sonaar-music' ), 'separator' => 'before', 'type' => Controls_Manager::SWITCHER, 'default' => '', 'return_value' => 'true', 'selectors' => [ '{{WRAPPER}} .vue-slider-marks' => 'display:none;', ], //'separator' => 'after', ] ); $this->add_group_control( Group_Control_Typography::get_type(), [ 'name' => 'filter_range_mark_typo', 'label' => esc_html__( 'Marks Typography', 'sonaar-music' ), 'scheme' => Typography::TYPOGRAPHY_1, 'selector' => '{{WRAPPER}} .vue-slider-mark-label', 'condition' => [ 'filter_range_hide_marks' => '', ], ] ); $this->add_control( 'filter_range_mark_label_color', [ 'label' => esc_html__( 'Marks Color', 'sonaar-music' ), 'type' => Controls_Manager::COLOR, 'default' => '', 'selectors' => [ '{{WRAPPER}} .vue-slider-mark-label' => 'color:{{VALUE}};', ], 'condition' => [ 'filter_range_hide_marks' => '', ], ] ); $this->add_control( 'filter_range_handle_color', [ 'label' => esc_html__( 'Handles Color', 'sonaar-music' ), 'type' => Controls_Manager::COLOR, 'separator' => 'before', 'default' => '', 'selectors' => [ '{{WRAPPER}} .vue-slider-dot-handle' => 'background-color:{{VALUE}};', ], ] ); $this->add_group_control( Group_Control_Box_Shadow::get_type(), [ 'name' => 'filter_range_handle_shadow', 'label' => esc_html__( 'Handles Shadow', 'sonaar-music' ), 'selector' => '{{WRAPPER}} .vue-slider-dot-handle', ] ); $this->add_group_control( Group_Control_Box_Shadow::get_type(), [ 'name' => 'filter_range_handle_hover_shadow', 'label' => esc_html__( 'Handles Hover Shadow', 'sonaar-music' ), 'selector' => '{{WRAPPER}} .vue-slider-dot-handle:hover, {{WRAPPER}} .vue-slider-dot-handle-focus', ] ); $this->add_responsive_control( 'filter_range_handle_size', [ 'label' => esc_html__( 'Handles Size', 'sonaar-music' ), 'type' => Controls_Manager::SLIDER, 'range' => [ 'px' => [ 'max' => 50, ], ], 'selectors' => [ '{{WRAPPER}} .vue-slider-dot' => 'width:{{SIZE}}px!important;height:{{SIZE}}px!important;', ], 'separator' => 'after', ] ); $this->add_group_control( Group_Control_Typography::get_type(), [ 'name' => 'filter_range_tooltip_typo', 'label' => esc_html__( 'Tooltip Typography', 'sonaar-music' ), 'scheme' => Typography::TYPOGRAPHY_1, 'selector' => '{{WRAPPER}} .vue-slider-dot-tooltip-inner', ] ); $this->add_control( 'filter_range_tooltip_color', [ 'label' => esc_html__( 'Tooltip Font Color', 'sonaar-music' ), 'type' => Controls_Manager::COLOR, 'default' => '', 'selectors' => [ '{{WRAPPER}} .vue-slider-dot-tooltip-inner' => 'color:{{VALUE}};', ], ] ); $this->add_control( 'filter_range_tooltip_background_color', [ 'label' => esc_html__( 'Tooltip Background', 'sonaar-music' ), 'type' => Controls_Manager::COLOR, 'default' => '', 'selectors' => [ '{{WRAPPER}} .vue-slider-dot-tooltip-inner' => 'background-color:{{VALUE}};border-color:{{VALUE}};', ], ] ); $this->add_control( 'filter_bt_tempo', [ 'label' => esc_html__( 'Hide Tempo Buttons', 'sonaar-music' ), 'type' => Controls_Manager::SWITCHER, 'default' => '', 'return_value' => 'true', 'selectors' => [ '{{WRAPPER}} .srp_range_buttons' => 'display:none;', ], 'separator' => 'before', ] ); $this->add_group_control( Group_Control_Typography::get_type(), [ 'name' => 'filter_range_button_typo', 'label' => esc_html__( 'Tempo Buttons Typography', 'sonaar-music' ), 'scheme' => Typography::TYPOGRAPHY_1, 'selector' => '{{WRAPPER}} .srp_filter_button', 'condition' => [ 'filter_bt_tempo' => '', ], ] ); $this->start_controls_tabs( 'filter_range_bt', [ 'condition' => [ 'filter_bt_tempo' => [ '' ], ], ] ); //$this->start_controls_tabs( 'filter_range_bt' ); $this->start_controls_tab( 'filter_range_bt_normal', [ 'label' => esc_html__( 'Normal', 'elementor' ), ] ); $this->add_control( 'filter_range_bt_color', [ 'label' => esc_html__( 'Color', 'sonaar-music' ), 'type' => Controls_Manager::COLOR, 'default' => '', 'separator' => '', 'selectors' => [ '{{WRAPPER}} .srp_filter_button' => 'color:{{VALUE}};border-color:{{VALUE}}', ], ] ); $this->add_control( 'filter_range_bt_color_bg', [ 'label' => esc_html__( 'Background', 'sonaar-music' ), 'type' => Controls_Manager::COLOR, 'default' => '', 'separator' => '', 'selectors' => [ '{{WRAPPER}} .srp_filter_button' => 'background-color:{{VALUE}};', ], ] ); $this->add_group_control( Group_Control_Border::get_type(), [ 'name' => 'filter_range_bt_border', 'selector' => '{{WRAPPER}} .srp_filter_button', ] ); $this->end_controls_tab(); $this->start_controls_tab( 'filter_range_bt_hover', [ 'label' => esc_html__( 'Hover', 'elementor' ), ] ); $this->add_control( 'filter_range_bt_hover_color', [ 'label' => esc_html__( 'Color', 'sonaar-music' ), 'type' => Controls_Manager::COLOR, 'default' => '', 'separator' => '', 'selectors' => [ '{{WRAPPER}} .srp_filter_button:hover' => 'color:{{VALUE}};border-color:{{VALUE}}', ], ] ); $this->add_control( 'filter_range_bt_hover_color_bg', [ 'label' => esc_html__( 'Background', 'sonaar-music' ), 'type' => Controls_Manager::COLOR, 'default' => '', 'separator' => '', 'selectors' => [ '{{WRAPPER}} .srp_filter_button:hover' => 'background-color:{{VALUE}};', ], ] ); $this->add_control( 'filter_range_bt_hover_border_color', [ 'label' => esc_html__( 'Border Color', 'elementor' ), 'type' => Controls_Manager::COLOR, 'selectors' => [ '{{WRAPPER}} .srp_filter_button:hover' => 'border-color: {{VALUE}};', ], ] ); $this->end_controls_tab(); $this->start_controls_tab( 'filter_range_bt_active', [ 'label' => esc_html__( 'Active', 'elementor' ), ] ); $this->add_control( 'filter_range_bt_active_color', [ 'label' => esc_html__( 'Color', 'sonaar-music' ), 'type' => Controls_Manager::COLOR, 'default' => '', 'separator' => '', 'selectors' => [ '{{WRAPPER}} .srp_filter_button:focus' => 'opacity:1;color:{{VALUE}};border-color:{{VALUE}}', ], ] ); $this->add_control( 'filter_range_bt_active_color_bg', [ 'label' => esc_html__( 'Background', 'sonaar-music' ), 'type' => Controls_Manager::COLOR, 'default' => '', 'separator' => '', 'selectors' => [ '{{WRAPPER}} .srp_filter_button:focus' => 'background-color:{{VALUE}};', ], ] ); $this->add_control( 'filter_range_bt_active_border_color', [ 'label' => esc_html__( 'Border Color', 'elementor-pro' ), 'type' => Controls_Manager::COLOR, 'selectors' => [ '{{WRAPPER}} .srp_filter_button:focus' => 'border-color: {{VALUE}};', ], ] ); $this->end_controls_tab(); $this->end_controls_tabs(); $this->add_responsive_control( 'filter_range_bt_radius', [ 'label' => esc_html__( 'Button Radius', 'elementor' ), 'separator' => 'before', 'type' => Controls_Manager::SLIDER, 'range' => [ 'px' => [ 'max' => 300, ], ], 'selectors' => [ '{{WRAPPER}} .srp_filter_button' => 'border-radius: {{SIZE}}px;', ], 'condition' => [ 'filter_bt_tempo' => '', ], ] ); $this->add_responsive_control( 'filter_range_bt_width', [ 'label' => esc_html__( 'Button Width', 'sonaar-music' ), 'type' => Controls_Manager::SLIDER, 'size_units' => [ 'px','%' ], 'range' => [ 'px' => [ 'min' => 0, 'max' => 1000, 'step' => 1, ], ], 'default' => [ 'unit' => 'px', //'size' => 200, ], 'selectors' => [ '{{WRAPPER}} .srp_filter_button' => 'width: {{SIZE}}{{UNIT}};', ], 'condition' => [ 'filter_bt_tempo' => '', ], ] ); $this->add_responsive_control( 'filter_range_bt_align', [ 'label' => esc_html__( 'Text Alignment', 'sonaar-music' ), 'type' => Controls_Manager::CHOOSE, 'options' => [ 'left' => [ 'title' => esc_html__( 'Left', 'elementor' ), 'icon' => 'eicon-h-align-left', ], 'center' => [ 'title' => esc_html__( 'Center', 'elementor' ), 'icon' => 'eicon-h-align-center', ], 'right' => [ 'title' => esc_html__( 'Right', 'elementor' ), 'icon' => 'eicon-h-align-right', ], ], 'default' => '', 'separator' => 'before', 'selectors' => [ '{{WRAPPER}} .srp_filter_button' => 'text-align: {{VALUE}};', ], 'condition' => [ 'filter_bt_tempo' => '', ], ] ); $this->add_control( 'filter_range_container_bg_color', [ 'label' => esc_html__( 'Container Background Color', 'sonaar-music' ), 'type' => Controls_Manager::COLOR, 'separator' => 'before', 'default' => '', 'selectors' => [ '{{WRAPPER}} .srp_range_container' => 'background-color:{{VALUE}};', ], ] ); $this->add_responsive_control( 'filter_range_container_bg_radius', [ 'label' => esc_html__( 'Container Radius', 'elementor' ), 'type' => Controls_Manager::SLIDER, 'range' => [ 'px' => [ 'max' => 300, ], ], 'selectors' => [ '{{WRAPPER}} .srp_range_container' => 'border-radius: {{SIZE}}px;', ], ] ); $this->add_responsive_control( 'filter_range_container_bg_padding', [ 'label' => esc_html__( 'Container Padding', 'elementor-pro' ), 'type' => Controls_Manager::DIMENSIONS, 'size_units' => [ 'px', 'em', '%' ], 'selectors' => [ '{{WRAPPER}} .srp_range_container' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};', ], ] ); $this->end_controls_section(); } protected function render() { $settings = $this->get_settings_for_display(); $thesettings = array(); $shortcode = '[sonaar_filters'; $shortcode .= ' filtertype="' . $settings['filter_type'] . '"'; $shortcode .= ' player_id="' . $settings['target_id'] . '"'; $shortcode .= (isset($settings['items_per_page']) && $settings['items_per_page'] !== '') ? ' items_per_page="' . $settings['items_per_page'] . '"' : ''; $shortcode .= (isset($settings['show_more_label']) && $settings['show_more_label'] !== '') ? ' show_more_label="' . $settings['show_more_label'] . '"' : ''; $shortcode .= (isset($settings['show_less_label']) && $settings['show_less_label'] !== '') ? ' show_less_label="' . $settings['show_less_label'] . '"' : ''; $shortcode .= (isset($settings['filter_open_always']) && $settings['filter_open_always'] == 'true') ? ' open_always="true"' : ''; $shortcode .= (isset($settings['filter_open_on_init']) && $settings['filter_open_on_init'] == 'true') ? ' open_on_init="true"' : ''; $shortcode .= (isset($settings['filter_close_on_select']) && $settings['filter_close_on_select'] == 'true') ? ' close_on_select="true"' : ''; $shortcode .= (isset($settings['filter_searchable']) && $settings['filter_searchable'] == 'true') ? ' searchable="true"' : ''; $randomColor = ($settings['filter_bt_random_color'] == 'true') ? 'true' : 'false'; $shortcode .= ' randomcolor="' . $randomColor . '"'; $filter_repeater_ar = array(); if ( $settings['filter_repeater'] ){ $thesettings = $settings['filter_repeater']; } if( $settings['range_repeater']){ $thesettings = $settings['range_repeater']; } foreach ($thesettings as $key => $value) { //var_dump($value['filter_width']); $value['filter_name'] = ($value['filter_name']) ? $value['filter_name'] : ''; //$value['filter_width']['size'] = ($value['filter_width']['size']) ? $value['filter_width']['size'] : '100'; //$value['column_width']['unit'] = ($value['filter_width']['unit']) ? $value['filter_width']['unit'] : 'px'; $fieldKey = ''; if($value['filter_key'] != '' ){ $value[$fieldKey] = $value['filter_key']; }else if($value['filter_source'] == 'customkey' && $value['filter_key'] == '' ){ $value[$fieldKey] = 'null'; }else{ $fieldKey = 'filter_' . $value['filter_source']; } $value['filter_min'] = (isset($value['filter_min'])) ? $value['filter_min'] : ''; $value['filter_max'] = (isset($value['filter_max'])) ? $value['filter_max'] : ''; $value['filter_unit'] = (isset($value['filter_unit'])) ? $value['filter_unit'] : ''; array_push( $filter_repeater_ar, $value['filter_name'] . '::' . $value[$fieldKey] . '::' . $value['filter_selecttype'] . '::' . $value['filter_min'] . '::' . $value['filter_max']. '::' . $value['filter_unit']); } $filter_repeater_ar = (isset($filter_repeater_ar) && is_array($filter_repeater_ar)) ? implode(";", $filter_repeater_ar):''; $shortcode .= ($filter_repeater_ar != '') ? ' filter="' . $filter_repeater_ar . '"':''; $shortcode .= ']'; //Attention: double brackets are required if using var_dump to display a shortcode otherwise it will render it! //print_r("Shortcode = [" . $shortcode . "]"); //[sonaar_filters id="id1" filter="Mood JE::je-category;BPM:: field_633b32f18c398;Post Tags::post_tags;Prod Tag::product_tag;Product Cat::product_cat;Tax Cat::playlist-cat;Podcast Show::podcast-show;GENRE1::acf_genrez;Mood::field_6337226914be2;True or False::field_63275a663952c"][/sonaar_filters] echo do_shortcode( $shortcode ); } private function check_column_plugin_activated( $filter_type = '' ){ $source = array( 'object' => __( 'Post/Term/User/Object Data', 'sonaar-music' ), ); if (function_exists( 'acf_get_fields' )){ $source['acf'] = 'ACF'; } if($filter_type !== 'range'){ if (function_exists( 'jet_engine' )){ $source['jetengine'] = 'Jet Engine'; } } $source['customkey'] = 'Custom Meta Key'; return $source; } /** * Retuns current object fields array * @return [type] [description] */ public function get_object_fields( $filter_type = '' ) { if($filter_type == 'range'){ $groups = array( array( 'label' => __( 'Player', 'sonaar-music' ), 'options' => array( 'track_length' => esc_html__( 'Track Length', 'sonaar-music' ), ) ), ); }else{ $groups = array( array( 'label' => __( 'Player', 'sonaar-music' ), 'options' => array( '' => __( 'Select...', 'sonaar-music' ), 'playlist-category' => sprintf( esc_html__( '%1$s Category', 'sonaar-music' ), ucfirst(Sonaar_Music_Admin::sr_GetString('playlist')) ),//__( 'Audio Image', 'sonaar-music' ), 'playlist-tag' => sprintf( esc_html__( '%1$s Tag', 'sonaar-music' ), ucfirst(Sonaar_Music_Admin::sr_GetString('playlist')) ),//__( 'Audio Image', 'sonaar-music' ), ) ), ); if ( Sonaar_Music::get_option('player_type', 'srmp3_settings_general') == 'podcast' ){ $groups[0]['options']+= array( 'podcast-show' => __( 'Podcast Show', 'sonaar-music' ) ); } // Get the post types $sr_postypes = Sonaar_Music_Admin::get_cpt($all = true); // Get the taxonomies for the post types $taxonomies = get_object_taxonomies($sr_postypes, 'objects'); // Loop through each post type foreach ($sr_postypes as $post_type) { $post_type_obj = get_post_type_object($post_type); $taxonomies = get_object_taxonomies($post_type, 'objects'); $taxonomy_options = array(); foreach ($taxonomies as $taxonomy) { $taxonomy_options[$taxonomy->name] = sprintf( esc_html__( '%1$s', 'sonaar-music' ), ucfirst($taxonomy->labels->singular_name) ); } $groups[] = array( 'label' => sprintf( esc_html__( '%1$s Taxonomies', 'sonaar-music' ), $post_type_obj->labels->singular_name ), 'options' => $taxonomy_options ); } if (defined( 'WC_VERSION' )){ $groups[] = array( 'label' => __( 'WooCommerce', 'sonaar-music' ), 'options' => array( 'product_cat' => __( 'Product Categories', 'sonaar-music' ), 'product_tag' => __( 'Product Tags', 'sonaar-music' ), ) ); $wcAttributes = wc_get_attribute_taxonomy_labels(); $wcAttributes = (is_array($wcAttributes)) ? array_combine( array_keys($wcAttributes), array_map(function($k){ return 'Attribute: '.$k; }, $wcAttributes) ) : ''; $wcAttributes = (is_array($wcAttributes)) ? array_combine( array_map(function($k){ return 'pa_'.$k; }, array_keys($wcAttributes)), $wcAttributes ) : ''; $groups[1]['options'] += $wcAttributes; } } return $groups; } /** * Get meta fields for post type * * @return array */ public function get_meta_fields_for_post_type() { //var_dump(jet_engine()->meta_boxes); if ( jet_engine()->meta_boxes ) { return jet_engine()->meta_boxes->get_fields_for_select( 'text' ); } else { return array(); } } public function render_plain_content() { } } Plugin::instance()->widgets_manager->register( new SR_Filters() );PK!㪐'includes/widgets/srpro-buttonplayer.phpnu[start_controls_section( 'sr_buttonplayer_section', [ 'label' => esc_html__( 'Launch the Sticky Audio Player', 'sonaar-music' ), ] ); $element->add_control( 'sr_music_cpt_toggle', [ 'label' => esc_html__( 'Launch Sticky Audio Player', 'sonaar-music' ), 'type' => \Elementor\Controls_Manager::SWITCHER, 'default' => '', 'description' => esc_html__( 'Important: Make sure the button link parameter is blank in the section above (eg: remove the hashtag #)', 'sonaar-music' ), 'label_on' => 'Yes', 'label_off' => 'No', 'return_value' => 'yes', ] ); $element->add_control( 'sr_music_cpt_getlatest', [ 'label' => esc_html__( 'Play Most Recent Playlist', 'sonaar-music' ), 'type' => \Elementor\Controls_Manager::SWITCHER, 'default' => '', 'label_on' => 'Yes', 'label_off' => 'No', 'return_value' => 'yes', 'condition' => ['sr_music_cpt_toggle' => 'yes','sr_play_current_id!' => 'yes',], ] ); $element->add_control( 'playlist_list', [ 'label' => esc_html__( 'Select Playlist(s)', 'sonaar-music' ), 'label_block' => true, 'type' => \Elementor\Controls_Manager::SELECT, 'multiple' => true, 'options' => sr_plugin_elementor_select_playlist(), 'condition' => ['sr_music_cpt_toggle' => 'yes', 'sr_play_current_id!' => 'yes', 'sr_music_cpt_getlatest!' => 'yes'], ] ); $element->add_control( 'sr_play_current_id', [ 'label' => esc_html__( 'Play its own Post Tracklist', 'sonaar-music' ), 'description' => esc_html__( 'Check this case if you want to launch the sticky player with the tracks found in this post', 'sonaar-music' ), 'type' => \Elementor\Controls_Manager::SWITCHER, 'yes' => esc_html__( 'Yes', 'sonaar-music' ), 'no' => esc_html__( 'No', 'sonaar-music' ), 'return_value' => 'yes', 'default' => '', ] ); $element->add_control( 'notrackskip', [ 'label' => esc_html__( 'Stop when track ends', 'sonaar-music' ), 'type' => \Elementor\Controls_Manager::SWITCHER, 'yes' => esc_html__( 'Yes', 'sonaar-music' ), '' => esc_html__( 'No', 'sonaar-music' ), 'return_value' => 'on', 'default' => '', ] ); $element->add_control( 'nolooptracklist', [ 'label' => esc_html__( 'Do not loop playlist', 'sonaar-music' ), 'type' => \Elementor\Controls_Manager::SWITCHER, 'yes' => esc_html__( 'Yes', 'sonaar-music' ), '' => esc_html__( 'No', 'sonaar-music' ), 'return_value' => 'on', 'default' => '', ] ); $element->end_controls_section(); } public static function renderfnc($button) { if( 'button' === $button->get_name() ) { // Get the settings $settings = $button->get_settings(); if( $settings['sr_music_cpt_toggle'] =="yes" && $settings['playlist_list'] || $settings['sr_play_current_id'] == 'yes') { wp_enqueue_style( 'sonaar-music' ); wp_enqueue_style( 'sonaar-music-pro' ); wp_enqueue_script( 'sonaar-music-mp3player' ); wp_enqueue_script( 'sonaar-music-pro-mp3player' ); wp_enqueue_script( 'sonaar_player' ); if ( function_exists('sonaar_player') ) { add_action('wp_footer','sonaar_player', 12); } if ( $settings['sr_play_current_id']=='yes' ){ //If "Play its own Post ID track" option is enable $display_playlist_ar = get_the_ID(); } else if( $settings['sr_music_cpt_getlatest'] != 'yes' ){ $display_playlist_ar = $settings['playlist_list']; } else { $display_playlist_ar = sr_plugin_elementor_getLatestPost(SR_PLAYLIST_CPT); } $notrackskip = (isset($settings['notrackskip']) && $settings['notrackskip'] === 'on') ? ', notrackskip:"on"' : ''; $notrackskip = (isset($settings['nolooptracklist']) && $settings['nolooptracklist'] === 'on') ? ', nolooptracklist:"on"' : ''; $audiocall = "javascript:IRON.sonaar.player.setPlayerAndPlay({id:" . $display_playlist_ar . $notrackskip . "})"; //print_r($audiocall); $button->add_render_attribute( 'button', 'href', $audiocall, true ); } } } public static function init_control() { add_action( 'elementor/element/button/section_button/after_section_end', [ __CLASS__, 'register_controls' ] ); add_action( 'elementor/widget/before_render_content', [ __CLASS__, 'renderfnc' ] ); } } SRPRO_ButtonPlayer::init_control(); PK!nK-$$includes/widgets/sr-search.phpnu[start_controls_section( 'section_content', [ 'label' => esc_html__( 'Search Bar', 'sonaar-music' ), 'tab' => Controls_Manager::TAB_CONTENT, ] ); $this->add_control( 'placeholder', [ 'label' => esc_html__( 'Placeholder Text', 'sonaar-music' ), 'type' => Controls_Manager::TEXT, 'default' => '', 'placeholder' => esc_html__( 'Enter any keyword', 'sonaar-music' ), 'separator' => 'after', 'dynamic' => [ 'active' => true, ], ] ); $this->add_control( 'url_enable', [ 'label' => esc_html__( 'Redirect the search to another URL ', 'sonaar-music' ), 'type' => Controls_Manager::SWITCHER, 'default' => '', 'return_value' => 'true', ] ); $this->add_control( 'url', [ 'label' => esc_html__( 'URL', 'textdomain' ), 'type' => \Elementor\Controls_Manager::URL, 'placeholder' => esc_html__( 'https://your-link.com', 'textdomain' ), 'options' => [ 'url'], 'default' => [ 'url' => '', 'is_external' => false, 'nofollow' => false, //'custom_attributes' => '', ], 'condition' => [ 'url_enable' => 'true', ], 'label_block' => true, ] ); $this->add_control( 'target_id', [ 'label' => esc_html__( 'Target Player ID', 'sonaar-music' ), 'type' => Controls_Manager::TEXT, 'separator' => 'before', 'default' => '', 'dynamic' => [ 'active' => true, ], 'description' => esc_html__( 'Add your player id WITHOUT the Pound key. e.g: my-id. Leave blank if only one player is used in this page', 'sonaar-music' ), 'style_transfer' => false, ] ); $this->end_controls_section(); /** * STYLE: BUTTON STYLE * ------------------------------------------------- */ $this->start_controls_section( 'filter_bt_style', [ 'label' => esc_html__( 'Search Bar Style', 'sonaar-music' ), 'tab' => Controls_Manager::TAB_STYLE, ] ); $this->add_control( 'searchbar_placeholdercolor', [ 'label' => esc_html__( 'Placeholder Color', 'sonaar-music' ), 'type' => Controls_Manager::COLOR, 'default' => '', 'selectors' => [ '{{WRAPPER}} .srp_search_container .srp_search::placeholder' => 'color: {{VALUE}}', ], ] ); $this->add_control( 'searchbar_color', [ 'label' => esc_html__( 'Keyword Color', 'sonaar-music' ), 'type' => Controls_Manager::COLOR, 'default' => '', 'selectors' => [ '{{WRAPPER}} .srp_search_container .srp_search, {{WRAPPER}} .srp_search_container .fa-search' => 'color: {{VALUE}}', ], ] ); $this->add_control( 'reset_color', [ 'label' => esc_html__( 'Reset Color', 'sonaar-music' ), 'type' => Controls_Manager::COLOR, 'default' => '', 'selectors' => [ '{{WRAPPER}} .srp_search_container .srp_reset_search' => 'color: {{VALUE}}', ], ] ); $this->add_control( 'searchbar_bg', [ 'label' => esc_html__( 'Background Color', 'sonaar-music' ), 'type' => Controls_Manager::COLOR, 'default' => '', 'selectors' => [ '{{WRAPPER}} .srp_search_container .srp_search' => 'background: {{VALUE}}', ], ] ); $this->add_group_control( Group_Control_Typography::get_type(), [ 'name' => 'searchbar_typo', 'label' => esc_html__( 'Typography', 'sonaar-music' ), 'scheme' => Typography::TYPOGRAPHY_1, 'selector' => '{{WRAPPER}} .srp_search_container .srp_search', 'separator' => 'after', ] ); $this->add_responsive_control( 'search_width', [ 'label' => esc_html__( 'Width', 'sonaar-music' ) . ' (px)', 'type' => Controls_Manager::SLIDER, 'range' => [ 'px' => [ 'max' => 2500, ], ], 'size_units' => [ 'px', 'vw', '%' ], 'selectors' => [ //'{{WRAPPER}} .iron-audioplayer .sonaar-grid-2' => 'grid-template-columns: auto {{SIZE}}{{UNIT}};', '{{WRAPPER}} .srp_search_main' => 'width: {{SIZE}}{{UNIT}};', ], //'render_type' => 'template', ] ); $this->add_responsive_control( 'searchbar_padding', [ 'label' => esc_html__( 'Search Bar Padding', 'sonaar-music' ), 'type' => Controls_Manager::DIMENSIONS, 'size_units' => [ 'px', 'em', '%' ], 'selectors' => [ '{{WRAPPER}} .srp_search_container .srp_search' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};', ], ] ); $this->add_control( 'searchbar_border', [ 'label' => esc_html__( 'Border Type', 'sonaar-music' ), 'type' => Controls_Manager::SELECT, 'options' => [ 'none' => esc_html__( 'None', 'elementor' ), 'solid' => _x( 'Solid', 'Border Control', 'elementor' ), 'dotted' => _x( 'Dotted', 'Border Control', 'elementor' ), 'dashed' => _x( 'Dashed', 'Border Control', 'elementor' ), ], 'selectors' => [ '{{WRAPPER}} .srp_search' => 'border-top-style: {{VALUE}};border-bottom-style: {{VALUE}};border-left-style: {{VALUE}};border-right-style: {{VALUE}};', ], 'separator' => 'before', ] ); $this->add_responsive_control( 'searchbar_border_dimension', [ 'label' => esc_html__( 'Width', 'elementor-pro' ), 'type' => Controls_Manager::DIMENSIONS, 'size_units' => [ 'px', 'em', '%' ], 'selectors' => [ '{{WRAPPER}} .srp_search' => 'border-width: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};', ], ] ); $this->add_control( 'searchbar_border_color', [ 'label' => esc_html__( 'Color', 'elementor-pro' ), 'type' => Controls_Manager::COLOR, 'selectors' => [ '{{WRAPPER}} .srp_search' => 'border-color: {{VALUE}};', ], ] ); $this->add_responsive_control( 'searchbar_border_radius', [ 'label' => esc_html__( 'Radius', 'elementor-pro' ), 'type' => Controls_Manager::DIMENSIONS, 'size_units' => [ 'px', 'em', '%' ], 'selectors' => [ '{{WRAPPER}} .srp_search' => 'border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};', ], ] ); $this->add_responsive_control( 'searchbar_container_padding', [ 'label' => esc_html__( 'Search Bar Container Padding', 'sonaar-music' ), 'type' => Controls_Manager::DIMENSIONS, 'size_units' => [ 'px', 'em', '%' ], 'selectors' => [ '{{WRAPPER}} .srp_search_main' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};', ], ] ); $this->add_group_control( Group_Control_Background::get_type(), [ 'name' => 'searchbar_container_bg', 'label' => esc_html__( 'Search Bar Container Background', 'elementor-sonaar' ), 'types' => [ 'classic', 'gradient'], 'selector' => '{{WRAPPER}} .srp_search_main', ] ); $this->end_controls_section(); } protected function render() { $settings = $this->get_settings_for_display(); //var_dump($settings['url']); $shortcode = '[sonaar_search'; $shortcode .= (isset($settings['url']['url'])) ? ' url="' . $settings['url']['url'] . '"' : ''; $shortcode .= ($settings['placeholder']) ? ' placeholder="' . $settings['placeholder'] . '"' : ''; $shortcode .= ' player_id="' . $settings['target_id'] . '"'; $shortcode .= ']'; //Attention: double brackets are required if using var_dump to display a shortcode otherwise it will render it! //print_r("Shortcode = [" . $shortcode . "]"); echo do_shortcode( $shortcode ); } public function render_plain_content() { } } Plugin::instance()->widgets_manager->register( new SR_Search() );PK!nۀ/includes/class-sonaar-music-pro-deactivator.phpnu[ */ class Sonaar_Music_Pro_Deactivator { /** * Short Description. (use period) * * Long Description. * * @since 1.0.0 */ public static function deactivate() { } } PK!}-includes/class-sonaar-music-pro-activator.phpnu[ */ class Sonaar_Music_Pro_Activator { /** * * @since 1.0.0 */ public static function activate() { global $wpdb; require_once( ABSPATH . 'wp-admin/includes/upgrade.php' ); $charset_collate = $wpdb->get_charset_collate(); $max_index_length = 191; $sonaar_events = $wpdb->prefix . 'sonaar_events'; if($wpdb->get_var("show tables like '$sonaar_events'") != $sonaar_events) { $tables = "CREATE TABLE $sonaar_events ( id bigint(20) unsigned NOT NULL AUTO_INCREMENT, action varchar(32) NOT NULL, target_url varchar(255) NOT NULL, target_title text NOT NULL, target_time int(6) NOT NULL DEFAULT 0, page_title text NOT NULL, page_url varchar(255) NOT NULL, client_uid varchar(22) NOT NULL, client_ip varchar(39) NOT NULL, created datetime NOT NULL default '0000-00-00 00:00:00', PRIMARY KEY (id), KEY target_action (action,target_time,created,target_url($max_index_length)) ) $charset_collate;"; dbDelta( $tables ); } } } PK!* includes/index.phpnu[ $data['response'], 'price_id' => printPurchasedPlan() ); wp_send_json( $result ); } add_action( 'wp_ajax_sonaar_music_activateRemoteLicence', 'sonaar_music_activateRemoteLicence' ); function sonaar_music_activateRemoteLicence($localdata) { global $wp_version; $data = ($localdata)? $localdata : $_POST['data']; $data['item_id'] = '5816'; $api_url = 'https://sonaar.io/wp-json/wp/v2/sonaar-api/'; $user_agent = 'SRMP3PRO/' . SRMP3PRO_VERSION . ' WordPress/' . $wp_version . '; ' . get_bloginfo('url'); $data = wp_remote_post($api_url, array( 'body' => array('remotelicence' => $data), 'headers' => array( 'User-Agent' => $user_agent ) )); if ($localdata) { return $data; } wp_send_json( $data ); } function sonaar_music_validateCurrentLicence( $licence ){ if(get_site_url()!='https://sonaar.io'){ if ( $licence ) { return $licence['licenceKey']; } $response = sonaar_music_activateRemoteLicence( array( 'licenceKey' => get_site_option('sonaar_music_licence'), 'siteUrl' => $_SERVER['SERVER_NAME'] ) ); if ( is_wp_error( $response ) ){ return false; } $response = json_decode($response['body']); $register = sonaar_music_registerLicence( array( 'licenceKey'=> get_site_option('sonaar_music_licence'), 'response'=> $response ) ); if (!$register) { return false; } $licence = get_site_transient('sonaar_music_licence'); return $licence['licenceKey']; } } if ( is_admin() ) { sonaar_music_validateCurrentLicence( get_site_transient('sonaar_music_licence') ); } add_action( 'wp_ajax_sonaar_music_clearCache', 'sonaar_music_clearCache' ); function sonaar_music_clearCache($type){ $data = $_POST['data']; switch ($data['type']) { case 'transient': delete_site_transient('sonaar_music_licence'); delete_site_transient('SRMP3_plugin_update_transient'); break; case 'option': delete_site_transient('sonaar_music_licence'); delete_site_transient('SRMP3_plugin_update_transient'); delete_site_option('sonaar_music_licence'); //delete_site_option('SRMP3_ecommerce'); delete_site_option('SRMP3_purchased_plan'); break; default: break; } } add_action( 'wp_ajax_sonaar_music_invalidateLicense', 'sonaar_music_invalidateLicense' ); function sonaar_music_invalidateLicense(){ delete_site_transient('SRMP3_plugin_update_transient'); delete_site_transient('sonaar_music_licence'); delete_site_option('SRMP3_purchased_plan'); } /* * Display Admin Notice when license key expire * */ add_action( 'plugins_loaded', 'sr_plugin_check' ); function sr_plugin_check(){ if ( !class_exists( 'Sonaar_Music' ) ){ add_action( 'admin_notices', 'sonaar_free_required' ); }else{ if (SRMP3_MIN_VERSION > SRMP3_VERSION){ add_action( 'admin_notices', 'sonaar_free_need_update' ); } add_action( 'admin_notices', 'sonnar_admin_notice_license_expire' ); } } function sonaar_free_need_update() { if ( ! current_user_can( 'activate_plugins' ) ) { return; } $action = 'upgrade-plugin'; $slug = 'mp3-music-player-by-sonaar'; $link = wp_nonce_url( add_query_arg( array( 'action' => $action, 'plugin' => $slug ), admin_url( 'update.php' ) ), $action.'_'.$slug ); $message = '

      ' . __( 'WordPress requires MP3 Music Player by Sonaar to be updated to v.' . SRMP3_MIN_VERSION . ' or higher. Your audio player might not be working properly', 'sonaar-music-pro' ) . '

      '; $message .= '

      ' . sprintf( '%s', $link, __( 'Update MP3 Player Now', 'sonaar-music-pro' ) ) . '

      '; echo '

      ' . $message . '

      '; } function sonaar_free_required() { $plugin = 'mp3-music-player-by-sonaar/sonaar-music.php'; if ( _is_sonaar_music_installed() ) { if ( ! current_user_can( 'activate_plugins' ) ) { return; } $activation_url = wp_nonce_url( 'plugins.php?action=activate&plugin=' . $plugin . '&plugin_status=all&paged=1&s', 'activate-plugin_' . $plugin ); $message = '

      ' . __( 'MP3 Player Pro is not working because you need to activate the MP3 Player Free plugin.', 'sonaar-music-pro' ) . '

      '; $message .= '

      ' . sprintf( '%s', $activation_url, __( 'Activate MP3 Player Now', 'sonaar-music-pro' ) ) . '

      '; } else { if ( ! current_user_can( 'install_plugins' ) ) { return; } $action = 'install-plugin'; $slug = 'mp3-music-player-by-sonaar'; $link = wp_nonce_url( add_query_arg( array( 'action' => $action, 'plugin' => $slug ), admin_url( 'update.php' ) ), $action.'_'.$slug ); $message = '

      ' . __( 'MP3 Player Pro is not working because you need to install the MP3 Player Free plugin.', 'sonaar-music-pro' ) . '

      '; $message .= '

      ' . sprintf( '%s', $link, __( 'Install MP3 Player Now', 'sonaar-music-pro' ) ) . '

      '; } echo '

      ' . $message . '

      '; } if ( ! function_exists( '_is_sonaar_music_installed' ) ) { function _is_sonaar_music_installed() { $file_path = 'mp3-music-player-by-sonaar/sonaar-music.php'; $installed_plugins = get_plugins(); return isset( $installed_plugins[ $file_path ] ); } } function sonnar_admin_notice_license_expire() { $sonaar_music_licence = get_site_option('sonaar_music_licence'); if ( $sonaar_music_licence == '' ) { ?>

      activate your license to get access to pro features, updates, statistic reports and premium support', 'sonaar-music-pro' ), admin_url( 'edit.php?post_type=' . SR_PLAYLIST_CPT . '&page=sonaar_music_pro_license' ) ); ?>

      ' . esc_html( $errror_msg ) . ' and you cannot update your MP3 Audio Player Pro! Make sure to renew your subscription at https://sonaar.io/', 'sonaar-music-pro' ), 'https://sonaar.io/' ); ?>

      'sonaar_search_widget', 'description' => esc_html_x('Add Search for your Tracklist', 'Widget', 'sonaar-music') ); self::$widget_defaults = array( 'title' => '', ); parent::__construct('sonaar-music', esc_html_x('Sonaar: Search', 'Widget', 'sonaar-music'), $widget_ops); } /** * Front-end display of widget. */ public function widget ( $args, $instance ){ $data_player_id = (isset($instance['player_id']) && $instance['player_id'] != '')? ' data-player-id="' . $instance['player_id'] . '"' : ''; $data_url = (isset($instance['url']) && $instance['url'] != '')? ' data-url="' . $instance['url'] . '"' : ''; $labelSearch = (Sonaar_Music::get_option('tracklist_search_label', 'srmp3_settings_widget_player')) ? Sonaar_Music::get_option('tracklist_search_label', 'srmp3_settings_widget_player') : esc_html__('Search', 'sonaar-music'); $labelSearchPlaceHolder = (Sonaar_Music::get_option('tracklist_search_placeholder', 'srmp3_settings_widget_player')) ? Sonaar_Music::get_option('tracklist_search_placeholder', 'srmp3_settings_widget_player') : esc_html__('Enter any keyword', 'sonaar-music'); $labelSearchPlaceHolder = (isset($instance['placeholder'])) ? $instance['placeholder'] : $labelSearchPlaceHolder; $searchbar_show_keyword_displayClass = 'display:flex;visibility:hidden;opacity:0;'; $searchbar_show_keyword = '
      '; $searchbar_container = '
      ' . $searchbar_show_keyword . '
      '; $instance = wp_parse_args( (array) $instance, self::$widget_defaults ); $widget_id = (isset($instance['id']))? $instance['id']: ''; echo $searchbar_container; } }PK!UݺNN#includes/class-sonaar-music-pro.phpnu[ */ class Sonaar_Music_Pro { /** * The loader that's responsible for maintaining and registering all hooks that power * the plugin. * * @since 1.0.0 * @access protected * @var Sonaar_Music_Pro_Loader $loader Maintains and registers all hooks for the plugin. */ protected $loader; /** * The unique identifier of this plugin. * * @since 1.0.0 * @access protected * @var string $plugin_name The string used to uniquely identify this plugin. */ protected $plugin_name; /** * The current version of the plugin. * * @since 1.0.0 * @access protected * @var string $version The current version of the plugin. */ protected $version; /** * Define the core functionality of the plugin. * * Set the plugin name and the plugin version that can be used throughout the plugin. * Load the dependencies, define the locale, and set the hooks for the admin area and * the public-facing side of the site. * * @since 1.0.0 */ public function __construct() { $this->version = SRMP3PRO_VERSION; $this->plugin_name = 'sonaar-music-pro'; $this->load_dependencies(); $this->set_locale(); $this->define_admin_hooks(); $this->define_public_hooks(); add_action( 'plugins_loaded', array( $this, 'load' ) ); } public function load() { if ( class_exists( 'Sonaar_Music' ) ){ if ( defined( 'WC_VERSION' ) && get_site_option('SRMP3_ecommerce') == '1') { require_once __DIR__ . '/class-woocommerce.php'; } if (get_site_option('SRMP3_ecommerce') == '1'){ require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/class-sonaar-filters.php'; require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/class-sonaar-chips.php'; require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/class-sonaar-search.php'; add_filter( 'the_content', [ $this, 'remove_cf_data'], 1 ); //Remove_cf_data if not required add_action( 'elementor/frontend/the_content', [ $this, 'elementor_remove_cf_data' ] ); //Remove_cf_data if not required } } } /** * Load the required dependencies for this plugin. * * Include the following files that make up the plugin: * * - Sonaar_Music_Pro_Loader. Orchestrates the hooks of the plugin. * - Sonaar_Music_Pro_i18n. Defines internationalization functionality. * - Sonaar_Music_Pro_Admin. Defines all hooks for the admin area. * - Sonaar_Music_Pro_Public. Defines all hooks for the public side of the site. * * Create an instance of the loader which will be used to register the hooks * with WordPress. * * @since 1.0.0 * @access private */ private function load_dependencies() { // require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/class-sonaar-music-pro-elementor.php'; require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/class-sonaar-music-licences.php'; require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/class-sonaar-music-db.php'; require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/class-sonaar-music-get.php'; require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/class-sonaar-music-post.php'; /** * The class responsible for orchestrating the actions and filters of the * core plugin. */ require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/class-sonaar-music-pro-loader.php'; /** * The class responsible for defining internationalization functionality * of the plugin. */ require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/class-sonaar-music-pro-i18n.php'; /** * The class responsible for defining all actions that occur in the admin area. */ require_once plugin_dir_path( dirname( __FILE__ ) ) . 'admin/class-sonaar-music-pro-admin.php'; /** * The class responsible for defining all actions that occur in the public-facing * side of the site. */ require_once plugin_dir_path( dirname( __FILE__ ) ) . 'public/class-sonaar-music-pro-public.php'; $this->loader = new Sonaar_Music_Pro_Loader(); } /** * Initialize the plugin * * Validates that Elementor is already loaded. * Checks for basic plugin requirements, if one check fail don't continue, * if all check have passed include the plugin class. * * * @since 1.2.0 * @access public */ public function srmp3_pro_register_widgets() { if ( class_exists( 'Sonaar_Music_Admin' )){ // Its is now safe to include Widgets files if ( get_site_option('SRMP3_ecommerce') == '1' ) { require_once( __DIR__ . '/widgets/sr-filters.php' ); require_once( __DIR__ . '/widgets/sr-search.php' ); require_once( __DIR__ . '/widgets/sr-chips.php' ); } require_once( __DIR__ . '/widgets/srpro-buttonplayer.php' ); } } /** * Define the locale for this plugin for internationalization. * * Uses the Sonaar_Music_Pro_i18n class in order to set the domain and to register the hook * with WordPress. * * @since 1.0.0 * @access private */ private function set_locale() { $plugin_i18n = new Sonaar_Music_Pro_i18n(); $this->loader->add_action( 'plugins_loaded', $plugin_i18n, 'load_plugin_textdomain' ); } /** * Register all of the hooks related to the admin area functionality * of the plugin. * * @since 1.0.0 * @access private */ private function define_admin_hooks() { $plugin_admin = new Sonaar_Music_Pro_Admin( $this->get_plugin_name(), $this->get_version() ); $this->loader->add_action( 'admin_enqueue_scripts', $plugin_admin, 'enqueue_styles' ); $this->loader->add_action( 'admin_enqueue_scripts', $plugin_admin, 'enqueue_scripts' ); $this->loader->add_action( 'cmb2_admin_init', $plugin_admin, 'init_options', 9999 ); $this->loader->add_action( 'wp_ajax_post_stats', $plugin_admin ,'post_stats' ); $this->loader->add_action( 'wp_ajax_nopriv_post_stats', $plugin_admin ,'post_stats' ); $this->loader->add_action( 'wp_ajax_get_stats', $plugin_admin ,'get_stats' ); $this->loader->add_action( 'wp_ajax_nopriv_get_stats', $plugin_admin ,'get_stats' ); $this->loader->add_filter( 'upload_mimes', $plugin_admin, 'srmp3_set_mimes' ); $this->loader->add_action( 'wp_ajax_srmp3_create_mp3_playlists', $plugin_admin ,'srmp3_create_mp3_playlists_ajax' ); $this->loader->add_action( 'wp_ajax_srmp3_update_mp3_playlists', $plugin_admin ,'srmp3_update_mp3_playlists_ajax' ); $this->loader->add_action( 'wp_ajax_srmp3_create_single_mp3_playlists', $plugin_admin ,'srmp3_create_single_mp3_playlists_ajax' ); // $this->loader->add_action( 'wp_ajax_srmp3_create_mp3_playlists_from_import_file', $plugin_admin ,'srmp3_create_mp3_playlists_from_import_file_ajax' ); $this->loader->add_action( 'wp_ajax_srmp3_create_single_mp3_playlists_from_import_file', $plugin_admin ,'srmp3_create_single_mp3_playlists_from_import_file_ajax' ); // if(defined('SR_PLAYLIST_CPT')){ $this->loader->add_action('manage_album_posts_custom_column', $plugin_admin , 'manage_album_custom_column', 10, 2, 9999); $this->loader->add_filter('manage_album_posts_columns', $plugin_admin , 'manage_album_columns', 9999); } $this->loader->add_action( 'widgets_init', $plugin_admin, 'register_widget' ); add_action( 'elementor/widgets/register', [ $this, 'srmp3_pro_register_widgets' ] ); $this->loader->add_action( 'init', $plugin_admin, 'srmp3_pro_add_shortcode' ); } /** * Register all of the hooks related to the public-facing functionality * of the plugin. * * @since 1.0.0 * @access private */ private function define_public_hooks() { $plugin_public = new Sonaar_Music_Pro_Public( $this->get_plugin_name(), $this->get_version() ); if ( class_exists( 'Sonaar_Music_Public' )) { $this->loader->add_action( 'sonaar_podcast_import', new Sonaar_Music_Public( 'sonaar-music', $this->get_version() ), 'srp_rsscron' ); } $this->loader->add_action( 'wp_enqueue_scripts', $plugin_public, 'enqueue_styles' ); $this->loader->add_action( 'wp_enqueue_scripts', $plugin_public, 'enqueue_scripts', 9999 ); if(is_admin()){ // For the Shortcode Builder if ( isset( $_GET['page'] ) && $_GET['page'] == 'srmp3_settings_shortcodebuilder' ) { $this->loader->add_action( 'admin_enqueue_scripts', $plugin_public, 'enqueue_styles' ); $this->loader->add_action( 'admin_enqueue_scripts', $plugin_public, 'enqueue_scripts', 11); } } } /** * Run the loader to execute all of the hooks with WordPress. * * @since 1.0.0 */ public function run() { $this->loader->run(); } /** * The name of the plugin used to uniquely identify it within the context of * WordPress and to define internationalization functionality. * * @since 1.0.0 * @return string The name of the plugin. */ public function get_plugin_name() { return $this->plugin_name; } /** * The reference to the class that orchestrates the hooks with the plugin. * * @since 1.0.0 * @return Sonaar_Music_Pro_Loader Orchestrates the hooks of the plugin. */ public function get_loader() { return $this->loader; } /** * Retrieve the version number of the plugin. * * @since 1.0.0 * @return string The version number of the plugin. */ public function get_version() { return $this->version; } public static function array_insert ( $array, $pairs, $key, $position = 'after' ){ $key_pos = array_search( $key, array_keys($array) ); if ( 'after' == $position ) $key_pos++; if ( false !== $key_pos ) { $result = array_slice( $array, 0, $key_pos ); $result = array_merge( $result, $pairs ); $result = array_merge( $result, array_slice( $array, $key_pos ) ); } else { $result = array_merge( $array, $pairs ); } return $result; } /* Remove cf_data if not required */ public function remove_cf_data( $content ) { if ( strpos($content, '[sonaar_audioplayer') !== false && strpos($content, '[sonaar_filters') == false && //Filter widget strpos($content, '[sonaar_search') == false && //Search widget strpos($content, ' searchbar="true"') == false //Search shortcode attribute ) { $content = str_replace('[sonaar_audioplayer','[sonaar_audioplayer hide_cf_data="true"', $content); } return $content; } public function elementor_remove_cf_data( $content ) { if ( strpos($content, 'elementor-widget-sonaar-filters') == false && //Elementor filter widget strpos($content, 'srp_filter_container') == false &&//filter widget strpos($content, 'srp_filter_container_preload') == false && //filter widget strpos($content, 'srp_tags_container') == false && //tags widget strpos($content, 'srp_search_container') == false //Search widget ) { if ( strpos($content, '
      ', $content); foreach ($tmp as $key => $value){ if(!$key%2){ //if key is a pair number $newContent .= $value; }else{ $tmp2 = explode('', $value); $newContent .= $tmp2[1]; } } $content = $newContent; } } return $content; } /* END Remove_cf_data if not required */ } function srp_analytics_embed() { // Add GA to the DOM $srmp3_ga_tag = Sonaar_Music::get_option('srmp3_ga_tag', 'srmp3_settings_stats'); ?> ' : ''; $share_stickyplayer = (Sonaar_Music::get_option('share_stickyplayer', 'srmp3_settings_share') == 'false' ) ? '' : '
      '; // Social Media $share_social = (Sonaar_Music::get_option('share_socialmedia', 'srmp3_settings_share')) ? Sonaar_Music::get_option('share_socialmedia', 'srmp3_settings_share') : array( 'facebook','whatsapp','twitter' ); $social_html = '
      '; if(Sonaar_Music::get_option('share_socialmedia_enable', 'srmp3_settings_share') != 'false'){ if (in_array('facebook', $share_social)) { $social_html .= ''; } if (in_array('whatsapp', $share_social)) { $social_html .= ''; } if (in_array('twitter', $share_social)) { $social_html .= ''; } if (in_array('email', $share_social)) { $share_email_subject = str_replace('+', '%20', urlencode($share_email_subject)); $share_email_body = str_replace('+', '%20', urlencode($share_email_body)); $email_shared_link = str_replace('+', '%20', urlencode($link)); $email_link = 'mailto:?subject=' . $share_email_subject . '&body=' . $share_email_body . '%0D%0A' . $email_shared_link; $social_html .= ''; } if (in_array('sms', $share_social)) { $social_html .= ''; } $social_html .= ''; } $social_html .= '
      '; // end of Social Media $html = ' '; echo wp_json_encode($html, JSON_HEX_TAG); wp_die(); } PK!zϴ$includes/class-sonaar-music-post.phpnu[db_name); // die(); $wpdb->insert( $this->db_name, array( 'action' => $request['action'], 'client_ip' => $_SERVER['REMOTE_ADDR'], 'client_uid' => 'client_uid', 'page_title' => $request['page_title'], 'page_url' => $request['page_url'], 'target_time' => 'target_time', 'target_title' => $request['target_title'], 'target_url' => $request['target_url'], 'created' => date( 'Y-m-d H:i:s', time() ), ), array( '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s' ) ); return true; } /** * Sanitize the client id. * * @since 1.0.0 * * @param string $value Unique client id. * @return string */ public function sanitize_client_uid( $value ) { return preg_replace( '/[^1-9.]/', '', $value ); } /** * Sanitize the page title. * * @since 1.0.0 * * @param string $value Page title. * @return string */ public function sanitize_page_title( $value ) { return sanitize_text_field( $value ); } /** * Sanitize the page URL. * * @since 1.0.0 * * @param string $value Page URL. * @return string */ public function sanitize_page_url( $value ) { return esc_url_raw( strtok( $value, '#' ) ); } /** * Sanitize the target title. * * @since 1.0.0 * * @param string $value Target resource title. * @return string */ public function sanitize_target_title( $value ) { return sanitize_text_field( $value ); } /** * Sanitize the target URL. * * @since 1.0.0 * * @param string $value Target resource URL. * @return string */ public function sanitize_target_url( $value ) { return esc_url_raw( remove_query_arg( '_', strtok( $value, '#' ) ) ); } } PK!B˦&&!includes/class-sonaar-filters.phpnu[ 'sonaar_filters_widget', 'description' => esc_html_x('Add Filters to your Tracklist', 'Widget', 'sonaar-music') ); self::$widget_defaults = array( 'title' => '', ); parent::__construct('sonaar-music', esc_html_x('Sonaar: Filters', 'Widget', 'sonaar-music'), $widget_ops); // Hook our custom function to wp_enqueue_scripts add_action('wp_enqueue_scripts', array($this, 'enqueue_widget_assets')); } /** * Enqueue the scripts and styles for the widget. */ public function enqueue_widget_assets($instance) { wp_enqueue_style('sonaar-music'); wp_enqueue_style('sonaar-music-pro'); wp_enqueue_script('sonaar-music-pro-mp3player'); wp_enqueue_script('sonaar_player'); wp_enqueue_script('sonaar-list'); wp_enqueue_script('vue-multiselect'); wp_register_script('vue-multiselect', plugin_dir_url(__DIR__) . 'public/js/vue-multiselect.min.js', array(), '2.1.6', true); wp_enqueue_script('vue-slider-component', plugin_dir_url(__DIR__) . 'public/js/vue-slider-component.min.js', array('vuejs'), '3.1.0', true); } private function getTerms($term){ $options = array(); $parent_terms = array(); $child_terms = array(); $terms = get_terms(array( 'taxonomy' => $term, 'hide_empty' => true, )); // Separate terms into parents and children foreach ($terms as $key => $term_item) { if (is_object($term_item)) { if ($term_item->parent == 0) { $parent_terms[] = $term_item; } else { $child_terms[] = $term_item; } }else{ // Handle the case where $term_item is not an object, or log it for debugging error_log('Not an object: ' . print_r($term_item, true)); } } // First, add all parent terms to options foreach ($parent_terms as $parent) { if (isset($parent->name)) { $options[] = $parent; // Now, add children of this parent term foreach ($child_terms as $child) { if ($child->parent == $parent->term_id && isset($child->name)) { $options[] = $child; } } } } return $options; } /** * Front-end display of widget. */ public function widget ( $args, $instance ){ $this->enqueue_widget_assets($instance); $instance = wp_parse_args( (array) $instance, self::$widget_defaults ); $filter = (isset($instance['filter']))? $instance['filter']: ''; $filterType = (isset($instance['filtertype'])) ? $instance['filtertype'] : 'dropdowns'; // value dropdowns or tags // $filterType = 'range'; $widget_id = (isset($instance['id']))? $instance['id']: 'a' . uniqid(); //$selectType = (isset($instance['selecttype']) && $instance['selecttype'] == "singleselect")? 'singleselect': 'multiselect'; //singleselect $atts['options'] = array(); $options = array(); if($filter != false && function_exists( 'run_sonaar_music_pro' ) && get_site_option('SRMP3_ecommerce') == '1' ){ $filter = explode(';', $filter); foreach ($filter as $value) { $value = explode('::', $value); if ( isset($value[1]) ){ $min = isset($value[3]) ? $value[3] : null; $max = isset($value[4]) ? $value[4] : null; $unit = isset($value[5]) ? $value[5] : null; $value[1] = str_replace(' ', '', $value[1]); // strip spaces to prevent typos if(function_exists('acf') && 'field_' == substr($value[1], 0, 6)){ // if ACF is used, we need to retrieve the field keys and NOT the metakey $acf_object = get_field_object($value[1]); if( isset( $acf_object['taxonomy'] ) && $acf_object['taxonomy'] ){ $options = $this->getTerms($acf_object['taxonomy']); }else{ $options = (isset($acf_object['choices'])) ? array_values($acf_object['choices']) : null; $metakey = (isset($acf_object['name'])) ? $acf_object['name'] : null; } }elseif('pa_' == substr($value[1], 0, 3)){ // This is a WooCommerce Attribute Filter. It begins by pa_ $options = $this->getTerms($value[1]); }elseif ( function_exists('jet_engine') && jet_engine()->meta_boxes ) { $metaboxes = jet_engine()->meta_boxes->get_registered_fields(); foreach ($metaboxes as $metabox) { foreach($metabox as $themetabox){ if($themetabox["name"] == $value[1]){ if(isset($themetabox['options']) && is_array($themetabox['options'])){ foreach ($themetabox['options'] as $thevalue) { $options[] = $thevalue['value']; } } } } } } $metakey = (isset($metakey)) ? $metakey : $value[1]; switch ($value[1]) { case 'post_tags': $options = $this->getTerms('post_tag'); break; default: if (taxonomy_exists($value[1])) { $options = $this->getTerms($value[1]); } break; } if( !isset($value[2]) ){ $value[2] = 'singleselect'; } if($metakey){ $atts['options'][] = array( 'label' => $value[0], 'metakey' => $metakey, 'selecttype' => $value[2], 'items_per_page'=> (isset($instance['items_per_page'])) ? $instance['items_per_page'] : 'all', 'show_more_label'=> (isset($instance['show_more_label'])) ? $instance['show_more_label'] : null, 'show_less_label'=> (isset($instance['show_less_label'])) ? $instance['show_less_label'] : null, 'open_always' => (isset($instance['open_always'])) ? true : null, 'open_on_init' => (isset($instance['open_on_init'])) ? true : null, 'close_on_select' => (isset($instance['close_on_select'])) ? true : false, 'searchable' => (isset($instance['searchable'])) ? true : false, 'min' => $min, 'max' => $max, 'unit' => $unit, 'randomcolor' => (isset($instance['randomcolor'])) ? $instance['randomcolor'] : 'false', 'options' => (isset($options)) ? $options : '', 'playerid' => (isset($instance['player_id'])) ? $instance['player_id'] : null, ); } unset($metakey, $options); } } } // Normalize $atts['options'] to ensure it contains only strings //error_log(print_r($atts['options'], true)); foreach ($atts['options'] as $key => $filters) { $term_ids = []; $names = []; if(is_array($filters['options'])){ foreach($filters['options'] as $item) { if (is_object($item) && isset($item->name)) { $names[] = strip_tags($item->name); if (isset($item->term_id)) { $term_ids[] = $item->term_id; } } elseif (is_string($item)) { $names[] = strip_tags($item); // Directly add the string to the names array } } $atts['options'][$key]['options'] = $names; $atts['options'][$key]['term_ids'] = $term_ids; } } $vue_atts = esc_attr(json_encode([ 'id' => $widget_id, 'options' => $atts['options'] ])); if ($filterType == 'tags') { echo "
      "; } else if($filterType == 'range'){ echo "
      "; } else { echo "
      "; } } }PK!7 YY&includes/class-sonaar-audiopreview.phpnu[ffmpeg_path = get_option('srmp3_ffmpeg_path'); $this->folder_name = (Sonaar_Music::get_option('preview_folder_name', 'srmp3_settings_audiopreview') != null) ? Sonaar_Music::get_option('preview_folder_name', 'srmp3_settings_audiopreview') : 'audio_preview'; $this->preview_batch_size = (Sonaar_Music::get_option('preview_batch_size', 'srmp3_settings_audiopreview') != null) ? intval(Sonaar_Music::get_option('preview_batch_size', 'srmp3_settings_audiopreview')) : 1; $this->overwrite = Sonaar_Music::get_option('preview_overwrite', 'srmp3_settings_audiopreview'); $this->preview_duration_overall = Sonaar_Music::get_option('audiopreview_duration', 'srmp3_settings_audiopreview'); $this->fadein_duration_overall = Sonaar_Music::get_option('fadein_duration', 'srmp3_settings_audiopreview'); $this->fadeout_duration_overall = Sonaar_Music::get_option('fadeout_duration', 'srmp3_settings_audiopreview'); $this->ad_preroll_overall = Sonaar_Music::get_option('ad_preroll', 'srmp3_settings_audiopreview'); $this->ad_postroll_overall = Sonaar_Music::get_option('ad_postroll', 'srmp3_settings_audiopreview'); $this->watermark_file_overall = Sonaar_Music::get_option('audio_watermark', 'srmp3_settings_audiopreview'); $this->watermark_spacegap_overall = (Sonaar_Music::get_option('watermark_spacegap', 'srmp3_settings_audiopreview') != null) ? intval(Sonaar_Music::get_option('watermark_spacegap', 'srmp3_settings_audiopreview')) : 5.5; $this->trimstart_overall = Sonaar_Music::get_option('trimstart', 'srmp3_settings_audiopreview'); $this->setup_audio_preview_environment(); add_action('wp_ajax_index_audio_preview', array($this, 'index_audio_preview')); add_action('wp_ajax_count_audio_files', array($this, 'count_audio_files')); add_action('wp_ajax_remove_audio_files_and_update_posts', array($this, 'remove_audio_files_and_update_posts')); } private function setup_audio_preview_environment() { if (defined('DOING_AJAX') && !DOING_AJAX) { return; // Don't execute for AJAX operations } // Check if ffmpeg exists //error_log("SETUP AUDIO PREVIEW ENVIRONMENT"); $folder = '/' . $this->folder_name . '/'; $this->uploads_dir = wp_get_upload_dir()['basedir'] . $folder; if (!is_dir($this->uploads_dir)) { mkdir($this->uploads_dir, 0755); } } public function saveThePageFirst(){ echo json_encode([ 'message' => 'Error! Save this page first.', 'progress' => 100, 'error' => true, 'completed' => true, 'totalPosts' => 0, 'processedPosts' => 0 ]); wp_die(); } public function fileNotCreated(){ echo json_encode([ 'message' => 'Error! File has not been created', 'progress' => 100, 'error' => true, 'completed' => true, 'totalPosts' => 1, 'processedPosts' => 1 ]); wp_die(); } public function index_audio_preview() { check_ajax_referer('sonaar_music_admin_ajax_nonce', 'nonce'); // Check if either is null and return if so if ($this->preview_duration_overall === null) { $this->saveThePageFirst(); } // Arguments to get all products and sr_playlist posts with alb_tracklist meta key. $post_id = isset($_POST['post_id']) ? intval($_POST['post_id']) : null; $index = isset($_POST['index']) ? intval($_POST['index']) : null; if ($post_id !== null && $index !== null) { // Directly fetch the relevant data based on $post_id $data = get_post_meta($post_id, 'alb_tracklist', true); if ($data && isset($data[$index])) { $item = $data[$index]; $this->overwrite = 'true'; $file_output = ''; if (isset($item['track_mp3']) && !empty($item['track_mp3'])) { $file_output = $this->trimfile($item['track_mp3'], null, $post_id, $index, $data); //error_log("dataaa = " . print_r($data[$index], true)); } if (isset($item['stream_link']) && !empty($item['stream_link'])) { $stream_title = isset($item['stream_title']) ? $item['stream_title'] : $index; $file_output = $this->trimfile($item['stream_link'], $stream_title, $post_id, $index, $data); } if(!$file_output || $file_output == ''){ $this->fileNotCreated(); }else{ $filename = isset($file_output) ? basename($file_output) : ''; echo json_encode([ 'progress' => 100, 'message' => '[' . $filename .'] generated!', 'file_output' => $file_output, 'completed' => true, 'totalPosts' => 1, 'processedPosts' => 1 ]); wp_die(); } }else{ $this->saveThePageFirst(); } }else{ $limit = $this->preview_batch_size; // Process 250 posts at a time. Adjust this value based on your needs. $offset = isset($_POST['offset']) ? intval($_POST['offset']) : 0; $posts_in = isset($_POST['posts_in']) ? $_POST['posts_in'] : null; $args = array( 'post_type' => array('product', 'sr_playlist'), 'meta_key' => 'alb_tracklist', //'post__in' => array( 5932,5933,5934,5935 ), 'posts_per_page' => $limit, 'offset' => $offset, ); // if posts_in, add to args if ($posts_in !== null && !empty($posts_in)) { //convert posts_in in array $posts_in = explode(',', $posts_in); $args['post__in'] = $posts_in; } $query = new WP_Query( $args ); $totalPosts = $query->found_posts; $processedPosts = $offset; $progress = 0; if ( $query->have_posts() ) { while ( $query->have_posts() ) { $query->the_post(); $post_id = get_the_ID(); $data = get_post_meta($post_id, 'alb_tracklist', true); if ($data && is_array($data)) { foreach ($data as $index => $item) { if (isset($item['post_audiopreview']) && $item['post_audiopreview'] === 'disabled') { continue; }else{ if (isset($item['track_mp3']) && !empty($item['track_mp3'])) { $this->trimfile($item['track_mp3'], null , $post_id, $index, $data); //will returns preview_filename; } if (isset($item['stream_link']) && !empty($item['stream_link'])) { $stream_title = isset($item['stream_title']) ? $item['stream_title'] : $index; $this->trimfile($item['stream_link'], $stream_title, $post_id, $index, $data); } } } $processedPosts++; } } $progress = ($processedPosts / $totalPosts) * 100; } $response = array( 'progress' => isset($progress) ? $progress : 0, // Ensure that $progress is set 'message' => '', 'completed' => ($progress >= 100), 'totalPosts' => $totalPosts, 'processedPosts' => $processedPosts ); // Reset post data. wp_reset_postdata(); echo json_encode($response); wp_die(); } } private function trimfile($file_input_fullpath, $file_output_title = null , $post_id = '', $index = null, $data = null){ if($data){ $item = $data[$index]; // Check if we should use the track custom preview if (isset($data[$index]['post_audiopreview_settings']) && $data[$index]['post_audiopreview_settings'] == 'custom') { $this->customFilePrefix = 'x'; $this->preview_duration = isset($item['post_audiopreview_duration']) ? $item['post_audiopreview_duration'] : 30; $this->fadein_duration = isset($item['post_fadein_duration']) ? $item['post_fadein_duration'] : 0; $this->fadeout_duration = isset($item['post_fadeout_duration']) ? $item['post_fadeout_duration'] : 0; $this->ad_preroll = isset($item['post_ad_preroll']) ? $item['post_ad_preroll'] : null; $this->ad_postroll = isset($item['post_ad_postroll']) ? $item['post_ad_postroll'] : null; $this->watermark_file = isset($item['post_audio_watermark']) ? $item['post_audio_watermark'] : null; $this->trimstart = isset($item['post_trimstart']) ? $item['post_trimstart'] : 0; }else{ $this->customFilePrefix = ''; $this->preview_duration = $this->preview_duration_overall; $this->fadein_duration = $this->fadein_duration_overall; $this->fadeout_duration = $this->fadeout_duration_overall; $this->ad_preroll = $this->ad_preroll_overall; $this->ad_postroll = $this->ad_postroll_overall; $this->watermark_file = $this->watermark_file_overall; $this->trimstart = $this->trimstart_overall; } } $this->trimstart = strtotime("1970-01-01 $this->trimstart UTC"); $this->preview_duration = strtotime("1970-01-01 $this->preview_duration UTC"); if ($file_output_title == null){ // Extract the filename from the full path $parsed_url = parse_url($file_input_fullpath); $file_name = basename($parsed_url['path']); // Find the last occurrence of the period in the filename to determine the start of the extension $extension_position = strrpos($file_name, '.'); // Generate a sanitized file name $sanitized_file_name = preg_replace('/[^a-zA-Z0-9\-\._]/', '_', $file_name); $file_output = $this->customFilePrefix . $post_id . '_' . substr($sanitized_file_name, 0, $extension_position) . '_preview' . substr($sanitized_file_name, $extension_position); }else{ $file_output = $this->customFilePrefix . $post_id . '_' . $file_output_title . '_preview.mp3'; } // replace spaces by _ $file_output = preg_replace('/[^a-zA-Z0-9\-\._]/', '_', $file_output); $file_output_fullpath = $this->uploads_dir . $file_output; $file_output_url = str_replace(wp_get_upload_dir()['basedir'], wp_get_upload_dir()['baseurl'], $file_output_fullpath); if ($this->overwrite == 'false'){ if (file_exists($file_output_fullpath)) { //error_log("File " . $post_id . " already exists. Skipping..."); return; } } $uploads = wp_get_upload_dir(); $site_domain = parse_url(get_site_url(), PHP_URL_HOST); $file_domain = parse_url($file_input_fullpath, PHP_URL_HOST); if ($site_domain !== $file_domain) { // The file is external. Download it to a temporary location. $temp_file = $this->uploads_dir . 'temp_' . uniqid() . '.mp3'; $ch = curl_init($file_input_fullpath); $fp = fopen($temp_file, 'wb'); curl_setopt($ch, CURLOPT_FILE, $fp); curl_setopt($ch, CURLOPT_HEADER, 0); curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true); // this will follow redirects curl_exec($ch); curl_close($ch); fclose($fp); // Update the input file path to the downloaded temporary file $file_input_fullpath = $temp_file; // The file is external. Handle or skip as needed. //return false; // Exit the function or handle the external file case as you see fit. } $file_input_fullpath = str_replace($uploads['baseurl'], $uploads['basedir'], $file_input_fullpath); $file_input_fullpath = urldecode($file_input_fullpath); $watermark_file = $this->watermark_file; $trimstart = $this->trimstart; $this->preview_duration = $trimstart + $this->preview_duration; //$trimend = $trimstart + $duration; $duration = $this->preview_duration; // total duration in seconds $fadein_duration = $this->fadein_duration; // fade in duration in seconds $fade_duration = $this->fadeout_duration; // fade out duration in seconds $preroll_file = $this->ad_preroll; $postroll_file = $this->ad_postroll; /*error_log('------------------------------------------------'); error_log("post_id: " . $post_id); error_log("file_input_fullpath: " . $file_input_fullpath); error_log("duration: " . $duration); error_log("fadein_duration: " . $fadein_duration); error_log("fade_duration: " . $fade_duration); error_log("preroll_file: " . $preroll_file); error_log("watermark_file: " . $watermark_file); error_log("trim start at: " . $trimstart); error_log('------------------------------------------------');*/ $inputs = []; $filters = []; $filter_str = ""; // Construct the FFmpeg command $cmd = $this->ffmpeg_path . " -y"; // If an intro is provided, add it if (!empty($preroll_file)) { $cmd .= " -i " . escapeshellarg($preroll_file); $inputs['intro'] = count($inputs); } $inputs['main'] = count($inputs); if (!empty($this->watermark_file)) { $watermarkResults = $this->applyWatermark($file_input_fullpath, $file_output_fullpath); $file_input_fullpath = $watermarkResults['watermarked_file']; $temp_watermark = $watermarkResults['temp_watermark']; $filters[] = "[{$inputs['main']}:a]asetpts=PTS-STARTPTS[a]"; }else{ $filters[] = "[{$inputs['main']}:a]atrim=" . $trimstart . ":" . $duration . ",asetpts=PTS-STARTPTS[a]"; } $cmd .= " -i " . escapeshellarg($file_input_fullpath); // If an outro is provided, add it if (!empty($postroll_file)) { $cmd .= " -i " . escapeshellarg($postroll_file); $inputs['outro'] = count($inputs); //error_log("postroll_file: " . $postroll_file); } // Apply fade-in effect if ($fadein_duration > 0) { $filters[] = "[a]afade=t=in:st=0:d=" . $fadein_duration . "[a1]"; $latest_audio = "a1"; } else { $latest_audio = "a"; } // Apply fade-out effect if ($fade_duration > 0) { $fadeout_start = $duration - $trimstart - $fade_duration; $filters[] = "[{$latest_audio}]afade=t=out:st=" . $fadeout_start . ":d=" . $fade_duration . "[a2]"; $latest_audio = "a2"; } $audio_streams = ""; if (isset($inputs['intro'])) { $audio_streams .= "[{$inputs['intro']}:a]"; } $audio_streams .= "[$latest_audio]"; if (isset($inputs['outro'])) { $audio_streams .= "[{$inputs['outro']}:a]"; } $cmd .= " -filter_complex \"" . implode(";", $filters) . ";{$audio_streams}concat=n=" . (count($inputs)) . ":v=0:a=1[out]\" -map \"[out]\" " . escapeshellarg($file_output_fullpath); $cmd .= " 2>&1"; // To display error // Log the FFmpeg command //error_log("FFmpeg FINAL CMD: " . $cmd); // Execute the FFmpeg command $output = shell_exec($cmd); // If FFmpeg produces any output (including errors), log it if (!empty($output)) { error_log("FFmpeg output: " . $output); } if (isset($temp_watermark) && file_exists($temp_watermark)) { unlink($temp_watermark); // Delete the temporary watermark file } if (isset($temp_file) && file_exists($temp_file)) { unlink($temp_file); } if (file_exists($file_output_fullpath)) { }else{ $file_output_url = ''; // we want to save/update the post below as well. } // Fetch current 'alb_tracklist' data $alb_tracklist = get_post_meta($post_id, 'alb_tracklist', true); // Check if the fetched data is an array (to avoid PHP errors) and if index is provided if (is_array($alb_tracklist) && isset($index) && isset($alb_tracklist[$index])) { // Update the 'audio_preview' key of the specific item in the array with the new path $alb_tracklist[$index]['audio_preview'] = $file_output_url; //error_log("alb_tracklist: " . print_r($alb_tracklist, true)); // Update the post meta with the modified data update_post_meta($post_id, 'alb_tracklist', $alb_tracklist); } return $file_output_url; } private function applyWatermark($input_file, $output_file) { $temp_watermark = $this->uploads_dir . 'temp_watermark_' . uniqid() . '.mp3'; $duration = $this->preview_duration; // total duration in seconds $watermark_audiolevel = 2; $watermark_spacegap = $this->watermark_spacegap_overall; // ... $watermark_beginat = 0; $trimstart = $this->trimstart; $silence_file = $this->uploads_dir . 'silence.mp3'; //error_log('------------------------------------------------'); //error_log("trimstart: " . $trimstart); //error_log("duration: " . $duration); $cmd_silence = $this->ffmpeg_path . " -y -f lavfi -i anullsrc=r=44100:cl=stereo -t " . $watermark_spacegap . " " . escapeshellarg($silence_file); shell_exec($cmd_silence); $cmd = $this->ffmpeg_path . " -y -i " . escapeshellarg($input_file); $cmd .= " -i " . escapeshellarg($this->watermark_file); $cmd .= " -i " . escapeshellarg($silence_file); $cmd .= " -filter_complex \"[0:a]atrim=" . $trimstart . ":" . $duration . ",asetpts=PTS-STARTPTS[a];[1:a]volume=" . $watermark_audiolevel . ",adelay=" . $watermark_beginat . "|" . $watermark_beginat . "[watermark];[2:a][watermark]concat=n=2:v=0:a=1,aloop=loop=-1:size=2e+09[watermarkloop];[a][watermarkloop]amix=inputs=2:duration=first[out]\" -map \"[out]\" " . escapeshellarg($temp_watermark); $cmd .= " 2>&1"; // To display error // Log the FFmpeg command // error_log("FFmpeg WATERMARK CMD: " . $cmd); // Execute the FFmpeg command $output = shell_exec($cmd); // If FFmpeg produces any output (including errors), log it if (!empty($output)) { error_log("FFmpeg WTMRK output: " . $output); } shell_exec($cmd); return [ 'watermarked_file' => $temp_watermark, 'temp_watermark' => $temp_watermark ]; } public function count_audio_files() { check_ajax_referer('sonaar_music_admin_ajax_nonce', 'nonce'); $files = glob($this->uploads_dir . '*.*'); $fileCount = count($files); echo json_encode(['count' => $fileCount]); wp_die(); } public function remove_audio_files_and_update_posts() { check_ajax_referer('sonaar_music_admin_ajax_nonce', 'nonce'); try { // 1. Remove all files from your folder $files = glob($this->uploads_dir . '*'); // get all file names foreach($files as $file) { if(is_file($file)) { unlink($file); // delete file } } // 2. Update all posts $args = array( 'post_type' => array('product', 'sr_playlist'), 'meta_key' => 'alb_tracklist', 'posts_per_page' => -1 // get all posts ); $query = new WP_Query($args); if($query->have_posts()) { while($query->have_posts()) { $query->the_post(); $post_id = get_the_ID(); $data = get_post_meta($post_id, 'alb_tracklist', true); if($data && is_array($data)) { foreach($data as $index => $item) { $data[$index]['audio_preview'] = ''; // set 'audio_preview' to empty } update_post_meta($post_id, 'alb_tracklist', $data); // update the post meta } } } // Return success response echo json_encode([ 'success' => true, 'message' => 'All files removed and posts updated successfully!' ]); wp_die(); } catch(Exception $e) { echo json_encode([ 'success' => false, 'message' => $e->getMessage() ]); wp_die(); } } } PK!Fx"includes/class-sonaar-music-db.phpnu[db = $wpdb; $this->db_name = $wpdb->prefix . 'sonaar_events'; $this->offset = $this->get_timezone_offset(); $this->end_date = date( self::MYSQL_DATETIME_FORMAT, time() ); $this->start_date = date( self::MYSQL_DATETIME_FORMAT, strtotime( sprintf( '-%d days', $this->interval ) ) ); } /** * Retrieve the time zone offset. * * @since 1.0.0 * * @return double */ protected function get_timezone_offset() { $offset = wp_timezone_override_offset(); return $offset ? $offset : get_option( 'gmt_offset', 0 ); } } PK!N'(includes/class-sonaar-music-pro-i18n.phpnu[ */ class Sonaar_Music_Pro_i18n { /** * Load the plugin text domain for translation. * * @since 1.0.0 */ public function load_plugin_textdomain() { load_plugin_textdomain( 'sonaar-music-pro', false, dirname( dirname( plugin_basename( __FILE__ ) ) ) . '/languages/' ); } } PK!2*includes/class-sonaar-music-pro-loader.phpnu[ */ class Sonaar_Music_Pro_Loader { /** * The array of actions registered with WordPress. * * @since 1.0.0 * @access protected * @var array $actions The actions registered with WordPress to fire when the plugin loads. */ protected $actions; /** * The array of filters registered with WordPress. * * @since 1.0.0 * @access protected * @var array $filters The filters registered with WordPress to fire when the plugin loads. */ protected $filters; /** * Initialize the collections used to maintain the actions and filters. * * @since 1.0.0 */ public function __construct() { $this->actions = array(); $this->filters = array(); } /** * Add a new action to the collection to be registered with WordPress. * * @since 1.0.0 * @param string $hook The name of the WordPress action that is being registered. * @param object $component A reference to the instance of the object on which the action is defined. * @param string $callback The name of the function definition on the $component. * @param int $priority Optional. The priority at which the function should be fired. Default is 10. * @param int $accepted_args Optional. The number of arguments that should be passed to the $callback. Default is 1. */ public function add_action( $hook, $component, $callback, $priority = 10, $accepted_args = 1 ) { $this->actions = $this->add( $this->actions, $hook, $component, $callback, $priority, $accepted_args ); } /** * Add a new filter to the collection to be registered with WordPress. * * @since 1.0.0 * @param string $hook The name of the WordPress filter that is being registered. * @param object $component A reference to the instance of the object on which the filter is defined. * @param string $callback The name of the function definition on the $component. * @param int $priority Optional. The priority at which the function should be fired. Default is 10. * @param int $accepted_args Optional. The number of arguments that should be passed to the $callback. Default is 1 */ public function add_filter( $hook, $component, $callback, $priority = 10, $accepted_args = 1 ) { $this->filters = $this->add( $this->filters, $hook, $component, $callback, $priority, $accepted_args ); } /** * A utility function that is used to register the actions and hooks into a single * collection. * * @since 1.0.0 * @access private * @param array $hooks The collection of hooks that is being registered (that is, actions or filters). * @param string $hook The name of the WordPress filter that is being registered. * @param object $component A reference to the instance of the object on which the filter is defined. * @param string $callback The name of the function definition on the $component. * @param int $priority The priority at which the function should be fired. * @param int $accepted_args The number of arguments that should be passed to the $callback. * @return array The collection of actions and filters registered with WordPress. */ private function add( $hooks, $hook, $component, $callback, $priority, $accepted_args ) { $hooks[] = array( 'hook' => $hook, 'component' => $component, 'callback' => $callback, 'priority' => $priority, 'accepted_args' => $accepted_args ); return $hooks; } /** * Register the filters and actions with WordPress. * * @since 1.0.0 */ public function run() { foreach ( $this->filters as $hook ) { add_filter( $hook['hook'], array( $hook['component'], $hook['callback'] ), $hook['priority'], $hook['accepted_args'] ); } foreach ( $this->actions as $hook ) { add_action( $hook['hook'], array( $hook['component'], $hook['callback'] ), $hook['priority'], $hook['accepted_args'] ); } } } PK!3VCCincludes/class-woocommerce.phpnu[ 4, 'after' => 6, 'before_rating' => 9, 'after_price' => 11, 'before_excerpt' => 19, 'after_excerpt' => 21, 'after_add_to_cart' => 30, 'before_meta' => 39, 'after_meta' => 41, ); } public static function register_hooks() { add_action('wp_ajax_load_wc_variation_by_ajax', array( __CLASS__, 'load_wc_variation_by_ajax_callback'), 10, 2); add_action('wp_ajax_nopriv_load_wc_variation_by_ajax', array( __CLASS__, 'load_wc_variation_by_ajax_callback'), 10, 2); if (Sonaar_Music::get_option('wc_enable_licenses_cpt', 'srmp3_settings_woocommerce') == 'true'){ add_action('wp_ajax_load_license_preview_ajax', array( __CLASS__, 'load_license_preview_ajax_callback'), 10, 2); add_action('wp_ajax_nopriv_load_license_preview_ajax', array( __CLASS__, 'load_license_preview_ajax_callback'), 10, 2); add_action( 'woocommerce_checkout_update_order_meta', array( __CLASS__, 'srmp3_add_meta_to_order'), 10 , 2 ); add_action( 'woocommerce_view_order', array( __CLASS__, 'srmp3_add_license_to_order_page'), 9, 1 ); add_action( 'woocommerce_thankyou', array( __CLASS__, 'srmp3_add_license_to_order_page'), 9, 1 ); add_action( 'woocommerce_after_cart_item_name', array( __CLASS__, 'srmp3_add_license_button'), 10, 2 ); add_action( 'woocommerce_order_status_completed', array( __CLASS__, 'srmp3_create_pdf_license'), 10, 1 ); add_action( 'woocommerce_review_order_before_payment', array( __CLASS__, 'srmp3_review_license_before_submit'), 10); add_action( 'woocommerce_email_after_order_table', array( __CLASS__, 'email_order_show_license_link'), 10, 1 ); } $srmp3_product_player_priority = self::srmp3_get_default_product_player_priority(); $srmp3_product_player = self::srmp3_product_player_pos(); if ($srmp3_product_player !== 'disable'){ if ( 'after_summary' === $srmp3_product_player ) { add_action( 'woocommerce_after_single_product_summary', array( __CLASS__, 'sr_display_wc_shop_player' ), 10 ); } else { add_action( 'woocommerce_single_product_summary', array( __CLASS__, 'sr_display_wc_shop_player' ), $srmp3_product_player_priority[ $srmp3_product_player ] ); } }; if (self::srmp3_remove_wc_featured_image()=='true'){ //add_action( 'woocommerce_before_shop_loop_item_title', array( __CLASS__, 'sr_check_woo_image') , 10); } add_filter( 'woocommerce_post_class', array( __CLASS__, 'woocommerce_post_class' ), 10, 2 ); add_filter( 'woocommerce_cart_item_name', array( __CLASS__, 'srmp3_add_image_checkout' ), 9999, 3 ); if( Sonaar_Music::get_option('wc_variation_lb', 'srmp3_settings_woocommerce') != 'false' ){ add_filter( 'woocommerce_loop_add_to_cart_link', array( __CLASS__, 'srp_wc_variation_modal' ), 10, 2); } add_action( 'wp_loaded', array( __CLASS__, 'wc_shop_page_hooks' ), 10 ); } public static function srmp3_add_image_checkout ( $name, $cart_item, $cart_item_key ) { if ( ! is_checkout() ) {return $name;} $product = $cart_item['data']; if ($product->get_image_id() != 0){ $thumbnail = $product->get_image( array( '50', '50' ), array( 'class' => 'alignleft' ) ); }else{ $thumbnail = ''; } /*Above you can change the thumbnail size by changing array values e.g. array(‘100’, ‘100’) and also change alignment to alignright*/ return $thumbnail . $name; } /** * Callback function hooked to the 'woocommerce_post_class' filter * Add the 'waveplayer-product' class to a product with preview files * * @since 1.0.0 * @param array $classes The array containing the track info. * @param WC_Product $product The current $product object. * @return array The filtered array containing the product item classes */ public static function woocommerce_post_class( $classes, $product ) { $srmp3_product_player = Sonaar_Music::srmp3_check_if_audio($product, true); if($srmp3_product_player ){ $classes[] = 'srmp3-product'; if(self::srmp3_remove_wc_featured_image()=='true'){ $classes[] = 'srmp3-product__hideimage'; } } return $classes; } /** * Check if featured image shall be removed on our player * * @since 1.0.0 * @return string */ public static function sr_check_woo_image($product) { $srmp3_product_player = Sonaar_Music::srmp3_check_if_audio($product, true); if( !$srmp3_product_player ){ //var_dump("these product are NOT using the mp3 player"); add_action( 'woocommerce_before_shop_loop_item_title', 'woocommerce_template_loop_product_thumbnail', 10 ); add_action( 'woocommerce_before_shop_loop_item_title', 'woocommerce_show_product_loop_sale_flash', 10 ); }else{ // Remove product images from the shop loop remove_action( 'woocommerce_before_shop_loop_item_title', 'woocommerce_template_loop_product_thumbnail', 10 ); remove_action( 'woocommerce_before_shop_loop_item_title', 'woocommerce_show_product_loop_sale_flash', 10 ); } } /** * Get position of the player in wc product template * * @since 1.0.0 * @return string */ public static function srmp3_product_player_pos() { $srmp3player_pos = Sonaar_Music::get_option('sr_woo_product_position', 'srmp3_settings_woocommerce' ); if($srmp3player_pos){ return Sonaar_Music::get_option('sr_woo_product_position', 'srmp3_settings_woocommerce'); }else{ return 'disable'; } } /** * Get position of the player in wc shop loop * * @since 1.0.0 * @return string */ public static function srmp3_shop_player_pos() { return Sonaar_Music::get_option('sr_woo_shop_position', 'srmp3_settings_woocommerce'); } /** * Check if featured image shall be removed on our player * * @since 1.0.0 * @return string */ public static function srmp3_remove_wc_featured_image() { return Sonaar_Music::get_option('remove_wc_featured_image', 'srmp3_settings_woocommerce'); } /** * Register action for shop page loop * * @since 1.0.0 */ public static function wc_shop_page_hooks() { global $pagenow; if (is_admin() && !wp_doing_ajax() && !($pagenow == 'post.php' && ( isset($_GET['action']) && $_GET['action'] == 'elementor'))){ // we dont want to swap image columns for audio player in the admin area return; } $srmp3_shop_player = self::srmp3_shop_player_pos(); //disable, before, after if ($srmp3_shop_player !== 'disable'){ //if (self::srmp3_remove_wc_featured_image()=='true' || Sonaar_Music::get_option('sr_woo_shop_position') == 'over_image'){ if (Sonaar_Music::get_option('sr_woo_shop_position', 'srmp3_settings_woocommerce') == 'over_image'){ add_filter( 'woocommerce_product_get_image', array( __CLASS__, 'filter_srmp3_player_html' ), 10, 2 ); }else{ if ($srmp3_shop_player == 'after_item'){ add_action( "woocommerce_after_shop_loop_item", array( __CLASS__, 'sr_display_wc_shop_player' ), 10 ); }else{ add_action( "woocommerce_{$srmp3_shop_player}_shop_loop_item_title", array( __CLASS__, 'sr_display_wc_shop_player' ), 10 ); } } } } /** * Return the audio player shortcode * * @since 1.0.0 * @param string $html When used as a filter, the WC markup is replaced. * @param WC_Product|int $_product The ID or object of the current product. * @return string */ public static function filter_srmp3_player_html( $image, $_product = null ) { if ( self::is_single_product() || is_cart() || self::is_mini_cart() ) { return $image; } global $product; if ( is_numeric( $_product ) ) { if ( 'attachment' === get_post_type( $_product ) ) { $_product = $product; } elseif ( 'product' === get_post_type( $_product ) ) { $_product = wc_get_product( $_product ); } } $woo_srmp3_player = self::woo_srmp3_player ($_product); if ($woo_srmp3_player){ $image = $woo_srmp3_player; } return $image; } /** * Check if product related for our filter * * @since 1.0.0 * @return boolean */ public static function is_single_product() { if ( is_product() && 'related' !== wc_get_loop_prop( 'name' ) ) { return true; } return false; } /** * Prevent to filter if its inside mini cart * * @since 1.0.0 * @return boolean */ public static function is_mini_cart() { return ( did_action( 'woocommerce_before_mini_cart' ) > did_action( 'woocommerce_after_mini_cart' ) ); } /** * Return the SRMP3 shortcode if it being used in WC product otherwise return false * * @since 1.0.0 * @return string */ public static function woo_srmp3_player( $_product = null ) { $srmp3_product_player = Sonaar_Music::srmp3_check_if_audio($_product, true); if( !$srmp3_product_player ) return; if ( self::is_single_product() ){ $srmp3_product_skin = Sonaar_Music::get_option('sr_woo_skin_product', 'srmp3_settings_woocommerce'); if ($srmp3_product_skin == 'custom_shortcode'){ $player_shortcode = Sonaar_Music::get_option('sr_woo_product_player_shortcode', 'srmp3_settings_woocommerce'); }else{ $player_shortcode = '[sonaar_audioplayer'; $player_shortcode .= ' hide_timeline="false"'; //$player_shortcode .= ' hide_progressbar="true"'; $player_shortcode .= ' hide_artwork="true"'; //$player_shortcode .= ' hide_player_title="true"'; $player_shortcode .= ' hide_album_subtitle="true"'; $player_shortcode .= ' hide_control_under="true"'; $player_shortcode .= ( Sonaar_Music::get_option('sr_woo_skin_product_attr_progressbar', 'srmp3_settings_woocommerce') == 'true') ? ' hide_progressbar="false"': ' hide_progressbar="true"'; $player_shortcode .= ( Sonaar_Music::get_option('sr_woo_skin_product_attr_sticky_player', 'srmp3_settings_woocommerce') == 'true') ? ' sticky_player="true"': ' sticky_player="false"'; $player_shortcode .= ( Sonaar_Music::get_option('sr_woo_skin_product_attr_tracklist', 'srmp3_settings_woocommerce') == 'true') ? ' show_playlist="true"': ''; $player_shortcode .= ( Sonaar_Music::get_option('sr_woo_skin_product_attr_albumtitle', 'srmp3_settings_woocommerce') == 'true') ? ' hide_player_title="false" hide_album_title="false"': ' hide_player_title="true" hide_album_title="true"'; $player_shortcode .= ( Sonaar_Music::get_option('sr_woo_skin_product_attr_albumsubtitle', 'srmp3_settings_woocommerce') == 'true') ? ' hide_album_subtitle="false"': ''; $player_shortcode .= ( Sonaar_Music::get_option('sr_woo_skin_product_attr_control', 'srmp3_settings_woocommerce') == 'true') ? ' hide_control_under="false"': ''; //$player_shortcode .= ( Sonaar_Music::get_option('sr_woo_product_position') == 'over_image') ? ' hide_artwork="false" display_control_artwork="true" hide_control_under="true"': ''; $player_shortcode .= ( Sonaar_Music::get_option('sr_woo_skin_product_attr_progress_inline', 'srmp3_settings_woocommerce') == 'true') ? ' progressbar_inline="true" hide_timeline="false"': ''; $player_shortcode .= ' show_album_market="false"'; $player_shortcode .= ' hide_track_title="true"'; $player_shortcode .= ' hide_times="true"'; //$player_shortcode .= ' hide_timeline="true"'; $player_shortcode .= ' show_track_market="true"'; $player_shortcode .=' ]'; } }else { $srmp3_shop_skin = Sonaar_Music::get_option('sr_woo_skin_shop', 'srmp3_settings_woocommerce'); if ($srmp3_shop_skin == 'custom_shortcode'){ $player_shortcode = Sonaar_Music::get_option('sr_woo_shop_player_shortcode', 'srmp3_settings_woocommerce'); }else{ $player_shortcode = '[sonaar_audioplayer'; $player_shortcode .= ' hide_artwork="true"'; $player_shortcode .= ( Sonaar_Music::get_option('sr_woo_skin_shop_attr_progressbar', 'srmp3_settings_woocommerce') == 'true') ? ' hide_timeline="false"': ' hide_timeline="true"'; $player_shortcode .= ( Sonaar_Music::get_option('sr_woo_skin_shop_attr_sticky_player', 'srmp3_settings_woocommerce') == 'true') ? ' sticky_player="true"': ''; $player_shortcode .= ( Sonaar_Music::get_option('sr_woo_skin_shop_attr_tracklist', 'srmp3_settings_woocommerce') == 'true') ? ' show_playlist="true"': ''; $player_shortcode .= ( Sonaar_Music::get_option('sr_woo_shop_position', 'srmp3_settings_woocommerce') == 'over_image') ? ' hide_artwork="false" display_control_artwork="true" hide_control_under="true"': ''; $player_shortcode .= ( Sonaar_Music::get_option('sr_woo_skin_shop_attr_progress_inline', 'srmp3_settings_woocommerce') == 'true') ? ' progressbar_inline="true" hide_timeline="false"': ''; $player_shortcode .= ( Sonaar_Music::get_option('sr_woo_button_hover', 'srmp3_settings_woocommerce') == 'true') ? ' show_control_on_hover="true" ': ''; $player_shortcode .= ' hide_album_title="true"'; $player_shortcode .= ' show_album_market="false"'; $player_shortcode .= ' hide_track_title="true"'; $player_shortcode .= ' hide_times="true"'; $player_shortcode .= ' product_archive="true"'; //$player_shortcode .= ' hide_timeline="true"'; $player_shortcode .=' ]'; } } $shortcode = do_shortcode (" $player_shortcode "); if (strlen($shortcode) < 10) return false; return $shortcode; } public static function generateContract($post_id = null, $order = null, $product_name = null, $variation_id = null){ /* Get the Contract Fields /* */ // if variation_id is set if($variation_id){ $product_id = wp_get_post_parent_id( $variation_id ); } $usageterms_num_dist_copies = '' . get_post_custom_values( 'usageterms_num_dist_copies', $post_id )[0] . ''; $usageterms_num_audio_streams = '' . get_post_custom_values( 'usageterms_num_audio_streams', $post_id )[0] . ''; $usageterms_num_radio_stations = '' . get_post_custom_values( 'usageterms_num_radio_stations', $post_id )[0] . ''; $usageterms_num_free_downloads = '' . get_post_custom_values( 'usageterms_num_free_downloads', $post_id )[0] . ''; $usageterms_num_music_videos = '' . get_post_custom_values( 'usageterms_num_music_videos', $post_id )[0] . ''; $usageterms_num_monetized_video_streams = '' . get_post_custom_values( 'usageterms_num_monetized_video_streams', $post_id )[0] . ''; $usageterms_num_nonmonetized_video_streams = '' . get_post_custom_values( 'usageterms_num_nonmonetized_video_streams', $post_id )[0] . ''; $usageterms_allow_profit_performances = (get_post_custom_values( 'usageterms_allow_profit_performances', $post_id )[0] === 'yes') ? 'allows' : 'does not allow'; $usageterms_licensename = '' . get_the_title( $post_id ) . ''; $usageterms_get_current_date = '' . date(get_option('date_format')) . ''; $usageterms_states = (isset(get_post_custom_values( 'usageterms_state', $post_id )[0]) && get_post_custom_values( 'usageterms_state', $post_id )[0] !== '') ? '' . get_post_custom_values( 'usageterms_state', $post_id )[0] . ', ' . get_post_custom_values( 'usageterms_country', $post_id )[0] . '' : 'country of the seller'; $usageterms_producer_alias = '' . get_post_custom_values( 'usageterms_producer_alias', $post_id )[0] . ''; $usageterms_customer_fullname = (isset($order)) ? '' . $order->get_billing_first_name() . ' ' . $order->get_billing_last_name() . '' : 'The Customer Name'; $usageterms_customer_address = (isset($order)) ? '' . $order->get_billing_address_1() . ' ' . $order->get_billing_address_2() . '' : 'The Customer Address'; $usageterms_customer_email = (isset($order)) ? '' . $order->get_billing_email() . '' : 'The Customer Email Address'; $product_title = (isset($product_name)) ? '' . $product_name . '' : 'The Product'; //$product_price = '' . 'WIP PRICE $' . ''; /* Generate the contract /* */ $usageterms_contract = get_post_custom_values( 'usageterms_contract', $post_id )[0]; $usageterms_contract = str_replace('{LICENSE_NAME}', $usageterms_licensename, $usageterms_contract); $usageterms_contract = str_replace('{CUSTOMER_FULLNAME}', $usageterms_customer_fullname, $usageterms_contract); $usageterms_contract = str_replace('{CUSTOMER_ADDRESS}', $usageterms_customer_address, $usageterms_contract); $usageterms_contract = str_replace('{CUSTOMER_EMAIL}', $usageterms_customer_email, $usageterms_contract); $usageterms_contract = str_replace('{CONTRACT_DATE}', $usageterms_get_current_date, $usageterms_contract); $usageterms_contract = str_replace('{PRODUCER_ALIAS}', $usageterms_producer_alias, $usageterms_contract); $usageterms_contract = str_replace('{PRODUCT_TITLE}', $product_title, $usageterms_contract); //$usageterms_contract = str_replace('{PRODUCT_PRICE}', $product_price, $usageterms_contract); $usageterms_contract = str_replace('{PERFORMANCES_FOR_PROFIT}', $usageterms_allow_profit_performances, $usageterms_contract); $usageterms_contract = str_replace('{NUMBER_OF_RADIO_STATIONS}', $usageterms_num_radio_stations, $usageterms_contract); $usageterms_contract = str_replace('{MONETIZED_MUSIC_VIDEOS}', $usageterms_num_music_videos, $usageterms_contract); $usageterms_contract = str_replace('{DISTRIBUTE_COPIES}', $usageterms_num_dist_copies, $usageterms_contract); $usageterms_contract = str_replace('{AUDIO_STREAMS}', $usageterms_num_audio_streams, $usageterms_contract); $usageterms_contract = str_replace('{MONETIZED_VIDEO_STREAMS_ALLOWED}', $usageterms_num_monetized_video_streams, $usageterms_contract); //$usageterms_contract = str_replace('{NONMONETIZED_VIDEO_STREAMS_ALLOWED}', $usageterms_num_nonmonetized_video_streams, $usageterms_contract); $usageterms_contract = str_replace('{FREE_DOWNLOADS}', $usageterms_num_free_downloads, $usageterms_contract); $usageterms_contract = str_replace('{STATE_PROVINCE_COUNTRY}', $usageterms_states, $usageterms_contract); if(function_exists('acf') && $product_id){ // if {acf_any_field_value} is found in the contract, replace it with the acf field value from the product post. It allows to use any acf field in the contract. $pattern = '/\{acf_([^}]+)\}/'; // Regular expression pattern $usageterms_contract = preg_replace_callback($pattern, function($matches) use ($product_id) { $field_value = $matches[1]; // Captured value between {acf_ and } return do_shortcode('[acf field="' . $field_value . '" post_id="' . $product_id . '"]'); }, $usageterms_contract); } foreach (get_post_meta($post_id, 'usageterms_custom_options_group') as $value){ foreach($value as $string){ $usageterms_contract = str_replace( $string['usageterms_custom_options_item_var'], $string['usageterms_custom_options_item_name'], $usageterms_contract); } } return wp_kses( $usageterms_contract, array( 'a' => array( 'href' => array(), 'title' => array() ), 'br' => array(), 'p' => array(), 'h1' => array(), 'h2' => array(), 'h3' => array(), 'h4' => array(), 'h5' => array(), 'em' => array(), 'strong' => array(), ) ); } /** * Output SRMP3 player on the shop loop * * @since 1.0.0 */ public static function sr_display_wc_shop_player() { $woo_srmp3_player = self::woo_srmp3_player (); if ($woo_srmp3_player){ echo $woo_srmp3_player; } } // Return all args if $argKey is not set or a specific arg from a product variantion ID | "Custom product attribute" only return its name //$argKey eq: 'name','term_taxonomy_id' public static function srp_get_productAttibuteTerm_arg_from_productVariantionId($productVariantionID, $argKey = null) { $variantionPost = wc_get_product($productVariantionID); if ( ! $variantionPost ) { return; } $variantAttributes = $variantionPost ->get_attributes(); $variantAttributesTermIDs=[]; foreach ( $variantAttributes as $taxonomy => $value ) { $term_obj = get_term_by( 'slug', $value, $taxonomy ); if($term_obj === false){ //if it is a "Custom product attribute", return only its name. array_push($variantAttributesTermIDs, $value); }else if( $argKey != null && isset($term_obj->$argKey)){ //if $argKey is set, return this specific value array_push($variantAttributesTermIDs, $term_obj->$argKey); }else{ //Otherwise, return all args. array_push($variantAttributesTermIDs, $term_obj); } } return($variantAttributesTermIDs); } public static function srp_get_license_post_id_from_attribute_term_id($attrTermID) { //Return all Usage-terms post IDs who the Product Attribute [$attrTermID] is selected $usageTermsPosts = get_posts(array( 'post_type' => 'usage-terms', 'posts_per_page' => -1, )); $usageTerms_selectedAtribute = []; foreach ( $usageTermsPosts as $post ) { $selectedAtribute = get_post_meta($post->ID, 'usageterms_product_variation'); if(in_array($attrTermID, $selectedAtribute)){ array_push($usageTerms_selectedAtribute,$post->ID); } } return $usageTerms_selectedAtribute; } public static function srp_get_variantFileTypes_from_variationID($variantId) { $productVariationTermIDs = SRMP3_WooCommerce::srp_get_productAttibuteTerm_arg_from_productVariantionId( $variantId, 'term_taxonomy_id' ); $licensePostId = []; $variantFileTypes = []; foreach ( $productVariationTermIDs as $value) { //Each product attribute term select to the variation $licensePostId = array_merge($licensePostId, SRMP3_WooCommerce::srp_get_license_post_id_from_attribute_term_id($value) ); } foreach ( $licensePostId as $value) { //Each product attribute term select to the variation $variantFileTypes = array_merge($variantFileTypes, get_post_meta($value, 'usageterms_filetypes')[0] ); } $variantFileTypes = array_map(function($n){return SRMP3_WooCommerce::srp_outputTranslatableTexts($n);}, $variantFileTypes); $variantFileTypes = implode(__(' + ', 'sonaar-music-pro'), $variantFileTypes); return $variantFileTypes; } public static function srp_wc_variation_output_all_usageTerms($variantId) { $response = ''; $productVariationTermIDs = SRMP3_WooCommerce::srp_get_productAttibuteTerm_arg_from_productVariantionId( $variantId, 'term_taxonomy_id' ); foreach ( $productVariationTermIDs as $value) { //Each product attribute term select to the variation $usageTermIDs = SRMP3_WooCommerce::srp_get_license_post_id_from_attribute_term_id($value); foreach ($usageTermIDs as $theUsageTerm) { //Each usage-term post selected by the product attribute term $response .= SRMP3_WooCommerce::srp_wc_variation_output_usageTerms($theUsageTerm); } } return $response; } public static function srp_outputTranslatableTexts($string) { switch ($string) { case 'mp3': $string = __('mp3', 'sonaar-music-pro'); break; case 'wav': $string = __('wav', 'sonaar-music-pro'); break; case 'stems': $string = __('stems', 'sonaar-music-pro'); break; case 'yes': $string = __('yes', 'sonaar-music-pro'); break; case 'no': $string = __('no', 'sonaar-music-pro'); break; } return($string); } public static function srp_wc_variation_output_usageTerms($termID, $show_preview_button = null) { if ( 'publish' == get_post_status ( $termID ) && 'usage-terms' === get_post_type( $termID ) ){ }else{ return; } $termFieldID = [ array('id' => 'usageterms_filetypes', 'label' => __('{value} included', 'sonaar-music-pro'), 'icon' => 'sricon-filedownload' ), array('id' => 'usageterms_num_dist_copies', 'label' => __('Distribute up to {value} copies', 'sonaar-music-pro'), 'icon' => 'sricon-layers' ), array('id' => 'usageterms_num_audio_streams', 'label' => __('{value} audio streams', 'sonaar-music-pro'), 'icon' => 'sricon-audiostream' ), array('id' => 'usageterms_num_music_videos', 'label' => __('{value} music videos', 'sonaar-music-pro'), 'icon' => 'sricon-svg-video' ), array('id' => 'usageterms_num_radio_stations', 'label' => __('Radio broadcasting rights ({value} stations)', 'sonaar-music-pro'), 'icon' => 'sricon-radio2' ), array('id' => 'usageterms_num_free_downloads', 'label' => __('{value} free downloads', 'sonaar-music-pro'), 'icon' => 'sricon-download' ), array('id' => 'usageterms_num_monetized_video_streams', 'label' => __('{value} video streams', 'sonaar-music-pro'), 'icon' => 'sricon-podcastindex' ), array('id' => 'usageterms_allow_profit_performances', 'label' => esc_html__('For paid performances? {value}', 'sonaar-music-pro'), 'icon' => 'sricon-dj' ) ]; $output = '
      '; $output .= '
      '. get_the_title( $termID ) .'
      '; $output .= '
      '; // Load hardcoded license options foreach ($termFieldID as $fieldID){ if (count(get_post_meta($termID, $fieldID['id'])) > 0 ){ if ($fieldID['id'] == 'usageterms_filetypes'){ $fileTypes = array(); foreach (get_post_meta($termID, 'usageterms_filetypes') as $value){ $value = array_map(function($n){return SRMP3_WooCommerce::srp_outputTranslatableTexts($n);}, $value); $fileTypes = array_merge($fileTypes, $value); } $fileTypes = array_unique($fileTypes); $fileTypes = implode(__(' + ', 'sonaar-music-pro'), $fileTypes); $field = str_replace('{value}', '' . esc_html($fileTypes) .'' , $fieldID['label']); }else{ $value = array_map(function($n){return SRMP3_WooCommerce::srp_outputTranslatableTexts($n);}, get_post_meta($termID, $fieldID['id'])); $value = array_unique($value); $field = str_replace('{value}', '' . esc_html(implode(",", $value)) .'' , $fieldID['label']); } $output .= '
      '; $output .= '' . $field . ''; $output .= '
      '; // DIV srp_term_meta } } // Load custom license options foreach (get_post_meta($termID, 'usageterms_custom_options_group') as $value){ foreach($value as $string){ $icon = ($string['usageterms_custom_options_item_icon'] != '') ? $string['usageterms_custom_options_item_icon'] : "fa-solid fa-check"; $output .= '
      '; $output .= '' . $string['usageterms_custom_options_item_name'] . ''; $output .= '
      '; // DIV srp_term_meta } } $output .= '
      '; // DIV srp_term_meta_list if($show_preview_button === 'true'){ $output .=' '; } $output .= '
      '; // DIV srp_variant_terms return $output; } public static function srp_wc_variation_modal($button, $product) { if ($product->is_type( 'variable' ) && count($product->get_available_variations()) > 0 && Sonaar_Music::srmp3_check_if_audio($product, true)){ $button = str_replace('class="', 'onclick="srp_variation_button(this)" class="', $button); $needle_start = 'href="'; $needle_end = '"'; $replacement = '#!'; $pos = strpos($button, $needle_start); $start = $pos === false ? 0 : $pos + strlen($needle_start); $pos = strpos($button, $needle_end, $start); $end = $pos === false ? strlen($button) : $pos; $button = substr_replace($button, $replacement, $start, $end - $start); //remove the href } return $button; } public static function srmp3_add_license_button( $cart_item ) { $variation_id = $cart_item['variation_id']; // The variation ID $product = wc_get_product( $cart_item['variation_id'] ); if ( ! $product ) { return; } $attrTermID = SRMP3_WooCommerce::srp_get_productAttibuteTerm_arg_from_productVariantionId( $variation_id, 'term_taxonomy_id' ); $licenseID = array(); foreach($attrTermID as $value){ $licenseID = array_merge($licenseID, SRMP3_WooCommerce::srp_get_license_post_id_from_attribute_term_id($value) ); } foreach($licenseID as $value){ ?> '; $response .= SRMP3_WooCommerce::srp_wc_variation_output_usageTerms( $_POST['licenseId'] ); $response .= SRMP3_WooCommerce::generateContract(sanitize_text_field($_POST['licenseId']), null, sanitize_text_field($_POST['productName']), sanitize_text_field($_POST['variationId'])); $response .= '
      '; echo $response; wp_die(); } public static function load_wc_variation_by_ajax_callback() { check_ajax_referer('sonaar_music_ajax_nonce', 'nonce'); $variantList = []; $product = wc_get_product($_POST['product-id']); $product_title = $product->get_title(); $image_src = isset($_POST['image_src']) ? esc_url($_POST['image_src']) : ''; $image_element = $image_src ? '
      ' . $product_title . '
      ' : ''; $wc_ajaxClass = (Sonaar_Music::get_option('wc_enable_ajax_addtocart', 'srmp3_settings_woocommerce') == 'true') ? ' ajax_add_to_cart' : ''; if ($product->is_type( 'variable' )){ $variations = $product->get_available_variations(); $variations_id = wp_list_pluck( $variations, 'variation_id' ); if( count($variations_id) > 0){ $variantDefaultIndex = 0; $attributes = array_keys($product->get_variation_attributes()); $attributes = array_map(function($value) { return ucfirst(str_replace('pa_', '', $value)); }, $attributes); $attributes = implode(', ', $attributes); $defaultVariation =($product->get_default_attributes() == [])? [] : array_filter( $product->get_default_attributes() ) ; foreach ($variations_id as $i=>$variant_id) { $variationList = SRMP3_WooCommerce::srp_get_productAttibuteTerm_arg_from_productVariantionId( $variant_id, 'name' ); $variantList[$i] = array( 'variantId' => $variant_id, 'variantName' => implode(" / ", $variationList), 'variantDefault' => (implode(' ', $defaultVariation) == implode(' ', $variationList) || ( count($defaultVariation) == 0 && $i == 0 ) )? true : false, //If is the default variation 'variantDescription' => wc_get_product($variant_id)->get_description(), 'variantPrice' => wc_price(wc_get_product($variant_id)->get_price()), 'variantRegPrice' => wc_price(wc_get_product($variant_id)->get_regular_price()), 'variantSalePrice' => wc_get_product($variant_id)->get_sale_price(), 'variantFileTypes' => SRMP3_WooCommerce::srp_get_variantFileTypes_from_variationID($variant_id), 'variantTerm' => get_post_meta( $variant_id, 'custom_field', true ), 'extraClass' => '' ); if(implode(' ', $defaultVariation) == implode(' ', $variationList) ){ $variantDefaultIndex = $i; } } $variantList[$variantDefaultIndex]['extraClass'] = 'srp_selected'; $response = '
      '; $response .= '
      ' . $image_element . '
      ' . $product_title . '
      '; $response .= ($product->get_short_description() != '')?'
      ' . $product->get_short_description() . '
      ':''; $response .= '
      ' . $attributes . '
      '; $response .= '
      '; foreach ($variantList as $i=>$variant) { $selectedClass = ($variant['variantDefault'])? 'srp_selected':''; $response .= '
      '; $response .= '
      ' . $variant['variantName'] . '
      '; $response .= '
      '; $response .= ( $variant['variantSalePrice'] != '' )? ''. $variant['variantRegPrice'] . ' ': ''; $response .= $variant['variantPrice']; $response .= '
      '; //DIV srp-modal-variant-price $response .= ( $variant['variantFileTypes'] != '' && Sonaar_Music::get_option('wc_enable_licenses_cpt', 'srmp3_settings_woocommerce') == 'true' )? '
      ' . $variant['variantFileTypes'] . '
      ' : ''; $response .= ( $variant['variantDescription'] != '' )? '
      ' . $variant['variantDescription'] . '
      ' : ''; $response .= '
      '; //DIV srp-modal-variant-selector } $response .= '
      '; //DIV srp-modal-product-variation if (Sonaar_Music::get_option('wc_enable_licenses_cpt', 'srmp3_settings_woocommerce') == 'true'){ foreach ($variantList as $variant) { $response .= '
      '; $response .= SRMP3_WooCommerce::srp_wc_variation_output_all_usageTerms( $variant['variantId'] ); $response .= '
      '; //DIV srp-modal-variation-details } } //$response .= SRMP3_WooCommerce::loadFormattedLicenseDetail($variantList); $response .= '
      '; $response .= '
      ' . esc_html__( 'Total:', 'sonaar-music-pro') . ' ' . $variantList[$variantDefaultIndex]['variantPrice'] . '
      '; if (Sonaar_Music::get_option('wc_enable_custom_link_in_modal', 'srmp3_settings_woocommerce') == 'true'){ if (Sonaar_Music::get_option('wc_enable_custom_link_is_product', 'srmp3_settings_woocommerce') == 'true'){ $productID = sanitize_text_field($_POST['product-id']); $link = get_permalink($productID); }else if(Sonaar_Music::get_option('wc_enable_custom_link_is_custom', 'srmp3_settings_woocommerce') !== ''){ $link = Sonaar_Music::get_option('wc_enable_custom_link_is_custom', 'srmp3_settings_woocommerce'); } if (Sonaar_Music::get_option('wc_enable_custom_link_icon', 'srmp3_settings_woocommerce')){ $icon_html = ''; }else{ $icon_html = ''; } $target = Sonaar_Music::get_option('wc_enable_custom_link_target', 'srmp3_settings_woocommerce'); $label = Sonaar_Music::get_option('wc_enable_custom_link_label', 'srmp3_settings_woocommerce'); $response .= ''; } $response .= '' . esc_html__( 'Add to cart','woocommerce') . ''; $response .= '
      '; //DIV srp-modal-variant-main $response .= '
      '; //DIV srp-modal-variation-list } } echo wp_json_encode($response, JSON_HEX_TAG); wp_die(); } public static function srmp3_add_meta_to_order( $order_id, $data ) { $order_obj = wc_get_order( $order_id ); $folder = "/license-pdfs/"; foreach ( $order_obj->get_items() as $item_id => $item ) { $variation_id = $item->get_variation_id(); $product = wc_get_product( $variation_id ); if ( ! $product ) { return; } $attrTermID = SRMP3_WooCommerce::srp_get_productAttibuteTerm_arg_from_productVariantionId( $variation_id, 'term_taxonomy_id' ); $licenseID = array(); foreach($attrTermID as $value){ $licenseID = array_merge($licenseID, SRMP3_WooCommerce::srp_get_license_post_id_from_attribute_term_id($value) ); } foreach($licenseID as $value){ $uploads_dir = wp_get_upload_dir()['baseurl'] . $folder; $pdf_link = "{$uploads_dir}license-agreement-order-{$order_id}-item-{$item_id}.pdf"; $order_obj->update_meta_data( '_item_'. $item_id . '_srmp3_license_url', $pdf_link ); $order_obj->update_meta_data( '_has_srmp3_license', 'yes' ); } } $order_obj->save(); } /** * undocumented function summary * * Undocumented function long description * * @param Type $var Description * @return type * @throws conditon **/ public static function email_order_show_license_link( $order_id ) { /*$option = get_option( 'beats_license_email_setting' ); if ( isset( $option['show_license_link_order_completed_email']) && $option['show_license_link_order_completed_email'] === 'on' ) { $show_link = true; } else { $show_link = false; }*/ $order_obj = wc_get_order( $order_id ); $has_license = $order_obj->get_meta( '_has_srmp3_license' ); if ( 'yes' === $has_license && 'completed' === $order_obj->get_status() ) : ?>

      get_meta( '_has_srmp3_license' ); if ( 'yes' === $has_license && 'completed' === $order_obj->get_status() ) : ?>

      get_items() as $item_id => $item ) : $license_link = $order_obj->get_meta( '_item_'. $item_id . '_srmp3_license_url' ); $product = $item->get_product(); if ( $license_link ) : ?>
      get_name(); ?>
      cart->get_cart(); foreach ( $cart as $cart_item_key => $cart_item ) { $product = $cart_item['data']; $license = SRMP3_WooCommerce::srmp3_has_usage_license( $cart_item, $cart_item_key ); $cart[$cart_item_key]['has_license'] = false; if ( $license ) { $cart[$cart_item_key]['has_license'] = true; $no_licenses = false; } } if ( $no_licenses ) { return; } ?>

      $cart_item ) { $product = $cart_item['data']; $license = SRMP3_WooCommerce::srmp3_has_usage_license( $cart_item, $cart_item_key ); if ( $cart[$cart_item_key]['has_license'] ) { ?>
      get_name(); ?>
      get_items() as $item_id => $item ) { $product = $item->get_product(); $variation_id = $item->get_variation_id(); $prod = wc_get_product( $variation_id ); if ( ! $prod ) { return; } $attrTermID = SRMP3_WooCommerce::srp_get_productAttibuteTerm_arg_from_productVariantionId( $variation_id, 'term_taxonomy_id' ); $licenseID = array(); foreach($attrTermID as $value){ $licenseID = array_merge($licenseID, SRMP3_WooCommerce::srp_get_license_post_id_from_attribute_term_id($value) ); } foreach($licenseID as $value){ $template = SRMP3_WooCommerce::generateContract($value, $order_obj, $product->name, $variation_id); $html2pdf = new Html2Pdf(); $html2pdf->writeHTML( stripslashes( $template ) ); $uploads_dir = wp_get_upload_dir()['basedir'] . $folder; file_put_contents( $uploads_dir . 'index.php', 'output( $path, 'F'); } } } public static function sonaar_shortcode_license($atts = [], $content = null) { //exemple de shortcode: [sonaar_license post_id="771" column="true" show_preview_button="true"] extract(shortcode_atts(array( 'post_id' => '', 'column' =>'', 'show_preview_button' =>'', ), $atts)); if($post_id !== ''){ $post_id = explode(",", $post_id); }else{ // GET ALL LICENSES FROM CURRENT PRODUCT PAGE $post_id = []; if(get_post_type() == 'product'){ $product = wc_get_product(get_the_ID()); if ($product->is_type( 'variable' )){ $variations = $product->get_available_variations(); $variations_id = wp_list_pluck( $variations, 'variation_id' ); if( count($variations_id) > 0){ foreach ($variations_id as $variant_id) { $productVariationTermIDs = SRMP3_WooCommerce::srp_get_productAttibuteTerm_arg_from_productVariantionId( $variant_id, 'term_taxonomy_id' ); foreach ( $productVariationTermIDs as $value) { //Each product attribute term select to the variation $post_id = array_merge($post_id, SRMP3_WooCommerce::srp_get_license_post_id_from_attribute_term_id($value)); } } } } } } $column_class = ($column ==='true') ? ' srp_variant_terms--column' : ''; //$show_preview_button = 'true'; $output = '
      '; foreach($post_id as $value){ if($post_id != '' && (int)$post_id ){ $output .= SRMP3_WooCommerce::srp_wc_variation_output_usageTerms( $value, $show_preview_button); } } $output .= '
      '; // END srp_variant_terms_container return $output; } } SRMP3_WooCommerce::load();PK!&% includes/class-sonaar-chips.phpnu[version, 'all' ); /* Enqueue Sonnar Music css file on single Album Page */ /*if ( is_single() && get_post_type() == SR_PLAYLIST_CPT ) { wp_enqueue_style( 'sonaar-music-pro' ); }*/ $widget_ops = array( 'classname' => 'sonaar_chips_widget', 'description' => esc_html_x('Add Chips from the URL Query', 'Widget', 'sonaar-music') ); //wp_enqueue_script('vue-multiselect' ); //wp_register_script( 'vue-multiselect', plugin_dir_url( __DIR__ ) . 'public/js/vue-multiselect.min.js' , array(), '2.1.6', true ); self::$widget_defaults = array( 'title' => '', ); parent::__construct('sonaar-music', esc_html_x('Sonaar: Chips', 'Widget', 'sonaar-music'), $widget_ops); } public function widget ( $args, $instance ){ $instance = wp_parse_args( (array) $instance, self::$widget_defaults ); $data_player_id = (isset($instance['player_id']) && $instance['player_id'] != '')? ' data-player-id="' . $instance['player_id'] . '"' : ''; $hide_clearall = (isset($instance['hide_clearall']) && $instance['hide_clearall'] === 'true')? ' data-hideclear=1' : ''; $data_clearall_label_txt = (isset($instance['clearall_label']))? $instance['clearall_label']: 'Clear All'; $data_clearall_label = ' data-clearall="' . $data_clearall_label_txt . '"'; $widget_id = (isset($instance['id']))? $instance['id']: ''; $output = '
      '; $output .=(( did_action( 'elementor/loaded' )) && \Elementor\Plugin::$instance->editor->is_edit_mode()) ? '
      Chip Example 1
      Chip Example 2
      ' . $data_clearall_label_txt . '
      ' : ''; $output .='
      '; echo $output; } }PK!*=33#includes/class-sonaar-music-get.phpnu[interval = absint( $interval ); // $this->start_date = date( self::MYSQL_DATETIME_FORMAT, strtotime( sprintf( '-%d days', $this->interval ) ) ); return $this; } public function set_date( $start, $end ){ $this->start_date = date( self::MYSQL_DATETIME_FORMAT, strtotime($start) ); $this->end_date = date( self::MYSQL_DATETIME_FORMAT, strtotime($end . ' + 1439 minutes') ); return $this; } public function get_date(){ return array($this->start_date, $this->end_date); } /** * Retrieve the total number of plays during the specified interval. * * @since 1.0.0 * * @return integer */ public function get_play_count($url = false) { if ( $url ) { $sql = $this->db->prepare( "SELECT COUNT( * ), page_url FROM {$this->db_name} WHERE action = 'play' AND page_url = %s AND target_time = 0 AND created BETWEEN %s AND %s", $url, $this->start_date, $this->end_date ); }else{ $sql = $this->db->prepare( "SELECT COUNT( * ) FROM {$this->db_name} WHERE action = 'play' AND target_time = 0 AND created BETWEEN %s AND %s", $this->start_date, $this->end_date ); } return (int) $this->db->get_var( $sql ); } public function get_download_count($url = false) { if ( $url ) { $sql = $this->db->prepare( "SELECT COUNT( * ), page_url FROM {$this->db_name} WHERE action = 'download' AND page_url = %s AND target_time = 0 AND created BETWEEN %s AND %s", $url, $this->start_date, $this->end_date ); }else{ $sql = $this->db->prepare( "SELECT COUNT( * ) FROM {$this->db_name} WHERE action = 'download' AND target_time = 0 AND created BETWEEN %s AND %s", $this->start_date, $this->end_date ); } return (int) $this->db->get_var( $sql ); } /** * Retrieve the total number of listeners during the specified interval. * * @since 1.0.0 * * @return integer */ public function get_listener_count() { $sql = $this->db->prepare( "SELECT COUNT( DISTINCT client_uid ) FROM {$this->db_name} WHERE action = 'play' AND target_time = 0 AND created BETWEEN %s AND %s", $this->start_date, $this->end_date ); return (int) $this->db->get_var( $sql ); } /** * Retrieve the number of tracks played during the specified interval. * * @since 1.0.0 * * @return integer */ public function get_track_count() { $sql = $this->db->prepare( "SELECT COUNT( DISTINCT target_url ) FROM {$this->db_name} WHERE action = 'play' AND target_time = 0 AND created BETWEEN %s AND %s", $this->start_date, $this->end_date ); return (int) $this->db->get_var( $sql ); } /** * Retrieve the total plays per day within the specified interval. * * @since 1.0.0 * * @return array */ public function get_play_count_by_day($url = false) { if ( $url ) { $sql = $this->db->prepare( "SELECT DATE_FORMAT( DATE_ADD( created, INTERVAL %d HOUR ), '%%c/%%e' ) AS date, page_url, target_title, target_url FROM {$this->db_name} WHERE ( action = 'play' AND target_time = 0 ) AND page_url = %s AND created BETWEEN %s AND %s ORDER BY created ASC", array( $this->offset, $url, $this->start_date, $this->end_date, //$this->offset ) ); }else{ $sql = $this->db->prepare( "SELECT DATE_FORMAT( DATE_ADD( created, INTERVAL %d HOUR ), '%%c/%%e' ) AS date, target_title, target_url FROM {$this->db_name} WHERE ( action = 'play' AND target_time = 0 ) AND created BETWEEN %s AND %s ORDER BY created ASC", array( $this->offset, $this->start_date, $this->end_date //$this->offset ) ); } $results = $this->db->get_results( $sql ); $data = array(); $current_time = strtotime( $this->end_date ); $emptyDate = array(); // Create an array with an entry for every date in the period, including // days when there weren't any listens. for ( $i = $this->interval - 1; $i >= 0; $i-- ) { $date = date( 'n/j', $current_time - $i * DAY_IN_SECONDS ); $emptyDate[ $date ] = (object) array( 'date' => $date, 'complete_count' => 0, 'play_count' => 0, ); } foreach ($results as $res) { $res->play_count = 1; $label = (get_the_title( $res->target_url ) )? get_the_title( $res->target_url ): $res->target_title; if (!array_key_exists($label, $data)) { $data[$label] = array(); } } foreach ($data as $key => $dataputDate ) { $data[$key] = $emptyDate; } foreach ($results as $res ) { $label = (get_the_title( $res->target_url ) )? get_the_title( $res->target_url ): $res->target_title; if (!array_key_exists($res->date , $data[$label])) { $data[$label][$res->date] = $res; }else{ $cacheCount = $data[$label][$res->date]->play_count; $data[$label][$res->date] = $res; $data[$label][$res->date]->play_count = $cacheCount + 1; } } function rand_color() { $rand = str_pad(dechex(rand(0x000000, 0xFFFFFF)), 6, 0, strtoupper(STR_PAD_LEFT)); return '#' . $rand; } $dataChart = array( "labels" => array_keys($emptyDate), "datasets" => array() ); foreach ($data as $key => $value) { $data[$key] = wp_list_pluck( $data[$key], 'play_count', 'date'); } foreach ($data as $key => $value) { $color = rand_color(); $dataset = array( "label" => stripslashes($key), "backgroundColor" => $color, "borderColor" => $color, "data" => array_values($data[$key]), "fill" => true ); array_push($dataChart['datasets'], $dataset); } return $dataChart; } /** * Retrieve the plays per page during the specified interval. * * @since 1.0.0 * * @param array $args Array of arguments. * @return array */ public function get_play_count_per_page( $args = array() ) { $args = wp_parse_args( $args, array( 'limit' => 10 ) ); $sql = $this->db->prepare( "SELECT page_title, page_url, COUNT(*) AS play_count FROM {$this->db_name} WHERE action = 'play' AND target_time = 0 AND created BETWEEN %s AND %s GROUP BY page_url ORDER BY play_count DESC LIMIT %d", $this->start_date, $this->end_date, absint( $args['limit'] ) ); $results = $this->db->get_results( $sql ); foreach ( $results as $key => $result ) { if ( empty( $result->page_title ) ) { $results[ $key ]->page_title = $result->page_url; } } return $results; } /** * Retrieve the plays per day for each track within the specified interval. * * @since 1.0.0 * * @param array $args Array of arguments. * @return array */ public function get_play_count_per_track( $args = array() ) { $args = wp_parse_args( $args, array( 'limit' => 10 , 'url' => false) ); if ($args['url']) { $sql = $this->db->prepare( "SELECT target_title, target_url, page_url, COUNT( IF( action = 'play', 1, NULL ) ) AS play_count FROM {$this->db_name} WHERE ( ( action = 'play' AND target_time = 0 ) OR action = 'complete' OR action = 'skip' ) AND page_url = %s GROUP BY target_url ORDER BY play_count DESC LIMIT %d", $args['url'], absint( $args['limit'] ) ); }else{ $sql = $this->db->prepare( "SELECT target_title, target_url, page_url, COUNT( IF( action = 'play', 1, NULL ) ) AS play_count FROM {$this->db_name} WHERE ( ( action = 'play' AND target_time = 0 ) OR action = 'complete' OR action = 'skip' ) GROUP BY target_url ORDER BY play_count DESC LIMIT %d", absint( $args['limit'] ) ); } $results = $this->db->get_results( $sql ); return $results; } public function get_download_count_per_track( $args = array() ) { $args = wp_parse_args( $args, array( 'limit' => 10 , 'url' => false) ); if ($args['url']) { $sql = $this->db->prepare( "SELECT target_title, target_url, page_url, COUNT( IF( action = 'download', 1, NULL ) ) AS download_count FROM {$this->db_name} WHERE action = 'download' AND page_url = %s GROUP BY target_url ORDER BY download_count DESC LIMIT %d", $args['url'], absint( $args['limit'] ) ); }else{ $sql = $this->db->prepare( "SELECT target_title, target_url, page_url, COUNT( IF( action = 'download', 1, NULL ) ) AS download_count FROM {$this->db_name} WHERE action = 'download' GROUP BY target_url ORDER BY download_count DESC LIMIT %d", absint( $args['limit'] ) ); } $results = $this->db->get_results( $sql ); return $results; } /** * Retrieve data to display the change in plays compared to the previous interval. * * @since 1.0.0 * * @param array $args Array of arguments. * @return array */ public function get_chart_data( $args = array() ) { $args = wp_parse_args( $args, array( 'limit' => 10 ) ); $sql = $this->db->prepare( "SELECT target_title, target_url, COUNT( IF( DATE_ADD( created, INTERVAL %d HOUR ) >= DATE_SUB( %s, INTERVAL %d DAY ), 1, NULL ) ) AS plays_this_period, COUNT( IF( DATE_ADD( created, INTERVAL %d HOUR ) < DATE_SUB( %s, INTERVAL %d DAY ), 1, NULL ) ) AS plays_last_period FROM {$this->db_name} WHERE action = 'play' AND target_time = 0 AND created BETWEEN %s AND %s GROUP BY target_url ORDER BY plays_this_period DESC LIMIT %d", $this->offset, $this->end_date, $this->interval, $this->offset, $this->end_date, $this->interval, date( self::MYSQL_DATETIME_FORMAT, strtotime( sprintf( '-%d days', $this->interval * 2 ) ) ), $this->end_date, absint( $args['limit'] ) ); $results = $this->db->get_results( $sql ); return $results; } }PK!kOPOPlanguages/sonaar-music-pro.potnu[#, fuzzy msgid "" msgstr "" "Project-Id-Version: MP3 Audio Player by Sonaar - Pro Addon\n" "POT-Creation-Date: 2023-06-28 11:28-0400\n" "PO-Revision-Date: 2023-06-28 11:26-0400\n" "Last-Translator: \n" "Language-Team: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=INTEGER; plural=EXPRESSION;\n" "X-Generator: Poedit 3.3.2\n" "X-Poedit-Basepath: ..\n" "X-Poedit-Flags-xgettext: --add-comments=translators:\n" "X-Poedit-WPHeader: sonaar-music-pro.php\n" "X-Poedit-SourceCharset: UTF-8\n" "X-Poedit-KeywordsList: __;_e;_n:1,2;_x:1,2c;_ex:1,2c;_nx:4c,1,2;esc_attr__;" "esc_attr_e;esc_attr_x:1,2c;esc_html__;esc_html_e;esc_html_x:1,2c;_n_noop:1,2;" "_nx_noop:3c,1,2;__ngettext_noop:1,2\n" "X-Poedit-SearchPath-0: .\n" "X-Poedit-SearchPathExcluded-0: *.min.js\n" "X-Poedit-SearchPathExcluded-1: vendor\n" "X-Poedit-SearchPathExcluded-2: node_modules\n" #. Author of the plugin/theme #: admin/class-sonaar-music-pro-admin.php:227 #: admin/class-sonaar-music-pro-admin.php:242 #: admin/class-sonaar-music-pro-admin.php:257 msgid "Sonaar Music" msgstr "" #: admin/class-sonaar-music-pro-admin.php:231 msgid "Statistics" msgstr "" #: admin/class-sonaar-music-pro-admin.php:246 msgid "Tools" msgstr "" #: admin/class-sonaar-music-pro-admin.php:261 #: includes/class-woocommerce.php:808 msgid "License" msgstr "" #: admin/class-sonaar-music-pro-admin.php:341 msgid "Published" msgstr "" #: admin/class-sonaar-music-pro-admin.php:405 msgid "" "An Unexpected HTTP Error occurred during the API request.

      Try again" msgstr "" #: admin/class-sonaar-music-pro-admin.php:410 msgid "An unknown error occurred" msgstr "" #. translators: %s is the number of tracks found. #: admin/class-sonaar-music-pro-admin.php:721 #, php-format msgid "%s track" msgid_plural "%s tracks" msgstr[0] "" msgstr[1] "" #: admin/class-sonaar-music-pro-admin.php:772 msgid "An error occurred while retrieving the audio attachments lists." msgstr "" #: admin/partials/sonaar-music-pro-tools-display.php:13 msgid "Import From CSV File" msgstr "" #: admin/partials/sonaar-music-pro-tools-display.php:21 msgid "Create Single or multiple posts and import audio based on a CSV File." msgstr "" #: admin/partials/sonaar-music-pro-tools-display.php:22 #, php-format msgid " Example of CSV File format %1s." msgstr "" #: admin/partials/sonaar-music-pro-tools-display.php:22 msgid "here" msgstr "" #: admin/partials/sonaar-music-pro-tools-display.php:39 #: admin/partials/sonaar-music-pro-tools-display.php:200 msgid "Select Post Type" msgstr "" #: admin/partials/sonaar-music-pro-tools-display.php:50 #: admin/partials/sonaar-music-pro-tools-display.php:213 #: admin/partials/sonaar-music-pro-tools-display.php:227 msgid "Simple Product" msgstr "" #: admin/partials/sonaar-music-pro-tools-display.php:51 #: admin/partials/sonaar-music-pro-tools-display.php:214 #: admin/partials/sonaar-music-pro-tools-display.php:228 msgid "Variable Product" msgstr "" #: admin/partials/sonaar-music-pro-tools-display.php:56 #: admin/partials/sonaar-music-pro-tools-display.php:233 msgid "Select Product Attribute (eg: License)" msgstr "" #: admin/partials/sonaar-music-pro-tools-display.php:82 msgid "Import & Create Post(s)" msgstr "" #: admin/partials/sonaar-music-pro-tools-display.php:128 msgid "Batch Creation Tool" msgstr "" #: admin/partials/sonaar-music-pro-tools-display.php:135 msgid "" "Use this tool to quickly add playlist into new post in 1-click! You can " "either create multiple posts with 1 track each, or create 1 post with " "multiple tracks. " msgstr "" #: admin/partials/sonaar-music-pro-tools-display.php:136 msgid "" "Files below are the ones found in your media library. You can review and " "publish the draft(s) in bulk once they have been created" msgstr "" #: admin/partials/sonaar-music-pro-tools-display.php:137 msgid "" "* If tracks have been already used into your posts, they will appear in gray " "below" msgstr "" #: admin/partials/sonaar-music-pro-tools-display.php:161 msgid "Search Post:" msgstr "" #: admin/partials/sonaar-music-pro-tools-display.php:168 msgid "Number of items per page" msgstr "" #: admin/partials/sonaar-music-pro-tools-display.php:170 msgid "Select per page" msgstr "" #: admin/partials/sonaar-music-pro-tools-display.php:184 msgid "MP3 items list" msgstr "" #: admin/partials/sonaar-music-pro-tools-display.php:192 msgid "Select all" msgstr "" #: admin/partials/sonaar-music-pro-tools-display.php:192 msgid "Deselect all" msgstr "" #: admin/partials/sonaar-music-pro-tools-display.php:217 msgid "Price" msgstr "" #: admin/partials/sonaar-music-pro-tools-display.php:246 msgid "Set the audio file(s) as the purchased file(s)" msgstr "" #: admin/partials/sonaar-music-pro-tools-display.php:247 msgid "I will add the purchased file manually" msgstr "" #: admin/partials/sonaar-music-pro-tools-display.php:267 msgid "Create Post(s) for Each Selected Track(s)" msgstr "" #: admin/partials/sonaar-music-pro-tools-display.php:268 msgid "Or" msgstr "" #: admin/partials/sonaar-music-pro-tools-display.php:269 msgid "Create One Post With All Selected Tracks" msgstr "" #: includes/class-sonaar-chips.php:29 msgctxt "Widget" msgid "Add Chips from the URL Query" msgstr "" #: includes/class-sonaar-chips.php:38 msgctxt "Widget" msgid "Sonaar: Chips" msgstr "" #: includes/class-sonaar-filters.php:22 msgctxt "Widget" msgid "Add Filters to your Tracklist" msgstr "" #: includes/class-sonaar-filters.php:37 msgctxt "Widget" msgid "Sonaar: Filters" msgstr "" #: includes/class-sonaar-music-licences.php:183 msgid "WordPress requires MP3 Music Player by Sonaar to be updated to v." msgstr "" #: includes/class-sonaar-music-licences.php:184 msgid "Update MP3 Player Now" msgstr "" #: includes/class-sonaar-music-licences.php:200 msgid "" "MP3 Player Pro is not working because you need to activate the MP3 Player " "Free plugin." msgstr "" #: includes/class-sonaar-music-licences.php:201 msgid "Activate MP3 Player Now" msgstr "" #: includes/class-sonaar-music-licences.php:220 msgid "" "MP3 Player Pro is not working because you need to install the MP3 Player " "Free plugin." msgstr "" #: includes/class-sonaar-music-licences.php:221 msgid "Install MP3 Player Now" msgstr "" #: includes/class-sonaar-music-licences.php:244 msgid "Welcome to MP3 Audio Player Pro" msgstr "" #: includes/class-sonaar-music-licences.php:245 #, php-format msgid "" "Please activate your license to get feature updates, " "statistic reports and premium support" msgstr "" #: includes/class-sonaar-music-licences.php:270 msgid "Oh no! Your license key is " msgstr "" #: includes/class-sonaar-search.php:31 msgctxt "Widget" msgid "Add Search for your Tracklist" msgstr "" #: includes/class-sonaar-search.php:39 msgctxt "Widget" msgid "Sonaar: Search" msgstr "" #: includes/class-sonaar-search.php:48 msgid "Search" msgstr "" #: includes/class-sonaar-search.php:49 includes/widgets/sr-search.php:67 msgid "Enter any keyword" msgstr "" #: includes/class-woocommerce.php:428 includes/class-woocommerce.php:497 msgid " + " msgstr "" #: includes/class-woocommerce.php:447 msgid "mp3" msgstr "" #: includes/class-woocommerce.php:450 msgid "wav" msgstr "" #: includes/class-woocommerce.php:453 msgid "stems" msgstr "" #: includes/class-woocommerce.php:456 msgid "yes" msgstr "" #: includes/class-woocommerce.php:459 msgid "no" msgstr "" #: includes/class-woocommerce.php:474 msgid "{value} included" msgstr "" #: includes/class-woocommerce.php:475 msgid "Distribute up to {value} copies" msgstr "" #: includes/class-woocommerce.php:476 msgid "{value} audio streams" msgstr "" #: includes/class-woocommerce.php:477 msgid "{value} music videos" msgstr "" #: includes/class-woocommerce.php:478 msgid "Radio broadcasting rights ({value} stations)" msgstr "" #: includes/class-woocommerce.php:479 msgid "{value} free downloads" msgstr "" #: includes/class-woocommerce.php:480 msgid "{value} video streams" msgstr "" #: includes/class-woocommerce.php:481 msgid "For paid performances? {value}" msgstr "" #: includes/class-woocommerce.php:578 msgid "Preview License" msgstr "" #: includes/class-woocommerce.php:678 msgid "Total:" msgstr "" #: includes/class-woocommerce.php:679 msgid "Add to cart" msgstr "" #: includes/class-woocommerce.php:735 includes/class-woocommerce.php:745 msgid "License Details" msgstr "" #: includes/class-woocommerce.php:755 includes/class-woocommerce.php:807 msgid "Product" msgstr "" #: includes/class-woocommerce.php:756 msgid "License PDF Link" msgstr "" #: includes/class-woocommerce.php:769 msgid "Download License Agreement" msgstr "" #: includes/class-woocommerce.php:801 msgid "Review Licenses" msgstr "" #: includes/widgets/sr-chips.php:34 msgid "Chips Result" msgstr "" #: includes/widgets/sr-chips.php:58 includes/widgets/sr-chips.php:65 msgid "Chips & Tags" msgstr "" #: includes/widgets/sr-chips.php:72 includes/widgets/sr-filters.php:180 #: includes/widgets/sr-search.php:105 msgid "Target Player ID" msgstr "" #: includes/widgets/sr-chips.php:78 includes/widgets/sr-filters.php:186 #: includes/widgets/sr-search.php:112 msgid "" "Add your player id WITHOUT the Pound key. e.g: my-id. Leave blank if only " "one player is used in this page" msgstr "" #: includes/widgets/sr-chips.php:86 msgid "Chips Style" msgstr "" #: includes/widgets/sr-chips.php:93 includes/widgets/sr-filters.php:208 #: includes/widgets/sr-filters.php:634 msgctxt "Flex Container Control" msgid "Justify Content" msgstr "" #: includes/widgets/sr-chips.php:99 includes/widgets/sr-filters.php:214 #: includes/widgets/sr-filters.php:640 msgctxt "Flex Container Control" msgid "Start" msgstr "" #: includes/widgets/sr-chips.php:103 includes/widgets/sr-filters.php:218 #: includes/widgets/sr-filters.php:644 msgctxt "Flex Container Control" msgid "Center" msgstr "" #: includes/widgets/sr-chips.php:107 includes/widgets/sr-filters.php:222 #: includes/widgets/sr-filters.php:648 msgctxt "Flex Container Control" msgid "End" msgstr "" #: includes/widgets/sr-chips.php:111 includes/widgets/sr-filters.php:226 #: includes/widgets/sr-filters.php:652 msgctxt "Flex Container Control" msgid "Space Between" msgstr "" #: includes/widgets/sr-chips.php:115 includes/widgets/sr-filters.php:230 #: includes/widgets/sr-filters.php:656 msgctxt "Flex Container Control" msgid "Space Around" msgstr "" #: includes/widgets/sr-chips.php:119 includes/widgets/sr-filters.php:234 #: includes/widgets/sr-filters.php:660 msgctxt "Flex Container Control" msgid "Space Evenly" msgstr "" #: includes/widgets/sr-chips.php:132 includes/widgets/sr-filters.php:275 #: includes/widgets/sr-filters.php:400 includes/widgets/sr-filters.php:626 #: includes/widgets/sr-search.php:176 msgid "Typography" msgstr "" #: includes/widgets/sr-chips.php:143 includes/widgets/sr-filters.php:437 #: includes/widgets/sr-filters.php:673 msgid "Normal" msgstr "" #: includes/widgets/sr-chips.php:149 includes/widgets/sr-chips.php:189 #: includes/widgets/sr-filters.php:246 includes/widgets/sr-filters.php:363 #: includes/widgets/sr-filters.php:443 includes/widgets/sr-filters.php:474 #: includes/widgets/sr-filters.php:539 includes/widgets/sr-filters.php:679 #: includes/widgets/sr-filters.php:720 includes/widgets/sr-filters.php:761 #: includes/widgets/sr-search.php:243 msgid "Color" msgstr "" #: includes/widgets/sr-chips.php:161 includes/widgets/sr-chips.php:201 #: includes/widgets/sr-filters.php:691 includes/widgets/sr-filters.php:732 #: includes/widgets/sr-filters.php:773 msgid "Background" msgstr "" #: includes/widgets/sr-chips.php:171 includes/widgets/sr-chips.php:211 #: includes/widgets/sr-filters.php:703 includes/widgets/sr-filters.php:744 #: includes/widgets/sr-filters.php:788 msgid "Border Color" msgstr "" #: includes/widgets/sr-chips.php:183 includes/widgets/sr-filters.php:468 #: includes/widgets/sr-filters.php:714 msgid "Hover" msgstr "" #: includes/widgets/sr-chips.php:226 msgid "Padding" msgstr "" #: includes/widgets/sr-chips.php:239 includes/widgets/sr-filters.php:330 #: includes/widgets/sr-filters.php:512 includes/widgets/sr-search.php:215 msgid "Border Type" msgstr "" #: includes/widgets/sr-chips.php:242 includes/widgets/sr-filters.php:333 #: includes/widgets/sr-filters.php:515 includes/widgets/sr-search.php:218 msgid "None" msgstr "" #: includes/widgets/sr-chips.php:243 includes/widgets/sr-filters.php:334 #: includes/widgets/sr-filters.php:516 includes/widgets/sr-search.php:219 msgctxt "Border Control" msgid "Solid" msgstr "" #: includes/widgets/sr-chips.php:244 includes/widgets/sr-filters.php:335 #: includes/widgets/sr-filters.php:517 includes/widgets/sr-search.php:220 msgctxt "Border Control" msgid "Dotted" msgstr "" #: includes/widgets/sr-chips.php:245 includes/widgets/sr-filters.php:336 #: includes/widgets/sr-filters.php:518 includes/widgets/sr-search.php:221 msgctxt "Border Control" msgid "Dashed" msgstr "" #: includes/widgets/sr-chips.php:256 msgid "Border Width" msgstr "" #: includes/widgets/sr-chips.php:267 msgid "Chip Radius" msgstr "" #: includes/widgets/sr-filters.php:33 msgid "Filter Select & Tags" msgstr "" #: includes/widgets/sr-filters.php:57 msgid "Audio Player Filters" msgstr "" #: includes/widgets/sr-filters.php:65 msgid "Filter Type " msgstr "" #: includes/widgets/sr-filters.php:79 msgid "Filter Title" msgstr "" #: includes/widgets/sr-filters.php:91 msgid "Source " msgstr "" #: includes/widgets/sr-filters.php:101 msgid "ACF Field" msgstr "" #: includes/widgets/sr-filters.php:102 msgid "Only field types Select/Checkbox/Radio or Taxonomy are accepted" msgstr "" #: includes/widgets/sr-filters.php:118 msgid "Meta Field" msgstr "" #: includes/widgets/sr-filters.php:119 msgid "Only metafield types Select/Checkbox or Radio are accepted" msgstr "" #: includes/widgets/sr-filters.php:133 msgid "Object Field" msgstr "" #: includes/widgets/sr-filters.php:144 msgid "Custom Meta Key" msgstr "" #: includes/widgets/sr-filters.php:145 msgid "" "Only custom key that outputs an array with multiple choices are accepted" msgstr "" #: includes/widgets/sr-filters.php:156 msgid "Select Type" msgstr "" #: includes/widgets/sr-filters.php:159 msgid "Single Select" msgstr "" #: includes/widgets/sr-filters.php:160 msgid "Multiple Select" msgstr "" #: includes/widgets/sr-filters.php:169 msgid "Add New Filter" msgstr "" #: includes/widgets/sr-filters.php:198 msgid "Dropdown Style" msgstr "" #: includes/widgets/sr-filters.php:261 includes/widgets/sr-filters.php:455 #: includes/widgets/sr-filters.php:486 includes/widgets/sr-search.php:164 msgid "Background Color" msgstr "" #: includes/widgets/sr-filters.php:283 msgid "Dropdown Width" msgstr "" #: includes/widgets/sr-filters.php:307 msgid "Dropdown Height (px)" msgstr "" #: includes/widgets/sr-filters.php:348 includes/widgets/sr-filters.php:528 #: includes/widgets/sr-search.php:185 includes/widgets/sr-search.php:232 msgid "Width" msgstr "" #: includes/widgets/sr-filters.php:377 includes/widgets/sr-filters.php:549 #: includes/widgets/sr-search.php:253 msgid "Radius" msgstr "" #: includes/widgets/sr-filters.php:389 msgid "Dropdown Options Style" msgstr "" #: includes/widgets/sr-filters.php:408 msgid "Space Top" msgstr "" #: includes/widgets/sr-filters.php:425 msgid "Item Padding" msgstr "" #: includes/widgets/sr-filters.php:500 msgid "Separator Color" msgstr "" #: includes/widgets/sr-filters.php:565 msgid "Button Style" msgstr "" #: includes/widgets/sr-filters.php:575 msgid "Hide Label" msgstr "" #: includes/widgets/sr-filters.php:589 msgid "Label Typography" msgstr "" #: includes/widgets/sr-filters.php:600 msgid "Label Color" msgstr "" #: includes/widgets/sr-filters.php:615 msgid "Use Rainbow Colors on Active" msgstr "" #: includes/widgets/sr-filters.php:755 msgid "Active" msgstr "" #: includes/widgets/sr-filters.php:803 msgid "Button Width" msgstr "" #: includes/widgets/sr-filters.php:826 msgid "Text Alignment" msgstr "" #: includes/widgets/sr-filters.php:830 sonaar-music-pro.php:115 msgid "Left" msgstr "" #: includes/widgets/sr-filters.php:834 sonaar-music-pro.php:119 msgid "Center" msgstr "" #: includes/widgets/sr-filters.php:838 sonaar-music-pro.php:123 msgid "Right" msgstr "" #: includes/widgets/sr-filters.php:890 msgid "Post/Term/User/Object Data" msgstr "" #: includes/widgets/sr-filters.php:910 msgid "Player" msgstr "" #: includes/widgets/sr-filters.php:912 includes/widgets/sr-filters.php:967 msgid "Select..." msgstr "" #: includes/widgets/sr-filters.php:913 #, php-format msgid "%1$s Category" msgstr "" #: includes/widgets/sr-filters.php:914 #, php-format msgid "%1$s Tag" msgstr "" #: includes/widgets/sr-filters.php:920 msgid "Podcast Show" msgstr "" #: includes/widgets/sr-filters.php:925 msgid "WooCommerce" msgstr "" #: includes/widgets/sr-filters.php:927 msgid "Product Categories" msgstr "" #: includes/widgets/sr-filters.php:928 msgid "Product Tags" msgstr "" #: includes/widgets/sr-filters.php:1071 msgid "Options" msgstr "" #: includes/widgets/sr-search.php:33 msgid "Search Tracklist" msgstr "" #: includes/widgets/sr-search.php:57 msgid "Search Bar" msgstr "" #: includes/widgets/sr-search.php:64 msgid "Placeholder Text" msgstr "" #: includes/widgets/sr-search.php:77 msgid "Redirect the search to another URL " msgstr "" #: includes/widgets/sr-search.php:86 msgid "URL" msgstr "" #: includes/widgets/sr-search.php:88 msgid "https://your-link.com" msgstr "" #: includes/widgets/sr-search.php:124 msgid "Search Bar Style" msgstr "" #: includes/widgets/sr-search.php:131 msgid "Placeholder Color" msgstr "" #: includes/widgets/sr-search.php:142 msgid "Keyword Color" msgstr "" #: includes/widgets/sr-search.php:153 msgid "Reset Color" msgstr "" #: includes/widgets/sr-search.php:204 msgid "Search Bar Padding" msgstr "" #: includes/widgets/sr-search.php:264 msgid "Search Bar Container Padding" msgstr "" #: includes/widgets/sr-search.php:276 msgid "Search Bar Container Background" msgstr "" #: includes/widgets/srpro-buttonplayer.php:28 msgid "Launch the Sticky Audio Player" msgstr "" #: includes/widgets/srpro-buttonplayer.php:35 msgid "Launch Sticky Audio Player" msgstr "" #: includes/widgets/srpro-buttonplayer.php:38 msgid "" "Important: Make sure the button link parameter is blank in the section above " "(eg: remove the hashtag #)" msgstr "" #: includes/widgets/srpro-buttonplayer.php:47 msgid "Play Most Recent Playlist" msgstr "" #: includes/widgets/srpro-buttonplayer.php:59 msgid "Select Playlist(s)" msgstr "" #: includes/widgets/srpro-buttonplayer.php:70 msgid "Play its own Post Tracklist" msgstr "" #: includes/widgets/srpro-buttonplayer.php:71 msgid "" "Check this case if you want to launch the sticky player with the tracks " "found in this post" msgstr "" #: includes/widgets/srpro-buttonplayer.php:73 msgid "Yes" msgstr "" #: includes/widgets/srpro-buttonplayer.php:74 msgid "No" msgstr "" #: public/class-sonaar-music-pro-public.php:159 msgid "Play" msgstr "" #: public/class-sonaar-music-pro-public.php:160 msgid "Pause" msgstr "" #: sonaar-music-pro.php:83 msgid "Artwork" msgstr "" #: sonaar-music-pro.php:90 msgid "Artwork Width" msgstr "" #: sonaar-music-pro.php:103 msgid "Artwork Padding" msgstr "" #: sonaar-music-pro.php:111 msgid "Artwork Alignment" msgstr "" #: sonaar-music-pro.php:135 msgid "Playlist" msgstr "" #: sonaar-music-pro.php:142 msgid "Title Options" msgstr "" #: sonaar-music-pro.php:147 msgid "Hide Title" msgstr "" #: sonaar-music-pro.php:156 msgid "Title Color" msgstr "" #: sonaar-music-pro.php:168 msgid "Title Typography" msgstr "" #: sonaar-music-pro.php:207 msgid "Sticky Audio Player" msgstr "" #: sonaar-music-pro.php:235 msgid "Display sticky player when page is loaded. Select playlist:" msgstr "" #: sonaar-music-pro.php:237 msgid "- Select -" msgstr "" #: sonaar-music-pro.php:245 msgid "Current Post Tracklist" msgstr "" #: sonaar-music-pro.php:261 msgid "Enable Shuffle" msgstr "" #. Plugin Name of the plugin/theme msgid "MP3 Audio Player by Sonaar - Pro Addon" msgstr "" #. Plugin URI of the plugin/theme #. Author URI of the plugin/theme msgid "" "https://sonaar.io/?" "utm_source=Sonaar%20Music%20Free%20Plugin&utm_medium=plugin" msgstr "" #. Description of the plugin/theme msgid "" "Unlock the full power of MP3 Audio Player by Sonaar. Many Customizable " "Options, Unlocked Features and Statistic Reports Available." msgstr "" PK!tJSJSpublic/css/_sonaarPlayer.scssnu[:root { --srp-global-cta-mobile: 142px; --srp-global-cta-desktop: 200px; --srp-global-column-title-width: 500px; --srp-window-height: 100vh; } @keyframes showElement { from { opacity: 0; } to { opacity: 1; } } @keyframes hideElement { from { opacity: 1; } to { opacity: 0; } } @media only screen and (min-width: 1026px) { %store { box-sizing: border-box; .track-store { display: flex; list-style: none; margin: 0; padding: 0; height: 100%; li { height: 100%; min-width: 74px; display: flex; justify-content: center; align-items: center; border-left: 1px solid rgba(255, 255, 255, 0.1); position: relative; top: 0; a { //width: 100%; height: auto; max-height: 100%; display: block; font-size: 10px; text-decoration: none; text-transform: uppercase; text-align: center; overflow: hidden; padding-left: 10px; padding-right: 10px; &:hover { transition: 200ms; filter: brightness(0.75); } i { pointer-events: none; display: block; font-size: 20px; line-height:1.5em; } } .sr_store_round_bt { border-radius: 4px; padding: 4px 6px; margin: 0px 10px; display: flex; align-items: center; justify-content: center; i.fas { display: inline-block; margin-right: 5px; font-size: 12px; } } } } } } %hideMobile { @media only screen and (max-width: 426px) { display: none !important; } } %hideMobileLarge { @media only screen and (max-width: 540px) { display: none !important; } } %hideMedium { @media only screen and (min-width: 425px) and (max-width: 1025px) { display: none !important; } } %hideLarge { @media only screen and (min-width: 1024px) { display: none !important; } } #sonaar-player { position: fixed; bottom: -90px; color: #fff; background-color:#000; width: 100%; z-index: 8010; .mejs-container { display: none!important; //remove mejs-container which is sometimes added by mediaelement.js from certain third party themes. } &, .player { height: 90px; @media only screen and (max-width: 540px) { height: 56px; div.player { border-width: 0; } } } &.sr_hide { display: none; } &:not(.sr_hide):not([v-cloak]) { display: block !important; } @media only screen and (max-width: 1025px) { .store { display: none; } } &.enable { transition: all 0.03s ease; .btn-player { top: 0px!important; .audioBar { display: none!important; } } .store { @media only screen and (max-width: 1025px) { position: absolute; top: 0px; right: 0px; transform: translateY(-100%); width: auto !important; min-width: 150px; border-radius: 3px; z-index: 10000; //box-shadow: 0 0 5px rgba(138, 138, 138, 0.55); .track-store { font-size: 14px; list-style: none; margin: 0; padding: 0; li { border: none; display: block; padding: 7px; a { text-decoration: none; display: block; text-align: center; color: inherit !important; background-color: inherit !important; .fa { display: inline-block; padding-right: 10px; font-size: 1.4em; } i { margin-right: 6px; } } +li { border-top: 1px solid rgba(138, 138, 138, 0.25); } } } display: none; &.opened { display: block; animation: showElement 0.25s ease-in-out both; } &:not(.opened) { animation: hideElement 0.25s ease-in-out both; } } } } &.show-list { height: 100%; z-index: 9999; } .sricon-close, .close { pointer-events: all; right: 50px; top: 45px; position: absolute; cursor: pointer; &.btn_playlist { font-size: 32px; &:after, &:before { margin-left: 14px; } } @media only screen and (max-width: 860px) { font-size:18px; top: 15px; right: 22px; z-index: 9999; &.btn_playlist{ font-size: 18px; } } &.btn-player { font-size: 16px; display: flex; justify-content: center; align-items: center; right: 0; top: -10px; transform: translateY(-100%); width: 24px; height: 24px; @media only screen and (max-width: 860px) { top: -3px; } .audioBar { display: block; width: 16px; height: 16px; transform: rotate(180deg); position: absolute; top: 4px; left: 4px; } } } .playerNowPlaying { width: 342px; display: flex; align-items: center; .album-art { height: calc(100% - 16px); max-width: 125px; //background: #222; transition: all 0.5s ease; margin-left: 8px; position: relative; @media only screen and (max-width: 540px) { height: 100%; margin-left: 0px; max-width: 90px; } .loading-icon { color: #fff; position: absolute; width: 100%; top: 20px; opacity: 0; transition: opacity 0.75s ease; z-index: 1; } &.loading-enable.loading .loading-icon { opacity: 0.8; } img { &:not(.hover) { max-width: 100%; max-height: 100%; position: relative; top: 50%; transform: translateY(-50%); } &.hover { opacity: 0; position: absolute; top: 0; width: 200px; max-width: unset; height: auto; transition: all 0.5s ease; transform: translate3d(0, 200px, 0); z-index: 100; } } @media only screen and (min-width: 540px) { &:hover { img { &.hover { opacity: 1; transform: translateY(-100%) translate3d(0, 0, 0); } } } } } &.no-image .metadata { margin-left: 10px; margin-right: 0; width: inherit; } .metadata { position: relative; letter-spacing: 1px; width: 200px; height: 100%; overflow: hidden; white-space: nowrap; margin: 0 20px; line-height: 1.65em; .track-name, .track-artist, .track-album { //font-weight: initial; float: left; //display: inline; clear: left; &.scrolling { transition: transform 5s linear; } .duplicate { padding-left: 10px; } } .metadata-inner { position: relative; top: 50%; transform: translateY(-50%); &:after { content: ""; clear: both; display: table; } } .track-artist, .track-album { font-size: 0.7em; line-height: 1em; } @media only screen and (max-width: 860px) { font-size: 14px; } @media only screen and (max-width: 540px) { font-size: 12px; width: calc(100% - 50px); margin: 0 10px; max-width: 300px; } } @media only screen and (max-width: 860px) { width: auto; flex: 1; } } .no-list { .playerNowPlaying .metadata { @media only screen and (max-width: 860px) and (min-width: 541px) { width: calc(100% - 215px); } } } .playlist { font-size: 18px; box-sizing: border-box; height: calc(100vh - 90px); position: absolute; width: 100%; .scroll { height: calc(100vh - 320px); width: 100%; top: 100px; position: absolute; display: flex; overflow-y: hidden; @media only screen and (max-width: 860px) {} } .container { min-height: 0; width: 100%; max-width: 1144px; height: auto; align-self: center; margin: auto; padding: 0 20px; background-color: transparent; .boxed { height: auto; width: 100%; } } .title { margin-bottom: 20px; display: block; text-align: center; font-size: 54px; line-height: 1.265em; @media only screen and (max-width: 860px) { box-sizing: border-box; font-size: 18px; text-transform: uppercase; position: fixed; top: 0; left: 0; width: 100vw; margin: 0; padding: 20px; } } button.play { padding: 12px 34px; border-radius: 50px; border: none; font-family: Tahoma, sans-serif; font-size: 14px; text-transform: uppercase; position: relative; left: 50%; transform: translate(-50%, 0); margin: 0 auto 50px auto; outline: none; cursor: pointer; @extend %hideMobileLarge; } .tracklist { list-style-type: none; margin: 0; padding: 0; display: table; width: 100%; @media only screen and (max-width: 540px) { display: block; } li { filter: brightness(70%); font-weight: inherit; display: table-row; line-height: 2.4em; cursor: pointer; &.active { filter: brightness(100%); font-weight: 700; } @media only screen and (max-width: 860px) { font-size: 15px; } @media only screen and (max-width: 540px) { display: block; line-height: 1.265em; margin-bottom: 1.265em; position: relative; } } span { display: table-cell; .content { @media only screen and (min-width: 540px) { line-height: 1.3em; display: block; overflow: hidden; text-overflow: ellipsis; } } @media only screen and (max-width: 540px) { display: inline-block; } } .track-status { @media only screen and (max-width: 540px) { font-size: 12px; font-weight: 300; } } .srp_track_control{ @media only screen and (max-width: 540px) { position: absolute; } } .sricon-play{ font-size: 15px; padding-right: 7px; @media only screen and (max-width: 540px) { font-size: 12px; padding-right: 0; } } .track-lenght { @media only screen and (max-width: 540px) { font-size: 12px; font-weight: 300; position: absolute; right: 0px; top: 0; } } .track-store { display: flex; justify-content: start; column-gap: 15px; a { text-decoration: none; font-size: 20px; } @extend %hideMobile; @extend %hideMedium; } .track-title { @media only screen and (max-width: 540px) { display: block; width: 100%; padding-left: 20px; } } .track-artist, .track-album { @media only screen and (max-width: 540px) { font-size: 12px; font-weight: 300; padding-left: 20px; } } .track-artist+.track-album { @media only screen and (max-width: 540px) { padding-left: 10px; } } } } &.audio-playing .playlist .tracklist li.active .sricon-play:before{ content: '\e81c'; } &.srp_mobile{ .playlist { z-index: 15555; background: inherit; height: 100%; .container{ align-self: normal; margin: 0; } .sricon-close.close{ position: fixed; left: 22px; top: 18px; } } .scroll{ top: 64px; height: calc(100% - 64px); } } .player { width: 100%; position: absolute; left: 0; bottom: 0; top: auto; border-width: 4px; border-style: solid; border-left: none; border-bottom: none; border-right: none; .player-row { display: flex; height: 100%; .sr_skipBackward, .sr_skipForward { font-size: 25px; } .sr_skipBackward, .sr_skipForward, .previous, .sr_speedRate, .shuffle { @extend %hideMobileLarge; } &:before { @media only screen and (max-width: 540px) { content: ""; width: 100%; height: calc(100% - 5px); display: block; position: absolute; bottom: 0; z-index: 55; } } @media only screen and (max-width: 540px) { .playerNowPlaying, .control, .sonaar-extend-button { z-index: 60; } } } .control--item { &.list:hover, &.previous:hover, &.play:hover, &.next:hover, &.shuffle:hover, &.volume .sricon-volume:hover:before { filter: brightness(0.75); transition: 300ms; } } .mobilePanel { position: absolute; top: 0px; width: 100%; transform: translateY(calc(-100% + 4px)); z-index: 50; border-bottom: 4px solid; .sonaar-extend-button { position: absolute; top: 0; right: 0; } } .control { padding: 0; margin: 0; list-style: none; display: flex; justify-content: flex-start; flex-wrap: wrap; &.no-list { //width: 125px; @media only screen and (max-width: 540px) { //width: 120px; } } .control--item { position: relative; text-align: center; padding: 0 5px; margin: 0 5px; width: 30px; min-width: 30px; height: 100%; cursor: pointer; opacity: 1; display: flex; justify-content: center; align-items: center; } @media only screen and (max-width: 860px) { margin-right: 20px; } @media only screen and (max-width: 767px) { margin-right: 15px; } @media only screen and (max-width: 540px) { min-width: 60px; margin-right: 0; } } @media only screen and (max-width: 860px) { .sr_progressbar_sticky { display: none !important; } } } .sr_progressbar_sticky { width: auto; // overflow: hidden; position: relative; display: flex; flex: 1; align-items: center; margin: 0 5px; .timing { font-variant-numeric: tabular-nums; width: 100%; display: flex; flex-direction: row; align-items: center; justify-content: space-between; font-size: 11px; line-height: 1em; } .sr-progress { width: calc(100% - 200px); position: absolute; height: 90px; left: 75px; bottom: 0; .sr-wavebar { position: absolute; height: 1px; left: 0; top: 50%; } .progress_totalTime { width: 100%; } .progress_currentTime { height: 3px; top: calc(50% - 1px); } .skip { width: 100%; height: 100%; position: absolute; top: 0; left: 0; } } #sPlayer { display: flex; align-items: center; height: 100%; opacity: 0; transition: all 3000ms ease; overflow: hidden; width: calc(100% - 100px); max-height: calc(100% - 6px); left: 47px; &.sr_hide { //display: block; opacity: 0; } &.reveal { opacity: 1; } } } .progressLoading { background: rgba(255, 255, 255, 0.25); width: 0%; height: 1px; box-shadow: 0 0 2px rgba(255, 255, 255, 0.5); width: calc(100% - 562px); position: absolute; left: 552px; top: 45px; transition: opacity 3000ms ease; } .wave { position: absolute; left: 30px; //top: 24px; wave { transition:width 400ms; width: 100%; position: absolute; overflow-x: hidden !important; } } &.sr-float { bottom: -56px; .player .mobilePanel { @media only screen and (min-width: 541px) { border-width: 0; transform: unset; top: 3px; } @media only screen and (max-width: 540px) { transform: translateY(calc(-100% + 5px)); border-width: 5px; } } .close.btn-player rect { fill: #fff; } .control .control--item.list.sricon-list{ font-size: 18px; } .control { .sricon-back, .sricon-forward, .sricon-play{ font-size: 17px; } } } .shuffle { width: 20px; } &.hide-track-lenght .playlist .tracklist .track-lenght { display: none; } &.hide-track-category .playlist .tracklist .track-album { display: none; } .sonaar-extend-button { height: 100%; width: 25px; display: flex; justify-content: center; align-items: center; font-size: 16px; line-height: 16px; text-align: center; margin-right: 5px; cursor: pointer; @media only screen and (min-width: 1026px) { display: none; } i { position: relative; display: block; } } .mobileProgress { width: 100%; position: absolute; top: -6px; z-index: 10; cursor: pointer; .skip { position: absolute; width: 100%; height: 390%; top: -130%; z-index: 10; } @media only screen and (min-width: 861px) { display: none; } } .mobileProgressing { height: 6px; position: relative; &:after{ content: ''; position: absolute; top: 0; left: 0; height: 100%; width: 100%; } } .progressDot { height: 10px; width: 10px; border-radius: 5px; position: absolute; top: 50%; left: 0; transform: translate(-50%, -50%); display: none; body:not(.continuousPlayer-enable) & { opacity: 0; } } &:not(.sr-float) { .player { //@at-root { .store { @extend %store; } //} } } &.sr-float:not(.show-list), &.sr-float .player { height: 50px; } &.sr-float:not(.sr_hide):not([v-cloak]) { display: flex !important; left: unset; } &.sr-float { &:not(.srp_ext_opened){ pointer-events: none; } background-color: unset; &.sr-pos--left { justify-content: flex-start; } &.sr-pos--center { justify-content: center; } &.sr-pos--right { justify-content: flex-end; } &.audio-playing .player.audio-playing{ &:hover .mobileProgress { display: block; opacity: 1; } @media only screen and (max-width: 861px) { &.audio-playing .mobileProgress { display: block; opacity: 1; } } } .player { pointer-events: all; margin: 20px; left: unset; border-radius: 10px; // this value is dynamic width: auto; border-width: 0px; .control .control--item { margin: 0 1px; } @media only screen and (min-width: 861px) { &.sr-show_controls_hover { //background-color: unset; transition: 800ms width; width: 342px; &:hover { width: 100%; .playerNowPlaying { width: 270px; // transform: translateX(0%); } } .player-row { display: flex; justify-content: flex-end; } .playerNowPlaying { position: absolute; width: 300px; height: 100%; left: 0; transition: 800ms width; //transform: translateX(calc(100% - 50px)); z-index: 2; //border-radius: 100px; } } } @media only screen and (max-width: 861px) { &.sr-show_controls_hover { width: calc(100% - 20px) !important; transform: unset !important; } } &:hover { .close.btn-player { opacity: 1; } } .mobileProgress { transition: 400ms; top: unset; bottom: -8px; width: 100%; left: 0px; } .mobileProgressing { height: 3px; } } .sr_progressbar_sticky { display: none; } .playlist { pointer-events: all; height: 100%; } .album-art img:last-child { border-radius: 10px 0px 0px 10px; // this value is dynamic } .playerNowPlaying { .metadata { margin: 0 10px; .track-album { display: none; } } .album-art { margin-left: 0; height: 100%; } } /* .store .track-store li{ @media only screen and (min-width: 1026px){ a{ font-size: 8px; i{ font-size: 12px; } } } }*/ .sonaar-extend-button { @media only screen and (min-width: 1026px) { display: flex; } } &.enable { .store { position: absolute; top: -1px; right: 70px; transform: translateY(-100%); width: auto !important; min-width: 150px; border-radius: 3px; z-index: 10000; //box-shadow: 0 0 5px rgba(138, 138, 138, 0.55); @media only screen and (max-width: 861px) { right: 10px; } .track-store { font-size: 14px; list-style: none; margin: 0; padding: 0; li { border: none; display: block; padding: 7px; a { text-decoration: none; display: block; text-align: right; color: inherit !important; background-color: inherit !important; .fa { display: inline-block; padding-right: 10px; font-size: 1.4em; } i { margin-right: 6px; } } +li { border-top: 1px solid rgba(138, 138, 138, 0.25); } } } display: none; &.opened { display: block; animation: showElement 0.25s ease-in-out both; } &:not(.opened) { animation: hideElement 0.25s ease-in-out both; } } } @media only screen and (max-width: 861px) { .player { width: calc(100% - 20px); max-width: unset; margin: 10px; .close.btn-player.enable { opacity: 1; } .mobileProgress { opacity: 0; bottom: 0px; } } } @media only screen and (min-width: 861px) { .mobileProgress { display: block; opacity: 0; } } @media only screen and (max-width: 540px) { .player .control { min-width: 42px; } } &:not(.enable) .player { transition-delay: 350ms; width: 100% !important; max-width: 100%; margin: 0px; top: 0px !important; left: 0px !important; } .close.btn-player { right: 0px; top: 0px; &.enable { transition: 400ms; opacity: 0; width: 17px; height: 15px; &:before, &:after { height: 7px; top: 5px; } &:before { left: 10px; } &:after { left: 6px; } } } } &.sr-fullwidth { .sonaar_wave_base, .sonaar_wave_cut { height: 40px; } } &.sr-mini_fullwidth:not(.show-list), &.sr-mini_fullwidth .player { height: 42px; } &.sr-mini_fullwidth { bottom: -48px; .player { border-width: 2px; .control .control--item { margin: 0 1px; } } .mobileProgress { top: -3px; } .mobileProgressing { height: 3px; } .playerNowPlaying { .metadata { margin: 0 10px; .track-album { display: none; } } .album-art { margin-left: 0; height: 100%; } } .store .track-store li { @media only screen and (min-width: 1026px) { a { font-size: 8px; i { font-size: 12px; } } } } @media only screen and (max-width: 540px) { .player .control { min-width: 42px; } } .close.btn-player.enable { width: 17px; height: 19px; &:before, &:after { height: 7px; top: 5px; } &:before { left: 10px; } &:after { left: 6px; } } .sonaar_wave_base, .sonaar_wave_cut { height: 27px; } .control .control--item.list.sricon-list{ font-size: 18px; } .control { .sricon-back, .sricon-forward, .sricon-play{ font-size: 17px; } } } .sr_skipBackward { margin-left: 15px; margin-right: 5px; } .sr_skipForward { margin-right: 15px; margin-left: 5px; } .sr_speedRate { margin: 0 20px 0 5px; div { color: #000; background: #fff; } } } .sr_skip_number { font-size: 10px; font-weight: 600; line-height: 1; position: absolute; } .sr_skipBackward, .sr_skipForward { font-size: 22px; cursor: pointer; user-select: none; display: flex; align-items: center; justify-content: center; } .sr_speedRate { display: flex; align-items: center; justify-content: center; font-weight: 400; font-size: 12px; line-height: 1; cursor: pointer; div { color: #fff; background: #000; padding: 3px; text-align: center; border-radius: 3px; user-select: none; } } #sonaar-player { .sr_speedRate { &:not(.active) div { opacity: 0.5; } } [class*="sricon-"]::before{ margin-left: 0; margin-right: 0; } &.audio-playing .control .sricon-play:before{ content: '\e81c'; } .control{ .sricon-back, .sricon-forward, .sricon-shuffle{ font-size: 19px; } .sricon-play{ font-size: 26px; } .control--item.list.sricon-list{ padding: 0; margin: 0 10px; font-size: 20px; } } .sricon-volume{ font-size: 22px; } &.srp_mobile>.srp_spectrum_container{ display: none !important; } } .sricon-shuffle.active:before{ content: '\e82d'; } .sricon-volume.active:before, .iron-audioplayer[data-mute="true"] .sricon-volume:before{ content: '\e826'; } #sonaar-player div.volume { padding: 0 20px; @media only screen and (max-width: 860px) { display: none; } } #sonaar-player, .iron-audioplayer { .volume { display: flex; align-items: center; .slider-container { position: absolute; width: 30px; height: 100px; left: 50%; top: 0px; transform: translate(-50%, -100%); background: #fff; z-index: 200; border: 1px solid #bbb; box-shadow: 1px 1px 5px rgba(0, 0, 0, 0.5); border-radius: 1px; display: none; .slide { width: 100%; height: 70px; position: absolute; top: 20px; cursor: pointer; &:before { content: ""; position: absolute; width: 1px; height: 100%; left: 50%; top: -5px; opacity: 0.5; } } .ui-slider-range { position: absolute; width: 2px; height: 60%; bottom: 0; left: calc(50% - 1px); } .ui-slider-handle { width: 7px; height: 7px; border-radius: 100%; position: absolute; left: calc(50% - 3px); cursor: pointer; } .trigger { height: calc(100% - 20px); width: 100%; top: 10px; position: absolute; } } .slider-container:before { width: 0; height: 0; border: none; border-left: 5px solid transparent; border-right: 5px solid transparent; border-top: 5px solid #bbb; content: ""; position: absolute; bottom: -6px; left: 50%; transform: translate(-50%); } .slider-container:after { width: 0; height: 0; border: none; border-left: 5px solid transparent; border-right: 5px solid transparent; border-top: 6px solid #fff; content: ""; position: absolute; bottom: -5px; left: 50%; transform: translate(-50%); } .sricon-volume { display: initial; // fix for safari not showing the volume icon width: 22px; max-height: calc(90% - 12px); cursor: pointer; position: relative; line-height: 0; &:hover { .slider-container { display: block; } } } } } .iron-audioplayer { .sr-cf-heading { position: relative; align-items: center; column-gap: 10px; display: flex; overflow: hidden; width: auto; padding-bottom: 10px; font-weight: 600; text-transform: uppercase; border-bottom: 1px solid #ffffff21; &.srmp3-heading--hide{ display:none!important; } .srp_sort.asc::after { content: "\002B06"; font-size:10px; padding-left: 3px; } .srp_sort.desc::after { content: "\002B07"; font-size:10px; padding-left: 3px } .sr-playlist-heading-child { pointer-events: auto; cursor: pointer; justify-content: left; align-items:center; overflow: hidden; text-overflow: ellipsis; text-align: left; white-space: nowrap; font-size: 11px; width: 100%; } } &.srp_has_customfields.srp_tracklist_grid{ .srp_tracklist_waveform_enabled{ .tracklist-item-title{ flex: 1; } } } &.srp_has_customfields{ .tracklist-item-title{ flex: 1; } .srp_tracklist_waveform_enabled{ .tracklist-item-title{ flex: 0 0 250px; } .audio-track{ overflow: hidden; flex: 1 1 fit-content; } .sr-playlist-cf-container{ flex: 0 1 fit-content; } } .sr-playlist-item{ overflow-x: hidden; } .srp_audio_trigger .audio-track{ width:10%; } .sr-playlist-cf-container{ align-items: center; font-size: 11px; flex: 1; display: flex; overflow: hidden; justify-content: space-evenly; column-gap: 10px; font-size: 0.8em; .sr-playlist-cf-child { justify-content: left; overflow: hidden; text-overflow: ellipsis; text-align: left; width: 100%; align-items: center; img{ margin-right: 5px; max-height: 20px; } i{ margin-right:5px; } } } .audio-track{ flex: 0 1 var(--srp-global-column-title-width); } .sr-playlist-cf-container{ flex: 0 1 calc(100% - var(--srp-global-column-title-width)); } &:not(.srp_tracklist_grid) .sr-playlist-item:not(.srp_extended) .song-store-list-menu{ max-width: var(--srp-global-cta-desktop); } .sr-playlist-item.srp_extended .song-store-list-menu{ max-width: 999px; } .sr-playlist-item .store-list{ flex: 0 0 var(--srp-global-cta-desktop); align-items: center; } &:not(.srp_tracklist_grid) .playlist .store-list .song-store-list-menu{ justify-content: flex-start !important; width: var(--srp-global-cta-desktop); overflow: hidden; position: absolute !important; right: 0; } .srp_list:not(.srp_contentLoading) .song-store-list-menu{ transition: 0.2s ease; } &.playlist_has_no_ctas .store-list{ display:none; } &.srp_responsive{ .sr-playlist-item .store-list{ flex: 0 0 var(--srp-global-cta-mobile); } .playlist .store-list .song-store-list-menu{ width: var(--srp-global-cta-mobile); } } .store-list .srp_ellipsis{ font-size:14px; transition: 0.15s; top: 50%; transform: translateY(-50%); } .srp_extended .srp_ellipsis{ opacity: 0; } .sr-playlist-item:not(.srp_extendable) .srp_ellipsis{ display: none; } } .srp_search_main { padding-bottom: 20px; } .playlist { ul.srp_pagination{ height:auto!important; } ul { .ps__rail-y { height: 0px !important; } } } &:not(.srp_has_customfields) .playlist.srp_tracklist_waveform_enabled .tracklist-item-title{ flex: 0 1 350px; } .ui-slider-handle, .ui-slider-range { background: #000; } .sr_skip_number { font-size: 8px; line-height: 11px; } .sr-playlist-item[data-post-url]:not([data-post-url=""]) .sr_track_cover{ cursor:pointer; } &[data-playertemplate="skin_boxed_tracklist"] { .sr_shuffle { display: flex; } .sr_speedRate { font-size: 8px; line-height: 9px; font-weight: 600; div { border-width: 1.5px; } } .sr_mute, .sr_unmute { width: 18px; } .srp_wave_box.srp_progressbar_inline { display: flex; flex-wrap: wrap; .player { margin-right: 15px; flex-grow: 1; width: unset; .sr_progressbar { width: auto; } } } } &.audio-playing .srp_player_boxed .sricon-play:before { content: '\e81c'; } &.srp_favorites_loading .srp-fav-bt{ opacity: 0.3; } .srp-fav-bt{ transition: opacity 0.2s; } } .sr_mute { display: none; } .iron-audioplayer[data-mute="true"] { .sr_unmute { display: none; } .sr_mute { display: initial; } } .sr_shuffle { cursor: pointer; } .iron-audioplayer[data-shuffle="true"] { .control .sricon-shuffle:before { content: '\e82d'; } } .continuousPlayer-enable #srmp3_lyricsplaying_container { transition: 200ms; bottom: 90px; @media only screen and (max-width: 540px) { bottom: 62px; } } @media only screen and (max-width: 768px) { .srp_sticky_ext_opened.continuousPlayer-enable{ #srmp3_lyricsplaying_container{ bottom: 0px; z-index: 10100; } #srmp3_lyrics_container{ z-index: 10050; } } } #srmp3_lyricsplaying_container { cursor: pointer; display: flex; justify-content: center; align-items: flex-end; max-width: 100%; width: 100%; bottom: 0px; position: fixed; z-index: 8000; } .srmp3_lyrics { tt { font-family: inherit; } p[begin] { margin-bottom: 1em; @media only screen and (max-width: 540px) { margin-bottom: 0.7em; } } p[begin]:not(.srmp3_lyrics_read ~ p) { transition: color 1s ease; } } .srmp3_lyrics_container { pointer-events: none; padding: 4px 10px; display: flex; justify-content: center; text-align: center; color: #fff; background-color: #000; font-style: italic; font-size: 21px; } .srmp3_lyrics_container:before, .srmp3_lyrics_container:after { content: '♪'; margin: 0px 8px; } #srmp3_lyrics_container { position: fixed; color: #575757; background-color: #000; top: 0px; width: 100%; height: 100%; padding: 100px; text-align: left; z-index: 7999; .srmp3_lyrics { font-size: 48px; font-weight: 700; line-height: 1em; height: calc(100vh - 320px); top: 100px; margin-top: 20px; overflow-y: hidden; .ps__rail-y { height: 0px !important; } @media only screen and (max-width: 540px) { font-size: 24px; line-height: 1em; height: calc(100vh - 150px); } } .srmp3_lyrics_title { color: #fff; font-size: 24px; @media only screen and (max-width: 540px) { font-size: 18px; } } .srmp3_lyrics_album { color: rgb(167, 167, 167); font-size: 18px; } @media only screen and (max-width: 540px) { padding: 30px; bottom: 50px; } .sricon-close-circle { position: absolute; top: 50px; right: 50px; font-size: 48px; line-height: 1; cursor: pointer; @media only screen and (max-width: 767px) { top: 25px; right: 25px; } } .srmp3_lyrics_album, .srmp3_lyrics_title { @media only screen and (max-width: 767px) { padding-right: 25px; } } } .srp_player_boxed .srp_note { position: absolute; top: 10px; left: 10px; height: 100%; max-height: calc(100% - 20px); width: calc(100% - 20px); overflow-y: auto; h1 { width: calc(100% - 35px); } } .srp_note { position: relative; background: #fff; color: #000; width: 100%; z-index: 25; padding: 25px; border-radius: 4px; .sr-playlist-item & { margin-top: 10px; } ul { margin: inherit !important; padding: 15px !important; height: initial !important; overflow-y: visible !important; overflow-x: visible !important; li { list-style: disc !important; padding: initial !important; } } .sr_close { top: 20px; right: 20px; .sr-playlist-item & { display: none; } } } .srp_note_title, .srp-modal-title { font-size: 1.7em; line-height: 1.2; font-weight: inherit; color: inherit; margin-bottom: 1rem; } .srp-modal-subtitle { font-size: 1.2em; line-height: 1.2; font-weight: inherit; color: inherit; margin-bottom: 1rem; } .srp-modal-product-desc { margin-bottom: 1rem; } .playerNowPlaying { @media only screen and (max-width: 450px) { #sonaar-player[data-ui-items="1"] & { width: calc(100% - 50px); } #sonaar-player[data-ui-items="2"] & { width: calc(100% - 100px); } #sonaar-player[data-ui-items="3"] & { width: calc(100% - 150px); } #sonaar-player[data-ui-items="4"] & { width: calc(100% - 200px); } #sonaar-player & { width: calc(100% - 75px); } &.no-image { #sonaar-player[data-ui-items="1"] & { width: calc(100% - 45px); } #sonaar-player[data-ui-items="2"] & { width: calc(100% - 75px); } #sonaar-player[data-ui-items="3"] &, #sonaar-player[data-ui-items="4"] & { width: calc(100% - 115px); } #sonaar-player & { width: 100%; } .metadata{ #sonaar-player & { width: 100%; } } } } } .sonaar-player-slidefade-enter-active { transition: 800ms all ease; } .sonaar-player-slidefade-leave-active { transition: all 0.4s ease; } .sonaar-player-slidefade-enter { transform: scale(0.8); opacity: 0; } .sonaar-player-slidefade-leave-to { opacity: 0; } .sonaar-player-storefade-enter-active { @media only screen and (max-width: 1025px) { transition: all 0.03s ease; } } .sonaar-player-storefade-leave-active { @media only screen and (max-width: 1025px) { transition: all 0.03s ease; } } .sonaar-player-storefade-enter { @media only screen and (max-width: 1025px) { transform: translateY(70px); } } .sonaar-player-storefade-leave-to { @media only screen and (max-width: 1025px) { transform: translateY(70px); } } .woocommerce-page.single-product { .iron-audioplayer .srp_tracklist { margin: 0px; } @media (max-width: 991px) { .iron-audioplayer .playlist { margin-top: 0px; } } } .woocommerce-LoopProduct-link { .tracklist-item-time { display: none; } .iron-audioplayer .player .wave { margin: 0px 0px; } .iron-audioplayer .sonaar-Artwort-box { margin-bottom: initial; } } .woocommerce ul.products li.product a .album-art img { margin: 0px; } .woocommerce { .iron-audioplayer .playlist .audio-track { text-align: left; } } .woocommerce ul.products li.product.srmp3-product.srmp3-product__hideimage a img { &.attachment-woocommerce_thumbnail, &.woocommerce-placeholder { display: none; } } #pusher-wrap.sonaar-list-active { @media only screen and (min-width: 540px) { -webkit-animation: blur 0.5s linear forwards; -moz-animation: blur 0.5s linear forwards; -ms-animation: blur 0.5s linear forwards; -o-animation: blur 0.5s linear forwards; animation: blur 0.5s linear forwards; } } @-webkit-keyframes blur { from { -webkit-filter: blur(0); filter: blur(0); } to { -webkit-filter: blur(20px); filter: blur(20px); } } @-moz-keyframes blur { from { -webkit-filter: blur(0); filter: blur(0); } to { -moz-filter: blur(20px); filter: blur(20px); } } @keyframes blur { from { -webkit-filter: blur(0); filter: blur(0); } to { -webkit-filter: blur(20px); -moz-filter: blur(20px); filter: blur(20px); } } .sonaar-list-active #pusher { overflow-y: hidden; overflow-x: hidden; height: 100vh; } /* * Container style */ .srp_tracklist .ps, .srmp3_lyrics.ps { height: 250px; overflow: hidden !important; overflow-anchor: none; -ms-overflow-style: none; touch-action: auto; -ms-touch-action: auto; } .srp-modal-medium-size { max-width: 100%; width: 800px; } .srp-modal-variant-file { text-transform: uppercase; font-size: 0.8em; font-weight: 700; } .srp-license-preview-modal { .srp_variant_terms { margin-top: 35px; margin-bottom: 20px; padding-bottom: 20px; border-bottom: 1px solid rgba(255, 255, 255, 0.08); } } .srp_variant_terms { .view-license-button { width: 100%; } } .srp-modal-share{ max-width: 100%; width: 600px; .srp-share-title{ margin: 0 28px 0 0; padding: 0; font-size: 21px; font-weight: 600; white-space: nowrap; text-overflow: ellipsis; overflow: hidden; } .srp-share-trackinfo-container{ display: flex; align-items: center; justify-content: flex-start; column-gap: 15px; margin: 12px 0 24px; .srp-share-tracktitle{ font-size: 18px; font-weight: 600; overflow: hidden; } .srp-share-img{ display: flex; flex-shrink: 0; width: 72px; height: 72px; border-radius: 3px; } } .srp-modal-sticky-player-container { display: flex; column-gap: 15px; margin-top: 10px; margin-bottom: 10px; align-items: center; input#stickyPlayerCheckbox, input#stickyPlayerTimeCheckbox{ width: 15px; height: 15px; } .srp-modal-sticky-player-label{ font-size: 13px; font-weight: 600; text-transform: uppercase; letter-spacing: .8px; } #stickyPlayerCurrentTime { height: 30px; font-size: 14px; width: 85px; padding: 10px; } } .srp-modal-linkurl-container{ .srp-modal-linkurl-label{ font-size: 13px; font-weight: 600; text-transform: uppercase; letter-spacing: .8px; } .srp-modal-linkurl-input-container{ padding: 0 5px 0 12px; overflow: hidden; border: unset; position: relative; display: flex; align-items: center; width: 100%; height: 44px; border-radius: 5px; background-color: #dfdfdf; margin: 5px 0; i{ margin-left: 0; margin-right: -5px; font-size: 18px; color: #9b9b9b; } input{ white-space: nowrap; text-overflow: ellipsis; overflow: hidden; font-size: 14px; width: 100%; height: 100%; padding: 0 15px; font-size: 13px; font-weight: 500; background-color: transparent; border-radius: 5px; box-shadow: none; border: none; &:focus-visible { outline: unset; } } button{ color: inherit; background: transparent; box-sizing: border-box; position: relative; -webkit-user-select: none; -moz-user-select: none; -ms-user-select: none; user-select: none; cursor: pointer; outline: none; border: none; -webkit-tap-highlight-color: transparent; display: inline-block; white-space: nowrap; text-decoration: none; vertical-align: baseline; text-align: center; margin: 0; line-height: 36px; padding: 0 16px; border-radius: 4px; overflow: visible; } } } .srp-modal-socialshare-container{ display: flex; align-items: flex-start; flex-wrap: wrap; margin-top: 24px; column-gap: 25px; row-gap: 20px; a{ text-decoration: none; color: var(--srp-global-modal-btn-bg-color); font-size:42px; } a.srp-share-mobile-more i { font-size: 26px; } a.srp-share-mobile-more { display: flex; height: 42px; align-items: center; } } } /* Woocommerce Variantion Modal*/ .srp-modal-product-variation { /*max-width: 100%; width: 800px;*/ .srp-modal-product-variation-trackinfo-container{ display: flex; align-items: center; justify-content: flex-start; column-gap: 15px; margin: 12px 0 24px; .srp-modal-image{ display: flex; flex-shrink: 0; width: 72px; height: 72px; border-radius: 3px; } } .srp-modal-title { font-weight: 700; } .srp-modal-variant-name { font-weight: 500; } .srp-modal-subtitle { font-size: 11px; text-transform: uppercase; } .srp-modal-variant-desc { font-size: 11px; text-transform: uppercase; margin-top: 10px; } } .srp-modal-variation-list { display: flex; flex-wrap: wrap; gap: 10px; grid-template-columns: 1fr 1fr 1fr; margin: 20px 0 50px; } .srp-modal-variant-selector { background-color: #0202022b; border: 1px solid #fff0; border-radius: 8px; padding: 10px 10px; max-width: calc(33% - 7px); min-width: 170px; width: 100%; cursor: pointer; &:hover, &.srp_selected { background-color: #02020261; } @media only screen and (max-width: 860px) { max-width: initial; } } .srp-modal-variant-main { display: flex; column-gap: 12px; row-gap: 10px; align-items: center; justify-content: space-between; flex-wrap: wrap; padding-top: 20px; } .srp-modal-variant-main, .srp_variant_terms { border-top: 1px solid rgba(255, 255, 255, 0.08); } .srp_term_title { font-weight: bold; margin: 10px 0; } .srp_variant_terms_container.srp_variant_terms--column { display: flex; flex-wrap: wrap; column-gap: 15px; .srp_variant_terms { max-width: 300px; min-width: 150px; flex: 1; } .srp_term_meta { width: 100%; } } .srp_term_meta_list { display: flex; flex-wrap: wrap; align-items: center; } .srp_term_meta { display: flex; align-items: center; width: calc(100% / 3); height: 60px; font-size: 0.9rem; &:before { font-size: 22px; } @media only screen and (max-width: 860px) { width: 50%; } i[class*=" fa-"] { font-family: 'Font Awesome 5 Free'; font-style: unset; } } .srp_term_meta_label { padding: 0 5px; font-size: 0.8em; text-transform: uppercase; &:after { //content: ":"; } } .srp-modal-variant-price { flex-grow: 1; font-size: 1.3em; font-weight: bold; line-height: 1; } .srp-modal-custom-link { a { text-decoration: unset; font-size: 16px; font-weight: 600; color: var(--srp-global-modal-btn-bg-color); &:hover{ color: var(--srp-global-modal-btn-bg-color); filter: brightness(0.5); } } i{ margin-right: 5px; } } .srp-modal-variation-details { &:not(.srp_selected) { display: none; } .srp-modal-variant-price { font-size: 1.8em; } } .srp_reg_price { text-decoration: line-through; opacity: 0.7; } .srmp3_button_launcher_style-round { .srmp3_sonaar_ts_shortcode.srmp3_sonaar_ts_shortcode_button { width: 200px; height: 200px; border-radius: 50% !important; display: flex !important; align-items: center; justify-content: center; } } .srmp3_sonaar_ts_shortcode { &.sricon-play { &::before { vertical-align: middle; font-size: 0.75em; text-decoration: none; margin: 0em 0.2em 0.22em 0em; /* margin-bottom: 0.2em!important; margin-right: 0.2em;*/ } } &.srmp3_sonaar_ts_shortcode_button { background-color: #000; border-radius: 4px; padding: 5px 15px; color: #fff; text-decoration: none !important; width: fit-content; &.srmp3_sonaar_ts--block { display: block; } } } .srp_button { color: inherit; text-decoration: inherit; display: inline-block; padding: 10px 30px; border-radius: 4px; background-color: #0170b9; &:hover { filter: brightness(0.7); } .fas.fa-cart-plus { font-family: 'Font Awesome 5 Free'; font-weight: 900; } i { padding-right: 10px; } &.added:after { font-family: WooCommerce; content: "\e017"; margin-left: 0.53em; vertical-align: bottom; } } #sonaar-player { .tracklist .wc-forward { font-size: 0.8em !important; } .player-row .wc-forward { position: absolute; color: #000 !important; display: block; background: #fff; padding: 10px; border: 1px #000 solid; top: -42px; } } .woocommerce .iron-audioplayer .sr-playlist-item .wc-forward { padding-top: 0px; } .srmp3_sonaar_ts_shortcode { &.sricon-play.audio-playing:before { content: '\e81c'; } &.audio-playing .srp_ts_content { display: none; } &:not(.audio-playing) .srp_ts_content_pause { display: none; } } /* .sr_track_inline_cta_bt__no .srp_has_customfields .store-list{ flex: initial !important; } */ .srp_hidden{ &.sr-playlist-cf-child, &.srp_sort{ opacity: 0; z-index: -1; pointer-events: none; position: absolute; } } .srp_filter_error { color: red; font-family: sans-serif; font-size: 12px; line-height: 16px; margin-top: 10px; } .srp-filters-container{ display: flex; justify-content: start; column-gap: 12px; width: 100%; row-gap: 12px; flex-wrap: wrap; align-items: start; input.multiselect__input { color: inherit; margin: 0px; border: none; padding: inherit; transition: unset; } .srp-filters-widget{ font-size: 16px; width:200px; } .multiselect{ color:inherit; .multiselect__select{ height: 100%; width: 100%; display: flex; justify-content: flex-end; align-items: center; padding: 0 15px; &:before{ position: static; margin-top: 0; -webkit-transition: -webkit-transform 0.2s ease; transition: -webkit-transform 0.2s ease; transition: transform 0.2s ease; transition: transform 0.2s ease, -webkit-transform 0.2s ease; -webkit-transform: rotateZ(270deg); transform: rotateZ(270deg); } } &.multiselect--active{ .multiselect__select{ -webkit-transform: unset; transform: unset; &:before{ -webkit-transform: rotateZ(360deg); transform: rotateZ(360deg); } } } } .multiselect__placeholder{ color:inherit; margin-bottom: initial; padding-top: initial; } .multiselect--active { z-index: 2; } .srp-filters-widget .multiselect--active .multiselect__placeholder{ display:inline-block; } .multiselect__single{ margin-bottom: 0px; } .multiselect__single, .multiselect__multiple { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } .multiselect__input, .multiselect__single { background: unset; } .multiselect__tags{ display: flex; align-items: center; padding: 10px; white-space: nowrap; overflow: hidden; color:#000; background-color:#fff; } .multiselect__content-wrapper{ position:absolute; margin-top: -1px; width:inherit; padding:10px; font-size:14px; color:#fff; background:#000; ul.multiselect__content{ color:inherit; width:inherit; } li.multiselect__element { color:inherit; &:not(:nth-last-child(3)){ border-bottom: 1px solid #ffffff29; } } } .multiselect__option{ display:flex; min-height:initial; padding: 12px 5px; span{ overflow: hidden; text-overflow: ellipsis; } } .multiselect__option, .multiselect__tags, .multiselect, .multiselect__input, .multiselect__single{ font-size:inherit; font-family:inherit; font-weight:inherit; line-height:inherit; } .multiselect__option--selected{ font-weight:inherit; color:inherit; background:unset; &.multiselect__option--highlight{ color:inherit; background:unset; &:after{ color:inherit; background: unset; } } } .multiselect__option:after{ font-size:inherit; } .multiselect__option--selected::after{ content:'\2713'!important; margin-left:20px; color:inherit; } .multiselect__option:hover{ background: #cccccc2b; border-radius: 6px; color: inherit; } .multiselect__option--highlight { background: unset; color:inherit; } } .srp_range_wrapper{ width: 100%; display: flex; column-gap: 10px; flex-wrap: wrap; .srp_range_container{ width: 200px; flex-grow:1; margin-bottom:10px; padding:20px; background-color:#fff; border-radius:4px; .srp_range_header{ margin-bottom:10px; display: flex; font-size:14px; flex-wrap: wrap; column-gap: 10px; justify-content: space-between; align-items: center; } /* process style */ .vue-slider-process { background-color: var(--e-global-color-primary, #000); border-radius: 15px; } .srp_range_buttons{ display: flex; flex-wrap: wrap; justify-content:center; column-gap:3px; row-gap:3px; .srp_filter_button{ font-size: 11px; padding: 5px 10px; color:#fff; background-color:var(--e-global-color-primary, #000); border:unset; &:focus{ opacity: 0.8; outline: unset; } &:hover{ color:#fff; padding: 5px 10px; background-color:var(--e-global-color-primary, #000); } } } } .vue-slider { margin-bottom: 30px; z-index:1; } .vue-slider-mark { z-index: 4; } .vue-slider-mark:first-child .vue-slider-mark-step, .vue-slider-mark:last-child .vue-slider-mark-step { display: none; } .vue-slider-mark-step { width: 100%; height: 100%; border-radius: 50%; background-color: rgba(0, 0, 0, 0.16); } .vue-slider-mark-label { font-size: 14px; white-space: nowrap; } .vue-slider-dot-handle { cursor: pointer; width: 100%; height: 100%; border-radius: 50%; background-color: #fff; box-sizing: border-box; box-shadow: 0.5px 0.5px 2px 1px rgba(0, 0, 0, 0.32); } .vue-slider-dot-handle-focus { box-shadow: 0px 0px 1px 2px var(--e-global-color-primary, #00000050) } .vue-slider-dot-tooltip-inner { font-size: 14px; white-space: nowrap; padding: 2px 5px; min-width: 20px; text-align: center; color: #fff; border-radius: 5px; border-color: var(--e-global-color-primary, #000 ); background-color: var(--e-global-color-primary, #000 ); box-sizing: content-box; } .vue-slider-dot-tooltip-inner::after { content: ""; position: absolute; } .vue-slider-dot-tooltip-inner-top::after { top: 100%; left: 50%; transform: translate(-50%, 0); height: 0; width: 0; border-color: transparent; border-style: solid; border-width: 5px; border-top-color: inherit; } .vue-slider-dot-tooltip-wrapper { opacity: 0; transition: all 0.3s; } .vue-slider-dot-tooltip-wrapper-show { opacity: 1; } .vue-slider-dot-tooltip-inner { -webkit-transition: opacity .2s linear,-webkit-transform .4s cubic-bezier(.25,.8,.25,1); transition: opacity .2s linear,-webkit-transform .4s cubic-bezier(.25,.8,.25,1); transition: transform .4s cubic-bezier(.25,.8,.25,1),opacity .2s linear; transition: transform .4s cubic-bezier(.25,.8,.25,1),opacity .2s linear,-webkit-transform .4s cubic-bezier(.25,.8,.25,1); } .vue-slider-dot-tooltip-show .vue-slider-dot-tooltip-inner { opacity: 1; } .vue-slider-dot-tooltip-show .vue-slider-dot-tooltip-inner-top { -webkit-transform: rotate(0deg); transform: rotate(0deg); } .vue-slider-dot-tooltip-inner-top { -webkit-transform: translateY(50%) scale(.01) rotate(0deg); transform: translateY(50%) scale(.01) rotate(0deg); } .vue-slider-dot-tooltip-inner-top .vue-slider-dot-tooltip-text { -webkit-transform: rotate(0deg); transform: rotate(0deg); } .vue-slider-mark-label{ font-size:9px; } } .srp_chips { margin-top: 8px; margin-bottom: 8px; flex-wrap: wrap; justify-content: start; display: flex; column-gap: 3px; row-gap: 3px; .srp_chip{ display: flex; align-items: center; background-color:#000; color:#fff; cursor: pointer; border:1px solid #fff; //margin: 2px; height:fit-content; font-size: 12px; margin: 2px; border-radius: 20px; padding: 3px 8px 3px 15px; text-transform: capitalize; transition: all .2s ease-out,opacity .2s ease-out; &:first-child{ margin-left: 0px; } &:hover{ background-color:#fff; color:#000; border-color:#000; } .sricon-close-circle { font-size:18px; margin-left: 5px; } } } .srp_filter_container{ // This is the tags container .srp_filter_button_label{ display:flex; } .srp_filter_buttons_list{ margin:0; display:flex; width:100%; flex-wrap:wrap; justify-content:left; column-gap:6px; row-gap:6px; margin-top:10px; margin-bottom:10px; padding: 0px; li { white-space: nowrap; list-style: none; position: relative; clear: both; .srp_filter_button{ overflow: hidden; text-overflow: ellipsis; -webkit-user-select: none; transition: all 300ms; border: solid 1px #c5c5c5; color: #c5c5c5; background-color:#000; padding: 4px 8px; font-size: 11px; border-radius: 4px; cursor: pointer; &:hover:not(.srp_filter_button--active){ color:#fff; } &.srp_filter_button--active { background-color: #fff; color: #000; } } } } /* Define the initial state and transition for the list items */ .list-enter-active, .list-leave-active { transition: opacity 0.5s, transform 0.5s; } .list-enter, .list-leave-to /* .list-leave-active in <2.1.8 */ { opacity: 0; transform: translateY(-1em); } /* Initially, tags are visible */ li { opacity: 1; transform: translateY(0); transition: opacity 1.5s, transform 1.5s; &.hidden-tag { opacity: 0; transform: translateY(1em); } } } .srp-filter-more-link { font-size:14px; font-weight:400; cursor: pointer; margin-bottom:15px; } .srp_pagination_container { transition: all 250ms; font-size:16px; -webkit-user-select: none; display: flex; justify-content: center; width: 100%; align-items: center; height: auto; grid-gap:10px; margin-top: 20px; margin-bottom: 15px; color: #fff; .srp_pagination_arrows { transition:all 250ms; font-size:12px; border: 2px solid rgba(255,255,255,.2); cursor: pointer; pointer-events: all; -webkit-user-select: none; /* Safari */ color: inherit; background-color:rgba(0,0,0,0); min-width: 40px; height: 40px; display: -webkit-box; display: -ms-flexbox; display: flex; -webkit-box-align: center; -ms-flex-align: center; align-items: center; -webkit-box-pack: center; -ms-flex-pack: center; justify-content: center; padding: 5px 5px; border-radius: 999px; &:hover{ border: 2px solid rgba(255,255,255,1); color:inherit; } } .srp_pagination { display: flex; justify-content: center; grid-gap:10px; height:auto!important; .disabled{ pointer-events: none; } .active{ span{ pointer-events:none; background-color: #fff; color: #000; } } span { transition:all 250ms; color: inherit; background-color:rgba(0,0,0,0); min-width: 30px; height: 30px; display: -webkit-box; display: -ms-flexbox; display: flex; -webkit-box-align: center; -ms-flex-align: center; align-items: center; -webkit-box-pack: center; -ms-flex-pack: center; justify-content: center; padding: 5px 5px; border-radius: 999px; &:hover{ color:inherit; } &:not(:hover){ // opacity:0.5; } } } } .srp_notfound{ display: none; margin: 10px; .srp_notfound--title { font-weight: bold; font-size: 21px; } .srp_notfound--subtitle { font-size: 16px; opacity: 0.6; } } [style*="visibility: hidden;"] { // Dont show the search input and filters if a parent element has the hidden style. This prevents issue if the container elementor element is set to sticky. .srp_search_main .srp_search_container, .srp_filter_container{ visibility:hidden!important; opacity: 0 !important; } } .srp_search_main{ flex-wrap: wrap; display: flex; justify-content:space-between; align-items: center; //margin-bottom:10px; column-gap:5px; .srp_search_container { visibility:visible!important; opacity:1!important; color:#fff; display: flex; justify-content: flex-start; align-items: center; max-width:100%; min-height:40px; flex-grow:1; .srp_search { font-family: inherit; font-size:14px; padding-left: 45px!important; color: #fff; border-radius: 4px; background: #000; border: none; border-width:1px; outline: none; max-width: 100%; width: 100%; min-height: 40px; padding: 15px; &::placeholder{ color: inherit; opacity: 0.5; } } .srp_reset_search{ position: relative; width: 0; right: 35px; pointer-events: all; cursor: pointer; } .fa-search { position: relative; left: 20px; width: 0; font-size: 14px; color: #828282; } } } .srp_pagination li:not(.active) .page{ cursor: pointer; } /*TRACKLIST GRID*/ .srp_tracklist_grid{ .srp_tracklist > ul{ display: grid; grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); gap: 10px; } &[data-col="6"] .srp_tracklist > ul{ grid-template-columns: 1fr 1fr 1fr 1fr 1fr 1fr; } &[data-col="5"] .srp_tracklist > ul{ grid-template-columns: 1fr 1fr 1fr 1fr 1fr; } &[data-col="4"] .srp_tracklist > ul{ grid-template-columns: 1fr 1fr 1fr 1fr; } &[data-col="3"] .srp_tracklist > ul{ grid-template-columns: 1fr 1fr 1fr; } &[data-col="2"] .srp_tracklist > ul{ grid-template-columns: 1fr 1fr; } &[data-col="1"] .srp_tracklist > ul{ grid-template-columns: 1fr; } @media only screen and (max-width: 768px) { &[data-col-tablet="6"] .srp_tracklist > ul{ grid-template-columns: 1fr 1fr 1fr 1fr 1fr 1fr; } &[data-col-tablet="5"] .srp_tracklist > ul{ grid-template-columns: 1fr 1fr 1fr 1fr 1fr; } &[data-col-tablet="4"] .srp_tracklist > ul{ grid-template-columns: 1fr 1fr 1fr 1fr; } &[data-col-tablet="3"] .srp_tracklist > ul{ grid-template-columns: 1fr 1fr 1fr; } &[data-col-tablet="2"] .srp_tracklist > ul{ grid-template-columns: 1fr 1fr; } &[data-col-tablet="1"] .srp_tracklist > ul{ grid-template-columns: 1fr; } } @media only screen and (max-width: 767px) { &[data-col-mobile="6"] .srp_tracklist > ul{ grid-template-columns: 1fr 1fr 1fr 1fr 1fr 1fr; } &[data-col-mobile="5"] .srp_tracklist > ul{ grid-template-columns: 1fr 1fr 1fr 1fr 1fr; } &[data-col-mobile="4"] .srp_tracklist > ul{ grid-template-columns: 1fr 1fr 1fr 1fr; } &[data-col-mobile="3"] .srp_tracklist > ul{ grid-template-columns: 1fr 1fr 1fr; } &[data-col-mobile="2"] .srp_tracklist > ul{ grid-template-columns: 1fr 1fr; } &[data-col-mobile="1"] .srp_tracklist > ul{ grid-template-columns: 1fr; } } .sr-playlist-item-flex{ flex-direction: column; gap: 10px; align-items: flex-start !important; justify-content: flex-start !important; //display: block !important; .audio-track{ width: 100%; flex: none; } .store-list{ width: 100%; flex: none !important; //justify-content: center; margin-top: auto; .song-store-list-menu { justify-content: inherit; width: 100%!important; } .song-store-list-container{ width: inherit; flex-wrap: wrap; gap: 6px; } .sr_store_wc_round_bt { width: 100%; padding:10px; } } .sr-playlist-cf-container{ width: 100%; flex: none; justify-content: flex-start; column-gap: 15px; flex-wrap: wrap; } .sr-playlist-cf-child{ flex: none !important; width: auto !important; } .srp_noteButton{ i:before{ margin: 0; } .sricon-info{ margin-left: 4px; } margin-left: 15px; } .sricon-spinner-wrap{ width: 20px !important; margin-top: -5px; margin-left: 2px; } } .sr_track_cover{ margin-left: -20px; margin-top: -20px; width: calc(100% + 40px) !important; max-width: unset; } .sr-cf-heading{ display: none !important; } &[data-playertemplate="skin_boxed_tracklist"] .srp_player_boxed + .playlist { padding-top: 20px; } .sr-playlist-item{ overflow: hidden; } .srp_note_title { font-size: 1.2em; } .srp_tracklist-item-date{ height: initial; margin-left: 0; padding-left: 0 !important; } .sr-playlist-item .srp_track_description{ margin-top: 0; } .srp_note{ padding: 5px; } .srp_list.ps .sr-playlist-item{ height: max-content; } } .srp_tracklist_play_cover{ &:not(.srp_tracklist_grid) .sr_track_cover .srp_play{ transform: scale(0.5); } .sr_track_cover{ position: relative; &:after{ content: ""; height: 100%; width: 100%; display: block; position: absolute; top: 0; left: 0; // background: #82828251; } .srp_play{ cursor: pointer; z-index: 1; } } .track-number{ padding-left: 0px !important; .sricon-play{ display: none; } } @media only screen and (min-width: 768px) { &.srp_tracklist_play_cover_hover{ .sr_track_cover { &:after, .srp_play{ transition: 0.15s ease; } } .sr-playlist-item:not(:hover):not(.current){ .sr_track_cover { &:after, .srp_play{ opacity: 0; } .srp_play{ transform: translateY(30%); } } } } } } .srp_tracklist-item-date+.srp_tracklist-item-date{ display: none;} //fix duplicate date in elementor editor .elementor-widget-music-player .iron-audioplayer[data-playertemplate="skin_boxed_tracklist"].srp_tracklist_grid img.sr_track_cover{ max-width: unset !important; } .sr_tracklenght_tooltip{ opacity: 0; transform: translateY(20px) scale(0.5); transition: transform 0.2s ease; z-index: 9999; text-align: center; width: 60px; position: absolute; background-color: black; color: white; padding: 5px; border-radius: 2px; font-size: 11px; } .sr_tracklenght_tooltip_vertical{ display: none; z-index: 9999; position: absolute; width: 1px; background-color: black; pointer-events: none; } .iron-audioplayer{ position: relative; .srp_player_boxed{ .srp_progressbar_inline .control { margin-top: 0px; } .player .srp_spectrum_container{ display: flex; justify-content: flex-start; } } .srp_spectrum_container, .srp_spectrum{ transition: 0.3s ease; max-height: 1000px; //Max height is required for the fade out effect applied with the srp_hidden class } .playlist{ .srp_spectrum_container, .srp_spectrum{ max-height: 500px; //Max height is required for the fade out effect applied with the srp_hidden class } } .srp_spectrum_container { width:100%; display: flex; justify-content: center; pointer-events: none; } .srp_spectrum{ // display: block; //margin: 0 auto; position: absolute; z-index:1; } .sr-playlist-item .srp_spectrum{ z-index:-1; } .song-store.add_to_cart_button.ajax_add_to_cart *{ pointer-events: none; } &.srp_tracklist_grid{ .srp_soundwave_wrapper{ flex: unset; width:100%; } } .srp_soundwave_wrapper{ flex: 0 1 100%; width:100%; } } .srp_spectrum_container.srp_hidden, .srp_hidden .srp_spectrum{ opacity: 0; max-height: 0 !important; } //TMP #sonaar-player .srp_spectrum_container{ position: absolute; z-index: 10000; pointer-events: none; } //Slider .swiper-box-navigation{ max-width: 100%; position: relative; display: flex; flex-direction: column; &[data-v-align="top"]{ flex-direction: column-reverse; } &[data-v-align="center"] .srp_swiper-navigation{ position: absolute; transform: translateY(-50%); } } .srp_swiper-nav-v-pos-center .swiper-box-navigation{ position: absolute; width: 100%; left: 0; top: 50%; } .srp_swiper-wrap{ position: relative; padding: 0 0 15px 0; display: flex; flex-direction: column; } .srp_swiper{ color:#fff; user-select: none; -moz-user-select: none; -khtml-user-select: none; -webkit-user-select: none; -o-user-select: none; &.swiper{ overflow:visible; overflow-x:clip; } max-width: 100%; .swiper-pagination-bullet{ background: #0000006c; opacity: 1; &.swiper-pagination-bullet-active{ background: #000000; } } .swiper-slide{ min-width:1px; // important to make the slide appear if no content inside overflow:visible; cursor: grab; &:active{ cursor: grabbing; } .store-list { align-items:inherit; justify-content:inherit; text-shadow:none; position: relative; margin-top: 6px; .song-store-list-menu{ align-items:inherit; justify-content:inherit; } .fa-ellipsis-v { display:none; } .song-store-list-container { display: flex; align-items: inherit; justify-content: inherit; flex-wrap: wrap; row-gap: 4px; } } } .srp_trackartist{ display: inline-block !important; } .srp_index{ display: none; } } .srp_swiper-control{ position: absolute; z-index: 50; .srp_play{ cursor: pointer; .sricon-play{ margin-left: 4px; } } } .audio-playing .swiper-slide.srp_current .sricon-play{ margin-left: 0; } .srp_swiper-titles{ display: flex; flex-direction: column; padding: 5%; z-index:1; transition: opacity 0.3s ease; } .srp_swiper-album-art{ background: no-repeat 50%; background-size: cover; width:100%; height: 380px; position: relative; justify-content: center; align-items: center; display: flex; position: relative; overflow: hidden; //required for border radius .srp_swiper-titles{ width: 100%; height: 100%; display: flex; flex-direction: column; align-items: center; justify-content: flex-end; } img{ width: 100%; height: auto; } &:after{ transition:0.3s ease; content: ""; position: absolute; top: 0; left: 0; width: 100%; height: 100%; } } .srp_slider_play_cover_hover .swiper-slide .srp_swiper-control .srp_play{ opacity: 0; scale: 1.15; transform: translate(0, 10px); transition: 0.15s ease; } .srp_slider_play_cover_hover .swiper-slide:hover .srp_swiper-control .srp_play{ opacity: 1; scale: 1; transform: translate(0, 0); } .srp_swiper-title { font-size: 1.3rem; text-align: inherit; } .srp_swiper-track-title { text-align: inherit; } .srp_swiper-album-art .srp_swiper_overlay{ width:100%; height:100%; position: absolute; top: 0; left: 0; } .srp_swiper-album-art .srp_swiper_overlay::before{ transition: opacity 0.2s; content: ""; opacity: 1; width: 100%; height: 100%; position: absolute; } .srp_swiper-album-art .srp_swiper_overlay::after{ transition: opacity 0.2s; content: ""; opacity: 0; width: 100%; height: 100%; position: absolute; } .srp_swiper-album-art:hover .srp_swiper_overlay::after{ opacity:1; } .srp_swiper-album-art:hover .srp_swiper_overlay::before{ opacity:0; } /* /////////////////// WHEN SLIDE IS HOVER MODE /////////////////// */ .srp_slider_content_on_hover { .srp_swiper-track-title, .srp_swiper-title, .store-list, .srp_swiper-track-artist { opacity: 0; } .swiper-slide:hover .srp_swiper-title, .swiper-slide:hover .srp_swiper-track-title, .swiper-slide:hover .store-list, .swiper-slide:hover .srp_swiper-track-artist { opacity: 1; transform: translate(0, 0); } .srp_swiper-track-title { transform: translate(0,20px); transition: 0.4s ease; transition-delay: .1s; } .srp_swiper-track-artist { transform: translate(0,30px); transition: 0.4s ease; transition-delay: .15s; } .srp_swiper-title { transform: translate(0,30px); transition: 0.4s ease; transition-delay: .12s; } .store-list { transform: translate(0,40px); transition: 0.5s ease; transition-delay: .1s; } } /* /////////////////// WHEN SLIDE IS ACTIVE IN COVERFLOW MODE /////////////////// */ .srp_slider_content_on_active .swiper-slide:not(.swiper-slide-active){ .srp_swiper-control, .srp_swiper-titles{ opacity: 0; } } .srp_slider_content_on_active:not(.srp_slider_content_on_hover) { .srp_swiper-track-title, .srp_swiper-title, .srp_swiper-track-artist, .store-list { opacity: 0; } .swiper-slide-active .srp_swiper-title, .swiper-slide-active .srp_swiper-track-title, .swiper-slide-active .srp_swiper-track-artist, .swiper-slide-active .store-list { opacity: 1; transform: translate(0, 0); } .srp_swiper-track-title { transform: translate(0,20px); transition: 0.8s ease; transition-delay: .1s; } .srp_swiper-track-artist{ transform: translate(0,30px); transition: 0.8s ease; transition-delay: .12s; } .srp_swiper-title { transform: translate(0,40px); transition: 0.8s ease; transition-delay: .18s; } .store-list { transform: translate(0,30px); transition: 0.8s ease; transition-delay: .2s; } } .srp_swiper .srp_swiper-navigation{ //navigation set inside the slider position: absolute; transform: translateY(-50%); left: 0; } .srp_swiper-navigation{ width: 100%; top: 50%; display: flex; justify-content: space-between; gap: 15px; padding: 8px; z-index: 100; .srp_swiper-button-prev, .srp_swiper-button-next{ position: static; margin-top: 0; transform: initial; } } .srp_swiper-button-prev, .srp_swiper-button-next { position: absolute; top: 50%; width: calc(var(--swiper-navigation-size) / 44 * 27); height: var(--swiper-navigation-size); transform: translateY(-50%); z-index: 10; cursor: pointer; display: flex; align-items: center; justify-content: center; color: var(--swiper-navigation-color, var(--swiper-theme-color)); font-size: 44px; overflow: hidden; color: #fff; &.srp_arrow_round{ font-size: 24px !important; width: calc(var(--swiper-navigation-size) + 20px); height: calc(var(--swiper-navigation-size) + 20px); border-radius: 65px; border: #fff solid; } &.swiper-button-disabled{ opacity: 0.35; cursor: default; } } div.srp_swiper-button-prev:after, div.srp_swiper-button-next:after { font-family: swiper-icons; text-transform: none !important; letter-spacing: 0; font-variant: initial; line-height: 1; font-size: inherit; } .srp_swiper-button-prev, .swiper-rtl .srp_swiper-button-next { left: 10px; right: auto; } .srp_swiper-button-prev:after, .swiper-rtl .srp_swiper-button-next:after { content: 'prev'; } .srp_swiper-button-next, .swiper-rtl .srp_swiper-button-prev { right: 10px; left: auto; } .srp_swiper-button-next:after, .swiper-rtl .srp_swiper-button-prev:after { content: 'next'; } .srp_swiper-wrap .swiper-box-pagination{ position: relative; height: 6px; margin-top: 10px; .swiper-horizontal>.swiper-pagination-bullets.swiper-pagination-bullets-dynamic, .swiper-pagination-horizontal.swiper-pagination-bullets.swiper-pagination-bullets-dynamic{ bottom: 0; } .swiper-pagination-bullet { opacity: 1; } } .srp_swiper-track-artist{ text-transform: capitalize; } .srp-fav-notfound{ color:initial; display:flex; align-items:center; column-gap: 10px; i{ font-size:12px; } } a.song-store.srp-fav-bt i, a.song-store.sr_store_force_share_bt i, a.song-store.sr_store_force_dl_bt i, a.song-store.sr_store_force_pl_bt i{ font-size: 16px; } .srp-fav-removeall-wrapper{ display:flex; justify-content: flex-start; .srp-fav-removeall-bt { transition:all 0.3s ease; width:auto; cursor: pointer; padding: 5px 20px; margin-bottom: 10px; background-color: var(--srp-global-music_player_wc_bt_bgcolor); color: var(--srp-global-music_player_wc_bt_color); display: inline-block; border-radius: 4px; font-size: 12px; } } .srp-fav-notification { opacity:0; position: fixed; bottom: 80px; left: 0; right: 0; margin: auto; width: fit-content; padding: 10px 50px; background-color: var(--srp-global-modal-btn-bg-color); color: var(--srp-global-modal-btn-txt-color); text-align: center; border-radius: 5px; box-shadow: 0px 0px 7px rgba(0,0,0,0.3); z-index: 10001; font-size: 16px; } /*----------Sticky Extended Player----------*/ $extPl_v_padding: 15px; $extPl_h_padding: 25px; .srp_extendedPlayer{ transition: padding 0.1s ease; } .srp_no_artwork{ //Mobile Sticky When no artwork is available .srp_extendedPlayer_container{ .srp_extendedPlayer{ overflow-y: unset; padding-top: calc(var(--srp-window-height) - 100% - 40px); background: unset !important; min-height: unset; } } &.srp_sticky_has_ext{ .srp_extendedPlayer_container .srp_extendedPlayer{ padding-top: calc(var(--srp-window-height) - 100% - 36px); } } } .srp_extendedPlayer_scrolling_box{ height: 100%; display: flex; overflow-y: scroll; } .srp_extendedPlayer_container{ width: 100%; height: 100%; position: fixed; top: 0; left: 0; z-index: 9999; display: flex; flex-direction: column; transform: translateY(100%); opacity: 0; transition: transform 300ms ease, opacity 150ms ease; #sonaar-player &{ .close{ border-color: #ffffff; &:before, &:after{ border-color: inherit; } } } &.srp_opened{ transform: translateY(0%); opacity: 1; } .srp-fav-bt{ font-size: 28px; color: var(--srp-global-sticky_player_waveform_progress_color, #fff); } #sonaar-player &{ .sr_progressbar_sticky{ flex-direction: column-reverse !important; gap: 10px; .wave{ position: static; height: 70px !important; width: 100% !important; } } } .srp_ext_primary{ display: flex; flex-direction: column; justify-content: space-between; min-height: 100%; padding-top: $extPl_v_padding; padding-bottom: 45px; padding-left: $extPl_h_padding; padding-right: $extPl_h_padding; background: var(--srp-global-sticky_player_background); } .srp_ext_secondary{ display: flex; flex-direction: column; justify-content: space-between; padding-bottom: $extPl_v_padding; gap: 15px; padding-left: $extPl_h_padding; padding-right: $extPl_h_padding; background: var(--srp-global-sticky_player_background); } .srp_ext_overlay_panel{ padding: $extPl_v_padding $extPl_h_padding; } .srp_extendedPlayer{ display: flex; flex-direction: column; justify-content: space-between; min-height: 100%; width: 100%; box-sizing: border-box; &.srp_opened_cta{ transition: filter 0.3s ease; filter:brightness(0.5); } .srp_ext_header{ display: flex; justify-content: space-between; align-items: center; margin-bottom: 20px; margin-top: 15px; gap:20px; } .srp_collapse_btn{ font-size: 24px; line-height: 1; } .srp_ellipsis_btn{ font-size: 20px; line-height: 1; margin-right: -10px; // trick because the ellpise icon is wide } .srp_ext_artwork{ display: flex; flex-direction: column; justify-content: center; flex-flow:row; overflow: hidden; img{ width: 100%; height: 100%; object-fit: contain; } } .srp_ext_track{ column-gap: 10px; display: flex; flex-direction: row; justify-content: space-between; align-items: center; } .control{ display: flex; justify-content: center; align-items: center; gap: 30px; margin: 10px 0; &.srp_ctrl_advanced{ gap: 15px; } .sricon-play:before{ font-size: 38px; } } .srp_ext_track_info{ margin: 15px 0; } .srp_track_title { font-size: 18px; line-height: 1.3; } .sr_progressbar_sticky { width: auto; position: relative; display: flex; flex: 1; align-items: center; margin: 0 5px; } .srp_ext_featured_cta{ display: flex; justify-content: space-between; column-gap: 5px; min-height: 30px; align-items: center; .srp_ext_cta_addtocart, .srp_ext_cta_buynow{ background-color: var(--srp-global-sticky_player_labelsandbuttons, #FFF); /* font-size: 12px; */ padding: 5px 10px; border-radius: 6px; color: var(--srp-global-sticky_player_background, #000); span{ font-size: 14px; font-weight: 500; } } a{ color: inherit; background-color: unset; display: flex; column-gap: 12px; align-items: center; text-decoration: none; font-size: 18px; font-weight: 400; } } .srp_ext_featured_cta_left, .srp_ext_featured_cta_right{ align-items: center; display: flex; gap: 10px; } .srp_ext_featured_cta_left { font-size: 18px; } .srp_ext_featured_cta_center{ flex: 0.9; height: 175%; } .srp_ext_control{ display: flex; justify-content: space-between; align-content: center; .shuffle{ font-size:18px; display: flex; align-items: center; justify-content: flex-end; } } #sonaar-player &{ .srp_ext_control .sr_speedRate{ margin: 0; } } .srp_control_right, .srp_control_left { display: flex; flex: 1; } .srp_control_left { justify-content: flex-start; } .srp_control_right{ justify-content: flex-end; } .play{ display: flex; } .list{ width: 28px; } } .srp_ext_overlay_panel_outside{ position: absolute; height: 100%; width: 100%; } .srp_ext_overlay_panel{ visibility: hidden; position: absolute; bottom: 0px; padding-bottom: 70px; height: fit-content; width: 100%; background: var(--srp-global-sticky_player_background); transform: translateY(100%); transition: 0.4s ease; &.srp_opened{ visibility: visible; transform: translateY(0%); } .srp_ext_cta{ display: flex; flex-direction: column; row-gap: 20px; margin-top: 20px; .srp_ext_track_info_wrapper { display: flex; column-gap: 10px; margin-bottom: 20px; padding-bottom: 10px; border-bottom: 1px solid #ffffff20; .srp_track_title{ display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; width: 65vw; font-size: 18px; } .srp_artist{ font-size:14px; } } img{ max-height: 65px; } > span a{ color: inherit; background-color: unset; display: flex; column-gap: 12px; align-items: center; text-decoration: none; font-size: 18px; font-weight: 400; >i{ text-align:center; width:30px; } } } } .srp_ext_content{ display: flex; flex-direction: column; row-gap: 10px; } .srp_ext_section{ word-wrap: break-word; font-size: 16px; font-weight: 400; background: var(--srp-global-sticky_player_background); padding: 15px; border-radius: 10px; filter: brightness(1.2); &:first-child{ margin-top: -28px; } } } body.srp_sticky_ext_opened{ overflow-y: hidden; }PK!MZFF"public/css/vue-multiselect.min.cssnu[fieldset[disabled] .multiselect{pointer-events:none}.multiselect__spinner{position:absolute;right:1px;top:1px;width:48px;height:35px;background:#fff;display:block}.multiselect__spinner:after,.multiselect__spinner:before{position:absolute;content:"";top:50%;left:50%;margin:-8px 0 0 -8px;width:16px;height:16px;border-radius:100%;border-color:#41b883 transparent transparent;border-style:solid;border-width:2px;box-shadow:0 0 0 1px transparent}.multiselect__spinner:before{animation:a 2.4s cubic-bezier(.41,.26,.2,.62);animation-iteration-count:infinite}.multiselect__spinner:after{animation:a 2.4s cubic-bezier(.51,.09,.21,.8);animation-iteration-count:infinite}.multiselect__loading-enter-active,.multiselect__loading-leave-active{transition:opacity .4s ease-in-out;opacity:1}.multiselect__loading-enter,.multiselect__loading-leave-active{opacity:0}.multiselect,.multiselect__input,.multiselect__single{font-family:inherit;font-size:16px;-ms-touch-action:manipulation;touch-action:manipulation}.multiselect{box-sizing:content-box;display:block;position:relative;width:100%;min-height:40px;text-align:left;color:#35495e}.multiselect *{box-sizing:border-box}.multiselect:focus{outline:none}.multiselect--disabled{opacity:.6}.multiselect--active{z-index:1}.multiselect--active:not(.multiselect--above) .multiselect__current,.multiselect--active:not(.multiselect--above) .multiselect__input,.multiselect--active:not(.multiselect--above) .multiselect__tags{border-bottom-left-radius:0;border-bottom-right-radius:0}.multiselect--active .multiselect__select{transform:rotate(180deg)}.multiselect--above.multiselect--active .multiselect__current,.multiselect--above.multiselect--active .multiselect__input,.multiselect--above.multiselect--active .multiselect__tags{border-top-left-radius:0;border-top-right-radius:0}.multiselect__input,.multiselect__single{position:relative;display:inline-block;min-height:20px;line-height:20px;border:none;border-radius:5px;background:#fff;padding:0 0 0 5px;width:100%;transition:border .1s ease;box-sizing:border-box;margin-bottom:8px;vertical-align:top}.multiselect__input::-webkit-input-placeholder{color:#35495e}.multiselect__input:-ms-input-placeholder{color:#35495e}.multiselect__input::placeholder{color:#35495e}.multiselect__tag~.multiselect__input,.multiselect__tag~.multiselect__single{width:auto}.multiselect__input:hover,.multiselect__single:hover{border-color:#cfcfcf}.multiselect__input:focus,.multiselect__single:focus{border-color:#a8a8a8;outline:none}.multiselect__single{padding-left:5px;margin-bottom:8px}.multiselect__tags-wrap{display:inline}.multiselect__tags{min-height:40px;display:block;padding:8px 40px 0 8px;border-radius:5px;border:1px solid #e8e8e8;background:#fff;font-size:14px}.multiselect__tag{position:relative;display:inline-block;padding:4px 26px 4px 10px;border-radius:5px;margin-right:10px;color:#fff;line-height:1;background:#41b883;margin-bottom:5px;white-space:nowrap;overflow:hidden;max-width:100%;text-overflow:ellipsis}.multiselect__tag-icon{cursor:pointer;margin-left:7px;position:absolute;right:0;top:0;bottom:0;font-weight:700;font-style:normal;width:22px;text-align:center;line-height:22px;transition:all .2s ease;border-radius:5px}.multiselect__tag-icon:after{content:"\D7";color:#266d4d;font-size:14px}.multiselect__tag-icon:focus,.multiselect__tag-icon:hover{background:#369a6e}.multiselect__tag-icon:focus:after,.multiselect__tag-icon:hover:after{color:#fff}.multiselect__current{min-height:40px;overflow:hidden;padding:8px 12px 0;padding-right:30px;white-space:nowrap;border-radius:5px;border:1px solid #e8e8e8}.multiselect__current,.multiselect__select{line-height:16px;box-sizing:border-box;display:block;margin:0;text-decoration:none;cursor:pointer}.multiselect__select{position:absolute;width:40px;height:38px;right:1px;top:1px;padding:4px 8px;text-align:center;transition:transform .2s ease}.multiselect__select:before{position:relative;right:0;top:65%;color:#999;margin-top:4px;border-style:solid;border-width:5px 5px 0;border-color:#999 transparent transparent;content:""}.multiselect__placeholder{color:#adadad;display:inline-block;margin-bottom:10px;padding-top:2px}.multiselect--active .multiselect__placeholder{display:none}.multiselect__content-wrapper{position:absolute;display:block;background:#fff;width:100%;max-height:240px;overflow:auto;border:1px solid #e8e8e8;border-top:none;border-bottom-left-radius:5px;border-bottom-right-radius:5px;z-index:1;-webkit-overflow-scrolling:touch}.multiselect__content{list-style:none;display:inline-block;padding:0;margin:0;min-width:100%;vertical-align:top}.multiselect--above .multiselect__content-wrapper{bottom:100%;border-bottom-left-radius:0;border-bottom-right-radius:0;border-top-left-radius:5px;border-top-right-radius:5px;border-bottom:none;border-top:1px solid #e8e8e8}.multiselect__content::webkit-scrollbar{display:none}.multiselect__element{display:block}.multiselect__option{display:block;padding:12px;min-height:40px;line-height:16px;text-decoration:none;text-transform:none;vertical-align:middle;position:relative;cursor:pointer;white-space:nowrap}.multiselect__option:after{top:0;right:0;position:absolute;line-height:40px;padding-right:12px;padding-left:20px;font-size:13px}.multiselect__option--highlight{background:#41b883;outline:none;color:#fff}.multiselect__option--highlight:after{content:attr(data-select);background:#41b883;color:#fff}.multiselect__option--selected{background:#f3f3f3;color:#35495e;font-weight:700}.multiselect__option--selected:after{content:attr(data-selected);color:silver}.multiselect__option--selected.multiselect__option--highlight{background:#ff6a6a;color:#fff}.multiselect__option--selected.multiselect__option--highlight:after{background:#ff6a6a;content:attr(data-deselect);color:#fff}.multiselect--disabled{background:#ededed;pointer-events:none}.multiselect--disabled .multiselect__current,.multiselect--disabled .multiselect__select,.multiselect__option--disabled{background:#ededed;color:#a6a6a6}.multiselect__option--disabled{cursor:text;pointer-events:none}.multiselect__option--group{background:#ededed;color:#35495e}.multiselect__option--group.multiselect__option--highlight{background:#35495e;color:#fff}.multiselect__option--group.multiselect__option--highlight:after{background:#35495e}.multiselect__option--disabled.multiselect__option--highlight{background:#dedede}.multiselect__option--group-selected.multiselect__option--highlight{background:#ff6a6a;color:#fff}.multiselect__option--group-selected.multiselect__option--highlight:after{background:#ff6a6a;content:attr(data-deselect);color:#fff}.multiselect-enter-active,.multiselect-leave-active{transition:all .15s ease}.multiselect-enter,.multiselect-leave-active{opacity:0}.multiselect__strong{margin-bottom:8px;line-height:20px;display:inline-block;vertical-align:top}[dir=rtl] .multiselect{text-align:right}[dir=rtl] .multiselect__select{right:auto;left:1px}[dir=rtl] .multiselect__tags{padding:8px 8px 0 40px}[dir=rtl] .multiselect__content{text-align:right}[dir=rtl] .multiselect__option:after{right:auto;left:0}[dir=rtl] .multiselect__clear{right:auto;left:12px}[dir=rtl] .multiselect__spinner{right:auto;left:1px}@keyframes a{0%{transform:rotate(0)}to{transform:rotate(2turn)}}PK![public/css/_sonaarPopup.scssnu[body.sr_popup-open{ overflow-y:hidden; } #sonaar-modal{ display: none; position: fixed; top: 0; left: 0; z-index: 10100; width: 100%; height: 100%; overflow: hidden; outline: 0; transition: opacity .15s linear; .sr_popup-dialog { transition: -webkit-transform .3s ease-out; transition: transform .3s ease-out; transition: transform .3s ease-out,-webkit-transform .3s ease-out; -webkit-transform: translate(0, -50px); transform: translate(0, -50px); } .sr_popup-open &{ overflow-x: hidden; overflow-y: auto; } &.sr_show { display: flex !important; align-items: center; min-height: 100%; height: auto; .sr_popup-dialog { -webkit-transform: none; transform: none; } } .sr_popup-dialog { position: relative; width: auto; max-height: 100vh; overflow-y: auto; overflow-x: hidden; margin: 0px auto; @media (min-width: 576px){ max-width: calc(100vw - 150px); max-height: calc(100vh - 150px); margin: 75px auto; } } .sr_popup-content { position: relative; display: -ms-flexbox; display: flex; -ms-flex-direction: column; flex-direction: column; width: 100%; pointer-events: auto; background-color: #fff; background-clip: padding-box; border: 1px solid rgba(0, 0, 0, 0.2); border-radius: .3rem; outline: 0; -webkit-animation: srmp3fadein 350ms; -moz-animation: srmp3fadein 350ms; -ms-animation: srmp3fadein 350ms; -o-animation: srmp3fadein 350ms; animation: srmp3fadein 350ms; @media (max-width: 576px){ margin-bottom: 50px; // add margin to see the bottom of the popup that is sometimes hidden because of the browser nav bar } } @keyframes srmp3fadein { from { opacity: 0; transform: scale(0.9);} to { opacity: 1; transform: scale(1);} } /* Firefox < 16 */ @-moz-keyframes srmp3fadein { from { opacity: 0; transform: scale(0.9);} to { opacity: 1; transform: scale(1);} } /* Safari, Chrome and Opera > 12.1 */ @-webkit-keyframes srmp3fadein { from { opacity: 0; transform: scale(0.9);} to { opacity: 1; transform: scale(1);} } /* Internet Explorer */ @-ms-keyframes srmp3fadein { from { opacity: 0; transform: scale(0.9);} to { opacity: 1; transform: scale(1);} } /* Opera < 12.1 */ @-o-keyframes srmp3fadein { from { opacity: 0; transform: scale(0.9);} to { opacity: 1; transform: scale(1);} } .sr_popup-body { position: relative; -ms-flex: 1 1 auto; flex: 1 1 auto; padding: 2.5rem; } } .sr_popup-backdrop{ position: fixed; top: 0; left: 0; z-index: 10050; width: 100vw; height: 100vh; background-color: #000; opacity: 0; transition: opacity .15s linear; pointer-events: none; &.sr_show { opacity: .75; pointer-events: initial; } } .sr-store-popup{ cursor: pointer; } .sr_close{ background: transparent; height: 32px; width: 32px; padding: 0; position: absolute; top: 25px; right: 25px; z-index: 50; font-size: 1px; cursor: pointer; svg{ height: 100%; } }PK!..'public/css/sonaar-music-pro-public.scssnu[@import "sonaarPlayer"; @import "sonaarPopup";PK!;ʢʢ&public/css/sonaar-music-pro-public.cssnu[@charset "UTF-8"; :root { --srp-global-cta-mobile: 142px; --srp-global-cta-desktop: 200px; --srp-global-column-title-width: 500px; --srp-window-height: 100vh; } @keyframes showElement { from { opacity: 0; } to { opacity: 1; } } @keyframes hideElement { from { opacity: 1; } to { opacity: 0; } } @media only screen and (min-width: 1026px) { #sonaar-player:not(.sr-float) .player .store { box-sizing: border-box; } #sonaar-player:not(.sr-float) .player .store .track-store { display: flex; list-style: none; margin: 0; padding: 0; height: 100%; } #sonaar-player:not(.sr-float) .player .store .track-store li { height: 100%; min-width: 74px; display: flex; justify-content: center; align-items: center; border-left: 1px solid rgba(255, 255, 255, 0.1); position: relative; top: 0; } #sonaar-player:not(.sr-float) .player .store .track-store li a { height: auto; max-height: 100%; display: block; font-size: 10px; text-decoration: none; text-transform: uppercase; text-align: center; overflow: hidden; padding-left: 10px; padding-right: 10px; } #sonaar-player:not(.sr-float) .player .store .track-store li a:hover { transition: 200ms; filter: brightness(0.75); } #sonaar-player:not(.sr-float) .player .store .track-store li a i { pointer-events: none; display: block; font-size: 20px; line-height: 1.5em; } #sonaar-player:not(.sr-float) .player .store .track-store li .sr_store_round_bt { border-radius: 4px; padding: 4px 6px; margin: 0px 10px; display: flex; align-items: center; justify-content: center; } #sonaar-player:not(.sr-float) .player .store .track-store li .sr_store_round_bt i.fas { display: inline-block; margin-right: 5px; font-size: 12px; } } @media only screen and (max-width: 426px) { #sonaar-player .playlist .tracklist .track-store { display: none !important; } } @media only screen and (max-width: 540px) { #sonaar-player .playlist button.play, #sonaar-player .player .player-row .sr_skipBackward, #sonaar-player .player .player-row .sr_skipForward, #sonaar-player .player .player-row .previous, #sonaar-player .player .player-row .sr_speedRate, #sonaar-player .player .player-row .shuffle { display: none !important; } } @media only screen and (min-width: 425px) and (max-width: 1025px) { #sonaar-player .playlist .tracklist .track-store { display: none !important; } } #sonaar-player { position: fixed; bottom: -90px; color: #fff; background-color: #000; width: 100%; z-index: 8010; } #sonaar-player .mejs-container { display: none !important; } #sonaar-player, #sonaar-player .player { height: 90px; } @media only screen and (max-width: 540px) { #sonaar-player, #sonaar-player .player { height: 56px; } #sonaar-player div.player, #sonaar-player .player div.player { border-width: 0; } } #sonaar-player.sr_hide { display: none; } #sonaar-player:not(.sr_hide):not([v-cloak]) { display: block !important; } @media only screen and (max-width: 1025px) { #sonaar-player .store { display: none; } } #sonaar-player.enable { transition: all 0.03s ease; } #sonaar-player.enable .btn-player { top: 0px !important; } #sonaar-player.enable .btn-player .audioBar { display: none !important; } @media only screen and (max-width: 1025px) { #sonaar-player.enable .store { position: absolute; top: 0px; right: 0px; transform: translateY(-100%); width: auto !important; min-width: 150px; border-radius: 3px; z-index: 10000; display: none; } #sonaar-player.enable .store .track-store { font-size: 14px; list-style: none; margin: 0; padding: 0; } #sonaar-player.enable .store .track-store li { border: none; display: block; padding: 7px; } #sonaar-player.enable .store .track-store li a { text-decoration: none; display: block; text-align: center; color: inherit !important; background-color: inherit !important; } #sonaar-player.enable .store .track-store li a .fa { display: inline-block; padding-right: 10px; font-size: 1.4em; } #sonaar-player.enable .store .track-store li a i { margin-right: 6px; } #sonaar-player.enable .store .track-store li + li { border-top: 1px solid rgba(138, 138, 138, 0.25); } #sonaar-player.enable .store.opened { display: block; animation: showElement 0.25s ease-in-out both; } #sonaar-player.enable .store:not(.opened) { animation: hideElement 0.25s ease-in-out both; } } #sonaar-player.show-list { height: 100%; z-index: 9999; } #sonaar-player .sricon-close, #sonaar-player .close { pointer-events: all; right: 50px; top: 45px; position: absolute; cursor: pointer; } #sonaar-player .sricon-close.btn_playlist, #sonaar-player .close.btn_playlist { font-size: 32px; } #sonaar-player .sricon-close.btn_playlist:after, #sonaar-player .sricon-close.btn_playlist:before, #sonaar-player .close.btn_playlist:after, #sonaar-player .close.btn_playlist:before { margin-left: 14px; } @media only screen and (max-width: 860px) { #sonaar-player .sricon-close, #sonaar-player .close { font-size: 18px; top: 15px; right: 22px; z-index: 9999; } #sonaar-player .sricon-close.btn_playlist, #sonaar-player .close.btn_playlist { font-size: 18px; } } #sonaar-player .sricon-close.btn-player, #sonaar-player .close.btn-player { font-size: 16px; display: flex; justify-content: center; align-items: center; right: 0; top: -10px; transform: translateY(-100%); width: 24px; height: 24px; } @media only screen and (max-width: 860px) { #sonaar-player .sricon-close.btn-player, #sonaar-player .close.btn-player { top: -3px; } } #sonaar-player .sricon-close.btn-player .audioBar, #sonaar-player .close.btn-player .audioBar { display: block; width: 16px; height: 16px; transform: rotate(180deg); position: absolute; top: 4px; left: 4px; } #sonaar-player .playerNowPlaying { width: 342px; display: flex; align-items: center; } #sonaar-player .playerNowPlaying .album-art { height: calc(100% - 16px); max-width: 125px; transition: all 0.5s ease; margin-left: 8px; position: relative; } @media only screen and (max-width: 540px) { #sonaar-player .playerNowPlaying .album-art { height: 100%; margin-left: 0px; max-width: 90px; } } #sonaar-player .playerNowPlaying .album-art .loading-icon { color: #fff; position: absolute; width: 100%; top: 20px; opacity: 0; transition: opacity 0.75s ease; z-index: 1; } #sonaar-player .playerNowPlaying .album-art.loading-enable.loading .loading-icon { opacity: 0.8; } #sonaar-player .playerNowPlaying .album-art img:not(.hover) { max-width: 100%; max-height: 100%; position: relative; top: 50%; transform: translateY(-50%); } #sonaar-player .playerNowPlaying .album-art img.hover { opacity: 0; position: absolute; top: 0; width: 200px; max-width: unset; height: auto; transition: all 0.5s ease; transform: translate3d(0, 200px, 0); z-index: 100; } @media only screen and (min-width: 540px) { #sonaar-player .playerNowPlaying .album-art:hover img.hover { opacity: 1; transform: translateY(-100%) translate3d(0, 0, 0); } } #sonaar-player .playerNowPlaying.no-image .metadata { margin-left: 10px; margin-right: 0; width: inherit; } #sonaar-player .playerNowPlaying .metadata { position: relative; letter-spacing: 1px; width: 200px; height: 100%; overflow: hidden; white-space: nowrap; margin: 0 20px; line-height: 1.65em; } #sonaar-player .playerNowPlaying .metadata .track-name, #sonaar-player .playerNowPlaying .metadata .track-artist, #sonaar-player .playerNowPlaying .metadata .track-album { float: left; clear: left; } #sonaar-player .playerNowPlaying .metadata .track-name.scrolling, #sonaar-player .playerNowPlaying .metadata .track-artist.scrolling, #sonaar-player .playerNowPlaying .metadata .track-album.scrolling { transition: transform 5s linear; } #sonaar-player .playerNowPlaying .metadata .track-name .duplicate, #sonaar-player .playerNowPlaying .metadata .track-artist .duplicate, #sonaar-player .playerNowPlaying .metadata .track-album .duplicate { padding-left: 10px; } #sonaar-player .playerNowPlaying .metadata .metadata-inner { position: relative; top: 50%; transform: translateY(-50%); } #sonaar-player .playerNowPlaying .metadata .metadata-inner:after { content: ""; clear: both; display: table; } #sonaar-player .playerNowPlaying .metadata .track-artist, #sonaar-player .playerNowPlaying .metadata .track-album { font-size: 0.7em; line-height: 1em; } @media only screen and (max-width: 860px) { #sonaar-player .playerNowPlaying .metadata { font-size: 14px; } } @media only screen and (max-width: 540px) { #sonaar-player .playerNowPlaying .metadata { font-size: 12px; width: calc(100% - 50px); margin: 0 10px; max-width: 300px; } } @media only screen and (max-width: 860px) { #sonaar-player .playerNowPlaying { width: auto; flex: 1; } } @media only screen and (max-width: 860px) and (min-width: 541px) { #sonaar-player .no-list .playerNowPlaying .metadata { width: calc(100% - 215px); } } #sonaar-player .playlist { font-size: 18px; box-sizing: border-box; height: calc(100vh - 90px); position: absolute; width: 100%; } #sonaar-player .playlist .scroll { height: calc(100vh - 320px); width: 100%; top: 100px; position: absolute; display: flex; overflow-y: hidden; } #sonaar-player .playlist .container { min-height: 0; width: 100%; max-width: 1144px; height: auto; align-self: center; margin: auto; padding: 0 20px; background-color: transparent; } #sonaar-player .playlist .container .boxed { height: auto; width: 100%; } #sonaar-player .playlist .title { margin-bottom: 20px; display: block; text-align: center; font-size: 54px; line-height: 1.265em; } @media only screen and (max-width: 860px) { #sonaar-player .playlist .title { box-sizing: border-box; font-size: 18px; text-transform: uppercase; position: fixed; top: 0; left: 0; width: 100vw; margin: 0; padding: 20px; } } #sonaar-player .playlist button.play { padding: 12px 34px; border-radius: 50px; border: none; font-family: Tahoma, sans-serif; font-size: 14px; text-transform: uppercase; position: relative; left: 50%; transform: translate(-50%, 0); margin: 0 auto 50px auto; outline: none; cursor: pointer; } #sonaar-player .playlist .tracklist { list-style-type: none; margin: 0; padding: 0; display: table; width: 100%; } @media only screen and (max-width: 540px) { #sonaar-player .playlist .tracklist { display: block; } } #sonaar-player .playlist .tracklist li { filter: brightness(70%); font-weight: inherit; display: table-row; line-height: 2.4em; cursor: pointer; } #sonaar-player .playlist .tracklist li.active { filter: brightness(100%); font-weight: 700; } @media only screen and (max-width: 860px) { #sonaar-player .playlist .tracklist li { font-size: 15px; } } @media only screen and (max-width: 540px) { #sonaar-player .playlist .tracklist li { display: block; line-height: 1.265em; margin-bottom: 1.265em; position: relative; } } #sonaar-player .playlist .tracklist span { display: table-cell; } @media only screen and (min-width: 540px) { #sonaar-player .playlist .tracklist span .content { line-height: 1.3em; display: block; overflow: hidden; text-overflow: ellipsis; } } @media only screen and (max-width: 540px) { #sonaar-player .playlist .tracklist span { display: inline-block; } } @media only screen and (max-width: 540px) { #sonaar-player .playlist .tracklist .track-status { font-size: 12px; font-weight: 300; } } @media only screen and (max-width: 540px) { #sonaar-player .playlist .tracklist .srp_track_control { position: absolute; } } #sonaar-player .playlist .tracklist .sricon-play { font-size: 15px; padding-right: 7px; } @media only screen and (max-width: 540px) { #sonaar-player .playlist .tracklist .sricon-play { font-size: 12px; padding-right: 0; } } @media only screen and (max-width: 540px) { #sonaar-player .playlist .tracklist .track-lenght { font-size: 12px; font-weight: 300; position: absolute; right: 0px; top: 0; } } #sonaar-player .playlist .tracklist .track-store { display: flex; justify-content: start; column-gap: 15px; } #sonaar-player .playlist .tracklist .track-store a { text-decoration: none; font-size: 20px; } @media only screen and (max-width: 540px) { #sonaar-player .playlist .tracklist .track-title { display: block; width: 100%; padding-left: 20px; } } @media only screen and (max-width: 540px) { #sonaar-player .playlist .tracklist .track-artist, #sonaar-player .playlist .tracklist .track-album { font-size: 12px; font-weight: 300; padding-left: 20px; } } @media only screen and (max-width: 540px) { #sonaar-player .playlist .tracklist .track-artist + .track-album { padding-left: 10px; } } #sonaar-player.audio-playing .playlist .tracklist li.active .sricon-play:before { content: '\e81c'; } #sonaar-player.srp_mobile .playlist { z-index: 15555; background: inherit; height: 100%; } #sonaar-player.srp_mobile .playlist .container { align-self: normal; margin: 0; } #sonaar-player.srp_mobile .playlist .sricon-close.close { position: fixed; left: 22px; top: 18px; } #sonaar-player.srp_mobile .scroll { top: 64px; height: calc(100% - 64px); } #sonaar-player .player { width: 100%; position: absolute; left: 0; bottom: 0; top: auto; border-width: 4px; border-style: solid; border-left: none; border-bottom: none; border-right: none; } #sonaar-player .player .player-row { display: flex; height: 100%; } #sonaar-player .player .player-row .sr_skipBackward, #sonaar-player .player .player-row .sr_skipForward { font-size: 25px; } @media only screen and (max-width: 540px) { #sonaar-player .player .player-row:before { content: ""; width: 100%; height: calc(100% - 5px); display: block; position: absolute; bottom: 0; z-index: 55; } } @media only screen and (max-width: 540px) { #sonaar-player .player .player-row .playerNowPlaying, #sonaar-player .player .player-row .control, #sonaar-player .player .player-row .sonaar-extend-button { z-index: 60; } } #sonaar-player .player .control--item.list:hover, #sonaar-player .player .control--item.previous:hover, #sonaar-player .player .control--item.play:hover, #sonaar-player .player .control--item.next:hover, #sonaar-player .player .control--item.shuffle:hover, #sonaar-player .player .control--item.volume .sricon-volume:hover:before { filter: brightness(0.75); transition: 300ms; } #sonaar-player .player .mobilePanel { position: absolute; top: 0px; width: 100%; transform: translateY(calc(-100% + 4px)); z-index: 50; border-bottom: 4px solid; } #sonaar-player .player .mobilePanel .sonaar-extend-button { position: absolute; top: 0; right: 0; } #sonaar-player .player .control { padding: 0; margin: 0; list-style: none; display: flex; justify-content: flex-start; flex-wrap: wrap; } #sonaar-player .player .control .control--item { position: relative; text-align: center; padding: 0 5px; margin: 0 5px; width: 30px; min-width: 30px; height: 100%; cursor: pointer; opacity: 1; display: flex; justify-content: center; align-items: center; } @media only screen and (max-width: 860px) { #sonaar-player .player .control { margin-right: 20px; } } @media only screen and (max-width: 767px) { #sonaar-player .player .control { margin-right: 15px; } } @media only screen and (max-width: 540px) { #sonaar-player .player .control { min-width: 60px; margin-right: 0; } } @media only screen and (max-width: 860px) { #sonaar-player .player .sr_progressbar_sticky { display: none !important; } } #sonaar-player .sr_progressbar_sticky { width: auto; position: relative; display: flex; flex: 1; align-items: center; margin: 0 5px; } #sonaar-player .sr_progressbar_sticky .timing { font-variant-numeric: tabular-nums; width: 100%; display: flex; flex-direction: row; align-items: center; justify-content: space-between; font-size: 11px; line-height: 1em; } #sonaar-player .sr_progressbar_sticky .sr-progress { width: calc(100% - 200px); position: absolute; height: 90px; left: 75px; bottom: 0; } #sonaar-player .sr_progressbar_sticky .sr-progress .sr-wavebar { position: absolute; height: 1px; left: 0; top: 50%; } #sonaar-player .sr_progressbar_sticky .sr-progress .progress_totalTime { width: 100%; } #sonaar-player .sr_progressbar_sticky .sr-progress .progress_currentTime { height: 3px; top: calc(50% - 1px); } #sonaar-player .sr_progressbar_sticky .sr-progress .skip { width: 100%; height: 100%; position: absolute; top: 0; left: 0; } #sonaar-player .sr_progressbar_sticky #sPlayer { display: flex; align-items: center; height: 100%; opacity: 0; transition: all 3000ms ease; overflow: hidden; width: calc(100% - 100px); max-height: calc(100% - 6px); left: 47px; } #sonaar-player .sr_progressbar_sticky #sPlayer.sr_hide { opacity: 0; } #sonaar-player .sr_progressbar_sticky #sPlayer.reveal { opacity: 1; } #sonaar-player .progressLoading { background: rgba(255, 255, 255, 0.25); width: 0%; height: 1px; box-shadow: 0 0 2px rgba(255, 255, 255, 0.5); width: calc(100% - 562px); position: absolute; left: 552px; top: 45px; transition: opacity 3000ms ease; } #sonaar-player .wave { position: absolute; left: 30px; } #sonaar-player .wave wave { transition: width 400ms; width: 100%; position: absolute; overflow-x: hidden !important; } #sonaar-player.sr-float { bottom: -56px; } @media only screen and (min-width: 541px) { #sonaar-player.sr-float .player .mobilePanel { border-width: 0; transform: unset; top: 3px; } } @media only screen and (max-width: 540px) { #sonaar-player.sr-float .player .mobilePanel { transform: translateY(calc(-100% + 5px)); border-width: 5px; } } #sonaar-player.sr-float .close.btn-player rect { fill: #fff; } #sonaar-player.sr-float .control .control--item.list.sricon-list { font-size: 18px; } #sonaar-player.sr-float .control .sricon-back, #sonaar-player.sr-float .control .sricon-forward, #sonaar-player.sr-float .control .sricon-play { font-size: 17px; } #sonaar-player .shuffle { width: 20px; } #sonaar-player.hide-track-lenght .playlist .tracklist .track-lenght { display: none; } #sonaar-player.hide-track-category .playlist .tracklist .track-album { display: none; } #sonaar-player .sonaar-extend-button { height: 100%; width: 25px; display: flex; justify-content: center; align-items: center; font-size: 16px; line-height: 16px; text-align: center; margin-right: 5px; cursor: pointer; } @media only screen and (min-width: 1026px) { #sonaar-player .sonaar-extend-button { display: none; } } #sonaar-player .sonaar-extend-button i { position: relative; display: block; } #sonaar-player .mobileProgress { width: 100%; position: absolute; top: -6px; z-index: 10; cursor: pointer; } #sonaar-player .mobileProgress .skip { position: absolute; width: 100%; height: 390%; top: -130%; z-index: 10; } @media only screen and (min-width: 861px) { #sonaar-player .mobileProgress { display: none; } } #sonaar-player .mobileProgressing { height: 6px; position: relative; } #sonaar-player .mobileProgressing:after { content: ''; position: absolute; top: 0; left: 0; height: 100%; width: 100%; } #sonaar-player .progressDot { height: 10px; width: 10px; border-radius: 5px; position: absolute; top: 50%; left: 0; transform: translate(-50%, -50%); display: none; } body:not(.continuousPlayer-enable) #sonaar-player .progressDot { opacity: 0; } #sonaar-player.sr-float:not(.show-list), #sonaar-player.sr-float .player { height: 50px; } #sonaar-player.sr-float:not(.sr_hide):not([v-cloak]) { display: flex !important; left: unset; } #sonaar-player.sr-float { background-color: unset; /* .store .track-store li{ @media only screen and (min-width: 1026px){ a{ font-size: 8px; i{ font-size: 12px; } } } }*/ } #sonaar-player.sr-float:not(.srp_ext_opened) { pointer-events: none; } #sonaar-player.sr-float.sr-pos--left { justify-content: flex-start; } #sonaar-player.sr-float.sr-pos--center { justify-content: center; } #sonaar-player.sr-float.sr-pos--right { justify-content: flex-end; } #sonaar-player.sr-float.audio-playing .player.audio-playing:hover .mobileProgress { display: block; opacity: 1; } @media only screen and (max-width: 861px) { #sonaar-player.sr-float.audio-playing .player.audio-playing.audio-playing .mobileProgress { display: block; opacity: 1; } } #sonaar-player.sr-float .player { pointer-events: all; margin: 20px; left: unset; border-radius: 10px; width: auto; border-width: 0px; } #sonaar-player.sr-float .player .control .control--item { margin: 0 1px; } @media only screen and (min-width: 861px) { #sonaar-player.sr-float .player.sr-show_controls_hover { transition: 800ms width; width: 342px; } #sonaar-player.sr-float .player.sr-show_controls_hover:hover { width: 100%; } #sonaar-player.sr-float .player.sr-show_controls_hover:hover .playerNowPlaying { width: 270px; } #sonaar-player.sr-float .player.sr-show_controls_hover .player-row { display: flex; justify-content: flex-end; } #sonaar-player.sr-float .player.sr-show_controls_hover .playerNowPlaying { position: absolute; width: 300px; height: 100%; left: 0; transition: 800ms width; z-index: 2; } } @media only screen and (max-width: 861px) { #sonaar-player.sr-float .player.sr-show_controls_hover { width: calc(100% - 20px) !important; transform: unset !important; } } #sonaar-player.sr-float .player:hover .close.btn-player { opacity: 1; } #sonaar-player.sr-float .player .mobileProgress { transition: 400ms; top: unset; bottom: -8px; width: 100%; left: 0px; } #sonaar-player.sr-float .player .mobileProgressing { height: 3px; } #sonaar-player.sr-float .sr_progressbar_sticky { display: none; } #sonaar-player.sr-float .playlist { pointer-events: all; height: 100%; } #sonaar-player.sr-float .album-art img:last-child { border-radius: 10px 0px 0px 10px; } #sonaar-player.sr-float .playerNowPlaying .metadata { margin: 0 10px; } #sonaar-player.sr-float .playerNowPlaying .metadata .track-album { display: none; } #sonaar-player.sr-float .playerNowPlaying .album-art { margin-left: 0; height: 100%; } @media only screen and (min-width: 1026px) { #sonaar-player.sr-float .sonaar-extend-button { display: flex; } } #sonaar-player.sr-float.enable .store { position: absolute; top: -1px; right: 70px; transform: translateY(-100%); width: auto !important; min-width: 150px; border-radius: 3px; z-index: 10000; display: none; } @media only screen and (max-width: 861px) { #sonaar-player.sr-float.enable .store { right: 10px; } } #sonaar-player.sr-float.enable .store .track-store { font-size: 14px; list-style: none; margin: 0; padding: 0; } #sonaar-player.sr-float.enable .store .track-store li { border: none; display: block; padding: 7px; } #sonaar-player.sr-float.enable .store .track-store li a { text-decoration: none; display: block; text-align: right; color: inherit !important; background-color: inherit !important; } #sonaar-player.sr-float.enable .store .track-store li a .fa { display: inline-block; padding-right: 10px; font-size: 1.4em; } #sonaar-player.sr-float.enable .store .track-store li a i { margin-right: 6px; } #sonaar-player.sr-float.enable .store .track-store li + li { border-top: 1px solid rgba(138, 138, 138, 0.25); } #sonaar-player.sr-float.enable .store.opened { display: block; animation: showElement 0.25s ease-in-out both; } #sonaar-player.sr-float.enable .store:not(.opened) { animation: hideElement 0.25s ease-in-out both; } @media only screen and (max-width: 861px) { #sonaar-player.sr-float .player { width: calc(100% - 20px); max-width: unset; margin: 10px; } #sonaar-player.sr-float .player .close.btn-player.enable { opacity: 1; } #sonaar-player.sr-float .player .mobileProgress { opacity: 0; bottom: 0px; } } @media only screen and (min-width: 861px) { #sonaar-player.sr-float .mobileProgress { display: block; opacity: 0; } } @media only screen and (max-width: 540px) { #sonaar-player.sr-float .player .control { min-width: 42px; } } #sonaar-player.sr-float:not(.enable) .player { transition-delay: 350ms; width: 100% !important; max-width: 100%; margin: 0px; top: 0px !important; left: 0px !important; } #sonaar-player.sr-float .close.btn-player { right: 0px; top: 0px; } #sonaar-player.sr-float .close.btn-player.enable { transition: 400ms; opacity: 0; width: 17px; height: 15px; } #sonaar-player.sr-float .close.btn-player.enable:before, #sonaar-player.sr-float .close.btn-player.enable:after { height: 7px; top: 5px; } #sonaar-player.sr-float .close.btn-player.enable:before { left: 10px; } #sonaar-player.sr-float .close.btn-player.enable:after { left: 6px; } #sonaar-player.sr-fullwidth .sonaar_wave_base, #sonaar-player.sr-fullwidth .sonaar_wave_cut { height: 40px; } #sonaar-player.sr-mini_fullwidth:not(.show-list), #sonaar-player.sr-mini_fullwidth .player { height: 42px; } #sonaar-player.sr-mini_fullwidth { bottom: -48px; } #sonaar-player.sr-mini_fullwidth .player { border-width: 2px; } #sonaar-player.sr-mini_fullwidth .player .control .control--item { margin: 0 1px; } #sonaar-player.sr-mini_fullwidth .mobileProgress { top: -3px; } #sonaar-player.sr-mini_fullwidth .mobileProgressing { height: 3px; } #sonaar-player.sr-mini_fullwidth .playerNowPlaying .metadata { margin: 0 10px; } #sonaar-player.sr-mini_fullwidth .playerNowPlaying .metadata .track-album { display: none; } #sonaar-player.sr-mini_fullwidth .playerNowPlaying .album-art { margin-left: 0; height: 100%; } @media only screen and (min-width: 1026px) { #sonaar-player.sr-mini_fullwidth .store .track-store li a { font-size: 8px; } #sonaar-player.sr-mini_fullwidth .store .track-store li a i { font-size: 12px; } } @media only screen and (max-width: 540px) { #sonaar-player.sr-mini_fullwidth .player .control { min-width: 42px; } } #sonaar-player.sr-mini_fullwidth .close.btn-player.enable { width: 17px; height: 19px; } #sonaar-player.sr-mini_fullwidth .close.btn-player.enable:before, #sonaar-player.sr-mini_fullwidth .close.btn-player.enable:after { height: 7px; top: 5px; } #sonaar-player.sr-mini_fullwidth .close.btn-player.enable:before { left: 10px; } #sonaar-player.sr-mini_fullwidth .close.btn-player.enable:after { left: 6px; } #sonaar-player.sr-mini_fullwidth .sonaar_wave_base, #sonaar-player.sr-mini_fullwidth .sonaar_wave_cut { height: 27px; } #sonaar-player.sr-mini_fullwidth .control .control--item.list.sricon-list { font-size: 18px; } #sonaar-player.sr-mini_fullwidth .control .sricon-back, #sonaar-player.sr-mini_fullwidth .control .sricon-forward, #sonaar-player.sr-mini_fullwidth .control .sricon-play { font-size: 17px; } #sonaar-player .sr_skipBackward { margin-left: 15px; margin-right: 5px; } #sonaar-player .sr_skipForward { margin-right: 15px; margin-left: 5px; } #sonaar-player .sr_speedRate { margin: 0 20px 0 5px; } #sonaar-player .sr_speedRate div { color: #000; background: #fff; } .sr_skip_number { font-size: 10px; font-weight: 600; line-height: 1; position: absolute; } .sr_skipBackward, .sr_skipForward { font-size: 22px; cursor: pointer; user-select: none; display: flex; align-items: center; justify-content: center; } .sr_speedRate { display: flex; align-items: center; justify-content: center; font-weight: 400; font-size: 12px; line-height: 1; cursor: pointer; } .sr_speedRate div { color: #fff; background: #000; padding: 3px; text-align: center; border-radius: 3px; user-select: none; } #sonaar-player .sr_speedRate:not(.active) div { opacity: 0.5; } #sonaar-player [class*="sricon-"]::before { margin-left: 0; margin-right: 0; } #sonaar-player.audio-playing .control .sricon-play:before { content: '\e81c'; } #sonaar-player .control .sricon-back, #sonaar-player .control .sricon-forward, #sonaar-player .control .sricon-shuffle { font-size: 19px; } #sonaar-player .control .sricon-play { font-size: 26px; } #sonaar-player .control .control--item.list.sricon-list { padding: 0; margin: 0 10px; font-size: 20px; } #sonaar-player .sricon-volume { font-size: 22px; } #sonaar-player.srp_mobile > .srp_spectrum_container { display: none !important; } .sricon-shuffle.active:before { content: '\e82d'; } .sricon-volume.active:before, .iron-audioplayer[data-mute="true"] .sricon-volume:before { content: '\e826'; } #sonaar-player div.volume { padding: 0 20px; } @media only screen and (max-width: 860px) { #sonaar-player div.volume { display: none; } } #sonaar-player .volume, .iron-audioplayer .volume { display: flex; align-items: center; } #sonaar-player .volume .slider-container, .iron-audioplayer .volume .slider-container { position: absolute; width: 30px; height: 100px; left: 50%; top: 0px; transform: translate(-50%, -100%); background: #fff; z-index: 200; border: 1px solid #bbb; box-shadow: 1px 1px 5px rgba(0, 0, 0, 0.5); border-radius: 1px; display: none; } #sonaar-player .volume .slider-container .slide, .iron-audioplayer .volume .slider-container .slide { width: 100%; height: 70px; position: absolute; top: 20px; cursor: pointer; } #sonaar-player .volume .slider-container .slide:before, .iron-audioplayer .volume .slider-container .slide:before { content: ""; position: absolute; width: 1px; height: 100%; left: 50%; top: -5px; opacity: 0.5; } #sonaar-player .volume .slider-container .ui-slider-range, .iron-audioplayer .volume .slider-container .ui-slider-range { position: absolute; width: 2px; height: 60%; bottom: 0; left: calc(50% - 1px); } #sonaar-player .volume .slider-container .ui-slider-handle, .iron-audioplayer .volume .slider-container .ui-slider-handle { width: 7px; height: 7px; border-radius: 100%; position: absolute; left: calc(50% - 3px); cursor: pointer; } #sonaar-player .volume .slider-container .trigger, .iron-audioplayer .volume .slider-container .trigger { height: calc(100% - 20px); width: 100%; top: 10px; position: absolute; } #sonaar-player .volume .slider-container:before, .iron-audioplayer .volume .slider-container:before { width: 0; height: 0; border: none; border-left: 5px solid transparent; border-right: 5px solid transparent; border-top: 5px solid #bbb; content: ""; position: absolute; bottom: -6px; left: 50%; transform: translate(-50%); } #sonaar-player .volume .slider-container:after, .iron-audioplayer .volume .slider-container:after { width: 0; height: 0; border: none; border-left: 5px solid transparent; border-right: 5px solid transparent; border-top: 6px solid #fff; content: ""; position: absolute; bottom: -5px; left: 50%; transform: translate(-50%); } #sonaar-player .volume .sricon-volume, .iron-audioplayer .volume .sricon-volume { display: initial; width: 22px; max-height: calc(90% - 12px); cursor: pointer; position: relative; line-height: 0; } #sonaar-player .volume .sricon-volume:hover .slider-container, .iron-audioplayer .volume .sricon-volume:hover .slider-container { display: block; } .iron-audioplayer .sr-cf-heading { position: relative; align-items: center; column-gap: 10px; display: flex; overflow: hidden; width: auto; padding-bottom: 10px; font-weight: 600; text-transform: uppercase; border-bottom: 1px solid #ffffff21; } .iron-audioplayer .sr-cf-heading.srmp3-heading--hide { display: none !important; } .iron-audioplayer .sr-cf-heading .srp_sort.asc::after { content: "\002B06"; font-size: 10px; padding-left: 3px; } .iron-audioplayer .sr-cf-heading .srp_sort.desc::after { content: "\002B07"; font-size: 10px; padding-left: 3px; } .iron-audioplayer .sr-cf-heading .sr-playlist-heading-child { pointer-events: auto; cursor: pointer; justify-content: left; align-items: center; overflow: hidden; text-overflow: ellipsis; text-align: left; white-space: nowrap; font-size: 11px; width: 100%; } .iron-audioplayer.srp_has_customfields.srp_tracklist_grid .srp_tracklist_waveform_enabled .tracklist-item-title { flex: 1; } .iron-audioplayer.srp_has_customfields .tracklist-item-title { flex: 1; } .iron-audioplayer.srp_has_customfields .srp_tracklist_waveform_enabled .tracklist-item-title { flex: 0 0 250px; } .iron-audioplayer.srp_has_customfields .srp_tracklist_waveform_enabled .audio-track { overflow: hidden; flex: 1 1 fit-content; } .iron-audioplayer.srp_has_customfields .srp_tracklist_waveform_enabled .sr-playlist-cf-container { flex: 0 1 fit-content; } .iron-audioplayer.srp_has_customfields .sr-playlist-item { overflow-x: hidden; } .iron-audioplayer.srp_has_customfields .srp_audio_trigger .audio-track { width: 10%; } .iron-audioplayer.srp_has_customfields .sr-playlist-cf-container { align-items: center; font-size: 11px; flex: 1; display: flex; overflow: hidden; justify-content: space-evenly; column-gap: 10px; font-size: 0.8em; } .iron-audioplayer.srp_has_customfields .sr-playlist-cf-container .sr-playlist-cf-child { justify-content: left; overflow: hidden; text-overflow: ellipsis; text-align: left; width: 100%; align-items: center; } .iron-audioplayer.srp_has_customfields .sr-playlist-cf-container .sr-playlist-cf-child img { margin-right: 5px; max-height: 20px; } .iron-audioplayer.srp_has_customfields .sr-playlist-cf-container .sr-playlist-cf-child i { margin-right: 5px; } .iron-audioplayer.srp_has_customfields .audio-track { flex: 0 1 var(--srp-global-column-title-width); } .iron-audioplayer.srp_has_customfields .sr-playlist-cf-container { flex: 0 1 calc(100% - var(--srp-global-column-title-width)); } .iron-audioplayer.srp_has_customfields:not(.srp_tracklist_grid) .sr-playlist-item:not(.srp_extended) .song-store-list-menu { max-width: var(--srp-global-cta-desktop); } .iron-audioplayer.srp_has_customfields .sr-playlist-item.srp_extended .song-store-list-menu { max-width: 999px; } .iron-audioplayer.srp_has_customfields .sr-playlist-item .store-list { flex: 0 0 var(--srp-global-cta-desktop); align-items: center; } .iron-audioplayer.srp_has_customfields:not(.srp_tracklist_grid) .playlist .store-list .song-store-list-menu { justify-content: flex-start !important; width: var(--srp-global-cta-desktop); overflow: hidden; position: absolute !important; right: 0; } .iron-audioplayer.srp_has_customfields .srp_list:not(.srp_contentLoading) .song-store-list-menu { transition: 0.2s ease; } .iron-audioplayer.srp_has_customfields.playlist_has_no_ctas .store-list { display: none; } .iron-audioplayer.srp_has_customfields.srp_responsive .sr-playlist-item .store-list { flex: 0 0 var(--srp-global-cta-mobile); } .iron-audioplayer.srp_has_customfields.srp_responsive .playlist .store-list .song-store-list-menu { width: var(--srp-global-cta-mobile); } .iron-audioplayer.srp_has_customfields .store-list .srp_ellipsis { font-size: 14px; transition: 0.15s; top: 50%; transform: translateY(-50%); } .iron-audioplayer.srp_has_customfields .srp_extended .srp_ellipsis { opacity: 0; } .iron-audioplayer.srp_has_customfields .sr-playlist-item:not(.srp_extendable) .srp_ellipsis { display: none; } .iron-audioplayer .srp_search_main { padding-bottom: 20px; } .iron-audioplayer .playlist ul.srp_pagination { height: auto !important; } .iron-audioplayer .playlist ul .ps__rail-y { height: 0px !important; } .iron-audioplayer:not(.srp_has_customfields) .playlist.srp_tracklist_waveform_enabled .tracklist-item-title { flex: 0 1 350px; } .iron-audioplayer .ui-slider-handle, .iron-audioplayer .ui-slider-range { background: #000; } .iron-audioplayer .sr_skip_number { font-size: 8px; line-height: 11px; } .iron-audioplayer .sr-playlist-item[data-post-url]:not([data-post-url=""]) .sr_track_cover { cursor: pointer; } .iron-audioplayer[data-playertemplate="skin_boxed_tracklist"] .sr_shuffle { display: flex; } .iron-audioplayer[data-playertemplate="skin_boxed_tracklist"] .sr_speedRate { font-size: 8px; line-height: 9px; font-weight: 600; } .iron-audioplayer[data-playertemplate="skin_boxed_tracklist"] .sr_speedRate div { border-width: 1.5px; } .iron-audioplayer[data-playertemplate="skin_boxed_tracklist"] .sr_mute, .iron-audioplayer[data-playertemplate="skin_boxed_tracklist"] .sr_unmute { width: 18px; } .iron-audioplayer[data-playertemplate="skin_boxed_tracklist"] .srp_wave_box.srp_progressbar_inline { display: flex; flex-wrap: wrap; } .iron-audioplayer[data-playertemplate="skin_boxed_tracklist"] .srp_wave_box.srp_progressbar_inline .player { margin-right: 15px; flex-grow: 1; width: unset; } .iron-audioplayer[data-playertemplate="skin_boxed_tracklist"] .srp_wave_box.srp_progressbar_inline .player .sr_progressbar { width: auto; } .iron-audioplayer.audio-playing .srp_player_boxed .sricon-play:before { content: '\e81c'; } .iron-audioplayer.srp_favorites_loading .srp-fav-bt { opacity: 0.3; } .iron-audioplayer .srp-fav-bt { transition: opacity 0.2s; } .sr_mute { display: none; } .iron-audioplayer[data-mute="true"] .sr_unmute { display: none; } .iron-audioplayer[data-mute="true"] .sr_mute { display: initial; } .sr_shuffle { cursor: pointer; } .iron-audioplayer[data-shuffle="true"] .control .sricon-shuffle:before { content: '\e82d'; } .continuousPlayer-enable #srmp3_lyricsplaying_container { transition: 200ms; bottom: 90px; } @media only screen and (max-width: 540px) { .continuousPlayer-enable #srmp3_lyricsplaying_container { bottom: 62px; } } @media only screen and (max-width: 768px) { .srp_sticky_ext_opened.continuousPlayer-enable #srmp3_lyricsplaying_container { bottom: 0px; z-index: 10100; } .srp_sticky_ext_opened.continuousPlayer-enable #srmp3_lyrics_container { z-index: 10050; } } #srmp3_lyricsplaying_container { cursor: pointer; display: flex; justify-content: center; align-items: flex-end; max-width: 100%; width: 100%; bottom: 0px; position: fixed; z-index: 8000; } .srmp3_lyrics tt { font-family: inherit; } .srmp3_lyrics p[begin] { margin-bottom: 1em; } @media only screen and (max-width: 540px) { .srmp3_lyrics p[begin] { margin-bottom: 0.7em; } } .srmp3_lyrics p[begin] { transition: color 1s ease; } .srmp3_lyrics_container { pointer-events: none; padding: 4px 10px; display: flex; justify-content: center; text-align: center; color: #fff; background-color: #000; font-style: italic; font-size: 21px; } .srmp3_lyrics_container:before, .srmp3_lyrics_container:after { content: '♪'; margin: 0px 8px; } #srmp3_lyrics_container { position: fixed; color: #575757; background-color: #000; top: 0px; width: 100%; height: 100%; padding: 100px; text-align: left; z-index: 7999; } #srmp3_lyrics_container .srmp3_lyrics { font-size: 48px; font-weight: 700; line-height: 1em; height: calc(100vh - 320px); top: 100px; margin-top: 20px; overflow-y: hidden; } #srmp3_lyrics_container .srmp3_lyrics .ps__rail-y { height: 0px !important; } @media only screen and (max-width: 540px) { #srmp3_lyrics_container .srmp3_lyrics { font-size: 24px; line-height: 1em; height: calc(100vh - 150px); } } #srmp3_lyrics_container .srmp3_lyrics_title { color: #fff; font-size: 24px; } @media only screen and (max-width: 540px) { #srmp3_lyrics_container .srmp3_lyrics_title { font-size: 18px; } } #srmp3_lyrics_container .srmp3_lyrics_album { color: #a7a7a7; font-size: 18px; } @media only screen and (max-width: 540px) { #srmp3_lyrics_container { padding: 30px; bottom: 50px; } } #srmp3_lyrics_container .sricon-close-circle { position: absolute; top: 50px; right: 50px; font-size: 48px; line-height: 1; cursor: pointer; } @media only screen and (max-width: 767px) { #srmp3_lyrics_container .sricon-close-circle { top: 25px; right: 25px; } } @media only screen and (max-width: 767px) { #srmp3_lyrics_container .srmp3_lyrics_album, #srmp3_lyrics_container .srmp3_lyrics_title { padding-right: 25px; } } .srp_player_boxed .srp_note { position: absolute; top: 10px; left: 10px; height: 100%; max-height: calc(100% - 20px); width: calc(100% - 20px); overflow-y: auto; } .srp_player_boxed .srp_note h1 { width: calc(100% - 35px); } .srp_note { position: relative; background: #fff; color: #000; width: 100%; z-index: 25; padding: 25px; border-radius: 4px; } .sr-playlist-item .srp_note { margin-top: 10px; } .srp_note ul { margin: inherit !important; padding: 15px !important; height: initial !important; overflow-y: visible !important; overflow-x: visible !important; } .srp_note ul li { list-style: disc !important; padding: initial !important; } .srp_note .sr_close { top: 20px; right: 20px; } .sr-playlist-item .srp_note .sr_close { display: none; } .srp_note_title, .srp-modal-title { font-size: 1.7em; line-height: 1.2; font-weight: inherit; color: inherit; margin-bottom: 1rem; } .srp-modal-subtitle { font-size: 1.2em; line-height: 1.2; font-weight: inherit; color: inherit; margin-bottom: 1rem; } .srp-modal-product-desc { margin-bottom: 1rem; } @media only screen and (max-width: 450px) { #sonaar-player[data-ui-items="1"] .playerNowPlaying { width: calc(100% - 50px); } #sonaar-player[data-ui-items="2"] .playerNowPlaying { width: calc(100% - 100px); } #sonaar-player[data-ui-items="3"] .playerNowPlaying { width: calc(100% - 150px); } #sonaar-player[data-ui-items="4"] .playerNowPlaying { width: calc(100% - 200px); } #sonaar-player .playerNowPlaying { width: calc(100% - 75px); } #sonaar-player[data-ui-items="1"] .playerNowPlaying.no-image { width: calc(100% - 45px); } #sonaar-player[data-ui-items="2"] .playerNowPlaying.no-image { width: calc(100% - 75px); } #sonaar-player[data-ui-items="3"] .playerNowPlaying.no-image, #sonaar-player[data-ui-items="4"] .playerNowPlaying.no-image { width: calc(100% - 115px); } #sonaar-player .playerNowPlaying.no-image { width: 100%; } #sonaar-player .playerNowPlaying.no-image .metadata { width: 100%; } } .sonaar-player-slidefade-enter-active { transition: 800ms all ease; } .sonaar-player-slidefade-leave-active { transition: all 0.4s ease; } .sonaar-player-slidefade-enter { transform: scale(0.8); opacity: 0; } .sonaar-player-slidefade-leave-to { opacity: 0; } @media only screen and (max-width: 1025px) { .sonaar-player-storefade-enter-active { transition: all 0.03s ease; } } @media only screen and (max-width: 1025px) { .sonaar-player-storefade-leave-active { transition: all 0.03s ease; } } @media only screen and (max-width: 1025px) { .sonaar-player-storefade-enter { transform: translateY(70px); } } @media only screen and (max-width: 1025px) { .sonaar-player-storefade-leave-to { transform: translateY(70px); } } .woocommerce-page.single-product .iron-audioplayer .srp_tracklist { margin: 0px; } @media (max-width: 991px) { .woocommerce-page.single-product .iron-audioplayer .playlist { margin-top: 0px; } } .woocommerce-LoopProduct-link .tracklist-item-time { display: none; } .woocommerce-LoopProduct-link .iron-audioplayer .player .wave { margin: 0px 0px; } .woocommerce-LoopProduct-link .iron-audioplayer .sonaar-Artwort-box { margin-bottom: initial; } .woocommerce ul.products li.product a .album-art img { margin: 0px; } .woocommerce .iron-audioplayer .playlist .audio-track { text-align: left; } .woocommerce ul.products li.product.srmp3-product.srmp3-product__hideimage a img.attachment-woocommerce_thumbnail, .woocommerce ul.products li.product.srmp3-product.srmp3-product__hideimage a img.woocommerce-placeholder { display: none; } @media only screen and (min-width: 540px) { #pusher-wrap.sonaar-list-active { -webkit-animation: blur 0.5s linear forwards; -moz-animation: blur 0.5s linear forwards; -ms-animation: blur 0.5s linear forwards; -o-animation: blur 0.5s linear forwards; animation: blur 0.5s linear forwards; } } @-webkit-keyframes blur { from { -webkit-filter: blur(0); filter: blur(0); } to { -webkit-filter: blur(20px); filter: blur(20px); } } @-moz-keyframes blur { from { -webkit-filter: blur(0); filter: blur(0); } to { -moz-filter: blur(20px); filter: blur(20px); } } @keyframes blur { from { -webkit-filter: blur(0); filter: blur(0); } to { -webkit-filter: blur(20px); -moz-filter: blur(20px); filter: blur(20px); } } .sonaar-list-active #pusher { overflow-y: hidden; overflow-x: hidden; height: 100vh; } /* * Container style */ .srp_tracklist .ps, .srmp3_lyrics.ps { height: 250px; overflow: hidden !important; overflow-anchor: none; -ms-overflow-style: none; touch-action: auto; -ms-touch-action: auto; } .srp-modal-medium-size { max-width: 100%; width: 800px; } .srp-modal-variant-file { text-transform: uppercase; font-size: 0.8em; font-weight: 700; } .srp-license-preview-modal .srp_variant_terms { margin-top: 35px; margin-bottom: 20px; padding-bottom: 20px; border-bottom: 1px solid rgba(255, 255, 255, 0.08); } .srp_variant_terms .view-license-button { width: 100%; } .srp-modal-share { max-width: 100%; width: 600px; } .srp-modal-share .srp-share-title { margin: 0 28px 0 0; padding: 0; font-size: 21px; font-weight: 600; white-space: nowrap; text-overflow: ellipsis; overflow: hidden; } .srp-modal-share .srp-share-trackinfo-container { display: flex; align-items: center; justify-content: flex-start; column-gap: 15px; margin: 12px 0 24px; } .srp-modal-share .srp-share-trackinfo-container .srp-share-tracktitle { font-size: 18px; font-weight: 600; overflow: hidden; } .srp-modal-share .srp-share-trackinfo-container .srp-share-img { display: flex; flex-shrink: 0; width: 72px; height: 72px; border-radius: 3px; } .srp-modal-share .srp-modal-sticky-player-container { display: flex; column-gap: 15px; margin-top: 10px; margin-bottom: 10px; align-items: center; } .srp-modal-share .srp-modal-sticky-player-container input#stickyPlayerCheckbox, .srp-modal-share .srp-modal-sticky-player-container input#stickyPlayerTimeCheckbox { width: 15px; height: 15px; } .srp-modal-share .srp-modal-sticky-player-container .srp-modal-sticky-player-label { font-size: 13px; font-weight: 600; text-transform: uppercase; letter-spacing: .8px; } .srp-modal-share .srp-modal-sticky-player-container #stickyPlayerCurrentTime { height: 30px; font-size: 14px; width: 85px; padding: 10px; } .srp-modal-share .srp-modal-linkurl-container .srp-modal-linkurl-label { font-size: 13px; font-weight: 600; text-transform: uppercase; letter-spacing: .8px; } .srp-modal-share .srp-modal-linkurl-container .srp-modal-linkurl-input-container { padding: 0 5px 0 12px; overflow: hidden; border: unset; position: relative; display: flex; align-items: center; width: 100%; height: 44px; border-radius: 5px; background-color: #dfdfdf; margin: 5px 0; } .srp-modal-share .srp-modal-linkurl-container .srp-modal-linkurl-input-container i { margin-left: 0; margin-right: -5px; font-size: 18px; color: #9b9b9b; } .srp-modal-share .srp-modal-linkurl-container .srp-modal-linkurl-input-container input { white-space: nowrap; text-overflow: ellipsis; overflow: hidden; font-size: 14px; width: 100%; height: 100%; padding: 0 15px; font-size: 13px; font-weight: 500; background-color: transparent; border-radius: 5px; box-shadow: none; border: none; } .srp-modal-share .srp-modal-linkurl-container .srp-modal-linkurl-input-container input:focus-visible { outline: unset; } .srp-modal-share .srp-modal-linkurl-container .srp-modal-linkurl-input-container button { color: inherit; background: transparent; box-sizing: border-box; position: relative; -webkit-user-select: none; -moz-user-select: none; -ms-user-select: none; user-select: none; cursor: pointer; outline: none; border: none; -webkit-tap-highlight-color: transparent; display: inline-block; white-space: nowrap; text-decoration: none; vertical-align: baseline; text-align: center; margin: 0; line-height: 36px; padding: 0 16px; border-radius: 4px; overflow: visible; } .srp-modal-share .srp-modal-socialshare-container { display: flex; align-items: flex-start; flex-wrap: wrap; margin-top: 24px; column-gap: 25px; row-gap: 20px; } .srp-modal-share .srp-modal-socialshare-container a { text-decoration: none; color: var(--srp-global-modal-btn-bg-color); font-size: 42px; } .srp-modal-share .srp-modal-socialshare-container a.srp-share-mobile-more i { font-size: 26px; } .srp-modal-share .srp-modal-socialshare-container a.srp-share-mobile-more { display: flex; height: 42px; align-items: center; } /* Woocommerce Variantion Modal*/ .srp-modal-product-variation { /*max-width: 100%; width: 800px;*/ } .srp-modal-product-variation .srp-modal-product-variation-trackinfo-container { display: flex; align-items: center; justify-content: flex-start; column-gap: 15px; margin: 12px 0 24px; } .srp-modal-product-variation .srp-modal-product-variation-trackinfo-container .srp-modal-image { display: flex; flex-shrink: 0; width: 72px; height: 72px; border-radius: 3px; } .srp-modal-product-variation .srp-modal-title { font-weight: 700; } .srp-modal-product-variation .srp-modal-variant-name { font-weight: 500; } .srp-modal-product-variation .srp-modal-subtitle { font-size: 11px; text-transform: uppercase; } .srp-modal-product-variation .srp-modal-variant-desc { font-size: 11px; text-transform: uppercase; margin-top: 10px; } .srp-modal-variation-list { display: flex; flex-wrap: wrap; gap: 10px; grid-template-columns: 1fr 1fr 1fr; margin: 20px 0 50px; } .srp-modal-variant-selector { background-color: #0202022b; border: 1px solid #fff0; border-radius: 8px; padding: 10px 10px; max-width: calc(33% - 7px); min-width: 170px; width: 100%; cursor: pointer; } .srp-modal-variant-selector:hover, .srp-modal-variant-selector.srp_selected { background-color: #02020261; } @media only screen and (max-width: 860px) { .srp-modal-variant-selector { max-width: initial; } } .srp-modal-variant-main { display: flex; column-gap: 12px; row-gap: 10px; align-items: center; justify-content: space-between; flex-wrap: wrap; padding-top: 20px; } .srp-modal-variant-main, .srp_variant_terms { border-top: 1px solid rgba(255, 255, 255, 0.08); } .srp_term_title { font-weight: bold; margin: 10px 0; } .srp_variant_terms_container.srp_variant_terms--column { display: flex; flex-wrap: wrap; column-gap: 15px; } .srp_variant_terms_container.srp_variant_terms--column .srp_variant_terms { max-width: 300px; min-width: 150px; flex: 1; } .srp_variant_terms_container.srp_variant_terms--column .srp_term_meta { width: 100%; } .srp_term_meta_list { display: flex; flex-wrap: wrap; align-items: center; } .srp_term_meta { display: flex; align-items: center; width: calc(100% / 3); height: 60px; font-size: 0.9rem; } .srp_term_meta:before { font-size: 22px; } @media only screen and (max-width: 860px) { .srp_term_meta { width: 50%; } } .srp_term_meta i[class*=" fa-"] { font-family: 'Font Awesome 5 Free'; font-style: unset; } .srp_term_meta_label { padding: 0 5px; font-size: 0.8em; text-transform: uppercase; } .srp-modal-variant-price { flex-grow: 1; font-size: 1.3em; font-weight: bold; line-height: 1; } .srp-modal-custom-link a { text-decoration: unset; font-size: 16px; font-weight: 600; color: var(--srp-global-modal-btn-bg-color); } .srp-modal-custom-link a:hover { color: var(--srp-global-modal-btn-bg-color); filter: brightness(0.5); } .srp-modal-custom-link i { margin-right: 5px; } .srp-modal-variation-details:not(.srp_selected) { display: none; } .srp-modal-variation-details .srp-modal-variant-price { font-size: 1.8em; } .srp_reg_price { text-decoration: line-through; opacity: 0.7; } .srmp3_button_launcher_style-round .srmp3_sonaar_ts_shortcode.srmp3_sonaar_ts_shortcode_button { width: 200px; height: 200px; border-radius: 50% !important; display: flex !important; align-items: center; justify-content: center; } .srmp3_sonaar_ts_shortcode.sricon-play::before { vertical-align: middle; font-size: 0.75em; text-decoration: none; margin: 0em 0.2em 0.22em 0em; /* margin-bottom: 0.2em!important; margin-right: 0.2em;*/ } .srmp3_sonaar_ts_shortcode.srmp3_sonaar_ts_shortcode_button { background-color: #000; border-radius: 4px; padding: 5px 15px; color: #fff; text-decoration: none !important; width: fit-content; } .srmp3_sonaar_ts_shortcode.srmp3_sonaar_ts_shortcode_button.srmp3_sonaar_ts--block { display: block; } .srp_button { color: inherit; text-decoration: inherit; display: inline-block; padding: 10px 30px; border-radius: 4px; background-color: #0170b9; } .srp_button:hover { filter: brightness(0.7); } .srp_button .fas.fa-cart-plus { font-family: 'Font Awesome 5 Free'; font-weight: 900; } .srp_button i { padding-right: 10px; } .srp_button.added:after { font-family: WooCommerce; content: "\e017"; margin-left: 0.53em; vertical-align: bottom; } #sonaar-player .tracklist .wc-forward { font-size: 0.8em !important; } #sonaar-player .player-row .wc-forward { position: absolute; color: #000 !important; display: block; background: #fff; padding: 10px; border: 1px #000 solid; top: -42px; } .woocommerce .iron-audioplayer .sr-playlist-item .wc-forward { padding-top: 0px; } .srmp3_sonaar_ts_shortcode.sricon-play.audio-playing:before { content: '\e81c'; } .srmp3_sonaar_ts_shortcode.audio-playing .srp_ts_content { display: none; } .srmp3_sonaar_ts_shortcode:not(.audio-playing) .srp_ts_content_pause { display: none; } /* .sr_track_inline_cta_bt__no .srp_has_customfields .store-list{ flex: initial !important; } */ .srp_hidden.sr-playlist-cf-child, .srp_hidden.srp_sort { opacity: 0; z-index: -1; pointer-events: none; position: absolute; } .srp_filter_error { color: red; font-family: sans-serif; font-size: 12px; line-height: 16px; margin-top: 10px; } .srp-filters-container { display: flex; justify-content: start; column-gap: 12px; width: 100%; row-gap: 12px; flex-wrap: wrap; align-items: start; } .srp-filters-container input.multiselect__input { color: inherit; margin: 0px; border: none; padding: inherit; transition: unset; } .srp-filters-container .srp-filters-widget { font-size: 16px; width: 200px; } .srp-filters-container .multiselect { color: inherit; } .srp-filters-container .multiselect .multiselect__select { height: 100%; width: 100%; display: flex; justify-content: flex-end; align-items: center; padding: 0 15px; } .srp-filters-container .multiselect .multiselect__select:before { position: static; margin-top: 0; -webkit-transition: -webkit-transform 0.2s ease; transition: -webkit-transform 0.2s ease; transition: transform 0.2s ease; transition: transform 0.2s ease, -webkit-transform 0.2s ease; -webkit-transform: rotateZ(270deg); transform: rotateZ(270deg); } .srp-filters-container .multiselect.multiselect--active .multiselect__select { -webkit-transform: unset; transform: unset; } .srp-filters-container .multiselect.multiselect--active .multiselect__select:before { -webkit-transform: rotateZ(360deg); transform: rotateZ(360deg); } .srp-filters-container .multiselect__placeholder { color: inherit; margin-bottom: initial; padding-top: initial; } .srp-filters-container .multiselect--active { z-index: 2; } .srp-filters-container .srp-filters-widget .multiselect--active .multiselect__placeholder { display: inline-block; } .srp-filters-container .multiselect__single { margin-bottom: 0px; } .srp-filters-container .multiselect__single, .srp-filters-container .multiselect__multiple { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } .srp-filters-container .multiselect__input, .srp-filters-container .multiselect__single { background: unset; } .srp-filters-container .multiselect__tags { display: flex; align-items: center; padding: 10px; white-space: nowrap; overflow: hidden; color: #000; background-color: #fff; } .srp-filters-container .multiselect__content-wrapper { position: absolute; margin-top: -1px; width: inherit; padding: 10px; font-size: 14px; color: #fff; background: #000; } .srp-filters-container .multiselect__content-wrapper ul.multiselect__content { color: inherit; width: inherit; } .srp-filters-container .multiselect__content-wrapper li.multiselect__element { color: inherit; } .srp-filters-container .multiselect__content-wrapper li.multiselect__element:not(:nth-last-child(3)) { border-bottom: 1px solid #ffffff29; } .srp-filters-container .multiselect__option { display: flex; min-height: initial; padding: 12px 5px; } .srp-filters-container .multiselect__option span { overflow: hidden; text-overflow: ellipsis; } .srp-filters-container .multiselect__option, .srp-filters-container .multiselect__tags, .srp-filters-container .multiselect, .srp-filters-container .multiselect__input, .srp-filters-container .multiselect__single { font-size: inherit; font-family: inherit; font-weight: inherit; line-height: inherit; } .srp-filters-container .multiselect__option--selected { font-weight: inherit; color: inherit; background: unset; } .srp-filters-container .multiselect__option--selected.multiselect__option--highlight { color: inherit; background: unset; } .srp-filters-container .multiselect__option--selected.multiselect__option--highlight:after { color: inherit; background: unset; } .srp-filters-container .multiselect__option:after { font-size: inherit; } .srp-filters-container .multiselect__option--selected::after { content: "✓" !important; margin-left: 20px; color: inherit; } .srp-filters-container .multiselect__option:hover { background: #cccccc2b; border-radius: 6px; color: inherit; } .srp-filters-container .multiselect__option--highlight { background: unset; color: inherit; } .srp_range_wrapper { width: 100%; display: flex; column-gap: 10px; flex-wrap: wrap; } .srp_range_wrapper .srp_range_container { width: 200px; flex-grow: 1; margin-bottom: 10px; padding: 20px; background-color: #fff; border-radius: 4px; /* process style */ } .srp_range_wrapper .srp_range_container .srp_range_header { margin-bottom: 10px; display: flex; font-size: 14px; flex-wrap: wrap; column-gap: 10px; justify-content: space-between; align-items: center; } .srp_range_wrapper .srp_range_container .vue-slider-process { background-color: var(--e-global-color-primary, #000); border-radius: 15px; } .srp_range_wrapper .srp_range_container .srp_range_buttons { display: flex; flex-wrap: wrap; justify-content: center; column-gap: 3px; row-gap: 3px; } .srp_range_wrapper .srp_range_container .srp_range_buttons .srp_filter_button { font-size: 11px; padding: 5px 10px; color: #fff; background-color: var(--e-global-color-primary, #000); border: unset; } .srp_range_wrapper .srp_range_container .srp_range_buttons .srp_filter_button:focus { opacity: 0.8; outline: unset; } .srp_range_wrapper .srp_range_container .srp_range_buttons .srp_filter_button:hover { color: #fff; padding: 5px 10px; background-color: var(--e-global-color-primary, #000); } .srp_range_wrapper .vue-slider { margin-bottom: 30px; z-index: 1; } .srp_range_wrapper .vue-slider-mark { z-index: 4; } .srp_range_wrapper .vue-slider-mark:first-child .vue-slider-mark-step, .srp_range_wrapper .vue-slider-mark:last-child .vue-slider-mark-step { display: none; } .srp_range_wrapper .vue-slider-mark-step { width: 100%; height: 100%; border-radius: 50%; background-color: rgba(0, 0, 0, 0.16); } .srp_range_wrapper .vue-slider-mark-label { font-size: 14px; white-space: nowrap; } .srp_range_wrapper .vue-slider-dot-handle { cursor: pointer; width: 100%; height: 100%; border-radius: 50%; background-color: #fff; box-sizing: border-box; box-shadow: 0.5px 0.5px 2px 1px rgba(0, 0, 0, 0.32); } .srp_range_wrapper .vue-slider-dot-handle-focus { box-shadow: 0px 0px 1px 2px var(--e-global-color-primary, #00000050); } .srp_range_wrapper .vue-slider-dot-tooltip-inner { font-size: 14px; white-space: nowrap; padding: 2px 5px; min-width: 20px; text-align: center; color: #fff; border-radius: 5px; border-color: var(--e-global-color-primary, #000); background-color: var(--e-global-color-primary, #000); box-sizing: content-box; } .srp_range_wrapper .vue-slider-dot-tooltip-inner::after { content: ""; position: absolute; } .srp_range_wrapper .vue-slider-dot-tooltip-inner-top::after { top: 100%; left: 50%; transform: translate(-50%, 0); height: 0; width: 0; border-color: transparent; border-style: solid; border-width: 5px; border-top-color: inherit; } .srp_range_wrapper .vue-slider-dot-tooltip-wrapper { opacity: 0; transition: all 0.3s; } .srp_range_wrapper .vue-slider-dot-tooltip-wrapper-show { opacity: 1; } .srp_range_wrapper .vue-slider-dot-tooltip-inner { -webkit-transition: opacity 0.2s linear, -webkit-transform 0.4s cubic-bezier(0.25, 0.8, 0.25, 1); transition: opacity 0.2s linear, -webkit-transform 0.4s cubic-bezier(0.25, 0.8, 0.25, 1); transition: transform 0.4s cubic-bezier(0.25, 0.8, 0.25, 1), opacity 0.2s linear; transition: transform 0.4s cubic-bezier(0.25, 0.8, 0.25, 1), opacity 0.2s linear, -webkit-transform 0.4s cubic-bezier(0.25, 0.8, 0.25, 1); } .srp_range_wrapper .vue-slider-dot-tooltip-show .vue-slider-dot-tooltip-inner { opacity: 1; } .srp_range_wrapper .vue-slider-dot-tooltip-show .vue-slider-dot-tooltip-inner-top { -webkit-transform: rotate(0deg); transform: rotate(0deg); } .srp_range_wrapper .vue-slider-dot-tooltip-inner-top { -webkit-transform: translateY(50%) scale(0.01) rotate(0deg); transform: translateY(50%) scale(0.01) rotate(0deg); } .srp_range_wrapper .vue-slider-dot-tooltip-inner-top .vue-slider-dot-tooltip-text { -webkit-transform: rotate(0deg); transform: rotate(0deg); } .srp_range_wrapper .vue-slider-mark-label { font-size: 9px; } .srp_chips { margin-top: 8px; margin-bottom: 8px; flex-wrap: wrap; justify-content: start; display: flex; column-gap: 3px; row-gap: 3px; } .srp_chips .srp_chip { display: flex; align-items: center; background-color: #000; color: #fff; cursor: pointer; border: 1px solid #fff; height: fit-content; font-size: 12px; margin: 2px; border-radius: 20px; padding: 3px 8px 3px 15px; text-transform: capitalize; transition: all .2s ease-out,opacity .2s ease-out; } .srp_chips .srp_chip:first-child { margin-left: 0px; } .srp_chips .srp_chip:hover { background-color: #fff; color: #000; border-color: #000; } .srp_chips .srp_chip .sricon-close-circle { font-size: 18px; margin-left: 5px; } .srp_filter_container { /* Define the initial state and transition for the list items */ /* Initially, tags are visible */ } .srp_filter_container .srp_filter_button_label { display: flex; } .srp_filter_container .srp_filter_buttons_list { margin: 0; display: flex; width: 100%; flex-wrap: wrap; justify-content: left; column-gap: 6px; row-gap: 6px; margin-top: 10px; margin-bottom: 10px; padding: 0px; } .srp_filter_container .srp_filter_buttons_list li { white-space: nowrap; list-style: none; position: relative; clear: both; } .srp_filter_container .srp_filter_buttons_list li .srp_filter_button { overflow: hidden; text-overflow: ellipsis; -webkit-user-select: none; transition: all 300ms; border: solid 1px #c5c5c5; color: #c5c5c5; background-color: #000; padding: 4px 8px; font-size: 11px; border-radius: 4px; cursor: pointer; } .srp_filter_container .srp_filter_buttons_list li .srp_filter_button:hover:not(.srp_filter_button--active) { color: #fff; } .srp_filter_container .srp_filter_buttons_list li .srp_filter_button.srp_filter_button--active { background-color: #fff; color: #000; } .srp_filter_container .list-enter-active, .srp_filter_container .list-leave-active { transition: opacity 0.5s, transform 0.5s; } .srp_filter_container .list-enter, .srp_filter_container .list-leave-to { opacity: 0; transform: translateY(-1em); } .srp_filter_container li { opacity: 1; transform: translateY(0); transition: opacity 1.5s, transform 1.5s; } .srp_filter_container li.hidden-tag { opacity: 0; transform: translateY(1em); } .srp-filter-more-link { font-size: 14px; font-weight: 400; cursor: pointer; margin-bottom: 15px; } .srp_pagination_container { transition: all 250ms; font-size: 16px; -webkit-user-select: none; display: flex; justify-content: center; width: 100%; align-items: center; height: auto; grid-gap: 10px; margin-top: 20px; margin-bottom: 15px; color: #fff; } .srp_pagination_container .srp_pagination_arrows { transition: all 250ms; font-size: 12px; border: 2px solid rgba(255, 255, 255, 0.2); cursor: pointer; pointer-events: all; -webkit-user-select: none; /* Safari */ color: inherit; background-color: rgba(0, 0, 0, 0); min-width: 40px; height: 40px; display: -webkit-box; display: -ms-flexbox; display: flex; -webkit-box-align: center; -ms-flex-align: center; align-items: center; -webkit-box-pack: center; -ms-flex-pack: center; justify-content: center; padding: 5px 5px; border-radius: 999px; } .srp_pagination_container .srp_pagination_arrows:hover { border: 2px solid white; color: inherit; } .srp_pagination_container .srp_pagination { display: flex; justify-content: center; grid-gap: 10px; height: auto !important; } .srp_pagination_container .srp_pagination .disabled { pointer-events: none; } .srp_pagination_container .srp_pagination .active span { pointer-events: none; background-color: #fff; color: #000; } .srp_pagination_container .srp_pagination span { transition: all 250ms; color: inherit; background-color: rgba(0, 0, 0, 0); min-width: 30px; height: 30px; display: -webkit-box; display: -ms-flexbox; display: flex; -webkit-box-align: center; -ms-flex-align: center; align-items: center; -webkit-box-pack: center; -ms-flex-pack: center; justify-content: center; padding: 5px 5px; border-radius: 999px; } .srp_pagination_container .srp_pagination span:hover { color: inherit; } .srp_notfound { display: none; margin: 10px; } .srp_notfound .srp_notfound--title { font-weight: bold; font-size: 21px; } .srp_notfound .srp_notfound--subtitle { font-size: 16px; opacity: 0.6; } [style*="visibility: hidden;"] .srp_search_main .srp_search_container, [style*="visibility: hidden;"] .srp_filter_container { visibility: hidden !important; opacity: 0 !important; } .srp_search_main { flex-wrap: wrap; display: flex; justify-content: space-between; align-items: center; column-gap: 5px; } .srp_search_main .srp_search_container { visibility: visible !important; opacity: 1 !important; color: #fff; display: flex; justify-content: flex-start; align-items: center; max-width: 100%; min-height: 40px; flex-grow: 1; } .srp_search_main .srp_search_container .srp_search { font-family: inherit; font-size: 14px; padding-left: 45px !important; color: #fff; border-radius: 4px; background: #000; border: none; border-width: 1px; outline: none; max-width: 100%; width: 100%; min-height: 40px; padding: 15px; } .srp_search_main .srp_search_container .srp_search::placeholder { color: inherit; opacity: 0.5; } .srp_search_main .srp_search_container .srp_reset_search { position: relative; width: 0; right: 35px; pointer-events: all; cursor: pointer; } .srp_search_main .srp_search_container .fa-search { position: relative; left: 20px; width: 0; font-size: 14px; color: #828282; } .srp_pagination li:not(.active) .page { cursor: pointer; } /*TRACKLIST GRID*/ .srp_tracklist_grid .srp_tracklist > ul { display: grid; grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); gap: 10px; } .srp_tracklist_grid[data-col="6"] .srp_tracklist > ul { grid-template-columns: 1fr 1fr 1fr 1fr 1fr 1fr; } .srp_tracklist_grid[data-col="5"] .srp_tracklist > ul { grid-template-columns: 1fr 1fr 1fr 1fr 1fr; } .srp_tracklist_grid[data-col="4"] .srp_tracklist > ul { grid-template-columns: 1fr 1fr 1fr 1fr; } .srp_tracklist_grid[data-col="3"] .srp_tracklist > ul { grid-template-columns: 1fr 1fr 1fr; } .srp_tracklist_grid[data-col="2"] .srp_tracklist > ul { grid-template-columns: 1fr 1fr; } .srp_tracklist_grid[data-col="1"] .srp_tracklist > ul { grid-template-columns: 1fr; } @media only screen and (max-width: 768px) { .srp_tracklist_grid[data-col-tablet="6"] .srp_tracklist > ul { grid-template-columns: 1fr 1fr 1fr 1fr 1fr 1fr; } .srp_tracklist_grid[data-col-tablet="5"] .srp_tracklist > ul { grid-template-columns: 1fr 1fr 1fr 1fr 1fr; } .srp_tracklist_grid[data-col-tablet="4"] .srp_tracklist > ul { grid-template-columns: 1fr 1fr 1fr 1fr; } .srp_tracklist_grid[data-col-tablet="3"] .srp_tracklist > ul { grid-template-columns: 1fr 1fr 1fr; } .srp_tracklist_grid[data-col-tablet="2"] .srp_tracklist > ul { grid-template-columns: 1fr 1fr; } .srp_tracklist_grid[data-col-tablet="1"] .srp_tracklist > ul { grid-template-columns: 1fr; } } @media only screen and (max-width: 767px) { .srp_tracklist_grid[data-col-mobile="6"] .srp_tracklist > ul { grid-template-columns: 1fr 1fr 1fr 1fr 1fr 1fr; } .srp_tracklist_grid[data-col-mobile="5"] .srp_tracklist > ul { grid-template-columns: 1fr 1fr 1fr 1fr 1fr; } .srp_tracklist_grid[data-col-mobile="4"] .srp_tracklist > ul { grid-template-columns: 1fr 1fr 1fr 1fr; } .srp_tracklist_grid[data-col-mobile="3"] .srp_tracklist > ul { grid-template-columns: 1fr 1fr 1fr; } .srp_tracklist_grid[data-col-mobile="2"] .srp_tracklist > ul { grid-template-columns: 1fr 1fr; } .srp_tracklist_grid[data-col-mobile="1"] .srp_tracklist > ul { grid-template-columns: 1fr; } } .srp_tracklist_grid .sr-playlist-item-flex { flex-direction: column; gap: 10px; align-items: flex-start !important; justify-content: flex-start !important; } .srp_tracklist_grid .sr-playlist-item-flex .audio-track { width: 100%; flex: none; } .srp_tracklist_grid .sr-playlist-item-flex .store-list { width: 100%; flex: none !important; margin-top: auto; } .srp_tracklist_grid .sr-playlist-item-flex .store-list .song-store-list-menu { justify-content: inherit; width: 100% !important; } .srp_tracklist_grid .sr-playlist-item-flex .store-list .song-store-list-container { width: inherit; flex-wrap: wrap; gap: 6px; } .srp_tracklist_grid .sr-playlist-item-flex .store-list .sr_store_wc_round_bt { width: 100%; padding: 10px; } .srp_tracklist_grid .sr-playlist-item-flex .sr-playlist-cf-container { width: 100%; flex: none; justify-content: flex-start; column-gap: 15px; flex-wrap: wrap; } .srp_tracklist_grid .sr-playlist-item-flex .sr-playlist-cf-child { flex: none !important; width: auto !important; } .srp_tracklist_grid .sr-playlist-item-flex .srp_noteButton { margin-left: 15px; } .srp_tracklist_grid .sr-playlist-item-flex .srp_noteButton i:before { margin: 0; } .srp_tracklist_grid .sr-playlist-item-flex .srp_noteButton .sricon-info { margin-left: 4px; } .srp_tracklist_grid .sr-playlist-item-flex .sricon-spinner-wrap { width: 20px !important; margin-top: -5px; margin-left: 2px; } .srp_tracklist_grid .sr_track_cover { margin-left: -20px; margin-top: -20px; width: calc(100% + 40px) !important; max-width: unset; } .srp_tracklist_grid .sr-cf-heading { display: none !important; } .srp_tracklist_grid[data-playertemplate="skin_boxed_tracklist"] .srp_player_boxed + .playlist { padding-top: 20px; } .srp_tracklist_grid .sr-playlist-item { overflow: hidden; } .srp_tracklist_grid .srp_note_title { font-size: 1.2em; } .srp_tracklist_grid .srp_tracklist-item-date { height: initial; margin-left: 0; padding-left: 0 !important; } .srp_tracklist_grid .sr-playlist-item .srp_track_description { margin-top: 0; } .srp_tracklist_grid .srp_note { padding: 5px; } .srp_tracklist_grid .srp_list.ps .sr-playlist-item { height: max-content; } .srp_tracklist_play_cover:not(.srp_tracklist_grid) .sr_track_cover .srp_play { transform: scale(0.5); } .srp_tracklist_play_cover .sr_track_cover { position: relative; } .srp_tracklist_play_cover .sr_track_cover:after { content: ""; height: 100%; width: 100%; display: block; position: absolute; top: 0; left: 0; } .srp_tracklist_play_cover .sr_track_cover .srp_play { cursor: pointer; z-index: 1; } .srp_tracklist_play_cover .track-number { padding-left: 0px !important; } .srp_tracklist_play_cover .track-number .sricon-play { display: none; } @media only screen and (min-width: 768px) { .srp_tracklist_play_cover.srp_tracklist_play_cover_hover .sr_track_cover:after, .srp_tracklist_play_cover.srp_tracklist_play_cover_hover .sr_track_cover .srp_play { transition: 0.15s ease; } .srp_tracklist_play_cover.srp_tracklist_play_cover_hover .sr-playlist-item:not(:hover):not(.current) .sr_track_cover:after, .srp_tracklist_play_cover.srp_tracklist_play_cover_hover .sr-playlist-item:not(:hover):not(.current) .sr_track_cover .srp_play { opacity: 0; } .srp_tracklist_play_cover.srp_tracklist_play_cover_hover .sr-playlist-item:not(:hover):not(.current) .sr_track_cover .srp_play { transform: translateY(30%); } } .srp_tracklist-item-date + .srp_tracklist-item-date { display: none; } .elementor-widget-music-player .iron-audioplayer[data-playertemplate="skin_boxed_tracklist"].srp_tracklist_grid img.sr_track_cover { max-width: unset !important; } .sr_tracklenght_tooltip { opacity: 0; transform: translateY(20px) scale(0.5); transition: transform 0.2s ease; z-index: 9999; text-align: center; width: 60px; position: absolute; background-color: black; color: white; padding: 5px; border-radius: 2px; font-size: 11px; } .sr_tracklenght_tooltip_vertical { display: none; z-index: 9999; position: absolute; width: 1px; background-color: black; pointer-events: none; } .iron-audioplayer { position: relative; } .iron-audioplayer .srp_player_boxed .srp_progressbar_inline .control { margin-top: 0px; } .iron-audioplayer .srp_player_boxed .player .srp_spectrum_container { display: flex; justify-content: flex-start; } .iron-audioplayer .srp_spectrum_container, .iron-audioplayer .srp_spectrum { transition: 0.3s ease; max-height: 1000px; } .iron-audioplayer .playlist .srp_spectrum_container, .iron-audioplayer .playlist .srp_spectrum { max-height: 500px; } .iron-audioplayer .srp_spectrum_container { width: 100%; display: flex; justify-content: center; pointer-events: none; } .iron-audioplayer .srp_spectrum { position: absolute; z-index: 1; } .iron-audioplayer .sr-playlist-item .srp_spectrum { z-index: -1; } .iron-audioplayer .song-store.add_to_cart_button.ajax_add_to_cart * { pointer-events: none; } .iron-audioplayer.srp_tracklist_grid .srp_soundwave_wrapper { flex: unset; width: 100%; } .iron-audioplayer .srp_soundwave_wrapper { flex: 0 1 100%; width: 100%; } .srp_spectrum_container.srp_hidden, .srp_hidden .srp_spectrum { opacity: 0; max-height: 0 !important; } #sonaar-player .srp_spectrum_container { position: absolute; z-index: 10000; pointer-events: none; } .swiper-box-navigation { max-width: 100%; position: relative; display: flex; flex-direction: column; } .swiper-box-navigation[data-v-align="top"] { flex-direction: column-reverse; } .swiper-box-navigation[data-v-align="center"] .srp_swiper-navigation { position: absolute; transform: translateY(-50%); } .srp_swiper-nav-v-pos-center .swiper-box-navigation { position: absolute; width: 100%; left: 0; top: 50%; } .srp_swiper-wrap { position: relative; padding: 0 0 15px 0; display: flex; flex-direction: column; } .srp_swiper { color: #fff; user-select: none; -moz-user-select: none; -khtml-user-select: none; -webkit-user-select: none; -o-user-select: none; max-width: 100%; } .srp_swiper.swiper { overflow: visible; overflow-x: clip; } .srp_swiper .swiper-pagination-bullet { background: #0000006c; opacity: 1; } .srp_swiper .swiper-pagination-bullet.swiper-pagination-bullet-active { background: #000000; } .srp_swiper .swiper-slide { min-width: 1px; overflow: visible; cursor: grab; } .srp_swiper .swiper-slide:active { cursor: grabbing; } .srp_swiper .swiper-slide .store-list { align-items: inherit; justify-content: inherit; text-shadow: none; position: relative; margin-top: 6px; } .srp_swiper .swiper-slide .store-list .song-store-list-menu { align-items: inherit; justify-content: inherit; } .srp_swiper .swiper-slide .store-list .fa-ellipsis-v { display: none; } .srp_swiper .swiper-slide .store-list .song-store-list-container { display: flex; align-items: inherit; justify-content: inherit; flex-wrap: wrap; row-gap: 4px; } .srp_swiper .srp_trackartist { display: inline-block !important; } .srp_swiper .srp_index { display: none; } .srp_swiper-control { position: absolute; z-index: 50; } .srp_swiper-control .srp_play { cursor: pointer; } .srp_swiper-control .srp_play .sricon-play { margin-left: 4px; } .audio-playing .swiper-slide.srp_current .sricon-play { margin-left: 0; } .srp_swiper-titles { display: flex; flex-direction: column; padding: 5%; z-index: 1; transition: opacity 0.3s ease; } .srp_swiper-album-art { background: no-repeat 50%; background-size: cover; width: 100%; height: 380px; position: relative; justify-content: center; align-items: center; display: flex; position: relative; overflow: hidden; } .srp_swiper-album-art .srp_swiper-titles { width: 100%; height: 100%; display: flex; flex-direction: column; align-items: center; justify-content: flex-end; } .srp_swiper-album-art img { width: 100%; height: auto; } .srp_swiper-album-art:after { transition: 0.3s ease; content: ""; position: absolute; top: 0; left: 0; width: 100%; height: 100%; } .srp_slider_play_cover_hover .swiper-slide .srp_swiper-control .srp_play { opacity: 0; scale: 1.15; transform: translate(0, 10px); transition: 0.15s ease; } .srp_slider_play_cover_hover .swiper-slide:hover .srp_swiper-control .srp_play { opacity: 1; scale: 1; transform: translate(0, 0); } .srp_swiper-title { font-size: 1.3rem; text-align: inherit; } .srp_swiper-track-title { text-align: inherit; } .srp_swiper-album-art .srp_swiper_overlay { width: 100%; height: 100%; position: absolute; top: 0; left: 0; } .srp_swiper-album-art .srp_swiper_overlay::before { transition: opacity 0.2s; content: ""; opacity: 1; width: 100%; height: 100%; position: absolute; } .srp_swiper-album-art .srp_swiper_overlay::after { transition: opacity 0.2s; content: ""; opacity: 0; width: 100%; height: 100%; position: absolute; } .srp_swiper-album-art:hover .srp_swiper_overlay::after { opacity: 1; } .srp_swiper-album-art:hover .srp_swiper_overlay::before { opacity: 0; } /* /////////////////// WHEN SLIDE IS HOVER MODE /////////////////// */ .srp_slider_content_on_hover .srp_swiper-track-title, .srp_slider_content_on_hover .srp_swiper-title, .srp_slider_content_on_hover .store-list, .srp_slider_content_on_hover .srp_swiper-track-artist { opacity: 0; } .srp_slider_content_on_hover .swiper-slide:hover .srp_swiper-title, .srp_slider_content_on_hover .swiper-slide:hover .srp_swiper-track-title, .srp_slider_content_on_hover .swiper-slide:hover .store-list, .srp_slider_content_on_hover .swiper-slide:hover .srp_swiper-track-artist { opacity: 1; transform: translate(0, 0); } .srp_slider_content_on_hover .srp_swiper-track-title { transform: translate(0, 20px); transition: 0.4s ease; transition-delay: .1s; } .srp_slider_content_on_hover .srp_swiper-track-artist { transform: translate(0, 30px); transition: 0.4s ease; transition-delay: .15s; } .srp_slider_content_on_hover .srp_swiper-title { transform: translate(0, 30px); transition: 0.4s ease; transition-delay: .12s; } .srp_slider_content_on_hover .store-list { transform: translate(0, 40px); transition: 0.5s ease; transition-delay: .1s; } /* /////////////////// WHEN SLIDE IS ACTIVE IN COVERFLOW MODE /////////////////// */ .srp_slider_content_on_active .swiper-slide:not(.swiper-slide-active) .srp_swiper-control, .srp_slider_content_on_active .swiper-slide:not(.swiper-slide-active) .srp_swiper-titles { opacity: 0; } .srp_slider_content_on_active:not(.srp_slider_content_on_hover) .srp_swiper-track-title, .srp_slider_content_on_active:not(.srp_slider_content_on_hover) .srp_swiper-title, .srp_slider_content_on_active:not(.srp_slider_content_on_hover) .srp_swiper-track-artist, .srp_slider_content_on_active:not(.srp_slider_content_on_hover) .store-list { opacity: 0; } .srp_slider_content_on_active:not(.srp_slider_content_on_hover) .swiper-slide-active .srp_swiper-title, .srp_slider_content_on_active:not(.srp_slider_content_on_hover) .swiper-slide-active .srp_swiper-track-title, .srp_slider_content_on_active:not(.srp_slider_content_on_hover) .swiper-slide-active .srp_swiper-track-artist, .srp_slider_content_on_active:not(.srp_slider_content_on_hover) .swiper-slide-active .store-list { opacity: 1; transform: translate(0, 0); } .srp_slider_content_on_active:not(.srp_slider_content_on_hover) .srp_swiper-track-title { transform: translate(0, 20px); transition: 0.8s ease; transition-delay: .1s; } .srp_slider_content_on_active:not(.srp_slider_content_on_hover) .srp_swiper-track-artist { transform: translate(0, 30px); transition: 0.8s ease; transition-delay: .12s; } .srp_slider_content_on_active:not(.srp_slider_content_on_hover) .srp_swiper-title { transform: translate(0, 40px); transition: 0.8s ease; transition-delay: .18s; } .srp_slider_content_on_active:not(.srp_slider_content_on_hover) .store-list { transform: translate(0, 30px); transition: 0.8s ease; transition-delay: .2s; } .srp_swiper .srp_swiper-navigation { position: absolute; transform: translateY(-50%); left: 0; } .srp_swiper-navigation { width: 100%; top: 50%; display: flex; justify-content: space-between; gap: 15px; padding: 8px; z-index: 100; } .srp_swiper-navigation .srp_swiper-button-prev, .srp_swiper-navigation .srp_swiper-button-next { position: static; margin-top: 0; transform: initial; } .srp_swiper-button-prev, .srp_swiper-button-next { position: absolute; top: 50%; width: calc(var(--swiper-navigation-size) / 44 * 27); height: var(--swiper-navigation-size); transform: translateY(-50%); z-index: 10; cursor: pointer; display: flex; align-items: center; justify-content: center; color: var(--swiper-navigation-color, var(--swiper-theme-color)); font-size: 44px; overflow: hidden; color: #fff; } .srp_swiper-button-prev.srp_arrow_round, .srp_swiper-button-next.srp_arrow_round { font-size: 24px !important; width: calc(var(--swiper-navigation-size) + 20px); height: calc(var(--swiper-navigation-size) + 20px); border-radius: 65px; border: #fff solid; } .srp_swiper-button-prev.swiper-button-disabled, .srp_swiper-button-next.swiper-button-disabled { opacity: 0.35; cursor: default; } div.srp_swiper-button-prev:after, div.srp_swiper-button-next:after { font-family: swiper-icons; text-transform: none !important; letter-spacing: 0; font-variant: initial; line-height: 1; font-size: inherit; } .srp_swiper-button-prev, .swiper-rtl .srp_swiper-button-next { left: 10px; right: auto; } .srp_swiper-button-prev:after, .swiper-rtl .srp_swiper-button-next:after { content: 'prev'; } .srp_swiper-button-next, .swiper-rtl .srp_swiper-button-prev { right: 10px; left: auto; } .srp_swiper-button-next:after, .swiper-rtl .srp_swiper-button-prev:after { content: 'next'; } .srp_swiper-wrap .swiper-box-pagination { position: relative; height: 6px; margin-top: 10px; } .srp_swiper-wrap .swiper-box-pagination .swiper-horizontal > .swiper-pagination-bullets.swiper-pagination-bullets-dynamic, .srp_swiper-wrap .swiper-box-pagination .swiper-pagination-horizontal.swiper-pagination-bullets.swiper-pagination-bullets-dynamic { bottom: 0; } .srp_swiper-wrap .swiper-box-pagination .swiper-pagination-bullet { opacity: 1; } .srp_swiper-track-artist { text-transform: capitalize; } .srp-fav-notfound { color: initial; display: flex; align-items: center; column-gap: 10px; } .srp-fav-notfound i { font-size: 12px; } a.song-store.srp-fav-bt i, a.song-store.sr_store_force_share_bt i, a.song-store.sr_store_force_dl_bt i, a.song-store.sr_store_force_pl_bt i { font-size: 16px; } .srp-fav-removeall-wrapper { display: flex; justify-content: flex-start; } .srp-fav-removeall-wrapper .srp-fav-removeall-bt { transition: all 0.3s ease; width: auto; cursor: pointer; padding: 5px 20px; margin-bottom: 10px; background-color: var(--srp-global-music_player_wc_bt_bgcolor); color: var(--srp-global-music_player_wc_bt_color); display: inline-block; border-radius: 4px; font-size: 12px; } .srp-fav-notification { opacity: 0; position: fixed; bottom: 80px; left: 0; right: 0; margin: auto; width: fit-content; padding: 10px 50px; background-color: var(--srp-global-modal-btn-bg-color); color: var(--srp-global-modal-btn-txt-color); text-align: center; border-radius: 5px; box-shadow: 0px 0px 7px rgba(0, 0, 0, 0.3); z-index: 10001; font-size: 16px; } /*----------Sticky Extended Player----------*/ .srp_extendedPlayer { transition: padding 0.1s ease; } .srp_no_artwork .srp_extendedPlayer_container .srp_extendedPlayer { overflow-y: unset; padding-top: calc(var(--srp-window-height) - 100% - 40px); background: unset !important; min-height: unset; } .srp_no_artwork.srp_sticky_has_ext .srp_extendedPlayer_container .srp_extendedPlayer { padding-top: calc(var(--srp-window-height) - 100% - 36px); } .srp_extendedPlayer_scrolling_box { height: 100%; display: flex; overflow-y: scroll; } .srp_extendedPlayer_container { width: 100%; height: 100%; position: fixed; top: 0; left: 0; z-index: 9999; display: flex; flex-direction: column; transform: translateY(100%); opacity: 0; transition: transform 300ms ease, opacity 150ms ease; } #sonaar-player .srp_extendedPlayer_container .close { border-color: #ffffff; } #sonaar-player .srp_extendedPlayer_container .close:before, #sonaar-player .srp_extendedPlayer_container .close:after { border-color: inherit; } .srp_extendedPlayer_container.srp_opened { transform: translateY(0%); opacity: 1; } .srp_extendedPlayer_container .srp-fav-bt { font-size: 28px; color: var(--srp-global-sticky_player_waveform_progress_color, #fff); } #sonaar-player .srp_extendedPlayer_container .sr_progressbar_sticky { flex-direction: column-reverse !important; gap: 10px; } #sonaar-player .srp_extendedPlayer_container .sr_progressbar_sticky .wave { position: static; height: 70px !important; width: 100% !important; } .srp_extendedPlayer_container .srp_ext_primary { display: flex; flex-direction: column; justify-content: space-between; min-height: 100%; padding-top: 15px; padding-bottom: 45px; padding-left: 25px; padding-right: 25px; background: var(--srp-global-sticky_player_background); } .srp_extendedPlayer_container .srp_ext_secondary { display: flex; flex-direction: column; justify-content: space-between; padding-bottom: 15px; gap: 15px; padding-left: 25px; padding-right: 25px; background: var(--srp-global-sticky_player_background); } .srp_extendedPlayer_container .srp_ext_overlay_panel { padding: 15px 25px; } .srp_extendedPlayer_container .srp_extendedPlayer { display: flex; flex-direction: column; justify-content: space-between; min-height: 100%; width: 100%; box-sizing: border-box; } .srp_extendedPlayer_container .srp_extendedPlayer.srp_opened_cta { transition: filter 0.3s ease; filter: brightness(0.5); } .srp_extendedPlayer_container .srp_extendedPlayer .srp_ext_header { display: flex; justify-content: space-between; align-items: center; margin-bottom: 20px; margin-top: 15px; gap: 20px; } .srp_extendedPlayer_container .srp_extendedPlayer .srp_collapse_btn { font-size: 24px; line-height: 1; } .srp_extendedPlayer_container .srp_extendedPlayer .srp_ellipsis_btn { font-size: 20px; line-height: 1; margin-right: -10px; } .srp_extendedPlayer_container .srp_extendedPlayer .srp_ext_artwork { display: flex; flex-direction: column; justify-content: center; flex-flow: row; overflow: hidden; } .srp_extendedPlayer_container .srp_extendedPlayer .srp_ext_artwork img { width: 100%; height: 100%; object-fit: contain; } .srp_extendedPlayer_container .srp_extendedPlayer .srp_ext_track { column-gap: 10px; display: flex; flex-direction: row; justify-content: space-between; align-items: center; } .srp_extendedPlayer_container .srp_extendedPlayer .control { display: flex; justify-content: center; align-items: center; gap: 30px; margin: 10px 0; } .srp_extendedPlayer_container .srp_extendedPlayer .control.srp_ctrl_advanced { gap: 15px; } .srp_extendedPlayer_container .srp_extendedPlayer .control .sricon-play:before { font-size: 38px; } .srp_extendedPlayer_container .srp_extendedPlayer .srp_ext_track_info { margin: 15px 0; } .srp_extendedPlayer_container .srp_extendedPlayer .srp_track_title { font-size: 18px; line-height: 1.3; } .srp_extendedPlayer_container .srp_extendedPlayer .sr_progressbar_sticky { width: auto; position: relative; display: flex; flex: 1; align-items: center; margin: 0 5px; } .srp_extendedPlayer_container .srp_extendedPlayer .srp_ext_featured_cta { display: flex; justify-content: space-between; column-gap: 5px; min-height: 30px; align-items: center; } .srp_extendedPlayer_container .srp_extendedPlayer .srp_ext_featured_cta .srp_ext_cta_addtocart, .srp_extendedPlayer_container .srp_extendedPlayer .srp_ext_featured_cta .srp_ext_cta_buynow { background-color: var(--srp-global-sticky_player_labelsandbuttons, #FFF); /* font-size: 12px; */ padding: 5px 10px; border-radius: 6px; color: var(--srp-global-sticky_player_background, #000); } .srp_extendedPlayer_container .srp_extendedPlayer .srp_ext_featured_cta .srp_ext_cta_addtocart span, .srp_extendedPlayer_container .srp_extendedPlayer .srp_ext_featured_cta .srp_ext_cta_buynow span { font-size: 14px; font-weight: 500; } .srp_extendedPlayer_container .srp_extendedPlayer .srp_ext_featured_cta a { color: inherit; background-color: unset; display: flex; column-gap: 12px; align-items: center; text-decoration: none; font-size: 18px; font-weight: 400; } .srp_extendedPlayer_container .srp_extendedPlayer .srp_ext_featured_cta_left, .srp_extendedPlayer_container .srp_extendedPlayer .srp_ext_featured_cta_right { align-items: center; display: flex; gap: 10px; } .srp_extendedPlayer_container .srp_extendedPlayer .srp_ext_featured_cta_left { font-size: 18px; } .srp_extendedPlayer_container .srp_extendedPlayer .srp_ext_featured_cta_center { flex: 0.9; height: 175%; } .srp_extendedPlayer_container .srp_extendedPlayer .srp_ext_control { display: flex; justify-content: space-between; align-content: center; } .srp_extendedPlayer_container .srp_extendedPlayer .srp_ext_control .shuffle { font-size: 18px; display: flex; align-items: center; justify-content: flex-end; } #sonaar-player .srp_extendedPlayer_container .srp_extendedPlayer .srp_ext_control .sr_speedRate { margin: 0; } .srp_extendedPlayer_container .srp_extendedPlayer .srp_control_right, .srp_extendedPlayer_container .srp_extendedPlayer .srp_control_left { display: flex; flex: 1; } .srp_extendedPlayer_container .srp_extendedPlayer .srp_control_left { justify-content: flex-start; } .srp_extendedPlayer_container .srp_extendedPlayer .srp_control_right { justify-content: flex-end; } .srp_extendedPlayer_container .srp_extendedPlayer .play { display: flex; } .srp_extendedPlayer_container .srp_extendedPlayer .list { width: 28px; } .srp_extendedPlayer_container .srp_ext_overlay_panel_outside { position: absolute; height: 100%; width: 100%; } .srp_extendedPlayer_container .srp_ext_overlay_panel { visibility: hidden; position: absolute; bottom: 0px; padding-bottom: 70px; height: fit-content; width: 100%; background: var(--srp-global-sticky_player_background); transform: translateY(100%); transition: 0.4s ease; } .srp_extendedPlayer_container .srp_ext_overlay_panel.srp_opened { visibility: visible; transform: translateY(0%); } .srp_extendedPlayer_container .srp_ext_overlay_panel .srp_ext_cta { display: flex; flex-direction: column; row-gap: 20px; margin-top: 20px; } .srp_extendedPlayer_container .srp_ext_overlay_panel .srp_ext_cta .srp_ext_track_info_wrapper { display: flex; column-gap: 10px; margin-bottom: 20px; padding-bottom: 10px; border-bottom: 1px solid #ffffff20; } .srp_extendedPlayer_container .srp_ext_overlay_panel .srp_ext_cta .srp_ext_track_info_wrapper .srp_track_title { display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; width: 65vw; font-size: 18px; } .srp_extendedPlayer_container .srp_ext_overlay_panel .srp_ext_cta .srp_ext_track_info_wrapper .srp_artist { font-size: 14px; } .srp_extendedPlayer_container .srp_ext_overlay_panel .srp_ext_cta img { max-height: 65px; } .srp_extendedPlayer_container .srp_ext_overlay_panel .srp_ext_cta > span a { color: inherit; background-color: unset; display: flex; column-gap: 12px; align-items: center; text-decoration: none; font-size: 18px; font-weight: 400; } .srp_extendedPlayer_container .srp_ext_overlay_panel .srp_ext_cta > span a > i { text-align: center; width: 30px; } .srp_extendedPlayer_container .srp_ext_content { display: flex; flex-direction: column; row-gap: 10px; } .srp_extendedPlayer_container .srp_ext_section { word-wrap: break-word; font-size: 16px; font-weight: 400; background: var(--srp-global-sticky_player_background); padding: 15px; border-radius: 10px; filter: brightness(1.2); } .srp_extendedPlayer_container .srp_ext_section:first-child { margin-top: -28px; } body.srp_sticky_ext_opened { overflow-y: hidden; } body.sr_popup-open { overflow-y: hidden; } #sonaar-modal { display: none; position: fixed; top: 0; left: 0; z-index: 10100; width: 100%; height: 100%; overflow: hidden; outline: 0; transition: opacity .15s linear; /* Firefox < 16 */ /* Safari, Chrome and Opera > 12.1 */ /* Internet Explorer */ /* Opera < 12.1 */ } #sonaar-modal .sr_popup-dialog { transition: -webkit-transform .3s ease-out; transition: transform .3s ease-out; transition: transform .3s ease-out,-webkit-transform .3s ease-out; -webkit-transform: translate(0, -50px); transform: translate(0, -50px); } .sr_popup-open #sonaar-modal { overflow-x: hidden; overflow-y: auto; } #sonaar-modal.sr_show { display: flex !important; align-items: center; min-height: 100%; height: auto; } #sonaar-modal.sr_show .sr_popup-dialog { -webkit-transform: none; transform: none; } #sonaar-modal .sr_popup-dialog { position: relative; width: auto; max-height: 100vh; overflow-y: auto; overflow-x: hidden; margin: 0px auto; } @media (min-width: 576px) { #sonaar-modal .sr_popup-dialog { max-width: calc(100vw - 150px); max-height: calc(100vh - 150px); margin: 75px auto; } } #sonaar-modal .sr_popup-content { position: relative; display: -ms-flexbox; display: flex; -ms-flex-direction: column; flex-direction: column; width: 100%; pointer-events: auto; background-color: #fff; background-clip: padding-box; border: 1px solid rgba(0, 0, 0, 0.2); border-radius: .3rem; outline: 0; -webkit-animation: srmp3fadein 350ms; -moz-animation: srmp3fadein 350ms; -ms-animation: srmp3fadein 350ms; -o-animation: srmp3fadein 350ms; animation: srmp3fadein 350ms; } @media (max-width: 576px) { #sonaar-modal .sr_popup-content { margin-bottom: 50px; } } @keyframes srmp3fadein { from { opacity: 0; transform: scale(0.9); } to { opacity: 1; transform: scale(1); } } @-moz-keyframes srmp3fadein { from { opacity: 0; transform: scale(0.9); } to { opacity: 1; transform: scale(1); } } @-webkit-keyframes srmp3fadein { from { opacity: 0; transform: scale(0.9); } to { opacity: 1; transform: scale(1); } } @-ms-keyframes srmp3fadein { #sonaar-modal from { opacity: 0; transform: scale(0.9); } #sonaar-modal to { opacity: 1; transform: scale(1); } } @-o-keyframes srmp3fadein { from { opacity: 0; transform: scale(0.9); } to { opacity: 1; transform: scale(1); } } #sonaar-modal .sr_popup-body { position: relative; -ms-flex: 1 1 auto; flex: 1 1 auto; padding: 2.5rem; } .sr_popup-backdrop { position: fixed; top: 0; left: 0; z-index: 10050; width: 100vw; height: 100vh; background-color: #000; opacity: 0; transition: opacity .15s linear; pointer-events: none; } .sr_popup-backdrop.sr_show { opacity: .75; pointer-events: initial; } .sr-store-popup { cursor: pointer; } .sr_close { background: transparent; height: 32px; width: 32px; padding: 0; position: absolute; top: 25px; right: 25px; z-index: 50; font-size: 1px; cursor: pointer; } .sr_close svg { height: 100%; } PK!{IEE public/css/swiper-bundle.min.cssnu[/** * Swiper 9.3.2 * Most modern mobile touch slider and framework with hardware accelerated transitions * https://swiperjs.com * * Copyright 2014-2023 Vladimir Kharlampidi * * Released under the MIT License * * Released on: May 15, 2023 */ @font-face{font-family:swiper-icons;src:url('data:application/font-woff;charset=utf-8;base64, d09GRgABAAAAAAZgABAAAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABGRlRNAAAGRAAAABoAAAAci6qHkUdERUYAAAWgAAAAIwAAACQAYABXR1BPUwAABhQAAAAuAAAANuAY7+xHU1VCAAAFxAAAAFAAAABm2fPczU9TLzIAAAHcAAAASgAAAGBP9V5RY21hcAAAAkQAAACIAAABYt6F0cBjdnQgAAACzAAAAAQAAAAEABEBRGdhc3AAAAWYAAAACAAAAAj//wADZ2x5ZgAAAywAAADMAAAD2MHtryVoZWFkAAABbAAAADAAAAA2E2+eoWhoZWEAAAGcAAAAHwAAACQC9gDzaG10eAAAAigAAAAZAAAArgJkABFsb2NhAAAC0AAAAFoAAABaFQAUGG1heHAAAAG8AAAAHwAAACAAcABAbmFtZQAAA/gAAAE5AAACXvFdBwlwb3N0AAAFNAAAAGIAAACE5s74hXjaY2BkYGAAYpf5Hu/j+W2+MnAzMYDAzaX6QjD6/4//Bxj5GA8AuRwMYGkAPywL13jaY2BkYGA88P8Agx4j+/8fQDYfA1AEBWgDAIB2BOoAeNpjYGRgYNBh4GdgYgABEMnIABJzYNADCQAACWgAsQB42mNgYfzCOIGBlYGB0YcxjYGBwR1Kf2WQZGhhYGBiYGVmgAFGBiQQkOaawtDAoMBQxXjg/wEGPcYDDA4wNUA2CCgwsAAAO4EL6gAAeNpj2M0gyAACqxgGNWBkZ2D4/wMA+xkDdgAAAHjaY2BgYGaAYBkGRgYQiAHyGMF8FgYHIM3DwMHABGQrMOgyWDLEM1T9/w8UBfEMgLzE////P/5//f/V/xv+r4eaAAeMbAxwIUYmIMHEgKYAYjUcsDAwsLKxc3BycfPw8jEQA/gZBASFhEVExcQlJKWkZWTl5BUUlZRVVNXUNTQZBgMAAMR+E+gAEQFEAAAAKgAqACoANAA+AEgAUgBcAGYAcAB6AIQAjgCYAKIArAC2AMAAygDUAN4A6ADyAPwBBgEQARoBJAEuATgBQgFMAVYBYAFqAXQBfgGIAZIBnAGmAbIBzgHsAAB42u2NMQ6CUAyGW568x9AneYYgm4MJbhKFaExIOAVX8ApewSt4Bic4AfeAid3VOBixDxfPYEza5O+Xfi04YADggiUIULCuEJK8VhO4bSvpdnktHI5QCYtdi2sl8ZnXaHlqUrNKzdKcT8cjlq+rwZSvIVczNiezsfnP/uznmfPFBNODM2K7MTQ45YEAZqGP81AmGGcF3iPqOop0r1SPTaTbVkfUe4HXj97wYE+yNwWYxwWu4v1ugWHgo3S1XdZEVqWM7ET0cfnLGxWfkgR42o2PvWrDMBSFj/IHLaF0zKjRgdiVMwScNRAoWUoH78Y2icB/yIY09An6AH2Bdu/UB+yxopYshQiEvnvu0dURgDt8QeC8PDw7Fpji3fEA4z/PEJ6YOB5hKh4dj3EvXhxPqH/SKUY3rJ7srZ4FZnh1PMAtPhwP6fl2PMJMPDgeQ4rY8YT6Gzao0eAEA409DuggmTnFnOcSCiEiLMgxCiTI6Cq5DZUd3Qmp10vO0LaLTd2cjN4fOumlc7lUYbSQcZFkutRG7g6JKZKy0RmdLY680CDnEJ+UMkpFFe1RN7nxdVpXrC4aTtnaurOnYercZg2YVmLN/d/gczfEimrE/fs/bOuq29Zmn8tloORaXgZgGa78yO9/cnXm2BpaGvq25Dv9S4E9+5SIc9PqupJKhYFSSl47+Qcr1mYNAAAAeNptw0cKwkAAAMDZJA8Q7OUJvkLsPfZ6zFVERPy8qHh2YER+3i/BP83vIBLLySsoKimrqKqpa2hp6+jq6RsYGhmbmJqZSy0sraxtbO3sHRydnEMU4uR6yx7JJXveP7WrDycAAAAAAAH//wACeNpjYGRgYOABYhkgZgJCZgZNBkYGLQZtIJsFLMYAAAw3ALgAeNolizEKgDAQBCchRbC2sFER0YD6qVQiBCv/H9ezGI6Z5XBAw8CBK/m5iQQVauVbXLnOrMZv2oLdKFa8Pjuru2hJzGabmOSLzNMzvutpB3N42mNgZGBg4GKQYzBhYMxJLMlj4GBgAYow/P/PAJJhLM6sSoWKfWCAAwDAjgbRAAB42mNgYGBkAIIbCZo5IPrmUn0hGA0AO8EFTQAA');font-weight:400;font-style:normal}:root{--swiper-theme-color:#007aff}.swiper,swiper-container{margin-left:auto;margin-right:auto;position:relative;overflow:hidden;list-style:none;padding:0;z-index:1;display:block}.swiper-vertical>.swiper-wrapper{flex-direction:column}.swiper-wrapper{position:relative;width:100%;height:100%;z-index:1;display:flex;transition-property:transform;transition-timing-function:var(--swiper-wrapper-transition-timing-function,initial);box-sizing:content-box}.swiper-android .swiper-slide,.swiper-wrapper{transform:translate3d(0px,0,0)}.swiper-horizontal{touch-action:pan-y}.swiper-vertical{touch-action:pan-x}.swiper-slide,swiper-slide{flex-shrink:0;width:100%;height:100%;position:relative;transition-property:transform;display:block}.swiper-slide-invisible-blank{visibility:hidden}.swiper-autoheight,.swiper-autoheight .swiper-slide{height:auto}.swiper-autoheight .swiper-wrapper{align-items:flex-start;transition-property:transform,height}.swiper-backface-hidden .swiper-slide{transform:translateZ(0);-webkit-backface-visibility:hidden;backface-visibility:hidden}.swiper-3d.swiper-css-mode .swiper-wrapper{perspective:1200px}.swiper-3d .swiper-wrapper{transform-style:preserve-3d}.swiper-3d{perspective:1200px}.swiper-3d .swiper-cube-shadow,.swiper-3d .swiper-slide,.swiper-3d .swiper-slide-shadow,.swiper-3d .swiper-slide-shadow-bottom,.swiper-3d .swiper-slide-shadow-left,.swiper-3d .swiper-slide-shadow-right,.swiper-3d .swiper-slide-shadow-top{transform-style:preserve-3d}.swiper-3d .swiper-slide-shadow,.swiper-3d .swiper-slide-shadow-bottom,.swiper-3d .swiper-slide-shadow-left,.swiper-3d .swiper-slide-shadow-right,.swiper-3d .swiper-slide-shadow-top{position:absolute;left:0;top:0;width:100%;height:100%;pointer-events:none;z-index:10}.swiper-3d .swiper-slide-shadow{background:rgba(0,0,0,.15)}.swiper-3d .swiper-slide-shadow-left{background-image:linear-gradient(to left,rgba(0,0,0,.5),rgba(0,0,0,0))}.swiper-3d .swiper-slide-shadow-right{background-image:linear-gradient(to right,rgba(0,0,0,.5),rgba(0,0,0,0))}.swiper-3d .swiper-slide-shadow-top{background-image:linear-gradient(to top,rgba(0,0,0,.5),rgba(0,0,0,0))}.swiper-3d .swiper-slide-shadow-bottom{background-image:linear-gradient(to bottom,rgba(0,0,0,.5),rgba(0,0,0,0))}.swiper-css-mode>.swiper-wrapper{overflow:auto;scrollbar-width:none;-ms-overflow-style:none}.swiper-css-mode>.swiper-wrapper::-webkit-scrollbar{display:none}.swiper-css-mode>.swiper-wrapper>.swiper-slide{scroll-snap-align:start start}.swiper-horizontal.swiper-css-mode>.swiper-wrapper{scroll-snap-type:x mandatory}.swiper-vertical.swiper-css-mode>.swiper-wrapper{scroll-snap-type:y mandatory}.swiper-centered>.swiper-wrapper::before{content:'';flex-shrink:0;order:9999}.swiper-centered>.swiper-wrapper>.swiper-slide{scroll-snap-align:center center;scroll-snap-stop:always}.swiper-centered.swiper-horizontal>.swiper-wrapper>.swiper-slide:first-child{margin-inline-start:var(--swiper-centered-offset-before)}.swiper-centered.swiper-horizontal>.swiper-wrapper::before{height:100%;min-height:1px;width:var(--swiper-centered-offset-after)}.swiper-centered.swiper-vertical>.swiper-wrapper>.swiper-slide:first-child{margin-block-start:var(--swiper-centered-offset-before)}.swiper-centered.swiper-vertical>.swiper-wrapper::before{width:100%;min-width:1px;height:var(--swiper-centered-offset-after)}.swiper-lazy-preloader{width:42px;height:42px;position:absolute;left:50%;top:50%;margin-left:-21px;margin-top:-21px;z-index:10;transform-origin:50%;box-sizing:border-box;border:4px solid var(--swiper-preloader-color,var(--swiper-theme-color));border-radius:50%;border-top-color:transparent}.swiper-watch-progress .swiper-slide-visible .swiper-lazy-preloader,.swiper:not(.swiper-watch-progress) .swiper-lazy-preloader,swiper-container:not(.swiper-watch-progress) .swiper-lazy-preloader{animation:swiper-preloader-spin 1s infinite linear}.swiper-lazy-preloader-white{--swiper-preloader-color:#fff}.swiper-lazy-preloader-black{--swiper-preloader-color:#000}@keyframes swiper-preloader-spin{0%{transform:rotate(0deg)}100%{transform:rotate(360deg)}}.swiper-virtual .swiper-slide{-webkit-backface-visibility:hidden;transform:translateZ(0)}.swiper-virtual.swiper-css-mode .swiper-wrapper::after{content:'';position:absolute;left:0;top:0;pointer-events:none}.swiper-virtual.swiper-css-mode.swiper-horizontal .swiper-wrapper::after{height:1px;width:var(--swiper-virtual-size)}.swiper-virtual.swiper-css-mode.swiper-vertical .swiper-wrapper::after{width:1px;height:var(--swiper-virtual-size)}:root{--swiper-navigation-size:44px}.swiper-button-next,.swiper-button-prev{position:absolute;top:var(--swiper-navigation-top-offset,50%);width:calc(var(--swiper-navigation-size)/ 44 * 27);height:var(--swiper-navigation-size);margin-top:calc(0px - (var(--swiper-navigation-size)/ 2));z-index:10;cursor:pointer;display:flex;align-items:center;justify-content:center;color:var(--swiper-navigation-color,var(--swiper-theme-color))}.swiper-button-next.swiper-button-disabled,.swiper-button-prev.swiper-button-disabled{opacity:.35;cursor:auto;pointer-events:none}.swiper-button-next.swiper-button-hidden,.swiper-button-prev.swiper-button-hidden{opacity:0;cursor:auto;pointer-events:none}.swiper-navigation-disabled .swiper-button-next,.swiper-navigation-disabled .swiper-button-prev{display:none!important}.swiper-button-next:after,.swiper-button-prev:after{font-family:swiper-icons;font-size:var(--swiper-navigation-size);text-transform:none!important;letter-spacing:0;font-variant:initial;line-height:1}.swiper-button-prev,.swiper-rtl .swiper-button-next{left:var(--swiper-navigation-sides-offset,10px);right:auto}.swiper-button-prev:after,.swiper-rtl .swiper-button-next:after{content:'prev'}.swiper-button-next,.swiper-rtl .swiper-button-prev{right:var(--swiper-navigation-sides-offset,10px);left:auto}.swiper-button-next:after,.swiper-rtl .swiper-button-prev:after{content:'next'}.swiper-button-lock{display:none}.swiper-pagination{position:absolute;text-align:center;transition:.3s opacity;transform:translate3d(0,0,0);z-index:10}.swiper-pagination.swiper-pagination-hidden{opacity:0}.swiper-pagination-disabled>.swiper-pagination,.swiper-pagination.swiper-pagination-disabled{display:none!important}.swiper-horizontal>.swiper-pagination-bullets,.swiper-pagination-bullets.swiper-pagination-horizontal,.swiper-pagination-custom,.swiper-pagination-fraction{bottom:var(--swiper-pagination-bottom,8px);top:var(--swiper-pagination-top,auto);left:0;width:100%}.swiper-pagination-bullets-dynamic{overflow:hidden;font-size:0}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet{transform:scale(.33);position:relative}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active{transform:scale(1)}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-main{transform:scale(1)}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-prev{transform:scale(.66)}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-prev-prev{transform:scale(.33)}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-next{transform:scale(.66)}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-next-next{transform:scale(.33)}.swiper-pagination-bullet{width:var(--swiper-pagination-bullet-width,var(--swiper-pagination-bullet-size,8px));height:var(--swiper-pagination-bullet-height,var(--swiper-pagination-bullet-size,8px));display:inline-block;border-radius:var(--swiper-pagination-bullet-border-radius,50%);background:var(--swiper-pagination-bullet-inactive-color,#000);opacity:var(--swiper-pagination-bullet-inactive-opacity, .2)}button.swiper-pagination-bullet{border:none;margin:0;padding:0;box-shadow:none;-webkit-appearance:none;appearance:none}.swiper-pagination-clickable .swiper-pagination-bullet{cursor:pointer}.swiper-pagination-bullet:only-child{display:none!important}.swiper-pagination-bullet-active{opacity:var(--swiper-pagination-bullet-opacity, 1);background:var(--swiper-pagination-color,var(--swiper-theme-color))}.swiper-pagination-vertical.swiper-pagination-bullets,.swiper-vertical>.swiper-pagination-bullets{right:var(--swiper-pagination-right,8px);left:var(--swiper-pagination-left,auto);top:50%;transform:translate3d(0px,-50%,0)}.swiper-pagination-vertical.swiper-pagination-bullets .swiper-pagination-bullet,.swiper-vertical>.swiper-pagination-bullets .swiper-pagination-bullet{margin:var(--swiper-pagination-bullet-vertical-gap,6px) 0;display:block}.swiper-pagination-vertical.swiper-pagination-bullets.swiper-pagination-bullets-dynamic,.swiper-vertical>.swiper-pagination-bullets.swiper-pagination-bullets-dynamic{top:50%;transform:translateY(-50%);width:8px}.swiper-pagination-vertical.swiper-pagination-bullets.swiper-pagination-bullets-dynamic .swiper-pagination-bullet,.swiper-vertical>.swiper-pagination-bullets.swiper-pagination-bullets-dynamic .swiper-pagination-bullet{display:inline-block;transition:.2s transform,.2s top}.swiper-horizontal>.swiper-pagination-bullets .swiper-pagination-bullet,.swiper-pagination-horizontal.swiper-pagination-bullets .swiper-pagination-bullet{margin:0 var(--swiper-pagination-bullet-horizontal-gap,4px)}.swiper-horizontal>.swiper-pagination-bullets.swiper-pagination-bullets-dynamic,.swiper-pagination-horizontal.swiper-pagination-bullets.swiper-pagination-bullets-dynamic{left:50%;transform:translateX(-50%);white-space:nowrap}.swiper-horizontal>.swiper-pagination-bullets.swiper-pagination-bullets-dynamic .swiper-pagination-bullet,.swiper-pagination-horizontal.swiper-pagination-bullets.swiper-pagination-bullets-dynamic .swiper-pagination-bullet{transition:.2s transform,.2s left}.swiper-horizontal.swiper-rtl>.swiper-pagination-bullets-dynamic .swiper-pagination-bullet,:host(.swiper-horizontal.swiper-rtl) .swiper-pagination-bullets-dynamic .swiper-pagination-bullet{transition:.2s transform,.2s right}.swiper-pagination-fraction{color:var(--swiper-pagination-fraction-color,inherit)}.swiper-pagination-progressbar{background:var(--swiper-pagination-progressbar-bg-color,rgba(0,0,0,.25));position:absolute}.swiper-pagination-progressbar .swiper-pagination-progressbar-fill{background:var(--swiper-pagination-color,var(--swiper-theme-color));position:absolute;left:0;top:0;width:100%;height:100%;transform:scale(0);transform-origin:left top}.swiper-rtl .swiper-pagination-progressbar .swiper-pagination-progressbar-fill{transform-origin:right top}.swiper-horizontal>.swiper-pagination-progressbar,.swiper-pagination-progressbar.swiper-pagination-horizontal,.swiper-pagination-progressbar.swiper-pagination-vertical.swiper-pagination-progressbar-opposite,.swiper-vertical>.swiper-pagination-progressbar.swiper-pagination-progressbar-opposite{width:100%;height:var(--swiper-pagination-progressbar-size,4px);left:0;top:0}.swiper-horizontal>.swiper-pagination-progressbar.swiper-pagination-progressbar-opposite,.swiper-pagination-progressbar.swiper-pagination-horizontal.swiper-pagination-progressbar-opposite,.swiper-pagination-progressbar.swiper-pagination-vertical,.swiper-vertical>.swiper-pagination-progressbar{width:var(--swiper-pagination-progressbar-size,4px);height:100%;left:0;top:0}.swiper-pagination-lock{display:none}.swiper-scrollbar{border-radius:var(--swiper-scrollbar-border-radius,10px);position:relative;-ms-touch-action:none;background:var(--swiper-scrollbar-bg-color,rgba(0,0,0,.1))}.swiper-scrollbar-disabled>.swiper-scrollbar,.swiper-scrollbar.swiper-scrollbar-disabled{display:none!important}.swiper-horizontal>.swiper-scrollbar,.swiper-scrollbar.swiper-scrollbar-horizontal{position:absolute;left:var(--swiper-scrollbar-sides-offset,1%);bottom:var(--swiper-scrollbar-bottom,4px);top:var(--swiper-scrollbar-top,auto);z-index:50;height:var(--swiper-scrollbar-size,4px);width:calc(100% - 2 * var(--swiper-scrollbar-sides-offset,1%))}.swiper-scrollbar.swiper-scrollbar-vertical,.swiper-vertical>.swiper-scrollbar{position:absolute;left:var(--swiper-scrollbar-left,auto);right:var(--swiper-scrollbar-right,4px);top:var(--swiper-scrollbar-sides-offset,1%);z-index:50;width:var(--swiper-scrollbar-size,4px);height:calc(100% - 2 * var(--swiper-scrollbar-sides-offset,1%))}.swiper-scrollbar-drag{height:100%;width:100%;position:relative;background:var(--swiper-scrollbar-drag-bg-color,rgba(0,0,0,.5));border-radius:var(--swiper-scrollbar-border-radius,10px);left:0;top:0}.swiper-scrollbar-cursor-drag{cursor:move}.swiper-scrollbar-lock{display:none}.swiper-zoom-container{width:100%;height:100%;display:flex;justify-content:center;align-items:center;text-align:center}.swiper-zoom-container>canvas,.swiper-zoom-container>img,.swiper-zoom-container>svg{max-width:100%;max-height:100%;object-fit:contain}.swiper-slide-zoomed{cursor:move;touch-action:none}.swiper .swiper-notification,swiper-container .swiper-notification{position:absolute;left:0;top:0;pointer-events:none;opacity:0;z-index:-1000}.swiper-free-mode>.swiper-wrapper{transition-timing-function:ease-out;margin:0 auto}.swiper-grid>.swiper-wrapper{flex-wrap:wrap}.swiper-grid-column>.swiper-wrapper{flex-wrap:wrap;flex-direction:column}.swiper-fade.swiper-free-mode .swiper-slide{transition-timing-function:ease-out}.swiper-fade .swiper-slide{pointer-events:none;transition-property:opacity}.swiper-fade .swiper-slide .swiper-slide{pointer-events:none}.swiper-fade .swiper-slide-active,.swiper-fade .swiper-slide-active .swiper-slide-active{pointer-events:auto}.swiper-cube{overflow:visible}.swiper-cube .swiper-slide{pointer-events:none;-webkit-backface-visibility:hidden;backface-visibility:hidden;z-index:1;visibility:hidden;transform-origin:0 0;width:100%;height:100%}.swiper-cube .swiper-slide .swiper-slide{pointer-events:none}.swiper-cube.swiper-rtl .swiper-slide{transform-origin:100% 0}.swiper-cube .swiper-slide-active,.swiper-cube .swiper-slide-active .swiper-slide-active{pointer-events:auto}.swiper-cube .swiper-slide-active,.swiper-cube .swiper-slide-next,.swiper-cube .swiper-slide-next+.swiper-slide,.swiper-cube .swiper-slide-prev{pointer-events:auto;visibility:visible}.swiper-cube .swiper-slide-shadow-bottom,.swiper-cube .swiper-slide-shadow-left,.swiper-cube .swiper-slide-shadow-right,.swiper-cube .swiper-slide-shadow-top{z-index:0;-webkit-backface-visibility:hidden;backface-visibility:hidden}.swiper-cube .swiper-cube-shadow{position:absolute;left:0;bottom:0px;width:100%;height:100%;opacity:.6;z-index:0}.swiper-cube .swiper-cube-shadow:before{content:'';background:#000;position:absolute;left:0;top:0;bottom:0;right:0;filter:blur(50px)}.swiper-flip{overflow:visible}.swiper-flip .swiper-slide{pointer-events:none;-webkit-backface-visibility:hidden;backface-visibility:hidden;z-index:1}.swiper-flip .swiper-slide .swiper-slide{pointer-events:none}.swiper-flip .swiper-slide-active,.swiper-flip .swiper-slide-active .swiper-slide-active{pointer-events:auto}.swiper-flip .swiper-slide-shadow-bottom,.swiper-flip .swiper-slide-shadow-left,.swiper-flip .swiper-slide-shadow-right,.swiper-flip .swiper-slide-shadow-top{z-index:0;-webkit-backface-visibility:hidden;backface-visibility:hidden}.swiper-creative .swiper-slide{-webkit-backface-visibility:hidden;backface-visibility:hidden;overflow:hidden;transition-property:transform,opacity,height}.swiper-cards{overflow:visible}.swiper-cards .swiper-slide{transform-origin:center bottom;-webkit-backface-visibility:hidden;backface-visibility:hidden;overflow:hidden}PK!cg HH,public/js/iron-audioplayer/00.moments.min.jsnu[;;;//! moment.js //! version : 2.29.1 //! authors : Tim Wood, Iskren Chernev, Moment.js contributors //! license : MIT //! momentjs.com !function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):e.moment=t()}(this,function(){"use strict";var e,i;function f(){return e.apply(null,arguments)}function o(e){return e instanceof Array||"[object Array]"===Object.prototype.toString.call(e)}function u(e){return null!=e&&"[object Object]"===Object.prototype.toString.call(e)}function m(e,t){return Object.prototype.hasOwnProperty.call(e,t)}function l(e){if(Object.getOwnPropertyNames)return 0===Object.getOwnPropertyNames(e).length;for(var t in e)if(m(e,t))return;return 1}function r(e){return void 0===e}function h(e){return"number"==typeof e||"[object Number]"===Object.prototype.toString.call(e)}function a(e){return e instanceof Date||"[object Date]"===Object.prototype.toString.call(e)}function d(e,t){for(var n=[],s=0;s>>0,s=0;sFe(e)?(r=e+1,a-Fe(e)):(r=e,a);return{year:r,dayOfYear:o}}function Ae(e,t,n){var s,i,r=Ge(e.year(),t,n),a=Math.floor((e.dayOfYear()-r-1)/7)+1;return a<1?s=a+je(i=e.year()-1,t,n):a>je(e.year(),t,n)?(s=a-je(e.year(),t,n),i=e.year()+1):(i=e.year(),s=a),{week:s,year:i}}function je(e,t,n){var s=Ge(e,t,n),i=Ge(e+1,t,n);return(Fe(e)-s+i)/7}C("w",["ww",2],"wo","week"),C("W",["WW",2],"Wo","isoWeek"),L("week","w"),L("isoWeek","W"),A("week",5),A("isoWeek",5),ce("w",te),ce("ww",te,Q),ce("W",te),ce("WW",te,Q),ge(["w","ww","W","WW"],function(e,t,n,s){t[s.substr(0,1)]=Z(e)});function Ie(e,t){return e.slice(t,7).concat(e.slice(0,t))}C("d",0,"do","day"),C("dd",0,0,function(e){return this.localeData().weekdaysMin(this,e)}),C("ddd",0,0,function(e){return this.localeData().weekdaysShort(this,e)}),C("dddd",0,0,function(e){return this.localeData().weekdays(this,e)}),C("e",0,0,"weekday"),C("E",0,0,"isoWeekday"),L("day","d"),L("weekday","e"),L("isoWeekday","E"),A("day",11),A("weekday",11),A("isoWeekday",11),ce("d",te),ce("e",te),ce("E",te),ce("dd",function(e,t){return t.weekdaysMinRegex(e)}),ce("ddd",function(e,t){return t.weekdaysShortRegex(e)}),ce("dddd",function(e,t){return t.weekdaysRegex(e)}),ge(["dd","ddd","dddd"],function(e,t,n,s){var i=n._locale.weekdaysParse(e,s,n._strict);null!=i?t.d=i:y(n).invalidWeekday=e}),ge(["d","e","E"],function(e,t,n,s){t[s]=Z(e)});var Ze="Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),ze="Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),$e="Su_Mo_Tu_We_Th_Fr_Sa".split("_"),qe=de,Be=de,Je=de;function Qe(){function e(e,t){return t.length-e.length}for(var t,n,s,i,r=[],a=[],o=[],u=[],l=0;l<7;l++)t=_([2e3,1]).day(l),n=me(this.weekdaysMin(t,"")),s=me(this.weekdaysShort(t,"")),i=me(this.weekdays(t,"")),r.push(n),a.push(s),o.push(i),u.push(n),u.push(s),u.push(i);r.sort(e),a.sort(e),o.sort(e),u.sort(e),this._weekdaysRegex=new RegExp("^("+u.join("|")+")","i"),this._weekdaysShortRegex=this._weekdaysRegex,this._weekdaysMinRegex=this._weekdaysRegex,this._weekdaysStrictRegex=new RegExp("^("+o.join("|")+")","i"),this._weekdaysShortStrictRegex=new RegExp("^("+a.join("|")+")","i"),this._weekdaysMinStrictRegex=new RegExp("^("+r.join("|")+")","i")}function Xe(){return this.hours()%12||12}function Ke(e,t){C(e,0,0,function(){return this.localeData().meridiem(this.hours(),this.minutes(),t)})}function et(e,t){return t._meridiemParse}C("H",["HH",2],0,"hour"),C("h",["hh",2],0,Xe),C("k",["kk",2],0,function(){return this.hours()||24}),C("hmm",0,0,function(){return""+Xe.apply(this)+T(this.minutes(),2)}),C("hmmss",0,0,function(){return""+Xe.apply(this)+T(this.minutes(),2)+T(this.seconds(),2)}),C("Hmm",0,0,function(){return""+this.hours()+T(this.minutes(),2)}),C("Hmmss",0,0,function(){return""+this.hours()+T(this.minutes(),2)+T(this.seconds(),2)}),Ke("a",!0),Ke("A",!1),L("hour","h"),A("hour",13),ce("a",et),ce("A",et),ce("H",te),ce("h",te),ce("k",te),ce("HH",te,Q),ce("hh",te,Q),ce("kk",te,Q),ce("hmm",ne),ce("hmmss",se),ce("Hmm",ne),ce("Hmmss",se),ye(["H","HH"],Me),ye(["k","kk"],function(e,t,n){var s=Z(e);t[Me]=24===s?0:s}),ye(["a","A"],function(e,t,n){n._isPm=n._locale.isPM(e),n._meridiem=e}),ye(["h","hh"],function(e,t,n){t[Me]=Z(e),y(n).bigHour=!0}),ye("hmm",function(e,t,n){var s=e.length-2;t[Me]=Z(e.substr(0,s)),t[De]=Z(e.substr(s)),y(n).bigHour=!0}),ye("hmmss",function(e,t,n){var s=e.length-4,i=e.length-2;t[Me]=Z(e.substr(0,s)),t[De]=Z(e.substr(s,2)),t[Se]=Z(e.substr(i)),y(n).bigHour=!0}),ye("Hmm",function(e,t,n){var s=e.length-2;t[Me]=Z(e.substr(0,s)),t[De]=Z(e.substr(s))}),ye("Hmmss",function(e,t,n){var s=e.length-4,i=e.length-2;t[Me]=Z(e.substr(0,s)),t[De]=Z(e.substr(s,2)),t[Se]=Z(e.substr(i))});var tt=z("Hours",!0);var nt,st={calendar:{sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[Last] dddd [at] LT",sameElse:"L"},longDateFormat:{LTS:"h:mm:ss A",LT:"h:mm A",L:"MM/DD/YYYY",LL:"MMMM D, YYYY",LLL:"MMMM D, YYYY h:mm A",LLLL:"dddd, MMMM D, YYYY h:mm A"},invalidDate:"00:00",ordinal:"%d",dayOfMonthOrdinalParse:/\d{1,2}/,relativeTime:{future:"in %s",past:"%s ago",s:"a few seconds",ss:"%d seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",w:"a week",ww:"%d weeks",M:"a month",MM:"%d months",y:"a year",yy:"%d years"},months:Te,monthsShort:Ne,week:{dow:0,doy:6},weekdays:Ze,weekdaysMin:$e,weekdaysShort:ze,meridiemParse:/[ap]\.?m?\.?/i},it={},rt={};function at(e){return e?e.toLowerCase().replace("_","-"):e}function ot(e){for(var t,n,s,i,r=0;r=t&&function(e,t){for(var n=Math.min(e.length,t.length),s=0;s=t-1)break;t--}r++}return nt}function ut(t){var e;if(void 0===it[t]&&"undefined"!=typeof module&&module&&module.exports)try{e=nt._abbr,require("./locale/"+t),lt(e)}catch(e){it[t]=null}return it[t]}function lt(e,t){var n;return e&&((n=r(t)?dt(e):ht(e,t))?nt=n:"undefined"!=typeof console&&console.warn&&console.warn("Locale "+e+" not found. Did you forget to load it?")),nt._abbr}function ht(e,t){if(null===t)return delete it[e],null;var n,s=st;if(t.abbr=e,null!=it[e])Y("defineLocaleOverride","use moment.updateLocale(localeName, config) to change an existing locale. moment.defineLocale(localeName, config) should only be used for creating a new locale See http://momentjs.com/guides/#/warnings/define-locale/ for more info."),s=it[e]._config;else if(null!=t.parentLocale)if(null!=it[t.parentLocale])s=it[t.parentLocale]._config;else{if(null==(n=ut(t.parentLocale)))return rt[t.parentLocale]||(rt[t.parentLocale]=[]),rt[t.parentLocale].push({name:e,config:t}),null;s=n._config}return it[e]=new x(b(s,t)),rt[e]&&rt[e].forEach(function(e){ht(e.name,e.config)}),lt(e),it[e]}function dt(e){var t;if(e&&e._locale&&e._locale._abbr&&(e=e._locale._abbr),!e)return nt;if(!o(e)){if(t=ut(e))return t;e=[e]}return ot(e)}function ct(e){var t,n=e._a;return n&&-2===y(e).overflow&&(t=n[ve]<0||11xe(n[pe],n[ve])?ke:n[Me]<0||24je(n,r,a)?y(e)._overflowWeeks=!0:null!=u?y(e)._overflowWeekday=!0:(o=Ee(n,s,i,r,a),e._a[pe]=o.year,e._dayOfYear=o.dayOfYear)}(e),null!=e._dayOfYear&&(r=St(e._a[pe],s[pe]),(e._dayOfYear>Fe(r)||0===e._dayOfYear)&&(y(e)._overflowDayOfYear=!0),n=Ve(r,0,e._dayOfYear),e._a[ve]=n.getUTCMonth(),e._a[ke]=n.getUTCDate()),t=0;t<3&&null==e._a[t];++t)e._a[t]=u[t]=s[t];for(;t<7;t++)e._a[t]=u[t]=null==e._a[t]?2===t?1:0:e._a[t];24===e._a[Me]&&0===e._a[De]&&0===e._a[Se]&&0===e._a[Ye]&&(e._nextDay=!0,e._a[Me]=0),e._d=(e._useUTC?Ve:function(e,t,n,s,i,r,a){var o;return e<100&&0<=e?(o=new Date(e+400,t,n,s,i,r,a),isFinite(o.getFullYear())&&o.setFullYear(e)):o=new Date(e,t,n,s,i,r,a),o}).apply(null,u),i=e._useUTC?e._d.getUTCDay():e._d.getDay(),null!=e._tzm&&e._d.setUTCMinutes(e._d.getUTCMinutes()-e._tzm),e._nextDay&&(e._a[Me]=24),e._w&&void 0!==e._w.d&&e._w.d!==i&&(y(e).weekdayMismatch=!0)}}function Ot(e){if(e._f!==f.ISO_8601)if(e._f!==f.RFC_2822){e._a=[],y(e).empty=!0;for(var t,n,s,i,r,a,o,u=""+e._i,l=u.length,h=0,d=H(e._f,e._locale).match(N)||[],c=0;cn.valueOf():n.valueOf()"}),pn.toJSON=function(){return this.isValid()?this.toISOString():null},pn.toString=function(){return this.clone().locale("en").format("ddd MMM DD YYYY HH:mm:ss [GMT]ZZ")},pn.unix=function(){return Math.floor(this.valueOf()/1e3)},pn.valueOf=function(){return this._d.valueOf()-6e4*(this._offset||0)},pn.creationData=function(){return{input:this._i,format:this._f,locale:this._locale,isUTC:this._isUTC,strict:this._strict}},pn.eraName=function(){for(var e,t=this.localeData().eras(),n=0,s=t.length;nthis.clone().month(0).utcOffset()||this.utcOffset()>this.clone().month(5).utcOffset()},pn.isLocal=function(){return!!this.isValid()&&!this._isUTC},pn.isUtcOffset=function(){return!!this.isValid()&&this._isUTC},pn.isUtc=At,pn.isUTC=At,pn.zoneAbbr=function(){return this._isUTC?"UTC":""},pn.zoneName=function(){return this._isUTC?"Coordinated Universal Time":""},pn.dates=n("dates accessor is deprecated. Use date instead.",fn),pn.months=n("months accessor is deprecated. Use month instead",Ue),pn.years=n("years accessor is deprecated. Use year instead",Le),pn.zone=n("moment().zone is deprecated, use moment().utcOffset instead. http://momentjs.com/guides/#/warnings/zone/",function(e,t){return null!=e?("string"!=typeof e&&(e=-e),this.utcOffset(e,t),this):-this.utcOffset()}),pn.isDSTShifted=n("isDSTShifted is deprecated. See http://momentjs.com/guides/#/warnings/dst-shifted/ for more information",function(){if(!r(this._isDSTShifted))return this._isDSTShifted;var e,t={};return v(t,this),(t=bt(t))._a?(e=(t._isUTC?_:Tt)(t._a),this._isDSTShifted=this.isValid()&&0 maxSize) { const oldestKey = keys[0]; delete obj[oldestKey]; } } IRON.setTracksTimeMemories = function(audioPlayer, newTime = null) { if(audioPlayer.trackMemory){ var time = (newTime != null)? newTime : sr_getTrackCurrentTime(audioPlayer); const $currentTrack = audioPlayer.find('.sr-playlist-item').eq(audioPlayer.currentTrack); var trackDuration = sr_setAudioElementInstance(audioPlayer).duration; trackDuration = isNaN(trackDuration) ? 0 : trackDuration; $currentTrack.data('current-time', time); IRON.setLimitedSizeObject(IRON.localStorageTrackMemory, $currentTrack.data('track-memory-key'), [time, trackDuration], 50); localStorage.setItem('srp_tracks_memories', JSON.stringify(IRON.localStorageTrackMemory) ); } } IRON.fetchThumnbnailsFromItunes = { cachedThumbsArray: [], displayThumbnail: function(img, audioPlayer, track, pos){ const $audioPlayer = $(audioPlayer); const $track = $(track); const isFirstTrackAndNotPlaying = pos === 0 && !$audioPlayer.hasClass('audio-playing'); const isCurrentTrack = $track.hasClass('current'); const showArtwork = $audioPlayer.data('hide-artwork') !== '1' && $audioPlayer.data('hide-artwork') !== 'true'; const $albumArtImg = $audioPlayer.find('.album-art img'); if (img) { if (IRON.sonaar.player.list.tracks ) { if(IRON.sonaar.player.selectedPlayer == audioPlayer || !audioPlayer) { IRON.sonaar.player.list.tracks[pos].poster = img; } } if (!audioPlayer) return; if (isFirstTrackAndNotPlaying || isCurrentTrack) { if (showArtwork) { $audioPlayer.removeClass('sonaar-no-artwork'); if ($albumArtImg.length) { $albumArtImg.attr('src', img); } else { $audioPlayer.find('.album-art').append(''); } srp_getColorsFromImage(audioPlayer, img); } } $track.data('albumart', img); // Save the img in the track data for setMediaSessionAPI if ($audioPlayer.hasClass('show-trackartwork')) { const $trackImg = $track.find('img'); if (!$trackImg.length) { $track.prepend($('', { src: img, class: 'sr_track_cover' })); } else { $trackImg.attr('src', img); } } } else { // No img set if (IRON.sonaar.player.list.tracks) { IRON.sonaar.player.list.tracks[pos].poster = ''; } if (!audioPlayer) return; if (isFirstTrackAndNotPlaying || isCurrentTrack) { $audioPlayer.addClass('sonaar-no-artwork'); $audioPlayer.find('.album-art img').remove(); } $track.data('albumart', ''); if ($track.find('.sr_track_cover').length) { $track.find('.sr_track_cover').remove(); } } }, init: function(that, termArray, audioPlayer, track, pos){ termArray = termArray.split(' - ').join('-').split(' ').join('+'); //termArray='NOFX Linoleum'; var thumb; // image from itunes var apiUrl = 'https://itunes.apple.com/search?term='+termArray; if(termArray == 'Song title unavailable' || termArray == 'No Titles Available'){ // thumb = $.qtmplayerRadioFeedObj.qtFeedData.cover; that.cachedThumbsArray[termArray] = false; that.displayThumbnail(false, audioPlayer, track, pos); return; } if( undefined === that.cachedThumbsArray[termArray] ) { //console.log("Calling iTunes Search API: ", termArray); $.ajax({ type: 'GET', cache: true, url: apiUrl, async: true, context: this, jsonp: false, success: function(json) { if('object' !== typeof( json )){ json = JSON.parse(json); } if(json.resultCount > 0){ thumb = json.results[0].artworkUrl100.split('100x100bb.jpg').join('500x500bb.jpg'); that.cachedThumbsArray[termArray] = thumb; that.displayThumbnail(thumb, audioPlayer, track, pos); return; }else{ that.cachedThumbsArray[termArray] = false; } } }); } else { // return cached image that.displayThumbnail( that.cachedThumbsArray[termArray], audioPlayer, track, pos); return; } }, } IRON.getIceCastInfo = function(audioPlayer = false) { function fetchIcecastInfo(data, icecast_mount, track, trackDataPos, audioPlayer) { if (audioPlayer){ if (track.data('icecast-error') === 1){ return; } } return new Promise(function(resolve, reject) { jQuery.ajax({ type: 'GET', url: data, async: true, jsonp: false, success: function(json) { var resultArray = []; var title = ''; var artist = ''; var artwork = ''; var server_name = ''; if('object' === typeof( json )){ if (json.hasOwnProperty('id')) { // Handle the specific JSON structure if(json['title']){ title = json['title']; } if(json['artist']){ artist = json['artist']; } if(json['cover']){ artwork = json['cover']; } } else if(json.hasOwnProperty('current_track')){ // radio.co if(json.current_track.title){ title = json.current_track.title; } if(json.current_track.artist){ artist = json.current_track.artist; } if(json.current_track.artwork_url){ artwork = json.current_track.artwork_url; } if(json.current_track.artwork_url_large){ artwork = json.current_track.artwork_url_large; } }else if(icecast_mount !== '') { // based on https://stream.p-node.org/json.xsl var source = json.mounts[icecast_mount]; title = source['title']; if(source['artist']){ artist = source['artist']; } if(source['server_name']){ server_name = source['server_name']; } } else { var source = json.icestats.source; if('undefined' === typeof(source)){ return; } if(source[0]){ title = source[0]['title']; if(source[0]['artist']){ artist = source[0]['artist']; } if(source[0]['server_name']){ server_name = source[0]['server_name']; } } else if( source['title'] ){ title = source['title']; if(source['artist']){ artist = source['artist']; } if(source['server_name']){ server_name = source['server_name']; } } } } else if('array' === typeof( json )){ if(icecast_mount !== '') { if("undefined" !== typeof( json[icecast_mount]) ){ title = json[icecast_mount]['title']; } else if( "undefined" !== typeof( json['source'][icecast_mount] ) ){ title = json['source'][icecast_mount]['title']; } } else if(json['icestats']['source']['title']){ title = (json['icestats']['source']['title']); if(json['icestats']['source']['artist']){ artist = json['icestats']['source']['artist']; } if(json['icestats']['source']['server_name']){ server_name = json['icestats']['source']['server_name']; } } else if(json['icestats']['source'][0]['title']){ title = (json['icestats']['source'][0]['title']); if(json['icestats']['source']['artist']){ artist = json['icestats']['source']['artist']; } if(json['icestats']['source']['server_name']){ server_name = json['icestats']['source']['server_name']; } } } //title = "Em & Katie - Date Night Collective"; //test...should display an image from itunes //artwork = ''; resultArray['title'] = title; resultArray['artist'] = artist; resultArray['server_name'] = server_name; resultArray['artwork'] = artwork; printResult(resultArray, track, trackDataPos); }, error: function(xhr, status, error) { if(audioPlayer){ audioPlayer.icecastLoaded = true; track.data('icecast-error', 1); $(track).find('.tracklist-item-title').text(track.originalText); } setOriginalTracksonSticky(trackDataPos); } }); }); } function printResult(result, track, trackDataPos){ lookfortitle = result['title'].replace(result['server_name'], ''); if(result['artwork'] !== ''){ // there is an image set in the JSON so we use it instead of the iTunes API IRON.fetchThumnbnailsFromItunes.displayThumbnail(result['artwork'], audioPlayer, track, trackDataPos); }else{ IRON.fetchThumnbnailsFromItunes.init(IRON.fetchThumnbnailsFromItunes, lookfortitle, audioPlayer, track, trackDataPos); } setStickyTracks(result, trackDataPos); if(sonaar_music.option.show_artist_name === "on"){ artist_string = (result['artist']) ? ' ' + sonaar_music.option.artist_separator + ' ' + result['artist'] + '': ''; result['title'] = result['title'] + artist_string; } if(audioPlayer){ audioPlayer.icecastLoaded = true; if(trackDataPos == 0 && !$(audioPlayer).find('.playlist li.current').length){ $(audioPlayer).find('.sr_it-playlist-title').text(result['server_name']); $(audioPlayer).find('.album-title').text(result['server_name']); $(audioPlayer).find('.track-title').html(result['title']); } if ($(audioPlayer).find('.playlist li').length == 1) { $(audioPlayer).find('.album-title').text(result['server_name']); $(audioPlayer).find('.srp_player_boxed .album-title').html(result['title']); //Yes, we show the track title in the album-title field in this case $(audioPlayer).find('.track-title').html(result['title']); } else { if($(track).hasClass('current')){ $(audioPlayer).find('.sr_it-playlist-title').text(result['server_name']); $(audioPlayer).find('.album-title').text(result['server_name']); $(audioPlayer).find('.track-title').html(result['title']); } } $(track).find('.tracklist-item-title').html(result['title']); } } function startICInterval(audioPlayer = false){ if (!this.icecastInterval) { //start audioplayer interval to fetch every 15 seconds this.icecastInterval = setInterval(function() { IRON.getIceCastInfo(audioPlayer); }, 15000); } } function convertTrackURLtoJson(url){ let parsedUrl = new URL(url); url = parsedUrl.origin + parsedUrl.pathname.replace(/\/[^/]*$/, "/status-json.xsl"); return url; } function setLoadStatus(pos, track = null, audioPlayer){ if (IRON.sonaar.player.list.tracks && !IRON.sonaar.player.icecastLoaded) { if(typeof IRON.sonaar.player.list.tracks[pos] !== 'undefined'){ IRON.sonaar.player.list.tracks[pos].trackTitleOriginalText = IRON.sonaar.player.list.tracks[pos].track_title; IRON.sonaar.player.list.tracks[pos].albumTitleOriginalText = IRON.sonaar.player.list.tracks[pos].album_title; IRON.sonaar.player.list.tracks[pos].track_title = 'Retrieving info...'; IRON.sonaar.player.list.tracks[pos].album_title = 'Retrieving info...'; } } if(audioPlayer){ if(!audioPlayer.icecastLoaded){ track.originalText = $(track).find('.tracklist-item-title').text(); $(track).find('.tracklist-item-title').text('Retrieving info...'); } } } function setStickyTracks(result, pos){ if (IRON.sonaar.player.list.tracks && typeof IRON.sonaar.player.list.tracks[pos] !== 'undefined') { if(IRON.sonaar.player.selectedPlayer == audioPlayer || !audioPlayer) { // make sure the sticky is related to the current player widget selected. IRON.sonaar.player.icecastLoaded = true; IRON.sonaar.player.list.tracks[pos].track_title = result['title']; IRON.sonaar.player.list.tracks[pos].album_title = result['server_name']; if(result['artist']){ IRON.sonaar.player.list.tracks[pos].track_artist = result['artist']; } } } } function setOriginalTracksonSticky(pos){ if (IRON.sonaar.player.list.tracks) { IRON.sonaar.player.icecastLoaded = true; IRON.sonaar.player.list.tracks[pos].track_title = IRON.sonaar.player.list.tracks[pos].trackTitleOriginalText; IRON.sonaar.player.list.tracks[pos].album_title = IRON.sonaar.player.list.tracks[pos].albumTitleOriginalText; } } if(!audioPlayer){ IRON.sonaar.player.list.tracks.forEach(function(track) { if (!track.icecast_json) { return; } const icecast_mount = (track.icecast_mount == false) ? '' : track.icecast_mount; const jsonFile = track.icecast_json; if (jsonFile) { const trackDataPos = track.track_pos; setLoadStatus(trackDataPos, track, audioPlayer); fetchIcecastInfo(jsonFile, icecast_mount, track, trackDataPos, audioPlayer); } }); } if(audioPlayer){ const playlistItems = $(audioPlayer).find('.playlist li[data-icecast_json!=""]'); playlistItems.each(function() { const jsonFile = $(this).data('icecast_json'); if (jsonFile) { const track = $(this); const trackDataPos = $(this).index(); const icecast_mount = $(this).data('icecast_mount') setLoadStatus(trackDataPos, track, audioPlayer); fetchIcecastInfo(jsonFile, icecast_mount, track, trackDataPos, audioPlayer); } }); } startICInterval(audioPlayer); } function startAudioSpectrum( audioPlayer, location = false, restart = false ){ if( audioPlayer == null ) return; // Check if is the sticky player spectrum let isStickyPlayer ; if( audioPlayer == '#sonaar-player' ){ isStickyPlayer = true; audioPlayer = $('#sonaar-player'); }else{ isStickyPlayer = false; } if(! audioPlayer.hasClass('srp_player_spectrum') && !isStickyPlayer){ //Exit if spectrum is not enabled return; } if( // Avoid to start the spectrum before user gesture when continuous player is enabled webAudioNotSupported || isStickyPlayer && //If the spectrum is from the sticky IRON.audioPlayer.stickyEnable && // If the sticky is enabled document.getElementById("sonaar-audio").paused //if the player is not playing yet ){ return; } var player; // Create spectrum container const container = document.createElement('div'); container.className = 'srp_spectrum_container srp_hidden'; //SET SPECTRUM CANVAS LOCATION const playerNum = srp_convertPlayerIdToPlayerNum(audioPlayer.attr('id')); if(playerNum){ audioPlayer = IRON.players[playerNum].audioPlayer; // Get the audio player from the IRON.players array to reach audioPlayer attributes Eq:"adaptiveColors" } audioPlayer.spectrumAnimation = true; IRON.sonaar.spectrumAnimation = true; if( ! IRON.audioPlayer.stickyEnable && isStickyPlayer || // If the sticky is disabled and the spectrum is from the sticky ! isStickyPlayer && playerNum == null //return if the player is not found ){ return; } if(isStickyPlayer){ if(sonaar_music.option.sticky_spectro_responsive === 'hide_tablet'){ audioPlayer.addClass('srp_hide_spectro_tablet'); audioPlayer.addClass('srp_hide_spectro_mobile'); }else if(sonaar_music.option.sticky_spectro_responsive === 'hide_mobile'){ audioPlayer.addClass('srp_hide_spectro_mobile'); } } if( window.matchMedia("(max-width: 768px)").matches && audioPlayer.hasClass('srp_hide_spectro_tablet') || //Disable on tablet enabled window.matchMedia("(max-width: 480px)").matches && audioPlayer.hasClass('srp_hide_spectro_mobile') //Disable on Mobile enabled ){ if(isStickyPlayer){ IRON.sonaar.spectrumAnimation = false; } audioPlayer.spectrumAnimation = false; return; } // spectro ="color1:#FF0064|color2:#0073FF|shadow:|barCount:500|barWidth:10|barGap:1|canvasHeight:100|halign:center|valign:bottom|spectroStyle:bars|sharpFx:|reflectFx:|gradientDirection:vertical|enableOnTracklist:|bounceClass:.control, .menu-item-1273, .elementor-element-377841ec|bounceVibrance:58|bounceBlur:true" const spectro = (IRON.sonaar.player.selectedPlayer != null)? IRON.sonaar.player.selectedPlayer.data("spectro"): audioPlayer.data("spectro"); const spectroValues = ( typeof spectro === 'string') ? spectro.split('|').reduce((obj, item) => { const parts = item.split(':'); obj[parts[0]] = !isNaN(parts[1]) && parts[1] !== "" ? parseInt(parts[1]) : parts[1]; return obj; }, {}) : false; if(spectroValues['color1'] == '' && spectroValues['color2'] != ''){ spectroValues['color1'] = spectroValues['color2']; spectroValues['color2'] = ''; } if (isStickyPlayer){ if(IRON.sonaar.player.selectedPlayer != null && IRON.sonaar.player.selectedPlayer.adaptiveColors){ var color1 = (spectroValues['color1'] == '')? 'rgba(0,0,0,0)' : spectroValues['color1'];// Set transparent color as default color if adaptive colors is enabled so the spectrum will be transparent until adaptive colors is applied }else{ var color1 = sonaar_music.option.sticky_spectro_color1 || false; } var color2 = (IRON.sonaar.player.selectedPlayer != null && IRON.sonaar.player.selectedPlayer.adaptiveColors)? spectroValues['color2'] : sonaar_music.option.sticky_spectro_color2 || false; // Set transparent color as default color if adaptive colors is enabled so the spectrum will be transparent until adaptive colors is applied var barCount = parseInt(sonaar_music.option.sticky_spectro_barcount) || 60; var barWidth = parseInt(sonaar_music.option.sticky_spectro_barwidth) || 4; var barGap = sonaar_music.option.sticky_spectro_bargap !== undefined && sonaar_music.option.sticky_spectro_bargap !== null ? parseInt(sonaar_music.option.sticky_spectro_bargap) : 2; var canvasHeight = sonaar_music.option.sticky_spectro_canvasheight || 70; var barsAlignment = sonaar_music.option.sticky_spectro_halign || 'left'; var barsVerticalAlignment = sonaar_music.option.sticky_spectro_valign || 'bottom'; var spectroStyle = sonaar_music.option.sticky_spectro_style || 'bars'; var blockPointu = (sonaar_music.option.sticky_spectro_sharpends === "true") ? true : false; var shockWaveVibrance = parseInt(sonaar_music.option.sticky_spectro_vibrance) || 40; var blockHeight = parseInt(sonaar_music.option.sticky_spectro_blocheight) || 2; var blockGap = parseInt(sonaar_music.option.sticky_spectro_blockgap) || 2; var spectroReflect = (sonaar_music.option.sticky_spectro_reflect === "true") ? true : false; var spectroShadow = (sonaar_music.option.sticky_spectro_shadow === "true") ? true : false; var spectroGradientDir = sonaar_music.option.sticky_spectro_gradientdir || 'vertical'; var stickyContainer = sonaar_music.option.sticky_spectro_container || 'inside'; var stickyPosBottom = sonaar_music.option.sticky_spectro_posbottom || '50'; var stickyPosLeft = sonaar_music.option.sticky_spectro_posleft || '0'; var mobileStickyPosBottom = sonaar_music.option.mobile_sticky_spectro_posbottom || '10'; var mobileStickyPosLeft = sonaar_music.option.mobile_sticky_spectro_posleft || '0'; var tracklistSpectrum = false; }else{ var color1 = spectroValues['color1'] || false; var color2 = spectroValues['color2'] || false; var spectroShadow = (spectroValues['shadow'] !== "true") ? false : true; var barCount = spectroValues['barCount'] || 60; var barWidth = spectroValues['barWidth'] || 4; var barGap = spectroValues['barGap'] || 2; var canvasHeight = spectroValues['canvasHeight'] || 100; var barsAlignment = spectroValues['halign'] || 'left'; var barsVerticalAlignment = spectroValues['valign'] || 'bottom'; var spectroStyle = spectroValues['spectroStyle'] || 'bars'; var blockPointu = spectroValues['sharpFx'] || false; var shockWaveVibrance = spectroValues['shockwaveVibrance']/100 || 0.4; var blockHeight = spectroValues['blockHeight'] || '2'; var blockGap = spectroValues['blockGap'] || '2'; var spectroReflect = spectroValues['reflectFx'] || false; var spectroGradientDir = spectroValues['gradientDirection'] || 'vertical'; var tracklistSpectrum = spectroValues['enableOnTracklist'] || false; var selectors = spectroValues['bounceClass'] || false; var selectorMaxScale = spectroValues['bounceVibrance'] || 100; var selectorBlur = spectroValues['bounceBlur'] || false; } if (selectors){ selectors = selectors.split(','); selectors = selectors.map((val) => val.trim()); } spectroReflect = ( spectroReflect == 'false' || spectroReflect == '' ) ? false : true; audioPlayer.spectroReflect = spectroReflect; tracklistSpectrum = ( tracklistSpectrum == 'true' ) ? true : false; tracklistSpectrum = ( audioPlayer != '#sonaar-player' )? tracklistSpectrum : false; if( playerNum != null && !audioPlayer.parents('.playlist_enabled').length && tracklistSpectrum){ return; } const pixelFx = (spectroStyle === 'bricks') ? true : false; if( !location && playerNum != null && !tracklistSpectrum || !location && playerNum != null && tracklistSpectrum && $(audioPlayer).filter('.show-playlist').length == 0){ location = (audioPlayer.find('.srp_spectrum_box').length)? audioPlayer.find('.srp_spectrum_box') : audioPlayer.find('.player'); }else if( !location && playerNum != null && tracklistSpectrum ){ location = audioPlayer.find('.sr-playlist-item.current .tracklist-item-title'); }else{ if(isStickyPlayer){ if (stickyContainer === "outside"){ location = ( IRON.sonaar.player.isSmallDevice )? audioPlayer.find('.srp_extendedPlayer .sr_progressbar_sticky') : audioPlayer; }else{ location = audioPlayer.find('#sPlayer'); } }else{ location = audioPlayer; } } var totalWidth = (barWidth + barGap) * barCount; //CANVAS CREATION let canvas; let idIndex = (playerNum != null)? '-' + playerNum : ''; let trackIndex = audioPlayer.find('.sr-playlist-item.current').index(); idIndex = ( tracklistSpectrum && audioPlayer.find('.sr-playlist-item.current').length )? idIndex + '-' + trackIndex : idIndex ; idIndex = (isStickyPlayer)? '-sticky' : idIndex ; const canvasId = 'srp_spectrum' + idIndex; if( $( '#' + canvasId ).length ){ canvas = $('#' + canvasId)[0]; }else{ canvas = document.createElement('canvas'); location.prepend(container); canvas.id = canvasId; canvas.classList = 'srp_spectrum'; container.appendChild(canvas); } const ctx = canvas.getContext('2d'); if(isStickyPlayer){ if (stickyContainer === "outside"){ $('#sonaar-player .srp_spectrum_container').css('bottom', stickyPosBottom + 'px').css('left', stickyPosLeft + 'px'); $('#sonaar-player .srp_extendedPlayer .srp_spectrum_container').css('bottom', mobileStickyPosBottom + 'px').css('left', mobileStickyPosLeft + 'px'); }else{ audioPlayer.find('.mobileProgress').css('display', 'block'); audioPlayer.find('wave').css('display', 'none'); audioPlayer.find('.sonaar_wave_cut').css('display', 'none'); audioPlayer.find('.sonaar_wave_base').css('display', 'none'); } } if(spectroStyle == 'selectors'){ audioPlayer.find('.srp_spectrum_container').css('display', 'none'); } let maxCanvasWidth = location.width(); if( tracklistSpectrum && //If tracklist spectrum is enabled $(audioPlayer).hasClass('srp_tracklist_grid') && //If tracklist is grid audioPlayer.find('.srp_spectrum_container').length && window.getComputedStyle( audioPlayer.find('.srp_spectrum_container')[0] ).getPropertyValue("position") == 'absolute' //If spectrum is set to absolute position ){ maxCanvasWidth = 999999; } totalWidth = totalWidth > maxCanvasWidth ? maxCanvasWidth : totalWidth; if((barWidth + barGap) * barCount > maxCanvasWidth){ barsAlignment = 'left'; } canvas.width = totalWidth; canvas.height = canvasHeight; container.style.height = canvasHeight + 'px'; audioPlayer.spectrumColor1 = color1; audioPlayer.spectrumColor2 = color2; if(audioPlayer.adaptiveColors && !color2 ){ color2 = (color1 === false)? audioPlayer.paletteColorsHex[0]: false; audioPlayer.spectrumColor2 = false; } if(audioPlayer.adaptiveColors && !color1){ color1 = audioPlayer.paletteColorsHex[1]; audioPlayer.spectrumColor1 = false; } if (color2) { // make the spectrum gradient colorized! if (spectroGradientDir === 'vertical'){ var gradient = ctx.createLinearGradient(0, 0, 0, canvasHeight); // vertical }else{ const startPos = barsAlignment === 'left' ? 1 * (barWidth + barGap) : (canvas.width / 2) - ((barCount * (barWidth + barGap)) / 2) + (1 * (barWidth + barGap)) + (barGap/2); var gradient = ctx.createLinearGradient(startPos, 0, totalWidth+startPos, 0); // horizontal } gradient.addColorStop(0.25, color1); gradient.addColorStop(1, color2); } if (color1){ spectrumColor = color1; }else{ // make a rainbow gradient without any dynamic values var gradient = ctx.createLinearGradient(0, 0, canvas.width, 0); var hues = [0, 60, 120, 180, 240, 300, 360]; hues.forEach(function(hue, i) { gradient.addColorStop(i/hues.length, 'hsl(' + hue + ', 100%, 50%)'); }); spectrumColor = gradient; //define a default color1 for the spectroReflect below because its not defined yet color1 = '#ffffff'; } // barsVerticalAlignment = 'middle'; if (spectroReflect){ barsVerticalAlignment = 'middle'; srp_spectroReflect(ctx, canvas, 2.5, color1, color2 ); ctx.lineWidth = barWidth; }else{ if(color2 || spectroReflect){ spectrumColor = gradient; } ctx.strokeStyle = spectrumColor; ctx.fillStyle = spectrumColor; ctx.imageSmoothingEnabled = true; ctx.lineWidth = barWidth; } if(spectroShadow){ ctx.shadowColor = color1; ctx.shadowBlur = 10; } if(restart){ initRenderFrame(); return; } //GET THE MEDIA ELEMENT if(IRON.audioPlayer.stickyEnable){ if (typeof myaudioElement !== 'undefined'){ initRenderFrame(); return; } myaudioElement = document.getElementById('sonaar-audio') }else{ if (typeof IRON.players[playerNum].audioElement !== 'undefined'){ IRON.players[playerNum].audioElement = audioPlayer.find('audio')[0]; initRenderFrame(); return; } IRON.players[playerNum].audioElement = audioPlayer.find('audio')[0]; myaudioElement = IRON.players[playerNum].audioElement; } myaudioElement.crossOrigin = 'anonymous' //SET THE MEDIA ELEMENT AS THE SOURCE OF THE AUDIO CONTEXT AND CONNECT IT TO THE ANALYSER var sonaarAudioContext = new AudioContext(); sonaarAudioContext.onstatechange = function() { if (sonaarAudioContext.state === 'suspended' || sonaarAudioContext.state === 'interrupted') { // Fix iOS Lockscreen issue sonaarAudioContext.resume(); } }; var analyser; player = IRON.audioPlayer.stickyEnable ? IRON.sonaar.player : IRON.players[playerNum]; player.sonaarAnalyser = sonaarAudioContext.createAnalyser(); analyser = player.sonaarAnalyser; var sonaarTrack = sonaarAudioContext.createMediaElementSource(myaudioElement); sonaarTrack.connect(analyser) sonaarTrack.connect(sonaarAudioContext.destination) function initRenderFrame() { var frameAnimationCount = 0; player = IRON.audioPlayer.stickyEnable ? IRON.sonaar.player : IRON.players[playerNum]; setTimeout(function(){ $( '#' + canvasId ).parents('.srp_spectrum_container').removeClass('srp_hidden'); }, 450); function renderFrame() { const frequencyBinCount = 1024; let data = new Uint8Array(frequencyBinCount); player.sonaarAnalyser.frequencyBinCount = frequencyBinCount; const canvasAnimation = requestAnimationFrame(renderFrame); if (spectroStyle !== 'string' && spectroStyle !== 'selectors') { player.sonaarAnalyser.getByteFrequencyData(data); } else { player.sonaarAnalyser.getByteTimeDomainData(data); } ctx.clearRect(0, 0, canvas.width, canvas.height); ctx.save(); ctx.beginPath(); ctx.rect(0, 0, canvas.width, canvas.height); ctx.clip(); function scaleElements(data){ // Function to scale the elements based on the frequency if (!selectors) return; for ( j = 0; j < selectors.length; j++) { let minOriginalScale; let maxScalePercent = selectorMaxScale; // adjust this value to control the maximum scale amount (10-100) let maxScale = 1 + (maxScalePercent / 100) * 0.2; // Calculate the maximum scale based on the percentage 1.12 let originalScaleAmount = data[0]; if(spectroStyle=='string' || spectroStyle=='selectors'){ minOriginalScale = 128; // depending the spectro, they dont output the same frequency range so we need to adjust the minimum scale }else{ minOriginalScale = 0; } let maxOriginalScale = 200; let minDesiredScale = 1; let maxDesiredScale = maxScale; let desiredScaleAmount = minDesiredScale + (originalScaleAmount - minOriginalScale) * (maxDesiredScale - minDesiredScale) / (maxOriginalScale - minOriginalScale); let newTransform = "scale(" + desiredScaleAmount + ")"; document.querySelector(selectors[j]).style.transform = newTransform; if (selectorBlur === 'true'){ let maxBlur = 1.1; // adjust this value to control the maximum blur amount let blurAmount = data[0] / 128 * maxBlur; if(data[0] < 129) { document.querySelector(selectors[j]).style.filter = 'blur(0px)'; }else{ document.querySelector(selectors[j]).style.filter = `blur(${blurAmount}px)`; } } } } scaleElements(data) if(spectroStyle === 'string'){ /* // // START OF STRINGGG SOUNDWAVE STYLE // */ let vibration = 0.06 // adjust this value to control the amount of smoothing let previousX = 0; // keep track of the previous x value let previousY = (data[0] / 128) * canvas.height / 2; // keep track of the previous y value ctx.beginPath(); ctx.lineWidth = barWidth; for(let i = 0; i < frequencyBinCount; i++) { let x = i / frequencyBinCount * canvas.width; let y = (data[i] / 128) * canvas.height / 2; x = previousX + vibration * (x - previousX); // apply exponential moving average to x y = previousY + vibration * (y - previousY); // apply exponential moving average to y previousX = x; previousY = y; if(i === 0) { ctx.moveTo(x, y); } else { ctx.lineTo(x, y); } } ctx.stroke(); } if (spectroStyle === 'bars' || spectroStyle === 'bricks') { /* // // START OF BARS/BRICKS SOUNDWAVE STYLE // */ for (let i = 0; i < barCount; i++) { const amplitude = data[i]; const percent = (pixelFx && barsVerticalAlignment !== 'middle' ) ? amplitude / 128 : amplitude / 256; const height = canvas.height * percent; if (barsVerticalAlignment === 'bottom') { var offset = (pixelFx) ? canvas.height : canvas.height - height - 1; } else if (barsVerticalAlignment === 'middle') { var offset = (pixelFx) ? canvas.height/2 : (canvas.height - height) / 2;; } else { var offset = 0; } if (barsAlignment === 'left') { var barX = i * (barWidth + barGap); } else if (barsAlignment === 'right') { var barX = canvas.width - ((barCount - i) * (barWidth + barGap)) - barWidth; } else { var barX = (canvas.width / 2) - ((barCount * (barWidth + barGap)) / 2) + (i * (barWidth + barGap)); } if (pixelFx){ blockHeight = blockHeight; for (let j = 0; j < height/2; j += blockHeight+blockGap) { const dotSize = (blockPointu) ? barWidth - (j * (barWidth / (height/2))) : barWidth; if(barsVerticalAlignment === 'bottom'){ ctx.fillRect(barX + (barWidth / 2) - (dotSize / 2), offset - j - blockHeight - blockGap, dotSize, blockHeight); }else{ ctx.fillRect(barX + (barWidth / 2) - (dotSize / 2), offset + j, dotSize, blockHeight); ctx.fillRect(barX + (barWidth / 2) - (dotSize / 2), offset - j - blockHeight - blockGap, dotSize, blockHeight); } } }else{ ctx.fillRect(barX, offset, barWidth, height); } } } else if (spectroStyle === 'shockwave') { /* // // START OF Shockwave style // */ let maxAmplitude = Math.max(...data); let amplitudeFactor = canvas.height / (2 * maxAmplitude) *10; ctx.beginPath(); ctx.moveTo(0, canvas.height/2); for (let i = 0; i < frequencyBinCount; i++) { const amplitude = data[i]; const y = canvas.height/2 + (amplitude * amplitudeFactor) * 0.1 * Math.sin(i * shockWaveVibrance ); ctx.lineTo(i, y); } ctx.stroke(); } // Hide and Stop the animation according to the plugin sticky player settings if(isStickyPlayer && !IRON.sonaar.spectrumAnimation){ audioPlayer.find('.srp_spectrum_container').addClass('srp_hidden'); IRON.canvasAnimation = IRON.canvasAnimation.filter(function(el) { return el !== canvas.id; }); cancelAnimationFrame(canvasAnimation) } if( ! isStickyPlayer && $('.iron-audioplayer').length && ( (! audioPlayer.hasClass('sr_selectedPlayer') && IRON.audioPlayer.stickyEnable) || (! audioPlayer.hasClass('sr_selected') && !IRON.audioPlayer.stickyEnable) || (tracklistSpectrum && trackIndex >= 0 && audioPlayer.find('.sr-playlist-item.current').index() >= 0 && trackIndex != audioPlayer.find('.sr-playlist-item.current').index()) || ! audioPlayer.spectrumAnimation || ! $('#' + audioPlayer.attr('id') ).length // if the player is removed from the DOM ) ){ if(tracklistSpectrum){ audioPlayer.find('.sr-playlist-item').eq(trackIndex).find('.srp_spectrum_container').addClass('srp_hidden') }else{ audioPlayer.find('.srp_spectrum_container').addClass('srp_hidden'); } IRON.canvasAnimation = IRON.canvasAnimation.filter(function(el) { return el !== canvas.id; }); cancelAnimationFrame(canvasAnimation) } if ( myaudioElement.paused ) {//if media is paused during the animation during 50 frames, stop the animation frameAnimationCount++; if ( frameAnimationCount > 50 ) { if (myaudioElement.paused) { IRON.canvasAnimation = IRON.canvasAnimation.filter(function(el) { return el !== canvas.id; }); cancelAnimationFrame(canvasAnimation); } frameAnimationCount = 0; } } } if (! IRON.canvasAnimation.includes(canvas.id) ) { IRON.canvasAnimation.push(canvas.id); renderFrame(); } } ctx.restore(); initRenderFrame(); } function srp_spectroReflect(ctx, canvas, gapDistance, color1, color2 ){ let objectHeight = canvas.height; // height of the object let colorStop1 = (gapDistance / objectHeight) + 0.5; var gradient = ctx.createLinearGradient(0, 0, 0, canvas.height); // vertical gradient.addColorStop(0, color1); if (color2) { gradient.addColorStop(0.5, color2); gradient.addColorStop(0.5, srp_parseColor(color2, 0)); gradient.addColorStop(colorStop1, srp_parseColor(color2, 0)); gradient.addColorStop(colorStop1, srp_parseColor(color2, 0.4)); }else{ gradient.addColorStop(0.5, color1); gradient.addColorStop(0.5, srp_parseColor(color1, 0)); gradient.addColorStop(colorStop1, srp_parseColor(color1, 0)); gradient.addColorStop(colorStop1, srp_parseColor(color1, 0.4)); } gradient.addColorStop(1, srp_parseColor(color1, 0)); ctx.strokeStyle = gradient; ctx.fillStyle = gradient; } function srp_parseColor(color, alpha) { // Ensure that alpha is a value between 0 and 1 alpha = Math.min(Math.max(alpha, 0), 1); if (color.startsWith("#")) { if (color.length === 9) { // extract the original alpha value let original_alpha = parseInt(color.slice(-2), 16); // calculate the new alpha value alpha = (Math.round(original_alpha * alpha) * 100 / 25500).toFixed(2); } }else if(color.startsWith("rgba(")) { // RGBA color code let values = color.slice(5, -1).split(","); values[3] = (values[3] * alpha).toFixed(2); return "rgba(" + values.join(",") + ")"; } else { throw new Error("Unsupported color format: " + color); } result = "rgba(" + parseInt(color.slice(1, 3), 16) + ", " + parseInt(color.slice(3, 5), 16) + ", " + parseInt(color.slice(5, 7), 16) + ", " + alpha + ")"; return result; } function srp_getColorsFromImage(audioPlayer,artworkUrl) { var affectSticky = (sonaar_music.option.sticky_player_disable_adaptive_colors === 'true') ? false : true; // Set to true or false based on your requirement if(!audioPlayer.adaptiveColors){ $('#srp_stickyplayer').remove(); audioPlayer.prevAll('style:not(#srp-widget-player-style)').remove(); return; } if(artworkUrl == null || artworkUrl == ''){ setTimeout(function() { $(audioPlayer).css("opacity", 1); return; }, 1000); } const colorThief = new ColorThief(); const img = new Image(); img.addEventListener('load', function() { paletteColors = colorThief.getPalette(img, 5); const rgbToHex = (r, g, b) => '#' + [r, g, b].map(x => { const hex = x.toString(16) return hex.length === 1 ? '0' + hex : hex }).join('') //convert all palette colors to hex audioPlayer.paletteColorsHex = []; for (var i = 0; i < paletteColors.length; i++) { var color = rgbToHex(paletteColors[i][0], paletteColors[i][1], paletteColors[i][2]); audioPlayer.paletteColorsHex.push(color); } if(audioPlayer.adaptiveColors == 'random'){ // randomize the paletteColorsHex array audioPlayer.paletteColorsHex = audioPlayer.paletteColorsHex.sort(function() { return 0.5 - Math.random() }); }else if(audioPlayer.adaptiveColors == '2'){ // reverse the colors audioPlayer.paletteColorsHex = audioPlayer.paletteColorsHex.reverse(); }else if(audioPlayer.adaptiveColors == '3'){ //move the first color to the last position audioPlayer.paletteColorsHex.push(audioPlayer.paletteColorsHex.shift()); }else if(audioPlayer.adaptiveColors == '4'){ // move second color to the first position audioPlayer.paletteColorsHex.unshift(audioPlayer.paletteColorsHex[1]); } function getContrastColor(color) { var luma = (color.charAt(0) === '#') ? (0.2126 * parseInt(color.slice(1, 3), 16) + 0.7152 * parseInt(color.slice(3, 5), 16) + 0.0722 * parseInt(color.slice(5, 7), 16)) : (0.2126 * parseInt(color.slice(0, 2), 16) + 0.7152 * parseInt(color.slice(2, 4), 16) + 0.0722 * parseInt(color.slice(4, 6), 16)); return (luma < 130) ? '#fff' : '#000'; } var foregroundColor = getContrastColor(audioPlayer.paletteColorsHex[0]); var paletteColorsHex_1_contrast = getContrastColor(audioPlayer.paletteColorsHex[1]); //create a darker color function function darkerColor(color, percent) { var num = parseInt(color.replace("#",""),16), amt = Math.round(2.55 * percent), R = (num >> 16) - amt, G = (num >> 8 & 0x00FF) - amt, B = (num & 0x0000FF) - amt; return "#" + (0x1000000 + (R<255?R<1?0:R:255)*0x10000 + (G<255?G<1?0:G:255)*0x100 + (B<255?B<1?0:B:255)).toString(16).slice(1); } //create a lighter color function function lighterColor(color, percent) { var num = parseInt(color.replace("#",""),16), amt = Math.round(2.55 * percent), R = (num >> 16) + amt, G = (num >> 8 & 0x00FF) + amt, B = (num & 0x0000FF) + amt; return "#" + (0x1000000 + (R<255?R<1?0:R:255)*0x10000 + (G<255?G<1?0:G:255)*0x100 + (B<255?B<1?0:B:255)).toString(16).slice(1); } /* //---------------- // START DEBUG // //---------------- //delete color-square audioPlayer.find('.color-square').remove(); // create small square color from paletteColorsHex and display them relative to the audioplayer var colorSquare = ''; for (var i = 0; i < audioPlayer.paletteColorsHex.length; i++) { colorSquare += '

      '; } // add colorsquare in iron_widget_radio audioPlayer.prepend(colorSquare); //---------------- // END DEBUG // //---------------- */ if (! (audioPlayer.adaptiveColorsFreeze == true && $('#srp_stickyplayer').attr('data-player-source') == audioPlayer.id) ){ $('#srp_stickyplayer').remove(); audioPlayer.prevAll('style').not('#srp-widget-player-style').remove(); //create style in the head $('head').append(''); audioPlayer.before(''); } player_uid = '[data-id="' + audioPlayer.data('id') + '"] '; player_floated = (audioPlayer.data('playertemplate') == 'skin_float_tracklist') ? true : false; const cssColor = [ { target: '\ div#sonaar-player .control div,\ div#sonaar-player .playlist,\ div#sonaar-player .playlist .tracklist li.active span,\ div#sonaar-player .playlist .title,\ div#sonaar-player .playlist .tracklist li a,\ div#sonaar-player .sricon-volume,\ div#sonaar-player .player .sr_progressbar_sticky .timing,\ div#sonaar-player .player .store .track-store li a,\ div#sonaar-player .sonaar-extend-button,\ .srmp3_singning p[begin]:not(.srmp3_lyrics_read ~ p),\ .playlist .audio-track .sricon-play,\ .playlist li.current .audio-track,\ .playlist li.current .track-number,\ .playlist li.current .audio-track .srp_trackartist,\ .srp-play-button .sricon-play,\ .sr_progressbar .currentTime,\ .sr_progressbar .totalTime,\ .srp_player_boxed .srp_noteButton,\ .playlist .srp_pagination, .srp_ellipsis,\ .srp_pagination_container .srp_pagination_arrows,\ .album-store,\ .album-player .album-title, .album-player .track-title,\ div#sonaar-player .srp_ext_control,\ div#sonaar-player .srp_ellipsis_btn, div#sonaar-player .srp_collapse_btn,\ .control', css: 'color', value: audioPlayer.paletteColorsHex[1] }, { target: '\ div#sonaar-player,\ div#sonaar-player .playlist,\ div#sonaar-player .player .sr_progressbar_sticky .volume .slider-container,\ div#sonaar-player.sr-float .playlist,\ div#sonaar-player.sr-float .close.btn-player,\ div#sonaar-player.sr-float .player.sr-show_controls_hover .playerNowPlaying,\ div#sonaar-player .srp_extendedPlayer_container .srp_extendedPlayer,\ div#sonaar-player .srp_extendedPlayer_container .srp_ext_overlay_panel,\ div#sonaar-player .srp_extendedPlayer_container .srp_ext_section,\ .srp_note', css: 'background-color', value: audioPlayer.paletteColorsHex[0] }, { target: '\ .album-player,\ .srp_track_description,\ .playlist li .audio-track,\ .playlist li .audio-track .srp_trackartist,\ .playlist li .track-number,\ .srp_search_container .fa-search,\ .srp_search_container .srp_search,\ .sr_it-playlist-publish-date,\ .srp_playlist_duration,\ .srp_trackCount,\ .srp_note,\ div#sonaar-player,\ #sonaar-modal div.sr_popup-content,\ div#sonaar-player .playlist .tracklist li span,\ div#sonaar-player .srp_ext_overlay_panel,\ div#sonaar-player .srp_extendedPlayer_container .srp_ext_overlay_panel .srp-fav-bt,\ div#sonaar-player .srp_extendedPlayer_container .srp-fav-bt,\ div#sonaar-player .srp_ext_featured_cta,\ div#sonaar-player .metadata-inner', css: 'color', value: foregroundColor }, { target: '#sonaar-modal .srp-modal-variation-list .srp-modal-variant-selector', css: 'background-color', value: darkerColor(audioPlayer.paletteColorsHex[0],5) }, { target: '.srp_player_boxed, .playlist .sr-playlist-item,div#sonaar-player .player, #sonaar-player .mobilePanel, div#sonaar-player .player .player-row:before, div#sonaar-modal div.sr_popup-content', css: 'background-color', value: darkerColor(audioPlayer.paletteColorsHex[0],15) }, { target: '\ @media only screen and (max-width: 1025px){div#sonaar-player .store}', css: 'background-color', value: darkerColor(audioPlayer.paletteColorsHex[0],15) }, { target: '.srp_note', css: 'background-color', value: darkerColor(audioPlayer.paletteColorsHex[0],18) }, { target: '.sr-cf-heading', css: 'background-color', value: darkerColor(audioPlayer.paletteColorsHex[0],30) }, { target: '.sr-cf-heading', css: 'border-color', value: darkerColor(audioPlayer.paletteColorsHex[0],30) }, { target: '.sr-playlist-heading-child', css: 'color', value: lighterColor(audioPlayer.paletteColorsHex[0],10) }, { target: '.playlist .sr-playlist-item:hover, .playlist .sr-playlist-item.current', css: 'background-color', value: darkerColor(audioPlayer.paletteColorsHex[0],20) }, { target: '.srp_search_container .srp_search', css: 'background-color', value: lighterColor(audioPlayer.paletteColorsHex[0],15) }, { target: '.sr-playlist-cf-container', css: 'color', value: foregroundColor }, { target: '.sr-playlist-cf-container', css: 'opacity', value: 0.6 }, { target: 'div.srp-play-circle,.srp_pagination_container .srp_pagination_arrows,.control .sr_speedRate div,div#sonaar-player div.sr_speedRate div,div#sonaar-player .close.btn_playlist:before,div#sonaar-player .close.btn_playlist:after,\ div#sonaar-player .srp_extendedPlayer_container .srp_ext_overlay_panel .close', css: 'border-color', value: audioPlayer.paletteColorsHex[1] }, { target: '\ .playlist a.song-store:not(.sr_store_wc_round_bt),\ .srp_noteButton .sricon-info', css: 'color', value: audioPlayer.paletteColorsHex[2] }, { target: '.srp_track_description', css: 'opacity', value: 0.5 }, { target: '\ .sr_it-playlist-title, div#sonaar-player .playlist button.play, div#sonaar-player .close.btn-player,div#sonaar-player div.sr_speedRate div,.control .sr_speedRate div,.srp_pagination_container .srp_pagination .active span,.srp-play-button-label-container,\ #sonaar-player .srp_extendedPlayer_container .srp_extendedPlayer .srp_ext_featured_cta .srp_ext_cta_addtocart, #sonaar-player .srp_extendedPlayer_container .srp_extendedPlayer .srp_ext_featured_cta .srp_ext_cta_buynow', css: 'color', value: audioPlayer.paletteColorsHex[0] }, { target: '\ #sonaar-modal .srp_button, #sonaar-modal .srp-modal-variation-list .srp-modal-variant-selector:hover,\ #sonaar-modal .srp-modal-variation-list .srp-modal-variant-selector.srp_selected,\ .srp_pagination_container .srp_pagination .active span,.srp-play-button-label-container,\ div#sonaar-player .playlist button.play,div#sonaar-player .mobileProgressing:after,\ div#sonaar-player .progressDot,div#sonaar-player div.sr_speedRate div,\ .control .sr_speedRate div,\ #sonaar-player .srp_extendedPlayer_container .srp_extendedPlayer .srp_ext_featured_cta .srp_ext_cta_addtocart,\ #sonaar-player .srp_extendedPlayer_container .srp_extendedPlayer .srp_ext_featured_cta .srp_ext_cta_buynow', css: 'background-color', value: audioPlayer.paletteColorsHex[1] }, { target: '#sonaar-modal .srp_button, #sonaar-modal .srp-modal-variation-list .srp-modal-variant-selector:hover, #sonaar-modal .srp-modal-variation-list .srp-modal-variant-selector.srp_selected', css: 'color', value: paletteColorsHex_1_contrast }, { target: '.buttons-block .store-list li .button, .song-store.sr_store_wc_round_bt', css: 'color', value: paletteColorsHex_1_contrast }, { target: '.buttons-block .store-list li .button,.song-store.sr_store_wc_round_bt', css: 'background-color', value: audioPlayer.paletteColorsHex[1] }, { target: 'div#sonaar-player .close.btn-player,div#sonaar-player .mobileProgress', css: 'background-color', value: audioPlayer.paletteColorsHex[3] }, { target: 'div#sonaar-player .player', css: 'border-color', value: audioPlayer.paletteColorsHex[3] }, { target: 'div#sonaar-player .player div.mobilePanel', css: 'border-color', value: darkerColor(audioPlayer.paletteColorsHex[0],15) }, ]; if( Boolean(sonaar_music.option.waveformType === 'simplebar') ){ cssColor.push( { target: 'div#sonaar-player .sonaar_fake_wave .sonaar_wave_cut', css: 'background-color', value: audioPlayer.paletteColorsHex[3] }, { target: 'div#sonaar-player .sonaar_fake_wave .sonaar_wave_base', css: 'background-color', value: audioPlayer.paletteColorsHex[1] }, ) } if(player_floated){ cssColor.push( { target: '.playlist, .playlist .sr-playlist-item', css: 'background-color', value: 'unset', skin: 'floated' }, { target: '.album-player .album-title, .album-player .srp_trackartist, .sr_progressbar .currentTime, .sr_progressbar .totalTime', css: 'color', value: audioPlayer.paletteColorsHex[3], skin: 'floated' }, { target: '.album-player .track-title, .control, .control .sricon-play', css: 'color', value: lighterColor(audioPlayer.paletteColorsHex[3],25), skin: 'floated' }, { target: '.sr_it-playlist-title, .srp_subtitle, .srp_noteButton .sricon-info, .playlist li .audio-track, .playlist li .audio-track .srp_trackartist, .playlist li .track-number, .srp_track_description', css: 'color', value: audioPlayer.paletteColorsHex[1], skin: 'floated' }, { target: '.playlist .audio-track .sricon-play', css: 'color', value: lighterColor(audioPlayer.paletteColorsHex[1],20), skin: 'floated' }, { target: '', css: 'background-color', value: 'unset', skin: 'floated' }, ); } for (let i = 0; i < cssColor.length; i++) { var skin_prefix = ''; if(cssColor[i]['skin'] === 'floated'){ skin_prefix = '[data-playertemplate="skin_float_tracklist"]'; } //Check if cssColor[i] contains value with , if yes, split it and add it to the array if(cssColor[i]['target'].indexOf(',') != -1){ var cssColorValue = cssColor[i]['target'].split(','); for (let j = 0; j < cssColorValue.length; j++) { if(affectSticky && cssColorValue[j].indexOf('#sonaar-') != -1 ){ $('#srp_stickyplayer').append(cssColorValue[j] + '{' + cssColor[i]['css'] + ':' + cssColor[i]['value'] + ';transition: all 600ms;}'); }else{ audioPlayer.prev('style').append(skin_prefix + player_uid + cssColorValue[j] + '{' + cssColor[i]['css'] + ':' + cssColor[i]['value'] + ';transition:' + cssColor[i]['css'] + ' 600ms;}'); } } }else{ if(affectSticky && cssColor[i]['target'].indexOf('#sonaar-') != -1){ $('#srp_stickyplayer').append(cssColor[i]['target'] + '{' + cssColor[i]['css'] + ':' + cssColor[i]['value'] + ';transition: all 600ms;}'); }else{ audioPlayer.prev('style').append(skin_prefix + player_uid + cssColor[i]['target'] + '{' + cssColor[i]['css'] + ':' + cssColor[i]['value'] + ';transition:' + cssColor[i]['css'] + ' 600ms;}'); } } } if( !$(audioPlayer).hasClass('srp_tracklist_grid') ){ audioPlayer.prev('style').append(player_uid + '.playlist{background-color:' + darkerColor(audioPlayer.paletteColorsHex[0],10) + ';}'); } //check if audioPlayer contains a gradient (set with background-image) but not an image url if (audioPlayer.find('.srp_player_boxed').length && audioPlayer.find('.srp_player_boxed').css('background-image') != 'none' && audioPlayer.find('.srp_player_boxed').css('background-image').indexOf('url') == -1) { audioPlayer.prev('style').append(player_uid + '.srp_player_boxed{background-image:linear-gradient(0deg,' + darkerColor(audioPlayer.paletteColorsHex[4], 25) + ' 0%, ' + darkerColor(audioPlayer.paletteColorsHex[0],20) + ' 100%)!important;'); if(affectSticky){ $('#srp_stickyplayer').append('#sonaar-player .player{background-image:linear-gradient(45deg,' + darkerColor(audioPlayer.paletteColorsHex[4], 25) + ' 0%, ' + darkerColor(audioPlayer.paletteColorsHex[0],20) + ' 100%)'); } } if(typeof audioPlayer.spectrumColor1 !== 'undefined' && !audioPlayer.spectrumColor1 && typeof audioPlayer.spectrumColor2 !== 'undefined' && !audioPlayer.spectrumColor2){ let color1 = (audioPlayer.spectrumColor1) ? audioPlayer.spectrumColor1 : audioPlayer.paletteColorsHex[0]; let color2 = (audioPlayer.spectrumColor2) ? audioPlayer.spectrumColor2 : audioPlayer.paletteColorsHex[2]; $('.srp_spectrum').each(function () { const canvas = this; const ctx = canvas.getContext('2d'); const gradient = ctx.createLinearGradient(0, 0, 0, canvas.height); // vertical gradient.addColorStop(0.25, color1); gradient.addColorStop(1, color2); ctx.fillStyle = gradient; ctx.strokeStyle = gradient; if( $(this).parents('#sonaar-player').length && sonaar_music.option.sticky_spectro_reflect === "true" || ! $(this).parents('#sonaar-player').length && audioPlayer.spectroReflect ){ srp_spectroReflect(ctx, canvas, 2.5, color1, color2); } }) } if(audioPlayer.attr('data-wave-color') == false){ audioPlayer.soundwaveColorBG = audioPlayer.paletteColorsHex[2]; // audioPlayer.find('.sonaar_wave_base').css('background-color',audioPlayer.paletteColorsHex[2]); } if(audioPlayer.attr('data-wave-progress-color') == false){ audioPlayer.soundwaveProgressColor = audioPlayer.paletteColorsHex[1]; //audioPlayer.find('.sonaar_wave_cut').css('background-color',audioPlayer.paletteColorsHex[1]); } IRON.createFakeWave(audioPlayer, false); if(IRON.audioPlayer.stickyEnable && IRON.sonaar.player.list.tracks.length) IRON.createFakeWave(false, true); if(audioPlayer.adaptiveColorsFreeze == true){ audioPlayer.adaptiveColorsSet = true; } // set timeout of 1 second to allow the image and colors to be loaded because of the color transition effect. setTimeout(function() { $(audioPlayer).css("opacity", 1); }, 1000); }); img.crossOrigin = 'anonymous'; img.src = artworkUrl; } IRON.audioPlayer = (function ($) { "use strict"; var seekTimeOut; var autoplayEnable; var audioPlayer; var playlist; var stickyEnable = false; var random_order = false; function setMediaSessionAPI(trackTitle, albumTitle, artistName, albumArt) { //WIP: Does not work with the mini-player play button. Works only when click in the tracklist. if ('mediaSession' in navigator) { navigator.mediaSession.metadata = new MediaMetadata({ title: trackTitle, artist: albumTitle, // We want to show album Title instead of artist name in the Notification album: albumTitle, artwork: [ { src: albumArt, sizes: '512x512', type: 'image/jpeg' }, ] }); } } function initPlayer(player) { audioPlayer = player; if(typeof player.params == 'undefined'){ player.params = {}; } this.audioPlayer = player; var waveContainer = this.audioPlayer.find(".player .wave").attr("id"); playlist = audioPlayer.find(".playlist .srp_list") playlist.children(":not(li)").remove(); // woocommerce shop page insert a unwanted tag in the playlist who cause a bug with the track index. this.playlist = playlist; this.autoplayEnable = audioPlayer.data("autoplay"); audioPlayer.spectrumColor1 = false; audioPlayer.spectrumColor2 = false; audioPlayer.id = audioPlayer.data("id"); audioPlayer.pagination_offset = parseInt(audioPlayer.attr("data-pagination_scroll_offset"), 10); audioPlayer.albums = audioPlayer.data("albums"); audioPlayer.remove_wave = audioPlayer.data("no-wave"); audioPlayer.shuffle = audioPlayer.data("shuffle") || false; audioPlayer.stickyPlayer = IRON.audioPlayer.stickyEnable; audioPlayer.notrackskip = audioPlayer.data("notrackskip"); audioPlayer.playerType = audioPlayer.data("playertemplate"); audioPlayer.hide_progressbar = audioPlayer.data("hide-progressbar") ? true : false; audioPlayer.adaptiveColors = audioPlayer.data("adaptive-colors"); audioPlayer.adaptiveColorsFreeze = audioPlayer.data("adaptive-colors-freeze"); audioPlayer.lazy_load = audioPlayer.data("lazyload"); audioPlayer.progressType = audioPlayer.data("progress-bar-style"); audioPlayer.setTrackSoundwaveCursor = audioPlayer.data("track-sw-cursor"); audioPlayer.trackMemory = audioPlayer.hasClass('srp_track_memory'); // Define an async function for the fetch operation audioPlayer.listJs = (audioPlayer.hasClass('srp_linked') || audioPlayer.find('.srp_search_container').length || audioPlayer.find('.sr-cf-heading').length || audioPlayer.find('.srp_pagination').length); //If Linked to a search or filter widget || If the current Player has a Search Input || If the current Player has CF Columns || Pagination is acitvated audioPlayer.list = {}; audioPlayer.list.tracks = []; if(audioPlayer.trackMemory){ IRON.localStorageTrackMemory = (localStorage.getItem('srp_tracks_memories') == null) ? {} : JSON.parse(localStorage.getItem('srp_tracks_memories')); } playlist.find(".sr-playlist-item").each(function () { var $track = $(this); var trackData = { peakFile: $track.data("peakfile"), mp3: $track.data("audiopath"), sourcePostID: $track.data("post-id"), id: $track.data("trackid"), // Its the media attachment ID if set. track_pos: $track.data("track-pos"), isPreview: $track.data("is-preview"), peak_allow_frontend: $track.data("peakfile-allow"), artwork: $track.data("artwork"), }; audioPlayer.list.tracks.push(trackData); }); setTrackSoundwaveCursor(audioPlayer); if(!audioPlayer.adaptiveColors){ $(audioPlayer).css("opacity", 1); } sr_setPopUp();//set Popup, required for the store-content popup if (audioPlayer.shuffle) { var trackNumber = Math.floor(Math.random() * playlist.find("li").length); } else { var trackNumber = playlist.find("li").not('[data-relatedtrack="1"]').index(); } random_order = setRandomList(playlist.find("li"), trackNumber); if (audioPlayer.data("scrollbar")) { var scrollItem = $(audioPlayer).find(".playlist .srp_list")[0]; var ps = new PerfectScrollbar(scrollItem, { wheelSpeed: 0.7, swipeEasing: true, wheelPropagation: false, minScrollbarLength: 20, suppressScrollX: true, maxScrollbarLength: 100, }); //$('.iron-audioplayer .playlist ul').perfectScrollbar({'suppressScrollX': true}); } if (audioPlayer.data("wave-color") == false) { audioPlayer.soundwaveColorBG = (audioPlayer.soundwaveColorBG === '' || typeof audioPlayer.soundwaveColorBG == 'undefined') ? sonaar_music.option.music_player_timeline_color : audioPlayer.soundwaveColorBG; } else { audioPlayer.soundwaveColorBG = (audioPlayer.soundwaveColorBG === '' || typeof audioPlayer.soundwaveColorBG == 'undefined') ? audioPlayer.data("wave-color") : audioPlayer.soundwaveColorBG; } if (audioPlayer.data("wave-progress-color") == false) { audioPlayer.soundwaveProgressColor = (audioPlayer.soundwaveProgressColor === '' || typeof audioPlayer.soundwaveProgressColor == 'undefined') ? sonaar_music.option.music_player_progress_color : audioPlayer.soundwaveProgressColor; } else { audioPlayer.soundwaveProgressColor = (audioPlayer.soundwaveProgressColor === '' || typeof audioPlayer.soundwaveProgressColor == 'undefined') ? audioPlayer.data("wave-progress-color") : audioPlayer.soundwaveProgressColor; } this.$audio_el = $("#" + waveContainer).find(".sonaar_media_element")[0]; fakeWaveUpdate(this.$audio_el, audioPlayer, playlist); $(audioPlayer).find(".wave").css("opacity", "1"); setPlaylist(playlist, this.$audio_el, audioPlayer); if (audioPlayer.shuffle) { var trackNumber = random_order[0]; } else { var trackNumber = playlist.find("li").not('[data-relatedtrack="1"]').index(); } var track = playlist.find("li").eq(trackNumber); $(audioPlayer).attr("trackselected", trackNumber); if(!IRON.audioPlayer.stickyEnable && !audioPlayer.hasClass('audio-playing') || IRON.audioPlayer.stickyEnable){ //Dont update the mini player if the player is already playing a track from another ajax page setCurrentTrack(track, trackNumber, audioPlayer, this.$audio_el); updateMiniPlayer(audioPlayer, track); } audioPlayer.find('.sr_it-playlist-publish-date').text(track.data('date')); if(track.data('tracktime')){ audioPlayer.find('.totalTime').text('-' + track.data('tracktime')); } setControl(this.$audio_el, audioPlayer, playlist); if (audioPlayer.data("autoplay")) { autoplayEnable = true; } sr_playerCTAresponsive(); sr_initSlider(audioPlayer.find('.slider-container .slide'), audioPlayer, this.$audio_el); srp_js_dynamic_style(audioPlayer); IRON.favorites.setFavButtons(audioPlayer); srp_setTrackListColumns(audioPlayer); if(typeof sonaar_music.option.general_volume != 'undefined' ){ if( getCookieValue("sonaar_mp3_player_volume") != '' && IRON.audioPlayer.stickyEnable){ sr_getCookieVolume(); }else{ sr_setVolume(sonaar_music.option.general_volume/100, audioPlayer, this.$audio_el); } }else{ sr_setVolume(1, audioPlayer, this.$audio_el); } if( audioPlayer.find('.srp_swiper').length && typeof audioPlayer.swiper == 'undefined' && typeof Swiper != 'undefined' ){ const numberOfSlidesRequiredForVirtual = 20; const selectedTrack = function(){ if( audioPlayer.find('.srp_swiper').data('swiper-source') == 'track' ){ var slideId = audioPlayer.attr('trackselected'); }else{ var slideId = $(audioPlayer).find('.sr-playlist-item').eq(audioPlayer.attr('trackselected')).data('post-id'); } var initialSlideIndex = $(audioPlayer).find('.swiper-slide[data-slide-id="' + slideId + '"]').index(); return initialSlideIndex; } const setVirtualExtraSlides = function(){ var extraSlidestValue = 3; //default value for ['virtual']['addSlidesAfter'] and ['virtual']['addSlidesAfter'] if( typeof parameters['slidesPerView'] != 'undefined' && typeof parameters['loop'] != 'undefined' && parameters['loop'] == true){ const numberOfSlide = $(audioPlayer).find('.swiper-slide').length; while (numberOfSlide < (parameters['slidesPerView'] + (extraSlidestValue*3))*2 && extraSlidestValue > 0 ) { extraSlidestValue--; } } return extraSlidestValue; } var parameters = eval('(' +audioPlayer.find('.srp_swiper').data('params')+ ')') if( typeof parameters['navigation'] != 'undefined' && parameters['navigation'] != false ){ if( parameters['navigation'] == true ){ parameters['navigation'] = {}; } if( typeof parameters['navigation']['nextEl'] == 'undefined' || typeof parameters['navigation']['nextEl'] != 'undefined' && parameters['navigation']['nextEl'] == '.srp_swiper-button-next'){ parameters['navigation']['nextEl'] = '.iron-audioplayer[data-id="' + audioPlayer.id + '"] .srp_swiper-button-next'; //Add the player id to the next button } if( typeof parameters['navigation']['prevEl'] == 'undefined' || typeof parameters['navigation']['prevEl'] != 'undefined' && parameters['navigation']['prevEl'] == '.srp_swiper-button-prev'){ parameters['navigation']['prevEl'] = '.iron-audioplayer[data-id="' + audioPlayer.id + '"] .srp_swiper-button-prev'; //Add the player id to the prev button } } if( typeof parameters['pagination'] != 'undefined' && typeof parameters['pagination']['el'] != 'undefined' && parameters['pagination']['el'] == '.swiper-pagination'){ parameters['pagination']['el'] = '.iron-audioplayer[data-id="' + audioPlayer.id + '"] .swiper-pagination'; //Add the player id to the pagination } if( typeof parameters['initialSlide'] == 'undefined' ){ parameters['initialSlide'] = selectedTrack(); } if( $(audioPlayer).find('.swiper-slide').length > numberOfSlidesRequiredForVirtual && audioPlayer.shuffle != true){ if( typeof parameters['virtual'] == 'undefined' ){ parameters['virtual'] = {}; parameters['virtual']['enabled'] = true; parameters['virtual']['addSlidesAfter'] = setVirtualExtraSlides(); parameters['virtual']['addSlidesBefore'] = setVirtualExtraSlides(); } }else{ parameters['virtual'] = false; } if( audioPlayer.find('.srp_swiper').data('init') !== 'true' ){ audioPlayer.swiper = new Srp_swiper(audioPlayer.find('.srp_swiper')[0], parameters); const playerEl = audioPlayer; audioPlayer.swiper.on('transitionEnd', function() { if (!IRON.swiper.isTransitionEnd) { IRON.swiper.isTransitionEnd = true; IRON.swiper.showHiddenSlide( playerEl); } }); IRON.swiper.showHiddenSlide( audioPlayer); audioPlayer.find('.srp_swiper').data('init', 'true'); if( typeof parameters['autoplay'] != 'undefined' && parameters['autoplay'] !== false){ audioPlayer.swiper.autoplay.start(); //Force autoplay to start when the player is loaded and the params autoplay is set to true. The autoplay is not working when we change player option in the elementor editor } } } if(typeof IRON.favorites.favoritesEnabled != 'undefined' && IRON.favorites.favoritesEnabled){ //If favorites list is already loaded audioPlayer.removeClass('srp_favorites_loading'); } if(audioPlayer.trackMemory){ const singleTrack = audioPlayer.find('.sr-playlist-item').eq(Number(audioPlayer.attr('trackselected'))); if(singleTrack.length){ const trackMemoryKey = (singleTrack.data('audiopath')).replace(/[^a-zA-Z0-9]|https|http|/g, ''); if(typeof IRON.localStorageTrackMemory[trackMemoryKey] == 'object'){ const [currentTime, duration] = IRON.localStorageTrackMemory[trackMemoryKey]; var $audio_el = audioPlayer.find('.album-player .sonaar_media_element')[0]; $audio_el.currentTime = currentTime; audioPlayer.find('.album-player .sonaar_wave_cut').width((currentTime / duration) * 100 + "%"); setTimeCurrentTime(audioPlayer, $audio_el.currentTime) } singleTrack.data( 'track-memory-key', trackMemoryKey ); } } checkIfResult(audioPlayer); } /* triggerPlay is called everytime NEW track (only) is clicked to play, and NOT on page load */ var triggerPlay = function (audioPlayer) { if(audioPlayer.hasClass('srp_player_spectrum') && !IRON.audioPlayer.stickyEnable){ const playerNum = srp_convertPlayerIdToPlayerNum(audioPlayer.attr('id')) if(typeof IRON.players[playerNum].audioElement == 'undefined'){ startAudioSpectrum(audioPlayer); }else{ startAudioSpectrum(audioPlayer, false, true); } } }; function setSingleMetaHeadingInMiniplayer($source, $target) { if ($target.length) { $target.html('').hide(); // Empty the current field when we switch track if ((typeof $source !== 'undefined') && $source.length) { $target.html( $target.attr('data-prefix') + ' ' + $source).show(); } } } /* setCurrentTrack is called on load before audio playing AND on play */ function setCurrentTrack(track, index, audioPlayer, $audio_el) { audioPlayer.currentTrack = index; if(typeof IRON.sonaar.player.selectedPlayer === 'undefined' || IRON.sonaar.player.selectedPlayer === null){ IRON.getIceCastInfo(audioPlayer); } var albumArt = audioPlayer.find(".album .album-art"); var albumReleaseDate = audioPlayer.find(".srp_subtitle"); var artworkUrl = (typeof audioPlayer.data('albumart') != 'undefined')? audioPlayer.data('albumart'): track.data('albumart'); if (audioPlayer.data('hide-artwork') != '1' && audioPlayer.data('hide-artwork') != 'true') { if (artworkUrl) { audioPlayer.removeClass('sonaar-no-artwork'); if (albumArt.find("img").length) { albumArt.find("img").attr("src", artworkUrl); } else { albumArt.css("background-image", "url(" + artworkUrl + ")"); } } else { audioPlayer.addClass('sonaar-no-artwork'); } } srp_getColorsFromImage(audioPlayer,artworkUrl); if (!audioPlayer.hasClass("show-playlist")) { albumArt.css("cursor", "pointer"); } audioPlayer.data("currentTrack", index); albumReleaseDate.text(track.data("releasedate")); audioPlayer.find(".player").removeClass("hide"); audioPlayer.find(".wave").removeClass("reveal"); if (!track.data("showloading")) { audioPlayer.find(".player").addClass("hide"); } else { audioPlayer.find(".progressLoading").css("opacity", "0.75"); } //set time from memory if( audioPlayer.trackMemory && typeof audioPlayer.find('.sr-playlist-item').eq(index).data('current-time') != 'undefined' && !audioPlayer.stickyPlayer ){ const audioInstance = sr_setAudioElementInstance(audioPlayer); audioInstance.currentTime = (audioPlayer.find('.sr-playlist-item').eq(index).data('current-time')); } setTime(audioPlayer, $audio_el); hideEmptyAttribut(track.data("releasedate"), audioPlayer.find(".srp_subtitle")); if (!audioPlayer.hasClass('sr_selectedPlayer') || !audioPlayer.stickyPlayer) { IRON.audioPlayer.checkArtWorkFullBg(audioPlayer, artworkUrl); IRON.createFakeWave(audioPlayer); } if (!audioPlayer.stickyPlayer) { updateMiniPlayer(audioPlayer, track); IRON.swiper.update(audioPlayer, index); } audioPlayer.find('.sr_it-playlist-publish-date').text(track.data('date')); if (! IRON.audioPlayer.stickyEnable) { audioPlayer.find('.sonaar_media_element')[0].playbackRate = audioPlayer.attr('data-speedrate'); } } function updateMiniPlayer(audioPlayer, track) { audioPlayer.find('.srp_player_boxed, .album-player, .album-store').removeClass('srp_hidden'); $(audioPlayer).attr("trackselected", track.index()); if(track.attr('data-icecast_json') == '' || typeof track.attr('data-icecast_json') == 'undefined'){ var playlistTitleElement = audioPlayer.find(".sr_it-playlist-title, .album-title"); var prefixTitle = (typeof audioPlayer.find(".album-title").attr('data-prefix') === 'undefined')? '' : audioPlayer.find(".album-title").attr('data-prefix'); if (typeof audioPlayer.data("playlist_title") !== "undefined" && audioPlayer.data("playlist_title").length) { playlistTitleElement.text(prefixTitle + ' ' + audioPlayer.data("playlist_title")); } else if(typeof track.attr('data-albumtitle') != 'undefined'){ playlistTitleElement.text(prefixTitle + ' ' + track.attr('data-albumtitle')); }else{ audioPlayer.find('.srp_player_boxed, .album-player, .album-store').addClass('srp_hidden'); } var trackTitleSource = (typeof track.data("tracktitle") != 'undefined')? track.data("tracktitle").toString().split('')[0] : ''; setSingleMetaHeadingInMiniplayer( trackTitleSource, audioPlayer.find('.track-title') ); } setSingleMetaHeadingInMiniplayer( track.data("artist"), audioPlayer.find('.album-player .srp_artistname') ); setSingleMetaHeadingInMiniplayer( track.data("tracktime"), audioPlayer.find('.album-player .srp_duration') ); setSingleMetaHeadingInMiniplayer(track.find('.srp_cf_data.sr-playlist-cf--description').text(), audioPlayer.find('.album-player .srp_description')); setSingleMetaHeadingInMiniplayer(track.find('.srp_cf_data.sr-playlist-cf--product_cat').text(), audioPlayer.find('.album-player .srp_category')); setSingleMetaHeadingInMiniplayer(track.find('.srp_cf_data.sr-playlist-cf--playlist-category').text(), audioPlayer.find('.album-player .srp_category')); setSingleMetaHeadingInMiniplayer(track.find('.srp_cf_data.sr-playlist-cf--product_tag').text(), audioPlayer.find('.album-player .srp_tag')); setSingleMetaHeadingInMiniplayer(track.find('.srp_cf_data.sr-playlist-cf--playlist-tag').text(), audioPlayer.find('.album-player .srp_tag')); setSingleMetaHeadingInMiniplayer(track.find('.srp_cf_data.sr-playlist-cf--podcast-show').text(), audioPlayer.find('.album-player .srp_podcast_show')); audioPlayer.find('.srp_meta_cf').each(function(){ setSingleMetaHeadingInMiniplayer(track.find('.srp_cf_data.sr-playlist-cf--' + $(this).data('cf')).html(), $(this)); }) if (audioPlayer.data('playertemplate') == 'skin_boxed_tracklist' && audioPlayer.find('.srp_track_cta').length) { audioPlayer.find('.srp_track_cta .song-store-list-container').remove(); audioPlayer.find('.srp_track_cta').append(track.find('.song-store-list-container').clone()); } } function checkArtWorkFullBg(audioPlayer, artwork) { var hasArtworkBgClass = (null !== audioPlayer) ? audioPlayer.closest('.srp_artwork_fullbackground_yes').length > 0 : false; if (hasArtworkBgClass) { if (audioPlayer.data('hide-artwork') != '1' && audioPlayer.data('hide-artwork') != 'true') { // Determine if this is the first call for this audio player var isFirstCall = typeof audioPlayer.data('firstCall') === 'undefined' || audioPlayer.data('firstCall') === false; audioPlayer.data('firstCall', true); var hasArtworkBgClass_Gradient = audioPlayer.closest('.srp_artwork_fullbackground_wgradient_yes').length > 0; if (hasArtworkBgClass_Gradient) { audioPlayer.find('.srp-artworkbg-gradient').remove(); var backgroundDiv = document.createElement('div'); backgroundDiv.className = 'srp-artworkbg-gradient'; audioPlayer[0].appendChild(backgroundDiv); } if (artwork === false) { var currentTrackIndex = audioPlayer.currentTrack; artwork = $(audioPlayer).find('.sr-playlist-item').eq(currentTrackIndex).data('albumart'); } if (artwork) { // Find existing background divs and fade them out var existingBackgrounds = audioPlayer.find('.srp-artworkbg'); existingBackgrounds.addClass('srp-fade-out'); setTimeout(function() { existingBackgrounds.remove(); }, 2500); // Corresponds to the animation duration // Create new background div and append it var newBackgroundDiv = document.createElement('div'); newBackgroundDiv.className = 'srp-artworkbg'; if (!isFirstCall) { newBackgroundDiv.className += ' srp-fade-in'; } newBackgroundDiv.style.backgroundImage = 'url(' + artwork + ')'; audioPlayer[0].appendChild(newBackgroundDiv); } else { // Next track has no artwork, remove the previous image with fade-out effect var backgrounds = audioPlayer.find('.srp-artworkbg'); backgrounds.addClass('srp-fade-out'); setTimeout(function() { backgrounds.remove(); }, 2500); // Corresponds to the animation duration } } } } function setRandomList(tracks, firstTrackIndex = null) { var poolTrack = new Array(); var i = 0; $(tracks).each(function () { poolTrack.push(i); i++; poolTrack = poolTrack.sort(function (a, b) { return 0.5 - Math.random(); }); }); if (firstTrackIndex != null) { const indexTrack = poolTrack.indexOf(firstTrackIndex); if (indexTrack !== -1) { poolTrack.splice(indexTrack, 1); poolTrack.unshift(firstTrackIndex); } } return poolTrack; } function setPlaylist(playlist, $audio_el, audioPlayer) { let playlistTimeDuration = 0; let trackNumberArray = []; playlist.find('li').each(function (i) { if( ! $(this).data('relatedtrack') ){ trackNumberArray.push(i+1); }else{ trackNumberArray.push(''); } preSetSingleTrack($(this)); if ($(this).data('relatedtrack') != '1') { //Count playlist time duration if ($(this).data('tracktime')) { convertTime($(this).data('tracktime')); playlistTimeDuration = playlistTimeDuration + convertTime($(this).data('tracktime')); } } }); //Output playlist time duration playlistTimeDuration = Math.round(playlistTimeDuration / 60) * 60; //Round to minutes playlistTimeDuration = moment.duration(playlistTimeDuration, "seconds"); let durationOutput = ''; let timeDurationMinutes = playlistTimeDuration._milliseconds / 60000; let timeDurationHours = Math.floor(timeDurationMinutes / 60); if (timeDurationHours > 0) { timeDurationMinutes = timeDurationMinutes - (timeDurationHours * 60); durationOutput += timeDurationHours + ' ' + audioPlayer.find('.srp_playlist_duration').data('hours-label') + ' '; } durationOutput += timeDurationMinutes + ' ' + audioPlayer.find('.srp_playlist_duration').data('minutes-label'); audioPlayer.find('.srp_playlist_duration').html(durationOutput); if (!audioPlayer.hasClass('srp_reordered') && audioPlayer.listJs) { listJsInit(audioPlayer); } playlist.find('li').each(function () { //have to be loaded after listJsInit setFrontendSingleTrack($(this), $(this).index(), trackNumberArray[$(this).index()], $audio_el, audioPlayer); if( audioPlayer.hasClass('srp_has_customfields') ){ setColumnCta(this); } }); } // Debounce function function debounce(func, wait) { let timeout; return function(...args) { const context = this; clearTimeout(timeout); timeout = setTimeout(() => func.apply(context, args), wait); }; } var srmp3ResizeHandler = debounce(function() { if(IRON.audioPlayer.activePlayer){ startAudioSpectrum(IRON.audioPlayer.activePlayer); } if(typeof sonaar_music.option.sticky_spectro_style !== "undefined" && sonaar_music.option.sticky_spectro_style != "none"){ startAudioSpectrum('#sonaar-player') } $('.iron-audioplayer').each(function(){ srp_setTrackListColumns(this , true); }) if(typeof IRON.sonaar != 'undefined' && typeof IRON.sonaar.player != 'undefined'){ if ($(window).outerWidth() > 540) { IRON.sonaar.player.isSmallDevice = false; } else { IRON.sonaar.player.isSmallDevice = true; } } IRON.setWindowHeightVar(); }, 500); // 250ms debounce time $(window).on('resize', srmp3ResizeHandler); function updatePaginationAjax(player) { let currentPage = parseInt(player.srp_player_param['srp_page'], 10); if (isNaN(currentPage)) { currentPage = 1; } let postperpage = parseInt(player.srp_player_param['posts_per_page'], 10); let totalPages = parseInt(player.attr('data-total_pages'), 10); let output = ''; const ellipsis = '
    • ...
    • '; if (totalPages == 1){ player.find('.srp_pagination_container').remove(); } if (totalPages <= 5) { for (let i = 1; i <= totalPages; i++) { output += `${i}`; } } else { // Always display the first page output += `1`; if (currentPage === 1) { output += `
    • 2
    • `; output += ellipsis; } else if (currentPage === 2) { output += `
    • 2
    • `; output += `
    • 3
    • `; output += ellipsis; } else if (currentPage === 3) { for (let i = 2; i <= 4; i++) { output += `${i}`; } output += ellipsis; } else if (currentPage >= 4 && currentPage <= totalPages-3) { output += ellipsis; for (let i = currentPage - 1; i <= currentPage + 1; i++) { output += `${i}`; } output += ellipsis; } else if (currentPage >= totalPages-2 && currentPage <= totalPages) { output += ellipsis; for (let i = totalPages - 3; i <= totalPages - 1; i++) { output += `${i}`; } } // Always display the last page output += `${totalPages}`; } player.find('.srp_pagination').html(output); player.find('.srp_pagination').off('click'); player.find('.srp_pagination--prev').off('click'); player.find('.srp_pagination--next').off('click'); player.find('.srp_pagination').on('click', '.page', function() { let pageNumber = $(this).data('i'); // Get the page number from the data-i attribute $(this).parents('li').addClass('active').siblings().removeClass('active'); srp_updatePage(pageNumber, player); IRON.audioPlayer.reloadAjax(player, true); }); player.find('.srp_pagination--prev').on('click', function(){ if(player.find('.srp_pagination').find('.active').prev().length > 0){ player.find('.srp_pagination').find('.active').prev().find('span')[0].click() } }) player.find('.srp_pagination--next').on('click', function(){ if(player.find('.srp_pagination').find('.active').next().length > 0){ player.find('.srp_pagination').find('.active').next().find('span')[0].click() } }); let elements = player[0].querySelectorAll('.srp_sort'); const unwantedValues = [ 'srmp3_cf_album_title', 'srmp3_cf_album_img', 'srmp3_cf_audio_title', 'srmp3_cf_description', 'srmp3_cf_artist', 'podcast-show', 'product_tag', 'product_cat', 'playlist-category', 'playlist-tag' ]; function handleElementClick(sortValue, e) { e.preventDefault(); // Special condition for tracklist-item-title if (sortValue === 'tracklist-item-title') { sortValue = 'title'; } if (sortValue === 'post_id') { sortValue = 'ID'; } if (sortValue === 'post_date') { sortValue = 'date'; } if (sortValue === 'post_modified') { sortValue = 'modified'; } // Check current URL for srp_order value and decide on ascending or descending const currentOrder = new URLSearchParams(window.location.search).get('srp_order'); if (currentOrder === `${sortValue}_asc`) { sortValue += '_desc'; } else { sortValue += '_asc'; } srp_updatePage(1, player); srp_updateOrder(sortValue, player); IRON.audioPlayer.reloadAjax(player, true) } elements.forEach(element => { if (element._clickHandler) { element.removeEventListener('click', element._clickHandler); } let sortValue = element.getAttribute('data-sort').replace('sr-playlist-cf--', ''); // Skip unwanted values if (unwantedValues.includes(sortValue)) { $(element).removeClass('srp_sort'); $(element).css('pointer-events', 'none'); return; } const boundClickHandler = handleElementClick.bind(null, sortValue); element.addEventListener('click', boundClickHandler); element._clickHandler = boundClickHandler; // store the reference for later removal }); } //Reset the tracklist when is has been modified by the search/filter options var srp_wait = false; function listJsInit(audioPlayer) { if(audioPlayer.lazy_load){ return; } //return; //should do this if we are in lazyload...but the search seems to stop working (not added in the query url) if( !audioPlayer.find('.srp_list li').length ) return; if( typeof List == 'undefined') return; const sortItems = ['srp_cf_data', 'tracklist-item-title', 'srp_track_description','tracklist-item-time', { name: 'srp_tracklist-item-date', attr: 'date' }]; // add default values const sortItemsFromCF = audioPlayer.find('.srp_list').data('filters').split(',').map(function(el) { return "sr-playlist-cf--" + el}); //get all elements from data-sortby, convert them to array and add prefix "sr-playlist-cf--" to all element. let sortOptions = sortItems.concat(sortItemsFromCF); //['tracklist-item-title', 'sr-playlist-cf--artist_name', 'sr-playlist-cf--acf_category', 'sr-playlist-cf--acf_beats_per_minutes', 'sr-playlist-cf--has_drum', 'srp_track_description', 'tracklist-item-time', { name: 'srp_tracklist-item-date', attr: 'date' }]; //Set searching area var options = { valueNames: sortOptions, listClass: 'srp_list', searchClass: 'srp_search', sortClass: 'srp_sort', //page: audioPlayer.data("tracks-per-page"), /*pagination: [{ name: "srp_pagination", paginationClass: "srp_pagination", outerWindow: 1 }],*/ //indexAsync: true, searchDelay: 1000, // pagination: true }; if(audioPlayer.data("tracks-per-page")){ options.page = audioPlayer.data("tracks-per-page"); options.pagination = [{ name: "srp_pagination", item: '
    • ', paginationClass: "srp_pagination", outerWindow: 1, innerWindow: 1 }] audioPlayer.find('.srp_pagination--prev').on('click', function(){ if(audioPlayer.find('.srp_pagination').find('.active').prev().length > 0){ audioPlayer.find('.srp_pagination').find('.active').prev().find('span')[0].click() } }) audioPlayer.find('.srp_pagination--next').on('click', function(){ if(audioPlayer.find('.srp_pagination').find('.active').next().length > 0){ audioPlayer.find('.srp_pagination').find('.active').next().find('span')[0].click() } }) audioPlayer.addClass('srp_reordered'); } const tracklistID = audioPlayer.find('.playlist').attr('id'); for (var playerIndex = 0; playerIndex < IRON.players.length && IRON.players[playerIndex].audioPlayer.attr('id') != tracklistID; playerIndex++) { }; //Set playerIndex audioPlayer.orderedList = new List(tracklistID, options); audioPlayer.orderedList.on('updated', function () { if (IRON.audioPlayer.stickyEnable && IRON.sonaar.player.selectedPlayer == audioPlayer) { //if Sticky is sync to this widget player, unsync them before modifying the tracklist. IRON.sonaar.player.selectedPlayer = null; audioPlayer.removeClass('sr_selectedPlayer'); audioPlayer.removeClass('audio-playing'); IRON.sonaar.player.playlistID = null; } audioPlayer.addClass('srp_reordered'); if (IRON.audioPlayer.stickyEnable || ! audioPlayer.hasClass('sr_selectedPlayer')) { //Reset the player if sticky is enabled or when the page is loaded with filterOrSearch parameter in the URL var player = Object.create(IRON.audioPlayer); // pour reloader avec pagnination (sans ajax) player.init(audioPlayer); IRON.players[playerIndex] = player; }else{ //keep the current track playing and unselect the current track from the track list audioPlayer.find('.srp_list .current').removeClass('current'); audioPlayer.data('currentTrack', 999999);// CurrentTrack equal 999999 when we dont want a track selected in the tracklist var relatedtrackCount = 0; audioPlayer.find('.playlist li').each(function () { //initialize new tracklist if( $(this).data('relatedtrack') ){ relatedtrackCount++; } var trackNumber = $(this).index() + 1 - relatedtrackCount; if($(this).data('init') !== true){ //Dont init twice the same track setFrontendSingleTrack($(this), $(this).index(), trackNumber, IRON.players[playerIndex].$audio_el, audioPlayer); } }) } srp_setTrackListColumns(audioPlayer); }) } function checkIfResult(audioPlayer){ if( $(audioPlayer).find(".srp_list li").length){ audioPlayer.find('.srp_notfound').css('display', 'none'); audioPlayer.find('.sr-cf-heading').css('display', 'flex'); audioPlayer.find('.srp_pagination_container').css('display', 'flex'); } else { audioPlayer.find('.srp_notfound').css('display', 'block'); audioPlayer.find('.sr-cf-heading').css('display', 'none'); audioPlayer.find('.srp_pagination_container').css('display', 'none'); } } $('.srp_search').keydown(function(e) { //Trigger search on keyup - we are inittiating search field inside the player seperatly for ajax. if( !$(this).parents('.iron-audioplayer').length ){ IRON.searchField.search(this, e); } }); $('.srp_search_container .srp_reset_search').click(function() { //delete search keywords on icon click const metaValue = $(this).parents('.srp_search_container').find('input')[0].value; const playerId = $(this).parents('.srp_search_container').data('player-id'); srp_removeMeta('search', metaValue, playerId); }); function setTime(audioPlayer, $audio_el) { $($audio_el).on("timeupdate", function () { karaokeMode(audioPlayer, $audio_el.currentTime); setTimeCurrentTime(audioPlayer, $audio_el.currentTime); setTimeTotalTime(audioPlayer, $audio_el) IRON.setTracksTimeMemories(audioPlayer); }); } function setTimeCurrentTime(audioPlayer, currentTime) {; var time = moment.duration(currentTime, "seconds"); if (time.hours() >= 12 || time.hours() <= 0) { audioPlayer.find(".currentTime").html(moment(time.minutes() + ":" + time.seconds(), "m:s").format("mm:ss")); } else { audioPlayer.find(".currentTime").html(moment(time.hours() + ":" + time.minutes() + ":" + time.seconds(), "h:m:s").format("h:mm:ss")); } } function setTimeTotalTime(audioPlayer, $audio_el) { if ($audio_el.duration !== Infinity) { var timeLeft = moment.duration($audio_el.duration - $audio_el.currentTime, "seconds"); if(timeLeft.milliseconds() > 0){ if (timeLeft.hours() >= 12 || timeLeft.hours() <= 0) { audioPlayer.find(".totalTime").html("-" + moment(timeLeft.minutes() + ":" + timeLeft.seconds(), "m:s").format("mm:ss")); } else { audioPlayer.find(".totalTime").html("-" + moment(timeLeft.hours() + ":" + timeLeft.minutes() + ":" + timeLeft.seconds(), "h:m:s").format("h:mm:ss")); } }else{ audioPlayer.find(".totalTime").html(""); } } else { audioPlayer.find(".totalTime").html(""); } } function seekTime(time) { if (IRON.audioPlayer.stickyEnable) { IRON.sonaar.player.seekTime(time); } else { if (time) { if (this.audioPlayer.find('.sonaar_media_element')[0].duration !== Infinity) { this.audioPlayer.find('.sonaar_media_element')[0].currentTime = convertTime(time); } } } } /* setControl is called on load before audio playing */ function setControl($audio_el, audioPlayer, playlist) { audioPlayer.unbind('click'); if (audioPlayer.stickyPlayer) { audioPlayer.on("click", ".play, .album .album-art", function (event) { if ($(audioPlayer).hasClass("sr_selectedPlayer")) { IRON.sonaar.player.play(); } else { play(audioPlayer, $audio_el, playlist); } event.preventDefault(); }); audioPlayer.on("click", ".previous", function (event) { previous(audioPlayer, playlist); event.preventDefault(); }); audioPlayer.on("click", ".next", function (event) { next(audioPlayer, $audio_el, playlist); event.preventDefault(); }); } else { audioPlayer.on("click", ".play, .album .album-art", function (event) { togglePause(audioPlayer); if (!audioPlayer.hasClass("audio-playing")) { play(audioPlayer, $audio_el); triggerPlay(audioPlayer); } else { togglePause(audioPlayer); } togglePlaying(audioPlayer, $audio_el); event.preventDefault(); }); audioPlayer.on("click", ".previous", function (event) { previous(audioPlayer, playlist); event.preventDefault(); }); audioPlayer.on("click", ".next", function (event) { next(audioPlayer, $audio_el, playlist); event.preventDefault(); }); } audioPlayer.on("click", ".sr_skipForward", function () { sr_audioSkipTo(30, $audio_el); }); audioPlayer.on("click", ".sr_skipBackward", function () { sr_audioSkipTo(-15, $audio_el); }); audioPlayer.on("click", ".sr_shuffle", function (event) { sr_shuffleToggle(event, audioPlayer); }); audioPlayer.on("click", ".sr_speedRate", function (event) { sr_setSpeedRate(event, audioPlayer, $audio_el); }); audioPlayer.on("click", ".volume .sricon-volume", function (event) { sr_muteTrigger(event, audioPlayer, $audio_el); }); audioPlayer.on("mouseenter", ".volume .sricon-volume", function (event) { sr_updateSlider(event, audioPlayer); }); audioPlayer.on('click', '.srp_swiper-control .srp_play', function (event) { IRON.swiper.play(this, audioPlayer); }); audioPlayer.on("click", ".srp_noteButton i", function () { let noteParent; if ($(this).parents('.sr-playlist-item').length) { noteParent = $(this).parents('.sr-playlist-item'); } else { noteParent = $(this).parents('.srp_player_boxed'); } if (noteParent.find('.srp_note').length == 0) { const el = $(this); srp_wc_loadspinner(el); var data = { 'action': 'load_track_note_ajax', 'post-id': $(this).data('source-post-id'), 'track-position': $(this).data('track-position'), 'track-title': $(this).data('track-title'), 'track-desc-postcontent': $(this).data('track-use-postcontent'), 'nonce': sonaar_music.ajax.ajax_nonce }; $.post(sonaar_music.ajax.ajax_url, data, function (response) { srp_wc_unloadspinner(el); response = JSON.parse(response); const notePopup = $('
      ', { class: 'srp_note' }); $(notePopup).hide(); $(notePopup).prepend('
      ' + closeSvg + '
      ' + response); if (el.parents('.sr-playlist-item').length) { if (el.parents('.sr-playlist-item').find('.srp_note').length == 0) { //not insert the note if it is already append if(el.parents('.srp_tracklist_grid').length){ el.parents('.sr-playlist-item').find('.store-list').before(notePopup); }else{ el.parents('.sr-playlist-item').append(notePopup); } } toggleNote(el); } else { $(audioPlayer).find('.srp_player_boxed').prepend(notePopup); toggleNote(el); } }) } else { toggleNote($(this)); } }); audioPlayer.on('click', '.sr_track_cover', function (event) { if( !audioPlayer.hasClass('srp_tracklist_grid') ) return; if ( $(event.target).is('.srp_play *')) return; if ($(this).parents('.sr-playlist-item').data('post-url')) { // l'option to link the tracklist title is enable // go to the post url window.location.href = $(this).parents('.sr-playlist-item').data('post-url'); } }); audioPlayer.on('click', '.sr_track_cover .srp_play', function () { $(this).parents('.sr-playlist-item').find('.srp_audio_trigger').click(); }); audioPlayer.on("click", ".srp_note .sr_close", function () { toggleNote($(this)); }); audioPlayer.on('mouseenter', '.sr-playlist-item:not(.srp_extendable) .song-store-list-menu', function () { openStoreListContainer(this); }); audioPlayer.on('mouseleave', '.sr-playlist-item:not(.srp_extendable) .song-store-list-container', function () { closeStoreListContainer(this); }); audioPlayer.on('mouseenter', '.srp_extendable, .song-store-list-menu, .srp_ellipsis', function () { if( ($(audioPlayer).hasClass('srp_responsive') && $('.song-store-list-menu:hover, .srp_ellipsis:hover').length ) || ! audioPlayer.hasClass('srp_responsive') ){ const el = ( $(this).hasClass('srp_extendable') )? $(this) : $(this).parents('.srp_extendable'); el.find('.song-store-list-menu').width('fit-content'); el.addClass('srp_extended') } }); audioPlayer.on('mouseleave', '.srp_extendable', function () { let width; if(audioPlayer.hasClass('srp_responsive')){ width = ( $(this).find('.song-store-list-menu').data('mobile-width') )? $(this).find('.song-store-list-menu').data('mobile-width') : 100 ; }else{ width = ( $(this).find('.song-store-list-menu').data('width') )? $(this).find('.song-store-list-menu').data('width') : 200 ; } $(this).find('.song-store-list-menu').width(width); $(this).removeClass('srp_extended') }); audioPlayer.on('click', '.srp_wc_variation_button', function () { if($(this).find('.sricon-spinner-wrap').length) return; //if the button is already loading, do nothing srp_variation_button(this); return false; }) audioPlayer.find('.playlist .ajax_add_to_cart').on('click', function () { srp_add_to_cart_loadspinner($(this)); }) //Store button ajax call for popup audioPlayer.off('click', '.sr-store-popup'); audioPlayer.on('click', '.sr-store-popup', function () { let playerId = 0; const el = this; $(IRON.players).each(function () { if (this.audioPlayer.id == $(el).parents('.iron-audioplayer').data('id')) { playerId = this.audioPlayer.id; return; } }) const id = $(this).data('source-post-id'); const storeId = $(this).data('store-id'); const trackNumber = $(this).parents('.sr-playlist-item').index(); sr_popUp(id, storeId, trackNumber, playerId, $(this)); }) audioPlayer.find('.srp_search').keydown(function(e) { //Trigger search on keyup IRON.searchField.search(this, e); }); } function toggleNote(el) { let noteParent; if (el.parents('.sr-playlist-item').length) { noteParent = el.parents('.sr-playlist-item'); } else { noteParent = el.parents('.srp_player_boxed'); } const currentOpened = (noteParent.find('.srp_note').attr('data-note') == 'opened') ? true : false; el.parents('.iron-audioplayer').find('.srp_note_opened').each(function () { const item = $(this); $(this).removeClass('srp_note_opened'); $(this).find('.srp_note').attr('data-note', 'closed') if (el.parents('.sr-playlist-item').length) { $(this).find('.srp_noteButton i.sricon-close-circle').removeClass('sricon-close-circle').addClass('sricon-info'); $(this).find('.srp_note').css('opacity', 1).slideUp(125, function () { if (item.find('.srp_track_description').length) { item.find('.srp_track_description').fadeIn(75); } }).animate( { opacity: 0 }, { queue: false, duration: 125 } ); } else { $(this).find('.srp_note').fadeOut(125); } }); if (!currentOpened) { noteParent.find('.srp_note').attr('data-note', 'opened'); if (el.parents('.sr-playlist-item').length) { noteParent.find('.srp_noteButton i.sricon-info').removeClass('sricon-info').addClass('sricon-close-circle'); if (noteParent.find('.srp_track_description').length) { noteParent.find('.srp_track_description').fadeOut(75, function () { noteParent.find('.srp_note').css('opacity', 0).slideDown(125).animate( { opacity: 1 }, { queue: false, duration: 250 } ); }); } else { noteParent.find('.srp_note').css('opacity', 0).slideDown(125).animate( { opacity: 1 }, { queue: false, duration: 250 } ); } } else { noteParent.find('.srp_note').fadeIn(125); } noteParent.addClass('srp_note_opened'); } } /* Set Lyrics of what is currently playing */ function karaokeMode(audioPlayer, currentTime) { var selectedLyricLine = ''; var i = 0 if (audioPlayer.stickyPlayer) { var currentTrack = IRON.sonaar.player.currentTrack; if(!IRON.sonaar.player.list.tracks[currentTrack].has_lyric) return; var playerId = IRON.sonaar.player.selectedPlayer.id; } else { if($(audioPlayer).find('.sr-playlist-item.current').data('track-lyric') != '1') return; var currentTrack = $(audioPlayer).find('.sr-playlist-item.current').index(); var playerId = $('.iron-audioplayer.sr_selectedPlayer').data('id'); } $('.srp_selected_player').removeClass('srp_selected_player'); $('#sonaar-modal[data-track-number="' + currentTrack + '"][data-player-id="' + playerId + '"]').addClass("srp_selected_player"); while (i < 3 && selectedLyricLine.length == 0) { selectedLyricLine = $('#srmp3_lyrics_container p[begin="' + (currentTime - i) + '"], #srmp3_lyrics_container p[begin^="' + Math.floor(currentTime - i) + '."], #sonaar-modal.srp_selected_player p[begin="' + (currentTime - i) + '"], #sonaar-modal.srp_selected_player p[begin^="' + Math.floor(currentTime - i) + '."]') i++; } if (selectedLyricLine.length) { selectedLyricLine.parents('.srmp3_lyrics, #sonaar-modal.srp_selected_player').addClass("srmp3_singning"); $(".srmp3_lyrics_read").removeClass("srmp3_lyrics_read"); selectedLyricLine.addClass("srmp3_lyrics_read"); jQuery('#srmp3_sticky_lyrics').replaceWith( jQuery('', { id: 'srmp3_sticky_lyrics', class: 'srmp3_lyrics_container', title: $(selectedLyricLine[0]).text(), text: $(selectedLyricLine[0]).text() }).appendTo('#srmp3_lyricsplaying_container')); // keep lyrics centered in the modal if (!document.getElementById('srmp3_lyrics_container').classList.contains('srp_lyric_unlock')) { srp_lyricsAreScrolling = true; var element = document.querySelector("#srmp3_lyrics_container .srmp3_lyrics_read"); element.scrollIntoView({ behavior: "auto", block: "center", inline: "nearest" }); } } } function fakeWaveClick(from) { $(".sr_selectedPlayer .sonaar_fake_wave, #sonaar-player .sonaar_fake_wave, .mobileProgress").off("click"); $(".sr_selectedPlayer .sonaar_fake_wave, #sonaar-player .sonaar_fake_wave, .mobileProgress").on("click", function (event) { if($(this).parents('.sr-playlist-item:not(.current)').length){ $(this).parents('.sr-playlist-item').find('.srp_audio_trigger').trigger('click'); } if (from == "sticky") { var currentAudio = document.getElementById("sonaar-audio"); } else { var currentAudio = $(this).parents('.iron-audioplayer').find('.album-player .sonaar_media_element')[0]; } var progressedAudio = $(this).width() / event.offsetX; function waitUntilNewTrackIsloaded() { //when we click on waveform from the tracklist, we need to wait until the new track is loaded before seeking to the right position if( !isNaN(currentAudio.duration) ) { const duration = (currentAudio.duration == 'Infinity')? currentAudio.buffered.end(currentAudio.buffered.length-1) : currentAudio.duration; currentAudio.currentTime = duration / progressedAudio; event.preventDefault(); clearInterval(intervalId); } } const intervalId = setInterval(waitUntilNewTrackIsloaded, 50); setTimeout(() => { clearInterval(intervalId); }, 3000); }); } function preSetSingleTrack(singleTrack) { var soundwaveWrapper = singleTrack.find('.srp_soundwave_wrapper'); var storeList = singleTrack.find('.store-list'); var costumFieldColumns = singleTrack.find('.sr-playlist-cf-container'); var noteButton = singleTrack.find('.srp_noteButton'); const date = (typeof singleTrack.data('date-formated'))? singleTrack.data('date-formated') : ''; singleTrack.removeAttr('data-date-formated'); singleTrack.find('.srp_soundwave_wrapper, .store-list, .sr-playlist-cf-container, .srp_noteButton').remove(); singleTrack.find(".audio-track").remove(); $(""); var audioTrigger = $("
      ", { class: 'srp_audio_trigger' }) singleTrack.find('.srp_tracklist-item-date').remove(); let tracklistItemMeta = ''; tracklistItemMeta += '' + singleTrack.data("tracktime") + ''; if (singleTrack.data('post-url')) { // l'option to link the tracklist title is enable var tracklistItemContentBox = $("
      ", { class: 'audio-track' }); var playAndNumber = audioTrigger; var tracklistItemTitle = $("", { class: 'tracklist-item-title', href: singleTrack.data('post-url') }).append(singleTrack.data('tracktitle')); } else { var tracklistItemContentBox = $(audioTrigger).addClass('audio-track'); var tracklistItemTitle = $("
      ", { class: 'tracklist-item-title' }).append(singleTrack.data('tracktitle')); var playAndNumber = $("", { class: 'track-number', html: '', }); } tracklistItemContentBox .append(playAndNumber) .append(tracklistItemTitle) .append(soundwaveWrapper) .append(tracklistItemMeta); var playlistItemFlex = singleTrack.find('.sr-playlist-item-flex').length ? singleTrack.find('.sr-playlist-item-flex') : singleTrack; playlistItemFlex .append(tracklistItemContentBox) .append(costumFieldColumns) .append(storeList) .append(noteButton); } function setFrontendSingleTrack(singleTrack, eq, trackNumber, $audio_el, audioPlayer) { singleTrack.data('init', true); //Dont init twice the same track with listjs singleTrack.find('.srp_audio_trigger').on("click", function (event) { if ($(event.target).closest('.srp_soundwave_wrapper').length) { return; } if ($(this).find('.srp_noteButton:hover').length ) { //if we click on the note button: Note button could be inside the srp_audio_trigger in the tracklist grid layout return; } if ($(this).parents('.sr-playlist-item').attr("data-audiopath").length == 0) { return; } if ( !IRON.audioPlayer.stickyEnable && audioPlayer.hasClass('srp_reordered') || audioPlayer.hasClass('srp_player_is_favorite')) { eq = $(this).parents('.sr-playlist-item').index(); //Base the EQ value on the tracklist order when the track list has been manipulated by filter or favorite } if (audioPlayer.stickyPlayer && $(audioPlayer).hasClass('sr_selectedPlayer') && IRON.sonaar.player.currentTrack == eq) { //IF track already loaded in the sticky player IRON.sonaar.player.play(); return; } if (audioPlayer.stickyPlayer) { IRON.sonaar.player.setPlaylist(audioPlayer, eq, srp_startingTime); srp_startingTime = 0; audioPlayer.data("currentTrack", eq); } if (ifTrackIsPlaying($audio_el) && singleTrack.hasClass("current") && $(audioPlayer).hasClass('sr_selected')) { if (audioPlayer.stickyPlayer) { play(audioPlayer, $audio_el); } else { togglePause(audioPlayer); togglePlaying(audioPlayer, $audio_el); } } else if (singleTrack.hasClass("current") && $(audioPlayer).hasClass('sr_selected')) { play(audioPlayer, $audio_el); } else { if (!audioPlayer.stickyPlayer) { togglePause(audioPlayer); setAudio(singleTrack.data("audiopath"), $audio_el); $audio_el.play(); } setCurrentTrack(singleTrack, eq, audioPlayer, $audio_el); $(document).trigger("sonaarStats", [audioPlayer]); audioPlayer.find(".playlist li").removeClass("current"); singleTrack.addClass("current"); if (!audioPlayer.stickyPlayer) { sr_addTrackToPlaylist(singleTrack, audioPlayer); IRON.audioPlayer.sr_loadLyricsAjax(singleTrack.attr("data-post-id"), singleTrack.attr("data-track-pos")); } triggerPlay(audioPlayer); togglePlaying(audioPlayer, $audio_el); IRON.audioPlayer.activePlayer = audioPlayer; var trackTitle = String(singleTrack.data("tracktitle")).replace(//g, ''); var albumTitle = singleTrack.data("albumtitle"); var artistName = singleTrack.data("artistname"); // dont exist var albumArt = singleTrack.data("albumart"); setMediaSessionAPI(trackTitle, albumTitle, artistName, albumArt); } if(audioPlayer.hasClass('srp_player_spectrum') && !audioPlayer.stickyPlayer){ startAudioSpectrum(audioPlayer); } IRON.init_generatePeaks(audioPlayer); event.preventDefault(); }); if (singleTrack.data('post-url')) { // l'option to link the tracklist title is enable singleTrack.find('.srp_audio_trigger').addClass('track-number').html('' + trackNumber + ''); }else{ singleTrack.find('.track-number .number').html(trackNumber); } singleTrack.find('.store-list').before(singleTrack.find('.audio-track')); if( $(audioPlayer).hasClass('srp_tracklist_grid') ){ singleTrack.find('.audio-track').after(singleTrack.find('.srp_soundwave_wrapper')); singleTrack.find('.store-list').before(singleTrack.find('.srp_tracklist-item-date')); singleTrack.find('.store-list').before(singleTrack.find('.srp_track_description')); singleTrack.find('.audio-track').append(singleTrack.find('.srp_noteButton')); } singleTrack.find('.sr-playlist-cf-container').before(singleTrack.find('.audio-track')); singleTrack.find('.sr-playlist-cf-container').before(singleTrack.find('.sr_track_cover.srp_spacer')); if(singleTrack.find('.srp_soundwave_wrapper').length){ IRON.createFakeWave(audioPlayer, false, singleTrack); } if(audioPlayer.trackMemory){ const trackMemoryKey = (singleTrack.data('audiopath')).replace(/[^a-zA-Z0-9]|https|http|/g, ''); if(typeof IRON.localStorageTrackMemory[trackMemoryKey] == 'object'){ const [currentTime, duration] = IRON.localStorageTrackMemory[trackMemoryKey]; singleTrack.data( 'current-time', IRON.localStorageTrackMemory[trackMemoryKey][0] ); singleTrack.find('.sonaar_wave_cut').width((currentTime / duration) * 100 + "%"); } singleTrack.data( 'track-memory-key', trackMemoryKey ); } } function trackListItemResize() { $(".playlist li").each(function () { var storeWidth = $(this).find(".store-list").outerWidth(); var trackWidth = $(this).find(".track-number").outerWidth(); $(this) .find(".tracklist-item-title") .css("max-width", $(this).outerWidth() - storeWidth - trackWidth - 10); }); } var setAudio = function (audio, $audio_el) { // setAudio function is not called when sticky player is enable if(typeof audioPlayer.hasPlayed == 'undefined'){ // Register the audio object a first time for iOS to continue to next track on lock mode. elementAudio.src = audio; } jQuery($audio_el).attr("src", audio); $audio_el.load(); if (!audioPlayer.stickyPlayer) { $(".sr_selectedPlayer").removeClass("sr_selectedPlayer"); $($audio_el).parents(".iron-audioplayer").addClass("sr_selectedPlayer"); } fakeWaveClick("widget"); audioPlayer.removeData('track_from_outer_page'); //'track_from_outer_page' is true when player play a track from another ajax page(pagination) }; function getTime($audio_el) { return $audio_el.getCurrentTime(); } function togglePlaying(audioPlayer, $audio_el) { $(".iron-audioplayer").removeClass("sr_selected"); audioPlayer.addClass("sr_selected"); $(".iron-audioplayer, .srmp3_sonaar_ts_shortcode").removeClass("audio-playing"); if (ifTrackIsPlaying($audio_el)) { audioPlayer.addClass("audio-playing"); if (typeof audioPlayer.data('ts-sync') != 'undefined') { $('#sonaar_ts-' + audioPlayer.data('ts-sync')).addClass("audio-playing"); } audioPlayer.find('.currentTime, .totalTime').show(); return; } $("#sonaar-player .play").removeClass("audio-playing"); } function togglePause(audioPlayer) { $.each(IRON.players, function (index) { if (IRON.players[index] != audioPlayer) { IRON.players[index].audioPlayer.find(".album-player .sonaar_media_element")[0].pause() } }); } function play(audioPlayer, $audio_el, playlist) { var currentTrack = audioPlayer.data("currentTrack"); IRON.init_generatePeaks(audioPlayer); if (audioPlayer.stickyPlayer) { $audio_el.pause(); if (typeof playlist !== "undefined") { playlist.find("li").eq(currentTrack).find('.srp_audio_trigger').click(); } } else { if(currentTrack != 999999){ // CurrentTrack equal 999999 when the track is not in a playlist caused by list.js if($($audio_el).attr('src') == ''){ setAudio($(audioPlayer).find('.playlist li').eq($(audioPlayer).attr('trackselected')).data("audiopath"), $audio_el); $(document).trigger("sonaarStats", [audioPlayer]); } if (!audioPlayer.find(".playlist li").hasClass("current") && audioPlayer.data('track_from_outer_page') !== true) { //'track_from_outer_page' is true when player play a track from another ajax page(pagination), so dont set the current class to a track from the tracklist var trackListElement = $(audioPlayer).find('.playlist li').eq($(audioPlayer).attr('trackselected')); trackListElement.addClass("current"); if (!audioPlayer.stickyPlayer) { IRON.audioPlayer.sr_loadLyricsAjax(trackListElement.attr("data-post-id"), trackListElement.attr("data-track-pos")); } } } if (ifTrackIsPlaying($audio_el)) { $audio_el.pause(); } else { $audio_el.play(); } togglePlaying(audioPlayer, $audio_el); } } function previous(audioPlayer, playlist) { if (IRON.audioPlayer.stickyEnable && audioPlayer.hasClass('sr_selectedPlayer')) { IRON.sonaar.player.previous() } else { var currentTrack = audioPlayer.data("currentTrack"); var nextTrack; if (audioPlayer.shuffle) { $(random_order).each(function (index) { if (this == currentTrack) { if (index == 0 && ! audioPlayer.hasClass('srp_noLoopTracklist')) { //if it is the first track form the shuffle order nextTrack = random_order[random_order.length - 1]; } else { nextTrack = random_order[index - 1]; } } }); } else { nextTrack = currentTrack - 1; } playlist.find("li").eq(nextTrack).find('.srp_audio_trigger').click(); } } function next(audioPlayer, $audio_el, playlist) { if (IRON.audioPlayer.stickyEnable && audioPlayer.hasClass('sr_selectedPlayer')) { IRON.sonaar.player.next() } else { var currentTrack = audioPlayer.data("currentTrack"); var nextTrack; if (audioPlayer.shuffle) { $(random_order).each(function (index) { if (this == currentTrack) { if (index >= random_order.length - 1 && ! audioPlayer.hasClass('srp_noLoopTracklist')) { //if it is the last track form the shuffle order nextTrack = random_order[0]; } else { nextTrack = random_order[index + 1]; } } }); } else { nextTrack = currentTrack + 1; } if(!playlist.find("li").eq(nextTrack).length && audioPlayer.hasClass('srp_noLoopTracklist') && !IRON.audioPlayer.stickyEnable){ wavesurfer.pause(); audioPlayer.removeClass("audio-playing"); $('.srmp3_sonaar_ts_shortcode').removeClass("audio-playing"); }else{ if (!playlist.find("li").eq(nextTrack).length) { nextTrack = 0; } $audio_el.pause(); playlist.find("li").eq(nextTrack).find('.srp_audio_trigger').click(); } } } function getPlayer() { return this; } function getplay() { play(this.audioPlayer, this.$audio_el); } function ifTrackIsPlaying($audio_el) { return !$audio_el.paused; } var fakeWaveUpdate = function ($audio_el, audioPlayer, playlist) { $($audio_el).on("ended", function () { IRON.setTracksTimeMemories(audioPlayer, 0); //Reset the track time memory when the track is ended if (audioPlayer.notrackskip !== "on") { audioPlayer.hasPlayed = true; next(audioPlayer, $audio_el, playlist); } else { audioPlayer.removeClass("audio-playing"); $('.srmp3_sonaar_ts_shortcode').removeClass("audio-playing"); } }); $($audio_el).on("timeupdate", function () { const duration = (this.duration == 'Infinity')? this.buffered.end(this.buffered.length-1) : this.duration; $(audioPlayer) .find('.album-player .sonaar_wave_cut, .sr-playlist-item.current .sonaar_wave_cut') .width(((this.currentTime + 0.35) / duration) * 100 + "%"); }); }; function setTrackSoundwaveCursor($audioPlayer){ if(!$audioPlayer.setTrackSoundwaveCursor || ! $audioPlayer.find('.srp_soundwave_wrapper').length) return; var player = $audioPlayer[0]; var tooltip; var verticalLine; if (! $audioPlayer.find('.sr_tracklenght_tooltip').length){ tooltip = document.createElement('div'); tooltip.className = 'sr_tracklenght_tooltip'; player.appendChild(tooltip); verticalLine = document.createElement('div'); verticalLine.className = 'sr_tracklenght_tooltip_vertical'; player.appendChild(verticalLine); }else{ tooltip = document.querySelector('.sr_tracklenght_tooltip'); verticalLine = document.querySelector('.sr_tracklenght_tooltip_vertical'); } player.querySelectorAll('.srp_soundwave_wrapper .sonaar_fake_wave').forEach(function (element) { element.addEventListener('mousemove', function(e) { const timelineWidth = this.offsetWidth; const rect = this.getBoundingClientRect(); const offsetX = e.clientX - rect.left; const trackLength = $(element).parents('.sr-playlist-item').data('tracktime'); const duration = convertTime(trackLength); const time = (offsetX / timelineWidth) * duration; const fixedTooltipTopPosition = $(element).offset().top - $(player).offset().top; tooltip.innerText = formatTime(time); tooltip.style.transform = 'translateY(5px) scale(1)'; tooltip.style.opacity = '1'; tooltip.style.left = `${e.pageX - $(player).offset().left - 59}px`; tooltip.style.top = `${fixedTooltipTopPosition - 30}px`; verticalLine.style.display = 'block'; verticalLine.style.height = `${this.offsetHeight+20}px`; verticalLine.style.left = `${e.pageX - $(player).offset().left}px`; verticalLine.style.top = `${fixedTooltipTopPosition-10}px`; }); element.addEventListener('mouseout', function() { tooltip.style.transform = 'translateY(20px) scale(0.5)'; tooltip.style.opacity = '0'; verticalLine.style.display = 'none'; }); }); function convertTime(time) { const parts = time.split(':'); return (+parts[0]) * 60 + (+parts[1]); } function formatTime(seconds) { const date = new Date(0); date.setSeconds(seconds); return date.toISOString().slice(11, 19); } } function ajaxInitPage() { setIronAudioplayers(); resetsrp_vars(); setStickyPlayer(); stickyPlayerFromPageOption(); } function startAjaxPreloaderAnim(player){ player.find('.srp_shimmer_container').remove(); player.find('.srp_notfound').css('display', 'none'); const container = document.createElement('div'); container.className = 'srp_shimmer_container'; var cardWidthPercentage; var shimmerNum = player.find('.srp_list .sr-playlist-item').length; if(player.find('.srp_list .sr-playlist-item').length < 1){ shimmerNum = player.srp_player_param.posts_per_page; } const gridColumns = (typeof player.srp_player_param.grid_column_number != 'undefined') ? player.srp_player_param.grid_column_number[0]: false; let playerlayout = 'list'; if(gridColumns) { playerlayout = 'grid'; } if (playerlayout === 'list') { const widths = ['40px', '50%', '10%', '10%', '10%', '2%' ,'2%']; for (let i = 0; i < shimmerNum; i++) { const rowContainer = document.createElement('div'); rowContainer.className = 'srp_shimmer_row'; for (let j = 0; j < widths.length; j++) { const placeholder = document.createElement('div'); placeholder.className = 'srp_shimmer_row_el'; placeholder.style.flex = `0 0 ${widths[j]}`; if (j == 0){ placeholder.style.height = '40px'; } if( j>= widths.length-2){ // second last and last to be grow placeholder.style.flex = `1 0 ${widths[j]}`; } rowContainer.appendChild(placeholder); } container.appendChild(rowContainer); } } else if (playerlayout === 'grid') { cardWidthPercentage = 100 / player.srp_player_param.grid_column_number[0] - 0.5 + "%"; // Subtracting 2% for margins for (let i = 0; i < shimmerNum; i++) { const cardContainer = document.createElement('div'); cardContainer.className = 'srp_shimmer_card'; cardContainer.style.width = cardWidthPercentage; // Set card width based on columns per row const imagePlaceholder = document.createElement('div'); imagePlaceholder.className = 'srp_shimmer_row_el'; cardContainer.appendChild(imagePlaceholder); const shimmerHeights = ['30px', '20px', '20px']; for (const height of shimmerHeights) { const placeholder = document.createElement('div'); placeholder.className = 'srp_shimmer_row_el'; placeholder.style.height = height; cardContainer.appendChild(placeholder); } container.appendChild(cardContainer); } } // Append the container to the desired location player.find('.srp_list').css('display', 'none'); player.find('.srp_list').before(container); if (playerlayout === 'grid'){ var cardWidth = $('.srp_tracklist_grid .srp_shimmer_card').width()-50; $('.srp_tracklist_grid .srp_shimmer_card > .srp_shimmer_row_el:first-child').css('height', cardWidth + 'px'); $('.srp_tracklist_grid .srp_shimmer_card').css('width', `calc(${cardWidthPercentage} - 10px)`); } } function reloadAjax(player = null, transition = false, forced = false, unsync = true){ if(!player.lazy_load && !forced){ return; } console.log('reload Ajax') if(typeof player.params == 'undefined'){ player.params = {}; // this seems undefined when loading an initial player... } //return if (typeof IRON.removePlayerResizeListeners === 'function') { IRON.removePlayerResizeListeners(player.attr('data-id')); } var num = srp_convertPlayerIdToPlayerNum(player.attr('data-id')); var maxDuration = 4000; var interval = 100; var elapsedTime = 0; var intervalId = setInterval(function() { //Set interval to wait for the player to be loaded: required for player inside a popup var playerIndex = srp_convertPlayerIdToPlayerNum(player.attr('data-id')); if (playerIndex !== null) { var playerId = player.attr('data-id').split('-'); playerId = playerId[playerId.length - 1]; // get last element of the array if( (typeof window['srp_player_params_' + playerId] == 'undefined' || typeof window['srp_player_params_args_' + playerId] == 'undefined') && $('#srp_js_params_' + playerId).length){ //if player params are not set yet (for gutenberg block editor) const scriptElement = document.getElementById('srp_js_params_' + playerId).textContent; const parts = scriptElement.split('var ').map(part => part.trim().replace(';', '')); const jsonObjects = parts.map(part => { const match = part.match(/(\w+)\s*=\s*(\{[^{}]+\})/); return match ? { variable: match[1], json: match[2] } : null; }).filter(Boolean); jsonObjects.forEach(obj => { window[`${obj.variable}`] = JSON.parse(`${obj.json}`); }); } var srp_player_param_args= window['srp_player_params_args_' + playerId]; player.srp_player_param = window['srp_player_params_' + playerId]; if(player.data("tracks-per-page")){ player.srp_player_param['posts_per_page'] = player.data("tracks-per-page"); }else{ if(!player.hasClass('srp_player_is_recentlyPlayed')){ player.srp_player_param['posts_per_page'] = 50; //if keep this low IF Ajax is activated and we dont have a tracks per page to prevent loading too many tracks. It can crash elementor editor. } } player.srp_player_param['srp_callFromAjax'] = 'true'; let reformat_meta; if (player.params['meta'] && typeof player.params['meta'] === 'object') { reformat_meta = Object.entries(player.params['meta']).map(([key, value]) => `${key}:${value}`).join(';'); } // meta player.srp_player_param['srp_meta'] = reformat_meta || ''; // page player.srp_player_param['srp_page'] = player.params['page'] //order player.srp_player_param['srp_order'] = player.params['order'] // player id player.srp_player_param['srp_player_id'] = player.params['playerId'] // search player.srp_player_param['srp_search'] = player.params['search'] //console.log(player.srp_player_param); player.srp_player_param['category'] = player.data('category'); if(transition){ var $playlist = player.find('.srp_list'); $playlist.css({ 'opacity': 0, 'transition': 'opacity 0.15s ease' }); startAjaxPreloaderAnim(player); } var data = { 'action': 'load_ajax_player', 'nonce': sonaar_music.ajax.ajax_nonce, 'args': srp_player_param_args, 'parameters': player.srp_player_param, }; //return; if (player.currentRequest) { player.currentRequest.abort(); // Abort the previous request } var isPlaying = player.hasClass('audio-playing'); player.currentRequest = $.post(sonaar_music.ajax.ajax_url, data, function (response) { var parsedResponse = $(response); var newClassList = parsedResponse.find('.iron-audioplayer').attr('class'); player.attr('class', newClassList); // Update the id and data-id attributes of .iron-audioplayer var newAudioPlayerId = parsedResponse.find('.iron-audioplayer').attr('id'); var newAudioPlayerDataId = parsedResponse.find('.iron-audioplayer').attr('data-id'); var newAudioPlayerUrlPlaylist = parsedResponse.find('.iron-audioplayer').attr('data-url-playlist'); var newAudioPlayerTotalItems= parsedResponse.find('.iron-audioplayer').attr('data-total_items'); var newAudioPlayerTotalPages = parsedResponse.find('.iron-audioplayer').attr('data-total_pages'); player.attr('id', newAudioPlayerId); player.attr('data-id', newAudioPlayerDataId); player.attr('data-url-playlist', newAudioPlayerUrlPlaylist); player.attr('data-total_items', newAudioPlayerTotalItems); player.attr('data-total_pages', newAudioPlayerTotalPages); if (unsync){ IRON.sonaar.player.unsyncWidgetPlayers(); } // Replace the content of the .srp_list div var newTracklistContent = parsedResponse.find('.srp_tracklist'); player.find('.srp_tracklist').replaceWith(newTracklistContent); var newMiniPlayerMeta = parsedResponse.find('.album-player'); player.find('.album-player').replaceWith(newMiniPlayerMeta); // Insert columnHeadings before srp_tracklist in the player var columnHeadings = parsedResponse.find('.sr-cf-heading'); // Check if .sr-cf-heading exists within the player if (player.find('.sr-cf-heading').length == 0) { player.find('.srp_tracklist').before(columnHeadings); } if(isPlaying && ! IRON.audioPlayer.stickyEnable){ player.addClass('audio-playing'); player.data('track_from_outer_page',true); //'track_from_outer_page' is true when player play a track from another ajax page(pagination) } var playerObj = Object.create(IRON.audioPlayer); playerObj.init(player); IRON.players[num] = playerObj; updatePaginationAjax(player); if(transition){ player.find('.srp_shimmer_container').remove(); // remove animation $playlist.css('opacity',1); //show the playlist } }).fail(function() { console.log('An error occurred during the post operation.'); }).always(function() { player.currentRequest = null; // Reset the request when it's complete. }); clearInterval(intervalId); } else { if(transition){ player.find('.srp_shimmer_container').remove(); $playlist.css('opacity',1); } elapsedTime += interval; if (elapsedTime >= maxDuration) { clearInterval(intervalId); } } }, interval); } //Make these functions accessible from IRON.audioPlayer return { init: initPlayer, getPlayer: getPlayer, play: getplay, autoplayEnable: autoplayEnable, triggerPlay: triggerPlay, stickyEnable: stickyEnable, ajaxInitPage: ajaxInitPage, setIronAudioplayers: setIronAudioplayers, fakeWaveClick: fakeWaveClick, karaokeMode: karaokeMode, sr_loadLyricsAjax: sr_loadLyricsAjax, updateMiniPlayer: updateMiniPlayer, setRandomList: setRandomList, setMediaSessionAPI: setMediaSessionAPI, checkArtWorkFullBg: checkArtWorkFullBg, seekTime: seekTime, reloadAjax: reloadAjax, }; })(jQuery); function hideEmptyAttribut(string, selector) { if (string == "") { selector.css("display", "none"); } else { selector.css("display", "block"); } } //Set Sticky player if it is enable once function setStickyPlayer() { if (isGutenbergActive()) { //Dont load the sticky player if we are in the guttenberg editor return; } var cookieSettingsValue = getCookieValue("sonaar_mp3_player_settings"); if ( (typeof srp_vars !== 'undefined' && srp_vars.sonaar_music.footer_albums != "" && srp_vars.sonaar_music.footer_albums != [""]) || (sonaar_music.option.overall_sticky_playlist != null && sonaar_music.option.overall_sticky_playlist != [""]) || cookieSettingsValue != "" ) { IRON.audioPlayer.stickyEnable = true; } else { jQuery(".iron-audioplayer").each(function () { if (jQuery(this).data("sticky-player")) { IRON.audioPlayer.stickyEnable = true; } }); } } //Reset srp_vars on the ajaxify navigation function resetsrp_vars() { var str = jQuery('script:contains("var srp_vars")').text(); if (str !== "") { str = str.split("var srp_vars =")[1]; srp_vars = JSON.parse(str.split(";")[0]); } } //Load Music player Content function setIronAudioplayers(specificParentSelector) { $ = jQuery; //Set srp_linked to the audioplayer if a search or a selector widget interact with it $('.srp_search_container, .srp-filters-widget').each(function () { if( $(this).data('player-id') && $('#'+ $(this).data('player-id') + '.iron-audioplayer, #'+ $(this).data('player-id') + ' .iron-audioplayer' ).length ){ $('#'+ $(this).data('player-id') + '.iron-audioplayer, #'+ $(this).data('player-id') + ' .iron-audioplayer' ).addClass('srp_linked'); }else{ $('.iron-audioplayer' ).eq(0).addClass('srp_linked'); } }) if (typeof IRON === 'undefined' || (typeof IRON !== 'undefined' && typeof IRON.audioPlayer === 'undefined')) return; if (typeof specificParentSelector !== "undefined") { if( $('#shortcode_builder').length ){ return; //Avoid to set the player twice if we are in the shortcode builder. specificParentSelector is set when setIronAudioplayers is called from the widget inline script. } // set all audioplayers or only players inside a specific selector if (!specificParentSelector.includes('"') && !specificParentSelector.includes("'") && $('[data-id="' + specificParentSelector + '"]').hasClass('iron-audioplayer')) { //if specificParentSelector is the iron-audioplayer element (not parent) var playerSelector = $('[data-id="' + specificParentSelector + '"]'); } else { var playerSelector = $(specificParentSelector + " .iron-audioplayer"); } if (typeof IRON.players == "undefined") { IRON.players = []; //dont reset the IRON.players if they already exist and the setIronAudioplayers function is executed from sr-scripts.js } } else { var playerSelector = $(".iron-audioplayer"); let protectedPlayer = []; if( typeof IRON.players != 'undefined'){ for(const i in IRON.players) { if( $(IRON.players[i].audioPlayer).parents(".elementor-widget-music-player").length || $(IRON.players[i].audioPlayer).parents(".elementor-widget-woocommerce-products").length ){ protectedPlayer.push(IRON.players[i]); } } } IRON.players = protectedPlayer; } playerSelector.each(function () { if (typeof specificParentSelector == "undefined" && $(this).parents(".elementor-widget-woocommerce-products").length) return; if (typeof specificParentSelector == "undefined" && $(this).parents(".elementor-widget-music-player").length) return; var player = Object.create(IRON.audioPlayer); player.init($(this)); IRON.players.push(player); if ( $('.iron-audioplayer').length - $('.elementor-location-popup').find('.iron-audioplayer').length == IRON.players.length){ //When is the last player to be init if( $('.srp-filters-container').length || //filter dropdown widget $('.srp_filters_container').length || //filter tag widget $('.iron-audioplayer').find('.srp_search_container').length || $('.iron-audioplayer').find('.sr-cf-heading').length || $('.iron-audioplayer').find('.srp_pagination').length ){ srp_setSearchFiltersFromUrl(); } } }); } //Display stickyplayer from the page option function stickyPlayerFromPageOption() { if (srp_vars.sonaar_music.footer_albums != "" && !IRON.sonaar.player.isPlaying && !IRON.sonaar.player.classes.continued) { if (Array.isArray(IRON.sonaar.player.playlistID)) { var currentPlaylist = IRON.sonaar.player.playlistID[0]; } else { var currentPlaylist = IRON.sonaar.player.playlistID; } if (Array.isArray(srp_vars.sonaar_music.footer_albums)) { var newPlaylist = srp_vars.sonaar_music.footer_albums[0]; } else { var newPlaylist = srp_vars.sonaar_music.footer_albums; } if (newPlaylist != currentPlaylist) { IRON.sonaar.player.currentTime = ""; IRON.sonaar.player.totalTime = ""; IRON.sonaar.player.setPlayer({ id: srp_vars.sonaar_music.footer_albums, autoplay: false, soundwave: true, shuffle: srp_vars.sonaar_music.footer_albums_shuffle, }); } return; } //Play from overall settings if (sonaar_music.option.overall_sticky_playlist != null && !IRON.sonaar.player.isPlaying && !IRON.sonaar.player.classes.continued) { if ( sonaar_music.option.sr_prevent_continuous_sticky_to_show === "true") return; // return if current page is edit post page if (window.location.href.indexOf('post.php') > -1 || window.location.href.indexOf('post-new.php') > -1) return; IRON.sonaar.player.currentTime = ""; IRON.sonaar.player.totalTime = ""; IRON.sonaar.player.setPlayer({ id: sonaar_music.option.overall_sticky_playlist, autoplay: false, soundwave: true, shuffle: sonaar_music.option.overall_shuffle === "on" ? "1" : "", }); } } var sonaarStatsTimeOut; jQuery(document).on("sonaarStats", function (event, audioPlayer) { if( $('.elementor-editor-active').length ) return; if ($(audioPlayer).attr("id") == "sonaar-player") { var currentTrack = $(audioPlayer); } else { var currentTrackEQ = audioPlayer.data("currentTrack"); var currentTrack = audioPlayer.find(".playlist .srp_list li").eq(currentTrackEQ); } clearTimeout(sonaarStatsTimeOut); sonaarStatsTimeOut = setTimeout(function () { if (!IRON.sonaar.player.classes.dontCountContinuous) { var trackTitle = currentTrack.attr("data-tracktitle"); trackTitle = trackTitle.replace(/.*?<\/span>/g, '').trim(); albumTitle = currentTrack.attr("data-albumtitle"); fileURL = currentTrack.attr("data-audiopath"); if (window['Matomo'] && sonaar_music.option.srmp3_use_matomo_mediaanalytics !== 'true'){ console.log('send matomo stats for play'); _paq.push(['trackEvent', 'MediaAudio', 'play', trackTitle ]); } if (typeof gtag === 'function' && srp_vars.sonaar_music.ga_tag) { gtag('event', 'played', { 'event_category': '[Playlist Played] ' + albumTitle, 'event_label': '[Track Played] ' + trackTitle, 'non_interaction': true }); } if (sonaar_music.option.srmp3_use_built_in_stats) { var target = currentTrack.attr("data-trackid") !== "" ? currentTrack.attr("data-trackid") : fileURL; var data = { action: "post_stats", nonce: sonaar_music.ajax.ajax_nonce, post_stats: { action: "play", target_title: trackTitle, target_url: target, page_title: sonaar_music.current_page.title, page_url: sonaar_music.current_page.url, }, }; jQuery.post(sonaar_music.ajax.ajax_url, data, function (response) { }); // this send stats in the wp db } } IRON.sonaar.player.classes.dontCountContinuous = false; }, 3000); }); jQuery(document).on("click", ".iron-audioplayer .playlist .store-list a[download], #sonaar-player .track-store a[download]", function (event) { jQuery(document).trigger("sonaarTrackDownload", jQuery(this)); }); jQuery(document).on("sonaarTrackDownload", function (event, target) { if( $('.elementor-editor-active').length ) return; if ($(target).parents("#sonaar-player").length) { var currentTrack = jQuery(target).parents("#sonaar-player"); } else { var currentTrack = jQuery(target).parents("li"); } var trackTitle = currentTrack.attr("data-tracktitle"); trackTitle = trackTitle.replace(/.*?<\/span>/g, '').trim(); albumTitle = currentTrack.attr("data-albumtitle"); fileURL = currentTrack.attr("data-audiopath"); if (window['Matomo'] && sonaar_music.option.srmp3_use_matomo_mediaanalytics !== 'true'){ console.log('send matomo stats for download'); _paq.push(['trackEvent', 'MediaAudio', 'download', trackTitle + '[' + target_id + ']']); } if (typeof gtag === 'function' && srp_vars.sonaar_music.ga_tag) { console.log("GA - Download Tracked++"); gtag('event', 'downloaded', { 'event_category': '[Playlist Downloads] ' + albumTitle, 'event_label': '[Track Download] ' + trackTitle, 'non_interaction': true }); } if (sonaar_music.option.srmp3_use_built_in_stats) { var target_id = currentTrack.data("trackid") !== "" ? currentTrack.data("trackid") : fileURL; var data = { action: "post_stats", nonce: sonaar_music.ajax.ajax_nonce, post_stats: { nonce: sonaar_music.ajax.ajax_nonce, target_title: trackTitle, target_url: target_id, page_title: sonaar_music.current_page.title, page_url: sonaar_music.current_page.url, }, }; jQuery.post(sonaar_music.ajax.ajax_url, data, function (response) { }); // this send stats in the wp db } }); jQuery(document).ready(function () { setStickyPlayer(); IRON.favorites.init(); setIronAudioplayers(); if (Boolean(sonaar_music.option.enable_continuous_player === "true") && !$("body").hasClass("wp-admin")) { if (!IRON.sonaar.player.preventContinuousUrl()) { sr_getCookieSettings(); } } else if (IRON.audioPlayer.stickyEnable) { sr_getCookieVolume(); } stickyPlayerFromPageOption(); sr_filterInit(); srp_getParamFromUrl(); }); function sr_filterInit(){ setTimeout(function(){ initFilterDropdowns(); initFilterTags(); initFilterRange(); }, 0); // pushes the function execution to the end of the browser's event queue to allows filters in the popup working correctly }; function initFilterDropdowns(){ /*------------------------------ START: FILTER DROPDOWNS ------------------------------*/ var filterDropdown = document.querySelectorAll('[data-sr-dropdown-atts]'); if(filterDropdown.length){ sonaarFilter = Vue.component('sonaar-filters',{ components: { Multiselect: window.VueMultiselect.default }, template: `
      No matching options.
      `, props: ['atts'], data: function() { return { componentKey: 0, value:this.initializeFilter(), } }, mounted: function() { // open-on-init-only (can close after) // move content down when open (position relative vs position absolute) if(this.atts.open_on_init || this.atts.open_always){ this.$refs[this.atts.metakey].$el.querySelector('.multiselect__content-wrapper').style.position = 'relative'; this.$refs[this.atts.metakey].isOpen = true; } }, methods: { closeEventHandler(){ // open-always (cannot close) if(this.atts.open_always){ this.$refs[this.atts.metakey].isOpen = true; } }, initializeFilter(){ const playerId = srp_getPlayerIdParamFromUrl(); if( this.atts.playerid == '' && playerId === null || playerId == this.atts.playerid ){ return srp_getMetaParams(this.atts.metakey); } }, dispatchAction (value) { if (this.atts.selecttype == "singleselect"){ // when dealing with single select this.removeTag(); } srp_addMeta( this.atts.playerid, this.atts.metakey, value, this.atts.selecttype ); }, removeTag(value){ srp_removeMeta( this.atts.metakey, value, this.atts.playerid, this.atts.selecttype); }, listAllAction (values) { } }, }); filterDropdown.forEach(function(element) { var atts = JSON.parse(element.getAttribute('data-sr-dropdown-atts')); if (atts.options.length == 0) return; var playerId = atts.options[0].playerid; var player_cat_ids = []; if(playerId){ var player = document.getElementById(playerId); if(player){ var audioPlayer = player.querySelector('.iron-audioplayer'); if (audioPlayer) { player_cat_ids = audioPlayer.getAttribute('data-category'); player_cat_ids = player_cat_ids.split(',').map(Number); } } } if (player_cat_ids.length > 0 && atts.options) { // Added the check for showOnlyIds.length > 0 atts.options.forEach(filter => { if (filter.term_ids) { const filteredOptions = []; const filteredTermIds = []; filter.term_ids.forEach((id, index) => { if (player_cat_ids.includes(id)) { filteredOptions.push(filter.options[index]); filteredTermIds.push(id); } }); // Update filter with the filtered values only if there were matching IDs if (filteredOptions.length > 0) { filter.options = filteredOptions; filter.term_ids = filteredTermIds; } } }); } const vm = new Vue({ el: element, data: {}, template: '
      ' + '' + '
      ', created: function() { this.atts = atts; } }); myVueAr.push(vm); }); }else{ myVueAr.forEach(function(vm){ //replacing the filter dropdowns with the new ones $('#'+ $(vm.$el).attr('id') ).replaceWith( vm.$el ) }) } /*------------------------------ END: FILTER DROPDOWNS ------------------------------*/ } function initFilterTags(){ /*------------------------------ START: FILTER TAGS ------------------------------*/ var filterTags = document.querySelectorAll('[data-sr-tags-atts]'); if(!filterTags.length){ myVueTag.forEach(function(vm){ //replacing the filter tags with the new ones $('#'+ $(vm.$el).attr('id') ).replaceWith( vm.$el ) }) return; } var filterButtonColors=['#E2675A','#FFA374', '#FDECB3','#FACA83','#FFCFD7', '#7E69FF','#EDFFAE','#9BC48D', '#D4FDE1','#CDF1F8','#B9C1E3', '#AE98E5','#7DB04D','#CCE780', '#8393CC','#00BFAF','#10A4EE', '#BFFB00','#FF94A6','#F7F47C', '#5171E4']; filterButtonColors = [...Array(3)].flatMap(() => filterButtonColors); Vue.component('sonaar-tags', { template: `
      `, props: ['atts'], data: function() { const state = this.initializeState(); return { showAllTags: state.showAllTags, activeTags: state.activeTags, filterButtonColors: filterButtonColors }; }, methods: { initializeState() { const initialState = { showAllTags: {}, activeTags: [] }; const playerId = srp_getPlayerIdParamFromUrl(); if (this.atts && this.atts.options) { this.atts.options.forEach(tagGroup => { initialState.showAllTags[tagGroup.label] = false; // Initialize showAllTags for each group if ((tagGroup.playerid === '' && playerId === null) || playerId == tagGroup.playerid) { let groupActiveTagsValues = srp_getMetaParams(tagGroup.metakey); if (groupActiveTagsValues) { // Convert tag values to identifiers let groupActiveTags = groupActiveTagsValues.map(tagValue => this.getTagIdentifier(tagGroup, tagValue)); initialState.activeTags = [...initialState.activeTags, ...groupActiveTags]; // Populate activeTags array } } }); } return initialState; }, getItemsPerPage(tagGroup) { if (tagGroup.items_per_page === "all" || tagGroup.options.length <= Number(tagGroup.items_per_page)) { return Infinity; } else { return Number(tagGroup.items_per_page); } }, toggleShowAll(tagGroup) { this.$set(this.showAllTags, tagGroup.label, !this.showAllTags[tagGroup.label]); }, limitedOptions: function(tagGroup) { if (tagGroup.items_per_page === "all") { return tagGroup.options; } else { return tagGroup.options.slice(0, tagGroup.items_per_page); } }, tagClicked(tagGroup, tagValue) { let tagIdentifier = this.getTagIdentifier(tagGroup, tagValue); if (this.isActive(tagGroup, tagValue)) { // Remove the tagIdentifier from the activeTags list this.activeTags = this.activeTags.filter(tag => tag !== tagIdentifier); srp_removeMeta(tagGroup.metakey, tagValue, tagGroup.playerid, tagGroup.selecttype); } else { if (tagGroup.selecttype === 'singleselect') { this.activeTags= []; srp_removeMeta(tagGroup.metakey, null, tagGroup.playerid, tagGroup.selecttype); } this.activeTags.push(tagIdentifier); srp_addMeta(tagGroup.playerid, tagGroup.metakey, tagValue, tagGroup.selecttype); } }, isActive(tagGroup, tagValue) { let tagIdentifier = this.getTagIdentifier(tagGroup, tagValue); return this.activeTags.includes(tagIdentifier); }, getTagIdentifier(tagGroup, tagValue) { return tagGroup.metakey + "_" + tagValue; }, getTagColor(tagGroup, index) { const isActive = this.isActive(tagGroup, tagGroup.options[index]); const color = filterButtonColors[index % filterButtonColors.length]; return tagGroup.randomcolor === 'true' && isActive ? { backgroundColor: color, borderColor: color } : {}; }, } }); filterTags.forEach(element => { const atts = JSON.parse(element.getAttribute('data-sr-tags-atts')); if (atts.options.length == 0) return; var playerId = atts.options[0].playerid; var player_cat_ids = []; if(playerId){ var player = document.getElementById(playerId); if(player){ var audioPlayer = player.querySelector('.iron-audioplayer'); if (audioPlayer) { player_cat_ids = audioPlayer.getAttribute('data-category'); player_cat_ids = player_cat_ids.split(',').map(Number); } } } if (player_cat_ids.length > 0 && atts.options) { // Added the check for showOnlyIds.length > 0 atts.options.forEach(filter => { if (filter.term_ids) { const filteredOptions = []; const filteredTermIds = []; filter.term_ids.forEach((id, index) => { if (player_cat_ids.includes(id)) { filteredOptions.push(filter.options[index]); filteredTermIds.push(id); } }); // Update filter with the filtered values only if there were matching IDs if (filteredOptions.length > 0) { filter.options = filteredOptions; filter.term_ids = filteredTermIds; } } }); } const vm = new Vue({ el: element, data: { atts }, template: '' }); myVueTag.push(vm); }); /*------------------------------ END: FILTER TAGS ------------------------------*/ } function initFilterRange(){ /*------------------------------ START: DOUBLE RANGE SELECTOR ------------------------------*/ Vue.component('vue-slider', window['vue-slider-component']); const sonaarDoubleRangeSelector = Vue.component('sonaar-double-range-selector', { template: `
      {{ sliderData.label }}
      {{ formattedSliderValue[0] }} - {{ formattedSliderValue[1] }} {{ sliderData.unit }}
      `, props: ['option'], computed: { sliderValue: function() { //console.log(this.computedMin, this.computedMax); return [this.computedMin, this.computedMax]; }, computedMin: function() { if (this.option.selecttype === 'time') { return timeToSeconds(this.option.min); } let minVal = (!isNaN(this.option.min) && this.option.min !== null && this.option.min !== "") ? Number(this.option.min) : 0; return minVal; }, computedMax: function() { if (this.option.selecttype === 'time') { return timeToSeconds(this.option.max); } let maxVal = (!isNaN(this.option.max) && this.option.max !== null && this.option.max !== "") ? Number(this.option.max) : 100; return maxVal; }, formattedSliderValue: function() { if (this.option.selecttype === 'time') { return this.sliderValue.map(value => secondsToTime(value)); } else { return this.sliderValue; } }, marks: function() { function customRound(n) { n = Math.round(n); let lastDigit = n % 10; if (lastDigit < 3) { return n - lastDigit; } else if (lastDigit < 8) { return n + (5 - lastDigit); } else { return n + (10 - lastDigit); } } let interval = (this.computedMax - this.computedMin) / 4; let rawMarks = Array.from({ length: 5 }).map((_, idx) => customRound(this.computedMin + interval * idx)); // If select type is 'time', convert the marks from seconds to HH:MM:SS format if (this.option.selecttype === 'time') { return rawMarks.reduce((acc, mark) => { acc[mark] = secondsToTime(mark); return acc; }, {}); } return rawMarks.reduce((acc, mark) => { acc[mark] = mark.toString(); return acc; }, {}); } }, data: function() { //console.log(this.option); return { // sliderValue: [null, null], // Temporary values sliderValue: this.option.selecttype === 'time' ? [timeToSeconds(this.option.min), timeToSeconds(this.option.max)] : [null, null], sliderData: { label: this.option.label, metakey: this.option.metakey, playerid: this.option.playerid, unit: this.option.unit } }; }, mounted: function() { this.sliderValue = [Number(this.computedMin), Number(this.computedMax)]; let searchParams = new URLSearchParams(window.location.search); let playerIdQuery = searchParams.get('srp_player_id'); if (playerIdQuery === this.sliderData.playerid) { let metaKeyQuery = searchParams.get('srp_meta'); let decodedMetaKeyQuery = decodeURIComponent(metaKeyQuery); let metas = decodedMetaKeyQuery.split(';'); metas.forEach((meta) => { let [key, value] = meta.split(':'); if (key.endsWith('_minmax') && key.slice(0, -7) === this.sliderData.metakey) { this.sliderValue = value.split('_').map(val => Number(val)); } }); } IRON.rangeSelector.push(this); }, methods: { setTempoRange(tempo) { switch (tempo) { case 'slow': this.sliderValue = [this.computedMin, 64]; break; case 'medium': this.sliderValue = [65, 115]; break; case 'fast': this.sliderValue = [116, this.computedMax]; break; } this.updateRange(); }, getUrlParams() { let vars = {}; window.location.href.replace(/[?&]+([^=&]+)=([^&]*)/gi, function(m, key, value) { vars[key] = value; }); return vars; }, updateRange() { srp_removeMeta(this.sliderData.metakey, null, this.sliderData.playerid, 'range'); srp_addMeta(this.sliderData.playerid, this.sliderData.metakey, this.sliderValue.join('_'), 'range'); // This will now use the updated slider values } } }); var rangeSelectors = document.querySelectorAll('[data-sr-range-atts]'); if(!rangeSelectors.length){ myVueRange.forEach(function(vm){ //replacing the filter Range with the new ones $('#'+ $(vm.$el).attr('id') ).replaceWith( vm.$el ) }) return; } rangeSelectors.forEach(function(element) { var atts = JSON.parse(element.getAttribute('data-sr-range-atts')); const vm = new Vue({ el: element, data: { atts }, template: `
      ` }); myVueRange.push(vm); }); } // Helper function to convert second string to time format function secondsToTime(seconds) { const hours = Math.floor(seconds / 3600); seconds %= 3600; const minutes = Math.floor(seconds / 60); const secs = seconds % 60; let result; if (hours > 0) { result = `${hours.toString().padStart(2, '0')}:${minutes.toString().padStart(2, '0')}:${secs.toString().padStart(2, '0')}`; } else if (minutes > 0) { result = `${minutes.toString().padStart(2, '0')}:${secs.toString().padStart(2, '0')}`; } else { result = `00:${secs.toString().padStart(2, '0')}`; } //console.log(`Input seconds: ${seconds}, Formatted time: ${result}`); return result; } // Helper function to convert time string to seconds function timeToSeconds(timeStr) { const parts = timeStr.split(":").map(part => parseInt(part, 10)); if (parts.length === 3) { // HH:MM:SS format return parts[0] * 3600 + parts[1] * 60 + parts[2]; } else if (parts.length === 2) { // MM:SS format return parts[0] * 60 + parts[1]; } else { return 0; } } function updateFilterSelector(metaParams, playerId = null){ // updates options from filters dropdown for (const myVue in myVueAr){ const vm = myVueAr[myVue]; if( typeof vm != 'undefined'){ if($(vm.$el).find('.srp-filters-widget').data('playerId') == playerId){ for(const i in vm.$children){ let params = metaParams[vm.$children[i].atts.metakey] if(typeof params == 'string'){ vm.$children[i].value = params.split(','); }else{ vm.$children[i].value = []; } } } } } } let debounceTimeout; function sr_addTrackToPlaylist(track, $player, playlistName = 'RecentlyPlayed', mustPlayToProceed = true, maxPlaylistSize = 50, playerStateClass = 'srp_player_is_recentlyPlayed', debounceDelay = 3000) { if(sonaar_music.option.is_user_history_usermeta_enabled !== "true") return; isSrcLoaded = (typeof $("#sonaar-audio").attr("src") == "undefined") ? false : true; function executeTrackLogic() { let trackId; let trackPos; // Determine if the player is in the specified state if (typeof IRON.sonaar.player.list.tracks[0] !== 'undefined') { if(IRON.sonaar.player.continuous && isSrcLoaded === false) return; // if continuous player is loaded from Cookie and track is not set yet if(mustPlayToProceed && !IRON.sonaar.player.isPlaying) return; if (IRON.sonaar.player.selectedPlayer !== null && IRON.sonaar.player.selectedPlayer !== undefined) { if (IRON.sonaar.player.selectedPlayer.hasClass(playerStateClass)) { return; // if we want to prevent the current player from auto-adding its track } } //console.log("here"); // This will only log if the above condition is false if (typeof track !== 'undefined') { if (typeof track.sourcePostID !== 'undefined') { trackId = track.sourcePostID; trackPos = track.track_pos; } } else { console.error('No track information available'); return; } } else if (typeof $player !== 'undefined' && !$player.hasClass(playerStateClass)) { if (mustPlayToProceed && track.length === 0) return; trackId = $(track).data('post-id'); trackPos = $(track).data('track-pos'); } else { return; } if (!trackId) { console.error('Track ID is undefined'); return; } // Construct trackInfo object const trackInfo = { postId: trackId.toString(), trackPos: trackPos ? trackPos.toString() : '0', }; // Handle the playlist let playlistIndex = IRON.userPlaylists.findIndex(playlist => playlist.playlistName === playlistName); if (playlistIndex === -1) { IRON.userPlaylists.push({ playlistName: playlistName, tracks: [trackInfo] }); } else { let tracks = IRON.userPlaylists[playlistIndex].tracks; tracks.unshift(trackInfo); IRON.userPlaylists[playlistIndex].tracks = tracks.slice(0, maxPlaylistSize); } // Update server or cookies based on system setup updatePlaylistStorage(); } if (debounceDelay > 0) { clearTimeout(debounceTimeout); // Clear existing timeout debounceTimeout = setTimeout(() => { executeTrackLogic(); }, debounceDelay); } else { executeTrackLogic(); } } function updatePlaylistStorage() { if (srp_vars.is_logged_in === 'no' && sonaar_music.option.is_user_history_cookie_enabled === "true" ) { document.cookie = "sonaar_mp3_playlists=" + encodeURIComponent(JSON.stringify(IRON.userPlaylists)) + "; max-age=31536000; path=/;"; //check if $('.srp_player_is_recentlyPlayed') exist if ($('.srp_player_is_recentlyPlayed').length) { IRON.audioPlayer.reloadAjax($('.srp_player_is_recentlyPlayed'), false, true, false); } } else if (srp_vars.is_logged_in === 'yes') { $.ajax({ url: sonaar_music.ajax.ajax_url, type: 'POST', dataType: 'json', data: { action: 'update_user_playlist', nonce: sonaar_music.ajax.ajax_nonce, playlists: IRON.userPlaylists }, success: function (response) { console.log(response); //console.log(IRON.userPlaylists); if ($('.srp_player_is_recentlyPlayed').length) { IRON.audioPlayer.reloadAjax($('.srp_player_is_recentlyPlayed'), false, true, false); } } }); } } function sr_setCookieSettings() { if (IRON.sonaar.player.classes.feedUrl && !IRON.sonaar.player.elWidgetId) { // Escape and delete cookies if the player is not playing a playlist post document.cookie = "sonaar_mp3_player_settings" + "=; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=/;"; document.cookie = "sonaar_mp3_player_time" + "=; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=/;"; return; } let track_Id; if(typeof IRON.sonaar.player.list.tracks[IRON.sonaar.player.currentTrack] != 'undefined' && typeof IRON.sonaar.player.list.tracks[IRON.sonaar.player.currentTrack].track_index != 'undefined'){ track_Id = IRON.sonaar.player.list.tracks[IRON.sonaar.player.currentTrack].track_index; }else{ track_Id = IRON.sonaar.player.currentTrack; } var playlistID, categoryID; if( IRON.sonaar.player.playlistID != null){ playlistID = IRON.sonaar.player.playlistID.toString().split(", "); }else{ playlistID = ''; } if( IRON.sonaar.player.categoryID != null){ categoryID = IRON.sonaar.player.categoryID.toString().split(", "); }else{ categoryID = ''; } cvalue = { playlistID: IRON.sonaar.player.elWidgetId ? IRON.sonaar.player.postId : playlistID, category: categoryID, trackID: track_Id , elWidgetId: IRON.sonaar.player.elWidgetId, shuffle: IRON.sonaar.player.shuffle, mute: IRON.sonaar.player.mute, isPlaying: IRON.sonaar.player.isPlaying, minimize: IRON.sonaar.player.minimize, json: IRON.sonaar.player.cookieSetting.json, //Required for the continuous player with Post Related or "audio_meta_field" shorcode attribute as source }; if (cvalue.playlistID == "" && cvalue.category == "") { //Verify cookie value return; } var now = new Date(); var expires = (typeof sonaar_music.option.srmp3_cookie_expiration !== 'undefined') ? sonaar_music.option.srmp3_cookie_expiration : 3600; if(expires !=='default'){ now.setTime(now.getTime() + expires * 1000); // Set the expiration time to 10 seconds from now expires = "expires=" + now.toUTCString(); } document.cookie = "sonaar_mp3_player_settings" + "=" + JSON.stringify(cvalue) + ";" + expires + ";path=/"; } function sr_setCookieVolume() { document.cookie = "sonaar_mp3_player_volume" + "=" + IRON.sonaar.player.volume + ";default;path=/"; } function sr_setCookieTime() { if (IRON.sonaar.player.classes.continuousPlayer && ((IRON.sonaar.player.elWidgetId && IRON.sonaar.player.classes.feedUrl) || !IRON.sonaar.player.classes.feedUrl)) { // If Continuous player is enable AND if playlist is not built through a shortcode. var cvalue = sr_getTrackCurrentTime(); document.cookie = "sonaar_mp3_player_time" + "=" + cvalue + ";default;path=/"; } } function sr_getCookieSettings() { var cookieSettingsValue = getCookieValue("sonaar_mp3_player_settings"); var cookieVolumeValue = getCookieValue("sonaar_mp3_player_volume"); var cookieTimeValue = getCookieValue("sonaar_mp3_player_time"); if (cookieSettingsValue != "") { cookieSettingsValue = JSON.parse(cookieSettingsValue); sr_setPlayerfromCookieSettings(cookieSettingsValue, cookieVolumeValue); } else { sr_setVolume(cookieVolumeValue); } if (cookieTimeValue != "") { sr_setTrackCurrentTime(cookieTimeValue); } } function sr_getCookieVolume() { const cookieVolumeValue = getCookieValue("sonaar_mp3_player_volume"); sr_setVolume(cookieVolumeValue); } function getCookieValue(cname) { var name = cname + "="; var decodedCookie = decodeURIComponent(document.cookie); var ca = decodedCookie.split(";"); for (var i = 0; i < ca.length; i++) { var c = ca[i]; while (c.charAt(0) == " ") { c = c.substring(1); } if (c.indexOf(name) == 0) { return c.substring(name.length, c.length); } } return ""; } function sr_setPlayerfromCookieSettings(playerSetting, cookieVolumeValue) { IRON.sonaar.player.setPlayer({ id: playerSetting.playlistID, category: playerSetting.category, elwidgetid: playerSetting.elWidgetId, trackid: playerSetting.trackID, shuffle: playerSetting.shuffle, json: playerSetting.json, continuous: true }); var firstLoad = true; sr_setVolume(cookieVolumeValue); sr_setMute(playerSetting.mute); if (playerSetting.isPlaying) { $("#sonaar-audio").on("loadeddata", function () { //when the audio element is loaded if (firstLoad) { //Dont want to SET current time on the second audio loading. firstLoad = false; IRON.sonaar.player.playAudio(); } }); } IRON.sonaar.player.classes.dontCountContinuous = true; IRON.sonaar.player.classes.continued = true; IRON.sonaar.player.minimize = playerSetting.minimize; IRON.sonaar.player.postId = playerSetting.playlistID; IRON.sonaar.player.elWidgetId = playerSetting.elWidgetId; IRON.sonaar.player.classes.feedUrl = IRON.sonaar.player.elWidgetId ? true : false; IRON.sonaar.player.cookieSetting.json = playerSetting.json; //Required for the continuous player with Post Related or "audio_meta_field" shorcode attribute as source } function sr_getTrackCurrentTime(audioPlayer = null) { if (IRON.audioPlayer.stickyEnable){ return document.getElementById("sonaar-audio").currentTime; }else if(audioPlayer != null){ const audioInstance = sr_setAudioElementInstance(audioPlayer); return audioInstance.currentTime; } } function sr_getTrackDuration() { return document.getElementById("sonaar-audio").duration; } function sr_setTrackCurrentTime(value) { IRON.sonaar.player.cookieSetting.currentTime = value; var firstLoad = true; $("#sonaar-audio").on("loadeddata", function () { //when the audio element is loaded if (firstLoad) { //Dont want to SET current time on the second audio loading. firstLoad = false; if (value > sr_getTrackDuration() || sr_getTrackDuration() == "Infinity") return; document.getElementById("sonaar-audio").currentTime = value; } }); } //Set Modal Popup let sr_modal_loaded = false; const closeSvg = ''; function sr_setPopUp() { if (sr_modal_loaded !== true) { const popUp = '
      ' + closeSvg + '
      '; jQuery('body').append(popUp); sr_modal_loaded = true; } } function sr_popUp(id, storeId, trackNumber = null, playerId = null, el) { srp_wc_loadspinner($(el)) var data = { 'action': 'load_post_by_ajax', 'id': id, 'store-id': storeId, 'nonce': sonaar_music.ajax.ajax_nonce }; $.post(sonaar_music.ajax.ajax_url, data, function (response) { srp_wc_unloadspinner($(el)) response = srp_convertTTMLTime(JSON.parse(response)); $('#sonaar-modal .sr_popup-body').html(response); $('#sonaar-modal').attr('data-track-number', trackNumber); $('#sonaar-modal').attr('data-player-id', playerId); sr_openPopUp(); }) } function sr_openPopUp() { $(document).keyup(function (e) { if (e.key === "Escape") { sr_closePopUp(); } }); $('body').addClass('sr_popup-open'); $('#sonaar-modal, .sr_popup-backdrop').addClass('sr_show'); } function sr_closePopUp(el) { if ($(el).attr('id') == 'sonaar-modal' && $(".sr_popup-dialog:hover").length != 0) { //When "sr_closePopUp" function is cast from a click on 'sonaar-modal' we want exit the fucntion if the cursor is over the popup content. return; } //$(document).off(); // this conflict with Elementor Popup that does not open once our popup has been opened. $('body').removeClass('sr_popup-open'); $('#sonaar-modal, .sr_popup-backdrop').removeClass('sr_show'); } function sr_audioSkipTo(seconds = 30, $audio_el = null) { const audioInstance = sr_setAudioElementInstance(); audioInstance.currentTime = audioInstance.currentTime + seconds; } function srp_toggleLyricsContainer() { if ($('#srmp3_lyrics_container').hasClass("open")) { $('#srmp3_lyrics_container').toggleClass("open"); $('#srmp3_lyrics_container').toggle(); } } // embed Lyrics //let sr_lyric_loaded = false; function sr_setLyricsPlayingContainer() { if (sr_lyric_loaded !== true) { const popUp = '
      '; jQuery('body').append(popUp); document.getElementById("srmp3_lyricsplaying_container").addEventListener("click", toggleLyrics); function toggleLyrics() { $('#srmp3_lyrics_container').toggle(); $('#srmp3_lyrics_container').toggleClass("open"); } var scrollItem = $('#srmp3_lyrics_container .srmp3_lyrics')[0]; var ps = new PerfectScrollbar(scrollItem, { wheelSpeed: 1, swipeEasing: true, wheelPropagation: false, minScrollbarLength: 20, suppressScrollX: true, maxScrollbarLength: 100, }); $('#srmp3_lyrics_container .srmp3_lyrics').on('scroll', function () { if (!srp_lyricsAreScrolling) { if ($('#srmp3_lyrics_container').hasClass('srp_lyric_unlock')) { const srmp_lyrics_pos = $('#srmp3_lyrics_container .srmp3_lyrics_read').offset().top - $('#srmp3_lyrics_container').offset().top if (srmp_lyrics_pos < $('#srmp3_lyrics_container').height() && srmp_lyrics_pos > 50) { // if element is visible after scrolling $('#srmp3_lyrics_container').removeClass('srp_lyric_unlock'); } } else { $('#srmp3_lyrics_container').addClass('srp_lyric_unlock'); } } srp_lyricsAreScrolling = false; }); sr_lyric_loaded = true; } $(document).keydown(function (event) { if (event.keyCode == 27) { srp_toggleLyricsContainer(); } }); $('#srmp3_lyrics_container .sricon-close-circle').on('click', function () { srp_toggleLyricsContainer(); }) } var sr_lyric_loaded = false; function sr_loadLyricsAjax(postid, track_pos) { $('.srmp3_lyrics_title').empty(); $('.srmp3_lyrics_album').empty(); $('.srmp3_lyrics').empty(); $('.srmp3_lyrics').removeClass('srmp3_singning'); $('.srmp3_lyrics_container').empty(); $('#srmp3_lyricsplaying_container').empty(); if (typeof IRON.sonaar.player.list.tracks[IRON.sonaar.player.currentTrack] != 'undefined' && IRON.sonaar.player.list.tracks[IRON.sonaar.player.currentTrack].has_lyric || $($('.sr-playlist-item[data-post-id="' + postid + '"][data-track-pos="' + track_pos + '"]')[0]).attr('data-track-lyric') ) { if (!$('#srmp3_lyricsplaying_container').length) sr_setLyricsPlayingContainer(); if (typeof IRON.sonaar.player.list.tracks[IRON.sonaar.player.currentTrack] != 'undefined') { track_title = IRON.sonaar.player.list.tracks[IRON.sonaar.player.currentTrack].track_title; album = IRON.sonaar.player.list.tracks[IRON.sonaar.player.currentTrack].album_title; } else { track_title = document.querySelector('.sr-playlist-item[data-post-id="' + postid + '"][data-track-pos="' + track_pos + '"]').getAttribute('data-tracktitle'); album = document.querySelector('.sr-playlist-item[data-post-id="' + postid + '"][data-track-pos="' + track_pos + '"]').getAttribute('data-albumtitle'); } jQuery('.srmp3_lyrics_album').replaceWith($('
      ', { class: 'srmp3_lyrics_album', text: album }).prependTo('#srmp3_lyrics_container')); jQuery('.srmp3_lyrics_title').replaceWith($('
      ', { class: 'srmp3_lyrics_title', text: track_title }).prependTo('#srmp3_lyrics_container')); var data = { 'action': 'load_lyrics_ajax', 'post-id': postid, 'track-position': track_pos, 'nonce': sonaar_music.ajax.ajax_nonce }; $.post(sonaar_music.ajax.ajax_url, data, function (response) { response = srp_convertTTMLTime(JSON.parse(response)); $('.srmp3_lyrics').html($(response).html()); }) } } function srp_convertTTMLTime(ttml) { ttml = $('
      ' + ttml + '
      '); $(ttml).find('p[begin]').each(function () { var nodeTimeRaw_begin = $(this).attr('begin'); var nodeTimeRaw_end = $(this).attr('end'); // Check if the time format is in seconds and convert to hh:mm:ss.mmm if (nodeTimeRaw_begin.includes('s')) { var seconds = parseFloat(nodeTimeRaw_begin.slice(0, -1)); var time = new Date(seconds * 1000).toISOString().substr(11, 12); $(this).attr('begin', time); nodeTimeRaw_begin = time; } if (nodeTimeRaw_end.includes('s')) { var seconds = parseFloat(nodeTimeRaw_end.slice(0, -1)); var time = new Date(seconds * 1000).toISOString().substr(11, 12); $(this).attr('end', time); nodeTimeRaw_end = time; } var a = nodeTimeRaw_begin.split(':'); var b = nodeTimeRaw_end.split(':'); $(this).attr('begin', (+a[0]) * 60 * 60 + (+a[1]) * 60 + (+a[2])); $(this).attr('end', (+b[0]) * 60 * 60 + (+b[1]) * 60 + (+b[2])); }); return ttml; } function sr_shuffleToggle(event = null, audioPlayer = $('.iron-audioplayer.sr_selected')) { let shuffleValue if (IRON.audioPlayer.stickyEnable) { if (IRON.sonaar.player.shuffle) { IRON.sonaar.player.shuffle = false; } else { IRON.sonaar.player.shuffle = true; IRON.sonaar.player.setRandomList(); } if (IRON.sonaar.player.classes.continuousPlayer) { sr_setCookieSettings(); } shuffleValue = IRON.sonaar.player.shuffle; } else { if (audioPlayer.shuffle) { audioPlayer.shuffle = false; } else { audioPlayer.shuffle = true; } shuffleValue = audioPlayer.shuffle; } audioPlayer.attr('data-shuffle', shuffleValue); } function sr_setSpeedRate(event = null, audioPlayer = $('.iron-audioplayer.sr_selected'), $audio_el = null) { var rateSpeed = [0.5, 1, 1.2, 1.5, 2]; // default speed rate if(typeof sonaar_music.option.playback_speed != 'undefined'){ rateSpeed = sonaar_music.option.playback_speed.split(',').map(function (item) { item = parseFloat(item, 10); // convert to number return item; }); rateSpeed = rateSpeed.filter(function (el) { return !isNaN(el); // filter out NaN }); rateSpeed = rateSpeed.sort(); // sort } if (IRON.audioPlayer.stickyEnable) { var currentRateSpeed = IRON.sonaar.player.classes.speedRate; } else { var currentRateSpeed = audioPlayer.attr('data-speedrate'); } if (currentRateSpeed == rateSpeed[rateSpeed.length - 1]) { currentRateSpeed = rateSpeed[0] } else { $.each(rateSpeed, function () { if (this > currentRateSpeed) { currentRateSpeed = this return false } }) } if (IRON.audioPlayer.stickyEnable) { document.getElementById("sonaar-audio").playbackRate = currentRateSpeed; IRON.sonaar.player.classes.speedRate = currentRateSpeed; } else { sr_setAudioElementInstance().playbackRate = currentRateSpeed; } audioPlayer.attr('data-speedrate', currentRateSpeed); audioPlayer.find('.sr_speedRate div').html(currentRateSpeed + 'x'); } function sr_setVolume(value, audioPlayer = null, $audio_el = null) { if (value == '') { return; } value = parseFloat(value); if(value > 1){ value = 1; } if(value < 0){ value = 0; } if (audioPlayer) { audioPlayer.attr('data-volume', value) } if (IRON.audioPlayer.stickyEnable) { IRON.sonaar.player.volume = value; sr_setCookieVolume(); } if ( audioPlayer || IRON.audioPlayer.stickyEnable ){ sr_setAudioElementInstance(audioPlayer).volume = value; } } function sr_setMute(value, $audio_el = null) { sr_setAudioElementInstance().muted = value; if (IRON.audioPlayer.stickyEnable) { IRON.sonaar.player.mute = value; if (IRON.sonaar.player.classes.continuousPlayer) { sr_setCookieSettings(); } } } function sr_muteTrigger(event = null, audioPlayer = $('.iron-audioplayer.sr_selected'), $audio_el = null) { if($('.slider-container:hover').length) return; if (IRON.audioPlayer.stickyEnable && IRON.sonaar.player.mute || !IRON.audioPlayer.stickyEnable && audioPlayer.attr('data-mute') == 'true') { sr_setMute(false, $audio_el); if (audioPlayer) { audioPlayer.attr('data-mute', 'false'); } } else { sr_setMute(true, $audio_el); if (audioPlayer) { audioPlayer.attr('data-mute', 'true'); } } } function sr_initSlider(el, audioPlayer = null, $audio_el = null) { el.slider({ orientation: "vertical", range: "min", min: 0, max: 100, value: 100, slide: function (event, ui) { sr_setVolume(ui.value / 100, audioPlayer, $audio_el); sr_setMute(false, $audio_el); }, }); } function srp_js_dynamic_style(audioPlayer) { /*Add margin bottom to the DIV"audio-track" related to the text-size. Reomove unwanted avsolut behavior on Mobile*/ const newMarge = $(audioPlayer).find('.srp_tracklist-item-date').css('font-size'); $(audioPlayer).find('.sr-playlist-item[data-show-date="1"] .audio-track').css('margin-bottom', newMarge); } function sr_updateSlider(event = null, audioPlayer = $('#sonaar-player')) { //update Volume slider when the volume has been set to another slider(widget or sticky) let volume; if (IRON.audioPlayer.stickyEnable) { volume = IRON.sonaar.player.volume; } else { volume = (audioPlayer.attr('data-volume') == NaN) ? 100 : audioPlayer.attr('data-volume'); } volume = Math.floor(volume * 100) + '%'; audioPlayer.find('.ui-slider-range').height(volume); audioPlayer.find('.ui-slider-handle ').css('bottom', volume); } function sr_setAudioElementInstance(audioPlayer=null) { if (IRON.audioPlayer.stickyEnable) { return document.getElementById("sonaar-audio"); } else { if( ! $('.sr_selected .player audio').length && audioPlayer !==null ){ return audioPlayer.find('audio')[0]; }else{ return document.querySelector('.sr_selected .player audio'); } } } /*Function call from the shortcode [sonaar_ts] (Time Stamp)*/ function sonaar_ts_shortcode(params) { //eq: params = "{ id:'19', time: '0:10'}" //params list: "id", "widget_id", "trackid", "time", "ts_id", "play_icon" const el = '#sonaar_ts-' + params.ts_id; let newSonaarTS_selected = true; srp_startingTime = params.time; if (typeof params.trackid == 'undefined') { params.trackid = 0; } $('.srmp3_sonaar_ts_shortcode:not(#sonaar_ts-' + params.ts_id).removeClass('sr_selected audio-playing'); //clear all other sonaar_ts if ($(el).hasClass('sr_selected')) { // Add and remove "sr_selected" Class newSonaarTS_selected = false; if (params.play_icon == 'true' && $(el).hasClass('sr_selected')) { // When PLAY icon is enable, Only skip to the time parameter on the first click delete params.time; } } else { $('.srmp3_sonaar_ts_shortcode ').removeClass('sr_selected'); $(el).addClass('sr_selected'); if (IRON.audioPlayer.stickyEnable) { IRON.sonaar.player.selectedTimeStamp = $(el); } } if ($(el).hasClass('audio-playing')) { // Add and remove "audio-playing" Class $(el).removeClass('audio-playing'); } else { $(el).addClass('audio-playing'); } if (params.play_icon == 'true') { // Special Behaviors with the PLAY/PAUSE Button if (IRON.audioPlayer.stickyEnable && !$(el).hasClass('audio-playing')) { // Sync with the sticky player IRON.sonaar.player.pause(); return; } if (!IRON.audioPlayer.stickyEnable && typeof $(el).data('ts-sync') != 'undefined' && !newSonaarTS_selected) { // If Sync with a widget when sticky disable and it is a new selected sonaar_ts: toggle between play and pause IRON.players[$(el).data('ts-sync')].play(); return; } } if (typeof params.id == 'undefined') { //if no playlist post ID is targeted /* WIDGET PLAYER INTERACTION */ if (typeof IRON.players != 'undefined' && IRON.players.length > 0) { /* Find the widget player linked to the sonaar_ts */ let player = 0; if (typeof params.widget_id != 'undefined') { //if sonaar_ts has widget_id parameters let playerID; if ($('#' + params.widget_id + ' .iron-audioplayer').length) { //if widget_id is an CSS id from a parent (eq: custom css id from elementor https://d.pr/i/kybO21) playerID = $('#' + params.widget_id + ' .iron-audioplayer').data('id'); } if ($('#' + params.widget_id + '.iron-audioplayer').length) { //if widget_id is an CSS id from the iron-audioplayer itself (this should not happen because its ID is always different(regenerated), but who knows...) playerID = $('#' + params.widget_id + '.iron-audioplayer').data('id'); } if ($('[data-id="' + params.widget_id + '"] .iron-audioplayer').length) { //if widget_id is the data-id from a parent (eq: the default elementor widget ID) playerID = $('[data-id="' + params.widget_id + '"] .iron-audioplayer').data('id'); } if ($('[data-id="' + params.widget_id + '"].iron-audioplayer').length) {//if widget_id is the data-id from the iron-audioplayer itself (The id can be set through the sonaar_audioplayer shortcode "id" parameter. Eq:[sonaar_audioplayer id="player1"]) playerID = $('[data-id="' + params.widget_id + '"].iron-audioplayer').data('id'); } $(IRON.players).each(function (index) { // looking for the audioplayer ID if (IRON.players[index].audioPlayer.data('id') == playerID) { player = index; return; } }) } else { $(IRON.players).each(function (index) { // looking for the audioplayer before the shortcode if (IRON.players[index].audioPlayer.offset().top > $(el).offset().top) { return; } player = index; }) } IRON.players[player].audioPlayer.data('ts-sync', params.ts_id); // mark the sonaar_ts id to the player widget $(el).data('ts-sync', player); // mark the player id to the sonaar_ts button const trackIsPlaying = IRON.players[player].audioPlayer.hasClass('audio-playing') && IRON.players[player].audioPlayer.find('.sr-playlist-item').eq(params.trackid).hasClass('current') /* WIDGET PLAYER Behavior: Play, Pause or seektime */ if (!trackIsPlaying) { //if the track is not currently playing IRON.players[player].audioPlayer.find('.srp_audio_trigger').eq(params.trackid).trigger('click'); //Play from widget } else { srp_startingTime = 0; } if ( !IRON.audioPlayer.stickyEnable || (IRON.audioPlayer.stickyEnable && trackIsPlaying) || // Always seekTime when the track already playing and the sonaar_ts play/pause icon feature is disable (!IRON.players[player].audioPlayer.find('.sr-playlist-item').eq(params.trackid).hasClass('current') && newSonaarTS_selected) //always seekTime when we click on a new sonaar_ts and we targeted a new track ) { IRON.players[player].seekTime(params.time); } return; } else { /* If no widget and no ID has been set, play tracks from the current post. */ params.id = srp_vars.sonaar_music.currentPostId; } } /* STICKY play playlist from POST ID*/ IRON.sonaar.player.setPlayerAndPlay(params); } $(document.body).on('click', '.view-license-button', function (event) { sr_setPopUp(); srp_wc_loadspinner($(event.target)); var data = { 'action': 'load_license_preview_ajax', 'variationId': event.currentTarget.getAttribute('data-variation-id'), 'licenseId': event.currentTarget.getAttribute('data-license-id'), 'productName': event.currentTarget.getAttribute('data-product-name'), 'nonce': sonaar_music.ajax.ajax_nonce }; $.post(sonaar_music.ajax.ajax_url, data, function (response) { $('#sonaar-modal .sr_popup-body').html(response); sr_openPopUp(); srp_wc_unloadspinner($(event.target)); }) }); /* ***************************************************** START OF SHARE POPUP ***************************************************** */ $(document).on('click', '.sr_store_force_share_bt', function () { const link = $(this).attr('href'); let id = (typeof $(this).data('source-post-id') != 'undefined') ? $(this).data('source-post-id') : ''; let track_title, image_src, track_pos, current_time; // Check if this is within sticky player if ($(this).closest('.player').length > 0) { track_title = IRON.sonaar.player.list.tracks[IRON.sonaar.player.currentTrack].track_title; image_src = IRON.sonaar.player.list.tracks[IRON.sonaar.player.currentTrack].poster; id = IRON.sonaar.player.list.tracks[IRON.sonaar.player.currentTrack].sourcePostID; track_pos = IRON.sonaar.player.list.tracks[IRON.sonaar.player.currentTrack].track_pos // if this is within the mini player } else if ($(this).parents('.album-player').length > 0) { const trackIndex = $(this).parents('.iron-audioplayer').attr('trackselected'); const $track = $(this).parents('.iron-audioplayer').find('.sr-playlist-item').eq(trackIndex); track_pos = $track.data('track-pos'); track_title = $track.find('.tracklist-item-title').text(); image_src = $track.data('albumart'); // Or if this is within .sr-playlist-item-flex } else if ($(this).closest('.sr-playlist-item').length > 0) { track_pos = $(this).closest('.sr-playlist-item').data('track-pos'); track_title = $(this).closest('.sr-playlist-item').find('.tracklist-item-title').text(); image_src = $(this).closest('.sr-playlist-item').data('albumart'); // Or within .srp_swiper-album-art } else if ($(this).closest('.srp_swiper-album-art').length > 0) { track_title = $(this).closest('.srp_swiper-album-art').find('.srp_swiper-track-title').text(); // Extract the image url from the 'background-image' CSS property const backgroundImage = $(this).closest('.srp_swiper-album-art').css('background-image'); image_src = backgroundImage.slice(4, -1).replace(/"/g, ""); } current_time = (IRON.sonaar.player.currentTime != '' && typeof IRON.sonaar.player.currentTime != 'undefined') ? IRON.sonaar.player.currentTime : '00:00'; srp_share_popup(id, $(this), link, track_title, image_src, track_pos,current_time); return false; }); function srp_share_popup(id, el, link, track_title, image_src, track_pos, current_time = '00:00') { track_pos = (typeof track_pos != 'undefined') ? track_pos + 1 : ''; var separator = link.includes('?') ? '&' : '?'; var link = (link + separator + 'ts_post_id=' + id + '&ts_track_num=' + track_pos).replace(/([^:]\/)\/+/g, "$1"); link = link.replace('#!', ''); // remove #! from sr_setPopUp(); var data = { 'action': 'load_share_by_ajax', 'id': id, 'link': link, 'track_title': track_title, 'image_src': image_src, 'current_time': current_time, 'nonce': sonaar_music.ajax.ajax_nonce }; $.post(sonaar_music.ajax.ajax_url, data, function (response) { response = JSON.parse(response); $('#sonaar-modal .sr_popup-body').html(response); // add more button on mobile function isSmallDevice() { return /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent); } $('.srp-share-mobile-more').hide(); if (navigator.share && isSmallDevice()) { $('.srp-share-mobile-more').show(); $(document).on('click', '.srp-share-mobile-more', function (e) { navigator.share({ url: link }) .then(() => console.log('Successful share')) .catch((error) => console.log('Error sharing', error)); }); } $('.srp-modal-sticky-player--time').hide(); sr_openPopUp(); var input = $('#myInput'); // Store the initial url value var initialUrl = input.val(); const domain = window.location.hostname; if (sonaar_music.option.share_email_body.includes("{{website_domain}}")) { sonaar_music.option.share_email_body = sonaar_music.option.share_email_body.replace("{{website_domain}}", domain); } // Function to update the social media share links function updateShareLinks() { link = input.val(); // Now update the share URLs for each of the social media buttons $('.fab.fa-facebook').attr('href', 'https://www.facebook.com/sharer/sharer.php?u=' + encodeURIComponent(input.val())); $('.fab.fa-twitter').attr('href', 'https://twitter.com/intent/tweet?url=' + encodeURIComponent(input.val())); $('.fab.fa-whatsapp').attr('href', 'https://api.whatsapp.com/send?text=' + encodeURIComponent(input.val())); var mailto_link = 'mailto:?subject=' + encodeURIComponent(sonaar_music.option.share_email_subject) + '&body=' + encodeURIComponent(sonaar_music.option.share_email_body) + '%0D%0A%0D%0A' + encodeURIComponent(input.val()); $('.fas.fa-envelope').attr('href', mailto_link); var sms_link = 'sms:?body=' + encodeURIComponent(sonaar_music.option.share_email_body) + '%0D%0A%0D%0A' + encodeURIComponent(input.val()); $('.fas.fa-sms').attr('href', sms_link); } // Add an event listener to the checkbox $('#stickyPlayerCheckbox').on('change', function () { if (this.checked) { $('.srp-modal-sticky-player--time').show(); var separator = window.location.href.includes('?') ? '&' : '?'; var updatedUrl = (window.location.href + separator + 'ts_post_id=' + id + '&ts_track_num=' + track_pos).replace(/([^:]\/)\/+/g, "$1"); updatedUrl = updatedUrl.replace('#!', ''); // remove #! from the url var url = new URL(updatedUrl); if ($('#stickyPlayerTimeCheckbox').is(':checked')) { var newTime = $('#stickyPlayerCurrentTime').val(); url.searchParams.set('ts_time', newTime); } else { url.searchParams.set('ts_time', '00:00'); } input.val(url.toString().replace(/%3A/g, ':')); } else { $('.srp-modal-sticky-player--time').hide(); input.val(initialUrl); } updateShareLinks(); }); // Add an event listener to the checkbox // Add an event listener to the checkbox $('#stickyPlayerCurrentTime').on('keypress', function (e) { var key = String.fromCharCode(!e.charCode ? e.which : e.charCode); if (!/^[0-9:]$/.test(key)) { e.preventDefault(); } }).on('input', function () { var input = $(this); var newTime = input.val(); // Check if newTime contains only numbers and ":" character if (!/^[0-9:]*$/.test(newTime)) { // Invalid input, revert to previous value input.val(input.data('oldValue') || ''); return; } // Update old value input.data('oldValue', newTime); // Get the current URL from the myInput field var url = new URL($('#myInput').val()); // Check if the stickyPlayerTimeCheckbox is checked if ($('#stickyPlayerTimeCheckbox').is(':checked')) { // Set the new ts_time value url.searchParams.set('ts_time', newTime); } else { // If the checkbox is not checked, reset ts_time to 00:00 url.searchParams.set('ts_time', '00:00'); } // Update the myInput field with the new URL, and replace the encoded ":" character $('#myInput').val(url.toString().replace(/%3A/g, ':')); updateShareLinks(); }); $('#stickyPlayerTimeCheckbox').on('change', function () { var url = new URL($('#myInput').val()); if ($(this).is(':checked')) { // Checkbox is checked, grab the current time and update the ts_time value var newTime = $('#stickyPlayerCurrentTime').val(); // Check if newTime contains only numbers and ":" character if (/^[0-9:]*$/.test(newTime)) { url.searchParams.set('ts_time', newTime); } } else { // Checkbox is unchecked, reset ts_time to 00:00 url.searchParams.set('ts_time', '00:00'); } // Update the myInput field with the new URL, and replace the encoded ":" character $('#myInput').val(url.toString().replace(/%3A/g, ':')); updateShareLinks(); }); }) } async function srp_share_popup_CopyToClipboard() { const copyText = document.getElementById('myInput'); const copyButton = document.getElementById('copyButton'); // You'll need to add an ID to your Copy button for this to work copyTxt = (typeof sonaar_music.option.share_label_copy != 'undefined') ? sonaar_music.option.share_label_copy : 'Copy'; copiedTxt = (typeof sonaar_music.option.share_label_copied != 'undefined') ? sonaar_music.option.share_label_copied : 'Copied'; try { await navigator.clipboard.writeText(copyText.value); // Change button text copyButton.innerText = copiedTxt; // Reset button text back to 'Copy' after some time setTimeout(() => copyButton.innerText = copyTxt, 3000); } catch (err) { console.error('Failed to copy text to clipboard', err); copyButton.innerText = 'Failed to copy'; } } /* ***************************************************** END OF SHARE POPUP ***************************************************** */ IRON.favorites = { /* ***************************************************** ADD TO FAVORITE ***************************************************** */ init: function() { var self = this; if (srp_vars.is_logged_in === 'yes') { // If the user is logged in, fetch their playlists. self.initRightClick(); IRON.favorites.dataType = 'user_meta'; IRON.userPlaylists = sonaar_music.playlists || []; self.processPlaylists(); } else if(sonaar_music.option.enable_favorites_for_anonymous ==='true'){ // If the user is not logged in, use cookies self.initRightClick(); IRON.favorites.dataType = 'cookies'; IRON.userPlaylists = sonaar_music.playlists || []; $('.srp_player_is_favorite').parent('.iron_widget_radio').css('opacity', 0); // Hide the player until the cookie is loaded by ajax $('.iron-audioplayer').each(function(index) { if($(this).hasClass('srp_player_is_favorite')){ IRON.favorites.reloadPlayerAjax(this, index, true); } }); self.processPlaylists(); $(IRON.favorites.favoriteTracks).each(function() { $('[data-post-id="' + this.postId + '"][data-track-pos="' + this.trackPos+ '"] .srp-fav-bt i').addClass(sonaar_music.option.srp_fav_remove_icon).removeClass(sonaar_music.option.srp_fav_add_icon); }); } }, processPlaylists: function() { IRON.favorites.favoritesEnabled = true; $('.srp_favorites_loading').removeClass('srp_favorites_loading'); // Find 'Favorites' playlist for (var i = 0; i < IRON.userPlaylists.length; i++) { if (IRON.userPlaylists[i].playlistName === 'Favorites') { //console.log("you have a playlist named 'Favorites'", IRON.userPlaylists[i].tracks); if (!IRON.userPlaylists[i].tracks) { IRON.userPlaylists[i].tracks = []; } IRON.favorites.favoriteTracks = IRON.userPlaylists[i].tracks; IRON.favorites.favoritePlaylistIndex = i; break; } } this.hideShowPlayer(); if(IRON.audioPlayer.stickyEnable && IRON.sonaar.player.list.tracks){//Verify if the sticky player is enable and if the playlist is loaded this.setStickyFavButtons(); //reset the sticky player favorite buttons after the ajax call: Fix issue with the favorite button from the CONTINUOUS sticky player } }, reloadPlayerAjax: function(currentplayer, num = null, transition = false){ // transition means that the player is being loaded in a popup and we want a smooth fade in if(transition && $('.elementor-editor-active').length) return; var $currentplayer = $(currentplayer); var playerParent = $currentplayer.parent('.iron_widget_radio'); if(num === null){ num = 0; $('.iron-audioplayer').each(function(){ if($(this).data('id')=== $currentplayer.data('id')){ return; } num++; }); } var maxDuration = 4000; var interval = 100; var elapsedTime = 0; if(transition){ playerParent.css({ 'opacity': 0, 'transition': 'opacity 0.15s ease' }); } var intervalId = setInterval(function() { //Set interval to wait for the player to be loaded: required for player inside a popup var playerIndex = srp_convertPlayerIdToPlayerNum($currentplayer.data('id')); if (playerIndex !== null) { var playerId = IRON.players[playerIndex].audioPlayer.id.split('-'); playerId = playerId[playerId.length - 1]; var srp_fav_player_param_args = window['srp_player_params_args_' + playerId]; var srp_fav_player_param = window['srp_player_params_' + playerId]; var data = { 'action': 'load_ajax_player', 'nonce': sonaar_music.ajax.ajax_nonce, 'args': srp_fav_player_param_args, 'parameters': srp_fav_player_param, }; $.post(sonaar_music.ajax.ajax_url, data, function (response) { var parsedResponse = $(response); var newDiv = parsedResponse.find('.iron-audioplayer.srp_player_is_favorite'); $currentplayer.replaceWith(newDiv); var player = Object.create(IRON.audioPlayer); player.init($($('.iron-audioplayer')[num])); IRON.players[num] = player; if($('.iron-audioplayer.srp_player_is_favorite .sr-playlist-item').length === 0) { // If no items left, show the "not found" message $('.srp-fav-removeall-bt').hide(); }else{ $('.srp-fav-removeall-bt').show(); } if(transition){ playerParent.css('opacity',1); } }).fail(function() { console.log('An error occurred during the post operation.'); }); clearInterval(intervalId); } else { if(transition){ playerParent.css('opacity',1); } elapsedTime += interval; if (elapsedTime >= maxDuration) { clearInterval(intervalId); } } }, interval); }, removeTrackFromFavorites: function(postId, trackPos) { const existingIndex = IRON.favorites.favoriteTracks.findIndex(track => Number(track.postId) === Number(postId) && Number(track.trackPos) === Number(trackPos)); if (existingIndex !== -1) { IRON.favorites.favoriteTracks.splice(existingIndex, 1); } const $favoritePlayer = $('.iron-audioplayer.srp_player_is_favorite'); if($favoritePlayer.length > 0) { $favoritePlayer.find('.sr-playlist-item').each(function() { const $track = $(this); const trackData = $track.data(); if(trackData.postId === parseInt(postId, 10) && trackData.trackPos === parseInt(trackPos,10)) { if($track.hasClass('current')) { IRON.sonaar.player.next(); } $track.fadeOut(400, function() { if($track.parents('.iron-audioplayer').hasClass('sr_selectedPlayer') && IRON.audioPlayer.stickyEnable && typeof IRON.sonaar.player.list.tracks[$track.index()] != 'undefined') { IRON.sonaar.player.list.tracks.splice($track.index(), 1) //Remove track from playlist if($track.index() <= IRON.sonaar.player.currentTrack) { IRON.sonaar.player.classes.preventHandleTrackChange = true; //Prevent to reinit the currentrack IRON.sonaar.player.currentTrack--; //Reduce currentTrack index if the track is before the currentTrack } } $track.remove(); IRON.favorites.hideShowPlayer(); }); } }); } }, clearFavoriteList: function(){ IRON.favorites.favoriteTracks = []; // Clear the favoriteTracks array IRON.userPlaylists[IRON.favorites.favoritePlaylistIndex].tracks = []; // Clear the tracks from the 'Favorites' playlist if( IRON.favorites.dataType === 'cookies' ){ document.cookie = "sonaar_mp3_playlists=; path=/;"; // Update the cookie with the modified playlists }else{ $.ajax({ url: sonaar_music.ajax.ajax_url, // WordPress AJAX URL type: 'POST', dataType: 'json', data: { action: 'update_user_playlist', // PHP function name nonce: sonaar_music.ajax.ajax_nonce, playlists: IRON.userPlaylists // Playlist data }, success: function(response) { //console.log(response); } }); } $('.iron-audioplayer:not(.srp_player_is_favorite) .' + sonaar_music.option.srp_fav_remove_icon).addClass(sonaar_music.option.srp_fav_add_icon).removeClass(sonaar_music.option.srp_fav_remove_icon); var delay = 200; $('.iron-audioplayer.srp_player_is_favorite').each(function() { var favoriteList = $(this).find('.sr-playlist-item'); favoriteList.each(function(index) { var track = this; setTimeout(function() { $(track).fadeOut(delay, function() { $(track).remove(); if(index + 1 >= favoriteList.length){ IRON.favorites.hideShowPlayer(); } }); }, index * delay); }); }); }, hideShowPlayer: function(){ if($('.iron-audioplayer.srp_player_is_favorite .sr-playlist-item').length === 0) { // If no items left, show the "not found" message $('.srp-fav-removeall-bt').hide(); $('.srp-fav-notfound').show(); $('.iron-audioplayer.srp_player_is_favorite').hide(); }else{ $('.srp-fav-removeall-bt').show(); } }, setStickyFavButtons: function(){ if(!IRON.favorites.favoritesEnabled) return; var currentTrackIndex = IRON.sonaar.player.currentTrack; $('#sonaar-player').data('trackPos', IRON.sonaar.player.list.tracks[currentTrackIndex].track_pos); $('#sonaar-player').data('postId', IRON.sonaar.player.list.tracks[currentTrackIndex].sourcePostID); var isFavorite = IRON.favorites.favoriteTracks.some(function(track) { return track.postId == IRON.sonaar.player.list.tracks[currentTrackIndex].sourcePostID && track.trackPos == IRON.sonaar.player.list.tracks[currentTrackIndex].track_pos; }); var favButtonIndex = -1; for (var i = 0; i < IRON.sonaar.player.albumStoreList.length; i++) { if (IRON.sonaar.player.albumStoreList[i]['cta-class'] === 'srp-fav-bt') { favButtonIndex = i; break; } } if( favButtonIndex === -1 ) return; // Depending on isFavorite, set the appropriate icon class if (isFavorite) { IRON.sonaar.player.albumStoreList[favButtonIndex]['store-icon'] = sonaar_music.option.srp_fav_remove_icon; } else { IRON.sonaar.player.albumStoreList[favButtonIndex]['store-icon'] = sonaar_music.option.srp_fav_add_icon; } }, clickStickyFavButton: function(favButtonIndex){ if(!IRON.favorites.favoritesEnabled) return; event.preventDefault(); const $sonaarPlayer = $('#sonaar-player'); const postId = $sonaarPlayer.data('postId'); const trackPos = $sonaarPlayer.data('trackPos'); const action = IRON.sonaar.player.list.tracks[IRON.sonaar.player.currentTrack].optional_storelist_cta[favButtonIndex]['store-icon'] == sonaar_music.option.srp_fav_remove_icon ? 'remove' : 'add'; this.addRemoveFavorite(postId, trackPos, action); }, addRemoveFavorite: function(postId, trackPos, action){ //action = 'add' or 'remove' if(typeof postId === 'undefined' || typeof trackPos === 'undefined' || typeof action === 'undefined') return; if(IRON.audioPlayer.stickyEnable && $('#sonaar-player .srp-fav-bt').length){ var favButtonIndex = -1; for (var i = 0; i < IRON.sonaar.player.albumStoreList.length; i++) { if (IRON.sonaar.player.albumStoreList[i]['cta-class'] === 'srp-fav-bt') { favButtonIndex = i; break; } } //toggle Sticky favorite icon IRON.sonaar.player.albumStoreList[favButtonIndex]['store-icon'] = action === 'remove' ? sonaar_music.option.srp_fav_add_icon : sonaar_music.option.srp_fav_remove_icon; IRON.sonaar.player.albumStoreList[favButtonIndex]['store-name'] = action === 'remove' ? sonaar_music.option.fav_label_add_action : sonaar_music.option.fav_label_remove_action; } //toggle widget favorite icon const selector = `.srp-fav-bt[data-source-post-id="${postId}"][data-store-id^="${trackPos}-"] i`; const selectorParent = `[data-post-id="${postId}"][data-track-pos="${trackPos}"] .srp-fav-bt`; const addClass = action === 'remove' ? sonaar_music.option.srp_fav_add_icon : sonaar_music.option.srp_fav_remove_icon; const removeClass = action === 'remove' ? sonaar_music.option.srp_fav_remove_icon : sonaar_music.option.srp_fav_add_icon; const title = action === 'remove' ? sonaar_music.option.fav_label_add_action : sonaar_music.option.fav_label_remove_action; $(selector).addClass(addClass).removeClass(removeClass); $(selectorParent).attr('title', title).attr('aria-label', title); //Update favoriteList let existingIndex = -1; if(Array.isArray(IRON.favorites.favoriteTracks)) { existingIndex = IRON.favorites.favoriteTracks.findIndex(function(track) { return Number(track.postId) === Number(postId) && Number(track.trackPos) === Number(trackPos); }); } if(existingIndex === -1) { // If track doesn't exist in favorites, add it IRON.favorites.favoriteTracks.push({ postId: postId.toString(), trackPos: trackPos.toString() }); } else { IRON.favorites.removeTrackFromFavorites(postId, trackPos); } // Set the updated favorites list as a cookie if(IRON.favorites.favoritePlaylistIndex !== -1) { IRON.userPlaylists[IRON.favorites.favoritePlaylistIndex].tracks = IRON.favorites.favoriteTracks; } if( IRON.favorites.dataType === 'cookies' ){ // Set the updated playlists as a cookie document.cookie = "sonaar_mp3_playlists=" + encodeURIComponent(JSON.stringify(IRON.userPlaylists)) + "; max-age=31536000; path=/;"; IRON.favorites.showNotificationAndReloadPlayer(action); }else{ $.ajax({ url: sonaar_music.ajax.ajax_url, // WordPress AJAX URL type: 'POST', dataType: 'json', data: { action: 'update_user_playlist', // PHP function name nonce: sonaar_music.ajax.ajax_nonce, playlists: IRON.userPlaylists // Playlist data }, success: function(response) { //console.log(response); IRON.favorites.showNotificationAndReloadPlayer(action); } }); } }, showNotificationAndReloadPlayer: function(action){ // Create and append the notification div to the body $('
      ') .addClass('srp-fav-notification') .text(sonaar_music.option[`fav_label_${action}`]) .appendTo('body') .animate({ bottom: '100px', opacity: 1 }, 500) .delay(3000) .animate({ bottom: '80px', opacity: 0 }, 500, function() { $(this).remove(); }); if(action === "add") { $('.iron-audioplayer').each(function(index) { if($(this).hasClass('srp_player_is_favorite')){ IRON.favorites.reloadPlayerAjax(this, index); } }); } }, setFavButtons: function(audioPlayer){ if(srp_vars.is_logged_in === "no" && sonaar_music.option.cta_favorites_dv_enable_redirect_main_settings === "true"){ return; } const $audioPlayer = $(audioPlayer); const $favRemoveAllBtn = $('.srp-fav-removeall-bt'); $favRemoveAllBtn.each(function(){ const $this = $(this); if(!$this.data('ready')) { $this.data('ready', true).on('click', IRON.favorites.clearFavoriteList); } }); if($audioPlayer.hasClass('srp_player_is_favorite')){ $('.srp-fav-notfound').toggle(!$audioPlayer.find('.sr-playlist-item, .swiper-slide').length); } const $favBtn = $audioPlayer.find('.srp-fav-bt'); if($favBtn.data('event') != 'click'){ $favBtn.data('event', 'click'); $audioPlayer.on('click', '.srp-fav-bt', function () { event.preventDefault(); const $this = $(this); if($this.parents('.srp_favorites_loading').length) return; const postId = $(this).attr('data-source-post-id'); const trackPos = $(this).attr('data-store-id').split('-')[0]; const action = $this.find('i').hasClass(sonaar_music.option.srp_fav_remove_icon) ? 'remove' : 'add'; IRON.favorites.addRemoveFavorite(postId, trackPos, action); }); } $audioPlayer.find('.srp-fav-notfound').each(function() { const $this = $(this); $this.text($this.data('label')); }); }, initRightClick: function(){ if(sonaar_music.option.fav_enable_contextual_menu !== "true") return; var lastSelectedTrack = null; var style = document.createElement('style'); style.innerHTML = ` #contextMenu { display: none; position: absolute; z-index: 1000; background: #343a40; border-radius: 5px; padding: 4px; } #contextMenu ul { padding-left: 0; } #deleteFromFavorite { color: #fff; border-radius: 5px; font-size: 14px; padding: 5px 10px; cursor: pointer; list-style: none; } #deleteFromFavorite:hover { background-color: #6c757d; } `; document.head.appendChild(style); // Create context menu $('
      ', { id: 'contextMenu' }) .append($('
        ').append($('
      • ', { id: 'deleteFromFavorite', text: sonaar_music.option.fav_label_rightclick_remove }))) .appendTo('body'); $('.iron-audioplayer.srp_player_is_favorite .sr-playlist-item').css({ '-webkit-user-select': 'none', /* Safari 3.1+ */ '-moz-user-select': 'none', /* Firefox 2+ */ '-ms-user-select': 'none', /* IE 10+ */ 'user-select': 'none' /* Standard syntax */ }); $('.iron-audioplayer.srp_player_is_favorite .sr-playlist-item').click(function(e) { if (e.shiftKey && lastSelectedTrack != null) { var start = $('.iron-audioplayer.srp_player_is_favorite .sr-playlist-item').index(this); var end = $('.iron-audioplayer.srp_player_is_favorite .sr-playlist-item').index(lastSelectedTrack); $('.iron-audioplayer.srp_player_is_favorite .sr-playlist-item').slice(Math.min(start, end), Math.max(start, end) + 1) .addClass('selected') .css('background-color', '#ccc'); } else if (e.ctrlKey || e.metaKey) { $(this).toggleClass('selected') .css('background-color', function(index, value) { return $(this).hasClass('selected') ? '#ccc' : ''; }); } else { $('.iron-audioplayer.srp_player_is_favorite .sr-playlist-item').removeClass('selected') .css('background-color', ''); $(this).addClass('selected') .css('background-color', '#ccc'); } lastSelectedTrack = $(this).hasClass('selected') ? this : null; }).contextmenu(function(e) { e.preventDefault(); if ($(this).hasClass('selected')) { $('#contextMenu').css({ display: 'block', left: e.pageX, top: e.pageY }); } }); $(document).click(function() { $('#contextMenu').hide(); }); $('#deleteFromFavorite').click(function() { $('.iron-audioplayer.srp_player_is_favorite .sr-playlist-item.selected').each(function() { var postId = $(this).data('post-id'); var trackPos = $(this).data('track-pos'); IRON.favorites.addRemoveFavorite(postId, trackPos, 'remove'); //IRON.favorites.removeTrackFromFavorites(postId, trackPos); $(this).removeClass('selected') .css('background-color', ''); }); lastSelectedTrack = null; }); }, } function srp_variation_button(el) { if( $(el).find('a').length){ el = $(el).find('a')[0]; } // Check if this is within .sr-playlist-item-flex or .srp_swiper-album-art if ($(el).closest('.sr-playlist-item').find('.sr_track_cover img').length > 0) { image_src = $(el).closest('.sr-playlist-item').find('.sr_track_cover img').attr('src'); } else if ($(el).closest('.sr-playlist-item').find('img.sr_track_cover').length > 0) { image_src = $(el).closest('.sr-playlist-item').find('img.sr_track_cover').attr('src'); } else if ($(el).closest('.srp_swiper-album-art').length > 0) { // Extract the image url from the 'background-image' CSS property const backgroundImage = $(el).closest('.srp_swiper-album-art').css('background-image'); image_src = backgroundImage.slice(4, -1).replace(/"/g, ""); } else if ($(el).closest('.srmp3-product').length > 0){ image_src = $(el).closest('.srmp3-product').find('img').attr('src'); } else { // Fallback. image_src = ''; } const productId = (typeof $(el).data('product_id') != 'undefined') ? $(el).data('product_id') : $(el).data('source-post-id'); // data-product_id is the attribute from woocommerce shop page And data-source-post-id is the attribute from our widget srp_wc_variation_popup(productId, $(el), image_src); } function srp_wc_variation_popup(productId, el, image_src) { srp_wc_loadspinner(el); sr_setPopUp(); var data = { 'action': 'load_wc_variation_by_ajax', 'image_src': image_src, 'product-id': productId, 'nonce': sonaar_music.ajax.ajax_nonce }; $.post(sonaar_music.ajax.ajax_url, data, function (response) { response = JSON.parse( response ); $('#sonaar-modal .sr_popup-body').html(response); sr_openPopUp(); srp_wc_unloadspinner(el); }) } function srp_add_to_cart_loadspinner(el) { //Add spinner animation from sonaar on the Add to Cart button from the variation modal. srp_wc_loadspinner(el); setInterval(function () { if (!el.hasClass('loading')) { clearInterval(); srp_wc_unloadspinner(el); } }, 5); } function srp_wc_loadspinner(el) { if (el.closest('#sonaar-player .track-store').length > 0 || el.parents('.srp_ext_featured_cta').length || el.parents('.srp_ext_cta').length) { // Button is in the sticky player el = el.closest('a'); // Replace el with the element or its closest ancestor el.parent().addClass('sricon-spinner'); el.parent().css({ width: el.parent().css("width"), fontSize: '16px', textAlign: 'center', }); el.css({ display: "none", }); return; } var trigger_html = el.html(); var computedStyles = window.getComputedStyle(el.get(0)); var trigger_bgcolor = computedStyles.backgroundColor; var trigger_color = computedStyles.color; var trigger_width = computedStyles.width; var trigger_height = computedStyles.height; el.data('html', trigger_html); el.css("pointer-events", "none"); el.css({ backgroundColor: trigger_bgcolor, color: trigger_color, width: trigger_width, height: trigger_height }); if (el.attr('class') === 'sricon-info') { el.data('class', el.attr('class')); el.removeClass('sricon-info'); } $spinnerWrap = $(''); $spinner = $(''); $spinnerWrap.html($spinner); el.html($spinnerWrap); startButtonLoaderTimeout = setTimeout(function () { $spinnerWrap.addClass('sricon-spinner-wrap-ready'); }, 5); } function srp_wc_unloadspinner(el) { if (el.closest('#sonaar-player .track-store').length > 0 || el.parents('.srp_ext_featured_cta').length || el.parents('.srp_ext_cta').length ) { // Button is in the sticky player el = el.closest('a'); // Replace el with the element or its closest ancestor el.parent().removeClass('sricon-spinner'); el.parent().css({ width: "initial", fontSize: 'initial', textAlign: 'initial', }); el.css("display", ""); return; } if (el.data('class') === 'sricon-info') { el.addClass(el.data('class')); } el.html(el.data('html')); var resetStyles = { backgroundColor: '', color: '', width: '', height: '' }; el.css("pointer-events", "auto"); el.css(resetStyles); }; function srp_selectVariation(el) { $('.srp-modal-product-variation .srp_selected').removeClass('srp_selected'); $(el).addClass('srp_selected'); $('.srp-modal-variation-details[data-variant_id="' + $(el).data('variant_id') + '"]').addClass('srp_selected'); $('.srp-modal-variant-main .srp-modal-variant-price .woocommerce-Price-amount').html($(el).find('.srp-modal-variant-price>.woocommerce-Price-amount').html()); //Display Price from the selected variation $('.srp-modal-variant-main a.srp_button').attr('href', '?add-to-cart=' + $('.srp-modal-product-variation').data('product_id') + '&variation_id=' + $(el).data('variant_id')); //Set the selected variation URL to the "Add to cart" button $('.srp-modal-variant-main a.srp_button').attr('data-product_id', $(el).data('variant_id')); //Set the variation ID to the "Add to cart" button } function srp_setTrackListColumns(player, fromResize = false){ if( !$(player).hasClass('srp_has_customfields') || $(player).hasClass('srp_tracklist_grid')) return if($(player).find('.playlist').width() < 500 && ! $(player).hasClass('srp_responsive') ){ $(player).addClass('srp_responsive'); $(player).find('.sr-playlist-item').each(function () { setColumnCta(this) }) }else if( $(player).find('.playlist').width() >= 500 && $(player).hasClass('srp_responsive') ){ $(player).removeClass('srp_responsive'); $(player).find('.sr-playlist-item').each(function () { setColumnCta(this) }) } const gabBetweenItem = 10; //Flex Gab value let responsiveHiddenSection = []; const track = $(player).find('.sr-playlist-item:not([data-relatedtrack="1"])').eq(0); const ifSoundwaveWidthNotSet = Boolean(track.find('.srp_soundwave_wrapper').length && track.find('.srp_soundwave_wrapper').css('flex-basis') == '100%'); var playlistItemElementsWidth = 0; if(!fromResize){ /*Insert Spacer if doesnt have info button*/ const noteButtonWidth = ($(player).find('.sr-playlist-item:not([data-relatedtrack="1"]) .srp_noteButton').length)? $(player).find('.sr-playlist-item:not([data-relatedtrack="1"]) .srp_noteButton').width() : 0; $(player).find('.srp_info_spacer').remove(); $(player).find('.sr-playlist-item:not([data-relatedtrack="1"])').each(function(){ if(noteButtonWidth && ! $(this).find('.srp_noteButton').length){ let spacer = $('
        ', { class: 'srp_info_spacer' }).css('min-width', noteButtonWidth); $(this).find('.store-list').after(spacer); } }); track.find('.audio-track > *').each(function () { playlistItemElementsWidth += this.getBoundingClientRect().width }); if(track.find('.sr_track_cover').length){ playlistItemElementsWidth += track.find('.sr_track_cover').width() - 12;//12px gap } if(track.find('.store-list').length){ playlistItemElementsWidth += track.find('.store-list').width() - 12;//12px gap } $(player).data('playlistItemElementsWidth' , playlistItemElementsWidth); }else if(typeof $(player).data('playlistItemElementsWidth') != 'undefined' && ! ifSoundwaveWidthNotSet){ playlistItemElementsWidth = $(player).data('playlistItemElementsWidth'); } if(playlistItemElementsWidth !== 0 && $(player).find('.srp_soundwave_wrapper').length){ if( typeof track.data('track-width') == 'undefined'){ columnTotalWidth = track.width() - playlistItemElementsWidth; track.data('track-width', columnTotalWidth) }else{ columnTotalWidth = track.data('track-width'); } $(player).find('.sr-playlist-cf-container').css('flex', '0 1 ' + columnTotalWidth + 'px');///When soundwave width is set, the CF column container width is based on the available space. } var biggestColumnContainer = 0 track.find('.sr-playlist-cf-child').each(function(index){ const sectionClass = $(this).data('id'); let cfWidth = 0; for (let i = index; i < track.find('.sr-playlist-cf-child').length; i++) { let ii = track.find('.sr-playlist-cf-child').length - i -1; if( track.find('.sr-playlist-cf-child').eq(ii).attr('data-width')){ cfWidth += parseInt(track.find('.sr-playlist-cf-child').eq(ii).attr('data-width'), 10) + gabBetweenItem; }else{ track.find('.sr-playlist-cf-child').eq(ii).attr('data-width', track.find('.sr-playlist-cf-child').eq(ii).width() ) cfWidth += track.find('.sr-playlist-cf-child').eq(ii).width() + gabBetweenItem; } if(ifSoundwaveWidthNotSet && i == track.find('.sr-playlist-cf-child').length - 1 && cfWidth > biggestColumnContainer){ biggestColumnContainer = cfWidth; $(player).find('.sr-playlist-cf-container').css('flex', '0 1 ' + cfWidth + 'px') //When no soundwave width is set (100% by default), set the width of the columns container based on its requirements. } } if( track.find('.sr-playlist-cf-container').width() < cfWidth ){ //If no enough space for the custom heading responsiveHiddenSection.push(sectionClass); } }); responsiveHiddenSection = responsiveHiddenSection.filter(function(item, pos) { // Remove duplicated item from array return responsiveHiddenSection.indexOf(item) == pos; }) $(player).find('.sr-cf-heading .sr-playlist-heading-child').each(function(){ const sectionClass = $(this).data('sort'); if( $(this).index() > $(player).find('.sr-cf-heading .sr-playlist-heading-child').length - responsiveHiddenSection.length ){ $(this).addClass('srp_hidden'); $(player).find('.'+sectionClass).addClass('srp_hidden'); srp_setTrackListColumns_headerPosition(player); }else{ $(this).removeClass('srp_hidden'); $(player).find('.'+sectionClass).removeClass('srp_hidden'); } }); /*Set Header Custom field Position*/ srp_setTrackListColumns_headerPosition(player); } function setColumnCta(trackListItem) { if( !$(trackListItem).find('.store-list').length || $(trackListItem).parents('.srp_tracklist_grid').length ) return; const storeListCurrentWidth = parseInt($(trackListItem).find('.store-list').css('flex').split(' ')[2], 10); const storeList = $(trackListItem).find('.store-list'); let storeListWidth = 0; const dataWidth = ($(trackListItem).parents('.srp_responsive').length)? 'mobile-width' : 'width'; if( typeof storeList.find('.song-store-list-menu').data( dataWidth ) == 'undefined' || $('.elementor-editor-active').length ){ let storeListMinusWidth = 0; let extendable = false; let dotsPosition = 'right: 10px;' $(trackListItem).find('.song-store:not(.srp_hidden)').each(function () { if( $(this).offset().left < storeList.offset().left ){ extendable = true; }else if( storeListMinusWidth == 0 && extendable){ storeListMinusWidth = $(this).offset().left - storeList.offset().left storeListWidth = Math.ceil(storeListCurrentWidth - storeListMinusWidth); dotsPosition = 'left:'+ ( storeListMinusWidth - 25 ) + 'px;' } }) if( extendable ){ $(trackListItem).addClass('srp_extendable'); storeList.find('.song-store-list-menu').width( storeListWidth ); storeList.find('.song-store-list-menu').data( dataWidth, storeListWidth + ''); const dots = $('', { class: 'fas fa-ellipsis-h srp_ellipsis', style: 'position: absolute; ' + dotsPosition }); if(storeList.find('.srp_ellipsis').length){ storeList.find('.srp_ellipsis').replaceWith(dots); }else{ storeList.append(dots); } }else{ storeList.find('.song-store-list-menu').data( dataWidth, 'none' ) } }else{ if( storeList.find('.song-store-list-menu').data( dataWidth ) == 'none' ){ $(trackListItem).removeClass('srp_extendable'); storeList.find('.song-store-list-menu').width( 'inherit' ); }else{ $(trackListItem).addClass('srp_extendable'); storeListWidth = parseInt(storeList.find('.song-store-list-menu').data( dataWidth ), 10); dotsPosition = (storeListWidth == 0 )? (storeListWidth + 10) + 'px' : (storeListWidth + 10) + 'px'; storeList.find('.song-store-list-menu').width( storeListWidth ); storeList.find('.srp_ellipsis').css({'left':'unset','right': dotsPosition }) } } } function srp_setTrackListColumns_headerPosition(player){ /*Set Header Custom field Position*/ setTimeout(function(){ $(player).find('.sr-playlist-item:not([data-relatedtrack="1"])').each(function(){ $(this).find('.sr-playlist-cf-child').each(function(){ const sectionClass = $(this).data('id'); const sectionPosition = $(this)[0].offsetLeft; const sectionWidth = $(this).width(); const elIndex = $(this).parents('.sr-playlist-cf-container').find('.'+sectionClass).index(this);//Use elIndex to select the right heading when many columns have the same data-id. $(player).find('[data-sort="'+ sectionClass +'"]').eq(elIndex).css({'position':'absolute','left': sectionPosition+'px', 'width': sectionWidth + 'px'}); }); }); }, 60);//Requried a delai when we have many CTA } /*------------------------------ Search & filter Parameters ------------------------------*/ function srp_getPlayerId(player){ if( $(player).parents('.elementor-widget-music-player').length && typeof $(player).parents('.elementor-widget-music-player').attr('id') != 'undefined'){ //if mp3 player has id from elementor playerId = ( $(player).parents('.elementor-widget-music-player').attr('id') ) }else if( ! $(player).parents('.iron_widget_radio').attr('id').startsWith('arbitrary-instance-') ){ //if mp3 player has id from shortcode parameter playerId = $(player).parents('.iron_widget_radio').attr('id'); }else{ playerId = $(player).parents('.iron-audioplayer').attr('id'); } if(typeof playerId == 'undefined'){ playerId = player.id; } return playerId; } function srp_scrollTo(player, offset){ var element = player[0].querySelector('.playlist'); var rect = element.getBoundingClientRect(); var viewportTopPosition = rect.top; window.scroll({ top: window.scrollY + viewportTopPosition - offset, left: 0, behavior: 'smooth' }); } function srp_updatePage(pageNumber, player){ if(player.pagination_offset >= 0){ srp_scrollTo(player, player.pagination_offset); } player.params.page = pageNumber; srp_updateURLParameter( 'srp_player_id', srp_getPlayerId(player) ); srp_updateURLParameter('srp_page', pageNumber); } function srp_updateOrder(sortValue, player){ player.params.order = sortValue; srp_updateURLParameter( 'srp_player_id', srp_getPlayerId(player) ); srp_updateURLParameter('srp_order', sortValue); } //Add parameter to the URL function srp_updateURLParameter(param, paramVal = null){ if(paramVal === null) return const url = window.location.href; let newAdditionalURL = ''; let tempArray = url.split('?'); const baseURL = tempArray[0]; const additionalURL = (typeof tempArray[1] != 'undefined')? tempArray[1] : ''; let temp = ''; if (additionalURL != '') { tempArray = additionalURL.split('&'); for (var i=0; i { const searchBoxSelector = playerId != null ? `.srp_search_container[data-player-id="${playerId}"]` : '.srp_search_container:not([data-player-id])'; $(searchBoxSelector).find('.srp_reset_search').css('display', 'none'); $(searchBoxSelector).each(function() { $(this).find('.srp_search')[0].value = ''; }); IRON.players[playerNum].audioPlayer.params.search = ''; }; const clearMetaFilter = (key) => { if(typeof IRON.players[playerNum].audioPlayer.params.meta != 'undefined'){ IRON.players[playerNum].audioPlayer.params.meta[key] = ''; } const activeButtons = $(document).find(`.srp_filter_button.srp_filter_button--active[data-metakey="${key}"]`); activeButtons.removeClass('srp_filter_button--active').removeAttr('style'); }; if (metaName === 'all') { //usage : srp_removeMeta('all', null, 'myplayer01'); clearSearch(); if (typeof IRON.players[playerNum].audioPlayer.params.meta !== 'undefined') { Object.keys(IRON.players[playerNum].audioPlayer.params.meta).forEach(clearMetaFilter); } } else if (metaName === 'search') { clearSearch(); } else { if (metaValue == null) { clearMetaFilter(metaName); } else if (typeof IRON.players[playerNum].audioPlayer.params.meta !== 'undefined' && typeof IRON.players[playerNum].audioPlayer.params.meta[metaName] !== 'undefined') { const metaString = IRON.players[playerNum].audioPlayer.params.meta[metaName].split(','); const index = metaString.indexOf(metaValue); if (index > -1) { metaString.splice(index, 1); IRON.players[playerNum].audioPlayer.params.meta[metaName] = metaString.join(','); const dataPlayerId = playerId ? `[data-playerid="${playerId}"]` : ''; const activeButtons = $(document).find(`.srp_filter_button--active[data-value="${metaValue}"]${dataPlayerId}`); activeButtons.removeClass('srp_filter_button--active').removeAttr('style'); } } } srp_updatePage(1, IRON.players[playerNum].audioPlayer); srp_updateList(playerNum); } function srp_addMeta( playerId, metaName, metaValue, selecttype = null ){ if(selecttype == 'multiselect_or' ){ metaName = metaName + '_or'; } if(selecttype == 'range'){ metaName = metaName + '_minmax'; }else{ metaValue = metaValue.replace(',', 'ii44'); } const playerNum = ( srp_convertPlayerIdToPlayerNum(playerId) !== null)? srp_convertPlayerIdToPlayerNum(playerId) : 0 ; if( typeof IRON.players[playerNum].audioPlayer.params == 'undefined'){ IRON.players[playerNum].audioPlayer.params = {}; } if( typeof IRON.players[playerNum].audioPlayer.params.meta == 'undefined'){ IRON.players[playerNum].audioPlayer.params.meta = false; } if( IRON.players[playerNum].audioPlayer.params.meta === false){ let newValue = []; newValue[metaName] = metaValue; IRON.players[playerNum].audioPlayer.params.meta = newValue; }else if( metaName in IRON.players[playerNum].audioPlayer.params.meta ){ const paramArray = IRON.players[playerNum].audioPlayer.params.meta[metaName].split(',') if( ! paramArray.includes(metaValue) ){ IRON.players[playerNum].audioPlayer.params.meta[metaName] += ','+ metaValue; } }else{ IRON.players[playerNum].audioPlayer.params.meta[metaName] = metaValue } IRON.players[playerNum].audioPlayer.params.playerId = playerId; srp_updatePage(1, IRON.players[playerNum].audioPlayer); //srp_updateURLParameter( 'srp_page', 1 ); srp_updateList( playerNum ); } /*Listener on the URL change*/ //Source: https://itsopensource.com/how-to-call-a-function-on-URL-change-in-javascript/ /* (function(history){ var pushState = history.pushState; history.pushState = function() { pushState.apply(history, arguments); srp_updateList() }; })(window.history); */ function srp_setSearchFiltersFromUrl(){ const urlParams = new URLSearchParams(document.location.search); const playerId = srp_getPlayerIdParamFromUrl(); const playerNum = ( srp_convertPlayerIdToPlayerNum(playerId) !== null)? srp_convertPlayerIdToPlayerNum(playerId) : 0 ; var verifyParams = false; for (const key of urlParams.keys()) { if (key.startsWith('srp_')) { verifyParams = true; } } IRON.players[playerNum].audioPlayer.params = { //Save parameter playerId: playerId, search: urlParams.get('srp_search'), meta: srp_getAllMetaParams(), page: urlParams.get('srp_page'), order: urlParams.get('srp_order'), } for (let i = 0; i < IRON.players.length; i++) { if(i == playerNum){ if(verifyParams || IRON.players[playerNum].audioPlayer.lazy_load){ //If no srp_ param in the URL srp_updateList( playerNum ) } }else{ IRON.audioPlayer.reloadAjax(IRON.players[i].audioPlayer, true); } } } function srp_getPlayerIdParamFromUrl(){ const urlParams = new URLSearchParams(document.location.search); let playerId = urlParams.get('srp_player_id'); if( playerId != null && playerId.startsWith('playernum-') ){ //eq: playernum-1 target the first player even without ID. Used by the search field from the mp3 player. const playerNum = playerId.split('playernum-')[1]-1; playerId = $('.iron-audioplayer').eq(playerNum).attr('id'); } return playerId; } function srp_getAllMetaParams(){ const urlParams = new URLSearchParams(document.location.search); let metaParams = urlParams.get('srp_meta'); if( metaParams ){ metaParams = metaParams.split(';'); metaParams = metaParams.filter((_, index) => index != metaParams.indexOf('')); //Remove Empty array element let newmetaParamsArray = []; metaParams.map(function(el){ const metaName = el.split(':', 1)[0]; const metaValue = el.replace(metaName + ':', ''); newmetaParamsArray[decodeURIComponent(metaName)] = decodeURIComponent(metaValue); }) return newmetaParamsArray; } return false; } function srp_getMetaParams(metaName){ let meta = srp_getAllMetaParams(); meta = meta[metaName]; if(typeof meta == 'string'){ meta = meta.split(','); meta = meta.map( el => { return el.replace('ii44',','); }); return meta; }else{ return null; } } function srp_insertChips( playerNum = 0){ const metaParams = (typeof IRON.players[playerNum].audioPlayer.params.meta == 'object')? IRON.players[playerNum].audioPlayer.params.meta : []; let chipsSelector = '.srp_chips:not([data-player-id])'; let chipsSelectorToRemove = chipsSelector; let playerId = ( typeof IRON.players[playerNum].audioPlayer.params.playerId !== 'undefined' )? IRON.players[playerNum].audioPlayer.params.playerId : null; if( playerId !== null ){ if( $('.srp_chips[data-player-id="' + IRON.players[playerNum].audioPlayer.params.playerId + '"]').length ){ chipsSelector = '.srp_chips[data-player-id="' + IRON.players[playerNum].audioPlayer.params.playerId + '"]' chipsSelectorToRemove = chipsSelector; if( playerNum == 0 ){ chipsSelectorToRemove += ', .srp_chips:not([data-player-id])' } } } $( chipsSelectorToRemove ).find('.srp_chip').remove(); if( IRON.players[playerNum].audioPlayer.params.search != null){ metaParams['search'] = IRON.players[playerNum].audioPlayer.params.search; } updateFilterSelector(metaParams, playerId); for (const property in metaParams) { const metaMultiParams = metaParams[property].split(','); if(property.endsWith('_or')){ var title = $('[data-metakey="' + property.slice(0, -3) + '"]').data('label'); }else if(property.endsWith('_minmax')){ var title = $('[data-metakey="' + property.slice(0, -7) + '"]').data('label'); }else{ var title = $('[data-metakey="' + property + '"]').data('label'); } const playerWidgetId = (typeof IRON.players[playerNum] != 'undefined')? IRON.players[playerNum].audioPlayer.id : null ; const valueForHuman = []; for (let i = 0; i < metaMultiParams.length; i++) { valueForHuman[i] = metaMultiParams[i]; if(metaMultiParams[i] != ''){ // if metamultiparams[i] contains _ then it's a range so rename the param min > max if(metaMultiParams[i].includes('_')){ // metaMultiParams[i] = metaMultiParams[i].replace('_', ' > '); } if(property == 'track_length_minmax'){ const times = metaMultiParams[0].split('_'); const startTime = secondsToTime(parseInt(times[0])); const endTime = secondsToTime(parseInt(times[1])); valueForHuman[i] = startTime + ' - ' + endTime; } metaMultiParams[i] = metaMultiParams[i].replace('ii44', ','); chip = $('
        ', { class: 'srp_chip', data: { meta: property, playerid: playerWidgetId }, html: title + ': ' + valueForHuman[i].replace('_', ' - ') + '' }); function compareSliderValue(array1, array2) { if (array1.length !== array2.length) { return false; } for (let i = 0; i < array1.length; i++) { const element1 = array1[i]; const element2 = array2[i]; if (element1 != element2) { return false; } } return true; } function resetSliderValue(currentMinMaxValue){ IRON.rangeSelector.forEach(function (slider) { if(compareSliderValue(slider.sliderValue, currentMinMaxValue)){ slider.sliderValue = slider.sliderValue = [ Number(slider.computedMin), Number(slider.computedMax) ]; } }) } $(chip).on('click', function(){ if(property.includes('_minmax')){ resetSliderValue(metaMultiParams[0].split('_')); } const metaName = $(this).data('meta'); srp_removeMeta( metaName, metaMultiParams[i], playerId); }) $(chip).appendTo( chipsSelector ); } } } if ($(chipsSelector).find('.srp_chip').length > 1 && !$(chipsSelector).data('hideclear')){ // Retrieve the value of the data-clearall attribute const clearAllText = $(chipsSelector).data('clearall') || 'Clear All'; const clearAllChip = $('
        ', { class: 'srp_chip srp_chip_clear_all', data: { playerid: playerId }, html: clearAllText + '', }); $(clearAllChip).on('click', function() { for (const property in metaParams) { if(property.includes('_minmax')){ resetSliderValue(metaParams[property].split('_')); } } srp_removeMeta('all', null, playerId); }); $(clearAllChip).appendTo(chipsSelector); } } function srp_updateList( playerNum ){ if( typeof IRON.players[playerNum].audioPlayer.params != 'undefined' ) { let playerId = IRON.players[playerNum].audioPlayer.params.playerId; /* Playerid Param*/ if( typeof IRON.players[playerNum].audioPlayer.params.playerId != 'undefined' ) { target_playerId = IRON.players[playerNum].audioPlayer.params.playerId; if(playerId != null && playerId.startsWith('arbitrary-instance-')){ //ID is provide the embed search playerId = 'playernum-' + ( parseInt(playerNum, 10) + 1); } srp_updateURLParameter( 'srp_player_id', playerId ); }else{ target_playerId = null; srp_updateURLParameter( 'srp_player_id', ''); } /* Search Param*/ if( typeof IRON.players[playerNum].audioPlayer.params.search != 'undefined' && (typeof IRON.players[playerNum].audioPlayer.orderedList != 'undefined' || IRON.players[playerNum].audioPlayer.lazy_load) ) { srp_updateURLParameter( 'srp_search', IRON.players[playerNum].audioPlayer.params.search ); if( target_playerId ){ if(target_playerId.startsWith('arbitrary-instance-')){ //ID is provide the embed search searchDiv = $(document).find('#' + target_playerId + ' .srp_search'); }else{ searchDiv = $(document).find('.srp_search_container[data-player-id=' + target_playerId + '] .srp_search'); } }else{ searchDiv = $(document).find('.srp_search_container:not([data-player-id]) .srp_search'); } searchDiv.val(IRON.players[playerNum].audioPlayer.params.search); if(typeof IRON.players[playerNum].audioPlayer.orderedList != 'undefined'){ IRON.players[playerNum].audioPlayer.orderedList.search(IRON.players[playerNum].audioPlayer.params.search); } }else{ srp_updateURLParameter( 'srp_search', ''); } /* Meta Param*/ if( typeof IRON.players[playerNum].audioPlayer.params.meta == 'object' ) { const metaParamsArray = IRON.players[playerNum].audioPlayer.params.meta; let metaParamsString = ''; for (const property in metaParamsArray) { if(metaParamsArray[property] != ''){ metaParamsString += property + ':' + metaParamsArray[property] + ';' // Set active filter buttons from URL strings metaValues = metaParamsArray[property].split(','); for(value in metaValues){ activeBt = document.querySelectorAll('.srp_filter_button[data-metakey="' + property + '"][data-value="' + metaValues[value] + '"][data-playerid="' + target_playerId + '"]'); activeBt.forEach( function(el) { el.classList.add('srp_filter_button--active'); el.style.backgroundColor = el.dataset.color; el.style.borderColor = el.dataset.color; }) } }else{ delete IRON.players[playerNum].audioPlayer.params.meta[property]; } } srp_updateURLParameter( 'srp_meta', metaParamsString ); if( typeof IRON.players[playerNum].audioPlayer.orderedList != 'undefined' ){ let paramName = ''; let newMetaParamsArray = []; for (const property in metaParamsArray) { paramName = srp_addPrefixToParams(property); newMetaParamsArray[paramName] = metaParamsArray[property]; } IRON.players[playerNum].audioPlayer.orderedList.filter(function (item) { var queryCondition = true; for (const property in newMetaParamsArray) { if( typeof item.values()[property] != 'undefined'){ let valueToSearch = newMetaParamsArray[property].split(','); valueToSearch = valueToSearch.map( el => { return el.toLowerCase().replace('ii44',','); }); let itemValue = item.values()[property].toLowerCase().split(', '); let alreadyMatched = false; for (const i in itemValue) { if( valueToSearch.includes( srp_decodeHTMLEntities(itemValue[i])) && !alreadyMatched ){ alreadyMatched = true; } } if(!alreadyMatched){ queryCondition = false; } } } return queryCondition; }); } } srp_insertChips(playerNum); IRON.audioPlayer.reloadAjax(IRON.players[playerNum].audioPlayer, true); } } function srp_addPrefixToParams(param){ switch(param) { case 'title': return 'tracklist-item-title'; case 'description': return 'srp_track_description'; case 'time': return 'tracklist-item-time'; default: return 'sr-playlist-cf--' + param; } } function srp_scrollToTrackListTop(id){ const yOffset = -30; const element = document.getElementById(id); const y = element.getBoundingClientRect().top + window.pageYOffset + yOffset; window.scrollTo({top: y, behavior: 'smooth'}); // $('#'+id)[0].scrollIntoView(); $('#'+id).find('.srp_list').addClass('srp_contentLoading'); //prevent transiton width animation on Cta when a new content appears. setTimeout(function(){ $('#'+id).find('.srp_list').removeClass('srp_contentLoading'); }, 1000); } /*------------------------------ END: Search & filter Parameters ------------------------------*/ function srp_decodeHTMLEntities(str) { return str.replace('&', '&').replace('>','>').replace('<','<').replace('"','"'); } /* Get PlayeNum */ function srp_convertPlayerIdToPlayerNum(playerID, playerToCheck = null) { let player = null let playerNum = null; if( playerID !== null && playerID !== ''){ if( $('#' + playerID + '.iron-audioplayer').length ){ player = $('#' + playerID + '.iron-audioplayer'); }else if($('#' + playerID + ' .iron-audioplayer').length){ player = $('#' + playerID + ' .iron-audioplayer'); } } if(player !== null){ if(playerToCheck === null ){ for(const i in IRON.players){ if( player.data('id') == IRON.players[i].audioPlayer.data('id')){ playerNum = i; } } }else{ if( player.data('id') == IRON.players[playerToCheck].audioPlayer.data('id')){ playerNum = playerToCheck; } } } return playerNum; } function srp_getParamFromUrl(){ //params list: "id", "widget_id", "trackid", "time", "ts_id", "play_icon" const urlParams = new URLSearchParams(document.location.search); let params = {}; if(urlParams.get('ts_post_id')){ params.id = urlParams.get('ts_post_id') ; } if(urlParams.get('ts_time')){ params.time = urlParams.get('ts_time') ; } if(urlParams.get('ts_track_num')){ params.trackid = urlParams.get('ts_track_num') - 1 ; } if(urlParams.get('ts_player_index')){ //Seclect player setTimeout(function(){ IRON.sonaar.player.selectedPlayer = $('.iron-audioplayer').eq( parseInt( urlParams.get('ts_player_index') ) - 1); IRON.sonaar.player.selectedPlayer.addClass('sr_selectedPlayer') }, 1000); } if(Object.keys(params).length && typeof params.id != 'undefined' ){ sonaar_ts_shortcode( params ); } } function srp_setPlayerParamUrl(){ if(typeof IRON.sonaar.player.currentTime == 'undefined' || IRON.sonaar.player.currentTime == ''){ return false; } const params = new URLSearchParams({ ts_post_id: IRON.sonaar.player.elWidgetId ? IRON.sonaar.player.postId : IRON.sonaar.player.playlistID.toString().split(", "), ts_track_num: IRON.sonaar.player.currentTrack + 1, ts_player_index: (typeof IRON.sonaar.player.selectedPlayer != 'undefined')? parseInt( srp_convertPlayerIdToPlayerNum(IRON.sonaar.player.selectedPlayer.id) ) + 1 : null, ts_time: IRON.sonaar.player.currentTime }); const queryString = params.toString(); let urlParams = window.location.origin + window.location.pathname + '?' + queryString; return urlParams; } IRON.swiper = {}; //Directory of custom functions for the swiper/slider IRON.swiper.isTransitionEnd = true; IRON.swiper.update = function(audioplayer, currentTrack) { if(typeof audioplayer == 'undefined') return; if( audioplayer == null ) return; if( typeof audioplayer.swiper == 'undefined' ) return; if( audioplayer.find('.srp_swiper').data('swiper-source') == 'track' ){ var slideIndex = currentTrack; var slidePostId = slideIndex; }else{ var slidePostId = $(audioplayer).find('.sr-playlist-item').eq(currentTrack).data('post-id'); var slideIndex = -1; var trackPostId = ''; $(audioplayer).find('.sr-playlist-item').each( function(){ if( trackPostId != $(this).data('post-id')){ trackPostId = $(this).data('post-id'); slideIndex++; } if(trackPostId == slidePostId){ return false; } }) } if( typeof audioplayer.swiper.params.centeredSlides != 'undefined' && audioplayer.swiper.params.centeredSlides === true ){ audioplayer.swiper.slideToLoop(slideIndex); //If "centeredSlides", always "slideTo" }else{ var visibleSlidesStartIndex = audioplayer.find('.swiper-slide-active').data('slide-index'); var visibleSlidesEndIndex = visibleSlidesStartIndex + audioplayer.swiper.params.slidesPerView - 1; if (slideIndex < visibleSlidesStartIndex || slideIndex > visibleSlidesEndIndex) { audioplayer.swiper.slideToLoop(slideIndex); //If not "centeredSlides", "slideTo" only when the slide is not visible } } $(audioplayer).find('.swiper-slide.srp_current').removeClass('srp_current'); $(audioplayer).find('.swiper-slide[data-slide-id="' + slidePostId + '"]').addClass('srp_current'); if( $(audioplayer).find('.srp_swiper').data('swiper-source') == 'post' ){ //Only update track info when the swiper is from post. const titleAndArtistName = $(audioplayer).find('.sr-playlist-item').eq(currentTrack).data("tracktitle").split(''); $(audioplayer).find('.swiper-slide[data-slide-id="' + slidePostId + '"] .srp_swiper-track-title').html(titleAndArtistName[0]); if( $(audioplayer).find('.srp_swiper-track-artist').length && titleAndArtistName.length > 1){ var artistName = titleAndArtistName[1].split('')[0]; $(audioplayer).find('.swiper-slide[data-slide-id="' + slidePostId + '"] .srp_swiper-track-artist').html(artistName); } } IRON.swiper.isTransitionEnd = false; } IRON.swiper.play = function(el, audioPlayer){ const playlistID = $(el).parents('.swiper-slide').data('slide-id'); if( audioPlayer.find('.srp_swiper').data('swiper-source') == 'track' ){ audioPlayer.find('.sr-playlist-item').eq(playlistID).find('.srp_audio_trigger').trigger('click'); }else{ const currentTrackIndex = (IRON.audioPlayer.stickyEnable)? IRON.sonaar.player.currentTrack : $('.sr-playlist-item.current').index(); if( audioPlayer.find('.sr-playlist-item').eq(currentTrackIndex).data('post-id') == playlistID ){ audioPlayer.find('.sr-playlist-item .srp_audio_trigger').eq(currentTrackIndex).trigger('click'); }else{ audioPlayer.find('.sr-playlist-item[data-post-id="' + playlistID + '"] .srp_audio_trigger').eq(0).trigger('click'); } } } IRON.swiper.showHiddenSlide = function(audioPlayer){ //Do slideNext and slidePrev to make appearing the missing slide when we slideto the slider end and loop is enable. if(typeof audioPlayer.swiper.params != 'undefined' && audioPlayer.swiper.params.loop && typeof audioPlayer.swiper.params.centeredSlides != 'undefined' && audioPlayer.swiper.params.centeredSlides === true ){ if(typeof IRON.players[0] != 'undefined'){ audioPlayer.swiper.slideNext(0); audioPlayer.swiper.slidePrev(0); } } } IRON.searchField = {}; //Directory of custom functions for the search field IRON.searchField.wait = false; //Prevent multiple search when user type fast IRON.searchField.search = function(field, e){ //Search field listener. field = input field, e = event if (e.ctrlKey || e.altKey || e.metaKey ) { return; } let playerId = $(field).parents('.srp_search_container').data('player-id'); if($(field).parents('.iron-audioplayer').length){ if( $(field).parents('.elementor-widget-music-player').length && typeof $(field).parents('.elementor-widget-music-player').attr('id') != 'undefined'){ //if mp3 player has id from elementor playerId = ( $(field).parents('.elementor-widget-music-player').attr('id') ) }else if( ! $(field).parents('.iron_widget_radio').attr('id').startsWith('arbitrary-instance-') ){ //if mp3 player has id from shortcode parameter playerId = $(field).parents('.iron_widget_radio').attr('id'); }else{ playerId = $(field).parents('.iron-audioplayer').attr('id'); } $(field).parents('.srp_search_container').attr('data-player-id', playerId); } if (e.keyCode === 13) { if($(field).parents('.srp_search_container').data('url')){ var url = $(field).parents('.srp_search_container').data('url') + "?srp_search=" + $(field).val(); if( playerId != undefined){ url = url+'&srp_player_id='+playerId; } $(location).prop('href', url) } $('.srp_search').blur(); e.preventDefault(); } let searchBox = '.srp_search_container:not([data-player-id]) .srp_reset_search'; if( playerId != undefined){ searchBox = '.srp_search_container[data-player-id="' + playerId + '"] .srp_reset_search'; } $(searchBox).css('display', 'initial'); if($(field).val() ==''){ $(field).parents('.srp_search_container').find('.srp_reset_search').css('display', 'none'); } const el = field; if( IRON.searchField.wait === false ){ IRON.searchField.wait = true; setTimeout(function(){ const playerNum = ( srp_convertPlayerIdToPlayerNum(playerId) !== null)? srp_convertPlayerIdToPlayerNum(playerId) : 0 ; if( playerNum == 0 && playerId != undefined && $('.srp_search_container:not([data-player-id]) .srp_search').length && ! $(el).parents('.iron-audioplayer').length ){ document.querySelector('.srp_search_container:not([data-player-id]) .srp_search').value = ''; } if(typeof IRON.players[playerNum] != 'undefined'){ if( typeof IRON.players[playerNum].audioPlayer.params == 'undefined'){ IRON.players[playerNum].audioPlayer.params = { playerId: playerId, search: $(el).val() }; }else{ IRON.players[playerNum].audioPlayer.params.playerId = playerId; IRON.players[playerNum].audioPlayer.params.search = $(el).val(); } srp_updateURLParameter( 'srp_page', 1 ); IRON.players[playerNum].audioPlayer.params['page'] = 1; srp_updateList(playerNum); } IRON.searchField.wait = false; }, 700); } }PK!JJ$public/js/sonaar-music-pro-public.jsnu[IRON = window.IRON || {}; (function( $ ) { 'use strict'; })( jQuery ); PK!Э(ZZpublic/js/list.min.jsnu[var List; List = function () { var t = { "./src/add-async.js": function (t) { t.exports = function (t) { return function e(r, n, s) { var i = r.splice(0, 50); s = (s = s || []).concat(t.add(i)), r.length > 0 ? setTimeout((function () { e(r, n, s) }), 1) : (t.update(), n(s)) } } }, "./src/filter.js": function (t) { t.exports = function (t) { return t.handlers.filterStart = t.handlers.filterStart || [], t.handlers.filterComplete = t.handlers.filterComplete || [], function (e) { if (t.trigger("filterStart"), t.i = 1, t.reset.filter(), void 0 === e) t.filtered = !1; else { t.filtered = !0; for (var r = t.items, n = 0, s = r.length; n < s; n++) { var i = r[n]; e(i) ? i.filtered = !0 : i.filtered = !1 } } return t.update(), t.trigger("filterComplete"), t.visibleItems } } }, "./src/fuzzy-search.js": function (t, e, r) { r("./src/utils/classes.js"); var n = r("./src/utils/events.js"), s = r("./src/utils/extend.js"), i = r("./src/utils/to-string.js"), a = r("./src/utils/get-by-class.js"), o = r("./src/utils/fuzzy.js"); t.exports = function (t, e) { e = s({ location: 0, distance: 100, threshold: .4, multiSearch: !0, searchClass: "fuzzy-search" }, e = e || {}); var r = { search: function (n, s) { for (var i = e.multiSearch ? n.replace(/ +$/, "").split(/ +/) : [n], a = 0, o = t.items.length; a < o; a++)r.item(t.items[a], s, i) }, item: function (t, e, n) { for (var s = !0, i = 0; i < n.length; i++) { for (var a = !1, o = 0, l = e.length; o < l; o++)r.values(t.values(), e[o], n[i]) && (a = !0); a || (s = !1) } t.found = s }, values: function (t, r, n) { if (t.hasOwnProperty(r)) { var s = i(t[r]).toLowerCase(); if (o(s, n, e)) return !0 } return !1 } }; return n.bind(a(t.listContainer, e.searchClass), "keyup", t.utils.events.debounce((function (e) { var n = e.target || e.srcElement; t.search(n.value, r.search) }), t.searchDelay)), function (e, n) { t.search(e, n, r.search) } } }, "./src/index.js": function (t, e, r) { var n = r("./node_modules/string-natural-compare/natural-compare.js"), s = r("./src/utils/get-by-class.js"), i = r("./src/utils/extend.js"), a = r("./src/utils/index-of.js"), o = r("./src/utils/events.js"), l = r("./src/utils/to-string.js"), u = r("./src/utils/classes.js"), c = r("./src/utils/get-attribute.js"), f = r("./src/utils/to-array.js"); t.exports = function (t, e, h) { var d, v = this, g = r("./src/item.js")(v), m = r("./src/add-async.js")(v), p = r("./src/pagination.js")(v); d = { start: function () { v.listClass = "list", v.searchClass = "search", v.sortClass = "sort", v.page = 1e4, v.i = 1, v.items = [], v.visibleItems = [], v.matchingItems = [], v.searched = !1, v.filtered = !1, v.searchColumns = void 0, v.searchDelay = 0, v.handlers = { updated: [] }, v.valueNames = [], v.utils = { getByClass: s, extend: i, indexOf: a, events: o, toString: l, naturalSort: n, classes: u, getAttribute: c, toArray: f }, v.utils.extend(v, e), v.listContainer = "string" == typeof t ? document.getElementById(t) : t, v.listContainer && (v.list = s(v.listContainer, v.listClass, !0), v.parse = r("./src/parse.js")(v), v.templater = r("./src/templater.js")(v), v.search = r("./src/search.js")(v), v.filter = r("./src/filter.js")(v), v.sort = r("./src/sort.js")(v), v.fuzzySearch = r("./src/fuzzy-search.js")(v, e.fuzzySearch), this.handlers(), this.items(), this.pagination(), v.update()) }, handlers: function () { for (var t in v.handlers) v[t] && v.handlers.hasOwnProperty(t) && v.on(t, v[t]) }, items: function () { v.parse(v.list), void 0 !== h && v.add(h) }, pagination: function () { if (void 0 !== e.pagination) { !0 === e.pagination && (e.pagination = [{}]), void 0 === e.pagination[0] && (e.pagination = [e.pagination]); for (var t = 0, r = e.pagination.length; t < r; t++)p(e.pagination[t]) } } }, this.reIndex = function () { v.items = [], v.visibleItems = [], v.matchingItems = [], v.searched = !1, v.filtered = !1, v.parse(v.list) }, this.toJSON = function () { for (var t = [], e = 0, r = v.items.length; e < r; e++)t.push(v.items[e].values()); return t }, this.add = function (t, e) { if (0 !== t.length) { if (!e) { var r = [], n = !1; void 0 === t[0] && (t = [t]); for (var s = 0, i = t.length; s < i; s++) { var a; n = v.items.length > v.page, a = new g(t[s], void 0, n), v.items.push(a), r.push(a) } return v.update(), r } m(t.slice(0), e) } }, this.show = function (t, e) { return this.i = t, this.page = e, v.update(), v }, this.remove = function (t, e, r) { for (var n = 0, s = 0, i = v.items.length; s < i; s++)v.items[s].values()[t] == e && (v.templater.remove(v.items[s], r), v.items.splice(s, 1), i--, s--, n++); return v.update(), n }, this.get = function (t, e) { for (var r = [], n = 0, s = v.items.length; n < s; n++) { var i = v.items[n]; i.values()[t] == e && r.push(i) } return r }, this.size = function () { return v.items.length }, this.clear = function () { return v.templater.clear(), v.items = [], v }, this.on = function (t, e) { return v.handlers[t].push(e), v }, this.off = function (t, e) { var r = v.handlers[t], n = a(r, e); return n > -1 && r.splice(n, 1), v }, this.trigger = function (t) { for (var e = v.handlers[t].length; e--;)v.handlers[t][e](v); return v }, this.reset = { filter: function () { for (var t = v.items, e = t.length; e--;)t[e].filtered = !1; return v }, search: function () { for (var t = v.items, e = t.length; e--;)t[e].found = !1; return v } }, this.update = function () { var t = v.items, e = t.length; v.visibleItems = [], v.matchingItems = [], v.templater.clear(); for (var r = 0; r < e; r++)t[r].matching() && v.matchingItems.length + 1 >= v.i && v.visibleItems.length < v.page ? (t[r].show(), v.visibleItems.push(t[r]), v.matchingItems.push(t[r])) : t[r].matching() ? (v.matchingItems.push(t[r]), t[r].hide()) : t[r].hide(); return v.trigger("updated"), v }, d.start() } }, "./src/item.js": function (t) { t.exports = function (t) { return function (e, r, n) { var s = this; this._values = {}, this.found = !1, this.filtered = !1; this.values = function (e, r) { if (void 0 === e) return s._values; for (var n in e) s._values[n] = e[n]; !0 !== r && t.templater.set(s, s.values()) }, this.show = function () { t.templater.show(s) }, this.hide = function () { t.templater.hide(s) }, this.matching = function () { return t.filtered && t.searched && s.found && s.filtered || t.filtered && !t.searched && s.filtered || !t.filtered && t.searched && s.found || !t.filtered && !t.searched }, this.visible = function () { return !(!s.elm || s.elm.parentNode != t.list) }, function (e, r, n) { if (void 0 === r) n ? s.values(e, n) : s.values(e); else { s.elm = r; var i = t.templater.get(s, e); s.values(i) } }(e, r, n) } } }, "./src/pagination.js": function (t, e, r) { var n = r("./src/utils/classes.js"), s = r("./src/utils/events.js"), i = r("./src/index.js"); t.exports = function (t) { var e = !1, r = function (r, s) { if (t.page < 1) return t.listContainer.style.display = "none", void (e = !0); e && (t.listContainer.style.display = "block"); var i, o = t.matchingItems.length, l = t.i, u = t.page, c = Math.ceil(o / u), f = Math.ceil(l / u), h = s.innerWindow || 2, d = s.left || s.outerWindow || 0, v = s.right || s.outerWindow || 0; v = c - v, r.clear(); for (var g = 1; g <= c; g++) { var m = f === g ? "active" : ""; a.number(g, d, v, f, h) ? (i = r.add({ page: g, dotted: !1 })[0], m && n(i.elm).add(m), i.elm.firstChild.setAttribute("data-i", g), i.elm.firstChild.setAttribute("data-page", u)) : a.dotted(r, g, d, v, f, h, r.size()) && (i = r.add({ page: "...", dotted: !0 })[0], n(i.elm).add("disabled")) } }, a = { number: function (t, e, r, n, s) { return this.left(t, e) || this.right(t, r) || this.innerWindow(t, n, s) }, left: function (t, e) { return t <= e }, right: function (t, e) { return t > e }, innerWindow: function (t, e, r) { return t >= e - r && t <= e + r }, dotted: function (t, e, r, n, s, i, a) { return this.dottedLeft(t, e, r, n, s, i) || this.dottedRight(t, e, r, n, s, i, a) }, dottedLeft: function (t, e, r, n, s, i) { return e == r + 1 && !this.innerWindow(e, s, i) && !this.right(e, n) }, dottedRight: function (t, e, r, n, s, i, a) { return !t.items[a - 1].values().dotted && (e == n && !this.innerWindow(e, s, i) && !this.right(e, n)) } }; return function (e) { var n = new i(t.listContainer.id, { listClass: e.paginationClass || "pagination", item: e.item || "
      • ", valueNames: ["page", "dotted"], searchClass: "pagination-search-that-is-not-supposed-to-exist", sortClass: "pagination-sort-that-is-not-supposed-to-exist" }); s.bind(n.listContainer, "click", (function (e) { var r = e.target || e.srcElement, n = t.utils.getAttribute(r, "data-page"), s = t.utils.getAttribute(r, "data-i"); s && t.show((s - 1) * n + 1, n) })), t.on("updated", (function () { r(n, e) })), r(n, e) } } }, "./src/parse.js": function (t, e, r) { t.exports = function (t) { var e = r("./src/item.js")(t), n = function (r, n) { for (var s = 0, i = r.length; s < i; s++)t.items.push(new e(n, r[s])) }, s = function e(r, s) { var i = r.splice(0, 50); n(i, s), r.length > 0 ? setTimeout((function () { e(r, s) }), 1) : (t.update(), t.trigger("parseComplete")) }; return t.handlers.parseComplete = t.handlers.parseComplete || [], function () { var e = function (t) { for (var e = t.childNodes, r = [], n = 0, s = e.length; n < s; n++)void 0 === e[n].data && r.push(e[n]); return r }(t.list), r = t.valueNames; t.indexAsync ? s(e, r) : n(e, r) } } }, "./src/search.js": function (t) { t.exports = function (t) { var e, r, n, s = { resetList: function () { t.i = 1, t.templater.clear(), n = void 0 }, setOptions: function (t) { 2 == t.length && t[1] instanceof Array ? e = t[1] : 2 == t.length && "function" == typeof t[1] ? (e = void 0, n = t[1]) : 3 == t.length ? (e = t[1], n = t[2]) : e = void 0 }, setColumns: function () { 0 !== t.items.length && void 0 === e && (e = void 0 === t.searchColumns ? s.toArray(t.items[0].values()) : t.searchColumns) }, setSearchString: function (e) { e = (e = t.utils.toString(e).toLowerCase()).replace(/[-[\]{}()*+?.,\\^$|#]/g, "\\$&"), r = e }, toArray: function (t) { var e = []; for (var r in t) e.push(r); return e } }, i = function () { for (var n, s = [], i = r; null !== (n = i.match(/"([^"]+)"/));)s.push(n[1]), i = i.substring(0, n.index) + i.substring(n.index + n[0].length); (i = i.trim()).length && (s = s.concat(i.split(/\s+/))); for (var a = 0, o = t.items.length; a < o; a++) { var l = t.items[a]; if (l.found = !1, s.length) { for (var u = 0, c = s.length; u < c; u++) { for (var f = !1, h = 0, d = e.length; h < d; h++) { var v = l.values(), g = e[h]; if (v.hasOwnProperty(g) && void 0 !== v[g] && null !== v[g]) if (-1 !== ("string" != typeof v[g] ? v[g].toString() : v[g]).toLowerCase().indexOf(s[u])) { f = !0; break } } if (!f) break } l.found = f } } }, a = function () { t.reset.search(), t.searched = !1 }, o = function (o) { return t.trigger("searchStart"), s.resetList(), s.setSearchString(o), s.setOptions(arguments), s.setColumns(), "" === r ? a() : (t.searched = !0, n ? n(r, e) : i()), t.update(), t.trigger("searchComplete"), t.visibleItems }; return t.handlers.searchStart = t.handlers.searchStart || [], t.handlers.searchComplete = t.handlers.searchComplete || [], t.utils.events.bind(t.utils.getByClass(t.listContainer, t.searchClass), "keyup", t.utils.events.debounce((function (e) { var r = e.target || e.srcElement; "" === r.value && !t.searched || o(r.value) }), t.searchDelay)), t.utils.events.bind(t.utils.getByClass(t.listContainer, t.searchClass), "input", (function (t) { "" === (t.target || t.srcElement).value && o("") })), o } }, "./src/sort.js": function (t) { t.exports = function (t) { var e = { els: void 0, clear: function () { for (var r = 0, n = e.els.length; r < n; r++)t.utils.classes(e.els[r]).remove("asc"), t.utils.classes(e.els[r]).remove("desc") }, getOrder: function (e) { var r = t.utils.getAttribute(e, "data-order"); return "asc" == r || "desc" == r ? r : t.utils.classes(e).has("desc") ? "asc" : t.utils.classes(e).has("asc") ? "desc" : "asc" }, getInSensitive: function (e, r) { var n = t.utils.getAttribute(e, "data-insensitive"); r.insensitive = "false" !== n }, setOrder: function (r) { for (var n = 0, s = e.els.length; n < s; n++) { var i = e.els[n]; if (t.utils.getAttribute(i, "data-sort") === r.valueName) { var a = t.utils.getAttribute(i, "data-order"); "asc" == a || "desc" == a ? a == r.order && t.utils.classes(i).add(r.order) : t.utils.classes(i).add(r.order) } } } }, r = function () { t.trigger("sortStart"); var r = {}, n = arguments[0].currentTarget || arguments[0].srcElement || void 0; n ? (r.valueName = t.utils.getAttribute(n, "data-sort"), e.getInSensitive(n, r), r.order = e.getOrder(n)) : ((r = arguments[1] || r).valueName = arguments[0], r.order = r.order || "asc", r.insensitive = void 0 === r.insensitive || r.insensitive), e.clear(), e.setOrder(r); var s, i = r.sortFunction || t.sortFunction || null, a = "desc" === r.order ? -1 : 1; s = i ? function (t, e) { return i(t, e, r) * a } : function (e, n) { var s = t.utils.naturalSort; return s.alphabet = t.alphabet || r.alphabet || void 0, !s.alphabet && r.insensitive && (s = t.utils.naturalSort.caseInsensitive), s(e.values()[r.valueName], n.values()[r.valueName]) * a }, t.items.sort(s), t.update(), t.trigger("sortComplete") }; return t.handlers.sortStart = t.handlers.sortStart || [], t.handlers.sortComplete = t.handlers.sortComplete || [], e.els = t.utils.getByClass(t.listContainer, t.sortClass), t.utils.events.bind(e.els, "click", r), t.on("searchStart", e.clear), t.on("filterStart", e.clear), r } }, "./src/templater.js": function (t) { var e = function (t) { var e, r = this, n = function (e, r) { var n = e.cloneNode(!0); n.removeAttribute("id"); for (var s = 0, i = r.length; s < i; s++) { var a = void 0, o = r[s]; if (o.data) for (var l = 0, u = o.data.length; l < u; l++)n.setAttribute("data-" + o.data[l], ""); else o.attr && o.name ? (a = t.utils.getByClass(n, o.name, !0)) && a.setAttribute(o.attr, "") : (a = t.utils.getByClass(n, o, !0)) && (a.innerHTML = "") } return n }, s = function () { for (var e = t.list.childNodes, r = 0, n = e.length; r < n; r++)if (void 0 === e[r].data) return e[r].cloneNode(!0) }, i = function (t) { if ("string" == typeof t) { if (/]/g.exec(t)) { var e = document.createElement("tbody"); return e.innerHTML = t, e.firstElementChild } if (-1 !== t.indexOf("<")) { var r = document.createElement("div"); return r.innerHTML = t, r.firstElementChild } } }, a = function (e, r, n) { var s = void 0, i = function (e) { for (var r = 0, n = t.valueNames.length; r < n; r++) { var s = t.valueNames[r]; if (s.data) { for (var i = s.data, a = 0, o = i.length; a < o; a++)if (i[a] === e) return { data: e } } else { if (s.attr && s.name && s.name == e) return s; if (s === e) return e } } }(r); i && (i.data ? e.elm.setAttribute("data-" + i.data, n) : i.attr && i.name ? (s = t.utils.getByClass(e.elm, i.name, !0)) && s.setAttribute(i.attr, n) : (s = t.utils.getByClass(e.elm, i, !0)) && (s.innerHTML = n)) }; this.get = function (e, n) { r.create(e); for (var s = {}, i = 0, a = n.length; i < a; i++) { var o = void 0, l = n[i]; if (l.data) for (var u = 0, c = l.data.length; u < c; u++)s[l.data[u]] = t.utils.getAttribute(e.elm, "data-" + l.data[u]); else l.attr && l.name ? (o = t.utils.getByClass(e.elm, l.name, !0), s[l.name] = o ? t.utils.getAttribute(o, l.attr) : "") : (o = t.utils.getByClass(e.elm, l, !0), s[l] = o ? o.innerHTML : "") } return s }, this.set = function (t, e) { if (!r.create(t)) for (var n in e) e.hasOwnProperty(n) && a(t, n, e[n]) }, this.create = function (t) { return void 0 === t.elm && (t.elm = e(t.values()), r.set(t, t.values()), !0) }, this.remove = function (e) { e.elm.parentNode === t.list && t.list.removeChild(e.elm) }, this.show = function (e) { r.create(e), t.list.appendChild(e.elm) }, this.hide = function (e) { void 0 !== e.elm && e.elm.parentNode === t.list && t.list.removeChild(e.elm) }, this.clear = function () { if (t.list.hasChildNodes()) for (; t.list.childNodes.length >= 1;)t.list.removeChild(t.list.firstChild) }, function () { var r; if ("function" != typeof t.item) { if (!(r = "string" == typeof t.item ? -1 === t.item.indexOf("<") ? document.getElementById(t.item) : i(t.item) : s())) throw new Error("The list needs to have at least one item on init otherwise you'll have to add a template."); r = n(r, t.valueNames), e = function () { return r.cloneNode(!0) } } else e = function (e) { var r = t.item(e); return i(r) } }() }; t.exports = function (t) { return new e(t) } }, "./src/utils/classes.js": function (t, e, r) { var n = r("./src/utils/index-of.js"), s = /\s+/; Object.prototype.toString; function i(t) { if (!t || !t.nodeType) throw new Error("A DOM element reference is required"); this.el = t, this.list = t.classList } t.exports = function (t) { return new i(t) }, i.prototype.add = function (t) { if (this.list) return this.list.add(t), this; var e = this.array(); return ~n(e, t) || e.push(t), this.el.className = e.join(" "), this }, i.prototype.remove = function (t) { if (this.list) return this.list.remove(t), this; var e = this.array(), r = n(e, t); return ~r && e.splice(r, 1), this.el.className = e.join(" "), this }, i.prototype.toggle = function (t, e) { return this.list ? (void 0 !== e ? e !== this.list.toggle(t, e) && this.list.toggle(t) : this.list.toggle(t), this) : (void 0 !== e ? e ? this.add(t) : this.remove(t) : this.has(t) ? this.remove(t) : this.add(t), this) }, i.prototype.array = function () { var t = (this.el.getAttribute("class") || "").replace(/^\s+|\s+$/g, "").split(s); return "" === t[0] && t.shift(), t }, i.prototype.has = i.prototype.contains = function (t) { return this.list ? this.list.contains(t) : !!~n(this.array(), t) } }, "./src/utils/events.js": function (t, e, r) { var n = window.addEventListener ? "addEventListener" : "attachEvent", s = window.removeEventListener ? "removeEventListener" : "detachEvent", i = "addEventListener" !== n ? "on" : "", a = r("./src/utils/to-array.js"); e.bind = function (t, e, r, s) { for (var o = 0, l = (t = a(t)).length; o < l; o++)t[o][n](i + e, r, s || !1) }, e.unbind = function (t, e, r, n) { for (var o = 0, l = (t = a(t)).length; o < l; o++)t[o][s](i + e, r, n || !1) }, e.debounce = function (t, e, r) { var n; return e ? function () { var s = this, i = arguments, a = function () { n = null, r || t.apply(s, i) }, o = r && !n; clearTimeout(n), n = setTimeout(a, e), o && t.apply(s, i) } : t } }, "./src/utils/extend.js": function (t) { t.exports = function (t) { for (var e, r = Array.prototype.slice.call(arguments, 1), n = 0; e = r[n]; n++)if (e) for (var s in e) t[s] = e[s]; return t } }, "./src/utils/fuzzy.js": function (t) { t.exports = function (t, e, r) { var n = r.location || 0, s = r.distance || 100, i = r.threshold || .4; if (e === t) return !0; if (e.length > 32) return !1; var a = n, o = function () { var t, r = {}; for (t = 0; t < e.length; t++)r[e.charAt(t)] = 0; for (t = 0; t < e.length; t++)r[e.charAt(t)] |= 1 << e.length - t - 1; return r }(); function l(t, r) { var n = t / e.length, i = Math.abs(a - r); return s ? n + i / s : i ? 1 : n } var u = i, c = t.indexOf(e, a); -1 != c && (u = Math.min(l(0, c), u), -1 != (c = t.lastIndexOf(e, a + e.length)) && (u = Math.min(l(0, c), u))); var f, h, d = 1 << e.length - 1; c = -1; for (var v, g = e.length + t.length, m = 0; m < e.length; m++) { for (f = 0, h = g; f < h;)l(m, a + h) <= u ? f = h : g = h, h = Math.floor((g - f) / 2 + f); g = h; var p = Math.max(1, a - h + 1), y = Math.min(a + h, t.length) + e.length, C = Array(y + 2); C[y + 1] = (1 << m) - 1; for (var b = y; b >= p; b--) { var j = o[t.charAt(b - 1)]; if (C[b] = 0 === m ? (C[b + 1] << 1 | 1) & j : (C[b + 1] << 1 | 1) & j | (v[b + 1] | v[b]) << 1 | 1 | v[b + 1], C[b] & d) { var x = l(m, b - 1); if (x <= u) { if (u = x, !((c = b - 1) > a)) break; p = Math.max(1, 2 * a - c) } } } if (l(m + 1, a) > u) break; v = C } return !(c < 0) } }, "./src/utils/get-attribute.js": function (t) { t.exports = function (t, e) { var r = t.getAttribute && t.getAttribute(e) || null; if (!r) for (var n = t.attributes, s = n.length, i = 0; i < s; i++)void 0 !== n[i] && n[i].nodeName === e && (r = n[i].nodeValue); return r } }, "./src/utils/get-by-class.js": function (t) { t.exports = function (t, e, r, n) { return (n = n || {}).test && n.getElementsByClassName || !n.test && document.getElementsByClassName ? function (t, e, r) { return r ? t.getElementsByClassName(e)[0] : t.getElementsByClassName(e) }(t, e, r) : n.test && n.querySelector || !n.test && document.querySelector ? function (t, e, r) { return e = "." + e, r ? t.querySelector(e) : t.querySelectorAll(e) }(t, e, r) : function (t, e, r) { for (var n = [], s = t.getElementsByTagName("*"), i = s.length, a = new RegExp("(^|\\s)" + e + "(\\s|$)"), o = 0, l = 0; o < i; o++)if (a.test(s[o].className)) { if (r) return s[o]; n[l] = s[o], l++ } return n }(t, e, r) } }, "./src/utils/index-of.js": function (t) { var e = [].indexOf; t.exports = function (t, r) { if (e) return t.indexOf(r); for (var n = 0, s = t.length; n < s; ++n)if (t[n] === r) return n; return -1 } }, "./src/utils/to-array.js": function (t) { t.exports = function (t) { if (void 0 === t) return []; if (null === t) return [null]; if (t === window) return [window]; if ("string" == typeof t) return [t]; if (function (t) { return "[object Array]" === Object.prototype.toString.call(t) }(t)) return t; if ("number" != typeof t.length) return [t]; if ("function" == typeof t && t instanceof Function) return [t]; for (var e = [], r = 0, n = t.length; r < n; r++)(Object.prototype.hasOwnProperty.call(t, r) || r in t) && e.push(t[r]); return e.length ? e : [] } }, "./src/utils/to-string.js": function (t) { t.exports = function (t) { return t = (t = null === (t = void 0 === t ? "" : t) ? "" : t).toString() } }, "./node_modules/string-natural-compare/natural-compare.js": function (t) { "use strict"; var e, r, n = 0; function s(t) { return t >= 48 && t <= 57 } function i(t, e) { for (var i = (t += "").length, a = (e += "").length, o = 0, l = 0; o < i && l < a;) { var u = t.charCodeAt(o), c = e.charCodeAt(l); if (s(u)) { if (!s(c)) return u - c; for (var f = o, h = l; 48 === u && ++f < i;)u = t.charCodeAt(f); for (; 48 === c && ++h < a;)c = e.charCodeAt(h); for (var d = f, v = h; d < i && s(t.charCodeAt(d));)++d; for (; v < a && s(e.charCodeAt(v));)++v; var g = d - f - v + h; if (g) return g; for (; f < d;)if (g = t.charCodeAt(f++) - e.charCodeAt(h++)) return g; o = d, l = v } else { if (u !== c) return u < n && c < n && -1 !== r[u] && -1 !== r[c] ? r[u] - r[c] : u - c; ++o, ++l } } return o >= i && l < a && i >= a ? -1 : l >= a && o < i && a >= i ? 1 : i - a } i.caseInsensitive = i.i = function (t, e) { return i(("" + t).toLowerCase(), ("" + e).toLowerCase()) }, Object.defineProperties(i, { alphabet: { get: function () { return e }, set: function (t) { r = []; var s = 0; if (e = t) for (; s < e.length; s++)r[e.charCodeAt(s)] = s; for (n = r.length, s = 0; s < n; s++)void 0 === r[s] && (r[s] = -1) } } }), t.exports = i } }, e = {}; return function r(n) { if (e[n]) return e[n].exports; var s = e[n] = { exports: {} }; return t[n](s, s.exports, r), s.exports }("./src/index.js") }();PK!/aZpublic/js/sonaarPlayer.jsnu[;;;$ = jQuery; IRON.data = { list: { playlist_name: false, tracks: false, type: false, random_order: "", }, currentTrack: 0, continuous: false, //if the player has been loaded from cookies. favoriteTackList: false, playlistID: "", showList: false, isPlaying: false, audioplayerPlaying: null, //Which Audioplayer instance is playing. loading: 0, minimize: true, extendedPlayerOpened: false, extendedPlayerOverlayOpened: false, audioCtx: false, audioElement: false, audioSrc: false, analyser: false, frequencyData: false, userPref: { pause: false, minimize: false, autoplay: true, }, storeButtonCount: 0, unlock: false, playerStatus: "", currentTime: "", totalTime: "", shuffle: false, mute: false, volume: null, elWidgetId: false, //Only has value when the playlist is built with the elementor widget postId: false, //Used by the continous player when the playlist is generated by a elementor widget isSmallDevice:( $('body').width() > 768 )? false: true, classes: { enable: false, waveEnable: false, continuousPlayer: Boolean(sonaar_music.option.enable_continuous_player === "true"), show_nextprevious_bt: (sonaar_music.option.sticky_show_nextprevious_bt != "false") ? true : false, show_album_title: (sonaar_music.option.sticky_show_album_title != "false") ? true : false, show_speed_bt: Boolean(sonaar_music.option.sticky_show_speed_bt === "true"), show_skip_bt: Boolean(sonaar_music.option.sticky_show_skip_bt === "true"), show_tracklist_bt: (sonaar_music.option.sticky_show_tracklist_bt != "false") ? true : false, show_shuffle_bt: (sonaar_music.option.sticky_show_shuffle_bt != "false") ? true : false, display_description: (sonaar_music.option.sticky_show_description != "false") ? true : false, template: sonaar_music.option.sticky_preset, floatpos: sonaar_music.option.float_pos, show_controls_hover: sonaar_music.option.show_controls_hover, isPlaying: false, author: srp_vars.sonaar_music.continuous_artist_name, feedUrl: false, noLoopTracklist: (srp_vars.sonaar_music.no_loop_tracklist == 'on') ? 'on' : false, notrackskip: (srp_vars.sonaar_music.no_track_skip == 'on') ? 'on' : false, continued: false, //Player settings come from the cookie (continuous player) dontCountContinuous: false, //For statistic. Dont count stats from the continuous player emptyPlayer: true, skipForward: 30, skipBackward: 15, speedRate: 1, wc_ajax_add_to_cart: (sonaar_music.option.wc_enable_ajax_addtocart == 'true') ? true : false, wc_variation_lb: (sonaar_music.option.wc_variation_lb != 'false') ? true : false, }, selectedPlayer: null, cookieSetting: { mute: false, volume: 1, isPlaying: false, currentTime: 0, json: false, //Required for the continuous player with Post Related or "audio_meta_field" shorcode attribute as source }, }; var srp_seekTime = false; Vue.component('control', { props: ["player"], template: `
        {{player.classes.speedRate}}X
        ` }) Vue.component('waveform', { props: ["player"], template: `
        {{ player.currentTime }}
        {{ player.totalTime }}
        `, mounted () { IRON.audioPlayer.fakeWaveClick('sticky'); } }) Vue.component('sonaar-extend-button', { props: ["player"], template: `
        ` }); Vue.component('store', { props: ["player"], template: `
        ` }); Vue.component('cta', { props: ["player","storeid","label"], computed: { store () { var index; if( typeof this.storeid == 'number'){ index= this.storeid; }else{ var storeId = this.storeid; index = IRON.sonaar.player.albumStoreList.findIndex(function(element) { var storeIdKey = (typeof element['cta-class'] !== "undefined")?'cta-class':'store-icon'; //Some CTA can be identify by using the "cta-class" key and other "store-icon" return element[storeIdKey] === storeId; }); } return IRON.sonaar.player.albumStoreList[index]; }, }, template: ` {{ (label)?store['store-name']:'' }} ` }); IRON.sonaar = { player: new Vue({ el: "#sonaar-player", data: IRON.data, methods: { play: function () { this.userPref.autoplay = true; if (this.isPlaying) { document.getElementById("sonaar-audio").pause(); // -- Audio MediaElement } else { this.playAudio(); } }, playAudio: function () { var promise = document.getElementById("sonaar-audio").play(); if (promise !== undefined) { promise .then((_) => { //console.log('play started! yeah'); // Autoplay started! }) .catch((error) => { console.log("Warning = " + error); // Autoplay was prevented. // Show a "Play" button so that user can start playback. }); } if(typeof sonaar_music.option.sticky_spectro_style !== "undefined" && sonaar_music.option.sticky_spectro_style != "none"){ startAudioSpectrum( '#sonaar-player' ) } }, previous: function () { if (this.shuffle) { var i; for (i = 0; i < this.list.random_order.length; i++) { if (this.list.random_order[i] == this.currentTrack) { if (i == 0) { this.currentTrack = this.list.random_order[this.list.random_order.length - 1]; } else { this.currentTrack = this.list.random_order[i - 1]; } break; } } } else { if (this.currentTrack - 1 < 0) return (this.currentTrack = this.list.tracks.length - 1); this.currentTrack--; } }, next: function () { if (this.playerStatus == "next") return; if (this.shuffle) { var i; for (i = 0; i < this.list.random_order.length; i++) { if (this.list.random_order[i] == this.currentTrack) { if (i == this.list.random_order.length - 1) { if (this.classes.noLoopTracklist == "on"){ return; } this.currentTrack = this.list.random_order[0]; } else { this.currentTrack = this.list.random_order[i + 1]; } break; } } } else { if (this.list.tracks.length == 1) { //handleTrackChange() run automaticly when the currentTrack value change. When the playlist has only one track, the currenttrack value never change so we have to trig it here. if (this.classes.noLoopTracklist == "on") return; //Do nothing if the "No loop tracklist" is enable" this.handleTrackChange(); return; } if (this.currentTrack + 1 >= this.list.tracks.length) { //At the end of the playlist if (this.classes.noLoopTracklist == "on") return; //Do nothing if the "No loop tracklist" is enable" return (this.currentTrack = 0); } this.currentTrack++; } }, skipBackward: function () { sr_audioSkipTo(-1 * this.classes.skipBackward); }, skipForward: function () { sr_audioSkipTo(this.classes.skipForward); }, start: function () { //Created for custom JS | not used by the plugin code document.getElementById("sonaar-audio").play(); }, pause: function () { //Created for custom JS | not used by the plugin code document.getElementById("sonaar-audio").pause(); }, toggleStartPause: function () { //Created for custom JS | not used by the plugin code IRON.sonaar.player.play(); }, setPlaylist: function (audioPlayer, eq, time = 0) { if ($(audioPlayer).attr("trackselected") == eq || ($(audioPlayer).attr("trackselected") == null && eq == 0)) { $(audioPlayer).attr("duplicating_wave", true); } $(audioPlayer).attr("trackselected", eq); var params = audioPlayer.data("url-playlist").slice(audioPlayer.data("url-playlist").indexOf("title")).split("&"); let newParams = []; params.forEach(function (el) { let paramName; let paramValue; [paramName, paramValue] = el.split('=') newParams[paramName] = paramValue; }); if (newParams.feed.length || newParams.audio_meta_field.length) { var id = $(audioPlayer).attr("id"); //Use the elementor widget ID as the player ID. This param is only available the FEED option. } else { var id = newParams.albums; } this.setPlayer({ id: id, category: newParams.category || '', title: newParams.title, trackid: eq, shuffle: audioPlayer.data("shuffle"), audioPlayer: audioPlayer, time: time }); }, preventContinuousUrl: function () { var preventURL = false; if (typeof sonaar_music.option.sr_prevent_continuous_url !== "undefined") { if (sonaar_music.option.sr_prevent_continuous_url.includes(sonaar_music.postID)) { preventURL = true; } } return preventURL; }, setPlayerAndPlay: function (args) { if (IRON.sonaar.player.playlistID != args.id || this.currentTrack != args.trackid) { IRON.audioPlayer.stickyEnable = true; this.setPlayer(args); this.playAudio(); } else { if (!this.isPlaying) { this.playAudio(); } if (args.time) { this.seekTime(convertTime(args.time)) } if (args.trackid && this.currentTrack != args.trackid) { this.currentTrack = args.trackid; } } if(args.nolooptracklist == "on"){ IRON.sonaar.player.classes.noLoopTracklist = "on"; } if(args.notrackskip == "on"){ IRON.sonaar.player.classes.notrackskip = "on"; } }, getPlaylistbyID: function (id, category, title, elwidget, jsonFromCookie = false) { var playlistID = id || false; var title = title || ""; var elwidget = elwidget ? elwidget + "&feed=1" : null; if (this.selectedPlayer === null && playlistID) { if (jsonFromCookie) { return jsonFromCookie; } else { return srp_vars.site_url + "?load=playlist.json&title=" + title + "&albums=" + playlistID + "&category=" + category + "&el_widget_id=" + elwidget + "&posts_per_pages=-1"; } } else { json_url = this.selectedPlayer.attr("data-url-playlist"); return json_url; } }, seekTime: function (time) { if (time) { if (document.getElementById("sonaar-audio").duration !== Infinity) { document.getElementById("sonaar-audio").currentTime = convertTime(time); } srp_seekTime = false; } }, setPlayer: function (args) { var newTracklistIsFavoriteList = (typeof args.audioPlayer != 'undefined' && args.audioPlayer.hasClass('srp_player_is_favorite'))? true : false; IRON.audioPlayer.stickyEnable = true; sanitized_id = args.id sanitized_id = sanitized_id.toString(); sanitized_id = sanitized_id.split(" ").join(""); // prevent blank space args.id = sanitized_id.replace(/latest/i, srp_vars.sonaar_music.mostRecentId); // if latest string is used, replace it by the most recent id if(typeof sonaar_music.option.sticky_spectro_style !== "undefined" && sonaar_music.option.sticky_spectro_style != "none" && $('#sonaar-audio').length){ // if sticky spectro is enabled document.getElementById("sonaar-audio").crossOrigin = "anonymous"; } this.classes.emptyPlayer = false; var args = args || {}; var params = { id: args.id, category: args.category || '', title: args.title || null, trackid: args.trackid || 0, autoplay: typeof args.autoplay == "boolean" ? args.autoplay : true, el_widget_id: args.elwidgetid || false, jsonFromCookie: args.json || false // Used to conserved postrelated playlist from single post }; params.id = (params.id == '' && params.category != '') ? srp_vars.sonaar_music.currentPostId : params.id; srp_seekTime = args.time || false; this.selectedPlayer = args.audioPlayer || null; if( this.continuous ){ this.playlistID = false; } if(typeof args.continuous != 'undefined' && args.continuous){ this.continuous = true; }else{ this.continuous = false; } this.elWidgetId = params.el_widget_id; this.shuffle = args.shuffle == true || args.shuffle == "true" || args.shuffle == "1" || (this.selectedPlayer && this.selectedPlayer.attr('data-shuffle') == 'true') ? true : false; var samePlaylist = false; if(this.selectedPlayer && this.selectedPlayer.hasClass('sr_selectedPlayer')){ //If the player is already selected samePlaylist = true; }else{ $(".sr_selectedPlayer").removeClass("sr_selectedPlayer"); $(this.selectedPlayer).addClass("sr_selectedPlayer"); } if (!this.classes.wavesurferEnable) { IRON.audioPlayer.fakeWaveClick("sticky"); } this.userPref.autoplay = params.autoplay; //const samePlaylist = (params.id && params.id === this.playlistID && this.favoriteTackList == newTracklistIsFavoriteList)? true : false; if (samePlaylist && params.trackid == this.currentTrack) { //If the track is already the current track. this.seekTime(srp_seekTime); return this.play(); } if ( samePlaylist && params.trackid !== this.currentTrack ) { this.currentTrack = params.trackid; } //Load tracklist from th Json file only if the playlist ID has changed or if the playlist is a favorite playlist. if ( !samePlaylist || newTracklistIsFavoriteList !== this.favoriteTackList || params.category !== this.categoryID ) { const endingTrack = this.currentTrack; $.when($.getJSON(this.getPlaylistbyID(params.id, params.category, params.title, params.el_widget_id, params.jsonFromCookie))).done( function (data) { if(data.length == 0){ return; } //If the playlist is empty if (!$("body").hasClass("artistPlayer-enable")) { this.classes.enable = true; if (!IRON.sonaar.player.classes.continued) { this.minimize = false; } this.animatePlayer(); $("body").addClass("continuousPlayer-enable"); } this.list = data; if (IRON.players.length && this.selectedPlayer && this.selectedPlayer.hasClass('srp_reordered')) { for (var playerIndex = 0; playerIndex < IRON.players.length && IRON.players[playerIndex].audioPlayer.attr('id') != $(this.selectedPlayer).attr('id'); playerIndex++) { }; //Set playerIndex this.reOrderTacklist(playerIndex) } if (this.shuffle) { this.setRandomList(); if (typeof args.trackid == "undefined") { params.trackid = Math.floor(Math.random() * this.list.tracks.length); } } this.playlistID = params.id; this.categoryID = params.category; if(typeof sonaar_music.option.general_volume != 'undefined' && this.volume == null){ sr_setVolume(sonaar_music.option.general_volume/100); } if (this.list.type == "podcast") { for (var i = 0; i < this.list.tracks.length; i++) { var element = this.list.tracks[i]; if (element.id == params.id) { this.currentTrack = i; } } } else { this.currentTrack = params.trackid; } if (this.currentTrack == 0 || //If the currentTrack still has the default value, execute handleTrackChange. endingTrack == this.currentTrack //HandletrackChange function is automatically triggered when the currentTrack value is changed. Here we execute it if the currentTrack value is the same but the playlist ID has been changed. ) { this.handleTrackChange(); } }.bind(this) ); this.favoriteTackList = newTracklistIsFavoriteList; } if (this.selectedPlayer != null) { this.classes.feedUrl = this.selectedPlayer.data("feedurl"); this.classes.noLoopTracklist = this.selectedPlayer.data("no-loop-tracklist"); this.classes.notrackskip = this.selectedPlayer.data("notrackskip"); this.cookieSetting.json = this.selectedPlayer.attr('data-url-playlist'); } this.postId = srp_vars.sonaar_music.currentPostId; IRON.sonaar.player.selectedTimeStamp = null; if (typeof args.ts_id != 'undefined') { //set selected time stamp shortcode IRON.sonaar.player.selectedTimeStamp = $('#sonaar_ts-' + args.ts_id); } else { let selector = '.srmp3_sonaar_ts_shortcode'; if (this.selectedPlayer != null && typeof this.selectedPlayer.data('ts-sync') != 'undefined') { IRON.sonaar.player.selectedTimeStamp = $('#sonaar_ts-' + this.selectedPlayer.data('ts-sync')); selector += ':not(#sonaar_ts-' + this.selectedPlayer.data('ts-sync') + ')'; } $(selector).removeClass('sr_selected audio-playing'); } IRON.setWindowHeightVar(); if($('#srmp3_settings_shortcodebuilder').length && $('#adminmenuback').length){ //If we are in the shortcode builder, resize the player to fit the screen $('#sonaar-player').css('width', 'calc(100% - ' + $('#adminmenuback').width() + 'px)'); $('#sonaar-player').css('right', 0); } }, setAudio: function () { //Set to "audioplayerPlaying" which audioplayer is playing. ( 0 for the first audioplayer) var audioplayerPlayingID = null; $.each(IRON.players, function (index) { if ($(IRON.players[index].audioPlayer).hasClass("sr_selectedPlayer")) { audioplayerPlayingID = index; } }); this.audioplayerPlaying = audioplayerPlayingID; this.setPlayerType(); //---------------------------------------------------------------------- if (this.list.tracks[this.currentTrack].mp3 === null || this.list.tracks[this.currentTrack].mp3 === "") { // feed url is used in the shortcode instead of post id this.list.tracks[this.currentTrack].mp3 = $(".iron-audioplayer.sr_selectedPlayer .sr-playlist-item").attr("data-audiopath"); this.list.tracks[this.currentTrack].track_title = $(".iron-audioplayer.sr_selectedPlayer .sr-playlist-item").attr("data-tracktitle"); this.list.tracks[this.currentTrack].album_title = $(".iron-audioplayer.sr_selectedPlayer .sr-playlist-item").attr("data-albumtitle"); this.list.tracks[this.currentTrack].track_artist = $(".iron-audioplayer.sr_selectedPlayer .sr-playlist-item").attr("data-trackartist"); } if(IRON.sonaar.player.hasPlayed == false){ // Register the audio object a first time for iOS to continue to next track on lock mode. elementAudio.src = this.list.tracks[this.currentTrack].mp3; } $("#sonaar-player").attr("data-tracktitle", this.list.tracks[this.currentTrack].track_title); $("#sonaar-player").attr("data-albumtitle", this.list.tracks[this.currentTrack].album_title); $("#sonaar-player").attr("data-trackartist", this.list.tracks[this.currentTrack].track_artist); $("#sonaar-player").attr("data-audiopath", this.list.tracks[this.currentTrack].mp3); if (this.list.tracks[this.currentTrack].id != null) { $("#sonaar-player").attr("data-trackid", this.list.tracks[this.currentTrack].id); } currentTrackTitle = this.list.tracks[this.currentTrack].track_title; currentAlbumTitle = this.list.tracks[this.currentTrack].album_title; currentArtistName = this.list.tracks[this.currentTrack].track_artist; currentAlbumArt = this.list.tracks[this.currentTrack].poster; IRON.audioPlayer.setMediaSessionAPI(currentTrackTitle, currentAlbumTitle, currentArtistName, currentAlbumArt); sr_addTrackToPlaylist(this.list.tracks[this.currentTrack]); if (!IRON.sonaar.player.selectedPlayer || !IRON.sonaar.player.selectedPlayer.trackMemory) { //if player is not sync with a widget player set with the track memory $("#sonaar-player .sonaar_wave_cut, .sr_selectedPlayer .album-player .sonaar_wave_cut, .sr_selectedPlayer .current .sonaar_wave_cut, #sonaar-player .mobileProgressing").width(0); } var trackHasEnded = document.getElementById("sonaar-audio").ended; var isPlaying = !document.getElementById("sonaar-audio").paused; $("#sonaar-audio").attr("src", this.list.tracks[this.currentTrack].mp3); //Load Audio MediaElement to the Sticky player $("#sonaar-audio").attr("title", currentTrackTitle); //set title for analytics reports (eg: matomo) //document.getElementById("sonaar-audio").crossOrigin = "anonymous"; document.getElementById("sonaar-audio").load(); if ($(".sr_selectedPlayer").length || isPlaying || trackHasEnded) { // if the sticky player is sync with a widget player OR is already playing this.playAudio(); $("#sonaar-player .play").addClass("audio-playing"); } this.classes.waveEnable = true; IRON.audioPlayer.checkArtWorkFullBg(this.selectedPlayer, false); if (IRON.players.length != 0 && this.selectedPlayer != null) { //If Widget Player is selected IRON.createFakeWave(this.selectedPlayer); } IRON.createFakeWave(false, true); $(document).trigger("sonaarStats", $("#sonaar-player")); if (IRON.players.length != 0 && this.classes.feedUrl && !this.elWidgetId && this.audioplayerPlaying != null) { //Set "elWidgetId" only when the playlist is built with the elementor widget this.elWidgetId = $(IRON.players[this.audioplayerPlaying].audioPlayer).parents(".elementor-widget-music-player").attr("data-id"); } if (this.classes.continuousPlayer) { sr_setCookieSettings(); } function ifHaveStoreContent() { //Check if the current player has store-content in the store list let value = false; $.each(IRON.sonaar.player.list.tracks, function () { if (typeof (this.song_store_list) != 'undefined') { $.each(this.song_store_list, function () { if (typeof (this['store-content']) != 'undefined') { value = true; } }); }; }); return value; } if (ifHaveStoreContent()) { //Load Modal reurired for store content popup sr_setPopUp(); } this.seekTime(srp_seekTime); IRON.audioPlayer.sr_loadLyricsAjax(this.list.tracks[this.currentTrack].sourcePostID, this.list.tracks[this.currentTrack].track_pos); document.getElementById("sonaar-audio").playbackRate = IRON.sonaar.player.classes.speedRate;//set SpeedRate //set time from memory if(typeof IRON.sonaar.player.selectedPlayer.find('.sr-playlist-item').eq(this.currentTrack).data('current-time') != 'undefined'){ sr_setTrackCurrentTime(IRON.sonaar.player.selectedPlayer.find('.sr-playlist-item').eq(this.currentTrack).data('current-time')); } }, clickPlayer: function () { if (!$('.control:hover').length) { this.openMobileControl(); } }, extendedScrolldown: function () { const extendedPlayer = document.querySelector(".srp_extendedPlayer_scrolling_box") if(extendedPlayer.scrollTop === 0){ extendedPlayer.scrollTo({ top: extendedPlayer.scrollTop + 200, behavior: "smooth" }); } }, clickTrackList: function (index) { if(this.currentTrack == index){ this.play(); }else{ this.currentTrack = index; this.playAudio(); } }, /*Close and Open the sticky mobile control Panel*/ /* the "cmd" parameter can be use if we only want to "open" or "close" the panel. By default it is toggling between each state.*/ openMobileControl: function (cmd = false) { if ( this.isSmallDevice ) { this.extendedPlayerOpened = true; $('body').addClass('srp_sticky_ext_opened'); } }, setshowList: function () { if (this.showList == false) { $("#pusher-wrap").addClass("sonaar-list-active"); return (this.showList = true); } $("#pusher-wrap").removeClass("sonaar-list-active"); return (this.showList = false); }, setPlayerType: function () { this.list.type = sonaar_music.option.player_type; //from plugin settings if (this.audioplayerPlaying != null) { this.list.type = IRON.players[this.audioplayerPlaying].audioPlayer.playerType; //from widget } if (srp_vars.sonaar_music.post_player_type != '' && srp_vars.sonaar_music.post_player_type != 'default') { this.list.type = srp_vars.sonaar_music.post_player_type //from playlist post settings selected in the page settings } }, closePlayer: function () { if (this.showList) { $("#pusher-wrap").removeClass("sonaar-list-active"); this.showList = false; } this.minimize = !this.minimize; this.classes.enable = !this.classes.enable; this.animatePlayer(); }, extendedPlayerClickOutside: function () { if($('.srp_extendedPlayer > *:hover').length == 0){ this.closeExtendedPlayer() } }, closeExtendedPlayer: function () { this.extendedPlayerOpened = false; $('body').removeClass('srp_sticky_ext_opened'); }, openExtendedPlayerOverlay: function () { this.extendedPlayerOverlayOpened = true; }, closeExtendedPlayerOverlay: function () { this.extendedPlayerOverlayOpened = false; }, getIndexFromStoreList: function (store, inputName, storeList) { const valueToSearch = store[inputName]; var index = -1; //Default for (var i = 0; i < storeList.length; i++) { if (storeList[i][inputName] === valueToSearch) { index = i; return index; } } return index; }, playlistAfterEnter: function () { var ps = new PerfectScrollbar("#sonaar-player .playlist .scroll", { wheelSpeed: 0.7, swipeEasing: true, wheelPropagation: false, minScrollbarLength: 20, suppressScrollX: true, }); /*$('#sonaar-player .playlist .scroll').perfectScrollbar({ 'suppressScrollX': true })*/ }, scroll: function (event) { var el = event.target; var parent = el.offsetParent; if (el.offsetWidth > parent.offsetWidth && !el.classList.contains("scrolling")) { el.classList.add("scrolling"); var transformWidth = el.offsetWidth + 10; el.insertAdjacentHTML("beforeend", '' + el.innerText + ""); el.style.transform = "translate( -" + transformWidth + "px )"; setTimeout(function () { el.classList.remove("scrolling"); el.style.transform = ""; el.removeChild(el.firstElementChild); }, 6000); } }, updatePlayers: function () { $(".iron-audioplayer").removeClass("audio-playing"); if (IRON.players.length != 0 && this.selectedPlayer != null) { //If Widget Player is selected this.selectedPlayer.find("li.current").removeClass("current"); if (this.isPlaying) { var currentTrackPlaying = this.currentTrack; //var currentTrackTitle; this.selectedPlayer.addClass("audio-playing"); this.selectedPlayer.find('.currentTime, .totalTime').show(); this.selectedPlayer.find(".sr-playlist-item").eq(currentTrackPlaying).addClass("current"); if (this.selectedPlayer.data('hide-artwork') != '1' && this.selectedPlayer.data('hide-artwork') != 'true' && typeof this.selectedPlayer.data('albumart') == 'undefined') { if (this.list.tracks[this.currentTrack].poster == '') { this.selectedPlayer.addClass('sonaar-no-artwork'); } else { this.selectedPlayer.removeClass('sonaar-no-artwork'); this.selectedPlayer.find('.album-art img').attr("src", this.selectedPlayer.find(".sr-playlist-item").eq(currentTrackPlaying).data('albumart') ); } srp_getColorsFromImage(this.selectedPlayer, this.selectedPlayer.find(".sr-playlist-item").eq(currentTrackPlaying).data('albumart')) } //currentTrackTitle = this.selectedPlayer.find(".sr-playlist-item").eq(this.currentTrack).attr("data-tracktitle"); IRON.audioPlayer.updateMiniPlayer(this.selectedPlayer, this.selectedPlayer.find(".sr-playlist-item").eq(this.currentTrack)); /* if (this.audioplayerPlaying != null) { $(IRON.players[this.audioplayerPlaying].audioPlayer).find(".track-title").html(currentTrackTitle); }*/ } } if (this.selectedTimeStamp != null) { //If Time Stamp shortcode is selected $('.srmp3_sonaar_ts_shortcode').removeClass('audio-playing'); if (this.isPlaying) { this.selectedTimeStamp.addClass('audio-playing'); } } startAudioSpectrum(this.selectedPlayer); }, scrollingProgressBar: function (event) { var progressedAudio = event.target.clientWidth / event.touches[0].clientX; document.getElementById("sonaar-audio").currentTime = document.getElementById("sonaar-audio").duration / progressedAudio; }, setSlideVolume: function () { sr_initSlider($(this.$el).find(".volume .slide")); }, showCTA: function () { if ($("#sonaar-player.enable .store").hasClass("opened")) { $("#sonaar-player.enable .store").removeClass("opened"); } else { $("#sonaar-player.enable .store").addClass("opened"); } }, setRandomList: function () { //If the player is selected set the currentTrack to the first track of the random list set firstTrackIndex to the currentTrack value. Otherwise set firstTrackIndex to null. firstTrackIndex = (typeof IRON.sonaar.player.selectedPlayer != 'undefined' && IRON.sonaar.player.selectedPlayer != null)? IRON.sonaar.player.selectedPlayer.data('currentTrack') : null; this.list.random_order = IRON.audioPlayer.setRandomList(this.list.tracks, firstTrackIndex); }, setIsPlaying: function (value) { this.isPlaying = value; if (this.classes.continuousPlayer) { sr_setCookieSettings(); } }, handleTrackChange: function () { //This function is automatically triggered when the currentTrack value is changed. //console.log('handleTrackChange', this.selectedPlayer.currentTrack, this.currentTrack); IRON.favorites.setStickyFavButtons(); IRON.swiper.update(IRON.sonaar.player.selectedPlayer, IRON.sonaar.player.currentTrack); IRON.getIceCastInfo(IRON.sonaar.player.selectedPlayer); this.isPlaying = false; this.classes.waveEnable = false; if (this.selectedPlayer) { this.selectedPlayer.currentTrack = this.currentTrack; } this.setAudio(); IRON.init_generatePeaks(); this.updatePlayers(); }, animatePlayer: function () { //animation when we click on the close button or when the player is loaded if (this.classes.continued) { if (this.minimize) { $("#sonaar-player").css("bottom", '-' + ($('#sonaar-player').height() + 6) + 'px'); }else{ $("#sonaar-player").css("bottom", "0"); } this.classes.continued = false; } else { if (this.minimize) { bottomPosition = '-' + ($('#sonaar-player').height() + 6) + 'px'; } else { bottomPosition = "0"; } // replace #sonaar-player sricon-down-arrow by sricon-up-arrow $("#sonaar-player").animate({ bottom: bottomPosition, }); } }, ctaClick: function (store, el) { var storeIndex; if (store['link-option'] == 'popup') { // Open Popup storeIndex = this.getIndexFromStoreList(store, 'store-content', this.list.tracks[this.currentTrack].song_store_list ); this.storePopUp(this.currentTrack, storeIndex, el) } else if (store['has-variation'] == true && this.classes.wc_variation_lb) { // Open variation Lighbox srp_wc_variation_popup(store['product-id'], el); } else if (this.classes.wc_ajax_add_to_cart && store['has-variation'] == false) { // Ajax add to cart srp_add_to_cart_loadspinner(el); } if(store['cta-class'] == 'srp-fav-bt'){ storeIndex = this.getIndexFromStoreList(store, 'cta-class', this.list.tracks[this.currentTrack].optional_storelist_cta ); IRON.favorites.clickStickyFavButton( storeIndex ); } }, ifDownloadAttribute: function (store) { if( store['store-icon'] === 'fas fa-download' && store['link-option'] !== 'popup' && (typeof store['store-link'] != 'undefined' && !store['store-link'].startsWith('#') || typeof store['store-link'] == 'undefined' ) && (typeof store['download-attr'] == 'undefined' || typeof store['download-attr'] != 'undefined' && store['download-attr']) //dont set the download attribute if "condition NOT met" and force download CTA redirection is enabled ){ return ''; }else{ return false; } }, storePopUp: function (trackNumber, storeNumber, el) { const playlistPostId = this.list.tracks[trackNumber].sourcePostID; let postTrackIndex = 0; let postTrackCount = 0; $.each(this.list.tracks, function (index) { if (this.sourcePostID == playlistPostId) { if (index == trackNumber) { postTrackIndex = postTrackCount; } postTrackCount++ } }); const storeId = postTrackIndex + '-' + storeNumber; sr_popUp(playlistPostId, storeId, null, null, el) }, /* Re Order the tracklist when the sticky player plays a re-organized(filter/order) playlist by list.js */ reOrderTacklist: function (playerIndex) { if (!IRON.sonaar.player.list.tracks) return; let newTrackOrder = []; $(IRON.players[playerIndex].audioPlayer.find('.sr-playlist-item')).each(function () { mp3ToSeek = $(this).data('audiopath'); titleToSeek = $(this).data('tracktitle'); postIdToSeek = $(this).data('post-id'); let trackFound = ''; IRON.sonaar.player.list.tracks.forEach(function (e, i) { e.mp3 = (typeof e.mp3 == 'string') ? e.mp3.replace(/&/g, '&') : e.mp3; if (e.mp3 == mp3ToSeek && String(titleToSeek).includes(e.track_title, 0) && postIdToSeek == e.sourcePostID ) { trackFound = IRON.sonaar.player.list.tracks[i]; trackFound['track_index'] = i; //useful for the continuous player. newTrackOrder.push(trackFound); } }) }) if( newTrackOrder.length ){ IRON.sonaar.player.list.tracks = newTrackOrder } }, unsyncWidgetPlayers: function () { IRON.sonaar.player.selectedPlayer = null; $('.sr_selectedPlayer').removeClass('sr_selectedPlayer audio-playing'); IRON.sonaar.player.playlistID = null; }, }, computed: { templateType: function () { return "sr-" + this.classes.template; }, setWaveHeight: function () { if (this.classes.template == 'mini_fullwidth') { return '27'; } else { return '40'; } }, floatPos: function () { return "sr-pos--" + this.classes.floatpos; }, showControlsHover: function () { if (this.classes.show_controls_hover === "true") { return "sr-show_controls_hover"; } }, isDraggable: function () { if (sonaar_music.option.make_draggable === "true") { return "sr-draggable"; } }, stickyProgressBar: function () { if (sonaar_music.option.sticky_hide_progress_bar === "true") { return false; } else { return true; } }, classType: function () { return "list-type-" + this.list.type; }, playerCallToAction: function () { if (this.list.type == "podcast") { return this.list.tracks[this.currentTrack].podcast_calltoaction; } else { return this.list.tracks[this.currentTrack].song_store_list; } }, albumStoreList: function () { var song_store = this.list.tracks[this.currentTrack].song_store_list; var album_store = this.list.tracks[this.currentTrack].album_store_list; var optional_cta = this.list.tracks[this.currentTrack].optional_storelist_cta; if (this.selectedPlayer) { // For dynamic visiblity buttons. Check if optional CTA is available in the current track. If not, remove it from the array, otherwise change the href to reflect the current track button href. var $currentTrackfromWidget = this.selectedPlayer.find(".sr-playlist-item").eq(this.currentTrack); var storeElements = $currentTrackfromWidget[0].querySelectorAll('.song-store-list-container .song-store'); var domDataArray = []; storeElements.forEach(function(storeElement) { // if class is includes srp-fav-bt or sr_store_force_share_bt or sr_store_force_dl_bt or sr_store_force_pl_bt and is not part of optional_cta, maybe its set by the shortcode var classAttribute = storeElement.getAttribute('class'); // Check if class includes any of the specified strings var shouldInclude = ['srp-fav-bt', 'sr_store_force_share_bt', 'sr_store_force_dl_bt', 'sr_store_force_pl_bt'].some(str => classAttribute.includes(str)); // Breakdown classAttribute into individual classes var classList = classAttribute.split(' '); // Check if any class from classList is part of optional_cta var isInOptionalCta = (optional_cta) ? classList.some(cls => optional_cta.some(item => item['cta-class'] === cls)) : ''; // Only proceed if the class is one of the desired ones and not in optional_cta if (shouldInclude && !isInOptionalCta) { // Extract data for each store var storeData = { "store-icon": storeElement.querySelector('i').className, "store-link": storeElement.getAttribute('href'), "store-name": storeElement.getAttribute('title'), "store-target": storeElement.getAttribute('target'), "cta-class": storeElement.getAttribute('class').replace('song-store', '').trim().replace('sr_store_wc_round_bt', '').trim(), "show-label": storeElement.querySelector('.srp_cta_label') !== null, }; domDataArray.push(storeData); }; }); if (Array.isArray(optional_cta)) { optional_cta.forEach(function (ctaItem) { $trackButton = $currentTrackfromWidget.find('.' + ctaItem['cta-class']); if( $trackButton.length === 0 ){ //remove this item from this array optional_cta.splice(optional_cta.indexOf(ctaItem), 1); } if( $trackButton.length === 1 ){ // modify the store-link ctaItem['store-link'] = $trackButton.attr('href'); } }); } } var storesObjects = []; if (song_store.length < 1 || song_store.length === false) { storesObjects = album_store !== undefined ? album_store : []; } else { storesObjects = album_store === false ? song_store : song_store.concat(album_store); } if (!Array.isArray(storesObjects)) { storesObjects = []; } if (Array.isArray(domDataArray)) { // Only concat if domDataArray is an array storesObjects = storesObjects.concat(domDataArray); } if(typeof optional_cta != 'undefined' && optional_cta !== false){ if( storesObjects !== false ){ storesObjects = storesObjects.concat(optional_cta); }else{ storesObjects = optional_cta; } } storeButtonCount = storesObjects.length; return storesObjects; }, hasArtwork: function () { var strURL = (typeof this.list.tracks[this.currentTrack] != 'undefined')? this.list.tracks[this.currentTrack].poster : false; if (strURL != null && strURL != false) { return !strURL.endsWith("default.png"); }else{ return false; } }, playLabelButton: function () { return this.isPlaying ? srp_vars.sonaar_music.play_button_label.pause : srp_vars.sonaar_music.play_button_label.play; }, playListTitle: function () { if (this.selectedPlayer && this.selectedPlayer.attr("data-playlist_title").length) { this.list.playlist_name = this.selectedPlayer.attr("data-playlist_title"); } if (this.list.playlist_name == "") { return this.list.tracks[this.currentTrack].album_title; } else { return this.list.playlist_name; } }, outputTrackDescription: function () { if(this.classes.display_description){ return this.list.tracks[this.currentTrack].description; }else{ return false; } }, sr_countUIitems: function () { let countItem = 1; if (this.list.tracks.length > 1 && this.classes.show_nextprevious_bt) { countItem++; } if (this.list.tracks.length > 1 && this.classes.show_tracklist_bt) { countItem++; } if (this.list.tracks.length >= 1 && this.albumStoreList.length >= 1) { countItem++; } return (countItem); }, }, mounted: function () { this.$nextTick(function () { IRON.sonaar.player.hasPlayed = false; $("#sonaar-audio").on("ended", function () { if(IRON.sonaar.player.selectedPlayer){ IRON.setTracksTimeMemories(IRON.sonaar.player.selectedPlayer, 0); //Reset the track time memory when the track is ended } if (IRON.sonaar.player.classes.notrackskip !== "on") { IRON.sonaar.player.hasPlayed = true; IRON.sonaar.player.next(); } }); $("#sonaar-audio").on("timeupdate", function () { const duration = (this.duration == 'Infinity')? this.buffered.end(this.buffered.length-1) : this.duration; $("#sonaar-player .sonaar_wave_cut, .sr_selectedPlayer .album-player .sonaar_wave_cut, .sr_selectedPlayer .current .sonaar_wave_cut, #sonaar-player .mobileProgressing").width(((this.currentTime + 0.35) / duration) * 100 + "%"); $("#sonaar-player .progressDot").css("left", (this.currentTime / duration) * 100 + "%"); var sonaarAudio = document.getElementById("sonaar-audio"); var currentTime = sonaarAudio.currentTime; var time = moment.duration(currentTime, "seconds"); // Update the Sticky player currentTime if (time.hours() >= 12 || time.hours() <= 0) { IRON.sonaar.player.currentTime = moment(time.minutes() + ":" + time.seconds(), "m:s").format("mm:ss"); } else { IRON.sonaar.player.currentTime = moment(time.hours() + ":" + time.minutes() + ":" + time.seconds(), "h:m:s").format("h:mm:ss"); } if (sonaarAudio.duration !== Infinity) { var timeLeft = moment.duration(sonaarAudio.duration - sonaarAudio.currentTime, "seconds"); // Update the Sticky player timeLeft if(timeLeft.milliseconds() > 0){ if ( timeLeft.hours() >= 12 || timeLeft.hours() <= 0 ) { IRON.sonaar.player.totalTime = "-" + moment(timeLeft.minutes() + ":" + timeLeft.seconds(), "m:s").format("mm:ss"); } else { IRON.sonaar.player.totalTime = "-" + moment(timeLeft.hours() + ":" + timeLeft.minutes() + ":" + timeLeft.seconds(), "h:m:s").format("h:mm:ss"); } }else{ IRON.sonaar.player.totalTime = "" } } else { IRON.sonaar.player.totalTime = ""; } IRON.audioPlayer.karaokeMode($(".sr_selectedPlayer"), this.currentTime); $(".sr_selectedPlayer .currentTime").html(IRON.sonaar.player.currentTime); // Update the widget player currentTime $(".sr_selectedPlayer .totalTime").html(IRON.sonaar.player.totalTime); // Update the widget player timeLeft sr_setCookieTime(); if(IRON.sonaar.player.selectedPlayer){ IRON.setTracksTimeMemories(IRON.sonaar.player.selectedPlayer); } }); $("#sonaar-audio").on( "play", function () { this.playerStatus = "play"; this.setIsPlaying(true); }.bind(this) ); $("#sonaar-audio").on( "pause", function () { this.setIsPlaying(false); this.userPref.pause = true; }.bind(this) ); this.frequencyData = new Uint8Array(170); this.setSlideVolume(); }); }, watch: { currentTrack: function () { if( typeof this.classes.preventHandleTrackChange != 'undefined' && this.classes.preventHandleTrackChange == true ){ this.classes.preventHandleTrackChange = false; //set preventHandleTrackChange to true if we dont wanna trigger the handleTrackChange function: used for Favorite feature return; } this.handleTrackChange(); }, isPlaying: function () { this.updatePlayers(); }, minimize: function () { if (this.classes.continuousPlayer) { sr_setCookieSettings(); } this.userPref.minimize = this.minimize; if (this.minimize) { $("body").removeClass("continuousPlayer-enable"); } else { $("body").addClass("continuousPlayer-enable"); } }, }, }), }; if (window.matchMedia('(min-width: 861px)').matches) { $('#sonaar-player.sr-float .player.sr-draggable').draggable(); $('#sonaar-player.sr-float .player.sr-draggable').css('cursor', 'grab'); } /*FLOAT template, extra JQuery*/ $('#sonaar-player.sr-float .player.sr-show_controls_hover').hover(function () { let playerWidth = $(this).outerWidth() + $(this).find('.player-row .control').outerWidth() + $(this).find('.volume').outerWidth(); playerWidth = ($(this).find('.sonaar-extend-button').length) ? playerWidth + $(this).find('.sonaar-extend-button').outerWidth() : playerWidth; $(this).width(playerWidth); }, function () { $(this).width(342) });PK!Dsspublic/js/polyfill.min.jsnu[!function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var c="function"==typeof require&&require;if(!u&&c)return c(o,!0);if(i)return i(o,!0);var a=new Error("Cannot find module '"+o+"'");throw a.code="MODULE_NOT_FOUND",a}var f=n[o]={exports:{}};t[o][0].call(f.exports,function(n){var r=t[o][1][n];return s(r||n)},f,f.exports,e,t,n,r)}return n[o].exports}for(var i="function"==typeof require&&require,o=0;o2?arguments[2]:void 0,s=Math.min((void 0===f?u:i(f,u))-a,u-c),l=1;for(a0;)a in r?r[c]=r[a]:delete r[c],c+=l,a+=l;return r}},{114:114,118:118,119:119}],9:[function(t,n,r){"use strict";var e=t(119),i=t(114),o=t(118);n.exports=function fill(t){for(var n=e(this),r=o(n.length),u=arguments.length,c=i(u>1?arguments[1]:void 0,r),a=u>2?arguments[2]:void 0,f=void 0===a?r:i(a,r);f>c;)n[c++]=t;return n}},{114:114,118:118,119:119}],10:[function(t,n,r){var e=t(39);n.exports=function(t,n){var r=[];return e(t,!1,r.push,r,n),r}},{39:39}],11:[function(t,n,r){var e=t(117),i=t(118),o=t(114);n.exports=function(t){return function(n,r,u){var c,a=e(n),f=i(a.length),s=o(u,f);if(t&&r!=r){for(;f>s;)if((c=a[s++])!=c)return!0}else for(;f>s;s++)if((t||s in a)&&a[s]===r)return t||s||0;return!t&&-1}}},{114:114,117:117,118:118}],12:[function(t,n,r){var e=t(25),i=t(47),o=t(119),u=t(118),c=t(15);n.exports=function(t,n){var r=1==t,a=2==t,f=3==t,s=4==t,l=6==t,h=5==t||l,v=n||c;return function(n,c,p){for(var d,y,g=o(n),m=i(g),b=e(c,p,3),x=u(m.length),S=0,w=r?v(n,x):a?v(n,0):void 0;x>S;S++)if((h||S in m)&&(d=m[S],y=b(d,S,g),t))if(r)w[S]=y;else if(y)switch(t){case 3:return!0;case 5:return d;case 6:return S;case 2:w.push(d)}else if(s)return!1;return l?-1:f||s?s:w}}},{118:118,119:119,15:15,25:25,47:47}],13:[function(t,n,r){var e=t(3),i=t(119),o=t(47),u=t(118);n.exports=function(t,n,r,c,a){e(n);var f=i(t),s=o(f),l=u(f.length),h=a?l-1:0,v=a?-1:1;if(r<2)for(;;){if(h in s){c=s[h],h+=v;break}if(h+=v,a?h<0:l<=h)throw TypeError("Reduce of empty array with no initial value")}for(;a?h>=0:l>h;h+=v)h in s&&(c=n(c,s[h],h,f));return c}},{118:118,119:119,3:3,47:47}],14:[function(t,n,r){var e=t(51),i=t(49),o=t(128)("species");n.exports=function(t){var n;return i(t)&&(n=t.constructor,"function"!=typeof n||n!==Array&&!i(n.prototype)||(n=void 0),e(n)&&null===(n=n[o])&&(n=void 0)),void 0===n?Array:n}},{128:128,49:49,51:51}],15:[function(t,n,r){var e=t(14);n.exports=function(t,n){return new(e(t))(n)}},{14:14}],16:[function(t,n,r){"use strict";var e=t(3),i=t(51),o=t(46),u=[].slice,c={},a=function(t,n,r){if(!(n in c)){for(var e=[],i=0;i1?arguments[1]:void 0,3);r=r?r.n:this._f;)for(e(r.v,r.k,this);r&&r.r;)r=r.p},has:function has(t){return!!y(p(this,n),t)}}),h&&e(s.prototype,"size",{get:function(){return p(this,n)[d]}}),s},def:function(t,n,r){var e,i,o=y(t,n);return o?o.v=r:(t._l=o={i:i=v(n,!0),k:n,v:r,p:e=t._l,n:void 0,r:!1},t._f||(t._f=o),e&&(e.n=o),t[d]++,"F"!==i&&(t._i[i]=o)),t},getEntry:y,setStrong:function(t,n,r){f(t,n,function(t,r){this._t=p(t,n),this._k=r,this._l=void 0},function(){for(var t=this,n=t._k,r=t._l;r&&r.r;)r=r.p;return t._t&&(t._l=r=r?r.n:t._t._f)?"keys"==n?s(0,r.k):"values"==n?s(0,r.v):s(0,[r.k,r.v]):(t._t=void 0,s(1))},r?"entries":"values",!r,!0),l(n)}}},{100:100,125:125,25:25,29:29,39:39,55:55,57:57,6:6,66:66,71:71,72:72,93:93}],20:[function(t,n,r){var e=t(17),i=t(10);n.exports=function(t){return function toJSON(){if(e(this)!=t)throw TypeError(t+"#toJSON isn't generic");return i(this)}}},{10:10,17:17}],21:[function(t,n,r){"use strict";var e=t(93),i=t(66).getWeak,o=t(7),u=t(51),c=t(6),a=t(39),f=t(12),s=t(41),l=t(125),h=f(5),v=f(6),p=0,d=function(t){return t._l||(t._l=new y)},y=function(){this.a=[]},g=function(t,n){return h(t.a,function(t){return t[0]===n})};y.prototype={get:function(t){var n=g(this,t);if(n)return n[1]},has:function(t){return!!g(this,t)},set:function(t,n){var r=g(this,t);r?r[1]=n:this.a.push([t,n])},delete:function(t){var n=v(this.a,function(n){return n[0]===t});return~n&&this.a.splice(n,1),!!~n}},n.exports={getConstructor:function(t,n,r,o){var f=t(function(t,e){c(t,f,n,"_i"),t._t=n,t._i=p++,t._l=void 0,void 0!=e&&a(e,r,t[o],t)});return e(f.prototype,{delete:function(t){if(!u(t))return!1;var r=i(t);return!0===r?d(l(this,n)).delete(t):r&&s(r,this._i)&&delete r[this._i]},has:function has(t){if(!u(t))return!1;var r=i(t);return!0===r?d(l(this,n)).has(t):r&&s(r,this._i)}}),f},def:function(t,n,r){var e=i(o(n),!0);return!0===e?d(t).set(n,r):e[t._i]=r,t},ufstore:d}},{12:12,125:125,39:39,41:41,51:51,6:6,66:66,7:7,93:93}],22:[function(t,n,r){"use strict";var e=t(40),i=t(33),o=t(94),u=t(93),c=t(66),a=t(39),f=t(6),s=t(51),l=t(35),h=t(56),v=t(101),p=t(45);n.exports=function(t,n,r,d,y,g){var m=e[t],b=m,x=y?"set":"add",S=b&&b.prototype,w={},_=function(t){var n=S[t];o(S,t,"delete"==t?function(t){return!(g&&!s(t))&&n.call(this,0===t?0:t)}:"has"==t?function has(t){return!(g&&!s(t))&&n.call(this,0===t?0:t)}:"get"==t?function get(t){return g&&!s(t)?void 0:n.call(this,0===t?0:t)}:"add"==t?function add(t){return n.call(this,0===t?0:t),this}:function set(t,r){return n.call(this,0===t?0:t,r),this})};if("function"==typeof b&&(g||S.forEach&&!l(function(){(new b).entries().next()}))){var E=new b,O=E[x](g?{}:-0,1)!=E,P=l(function(){E.has(1)}),M=h(function(t){new b(t)}),F=!g&&l(function(){for(var t=new b,n=5;n--;)t[x](n,n);return!t.has(-0)});M||(b=n(function(n,r){f(n,b,t);var e=p(new m,n,b);return void 0!=r&&a(r,y,e[x],e),e}),b.prototype=S,S.constructor=b),(P||F)&&(_("delete"),_("has"),y&&_("get")),(F||O)&&_(x),g&&S.clear&&delete S.clear}else b=d.getConstructor(n,t,y,x),u(b.prototype,r),c.NEED=!0;return v(b,t),w[t]=b,i(i.G+i.W+i.F*(b!=m),w),g||d.setStrong(b,t,y),b}},{101:101,33:33,35:35,39:39,40:40,45:45,51:51,56:56,6:6,66:66,93:93,94:94}],23:[function(t,n,r){var e=n.exports={version:"2.5.0"};"number"==typeof __e&&(__e=e)},{}],24:[function(t,n,r){"use strict";var e=t(72),i=t(92);n.exports=function(t,n,r){n in t?e.f(t,n,i(0,r)):t[n]=r}},{72:72,92:92}],25:[function(t,n,r){var e=t(3);n.exports=function(t,n,r){if(e(t),void 0===n)return t;switch(r){case 1:return function(r){return t.call(n,r)};case 2:return function(r,e){return t.call(n,r,e)};case 3:return function(r,e,i){return t.call(n,r,e,i)}}return function(){return t.apply(n,arguments)}}},{3:3}],26:[function(t,n,r){"use strict";var e=t(35),i=Date.prototype.getTime,o=Date.prototype.toISOString,u=function(t){return t>9?t:"0"+t};n.exports=e(function(){return"0385-07-25T07:06:39.999Z"!=o.call(new Date(-5e13-1))})||!e(function(){o.call(new Date(NaN))})?function toISOString(){if(!isFinite(i.call(this)))throw RangeError("Invalid time value");var t=this,n=t.getUTCFullYear(),r=t.getUTCMilliseconds(),e=n<0?"-":n>9999?"+":"";return e+("00000"+Math.abs(n)).slice(e?-6:-4)+"-"+u(t.getUTCMonth()+1)+"-"+u(t.getUTCDate())+"T"+u(t.getUTCHours())+":"+u(t.getUTCMinutes())+":"+u(t.getUTCSeconds())+"."+(r>99?r:"0"+u(r))+"Z"}:o},{35:35}],27:[function(t,n,r){"use strict";var e=t(7),i=t(120);n.exports=function(t){if("string"!==t&&"number"!==t&&"default"!==t)throw TypeError("Incorrect hint");return i(e(this),"number"!=t)}},{120:120,7:7}],28:[function(t,n,r){n.exports=function(t){if(void 0==t)throw TypeError("Can't call method on "+t);return t}},{}],29:[function(t,n,r){n.exports=!t(35)(function(){return 7!=Object.defineProperty({},"a",{get:function(){return 7}}).a})},{35:35}],30:[function(t,n,r){var e=t(51),i=t(40).document,o=e(i)&&e(i.createElement);n.exports=function(t){return o?i.createElement(t):{}}},{40:40,51:51}],31:[function(t,n,r){n.exports="constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf".split(",")},{}],32:[function(t,n,r){var e=t(81),i=t(78),o=t(82);n.exports=function(t){var n=e(t),r=i.f;if(r)for(var u,c=r(t),a=o.f,f=0;c.length>f;)a.call(t,u=c[f++])&&n.push(u);return n}},{78:78,81:81,82:82}],33:[function(t,n,r){var e=t(40),i=t(23),o=t(42),u=t(94),c=t(25),a=function(t,n,r){var f,s,l,h,v=t&a.F,p=t&a.G,d=t&a.S,y=t&a.P,g=t&a.B,m=p?e:d?e[n]||(e[n]={}):(e[n]||{}).prototype,b=p?i:i[n]||(i[n]={}),x=b.prototype||(b.prototype={});p&&(r=n);for(f in r)s=!v&&m&&void 0!==m[f],l=(s?m:r)[f],h=g&&s?c(l,e):y&&"function"==typeof l?c(Function.call,l):l,m&&u(m,f,l,t&a.U),b[f]!=l&&o(b,f,h),y&&x[f]!=l&&(x[f]=l)};e.core=i,a.F=1,a.G=2,a.S=4,a.P=8,a.B=16,a.W=32,a.U=64,a.R=128,n.exports=a},{23:23,25:25,40:40,42:42,94:94}],34:[function(t,n,r){var e=t(128)("match");n.exports=function(t){var n=/./;try{"/./"[t](n)}catch(r){try{return n[e]=!1,!"/./"[t](n)}catch(t){}}return!0}},{128:128}],35:[function(t,n,r){n.exports=function(t){try{return!!t()}catch(t){return!0}}},{}],36:[function(t,n,r){"use strict";var e=t(42),i=t(94),o=t(35),u=t(28),c=t(128);n.exports=function(t,n,r){var a=c(t),f=r(u,a,""[t]),s=f[0],l=f[1];o(function(){var n={};return n[a]=function(){return 7},7!=""[t](n)})&&(i(String.prototype,t,s),e(RegExp.prototype,a,2==n?function(t,n){return l.call(t,this,n)}:function(t){return l.call(t,this)}))}},{128:128,28:28,35:35,42:42,94:94}],37:[function(t,n,r){"use strict";var e=t(7);n.exports=function(){var t=e(this),n="";return t.global&&(n+="g"),t.ignoreCase&&(n+="i"),t.multiline&&(n+="m"),t.unicode&&(n+="u"),t.sticky&&(n+="y"),n}},{7:7}],38:[function(t,n,r){"use strict";function flattenIntoArray(t,n,r,a,f,s,l,h){for(var v,p,d=f,y=0,g=!!l&&u(l,h,3);y0)d=flattenIntoArray(t,n,v,o(v.length),d,s-1)-1;else{if(d>=9007199254740991)throw TypeError();t[d]=v}d++}y++}return d}var e=t(49),i=t(51),o=t(118),u=t(25),c=t(128)("isConcatSpreadable");n.exports=flattenIntoArray},{118:118,128:128,25:25,49:49,51:51}],39:[function(t,n,r){var e=t(25),i=t(53),o=t(48),u=t(7),c=t(118),a=t(129),f={},s={},r=n.exports=function(t,n,r,l,h){var v,p,d,y,g=h?function(){return t}:a(t),m=e(r,l,n?2:1),b=0;if("function"!=typeof g)throw TypeError(t+" is not iterable!");if(o(g)){for(v=c(t.length);v>b;b++)if((y=n?m(u(p=t[b])[0],p[1]):m(t[b]))===f||y===s)return y}else for(d=g.call(t);!(p=d.next()).done;)if((y=i(d,m,p.value,n))===f||y===s)return y};r.BREAK=f,r.RETURN=s},{118:118,129:129,25:25,48:48,53:53,7:7}],40:[function(t,n,r){var e=n.exports="undefined"!=typeof window&&window.Math==Math?window:"undefined"!=typeof self&&self.Math==Math?self:Function("return this")();"number"==typeof __g&&(__g=e)},{}],41:[function(t,n,r){var e={}.hasOwnProperty;n.exports=function(t,n){return e.call(t,n)}},{}],42:[function(t,n,r){var e=t(72),i=t(92);n.exports=t(29)?function(t,n,r){return e.f(t,n,i(1,r))}:function(t,n,r){return t[n]=r,t}},{29:29,72:72,92:92}],43:[function(t,n,r){var e=t(40).document;n.exports=e&&e.documentElement},{40:40}],44:[function(t,n,r){n.exports=!t(29)&&!t(35)(function(){return 7!=Object.defineProperty(t(30)("div"),"a",{get:function(){return 7}}).a})},{29:29,30:30,35:35}],45:[function(t,n,r){var e=t(51),i=t(99).set;n.exports=function(t,n,r){var o,u=n.constructor;return u!==r&&"function"==typeof u&&(o=u.prototype)!==r.prototype&&e(o)&&i&&i(t,o),t}},{51:51,99:99}],46:[function(t,n,r){n.exports=function(t,n,r){var e=void 0===r;switch(n.length){case 0:return e?t():t.call(r);case 1:return e?t(n[0]):t.call(r,n[0]);case 2:return e?t(n[0],n[1]):t.call(r,n[0],n[1]);case 3:return e?t(n[0],n[1],n[2]):t.call(r,n[0],n[1],n[2]);case 4:return e?t(n[0],n[1],n[2],n[3]):t.call(r,n[0],n[1],n[2],n[3])}return t.apply(r,n)}},{}],47:[function(t,n,r){var e=t(18);n.exports=Object("z").propertyIsEnumerable(0)?Object:function(t){return"String"==e(t)?t.split(""):Object(t)}},{18:18}],48:[function(t,n,r){var e=t(58),i=t(128)("iterator"),o=Array.prototype;n.exports=function(t){return void 0!==t&&(e.Array===t||o[i]===t)}},{128:128,58:58}],49:[function(t,n,r){var e=t(18);n.exports=Array.isArray||function isArray(t){return"Array"==e(t)}},{18:18}],50:[function(t,n,r){var e=t(51),i=Math.floor;n.exports=function isInteger(t){return!e(t)&&isFinite(t)&&i(t)===t}},{51:51}],51:[function(t,n,r){n.exports=function(t){return"object"==typeof t?null!==t:"function"==typeof t}},{}],52:[function(t,n,r){var e=t(51),i=t(18),o=t(128)("match");n.exports=function(t){var n;return e(t)&&(void 0!==(n=t[o])?!!n:"RegExp"==i(t))}},{128:128,18:18,51:51}],53:[function(t,n,r){var e=t(7);n.exports=function(t,n,r,i){try{return i?n(e(r)[0],r[1]):n(r)}catch(n){var o=t.return;throw void 0!==o&&e(o.call(t)),n}}},{7:7}],54:[function(t,n,r){"use strict";var e=t(71),i=t(92),o=t(101),u={};t(42)(u,t(128)("iterator"),function(){return this}),n.exports=function(t,n,r){t.prototype=e(u,{next:i(1,r)}),o(t,n+" Iterator")}},{101:101,128:128,42:42,71:71,92:92}],55:[function(t,n,r){"use strict";var e=t(60),i=t(33),o=t(94),u=t(42),c=t(41),a=t(58),f=t(54),s=t(101),l=t(79),h=t(128)("iterator"),v=!([].keys&&"next"in[].keys()),p=function(){return this};n.exports=function(t,n,r,d,y,g,m){f(r,n,d);var b,x,S,w=function(t){if(!v&&t in P)return P[t];switch(t){case"keys":return function keys(){return new r(this,t)};case"values":return function values(){return new r(this,t)}}return function entries(){return new r(this,t)}},_=n+" Iterator",E="values"==y,O=!1,P=t.prototype,M=P[h]||P["@@iterator"]||y&&P[y],F=M||w(y),I=y?E?w("entries"):F:void 0,A="Array"==n?P.entries||M:M;if(A&&(S=l(A.call(new t)))!==Object.prototype&&S.next&&(s(S,_,!0),e||c(S,h)||u(S,h,p)),E&&M&&"values"!==M.name&&(O=!0,F=function values(){return M.call(this)}),e&&!m||!v&&!O&&P[h]||u(P,h,F),a[n]=F,a[_]=p,y)if(b={values:E?F:w("values"),keys:g?F:w("keys"),entries:I},m)for(x in b)x in P||o(P,x,b[x]);else i(i.P+i.F*(v||O),n,b);return b}},{101:101,128:128,33:33,41:41,42:42,54:54,58:58,60:60,79:79,94:94}],56:[function(t,n,r){var e=t(128)("iterator"),i=!1;try{var o=[7][e]();o.return=function(){i=!0},Array.from(o,function(){throw 2})}catch(t){}n.exports=function(t,n){if(!n&&!i)return!1;var r=!1;try{var o=[7],u=o[e]();u.next=function(){return{done:r=!0}},o[e]=function(){return u},t(o)}catch(t){}return r}},{128:128}],57:[function(t,n,r){n.exports=function(t,n){return{value:n,done:!!t}}},{}],58:[function(t,n,r){n.exports={}},{}],59:[function(t,n,r){var e=t(81),i=t(117);n.exports=function(t,n){for(var r,o=i(t),u=e(o),c=u.length,a=0;c>a;)if(o[r=u[a++]]===n)return r}},{117:117,81:81}],60:[function(t,n,r){n.exports=!1},{}],61:[function(t,n,r){var e=Math.expm1;n.exports=!e||e(10)>22025.465794806718||e(10)<22025.465794806718||-2e-17!=e(-2e-17)?function expm1(t){return 0==(t=+t)?t:t>-1e-6&&t<1e-6?t+t*t/2:Math.exp(t)-1}:e},{}],62:[function(t,n,r){var e=t(65),i=Math.pow,o=i(2,-52),u=i(2,-23),c=i(2,127)*(2-u),a=i(2,-126),f=function(t){return t+1/o-1/o};n.exports=Math.fround||function fround(t){var n,r,i=Math.abs(t),s=e(t);return ic||r!=r?s*(1/0):s*r)}},{65:65}],63:[function(t,n,r){n.exports=Math.log1p||function log1p(t){return(t=+t)>-1e-8&&t<1e-8?t-t*t/2:Math.log(1+t)}},{}],64:[function(t,n,r){n.exports=Math.scale||function scale(t,n,r,e,i){return 0===arguments.length||t!=t||n!=n||r!=r||e!=e||i!=i?NaN:t===1/0||t===-1/0?t:(t-n)*(i-e)/(r-n)+e}},{}],65:[function(t,n,r){n.exports=Math.sign||function sign(t){return 0==(t=+t)||t!=t?t:t<0?-1:1}},{}],66:[function(t,n,r){var e=t(124)("meta"),i=t(51),o=t(41),u=t(72).f,c=0,a=Object.isExtensible||function(){return!0},f=!t(35)(function(){return a(Object.preventExtensions({}))}),s=function(t){u(t,e,{value:{i:"O"+ ++c,w:{}}})},l=function(t,n){if(!i(t))return"symbol"==typeof t?t:("string"==typeof t?"S":"P")+t;if(!o(t,e)){if(!a(t))return"F";if(!n)return"E";s(t)}return t[e].i},h=function(t,n){if(!o(t,e)){if(!a(t))return!0;if(!n)return!1;s(t)}return t[e].w},v=function(t){return f&&p.NEED&&a(t)&&!o(t,e)&&s(t),t},p=n.exports={KEY:e,NEED:!1,fastKey:l,getWeak:h,onFreeze:v}},{124:124,35:35,41:41,51:51,72:72}],67:[function(t,n,r){var e=t(160),i=t(33),o=t(103)("metadata"),u=o.store||(o.store=new(t(266))),c=function(t,n,r){var i=u.get(t);if(!i){if(!r)return;u.set(t,i=new e)}var o=i.get(n);if(!o){if(!r)return;i.set(n,o=new e)}return o},a=function(t,n,r){var e=c(n,r,!1);return void 0!==e&&e.has(t)},f=function(t,n,r){var e=c(n,r,!1);return void 0===e?void 0:e.get(t)},s=function(t,n,r,e){c(r,e,!0).set(t,n)},l=function(t,n){var r=c(t,n,!1),e=[];return r&&r.forEach(function(t,n){e.push(n)}),e},h=function(t){return void 0===t||"symbol"==typeof t?t:String(t)},v=function(t){i(i.S,"Reflect",t)};n.exports={store:u,map:c,has:a,get:f,set:s,keys:l,key:h,exp:v}},{103:103,160:160,266:266,33:33}],68:[function(t,n,r){var e=t(40),i=t(113).set,o=e.MutationObserver||e.WebKitMutationObserver,u=e.process,c=e.Promise,a="process"==t(18)(u);n.exports=function(){var t,n,r,f=function(){var e,i;for(a&&(e=u.domain)&&e.exit();t;){i=t.fn,t=t.next;try{i()}catch(e){throw t?r():n=void 0,e}}n=void 0,e&&e.enter()};if(a)r=function(){u.nextTick(f)};else if(o){var s=!0,l=document.createTextNode("");new o(f).observe(l,{characterData:!0}),r=function(){l.data=s=!s}}else if(c&&c.resolve){var h=c.resolve();r=function(){h.then(f)}}else r=function(){i.call(e,f)};return function(e){var i={fn:e,next:void 0};n&&(n.next=i),t||(t=i,r()),n=i}}},{113:113,18:18,40:40}],69:[function(t,n,r){"use strict";function PromiseCapability(t){var n,r;this.promise=new t(function(t,e){if(void 0!==n||void 0!==r)throw TypeError("Bad Promise constructor");n=t,r=e}),this.resolve=e(n),this.reject=e(r)}var e=t(3);n.exports.f=function(t){return new PromiseCapability(t)}},{3:3}],70:[function(t,n,r){"use strict";var e=t(81),i=t(78),o=t(82),u=t(119),c=t(47),a=Object.assign;n.exports=!a||t(35)(function(){var t={},n={},r=Symbol(),e="abcdefghijklmnopqrst";return t[r]=7,e.split("").forEach(function(t){n[t]=t}),7!=a({},t)[r]||Object.keys(a({},n)).join("")!=e})?function assign(t,n){for(var r=u(t),a=arguments.length,f=1,s=i.f,l=o.f;a>f;)for(var h,v=c(arguments[f++]),p=s?e(v).concat(s(v)):e(v),d=p.length,y=0;d>y;)l.call(v,h=p[y++])&&(r[h]=v[h]);return r}:a},{119:119,35:35,47:47,78:78,81:81,82:82}],71:[function(t,n,r){var e=t(7),i=t(73),o=t(31),u=t(102)("IE_PROTO"),c=function(){},a=function(){var n,r=t(30)("iframe"),e=o.length;for(r.style.display="none",t(43).appendChild(r),r.src="javascript:",n=r.contentWindow.document,n.open(),n.write("