diff --git a/tjdests/apps/profile/forms.py b/tjdests/apps/profile/forms.py
index 4b5a9ec..3dd04ec 100644
--- a/tjdests/apps/profile/forms.py
+++ b/tjdests/apps/profile/forms.py
@@ -70,7 +70,7 @@ class DecisionForm(forms.ModelForm):
             ).count()
             > 0
         ):
-            raise ValidationError("You cannot add a second entry for this college")
+            self.add_error("college", "You cannot add a second entry for this college")
 
         # Rolling and RD decisions cannot be deferred
         if cleaned_data.get("decision_type") in [
@@ -78,9 +78,7 @@ class DecisionForm(forms.ModelForm):
             Decision.ROLLING,
         ]:
             if "DEFER" in cleaned_data.get("admission_status", ""):
-                raise ValidationError(
-                    "Regular Decision and Rolling decisions cannot result in a deferral"
-                )
+                self.add_error("admission_status", "Regular Decision and Rolling decisions cannot result in a deferral")
 
         return cleaned_data
 
diff --git a/tjdests/static/selectize.bootstrap4.min.css b/tjdests/static/selectize.bootstrap4.min.css
deleted file mode 100644
index 4c30ed3..0000000
--- a/tjdests/static/selectize.bootstrap4.min.css
+++ /dev/null
@@ -1 +0,0 @@
-.selectize-control.plugin-drag_drop.multi>.selectize-input>div.ui-sortable-placeholder{visibility:visible!important;background:#f2f2f2!important;background:rgba(0,0,0,.06)!important;border:0 none!important;box-shadow:inset 0 0 12px 4px #fff}.selectize-control.plugin-drag_drop .ui-sortable-placeholder::after{content:"!";visibility:hidden}.selectize-control.plugin-drag_drop .ui-sortable-helper{box-shadow:0 2px 5px rgba(0,0,0,.2)}.selectize-control .dropdown-header{position:relative;padding:6px .75rem;border-bottom:1px solid #d0d0d0;background:#f8f8f8;border-radius:.25rem .25rem 0 0}.selectize-control .dropdown-header-close{position:absolute;right:.75rem;top:50%;color:#343a40;opacity:.4;margin-top:-12px;line-height:20px;font-size:20px!important}.selectize-control .dropdown-header-close:hover{color:#000}.selectize-dropdown.plugin-optgroup_columns .selectize-dropdown-content{display:flex}.selectize-dropdown.plugin-optgroup_columns .optgroup{border-right:1px solid #f2f2f2;border-top:0 none;flex-grow:1;flex-basis:0;min-width:0}.selectize-dropdown.plugin-optgroup_columns .optgroup:last-child{border-right:0 none}.selectize-dropdown.plugin-optgroup_columns .optgroup:before{display:none}.selectize-dropdown.plugin-optgroup_columns .optgroup-header{border-top:0 none}.selectize-control.plugin-remove_button .item{display:inline-flex;align-items:center;padding-right:0!important}.selectize-control.plugin-remove_button .item .remove{color:inherit;text-decoration:none;vertical-align:middle;display:inline-block;padding:1px 5px;border-left:1px solid #dee2e6;border-radius:0 2px 2px 0;box-sizing:border-box;margin-left:5px}.selectize-control.plugin-remove_button .item .remove:hover{background:rgba(0,0,0,.05)}.selectize-control.plugin-remove_button .item.active .remove{border-left-color:transparent}.selectize-control.plugin-remove_button .disabled .item .remove:hover{background:0 0}.selectize-control.plugin-remove_button .disabled .item .remove{border-left-color:#fff}.selectize-control.plugin-remove_button .remove-single{position:absolute;right:0;top:0;font-size:23px}.selectize-control{position:relative}.selectize-dropdown,.selectize-input,.selectize-input input{color:#343a40;font-family:inherit;font-size:inherit;line-height:1.5;font-smoothing:inherit}.selectize-control.single .selectize-input.input-active,.selectize-input{background:#fff;cursor:text;display:inline-block}.selectize-input{border:1px solid #ced4da;padding:.375rem .75rem;display:inline-block;width:100%;overflow:hidden;position:relative;z-index:1;box-sizing:border-box;box-shadow:none;border-radius:.25rem}.selectize-control.multi .selectize-input.has-items{padding:calc(.375rem - 1px - 0px) .75rem calc(.375rem - 1px - 3px - 0px)}.selectize-input.full{background-color:#fff}.selectize-input.disabled,.selectize-input.disabled *{cursor:default!important}.selectize-input.focus{box-shadow:inset 0 1px 2px rgba(0,0,0,.15)}.selectize-input.dropdown-active{border-radius:.25rem .25rem 0 0}.selectize-input>*{vertical-align:baseline;display:inline-block;zoom:1}.selectize-control.multi .selectize-input>div{cursor:pointer;margin:0 3px 3px 0;padding:1px 5px;background:#efefef;color:#343a40;border:0 solid #dee2e6}.selectize-control.multi .selectize-input>div.active{background:#007bff;color:#fff;border:0 solid transparent}.selectize-control.multi .selectize-input.disabled>div,.selectize-control.multi .selectize-input.disabled>div.active{color:#878787;background:#fff;border:0 solid #fff}.selectize-input>input{display:inline-block!important;padding:0!important;min-height:0!important;max-height:none!important;max-width:100%!important;margin:0!important;text-indent:0!important;border:0 none!important;background:0 0!important;line-height:inherit!important;user-select:auto!important;box-shadow:none!important}.selectize-input>input::-ms-clear{display:none}.selectize-input>input:focus{outline:0!important}.selectize-input>input[placeholder]{box-sizing:initial}.selectize-input.has-items>input{margin:0 4px!important}.selectize-input::after{content:" ";display:block;clear:left}.selectize-input.dropdown-active::before{content:" ";display:block;position:absolute;background:#fff;height:1px;bottom:0;left:0;right:0}.selectize-dropdown{position:absolute;top:100%;left:0;width:100%;z-index:10;border:1px solid #d0d0d0;background:#fff;margin:-1px 0 0 0;border-top:0 none;box-sizing:border-box;box-shadow:0 1px 3px rgba(0,0,0,.1);border-radius:0 0 .25rem .25rem}.selectize-dropdown [data-selectable]{cursor:pointer;overflow:hidden}.selectize-dropdown [data-selectable] .highlight{background:rgba(255,237,40,.4);border-radius:1px}.selectize-dropdown .create,.selectize-dropdown .no-results,.selectize-dropdown .optgroup-header,.selectize-dropdown .option{padding:3px .75rem}.selectize-dropdown .option,.selectize-dropdown [data-disabled],.selectize-dropdown [data-disabled] [data-selectable].option{cursor:inherit;opacity:.5}.selectize-dropdown [data-selectable].option{opacity:1;cursor:pointer}.selectize-dropdown .optgroup:first-child .optgroup-header{border-top:0 none}.selectize-dropdown .optgroup-header{color:#6c757d;background:#fff;cursor:default}.selectize-dropdown .active{background-color:#f8f9fa;color:#16181b}.selectize-dropdown .active.create{color:#16181b}.selectize-dropdown .create{color:rgba(52,58,64,.5)}.selectize-dropdown-content{overflow-y:auto;overflow-x:hidden;max-height:200px;overflow-scrolling:touch}.selectize-dropdown .spinner{display:inline-block;width:30px;height:30px;margin:3px .75rem}.selectize-dropdown .spinner:after{content:" ";display:block;width:24px;height:24px;margin:3px;border-radius:50%;border:5px solid #d0d0d0;border-color:#d0d0d0 transparent #d0d0d0 transparent;animation:lds-dual-ring 1.2s linear infinite}@keyframes lds-dual-ring{0%{transform:rotate(0)}100%{transform:rotate(360deg)}}.selectize-control.single .selectize-input,.selectize-control.single .selectize-input input{cursor:pointer}.selectize-control.single .selectize-input.input-active,.selectize-control.single .selectize-input.input-active input{cursor:text}.selectize-control.single .selectize-input:after{content:" ";display:block;position:absolute;top:50%;right:calc(.75rem + 5px);margin-top:-3px;width:0;height:0;border-style:solid;border-width:5px 5px 0 5px;border-color:#343a40 transparent transparent transparent}.selectize-control.single .selectize-input.dropdown-active:after{margin-top:-4px;border-width:0 5px 5px 5px;border-color:transparent transparent #343a40 transparent}.selectize-control.rtl{text-align:right}.selectize-control.rtl.single .selectize-input:after{left:calc(.75rem + 5px);right:auto}.selectize-control.rtl .selectize-input>input{margin:0 4px 0 -2px!important}.selectize-control .selectize-input.disabled{opacity:.5;background-color:#fff}.selectize-dropdown,.selectize-dropdown.form-control{height:auto;padding:0;margin:2px 0 0 0;z-index:1000;background:#fff;border:1px solid rgba(0,0,0,.15);border-radius:.25rem;box-shadow:0 6px 12px rgba(0,0,0,.175)}.selectize-dropdown .optgroup-header{font-size:.875rem;line-height:1.5}.selectize-dropdown .optgroup:first-child:before{display:none}.selectize-dropdown .optgroup:before{content:" ";display:block;height:0;margin:.5rem 0;overflow:hidden;border-top:1px solid #e9ecef;margin-left:-.75rem;margin-right:-.75rem}.selectize-dropdown .create{padding-left:.75rem}.selectize-dropdown-content{padding:5px 0}.selectize-input{min-height:calc(1.5em + .75rem + 2px);transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media(prefers-reduced-motion:reduce){.selectize-input{transition:none}}.selectize-input.dropdown-active{border-radius:.25rem}.selectize-input.dropdown-active::before{display:none}.selectize-input.focus{border-color:#80bdff;outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.is-invalid .selectize-input{border-color:#dc3545;box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.is-invalid .selectize-input:focus{border-color:#bd2130;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #eb8c95}.selectize-control.form-control-sm .selectize-input.has-items{min-height:calc(1.5em + .5rem + 2px)!important;height:calc(1.5em + .5rem + 2px);padding:.25rem .5rem!important;font-size:.875rem;line-height:1.5}.selectize-control.multi .selectize-input.has-items{height:auto;padding-left:calc(.75rem - 5px);padding-right:calc(.75rem - 5px)}.selectize-control.multi .selectize-input>div{border-radius:calc(.25rem - 1px)}.form-control.selectize-control{padding:0;height:auto;border:none;background:0 0;box-shadow:none;border-radius:0}.input-group .selectize-input{overflow:unset;border-radius:0 .25rem .25rem 0}
\ No newline at end of file
diff --git a/tjdests/static/selectize.js b/tjdests/static/selectize.js
deleted file mode 100644
index 1bad526..0000000
--- a/tjdests/static/selectize.js
+++ /dev/null
@@ -1,3 +0,0 @@
-/*! selectize.js - v0.13.3 | https://github.com/selectize/selectize.js | Apache License (v2) */
-
-!function(root,factory){"function"==typeof define&&define.amd?define("sifter",factory):"object"==typeof exports?module.exports=factory():root.Sifter=factory()}(this,function(){function Sifter(items,settings){this.items=items,this.settings=settings||{diacritics:!0}}Sifter.prototype.tokenize=function(query){if(!(query=trim(String(query||"").toLowerCase()))||!query.length)return[];for(var regex,letter,tokens=[],words=query.split(/ +/),i=0,n=words.length;i<n;i++){if(regex=escape_regex(words[i]),this.settings.diacritics)for(letter in DIACRITICS)DIACRITICS.hasOwnProperty(letter)&&(regex=regex.replace(new RegExp(letter,"g"),DIACRITICS[letter]));tokens.push({string:words[i],regex:new RegExp(regex,"i")})}return tokens},Sifter.prototype.iterator=function(object,callback){var iterator=is_array(object)?Array.prototype.forEach||function(callback){for(var i=0,n=this.length;i<n;i++)callback(this[i],i,this)}:function(callback){for(var key in this)this.hasOwnProperty(key)&&callback(this[key],key,this)};iterator.apply(object,[callback])},Sifter.prototype.getScoreFunction=function(search,options){var fields,tokens,token_count,nesting;search=this.prepareSearch(search,options),tokens=search.tokens,fields=search.options.fields,token_count=tokens.length,nesting=search.options.nesting;function scoreValue(score,token){var pos;return!score||-1===(pos=(score=String(score||"")).search(token.regex))?0:(score=token.string.length/score.length,0===pos&&(score+=.5),score)}var field_count,scoreObject=(field_count=fields.length)?1===field_count?function(token,data){return scoreValue(getattr(data,fields[0],nesting),token)}:function(token,data){for(var i=0,sum=0;i<field_count;i++)sum+=scoreValue(getattr(data,fields[i],nesting),token);return sum/field_count}:function(){return 0};return token_count?1===token_count?function(data){return scoreObject(tokens[0],data)}:"and"===search.options.conjunction?function(data){for(var score,i=0,sum=0;i<token_count;i++){if((score=scoreObject(tokens[i],data))<=0)return 0;sum+=score}return sum/token_count}:function(data){for(var i=0,sum=0;i<token_count;i++)sum+=scoreObject(tokens[i],data);return sum/token_count}:function(){return 0}},Sifter.prototype.getSortFunction=function(search,options){var i,n,field,fields_count,multiplier,multipliers,implicit_score,self=this,sort=!(search=self.prepareSearch(search,options)).query&&options.sort_empty||options.sort,get_field=function(name,result){return"$score"===name?result.score:getattr(self.items[result.id],name,options.nesting)},fields=[];if(sort)for(i=0,n=sort.length;i<n;i++)!search.query&&"$score"===sort[i].field||fields.push(sort[i]);if(search.query){for(implicit_score=!0,i=0,n=fields.length;i<n;i++)if("$score"===fields[i].field){implicit_score=!1;break}implicit_score&&fields.unshift({field:"$score",direction:"desc"})}else for(i=0,n=fields.length;i<n;i++)if("$score"===fields[i].field){fields.splice(i,1);break}for(multipliers=[],i=0,n=fields.length;i<n;i++)multipliers.push("desc"===fields[i].direction?-1:1);return(fields_count=fields.length)?1===fields_count?(field=fields[0].field,multiplier=multipliers[0],function(a,b){return multiplier*cmp(get_field(field,a),get_field(field,b))}):function(a,b){for(var result,i=0;i<fields_count;i++)if(result=fields[i].field,result=multipliers[i]*cmp(get_field(result,a),get_field(result,b)))return result;return 0}:null},Sifter.prototype.prepareSearch=function(query,options){if("object"==typeof query)return query;var option_fields=(options=extend({},options)).fields,option_sort=options.sort,option_sort_empty=options.sort_empty;return option_fields&&!is_array(option_fields)&&(options.fields=[option_fields]),option_sort&&!is_array(option_sort)&&(options.sort=[option_sort]),option_sort_empty&&!is_array(option_sort_empty)&&(options.sort_empty=[option_sort_empty]),{options:options,query:String(query||"").toLowerCase(),tokens:this.tokenize(query),total:0,items:[]}},Sifter.prototype.search=function(fn_sort,options){var score,fn_score,search=this.prepareSearch(fn_sort,options);return options=search.options,fn_sort=search.query,fn_score=options.score||this.getScoreFunction(search),fn_sort.length?this.iterator(this.items,function(item,id){score=fn_score(item),(!1===options.filter||0<score)&&search.items.push({score:score,id:id})}):this.iterator(this.items,function(item,id){search.items.push({score:1,id:id})}),(fn_sort=this.getSortFunction(search,options))&&search.items.sort(fn_sort),search.total=search.items.length,"number"==typeof options.limit&&(search.items=search.items.slice(0,options.limit)),search};var cmp=function(a,b){return"number"==typeof a&&"number"==typeof b?b<a?1:a<b?-1:0:(a=asciifold(String(a||"")),(b=asciifold(String(b||"")))<a?1:a<b?-1:0)},extend=function(a,b){for(var k,object,i=1,n=arguments.length;i<n;i++)if(object=arguments[i])for(k in object)object.hasOwnProperty(k)&&(a[k]=object[k]);return a},getattr=function(obj,name,nesting){if(obj&&name){if(!nesting)return obj[name];for(var names=name.split(".");names.length&&(obj=obj[names.shift()]););return obj}},trim=function(str){return(str+"").replace(/^\s+|\s+$|/g,"")},escape_regex=function(str){return(str+"").replace(/([.?*+^$[\]\\(){}|-])/g,"\\$1")},is_array=Array.isArray||"undefined"!=typeof $&&$.isArray||function(object){return"[object Array]"===Object.prototype.toString.call(object)},DIACRITICS={a:"[aḀḁĂăÂâǍǎȺⱥȦȧẠạÄäÀàÁáĀāÃãÅåąĄÃąĄ]",b:"[b␢βΒB฿𐌁ᛒ]",c:"[cĆćĈĉČčĊċC̄c̄ÇçḈḉȻȼƇƈɕᴄCc]",d:"[dĎďḊḋḐḑḌḍḒḓḎḏĐđD̦d̦ƉɖƊɗƋƌᵭᶁᶑȡᴅDdð]",e:"[eÉéÈèÊêḘḙĚěĔĕẼẽḚḛẺẻĖėËëĒēȨȩĘęᶒɆɇȄȅẾếỀềỄễỂểḜḝḖḗḔḕȆȇẸẹỆệⱸᴇEeɘǝƏƐε]",f:"[fƑƒḞḟ]",g:"[gɢ₲ǤǥĜĝĞğĢģƓɠĠġ]",h:"[hĤĥĦħḨḩẖẖḤḥḢḣɦʰǶƕ]",i:"[iÍíÌìĬĭÎîǏǐÏïḮḯĨĩĮįĪīỈỉȈȉȊȋỊịḬḭƗɨɨ̆ᵻᶖİiIıɪIi]",j:"[jȷĴĵɈɉʝɟʲ]",k:"[kƘƙꝀꝁḰḱǨǩḲḳḴḵκϰ₭]",l:"[lŁłĽľĻļĹĺḶḷḸḹḼḽḺḻĿŀȽƚⱠⱡⱢɫɬᶅɭȴʟLl]",n:"[nŃńǸǹŇňÑñṄṅŅņṆṇṊṋṈṉN̈n̈ƝɲȠƞᵰᶇɳȵɴNnŊŋ]",o:"[oØøÖöÓóÒòÔôǑǒŐőŎŏȮȯỌọƟɵƠơỎỏŌōÕõǪǫȌȍՕօ]",p:"[pṔṕṖṗⱣᵽƤƥᵱ]",q:"[qꝖꝗʠɊɋꝘꝙq̃]",r:"[rŔŕɌɍŘřŖŗṘṙȐȑȒȓṚṛⱤɽ]",s:"[sŚśṠṡṢṣꞨꞩŜŝŠšŞşȘșS̈s̈]",t:"[tŤťṪṫŢţṬṭƮʈȚțṰṱṮṯƬƭ]",u:"[uŬŭɄʉỤụÜüÚúÙùÛûǓǔŰűŬŭƯưỦủŪūŨũŲųȔȕ∪]",v:"[vṼṽṾṿƲʋꝞꝟⱱʋ]",w:"[wẂẃẀẁŴŵẄẅẆẇẈẉ]",x:"[xẌẍẊẋχ]",y:"[yÝýỲỳŶŷŸÿỸỹẎẏỴỵɎɏƳƴ]",z:"[zŹźẐẑŽžŻżẒẓẔẕƵƶ]"},asciifold=function(){var i,n,k,chunk,foreignletters="",lookup={};for(k in DIACRITICS)if(DIACRITICS.hasOwnProperty(k))for(foreignletters+=chunk=DIACRITICS[k].substring(2,DIACRITICS[k].length-1),i=0,n=chunk.length;i<n;i++)lookup[chunk.charAt(i)]=k;var regexp=new RegExp("["+foreignletters+"]","g");return function(str){return str.replace(regexp,function(foreignletter){return lookup[foreignletter]}).toLowerCase()}}();return Sifter}),function(root,factory){"function"==typeof define&&define.amd?define("microplugin",factory):"object"==typeof exports?module.exports=factory():root.MicroPlugin=factory()}(this,function(){var MicroPlugin={mixin:function(Interface){Interface.plugins={},Interface.prototype.initializePlugins=function(plugins){var i,n,key,queue=[];if(this.plugins={names:[],settings:{},requested:{},loaded:{}},utils.isArray(plugins))for(i=0,n=plugins.length;i<n;i++)"string"==typeof plugins[i]?queue.push(plugins[i]):(this.plugins.settings[plugins[i].name]=plugins[i].options,queue.push(plugins[i].name));else if(plugins)for(key in plugins)plugins.hasOwnProperty(key)&&(this.plugins.settings[key]=plugins[key],queue.push(key));for(;queue.length;)this.require(queue.shift())},Interface.prototype.loadPlugin=function(name){var plugins=this.plugins,plugin=Interface.plugins[name];if(!Interface.plugins.hasOwnProperty(name))throw new Error('Unable to find "'+name+'" plugin');plugins.requested[name]=!0,plugins.loaded[name]=plugin.fn.apply(this,[this.plugins.settings[name]||{}]),plugins.names.push(name)},Interface.prototype.require=function(name){var plugins=this.plugins;if(!this.plugins.loaded.hasOwnProperty(name)){if(plugins.requested[name])throw new Error('Plugin has circular dependency ("'+name+'")');this.loadPlugin(name)}return plugins.loaded[name]},Interface.define=function(name,fn){Interface.plugins[name]={name:name,fn:fn}}}},utils={isArray:Array.isArray||function(vArg){return"[object Array]"===Object.prototype.toString.call(vArg)}};return MicroPlugin}),function(root,factory){"function"==typeof define&&define.amd?define("selectize",["jquery","sifter","microplugin"],factory):"object"==typeof module&&"object"==typeof module.exports?module.exports=factory(require("jquery"),require("sifter"),require("microplugin")):root.Selectize=factory(root.jQuery,root.Sifter,root.MicroPlugin)}(this,function($,Sifter,MicroPlugin){"use strict";$.fn.removeHighlight=function(){return this.find("span.highlight").each(function(){this.parentNode.firstChild.nodeName;var parent=this.parentNode;parent.replaceChild(this.firstChild,this),parent.normalize()}).end()};function MicroEvent(){}MicroEvent.prototype={on:function(event,fct){this._events=this._events||{},this._events[event]=this._events[event]||[],this._events[event].push(fct)},off:function(event,fct){var n=arguments.length;return 0===n?delete this._events:1===n?delete this._events[event]:(this._events=this._events||{},void(event in this._events!=!1&&this._events[event].splice(this._events[event].indexOf(fct),1)))},trigger:function(event){if(this._events=this._events||{},event in this._events!=!1)for(var i=0;i<this._events[event].length;i++)this._events[event][i].apply(this,Array.prototype.slice.call(arguments,1))}},MicroEvent.mixin=function(destObject){for(var props=["on","off","trigger"],i=0;i<props.length;i++)destObject.prototype[props[i]]=MicroEvent.prototype[props[i]]};function isset(object){return void 0!==object}function hash_key(value){return null==value?null:"boolean"==typeof value?value?"1":"0":value+""}function escape_html(str){return(str+"").replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;")}function debounce_events(self,types,fn){var type,trigger=self.trigger,event_args={};for(type in self.trigger=function(){var type=arguments[0];if(-1===types.indexOf(type))return trigger.apply(self,arguments);event_args[type]=arguments},fn.apply(self,[]),self.trigger=trigger,event_args)event_args.hasOwnProperty(type)&&trigger.apply(self,event_args[type])}function getSelection(input){var sel,selLen,result={};return void 0===input?console.warn("WARN getSelection cannot locate input control"):"selectionStart"in input?(result.start=input.selectionStart,result.length=input.selectionEnd-result.start):document.selection&&(input.focus(),sel=document.selection.createRange(),selLen=document.selection.createRange().text.length,sel.moveStart("character",-input.value.length),result.start=sel.text.length-selLen,result.length=selLen),result}function measureString(str,$parent){return str?(Selectize.$testInput||(Selectize.$testInput=$("<span />").css({position:"absolute",width:"auto",padding:0,whiteSpace:"pre"}),$("<div />").css({position:"absolute",width:0,height:0,overflow:"hidden"}).append(Selectize.$testInput).appendTo("body")),Selectize.$testInput.text(str),function($from,$to,properties){var i,n,styles={};if(properties)for(i=0,n=properties.length;i<n;i++)styles[properties[i]]=$from.css(properties[i]);else styles=$from.css();$to.css(styles)}($parent,Selectize.$testInput,["letterSpacing","fontSize","fontFamily","fontWeight","textTransform"]),Selectize.$testInput.width()):0}function autoGrow($input){function update(e,selection){var keyCode,width,shift,placeholder;selection=selection||{},(e=e||window.event||{}).metaKey||e.altKey||!selection.force&&!1===$input.data("grow")||(width=$input.val(),e.type&&"keydown"===e.type.toLowerCase()&&(shift=48<=(keyCode=e.keyCode)&&keyCode<=57||65<=keyCode&&keyCode<=90||96<=keyCode&&keyCode<=111||186<=keyCode&&keyCode<=222||32===keyCode,46===keyCode||8===keyCode?(selection=getSelection($input[0])).length?width=width.substring(0,selection.start)+width.substring(selection.start+selection.length):8===keyCode&&selection.start?width=width.substring(0,selection.start-1)+width.substring(selection.start+1):46===keyCode&&void 0!==selection.start&&(width=width.substring(0,selection.start)+width.substring(selection.start+1)):shift&&(shift=e.shiftKey,placeholder=String.fromCharCode(e.keyCode),width+=placeholder=shift?placeholder.toUpperCase():placeholder.toLowerCase())),placeholder=$input.attr("placeholder"),(width=measureString(width=!width&&placeholder?placeholder:width,$input)+4)!==currentWidth&&(currentWidth=width,$input.width(width),$input.triggerHandler("resize")))}var currentWidth=null;$input.on("keydown keyup update blur",update),update()}var message,options,IS_MAC=/Mac/.test(navigator.userAgent),KEY_CMD=IS_MAC?91:17,KEY_CTRL=IS_MAC?18:17,SUPPORTS_VALIDITY_API=!/android/i.test(window.navigator.userAgent)&&!!document.createElement("input").validity,hook={before:function(self,method,fn){var original=self[method];self[method]=function(){return fn.apply(self,arguments),original.apply(self,arguments)}},after:function(self,method,fn){var original=self[method];self[method]=function(){var result=original.apply(self,arguments);return fn.apply(self,arguments),result}}},Selectize=function($input,settings){var i,n,input=$input[0];input.selectize=this;var fn,delay,timeout,dir=window.getComputedStyle&&window.getComputedStyle(input,null);if(dir=(dir=dir?dir.getPropertyValue("direction"):input.currentStyle&&input.currentStyle.direction)||$input.parents("[dir]:first").attr("dir")||"",$.extend(this,{order:0,settings:settings,$input:$input,tabIndex:$input.attr("tabindex")||"",tagType:"select"===input.tagName.toLowerCase()?1:2,rtl:/rtl/i.test(dir),eventNS:".selectize"+ ++Selectize.count,highlightedValue:null,isBlurring:!1,isOpen:!1,isDisabled:!1,isRequired:$input.is("[required]"),isInvalid:!1,isLocked:!1,isFocused:!1,isInputHidden:!1,isSetup:!1,isShiftDown:!1,isCmdDown:!1,isCtrlDown:!1,ignoreFocus:!1,ignoreBlur:!1,ignoreHover:!1,hasOptions:!1,currentResults:null,lastValue:"",lastValidValue:"",caretPos:0,loading:0,loadedSearches:{},$activeOption:null,$activeItems:[],optgroups:{},options:{},userOptions:{},items:[],renderCache:{},onSearchChange:null===settings.loadThrottle?this.onSearchChange:(fn=this.onSearchChange,delay=settings.loadThrottle,function(){var self=this,args=arguments;window.clearTimeout(timeout),timeout=window.setTimeout(function(){fn.apply(self,args)},delay)})}),this.sifter=new Sifter(this.options,{diacritics:settings.diacritics}),this.settings.options){for(i=0,n=this.settings.options.length;i<n;i++)this.registerOption(this.settings.options[i]);delete this.settings.options}if(this.settings.optgroups){for(i=0,n=this.settings.optgroups.length;i<n;i++)this.registerOptionGroup(this.settings.optgroups[i]);delete this.settings.optgroups}this.settings.mode=this.settings.mode||(1===this.settings.maxItems?"single":"multi"),"boolean"!=typeof this.settings.hideSelected&&(this.settings.hideSelected="multi"===this.settings.mode),this.initializePlugins(this.settings.plugins),this.setupCallbacks(),this.setupTemplates(),this.setup()};return MicroEvent.mixin(Selectize),void 0!==MicroPlugin?MicroPlugin.mixin(Selectize):(message="Dependency MicroPlugin is missing",options=(options={explanation:'Make sure you either: (1) are using the "standalone" version of Selectize, or (2) require MicroPlugin before you load Selectize.'})||{},console.error("Selectize: "+message),options.explanation&&(console.group&&console.group(),console.error(options.explanation),console.group&&console.groupEnd())),$.extend(Selectize.prototype,{setup:function(){var delimiterEscaped,$parent,fn,self=this,settings=self.settings,eventNS=self.eventNS,$window=$(window),$document=$(document),$input=self.$input,event=self.settings.mode,classes=$input.attr("class")||"",$wrapper=$("<div>").addClass(settings.wrapperClass).addClass(classes).addClass(event),$control=$("<div>").addClass(settings.inputClass).addClass("items").appendTo($wrapper),$control_input=$('<input type="text" autocomplete="new-password" autofill="no" />').appendTo($control).attr("tabindex",$input.is(":disabled")?"-1":self.tabIndex),inputId=$(settings.dropdownParent||$wrapper),selector=$("<div>").addClass(settings.dropdownClass).addClass(event).hide().appendTo(inputId),event=$("<div>").addClass(settings.dropdownContentClass).attr("tabindex","-1").appendTo(selector);(inputId=$input.attr("id"))&&($control_input.attr("id",inputId+"-selectized"),$("label[for='"+inputId+"']").attr("for",inputId+"-selectized")),self.settings.copyClassesToDropdown&&selector.addClass(classes),$wrapper.css({width:$input[0].style.width}),self.plugins.names.length&&(delimiterEscaped="plugin-"+self.plugins.names.join(" plugin-"),$wrapper.addClass(delimiterEscaped),selector.addClass(delimiterEscaped)),(null===settings.maxItems||1<settings.maxItems)&&1===self.tagType&&$input.attr("multiple","multiple"),self.settings.placeholder&&$control_input.attr("placeholder",settings.placeholder),!self.settings.splitOn&&self.settings.delimiter&&(delimiterEscaped=self.settings.delimiter.replace(/[-\/\\^$*+?.()|[\]{}]/g,"\\$&"),self.settings.splitOn=new RegExp("\\s*"+delimiterEscaped+"+\\s*")),$input.attr("autocorrect")&&$control_input.attr("autocorrect",$input.attr("autocorrect")),$input.attr("autocapitalize")&&$control_input.attr("autocapitalize",$input.attr("autocapitalize")),$control_input[0].type=$input[0].type,self.$wrapper=$wrapper,self.$control=$control,self.$control_input=$control_input,self.$dropdown=selector,self.$dropdown_content=event,selector.on("mouseenter mousedown click","[data-disabled]>[data-selectable]",function(e){e.stopImmediatePropagation()}),selector.on("mouseenter","[data-selectable]",function(){return self.onOptionHover.apply(self,arguments)}),selector.on("mousedown click","[data-selectable]",function(){return self.onOptionSelect.apply(self,arguments)}),event="mousedown",selector="*:not(input)",fn=function(){return self.onItemSelect.apply(self,arguments)},($parent=$control).on(event,selector,function(e){for(var child=e.target;child&&child.parentNode!==$parent[0];)child=child.parentNode;return e.currentTarget=child,fn.apply(this,[e])}),autoGrow($control_input),$control.on({mousedown:function(){return self.onMouseDown.apply(self,arguments)},click:function(){return self.onClick.apply(self,arguments)}}),$control_input.on({mousedown:function(e){e.stopPropagation()},keydown:function(){return self.onKeyDown.apply(self,arguments)},keyup:function(){return self.onKeyUp.apply(self,arguments)},keypress:function(){return self.onKeyPress.apply(self,arguments)},resize:function(){self.positionDropdown.apply(self,[])},blur:function(){return self.onBlur.apply(self,arguments)},focus:function(){return self.ignoreBlur=!1,self.onFocus.apply(self,arguments)},paste:function(){return self.onPaste.apply(self,arguments)}}),$document.on("keydown"+eventNS,function(e){self.isCmdDown=e[IS_MAC?"metaKey":"ctrlKey"],self.isCtrlDown=e[IS_MAC?"altKey":"ctrlKey"],self.isShiftDown=e.shiftKey}),$document.on("keyup"+eventNS,function(e){e.keyCode===KEY_CTRL&&(self.isCtrlDown=!1),16===e.keyCode&&(self.isShiftDown=!1),e.keyCode===KEY_CMD&&(self.isCmdDown=!1)}),$document.on("mousedown"+eventNS,function(e){if(self.isFocused){if(e.target===self.$dropdown[0]||e.target.parentNode===self.$dropdown[0])return!1;self.$control.has(e.target).length||e.target===self.$control[0]||self.blur(e.target)}}),$window.on(["scroll"+eventNS,"resize"+eventNS].join(" "),function(){self.isOpen&&self.positionDropdown.apply(self,arguments)}),$window.on("mousemove"+eventNS,function(){self.ignoreHover=!1}),this.revertSettings={$children:$input.children().detach(),tabindex:$input.attr("tabindex")},$input.attr("tabindex",-1).hide().after(self.$wrapper),$.isArray(settings.items)&&(self.lastValidValue=settings.items,self.setValue(settings.items),delete settings.items),SUPPORTS_VALIDITY_API&&$input.on("invalid"+eventNS,function(e){e.preventDefault(),self.isInvalid=!0,self.refreshState()}),self.updateOriginalInput(),self.refreshItems(),self.refreshState(),self.updatePlaceholder(),self.isSetup=!0,$input.is(":disabled")&&self.disable(),self.on("change",this.onChange),$input.data("selectize",self),$input.addClass("selectized"),self.trigger("initialize"),!0===settings.preload&&self.onSearchChange("")},setupTemplates:function(){var field_label=this.settings.labelField,field_optgroup=this.settings.optgroupLabelField,templates={optgroup:function(data){return'<div class="optgroup">'+data.html+"</div>"},optgroup_header:function(data,escape){return'<div class="optgroup-header">'+escape(data[field_optgroup])+"</div>"},option:function(data,escape){return'<div class="option">'+escape(data[field_label])+"</div>"},item:function(data,escape){return'<div class="item">'+escape(data[field_label])+"</div>"},option_create:function(data,escape){return'<div class="create">Add <strong>'+escape(data.input)+"</strong>&hellip;</div>"}};this.settings.render=$.extend({},templates,this.settings.render)},setupCallbacks:function(){var key,fn,callbacks={initialize:"onInitialize",change:"onChange",item_add:"onItemAdd",item_remove:"onItemRemove",clear:"onClear",option_add:"onOptionAdd",option_remove:"onOptionRemove",option_clear:"onOptionClear",optgroup_add:"onOptionGroupAdd",optgroup_remove:"onOptionGroupRemove",optgroup_clear:"onOptionGroupClear",dropdown_open:"onDropdownOpen",dropdown_close:"onDropdownClose",type:"onType",load:"onLoad",focus:"onFocus",blur:"onBlur",dropdown_item_activate:"onDropdownItemActivate",dropdown_item_deactivate:"onDropdownItemDeactivate"};for(key in callbacks)callbacks.hasOwnProperty(key)&&(fn=this.settings[callbacks[key]])&&this.on(key,fn)},onClick:function(e){this.isFocused&&this.isOpen||(this.focus(),e.preventDefault())},onMouseDown:function(e){var self=this,defaultPrevented=e.isDefaultPrevented();$(e.target);if(self.isFocused){if(e.target!==self.$control_input[0])return"single"===self.settings.mode?self.isOpen?self.close():self.open():defaultPrevented||self.setActiveItem(null),!1}else defaultPrevented||window.setTimeout(function(){self.focus()},0)},onChange:function(){""!==this.getValue()&&(this.lastValidValue=this.getValue()),this.$input.trigger("input"),this.$input.trigger("change")},onPaste:function(e){var self=this;self.isFull()||self.isInputHidden||self.isLocked?e.preventDefault():self.settings.splitOn&&setTimeout(function(){var pastedText=self.$control_input.val();if(pastedText.match(self.settings.splitOn))for(var splitInput=$.trim(pastedText).split(self.settings.splitOn),i=0,n=splitInput.length;i<n;i++)self.createItem(splitInput[i])},0)},onKeyPress:function(e){if(this.isLocked)return e&&e.preventDefault();var character=String.fromCharCode(e.keyCode||e.which);return this.settings.create&&"multi"===this.settings.mode&&character===this.settings.delimiter?(this.createItem(),e.preventDefault(),!1):void 0},onKeyDown:function(e){var $prev;e.target,this.$control_input[0];if(this.isLocked)9!==e.keyCode&&e.preventDefault();else{switch(e.keyCode){case 65:if(this.isCmdDown)return void this.selectAll();break;case 27:return void(this.isOpen&&(e.preventDefault(),e.stopPropagation(),this.close()));case 78:if(!e.ctrlKey||e.altKey)break;case 40:return!this.isOpen&&this.hasOptions?this.open():this.$activeOption&&(this.ignoreHover=!0,($prev=this.getAdjacentOption(this.$activeOption,1)).length&&this.setActiveOption($prev,!0,!0)),void e.preventDefault();case 80:if(!e.ctrlKey||e.altKey)break;case 38:return this.$activeOption&&(this.ignoreHover=!0,($prev=this.getAdjacentOption(this.$activeOption,-1)).length&&this.setActiveOption($prev,!0,!0)),void e.preventDefault();case 13:return void(this.isOpen&&this.$activeOption&&(this.onOptionSelect({currentTarget:this.$activeOption}),e.preventDefault()));case 37:return void this.advanceSelection(-1,e);case 39:return void this.advanceSelection(1,e);case 9:return this.settings.selectOnTab&&this.isOpen&&this.$activeOption&&(this.onOptionSelect({currentTarget:this.$activeOption}),this.isFull()||e.preventDefault()),void(this.settings.create&&this.createItem()&&e.preventDefault());case 8:case 46:return void this.deleteSelection(e)}!this.isFull()&&!this.isInputHidden||(IS_MAC?e.metaKey:e.ctrlKey)||e.preventDefault()}},onKeyUp:function(value){if(this.isLocked)return value&&value.preventDefault();value=this.$control_input.val()||"";this.lastValue!==value&&(this.lastValue=value,this.onSearchChange(value),this.refreshOptions(),this.trigger("type",value))},onSearchChange:function(value){var self=this,fn=self.settings.load;fn&&(self.loadedSearches.hasOwnProperty(value)||(self.loadedSearches[value]=!0,self.load(function(callback){fn.apply(self,[value,callback])})))},onFocus:function(e){var wasFocused=this.isFocused;if(this.isDisabled)return this.blur(),e&&e.preventDefault(),!1;this.ignoreFocus||(this.isFocused=!0,"focus"===this.settings.preload&&this.onSearchChange(""),wasFocused||this.trigger("focus"),this.$activeItems.length||(this.showInput(),this.setActiveItem(null),this.refreshOptions(!!this.settings.openOnFocus)),this.refreshState())},onBlur:function(deactivate,dest){var self=this;if(self.isFocused&&(self.isFocused=!1,!self.ignoreFocus)){if(!self.ignoreBlur&&document.activeElement===self.$dropdown_content[0])return self.ignoreBlur=!0,void self.onFocus(deactivate);deactivate=function(){self.close(),self.setTextboxValue(""),self.setActiveItem(null),self.setActiveOption(null),self.setCaret(self.items.length),self.refreshState(),dest&&dest.focus&&dest.focus(),self.isBlurring=!1,self.ignoreFocus=!1,self.trigger("blur")};self.isBlurring=!0,self.ignoreFocus=!0,self.settings.create&&self.settings.createOnBlur?self.createItem(null,!1,deactivate):deactivate()}},onOptionHover:function(e){this.ignoreHover||this.setActiveOption(e.currentTarget,!1)},onOptionSelect:function(e){var value,self=this;e.preventDefault&&(e.preventDefault(),e.stopPropagation()),(value=$(e.currentTarget)).hasClass("create")?self.createItem(null,function(){self.settings.closeAfterSelect&&self.close()}):void 0!==(value=value.attr("data-value"))&&(self.lastQuery=null,self.setTextboxValue(""),self.addItem(value),self.settings.closeAfterSelect?self.close():!self.settings.hideSelected&&e.type&&/mouse/.test(e.type)&&self.setActiveOption(self.getOption(value)))},onItemSelect:function(e){this.isLocked||"multi"===this.settings.mode&&(e.preventDefault(),this.setActiveItem(e.currentTarget,e))},load:function(fn){var self=this,$wrapper=self.$wrapper.addClass(self.settings.loadingClass);self.loading++,fn.apply(self,[function(results){self.loading=Math.max(self.loading-1,0),results&&results.length&&(self.addOption(results),self.refreshOptions(self.isFocused&&!self.isInputHidden)),self.loading||$wrapper.removeClass(self.settings.loadingClass),self.trigger("load",results)}])},getTextboxValue:function(){return this.$control_input.val()},setTextboxValue:function(value){var $input=this.$control_input;$input.val()!==value&&($input.val(value).triggerHandler("update"),this.lastValue=value)},getValue:function(){return 1===this.tagType&&this.$input.attr("multiple")?this.items:this.items.join(this.settings.delimiter)},setValue:function(value,silent){debounce_events(this,silent?[]:["change"],function(){this.clear(silent),this.addItems(value,silent)})},setMaxItems:function(value){0===value&&(value=null),this.settings.maxItems=value,this.settings.mode=this.settings.mode||(1===this.settings.maxItems?"single":"multi"),this.refreshState()},setActiveItem:function($item,e){var i,idx,begin,end,item,swap;if("single"!==this.settings.mode){if(!($item=$($item)).length)return $(this.$activeItems).removeClass("active"),this.$activeItems=[],void(this.isFocused&&this.showInput());if("mousedown"===(idx=e&&e.type.toLowerCase())&&this.isShiftDown&&this.$activeItems.length){for(swap=this.$control.children(".active:last"),begin=Array.prototype.indexOf.apply(this.$control[0].childNodes,[swap[0]]),(end=Array.prototype.indexOf.apply(this.$control[0].childNodes,[$item[0]]))<begin&&(swap=begin,begin=end,end=swap),i=begin;i<=end;i++)item=this.$control[0].childNodes[i],-1===this.$activeItems.indexOf(item)&&($(item).addClass("active"),this.$activeItems.push(item));e.preventDefault()}else"mousedown"===idx&&this.isCtrlDown||"keydown"===idx&&this.isShiftDown?$item.hasClass("active")?(idx=this.$activeItems.indexOf($item[0]),this.$activeItems.splice(idx,1),$item.removeClass("active")):this.$activeItems.push($item.addClass("active")[0]):($(this.$activeItems).removeClass("active"),this.$activeItems=[$item.addClass("active")[0]]);this.hideInput(),this.isFocused||this.focus()}},setActiveOption:function(scroll_bottom,scroll,animate){var height_menu,height_item,y,scroll_top;this.$activeOption&&(this.$activeOption.removeClass("active"),this.trigger("dropdown_item_deactivate",this.$activeOption.attr("data-value"))),this.$activeOption=null,(scroll_bottom=$(scroll_bottom)).length&&(this.$activeOption=scroll_bottom.addClass("active"),this.isOpen&&this.trigger("dropdown_item_activate",this.$activeOption.attr("data-value")),!scroll&&isset(scroll)||(height_menu=this.$dropdown_content.height(),height_item=this.$activeOption.outerHeight(!0),scroll=this.$dropdown_content.scrollTop()||0,scroll_bottom=(scroll_top=y=this.$activeOption.offset().top-this.$dropdown_content.offset().top+scroll)-height_menu+height_item,height_menu+scroll<y+height_item?this.$dropdown_content.stop().animate({scrollTop:scroll_bottom},animate?this.settings.scrollDuration:0):y<scroll&&this.$dropdown_content.stop().animate({scrollTop:scroll_top},animate?this.settings.scrollDuration:0)))},selectAll:function(){"single"!==this.settings.mode&&(this.$activeItems=Array.prototype.slice.apply(this.$control.children(":not(input)").addClass("active")),this.$activeItems.length&&(this.hideInput(),this.close()),this.focus())},hideInput:function(){this.setTextboxValue(""),this.$control_input.css({opacity:0,position:"absolute",left:this.rtl?1e4:-1e4}),this.isInputHidden=!0},showInput:function(){this.$control_input.css({opacity:1,position:"relative",left:0}),this.isInputHidden=!1},focus:function(){var self=this;return self.isDisabled||(self.ignoreFocus=!0,self.$control_input[0].focus(),window.setTimeout(function(){self.ignoreFocus=!1,self.onFocus()},0)),self},blur:function(dest){return this.$control_input[0].blur(),this.onBlur(null,dest),this},getScoreFunction:function(query){return this.sifter.getScoreFunction(query,this.getSearchOptions())},getSearchOptions:function(){var settings=this.settings,sort=settings.sortField;return"string"==typeof sort&&(sort=[{field:sort}]),{fields:settings.searchField,conjunction:settings.searchConjunction,sort:sort,nesting:settings.nesting}},search:function(query){var i,result,calculateScore,settings=this.settings,options=this.getSearchOptions();if(settings.score&&"function"!=typeof(calculateScore=this.settings.score.apply(this,[query])))throw new Error('Selectize "score" setting must be a function that returns a function');if(query!==this.lastQuery?(this.lastQuery=query,result=this.sifter.search(query,$.extend(options,{score:calculateScore})),this.currentResults=result):result=$.extend(!0,{},this.currentResults),settings.hideSelected)for(i=result.items.length-1;0<=i;i--)-1!==this.items.indexOf(hash_key(result.items[i].id))&&result.items.splice(i,1);return result},refreshOptions:function(triggerDropdown){var i,j,k,groups,groups_order,option,option_html,optgroup,optgroups,html,html_children,has_create_option,$active,$create;void 0===triggerDropdown&&(triggerDropdown=!0);var d,tmp,self=this,query=$.trim(self.$control_input.val()),results=self.search(query),$dropdown_content=self.$dropdown_content,$active_before=self.$activeOption&&hash_key(self.$activeOption.attr("data-value")),n=results.items.length;for("number"==typeof self.settings.maxOptions&&(n=Math.min(n,self.settings.maxOptions)),groups={},groups_order=[],i=0;i<n;i++)for(option=self.options[results.items[i].id],option_html=self.render("option",option),optgroup=option[self.settings.optgroupField]||"",j=0,k=(optgroups=$.isArray(optgroup)?optgroup:[optgroup])&&optgroups.length;j<k;j++)optgroup=optgroups[j],self.optgroups.hasOwnProperty(optgroup)||(optgroup=""),groups.hasOwnProperty(optgroup)||(groups[optgroup]=document.createDocumentFragment(),groups_order.push(optgroup)),groups[optgroup].appendChild(option_html);for(this.settings.lockOptgroupOrder&&groups_order.sort(function(a,b){return(self.optgroups[a].$order||0)-(self.optgroups[b].$order||0)}),html=document.createDocumentFragment(),i=0,n=groups_order.length;i<n;i++)optgroup=groups_order[i],self.optgroups.hasOwnProperty(optgroup)&&groups[optgroup].childNodes.length?((html_children=document.createDocumentFragment()).appendChild(self.render("optgroup_header",self.optgroups[optgroup])),html_children.appendChild(groups[optgroup]),html.appendChild(self.render("optgroup",$.extend({},self.optgroups[optgroup],{html:(d=html_children,tmp=void 0,(tmp=document.createElement("div")).appendChild(d.cloneNode(!0)),tmp.innerHTML),dom:html_children})))):html.appendChild(groups[optgroup]);if($dropdown_content.html(html),self.settings.highlight&&($dropdown_content.removeHighlight(),results.query.length&&results.tokens.length))for(i=0,n=results.tokens.length;i<n;i++)!function($element,pattern){if("string"!=typeof pattern||pattern.length){var regex="string"==typeof pattern?new RegExp(pattern,"i"):pattern,highlight=function(node){var skip=0;if(3===node.nodeType){var spannode,middleclone,middlebit=node.data.search(regex);0<=middlebit&&0<node.data.length&&(middleclone=node.data.match(regex),(spannode=document.createElement("span")).className="highlight",(middlebit=node.splitText(middlebit)).splitText(middleclone[0].length),middleclone=middlebit.cloneNode(!0),spannode.appendChild(middleclone),middlebit.parentNode.replaceChild(spannode,middlebit),skip=1)}else if(1===node.nodeType&&node.childNodes&&!/(script|style)/i.test(node.tagName)&&("highlight"!==node.className||"SPAN"!==node.tagName))for(var i=0;i<node.childNodes.length;++i)i+=highlight(node.childNodes[i]);return skip};$element.each(function(){highlight(this)})}}($dropdown_content,results.tokens[i].regex);if(!self.settings.hideSelected)for(self.$dropdown.find(".selected").removeClass("selected"),i=0,n=self.items.length;i<n;i++)self.getOption(self.items[i]).addClass("selected");(has_create_option=self.canCreate(query))&&($dropdown_content.prepend(self.render("option_create",{input:query})),$create=$($dropdown_content[0].childNodes[0])),self.hasOptions=0<results.items.length||has_create_option,self.hasOptions?(0<results.items.length?(($active_before=$active_before&&self.getOption($active_before))&&$active_before.length?$active=$active_before:"single"===self.settings.mode&&self.items.length&&($active=self.getOption(self.items[0])),$active&&$active.length||($active=$create&&!self.settings.addPrecedence?self.getAdjacentOption($create,1):$dropdown_content.find("[data-selectable]:first"))):$active=$create,self.setActiveOption($active),triggerDropdown&&!self.isOpen&&self.open()):(self.setActiveOption(null),triggerDropdown&&self.isOpen&&self.close())},addOption:function(data){var i,n,value;if($.isArray(data))for(i=0,n=data.length;i<n;i++)this.addOption(data[i]);else(value=this.registerOption(data))&&(this.userOptions[value]=!0,this.lastQuery=null,this.trigger("option_add",value,data))},registerOption:function(data){var key=hash_key(data[this.settings.valueField]);return null!=key&&!this.options.hasOwnProperty(key)&&(data.$order=data.$order||++this.order,this.options[key]=data,key)},registerOptionGroup:function(data){var key=hash_key(data[this.settings.optgroupValueField]);return!!key&&(data.$order=data.$order||++this.order,this.optgroups[key]=data,key)},addOptionGroup:function(id,data){data[this.settings.optgroupValueField]=id,(id=this.registerOptionGroup(data))&&this.trigger("optgroup_add",id,data)},removeOptionGroup:function(id){this.optgroups.hasOwnProperty(id)&&(delete this.optgroups[id],this.renderCache={},this.trigger("optgroup_remove",id))},clearOptionGroups:function(){this.optgroups={},this.renderCache={},this.trigger("optgroup_clear")},updateOption:function($item,$item_new){var value_new,cache_items,cache_options;if($item=hash_key($item),value_new=hash_key($item_new[this.settings.valueField]),null!==$item&&this.options.hasOwnProperty($item)){if("string"!=typeof value_new)throw new Error("Value must be set in option data");cache_options=this.options[$item].$order,value_new!==$item&&(delete this.options[$item],-1!==(cache_items=this.items.indexOf($item))&&this.items.splice(cache_items,1,value_new)),$item_new.$order=$item_new.$order||cache_options,this.options[value_new]=$item_new,cache_items=this.renderCache.item,cache_options=this.renderCache.option,cache_items&&(delete cache_items[$item],delete cache_items[value_new]),cache_options&&(delete cache_options[$item],delete cache_options[value_new]),-1!==this.items.indexOf(value_new)&&($item=this.getItem($item),$item_new=$(this.render("item",$item_new)),$item.hasClass("active")&&$item_new.addClass("active"),$item.replaceWith($item_new)),this.lastQuery=null,this.isOpen&&this.refreshOptions(!1)}},removeOption:function(value,silent){value=hash_key(value);var cache_items=this.renderCache.item,cache_options=this.renderCache.option;cache_items&&delete cache_items[value],cache_options&&delete cache_options[value],delete this.userOptions[value],delete this.options[value],this.lastQuery=null,this.trigger("option_remove",value),this.removeItem(value,silent)},clearOptions:function(silent){var self=this;self.loadedSearches={},self.userOptions={},self.renderCache={};var options=self.options;$.each(self.options,function(key,value){-1==self.items.indexOf(key)&&delete options[key]}),self.options=self.sifter.items=options,self.lastQuery=null,self.trigger("option_clear"),self.clear(silent)},getOption:function(value){return this.getElementWithValue(value,this.$dropdown_content.find("[data-selectable]"))},getAdjacentOption:function($option,index){var $options=this.$dropdown.find("[data-selectable]"),index=$options.index($option)+index;return 0<=index&&index<$options.length?$options.eq(index):$()},getElementWithValue:function(value,$els){if(null!=(value=hash_key(value)))for(var i=0,n=$els.length;i<n;i++)if($els[i].getAttribute("data-value")===value)return $($els[i]);return $()},getElementWithTextContent:function(textContent,ignoreCase,$els){if(null!=(textContent=hash_key(textContent)))for(var i=0,n=$els.length;i<n;i++){var eleTextContent=$els[i].textContent;if(1==ignoreCase&&(eleTextContent=null!==eleTextContent?eleTextContent.toLowerCase():null,textContent=textContent.toLowerCase()),eleTextContent===textContent)return $($els[i])}return $()},getItem:function(value){return this.getElementWithValue(value,this.$control.children())},getFirstItemMatchedByTextContent:function(textContent,ignoreCase){return ignoreCase=null!==ignoreCase&&!0===ignoreCase,this.getElementWithTextContent(textContent,ignoreCase,this.$dropdown_content.find("[data-selectable]"))},addItems:function(control,silent){this.buffer=document.createDocumentFragment();for(var childNodes=this.$control[0].childNodes,i=0;i<childNodes.length;i++)this.buffer.appendChild(childNodes[i]);for(var items=$.isArray(control)?control:[control],i=0,n=items.length;i<n;i++)this.isPending=i<n-1,this.addItem(items[i],silent);control=this.$control[0];control.insertBefore(this.buffer,control.firstChild),this.buffer=null},addItem:function(value,silent){debounce_events(this,silent?[]:["change"],function(){var $item,$options,value_next,inputMode=this.settings.mode;value=hash_key(value),-1===this.items.indexOf(value)?this.options.hasOwnProperty(value)&&("single"===inputMode&&this.clear(silent),"multi"===inputMode&&this.isFull()||($item=$(this.render("item",this.options[value])),value_next=this.isFull(),this.items.splice(this.caretPos,0,value),this.insertAtCaret($item),this.isPending&&(value_next||!this.isFull())||this.refreshState(),this.isSetup&&($options=this.$dropdown_content.find("[data-selectable]"),this.isPending||(value_next=this.getOption(value),value_next=this.getAdjacentOption(value_next,1).attr("data-value"),this.refreshOptions(this.isFocused&&"single"!==inputMode),value_next&&this.setActiveOption(this.getOption(value_next))),!$options.length||this.isFull()?this.close():this.isPending||this.positionDropdown(),this.updatePlaceholder(),this.trigger("item_add",value,$item),this.isPending||this.updateOriginalInput({silent:silent})))):"single"===inputMode&&this.close()})},removeItem:function(value,silent){var i,idx,$item=value instanceof $?value:this.getItem(value);value=hash_key($item.attr("data-value")),-1!==(i=this.items.indexOf(value))&&(this.trigger("item_before_remove",value,$item),$item.remove(),$item.hasClass("active")&&(idx=this.$activeItems.indexOf($item[0]),this.$activeItems.splice(idx,1)),this.items.splice(i,1),this.lastQuery=null,!this.settings.persist&&this.userOptions.hasOwnProperty(value)&&this.removeOption(value,silent),i<this.caretPos&&this.setCaret(this.caretPos-1),this.refreshState(),this.updatePlaceholder(),this.updateOriginalInput({silent:silent}),this.positionDropdown(),this.trigger("item_remove",value,$item))},createItem:function(output,triggerDropdown){var self=this,caret=self.caretPos;output=output||$.trim(self.$control_input.val()||"");var callback=arguments[arguments.length-1];if("function"!=typeof callback&&(callback=function(){}),"boolean"!=typeof triggerDropdown&&(triggerDropdown=!0),!self.canCreate(output))return callback(),!1;self.lock();var fn,called,setup="function"==typeof self.settings.create?this.settings.create:function(input){var data={};return data[self.settings.labelField]=input,data[self.settings.valueField]=input,data},create=(called=!(fn=function(data){if(self.unlock(),!data||"object"!=typeof data)return callback();var value=hash_key(data[self.settings.valueField]);if("string"!=typeof value)return callback();self.setTextboxValue(""),self.addOption(data),self.setCaret(caret),self.addItem(value),self.refreshOptions(triggerDropdown&&"single"!==self.settings.mode),callback(data)}),function(){called||(called=!0,fn.apply(this,arguments))}),output=setup.apply(this,[output,create]);return void 0!==output&&create(output),!0},refreshItems:function(){this.lastQuery=null,this.isSetup&&this.addItem(this.items),this.refreshState(),this.updateOriginalInput()},refreshState:function(){this.refreshValidityState(),this.refreshClasses()},refreshValidityState:function(){if(!this.isRequired)return!1;var invalid=!this.items.length;this.isInvalid=invalid,this.$control_input.prop("required",invalid),this.$input.prop("required",!invalid)},refreshClasses:function(){var isFull=this.isFull(),isLocked=this.isLocked;this.$wrapper.toggleClass("rtl",this.rtl),this.$control.toggleClass("focus",this.isFocused).toggleClass("disabled",this.isDisabled).toggleClass("required",this.isRequired).toggleClass("invalid",this.isInvalid).toggleClass("locked",isLocked).toggleClass("full",isFull).toggleClass("not-full",!isFull).toggleClass("input-active",this.isFocused&&!this.isInputHidden).toggleClass("dropdown-active",this.isOpen).toggleClass("has-options",!$.isEmptyObject(this.options)).toggleClass("has-items",0<this.items.length),this.$control_input.data("grow",!isFull&&!isLocked)},isFull:function(){return null!==this.settings.maxItems&&this.items.length>=this.settings.maxItems},updateOriginalInput:function(opts){var i,n,options,label;if(opts=opts||{},1===this.tagType){for(options=[],i=0,n=this.items.length;i<n;i++)label=this.options[this.items[i]][this.settings.labelField]||"",options.push('<option value="'+escape_html(this.items[i])+'" selected="selected">'+escape_html(label)+"</option>");options.length||this.$input.attr("multiple")||options.push('<option value="" selected="selected"></option>'),this.$input.html(options.join(""))}else this.$input.val(this.getValue()),this.$input.attr("value",this.$input.val());this.isSetup&&(opts.silent||this.trigger("change",this.$input.val()))},updatePlaceholder:function(){var $input;this.settings.placeholder&&($input=this.$control_input,this.items.length?$input.removeAttr("placeholder"):$input.attr("placeholder",this.settings.placeholder),$input.triggerHandler("update",{force:!0}))},open:function(){this.isLocked||this.isOpen||"multi"===this.settings.mode&&this.isFull()||(this.focus(),this.isOpen=!0,this.refreshState(),this.$dropdown.css({visibility:"hidden",display:"block"}),this.positionDropdown(),this.$dropdown.css({visibility:"visible"}),this.trigger("dropdown_open",this.$dropdown))},close:function(){var trigger=this.isOpen;"single"===this.settings.mode&&this.items.length&&(this.hideInput(),this.isBlurring&&this.$control_input.blur()),this.isOpen=!1,this.$dropdown.hide(),this.setActiveOption(null),this.refreshState(),trigger&&this.trigger("dropdown_close",this.$dropdown)},positionDropdown:function(){var $control=this.$control,offset="body"===this.settings.dropdownParent?$control.offset():$control.position();offset.top+=$control.outerHeight(!0),this.$dropdown.css({width:$control[0].getBoundingClientRect().width,top:offset.top,left:offset.left})},clear:function(silent){this.items.length&&(this.$control.children(":not(input)").remove(),this.items=[],this.lastQuery=null,this.setCaret(0),this.setActiveItem(null),this.updatePlaceholder(),this.updateOriginalInput({silent:silent}),this.refreshState(),this.showInput(),this.trigger("clear"))},insertAtCaret:function(target){var caret=Math.min(this.caretPos,this.items.length),el=target[0],target=this.buffer||this.$control[0];0===caret?target.insertBefore(el,target.firstChild):target.insertBefore(el,target.childNodes[caret]),this.setCaret(caret+1)},deleteSelection:function(e){var i,n,values,option_select,$option_select,caret,direction=e&&8===e.keyCode?-1:1,selection=getSelection(this.$control_input[0]);if(this.$activeOption&&!this.settings.hideSelected&&(option_select=this.getAdjacentOption(this.$activeOption,-1).attr("data-value")),values=[],this.$activeItems.length){for(caret=this.$control.children(".active:"+(0<direction?"last":"first")),caret=this.$control.children(":not(input)").index(caret),0<direction&&caret++,i=0,n=this.$activeItems.length;i<n;i++)values.push($(this.$activeItems[i]).attr("data-value"));e&&(e.preventDefault(),e.stopPropagation())}else(this.isFocused||"single"===this.settings.mode)&&this.items.length&&(direction<0&&0===selection.start&&0===selection.length?values.push(this.items[this.caretPos-1]):0<direction&&selection.start===this.$control_input.val().length&&values.push(this.items[this.caretPos]));if(!values.length||"function"==typeof this.settings.onDelete&&!1===this.settings.onDelete.apply(this,[values]))return!1;for(void 0!==caret&&this.setCaret(caret);values.length;)this.removeItem(values.pop());return this.showInput(),this.positionDropdown(),this.refreshOptions(!0),option_select&&($option_select=this.getOption(option_select)).length&&this.setActiveOption($option_select),!0},advanceSelection:function(direction,e){var selection,valueLength,idx;0!==direction&&(this.rtl&&(direction*=-1),idx=0<direction?"last":"first",selection=getSelection(this.$control_input[0]),this.isFocused&&!this.isInputHidden?(valueLength=this.$control_input.val().length,(direction<0?0!==selection.start||0!==selection.length:selection.start!==valueLength)||valueLength||this.advanceCaret(direction,e)):(idx=this.$control.children(".active:"+idx)).length&&(idx=this.$control.children(":not(input)").index(idx),this.setActiveItem(null),this.setCaret(0<direction?idx+1:idx)))},advanceCaret:function(direction,e){var $adj;0!==direction&&($adj=0<direction?"next":"prev",this.isShiftDown?($adj=this.$control_input[$adj]()).length&&(this.hideInput(),this.setActiveItem($adj),e&&e.preventDefault()):this.setCaret(this.caretPos+direction))},setCaret:function(i){if(i="single"===this.settings.mode?this.items.length:Math.max(0,Math.min(this.items.length,i)),!this.isPending)for(var $child,$children=this.$control.children(":not(input)"),j=0,n=$children.length;j<n;j++)$child=$($children[j]).detach(),j<i?this.$control_input.before($child):this.$control.append($child);this.caretPos=i},lock:function(){this.close(),this.isLocked=!0,this.refreshState()},unlock:function(){this.isLocked=!1,this.refreshState()},disable:function(){this.$input.prop("disabled",!0),this.$control_input.prop("disabled",!0).prop("tabindex",-1),this.isDisabled=!0,this.lock()},enable:function(){this.$input.prop("disabled",!1),this.$control_input.prop("disabled",!1).prop("tabindex",this.tabIndex),this.isDisabled=!1,this.unlock()},destroy:function(){var eventNS=this.eventNS,revertSettings=this.revertSettings;this.trigger("destroy"),this.off(),this.$wrapper.remove(),this.$dropdown.remove(),this.$input.html("").append(revertSettings.$children).removeAttr("tabindex").removeClass("selectized").attr({tabindex:revertSettings.tabindex}).show(),this.$control_input.removeData("grow"),this.$input.removeData("selectize"),0==--Selectize.count&&Selectize.$testInput&&(Selectize.$testInput.remove(),Selectize.$testInput=void 0),$(window).off(eventNS),$(document).off(eventNS),$(document.body).off(eventNS),delete this.$input[0].selectize},render:function(templateName,data){var value,id,html="",cache=!1;return(cache="option"===templateName||"item"===templateName?!!(value=hash_key(data[this.settings.valueField])):cache)&&(isset(this.renderCache[templateName])||(this.renderCache[templateName]={}),this.renderCache[templateName].hasOwnProperty(value))?this.renderCache[templateName][value]:(html=$(this.settings.render[templateName].apply(this,[data,escape_html])),"option"===templateName||"option_create"===templateName?data[this.settings.disabledField]||html.attr("data-selectable",""):"optgroup"===templateName&&(id=data[this.settings.optgroupValueField]||"",html.attr("data-group",id),data[this.settings.disabledField]&&html.attr("data-disabled","")),"option"!==templateName&&"item"!==templateName||html.attr("data-value",value||""),cache&&(this.renderCache[templateName][value]=html[0]),html[0])},clearCache:function(templateName){void 0===templateName?this.renderCache={}:delete this.renderCache[templateName]},canCreate:function(input){if(!this.settings.create)return!1;var filter=this.settings.createFilter;return input.length&&("function"!=typeof filter||filter.apply(this,[input]))&&("string"!=typeof filter||new RegExp(filter).test(input))&&(!(filter instanceof RegExp)||filter.test(input))}}),Selectize.count=0,Selectize.defaults={options:[],optgroups:[],plugins:[],delimiter:",",splitOn:null,persist:!0,diacritics:!0,create:!1,createOnBlur:!1,createFilter:null,highlight:!0,openOnFocus:!0,maxOptions:1e3,maxItems:null,hideSelected:null,addPrecedence:!1,selectOnTab:!0,preload:!1,allowEmptyOption:!1,closeAfterSelect:!1,scrollDuration:60,loadThrottle:300,loadingClass:"loading",dataAttr:"data-data",optgroupField:"optgroup",valueField:"value",labelField:"text",disabledField:"disabled",optgroupLabelField:"label",optgroupValueField:"value",lockOptgroupOrder:!1,sortField:"$order",searchField:["text"],searchConjunction:"and",mode:null,wrapperClass:"selectize-control",inputClass:"selectize-input",dropdownClass:"selectize-dropdown",dropdownContentClass:"selectize-dropdown-content",dropdownParent:null,copyClassesToDropdown:!0,render:{}},$.fn.selectize=function(settings_user){function init_select($input,settings_element){function readData(data){return"string"==typeof(data=attr_data&&data.attr(attr_data))&&data.length?JSON.parse(data):null}function addOption($option,group){$option=$($option);var option,value=hash_key($option.val());(value||settings.allowEmptyOption)&&(optionsMap.hasOwnProperty(value)?group&&((option=optionsMap[value][field_optgroup])?$.isArray(option)?option.push(group):optionsMap[value][field_optgroup]=[option,group]:optionsMap[value][field_optgroup]=group):((option=readData($option)||{})[field_label]=option[field_label]||$option.text(),option[field_value]=option[field_value]||value,option[field_disabled]=option[field_disabled]||$option.prop("disabled"),option[field_optgroup]=option[field_optgroup]||group,optionsMap[value]=option,options.push(option),$option.is(":selected")&&settings_element.items.push(value)))}var i,n,tagName,$children,options=settings_element.options,optionsMap={};for(settings_element.maxItems=$input.attr("multiple")?null:1,i=0,n=($children=$input.children()).length;i<n;i++)"optgroup"===(tagName=$children[i].tagName.toLowerCase())?function($optgroup){var i,n,id,optgroup,$options;for((id=($optgroup=$($optgroup)).attr("label"))&&((optgroup=readData($optgroup)||{})[field_optgroup_label]=id,optgroup[field_optgroup_value]=id,optgroup[field_disabled]=$optgroup.prop("disabled"),settings_element.optgroups.push(optgroup)),i=0,n=($options=$("option",$optgroup)).length;i<n;i++)addOption($options[i],id)}($children[i]):"option"===tagName&&addOption($children[i])}var defaults=$.fn.selectize.defaults,settings=$.extend({},defaults,settings_user),attr_data=settings.dataAttr,field_label=settings.labelField,field_value=settings.valueField,field_disabled=settings.disabledField,field_optgroup=settings.optgroupField,field_optgroup_label=settings.optgroupLabelField,field_optgroup_value=settings.optgroupValueField;return this.each(function(){var $input,tag_name,settings_element;this.selectize||($input=$(this),tag_name=this.tagName.toLowerCase(),settings_element={placeholder:settings_element=!(settings_element=$input.attr("placeholder")||$input.attr("data-placeholder"))&&!settings.allowEmptyOption?$input.children('option[value=""]').text():settings_element,options:[],optgroups:[],items:[]},("select"===tag_name?init_select:function(value,settings_element){var i,n,values,option,data_raw=value.attr(attr_data);if(data_raw)for(settings_element.options=JSON.parse(data_raw),i=0,n=settings_element.options.length;i<n;i++)settings_element.items.push(settings_element.options[i][field_value]);else{value=$.trim(value.val()||"");if(settings.allowEmptyOption||value.length){for(i=0,n=(values=value.split(settings.delimiter)).length;i<n;i++)(option={})[field_label]=values[i],option[field_value]=values[i],settings_element.options.push(option);settings_element.items=values}}})($input,settings_element),new Selectize($input,$.extend(!0,{},defaults,settings_element,settings_user)))})},$.fn.selectize.defaults=Selectize.defaults,$.fn.selectize.support={validity:SUPPORTS_VALIDITY_API},Selectize.define("auto_select_on_type",function(options){var originalBlur,self=this;self.onBlur=(originalBlur=self.onBlur,function(e){var $matchedItem=self.getFirstItemMatchedByTextContent(self.lastValue,!0);return void 0!==$matchedItem.attr("data-value")&&self.getValue()!==$matchedItem.attr("data-value")&&self.setValue($matchedItem.attr("data-value")),originalBlur.apply(this,arguments)})}),Selectize.define("autofill_disable",function(options){var original,self=this;self.setup=(original=self.setup,function(){original.apply(self,arguments),self.$control_input.attr({autocomplete:"new-password",autofill:"no"})})}),Selectize.define("drag_drop",function(options){if(!$.fn.sortable)throw new Error('The "drag_drop" plugin requires jQuery UI "sortable".');var self,original;"multi"===this.settings.mode&&((self=this).lock=(original=self.lock,function(){var sortable=self.$control.data("sortable");return sortable&&sortable.disable(),original.apply(self,arguments)}),self.unlock=function(){var original=self.unlock;return function(){var sortable=self.$control.data("sortable");return sortable&&sortable.enable(),original.apply(self,arguments)}}(),self.setup=function(){var original=self.setup;return function(){original.apply(this,arguments);var $control=self.$control.sortable({items:"[data-value]",forcePlaceholderSize:!0,disabled:self.isLocked,start:function(e,ui){ui.placeholder.css("width",ui.helper.css("width")),$control.css({overflow:"visible"})},stop:function(){$control.css({overflow:"hidden"});var active=self.$activeItems?self.$activeItems.slice():null,values=[];$control.children("[data-value]").each(function(){values.push($(this).attr("data-value"))}),self.setValue(values),self.setActiveItem(active)}})}}())}),Selectize.define("dropdown_header",function(options){var original,self=this;options=$.extend({title:"Untitled",headerClass:"selectize-dropdown-header",titleRowClass:"selectize-dropdown-header-title",labelClass:"selectize-dropdown-header-label",closeClass:"selectize-dropdown-header-close",html:function(data){return'<div class="'+data.headerClass+'"><div class="'+data.titleRowClass+'"><span class="'+data.labelClass+'">'+data.title+'</span><a href="javascript:void(0)" class="'+data.closeClass+'">&times;</a></div></div>'}},options),self.setup=(original=self.setup,function(){original.apply(self,arguments),self.$dropdown_header=$(options.html(options)),self.$dropdown.prepend(self.$dropdown_header)})}),Selectize.define("optgroup_columns",function(options){var original,self=this;options=$.extend({equalizeWidth:!0,equalizeHeight:!0},options),this.getAdjacentOption=function($option,index){var $options=$option.closest("[data-group]").find("[data-selectable]"),index=$options.index($option)+index;return 0<=index&&index<$options.length?$options.eq(index):$()},this.onKeyDown=(original=self.onKeyDown,function(e){var $option,$options;return!this.isOpen||37!==e.keyCode&&39!==e.keyCode?original.apply(this,arguments):(self.ignoreHover=!0,$option=($options=this.$activeOption.closest("[data-group]")).find("[data-selectable]").index(this.$activeOption),void(($option=($options=($options=37===e.keyCode?$options.prev("[data-group]"):$options.next("[data-group]")).find("[data-selectable]")).eq(Math.min($options.length-1,$option))).length&&this.setActiveOption($option)))});function equalizeSizes(){var i,height_max,width_last,width_parent,$optgroups=$("[data-group]",self.$dropdown_content),n=$optgroups.length;if(n&&self.$dropdown_content.width()){if(options.equalizeHeight){for(i=height_max=0;i<n;i++)height_max=Math.max(height_max,$optgroups.eq(i).height());$optgroups.css({height:height_max})}options.equalizeWidth&&(width_parent=self.$dropdown_content.innerWidth()-getScrollbarWidth(),width_last=Math.round(width_parent/n),$optgroups.css({width:width_last}),1<n&&(width_last=width_parent-width_last*(n-1),$optgroups.eq(n-1).css({width:width_last})))}}var getScrollbarWidth=function(){var div,width=getScrollbarWidth.width,doc=document;return void 0===width&&((div=doc.createElement("div")).innerHTML='<div style="width:50px;height:50px;position:absolute;left:-50px;top:-50px;overflow:auto;"><div style="width:1px;height:100px;"></div></div>',div=div.firstChild,doc.body.appendChild(div),width=getScrollbarWidth.width=div.offsetWidth-div.clientWidth,doc.body.removeChild(div)),width};(options.equalizeHeight||options.equalizeWidth)&&(hook.after(this,"positionDropdown",equalizeSizes),hook.after(this,"refreshOptions",equalizeSizes))}),Selectize.define("remove_button",function(options){options=$.extend({label:"&times;",title:"Remove",className:"remove",append:!0},options);("single"===this.settings.mode?function(thisRef,options){options.className="remove-single";var original,self=thisRef,html='<a href="javascript:void(0)" class="'+options.className+'" tabindex="-1" title="'+escape_html(options.title)+'">'+options.label+"</a>";thisRef.setup=(original=self.setup,function(){var id,render_item;options.append&&(id=$(self.$input.context).attr("id"),$("#"+id),render_item=self.settings.render.item,self.settings.render.item=function(data){return html_container=render_item.apply(thisRef,arguments),html_element=html,$("<span>").append(html_container).append(html_element);var html_container,html_element}),original.apply(thisRef,arguments),thisRef.$control.on("click","."+options.className,function(e){e.preventDefault(),self.isLocked||self.clear()})})}:function(thisRef,options){var original,self=thisRef,html='<a href="javascript:void(0)" class="'+options.className+'" tabindex="-1" title="'+escape_html(options.title)+'">'+options.label+"</a>";thisRef.setup=(original=self.setup,function(){var render_item;options.append&&(render_item=self.settings.render.item,self.settings.render.item=function(data){return html_container=render_item.apply(thisRef,arguments),html_element=html,pos=html_container.search(/(<\/[^>]+>\s*)$/),html_container.substring(0,pos)+html_element+html_container.substring(pos);var html_container,html_element,pos}),original.apply(thisRef,arguments),thisRef.$control.on("click","."+options.className,function($item){if($item.preventDefault(),!self.isLocked){$item=$($item.currentTarget).parent();return self.setActiveItem($item),self.deleteSelection()&&self.setCaret(self.items.length),!1}})})})(this,options)}),Selectize.define("restore_on_backspace",function(options){var original,self=this;options.text=options.text||function(option){return option[this.settings.labelField]},this.onKeyDown=(original=self.onKeyDown,function(e){var option;return 8===e.keyCode&&""===this.$control_input.val()&&!this.$activeItems.length&&0<=(option=this.caretPos-1)&&option<this.items.length?(option=this.options[this.items[option]],this.deleteSelection(e)&&(this.setTextboxValue(options.text.apply(this,[option])),this.refreshOptions(!0)),void e.preventDefault()):original.apply(this,arguments)})}),Selectize.define("select_on_focus",function(options){var originalFocus,originalBlur,self=this;self.on("focus",(originalFocus=self.onFocus,function(e){var value=self.getItem(self.getValue()).text();return self.clear(),self.setTextboxValue(value),self.$control_input.select(),setTimeout(function(){self.settings.selectOnTab&&self.setActiveOption(self.getFirstItemMatchedByTextContent(value)),self.settings.score=null},0),originalFocus.apply(this,arguments)})),self.onBlur=(originalBlur=self.onBlur,function(e){return""===self.getValue()&&self.lastValidValue!==self.getValue()&&self.setValue(self.lastValidValue),setTimeout(function(){self.settings.score=function(){return function(){return 1}}},0),originalBlur.apply(this,arguments)}),self.settings.score=function(){return function(){return 1}}}),Selectize});
\ No newline at end of file
diff --git a/tjdests/static/tom-select.bootstrap5.css b/tjdests/static/tom-select.bootstrap5.css
new file mode 100644
index 0000000..30b7b24
--- /dev/null
+++ b/tjdests/static/tom-select.bootstrap5.css
@@ -0,0 +1,433 @@
+/**
+ * Tom Select bootstrap 5
+ */
+/**
+ * tom-select.css (v1.6.0)
+ * Copyright (c) contributors
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this
+ * file except in compliance with the License. You may obtain a copy of the License at:
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software distributed under
+ * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF
+ * ANY KIND, either express or implied. See the License for the specific language
+ * governing permissions and limitations under the License.
+ *
+ */
+.ts-control.plugin-drag_drop.multi > .ts-input > div.ui-sortable-placeholder {
+  visibility: visible !important;
+  background: #f2f2f2 !important;
+  background: rgba(0, 0, 0, 0.06) !important;
+  border: 0 none !important;
+  box-shadow: inset 0 0 12px 4px #fff; }
+
+.ts-control.plugin-drag_drop .ui-sortable-placeholder::after {
+  content: '!';
+  visibility: hidden; }
+
+.ts-control.plugin-drag_drop .ui-sortable-helper {
+  box-shadow: 0 2px 5px rgba(0, 0, 0, 0.2); }
+
+.plugin-checkbox_options .option input {
+  margin-right: 0.5rem; }
+
+.plugin-clear_button .items {
+  padding-right: calc( 1em + (3 * 5px)) !important; }
+
+.plugin-clear_button .clear-button {
+  opacity: 0;
+  position: absolute;
+  top: 0.375rem;
+  right: calc(0.75rem - 5px);
+  margin-right: 0 !important;
+  background: transparent !important;
+  transition: opacity 0.5s; }
+
+.plugin-clear_button .has-items.focus .clear-button,
+.plugin-clear_button:hover .has-items .clear-button {
+  opacity: 1; }
+
+.ts-control .dropdown-header {
+  position: relative;
+  padding: 6px 0.75rem;
+  border-bottom: 1px solid #d0d0d0;
+  background: #f8f8f8;
+  border-radius: 0.25rem 0.25rem 0 0; }
+
+.ts-control .dropdown-header-close {
+  position: absolute;
+  right: 0.75rem;
+  top: 50%;
+  color: #343a40;
+  opacity: 0.4;
+  margin-top: -12px;
+  line-height: 20px;
+  font-size: 20px !important; }
+
+.ts-control .dropdown-header-close:hover {
+  color: black; }
+
+.plugin-dropdown_input .ts-input.focus {
+  box-shadow: none;
+  border: 1px solid #ced4da; }
+
+.plugin-dropdown_input .dropdown-input {
+  border: 1px solid #d0d0d0;
+  border-width: 0 0 1px 0;
+  display: block;
+  padding: 0.375rem 0.75rem;
+  box-shadow: none;
+  width: 100%;
+  background: transparent; }
+
+.plugin-dropdown_input .focus ~ .ts-dropdown .dropdown-input {
+  border-color: #86b7fe;
+  outline: 0;
+  box-shadow: 0 0 0 0.25rem rgba(13, 110, 253, 0.25); }
+
+.ts-control.plugin-input_autogrow .ts-input.has-items > input {
+  min-width: 0; }
+
+.ts-control.plugin-input_autogrow .ts-input.focus.has-items > input {
+  flex: none; }
+
+.ts-dropdown.plugin-optgroup_columns .ts-dropdown-content {
+  display: flex; }
+
+.ts-dropdown.plugin-optgroup_columns .optgroup {
+  border-right: 1px solid #f2f2f2;
+  border-top: 0 none;
+  flex-grow: 1;
+  flex-basis: 0;
+  min-width: 0; }
+
+.ts-dropdown.plugin-optgroup_columns .optgroup:last-child {
+  border-right: 0 none; }
+
+.ts-dropdown.plugin-optgroup_columns .optgroup:before {
+  display: none; }
+
+.ts-dropdown.plugin-optgroup_columns .optgroup-header {
+  border-top: 0 none; }
+
+.ts-control.plugin-remove_button .item {
+  display: inline-flex;
+  align-items: center;
+  padding-right: 0 !important; }
+
+.ts-control.plugin-remove_button .item .remove {
+  color: inherit;
+  text-decoration: none;
+  vertical-align: middle;
+  display: inline-block;
+  padding: 1px 5px;
+  border-left: 1px solid #dee2e6;
+  border-radius: 0 2px 2px 0;
+  box-sizing: border-box;
+  margin-left: 5px; }
+
+.ts-control.plugin-remove_button .item .remove:hover {
+  background: rgba(0, 0, 0, 0.05); }
+
+.ts-control.plugin-remove_button .item.active .remove {
+  border-left-color: rgba(0, 0, 0, 0); }
+
+.ts-control.plugin-remove_button .disabled .item .remove:hover {
+  background: none; }
+
+.ts-control.plugin-remove_button .disabled .item .remove {
+  border-left-color: white; }
+
+.ts-control.plugin-remove_button .remove-single {
+  position: absolute;
+  right: 0;
+  top: 0;
+  font-size: 23px; }
+
+.ts-control {
+  position: relative; }
+
+.ts-dropdown,
+.ts-input,
+.ts-input input {
+  color: #343a40;
+  font-family: inherit;
+  font-size: inherit;
+  line-height: 1.5;
+  font-smoothing: inherit; }
+
+.ts-input,
+.ts-control.single .ts-input.input-active {
+  background: #fff;
+  cursor: text; }
+
+.ts-input {
+  border: 1px solid #ced4da;
+  padding: 0.375rem 0.75rem;
+  width: 100%;
+  overflow: hidden;
+  position: relative;
+  z-index: 1;
+  box-sizing: border-box;
+  box-shadow: none;
+  border-radius: 0.25rem;
+  display: flex;
+  flex-wrap: wrap; }
+  .ts-control.multi .ts-input.has-items {
+    padding: calc( 0.375rem - 1px - 0px) 0.75rem calc( 0.375rem - 1px - 3px - 0px); }
+  .ts-input.full {
+    background-color: #fff; }
+  .ts-input.disabled, .ts-input.disabled * {
+    cursor: default !important; }
+  .ts-input.focus {
+    box-shadow: none; }
+  .ts-input.dropdown-active {
+    border-radius: 0.25rem 0.25rem 0 0; }
+  .ts-input > * {
+    vertical-align: baseline;
+    display: inline-block; }
+  .ts-control.multi .ts-input > div {
+    cursor: pointer;
+    margin: 0 3px 3px 0;
+    padding: 1px 5px;
+    background: #efefef;
+    color: #343a40;
+    border: 0px solid #dee2e6; }
+    .ts-control.multi .ts-input > div.active {
+      background: #0d6efd;
+      color: #fff;
+      border: 0px solid rgba(0, 0, 0, 0); }
+  .ts-control.multi .ts-input.disabled > div, .ts-control.multi .ts-input.disabled > div.active {
+    color: #868787;
+    background: white;
+    border: 0px solid white; }
+  .ts-input > input {
+    flex: 1 1 auto;
+    min-width: 7rem;
+    display: inline-block !important;
+    padding: 0 !important;
+    min-height: 0 !important;
+    max-height: none !important;
+    max-width: 100% !important;
+    margin: 0 !important;
+    text-indent: 0 !important;
+    border: 0 none !important;
+    background: none !important;
+    line-height: inherit !important;
+    -webkit-user-select: auto !important;
+       -moz-user-select: auto !important;
+        -ms-user-select: auto !important;
+            user-select: auto !important;
+    box-shadow: none !important; }
+    .ts-input > input::-ms-clear {
+      display: none; }
+    .ts-input > input:focus {
+      outline: none !important; }
+  .ts-input.has-items > input {
+    margin: 0 4px !important; }
+  .ts-input::after {
+    content: ' ';
+    display: block;
+    clear: left; }
+  .ts-input.dropdown-active::before {
+    content: ' ';
+    display: block;
+    position: absolute;
+    background: white;
+    height: 1px;
+    bottom: 0;
+    left: 0;
+    right: 0; }
+  .ts-input.rtl {
+    text-align: right; }
+    .ts-input.rtl.single .ts-input:after {
+      left: calc(0.75rem + 5px);
+      right: auto; }
+    .ts-input.rtl .ts-input > input {
+      margin: 0 4px 0 -2px !important; }
+  .ts-input .ts-input.disabled {
+    opacity: 0.5;
+    background-color: #fff; }
+  .input-hidden .ts-input > input {
+    opacity: 0; }
+
+.ts-dropdown {
+  position: absolute;
+  top: 100%;
+  left: 0;
+  width: 100%;
+  z-index: 10;
+  display: none;
+  border: 1px solid #d0d0d0;
+  background: #fff;
+  margin: 0.25rem 0 0 0;
+  border-top: 0 none;
+  box-sizing: border-box;
+  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);
+  border-radius: 0 0 0.25rem 0.25rem; }
+  .ts-dropdown [data-selectable] {
+    cursor: pointer;
+    overflow: hidden; }
+    .ts-dropdown [data-selectable] .highlight {
+      background: rgba(255, 237, 40, 0.4);
+      border-radius: 1px; }
+  .ts-dropdown .option,
+  .ts-dropdown .optgroup-header,
+  .ts-dropdown .no-results,
+  .ts-dropdown .create {
+    padding: 3px 0.75rem; }
+  .ts-dropdown .option, .ts-dropdown [data-disabled], .ts-dropdown [data-disabled] [data-selectable].option {
+    cursor: inherit;
+    opacity: 0.5; }
+  .ts-dropdown [data-selectable].option {
+    opacity: 1;
+    cursor: pointer; }
+  .ts-dropdown .optgroup:first-child .optgroup-header {
+    border-top: 0 none; }
+  .ts-dropdown .optgroup-header {
+    color: #6c757d;
+    background: #fff;
+    cursor: default; }
+  .ts-dropdown .create:hover,
+  .ts-dropdown .option:hover,
+  .ts-dropdown .active {
+    background-color: #e9ecef;
+    color: #1e2125; }
+    .ts-dropdown .create:hover.create,
+    .ts-dropdown .option:hover.create,
+    .ts-dropdown .active.create {
+      color: #1e2125; }
+  .ts-dropdown .create {
+    color: rgba(52, 58, 64, 0.5); }
+  .ts-dropdown .spinner {
+    display: inline-block;
+    width: 30px;
+    height: 30px;
+    margin: 3px 0.75rem; }
+    .ts-dropdown .spinner:after {
+      content: " ";
+      display: block;
+      width: 24px;
+      height: 24px;
+      margin: 3px;
+      border-radius: 50%;
+      border: 5px solid #d0d0d0;
+      border-color: #d0d0d0 transparent #d0d0d0 transparent;
+      animation: lds-dual-ring 1.2s linear infinite; }
+
+@keyframes lds-dual-ring {
+  0% {
+    transform: rotate(0deg); }
+  100% {
+    transform: rotate(360deg); } }
+
+.ts-dropdown-content {
+  overflow-y: auto;
+  overflow-x: hidden;
+  max-height: 200px;
+  overflow-scrolling: touch;
+  scroll-behavior: smooth; }
+
+.ts-dropdown,
+.ts-dropdown.form-control,
+.ts-dropdown.form-select {
+  height: auto;
+  padding: 0;
+  z-index: 1000;
+  background: #fff;
+  border: 1px solid rgba(0, 0, 0, 0.15);
+  border-radius: 0.25rem;
+  box-shadow: 0 6px 12px rgba(0, 0, 0, 0.175); }
+
+.ts-dropdown .optgroup-header {
+  font-size: 0.875rem;
+  line-height: 1.5; }
+
+.ts-dropdown .optgroup:first-child:before {
+  display: none; }
+
+.ts-dropdown .optgroup:before {
+  content: ' ';
+  display: block;
+  height: 0;
+  margin: 0.5rem 0;
+  overflow: hidden;
+  border-top: 1px solid rgba(0, 0, 0, 0.15);
+  margin-left: -0.75rem;
+  margin-right: -0.75rem; }
+
+.ts-dropdown .create {
+  padding-left: 0.75rem; }
+
+.ts-dropdown-content {
+  padding: 5px 0; }
+
+.ts-input {
+  min-height: calc(1.5em + 0.75rem + 2px);
+  transition: border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; }
+  @media (prefers-reduced-motion: reduce) {
+    .ts-input {
+      transition: none; } }
+  .ts-input.dropdown-active {
+    border-radius: 0.25rem; }
+  .ts-input.dropdown-active::before {
+    display: none; }
+  .ts-input.focus {
+    border-color: #86b7fe;
+    outline: 0;
+    box-shadow: 0 0 0 0.25rem rgba(13, 110, 253, 0.25); }
+
+.is-invalid .ts-input,
+.was-validated .ts-input.invalid {
+  border-color: #dc3545; }
+  .is-invalid .ts-input.focus,
+  .was-validated .ts-input.invalid.focus {
+    border-color: #bd2130;
+    box-shadow: 0 0 0 0.25rem rgba(220, 53, 69, 0.25); }
+
+.is-valid .ts-input {
+  border-color: #198754; }
+  .is-valid .ts-input.focus {
+    border-color: #198754;
+    box-shadow: 0 0 0 0.25rem rgba(25, 135, 84, 0.25); }
+
+.ts-control.form-select-sm .ts-input.has-items, .ts-control.form-control-sm .ts-input.has-items {
+  min-height: calc(1.5em + 0.5rem + 2px) !important;
+  height: calc(1.5em + 0.5rem + 2px) !important;
+  padding: 0.25rem 0.5rem !important;
+  font-size: 0.875rem; }
+
+.ts-control.multi .ts-input.has-items {
+  padding-left: calc(0.75rem - 5px);
+  padding-right: calc(0.75rem - 5px); }
+
+.ts-control.multi .ts-input > div {
+  border-radius: calc(0.25rem - 1px); }
+
+.ts-control:not(.form-select) {
+  padding: 0;
+  border: none;
+  height: auto;
+  box-shadow: none;
+  background: none; }
+  .ts-control:not(.form-select).single .ts-input {
+    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 0.75rem center;
+    background-size: 16px 12px; }
+
+.ts-control.form-select {
+  padding: 0;
+  height: auto;
+  box-shadow: none; }
+  .ts-control.form-select .ts-input,
+  .ts-control.form-select.single .ts-input.input-active {
+    border: none !important;
+    background: transparent !important; }
+
+.input-group .ts-input {
+  overflow: unset;
+  border-radius: 0 0.25rem 0.25rem 0; }
+
+/*# sourceMappingURL=tom-select.bootstrap5.css.map */
\ No newline at end of file
diff --git a/tjdests/static/tom-select.complete.min.js b/tjdests/static/tom-select.complete.min.js
new file mode 100644
index 0000000..ead2dcd
--- /dev/null
+++ b/tjdests/static/tom-select.complete.min.js
@@ -0,0 +1,305 @@
+/**
+* Tom Select v1.6.0
+* Licensed under the Apache License, Version 2.0 (the "License");
+*/
+!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(e="undefined"!=typeof globalThis?globalThis:e||self).TomSelect=t()}(this,(function(){"use strict"
+function e(e,t){e.split(/\s+/).forEach((e=>{t(e)}))}class t{constructor(){this._events={}}on(t,i){e(t,(e=>{this._events[e]=this._events[e]||[],this._events[e].push(i)}))}off(t,i){var s=arguments.length
+0!==s?e(t,(e=>{if(1===s)return delete this._events[e]
+e in this._events!=!1&&this._events[e].splice(this._events[e].indexOf(i),1)})):this._events={}}trigger(t,...i){var s=this
+e(t,(e=>{if(e in s._events!=!1)for(let t of s._events[e])t.apply(s,i)}))}}var i=[[67,67],[160,160],[192,438],[452,652],[961,961],[1019,1019],[1083,1083],[1281,1289],[1984,1984],[5095,5095],[7429,7441],[7545,7549],[7680,7935],[8580,8580],[9398,9449],[11360,11391],[42792,42793],[42802,42851],[42873,42897],[42912,42922],[64256,64260],[65313,65338],[65345,65370]]
+function s(e){return e.normalize("NFD").replace(/[\u0300-\u036F]/g,"").normalize("NFKD").toLowerCase()}var n=null
+function o(e){null===n&&(n=function(){var e={"l·":"l","ʼn":"n","æ":"ae","ø":"o","aʾ":"a","dž":"dz"},t={}
+return i.forEach((i=>{for(let s=i[0];s<=i[1];s++){let i=String.fromCharCode(s),n=i.normalize("NFD").replace(/[\u0300-\u036F]/g,"").normalize("NFKD")
+n!=i&&(n=n.toLowerCase(),n in e&&(n=e[n]),n in t||(t[n]=n+n.toUpperCase()),t[n]+=i)}})),t}())
+for(let t in n)n.hasOwnProperty(t)&&(e=e.replace(new RegExp(t,"g"),"["+n[t]+"]"))
+return e}function r(e,t){if(e)return e[t]}function a(e,t){if(e){for(var i=t.split(".");i.length&&(e=e[i.shift()]););return e}}function l(e,t,i){var s,n
+return e?-1===(n=(e=String(e||"")).search(t.regex))?0:(s=t.string.length/e.length,0===n&&(s+=.5),s*i):0}function d(e){return(e+"").replace(/([.?*+^$[\]\\(){}|-])/g,"\\$1")}function c(e,t){var i=e[t]
+i&&!Array.isArray(i)&&(e[t]=[i])}function p(e,t){if(Array.isArray(e))e.forEach(t)
+else for(var i in e)e.hasOwnProperty(i)&&t(e[i],i)}function u(e,t){return"number"==typeof e&&"number"==typeof t?e>t?1:e<t?-1:0:(e=s(String(e||"")).toLowerCase())>(t=s(String(t||"")).toLowerCase())?1:t>e?-1:0}class h{constructor(e,t){this.items=void 0,this.settings=void 0,this.items=e,this.settings=t||{diacritics:!0}}tokenize(e,t,i){if(!e||!e.length)return[]
+var s,n=[],r=e.split(/\s+/)
+return i&&(s=new RegExp("^("+Object.keys(i).map(d).join("|")+"):(.*)$")),r.forEach((e=>{let i,r=null,a=null
+s&&(i=e.match(s))&&(r=i[1],e=i[2]),e.length>0&&(a=d(e),this.settings.diacritics&&(a=o(a)),t&&(a="\\b"+a),a=new RegExp(a,"i")),n.push({string:e,regex:a,field:r})})),n}getScoreFunction(e,t){var i=this.prepareSearch(e,t)
+return this._getScoreFunction(i)}_getScoreFunction(e){const t=e.tokens,i=t.length
+if(!i)return function(){return 0}
+const s=e.options.fields,n=e.weights,o=s.length,r=e.getAttrFn
+var a=o?1===o?function(e,t){const i=s[0].field
+return l(r(t,i),e,n[i])}:function(e,t){var i=0
+if(e.field){const s=r(t,e.field)
+!e.regex&&s?i+=.1:i+=l(s,e,n[e.field])}else p(n,((s,n)=>{i+=l(r(t,n),e,s)}))
+return i/o}:function(){return 0}
+return 1===i?function(e){return a(t[0],e)}:"and"===e.options.conjunction?function(e){for(var s,n=0,o=0;n<i;n++){if((s=a(t[n],e))<=0)return 0
+o+=s}return o/i}:function(e){var s=0
+return p(t,(t=>{s+=a(t,e)})),s/i}}getSortFunction(e,t){var i=this.prepareSearch(e,t)
+return this._getSortFunction(i)}_getSortFunction(e){var t,i,s,n,o,r,a,l,d,c,p,h
+if(s=this,h=e.options,p=!e.query&&h.sort_empty||h.sort,d=function(t,i){return"$score"===t?i.score:e.getAttrFn(s.items[i.id],t)},o=[],p)for(t=0,i=p.length;t<i;t++)(e.query||"$score"!==p[t].field)&&o.push(p[t])
+if(e.query){for(c=!0,t=0,i=o.length;t<i;t++)if("$score"===o[t].field){c=!1
+break}c&&o.unshift({field:"$score",direction:"desc"})}else for(t=0,i=o.length;t<i;t++)if("$score"===o[t].field){o.splice(t,1)
+break}for(l=[],t=0,i=o.length;t<i;t++)l.push("desc"===o[t].direction?-1:1)
+return(r=o.length)?1===r?(n=o[0].field,a=l[0],function(e,t){return a*u(d(n,e),d(n,t))}):function(e,t){var i,s,n
+for(i=0;i<r;i++)if(n=o[i].field,s=l[i]*u(d(n,e),d(n,t)))return s
+return 0}:null}prepareSearch(e,t){const i={}
+var n=Object.assign({},t)
+if(c(n,"sort"),c(n,"sort_empty"),n.fields){if(c(n,"fields"),Array.isArray(n.fields)&&"object"!=typeof n.fields[0]){var o=[]
+n.fields.forEach((e=>{o.push({field:e})})),n.fields=o}n.fields.forEach((e=>{i[e.field]="weight"in e?e.weight:1}))}return{options:n,query:e=s(String(e||"")).toLowerCase().trim(),tokens:this.tokenize(e,n.respect_word_boundaries,i),total:0,items:[],weights:i,getAttrFn:n.nesting?a:r}}search(e,t){var i,s,n,o,r=this
+return s=this.prepareSearch(e,t),t=s.options,e=s.query,o=t.score||r._getScoreFunction(s),e.length?p(r.items,((e,n)=>{i=o(e),(!1===t.filter||i>0)&&s.items.push({score:i,id:n})})):p(r.items,((e,t)=>{s.items.push({score:1,id:t})})),(n=r._getSortFunction(s))&&s.items.sort(n),s.total=s.items.length,"number"==typeof t.limit&&(s.items=s.items.slice(0,t.limit)),s}}function g(e,t){if(null!==t){if("string"==typeof t){if(!t.length)return
+t=new RegExp(t,"i")}!function e(i){var s=0
+if(3===i.nodeType){var n=i.data.search(t)
+if(n>=0&&i.data.length>0){var o=i.data.match(t),r=document.createElement("span")
+r.className="highlight"
+var a=i.splitText(n)
+a.splitText(o[0].length)
+var l=a.cloneNode(!0)
+r.appendChild(l),a.parentNode.replaceChild(r,a),s=1}}else if(1===i.nodeType&&i.childNodes&&!/(script|style)/i.test(i.tagName)&&("highlight"!==i.className||"SPAN"!==i.tagName))for(var d=0;d<i.childNodes.length;++d)d+=e(i.childNodes[d])
+return s}(e)}}const f="undefined"!=typeof navigator&&/Mac/.test(navigator.userAgent)?"metaKey":"ctrlKey"
+var v={options:[],optgroups:[],plugins:[],delimiter:",",splitOn:null,persist:!0,diacritics:!0,create:null,createOnBlur:!1,createFilter:null,highlight:!0,openOnFocus:!0,shouldOpen:null,maxOptions:50,maxItems:null,hideSelected:null,duplicates:!1,addPrecedence:!1,selectOnTab:!1,preload:null,allowEmptyOption:!1,closeAfterSelect:!1,loadThrottle:300,loadingClass:"loading",dataAttr:null,optgroupField:"optgroup",valueField:"value",labelField:"text",disabledField:"disabled",optgroupLabelField:"label",optgroupValueField:"value",lockOptgroupOrder:!1,sortField:"$order",searchField:["text"],searchConjunction:"and",mode:null,wrapperClass:"ts-control",inputClass:"ts-input",dropdownClass:"ts-dropdown",dropdownContentClass:"ts-dropdown-content",itemClass:"item",optionClass:"option",dropdownParent:null,controlInput:null,copyClassesToDropdown:!0,placeholder:null,hidePlaceholder:null,shouldLoad:function(e){return e.length>0},render:{}}
+function m(e){return null==e?null:"boolean"==typeof e?e?"1":"0":e+""}function y(e){return(e+"").replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;")}function O(e,t,i){var s,n=e.trigger,o={}
+for(s in e.trigger=function(){var i=arguments[0]
+if(-1===t.indexOf(i))return n.apply(e,arguments)
+o[i]=arguments},i.apply(e,[]),e.trigger=n,o)n.apply(e,o[s])}function b(e,t=!1){e&&(e.preventDefault(),t&&e.stopPropagation())}function w(e,t,i,s){e.addEventListener(t,i,s)}function I(e,t){return!!t&&(!!t[e]&&1===(t.altKey?1:0)+(t.ctrlKey?1:0)+(t.shiftKey?1:0)+(t.metaKey?1:0))}function C(e,t){const i=e.getAttribute("id")
+return i||(e.setAttribute("id",t),t)}function _(e,t){var i=Object.assign({},v,t),s=i.dataAttr,n=i.labelField,o=i.valueField,r=i.disabledField,a=i.optgroupField,l=i.optgroupLabelField,d=i.optgroupValueField,c=e.tagName.toLowerCase(),p=e.getAttribute("placeholder")||e.getAttribute("data-placeholder")
+if(!p&&!i.allowEmptyOption){let t=e.querySelector('option[value=""]')
+t&&(p=t.textContent)}var u={placeholder:p,options:[],optgroups:[],items:[],maxItems:null}
+return"select"===c?(()=>{var t,c=u.options,p={},h=1,g=e=>{var t=Object.assign({},e.dataset),i=s&&t[s]
+return"string"==typeof i&&i.length&&(t=Object.assign(t,JSON.parse(i))),t},f=(e,t)=>{var s=m(e.value)
+if(s||i.allowEmptyOption)if(p.hasOwnProperty(s)){if(t){var l=p[s][a]
+l?Array.isArray(l)?l.push(t):p[s][a]=[l,t]:p[s][a]=t}}else{var d=g(e)
+d[n]=d[n]||e.textContent,d[o]=d[o]||s,d[r]=d[r]||e.disabled,d[a]=d[a]||t,d.$option=e,p[s]=d,c.push(d),e.selected&&u.items.push(s)}},v=e=>{var t,i;(i=g(e))[l]=i[l]||e.getAttribute("label")||"",i[d]=i[d]||h++,i[r]=i[r]||e.disabled,u.optgroups.push(i),t=i[d]
+for(const i of e.children)f(i,t)}
+u.maxItems=e.hasAttribute("multiple")?null:1
+for(const i of e.children)"optgroup"===(t=i.tagName.toLowerCase())?v(i):"option"===t&&f(i)})():(()=>{var t,r,a=e.getAttribute(s)
+if(a){u.options=JSON.parse(a)
+for(const e of u.options)u.items.push(e[o])}else{var l=e.value.trim()||""
+if(!i.allowEmptyOption&&!l.length)return
+t=l.split(i.delimiter)
+for(const e of t)(r={})[n]=e,r[o]=e,u.options.push(r)
+u.items=t}})(),Object.assign({},v,u,t)}function S(e){if(e.jquery)return e[0]
+if(e instanceof HTMLElement)return e
+if(e.indexOf("<")>-1){let t=document.createElement("div")
+return t.innerHTML=e.trim(),t.firstChild}return document.querySelector(e)}function A(e,t){var i=document.createEvent("HTMLEvents")
+i.initEvent(t,!0,!1),e.dispatchEvent(i)}function x(e,t){Object.assign(e.style,t)}function F(e,...t){var i=L(t);(e=P(e)).map((e=>{i.map((t=>{e.classList.add(t)}))}))}function k(e,...t){var i=L(t);(e=P(e)).map((e=>{i.map((t=>{e.classList.remove(t)}))}))}function L(e){var t=[]
+for(let i of e)"string"==typeof i&&(i=i.trim().split(/[\11\12\14\15\40]/)),Array.isArray(i)&&(t=t.concat(i))
+return t.filter(Boolean)}function P(e){return Array.isArray(e)||(e=[e]),e}function E(e,t,i){if(!i||i.contains(e))for(;e&&e.matches;){if(e.matches(t))return e
+e=e.parentNode}}function T(e,t){return t>0?e[e.length-1]:e[0]}function q(e,t){if(!e)return-1
+t=t||e.nodeName
+for(var i=0;e=e.previousElementSibling;)e.matches(t)&&i++
+return i}function V(e,t){for(const i in t)e.setAttribute(i,t[i])}var D=0
+class j extends(function(e){return e.plugins={},class extends e{static define(t,i){e.plugins[t]={name:t,fn:i}}initializePlugins(e){var t,i,s,n=this,o=[]
+if(n.plugins={names:[],settings:{},requested:{},loaded:{}},Array.isArray(e))for(t=0,i=e.length;t<i;t++)"string"==typeof e[t]?o.push(e[t]):(n.plugins.settings[e[t].name]=e[t].options,o.push(e[t].name))
+else if(e)for(s in e)e.hasOwnProperty(s)&&(n.plugins.settings[s]=e[s],o.push(s))
+for(;o.length;)n.require(o.shift())}loadPlugin(t){var i=this,s=i.plugins,n=e.plugins[t]
+if(!e.plugins.hasOwnProperty(t))throw new Error('Unable to find "'+t+'" plugin')
+s.requested[t]=!0,s.loaded[t]=n.fn.apply(i,[i.plugins.settings[t]||{}]),s.names.push(t)}require(e){var t=this,i=t.plugins
+if(!t.plugins.loaded.hasOwnProperty(e)){if(i.requested[e])throw new Error('Plugin has circular dependency ("'+e+'")')
+t.loadPlugin(e)}return i.loaded[e]}}}(t)){constructor(e,t){var i
+super(),this.control_input=void 0,this.wrapper=void 0,this.dropdown=void 0,this.control=void 0,this.dropdown_content=void 0,this.order=0,this.settings=void 0,this.input=void 0,this.tabIndex=void 0,this.is_select_tag=void 0,this.rtl=void 0,this.inputId=void 0,this._destroy=void 0,this.sifter=void 0,this.tab_key=!1,this.isOpen=!1,this.isDisabled=!1,this.isRequired=void 0,this.isInvalid=!1,this.isLocked=!1,this.isFocused=!1,this.isInputHidden=!1,this.isSetup=!1,this.ignoreFocus=!1,this.ignoreBlur=!1,this.hasOptions=!1,this.currentResults=null,this.lastValue="",this.caretPos=0,this.loading=0,this.loadedSearches={},this.activeOption=null,this.activeItems=[],this.optgroups={},this.options={},this.options_i=0,this.userOptions={},this.items=[],this.renderCache={item:{},option:{}},D++
+var s=S(e)
+if(s.tomselect)throw new Error("Tom Select already initialized on this element")
+s.tomselect=this,i=(window.getComputedStyle&&window.getComputedStyle(s,null)).getPropertyValue("direction"),this.settings=_(s,t),this.input=s,this.tabIndex=s.tabIndex||0,this.is_select_tag="select"===s.tagName.toLowerCase(),this.rtl=/rtl/i.test(i),this.inputId=C(s,"tomselect-"+D),this.isRequired=s.required,this.sifter=new h(this.options,{diacritics:this.settings.diacritics}),this.setupOptions(this.settings.options,this.settings.optgroups),delete this.settings.optgroups,delete this.settings.options,this.settings.mode=this.settings.mode||(1===this.settings.maxItems?"single":"multi"),"boolean"!=typeof this.settings.hideSelected&&(this.settings.hideSelected="multi"===this.settings.mode),"boolean"!=typeof this.settings.hidePlaceholder&&(this.settings.hidePlaceholder="multi"!==this.settings.mode)
+var n=this.settings.createFilter
+"function"!=typeof n&&("string"==typeof n&&(n=new RegExp(n)),n instanceof RegExp?this.settings.createFilter=e=>n.test(e):this.settings.createFilter=()=>!0),this.initializePlugins(this.settings.plugins),this.setupCallbacks(),this.setupTemplates(),this.setup()}setup(){var e,t,i,s,n,o,r,a,l,d=this,c=d.settings,p=d.input
+const u={passive:!0},h=d.inputId+"-ts-dropdown"
+if(o=d.settings.mode,r=p.getAttribute("class")||"",F(e=S("<div>"),c.wrapperClass,r,o),F(t=S('<div class="items">'),c.inputClass),e.append(t),F(s=d.render("dropdown"),c.dropdownClass,o),F(n=S(`<div role="listbox" id="${h}" tabindex="-1">`),c.dropdownContentClass),s.append(n),S(c.dropdownParent||e).appendChild(s),c.controlInput)i=S(c.controlInput)
+else{i=S('<input type="text" autocomplete="off" size="1" />')
+for(const e of["autocorrect","autocapitalize","autocomplete"])p.getAttribute(e)&&V(i,{[e]:p.getAttribute(e)})}c.controlInput||(i.tabIndex=p.disabled?-1:d.tabIndex,t.appendChild(i)),V(i,{role:"combobox",haspopup:"listbox","aria-expanded":"false","aria-controls":h}),l=C(i,d.inputId+"-tomselected")
+let g="label[for='"+function(e){return e.replace(/['"\\]/g,"\\$&")}(d.inputId)+"']",f=document.querySelector(g)
+if(f){V(f,{for:l}),V(n,{"aria-labelledby":C(f,d.inputId+"-ts-label")})}if(d.settings.copyClassesToDropdown&&F(s,r),e.style.width=p.style.width,d.plugins.names.length&&(a="plugin-"+d.plugins.names.join(" plugin-"),F([e,s],a)),(null===c.maxItems||c.maxItems>1)&&d.is_select_tag&&V(p,{multiple:"multiple"}),d.settings.placeholder&&V(i,{placeholder:c.placeholder}),!d.settings.splitOn&&d.settings.delimiter){var v=d.settings.delimiter.replace(/[-\/\\^$*+?.()|[\]{}]/g,"\\$&")
+d.settings.splitOn=new RegExp("\\s*"+v+"+\\s*")}var m,y,O
+this.settings.load&&this.settings.loadThrottle&&(this.settings.load=(m=this.settings.load,y=this.settings.loadThrottle,function(e,t){var i=this
+O&&(i.loading=Math.max(i.loading-1,0)),clearTimeout(O),O=setTimeout((function(){O=null,i.loadedSearches[e]=!0,m.call(i,e,t)}),y)})),d.control=t,d.control_input=i,d.wrapper=e,d.dropdown=s,d.dropdown_content=n,d.control_input.type=p.type,w(s,"mouseenter",(e=>{var t=E(e.target,"[data-selectable]",s)
+if(t)return d.onOptionHover(e,t)}),{capture:!0}),w(t,"mousedown",(e=>{if(e.target==i)return d.clearActiveItems(),e.stopPropagation(),void d.inputState()
+var s=E(e.target,"."+d.settings.itemClass,t)
+return s?d.onItemSelect(e,s):d.onMouseDown(e)})),w(t,"click",(e=>d.onClick(e))),w(i,"keydown",(e=>d.onKeyDown(e))),w(i,"keyup",(e=>d.onKeyUp(e))),w(i,"keypress",(e=>d.onKeyPress(e))),w(i,"resize",(()=>d.positionDropdown()),u),w(i,"blur",(e=>d.onBlur(e))),w(i,"focus",(e=>{d.ignoreBlur=!1,d.onFocus(e)})),w(i,"paste",(e=>d.onPaste(e)))
+var I=e=>{var t=E(e.target,"[data-selectable]",d.dropdown)
+if(!t&&!d.wrapper.contains(e.target))return d.isFocused&&d.blur(),void d.inputState()
+b(e,!0),t&&d.onOptionSelect(e,t)},_=()=>{d.isOpen&&d.positionDropdown()}
+w(document,"mousedown",I),w(window,"sroll",_,u),w(window,"resize",_,u),d._destroy=()=>{document.removeEventListener("mousedown",I),window.removeEventListener("sroll",_),window.removeEventListener("resize",_)},this.revertSettings={innerHTML:p.innerHTML,tabIndex:p.tabIndex},p.tabIndex=-1,V(p,{hidden:"hidden"}),p.insertAdjacentElement("afterend",d.wrapper),d.setValue(c.items),delete c.items,w(p,"invalid",(e=>{b(e),d.isInvalid||(d.isInvalid=!0,d.refreshState())})),d.updateOriginalInput(),d.refreshItems(),d.refreshState(),d.inputState(),d.isSetup=!0,p.disabled&&d.disable(),d.on("change",this.onChange),F(p,"tomselected"),d.trigger("initialize"),!0===c.preload&&d.load("")}setupOptions(e=[],t=[]){for(const t of e)this.registerOption(t)
+for(const e of t)this.registerOptionGroup(e)}setupTemplates(){var e=this,t=e.settings.labelField,i=e.settings.optgroupLabelField,s={optgroup:(e,t)=>{let i=document.createElement("div")
+return i.className="optgroup",i.appendChild(e.options),i},optgroup_header:(e,t)=>'<div class="optgroup-header">'+t(e[i])+"</div>",option:(e,i)=>"<div>"+i(e[t])+"</div>",item:(e,i)=>"<div>"+i(e[t])+"</div>",option_create:(e,t)=>'<div class="create">Add <strong>'+t(e.input)+"</strong>&hellip;</div>",no_results:(e,t)=>'<div class="no-results">No results found</div>',loading:(e,t)=>'<div class="spinner"></div>',not_loading:()=>{},dropdown:()=>"<div></div>"}
+e.settings.render=Object.assign({},s,e.settings.render)}setupCallbacks(){var e,t,i={initialize:"onInitialize",change:"onChange",item_add:"onItemAdd",item_remove:"onItemRemove",clear:"onClear",option_add:"onOptionAdd",option_remove:"onOptionRemove",option_clear:"onOptionClear",optgroup_add:"onOptionGroupAdd",optgroup_remove:"onOptionGroupRemove",optgroup_clear:"onOptionGroupClear",dropdown_open:"onDropdownOpen",dropdown_close:"onDropdownClose",type:"onType",load:"onLoad",focus:"onFocus",blur:"onBlur"}
+for(e in i)(t=this.settings[i[e]])&&this.on(e,t)}onClick(e){var t=this
+t.isFocused&&t.isOpen||(t.focus(),b(e))}onMouseDown(e){var t=this
+if(t.isFocused)return"single"!==t.settings.mode&&t.setActiveItem(),t.open(),!1
+setTimeout((()=>t.focus()),0)}onChange(){A(this.input,"input"),A(this.input,"change")}onPaste(e){var t=this
+t.isFull()||t.isInputHidden||t.isLocked?b(e):t.settings.splitOn&&setTimeout((()=>{var e=t.inputValue()
+if(e.match(t.settings.splitOn)){var i=e.trim().split(t.settings.splitOn)
+for(const e of i)t.createItem(e)}}),0)}onKeyPress(e){var t=this
+if(!t.isLocked){var i=String.fromCharCode(e.keyCode||e.which)
+return t.settings.create&&"multi"===t.settings.mode&&i===t.settings.delimiter?(t.createItem(),void b(e)):void 0}b(e)}onKeyDown(e){var t=this
+if(t.isLocked)9!==e.keyCode&&b(e)
+else{switch(e.keyCode){case 65:if(I(f,e))return void t.selectAll()
+break
+case 27:return t.isOpen&&(b(e,!0),t.close()),void t.clearActiveItems()
+case 40:if(!t.isOpen&&t.hasOptions)t.open()
+else if(t.activeOption){let e=t.getAdjacent(t.activeOption,1)
+e&&t.setActiveOption(e)}return void b(e)
+case 38:if(t.activeOption){let e=t.getAdjacent(t.activeOption,-1)
+e&&t.setActiveOption(e)}return void b(e)
+case 13:return void(t.isOpen&&t.activeOption?(t.onOptionSelect(e,t.activeOption),b(e)):t.settings.create&&t.createItem()&&b(e))
+case 37:return void t.advanceSelection(-1,e)
+case 39:return void t.advanceSelection(1,e)
+case 9:return void(t.settings.selectOnTab&&(t.isOpen&&t.activeOption&&(t.tab_key=!0,t.onOptionSelect(e,t.activeOption),b(e),t.tab_key=!1),t.settings.create&&t.createItem()&&b(e)))
+case 8:case 46:return void t.deleteSelection(e)}t.isInputHidden&&!I(f,e)&&b(e)}}onKeyUp(e){var t=this
+if(t.isLocked)b(e)
+else{var i=t.inputValue()
+t.lastValue!==i&&(t.lastValue=i,t.settings.shouldLoad.call(t,i)&&t.load(i),t.refreshOptions(),t.trigger("type",i))}}onFocus(e){var t=this,i=t.isFocused
+if(t.isDisabled)return t.blur(),void b(e)
+t.ignoreFocus||(t.isFocused=!0,"focus"===t.settings.preload&&t.load(""),i||t.trigger("focus"),t.activeItems.length||(t.showInput(),t.setActiveItem(),t.refreshOptions(!!t.settings.openOnFocus)),t.refreshState())}onBlur(e){var t=this
+if(t.isFocused){if(t.isFocused=!1,t.ignoreFocus=!1,!t.ignoreBlur&&document.activeElement===t.dropdown_content)return t.ignoreBlur=!0,void t.onFocus(e)
+var i=()=>{t.close(),t.setActiveItem(),t.setCaret(t.items.length),t.trigger("blur")}
+t.settings.create&&t.settings.createOnBlur?t.createItem(null,!1,i):i()}}onOptionHover(e,t){}onOptionSelect(e,t){var i,s=this
+t&&(t.parentElement&&t.parentElement.matches("[data-disabled]")||(t.classList.contains("create")?s.createItem(null,!0,(()=>{s.settings.closeAfterSelect&&s.close()})):void 0!==(i=t.dataset.value)&&(s.lastQuery=null,s.addItem(i),s.settings.closeAfterSelect?s.close():!s.settings.hideSelected&&e.type&&/mouse/.test(e.type)&&s.setActiveOption(s.getOption(i)))))}onItemSelect(e,t){var i=this
+i.isLocked||"multi"===i.settings.mode&&(b(e),i.setActiveItem(t,e))}load(e){var t=this,i=t.settings.load
+if(!i)return
+if(t.loadedSearches.hasOwnProperty(e))return
+F(t.wrapper,t.settings.loadingClass),t.loading++
+const s=t.loadCallback.bind(t)
+i.call(t,e,s)}loadCallback(e,t){const i=this
+i.loading=Math.max(i.loading-1,0),i.lastQuery=null,i.clearActiveOption(),i.setupOptions(e,t),i.refreshOptions(i.isFocused&&!i.isInputHidden),i.loading||k(i.wrapper,i.settings.loadingClass),i.trigger("load",e,t)}onSearchChange(e){this.load(e)}setTextboxValue(e=""){var t=this.control_input
+t.value!==e&&(t.value=e,A(t,"update"),this.lastValue=e)}getValue(){return this.is_select_tag&&this.input.hasAttribute("multiple")?this.items:this.items.join(this.settings.delimiter)}setValue(e,t){O(this,t?[]:["change"],(()=>{this.clear(t),this.addItems(e,t)}))}setMaxItems(e){0===e&&(e=null),this.settings.maxItems=e,this.refreshState()}setActiveItem(e,t){var i,s,n,o,r,a,l=this
+if("single"!==l.settings.mode){if(!e)return l.clearActiveItems(),void(l.isFocused&&l.showInput())
+if("mousedown"===(i=t&&t.type.toLowerCase())&&I("shiftKey",t)&&l.activeItems.length){for(a=l.getLastActive(),(n=Array.prototype.indexOf.call(l.control.children,a))>(o=Array.prototype.indexOf.call(l.control.children,e))&&(r=n,n=o,o=r),s=n;s<=o;s++)e=l.control.children[s],-1===l.activeItems.indexOf(e)&&l.setActiveItemClass(e)
+b(t)}else"mousedown"===i&&I(f,t)||"keydown"===i&&I("shiftKey",t)?e.classList.contains("active")?l.removeActiveItem(e):l.setActiveItemClass(e):(l.clearActiveItems(),l.setActiveItemClass(e))
+l.hideInput(),l.isFocused||l.focus()}}setActiveItemClass(e){var t=this.control.querySelector(".last-active")
+t&&k(t,"last-active"),F(e,"active last-active"),-1==this.activeItems.indexOf(e)&&this.activeItems.push(e)}removeActiveItem(e){var t=this.activeItems.indexOf(e)
+this.activeItems.splice(t,1),k(e,"active")}clearActiveItems(){k(this.activeItems,"active"),this.activeItems=[]}setActiveOption(e){var t,i,s
+if(e===this.activeOption)return
+if(this.clearActiveOption(),!e)return
+this.activeOption=e,V(this.control_input,{"aria-activedescendant":e.getAttribute("id")}),V(e,{"aria-selected":"true"}),F(e,"active"),t=this.dropdown_content.clientHeight
+let n=this.dropdown_content.scrollTop||0
+i=this.activeOption.offsetHeight,(s=this.activeOption.getBoundingClientRect().top-this.dropdown_content.getBoundingClientRect().top+n)+i>t+n?this.dropdown_content.scrollTop=s-t+i:s<n&&(this.dropdown_content.scrollTop=s)}clearActiveOption(){this.activeOption&&(k(this.activeOption,"active"),this.activeOption.removeAttribute("aria-selected")),this.activeOption=null,this.control_input.removeAttribute("aria-activedescendant")}selectAll(){"single"!==this.settings.mode&&(this.activeItems=this.controlChildren(),this.activeItems.length&&(F(this.activeItems,"active"),this.hideInput(),this.close()),this.focus())}inputState(){var e=this
+e.settings.controlInput||(e.activeItems.length>0||!e.isFocused&&this.settings.hidePlaceholder&&e.items.length>0?(e.setTextboxValue(),e.isInputHidden=!0,F(e.wrapper,"input-hidden")):(e.isInputHidden=!1,k(e.wrapper,"input-hidden")))}hideInput(){this.inputState()}showInput(){this.inputState()}inputValue(){return this.control_input.value.trim()}focus(){var e=this
+e.isDisabled||(e.ignoreFocus=!0,e.control_input.focus(),setTimeout((()=>{e.ignoreFocus=!1,e.onFocus()}),0))}blur(){this.control_input.blur(),this.onBlur(null)}getScoreFunction(e){return this.sifter.getScoreFunction(e,this.getSearchOptions())}getSearchOptions(){var e,t=this.settings
+return"string"==typeof t.sortField&&(e=[{field:t.sortField}]),{fields:t.searchField,conjunction:t.searchConjunction,sort:e,nesting:t.nesting}}search(e){var t,i,s,n=this,o=n.settings,r=this.getSearchOptions()
+if(o.score&&"function"!=typeof(s=n.settings.score.call(n,e)))throw new Error('Tom Select "score" setting must be a function that returns a function')
+if(e!==n.lastQuery?(n.lastQuery=e,i=n.sifter.search(e,Object.assign(r,{score:s})),n.currentResults=i):i=Object.assign({},n.currentResults),o.hideSelected)for(t=i.items.length-1;t>=0;t--)-1!==n.items.indexOf(m(i.items[t].id))&&i.items.splice(t,1)
+return i}refreshOptions(e=!0){var t,i,s,n,o,r,a,l,d,c,p,u,h,f=this,v=f.inputValue(),y=f.search(v),O=f.activeOption&&m(f.activeOption.dataset.value),b=f.settings.shouldOpen||!1
+for(n=y.items.length,"number"==typeof f.settings.maxOptions&&(n=Math.min(n,f.settings.maxOptions)),n>0&&(b=!0),u={},o=[],t=0;t<n;t++){let e=f.options[y.items[t].id],n=m(e[f.settings.valueField]),l=f.getOption(n)
+for(l||(l=f.render("option",e)),f.settings.hideSelected||l.classList.toggle("selected",f.items.includes(n)),r=e[f.settings.optgroupField]||"",i=0,s=(a=Array.isArray(r)?r:[r])&&a.length;i<s;i++)r=a[i],f.optgroups.hasOwnProperty(r)||(r=""),u.hasOwnProperty(r)||(u[r]=document.createDocumentFragment(),o.push(r)),i>0&&(l=l.cloneNode(!0),k(l,"active"),l.removeAttribute("aria-selected")),u[r].appendChild(l)}for(r of(this.settings.lockOptgroupOrder&&o.sort(((e,t)=>(f.optgroups[e]&&f.optgroups[e].$order||0)-(f.optgroups[t]&&f.optgroups[t].$order||0))),l=document.createDocumentFragment(),o))if(f.optgroups.hasOwnProperty(r)&&u[r].children.length){let e=document.createDocumentFragment()
+e.append(f.render("optgroup_header",f.optgroups[r])),e.append(u[r])
+let t=f.render("optgroup",{group:f.optgroups[r],options:e})
+l.append(t)}else l.append(u[r])
+if(f.dropdown_content.innerHTML="",f.dropdown_content.append(l),f.settings.highlight&&(f.dropdown_content,h=document.querySelectorAll("span.highlight"),Array.prototype.forEach.call(h,(function(e,t){var i=e.parentNode
+i.replaceChild(e.firstChild,e),i.normalize()})),y.query.length&&y.tokens.length))for(const e of y.tokens)g(f.dropdown_content,e.regex)
+var w=e=>{let t=f.render(e,{input:v})
+return t&&(b=!0,f.dropdown_content.insertBefore(t,f.dropdown_content.firstChild)),t}
+if(f.settings.shouldLoad.call(f,v)?f.loading?w("loading"):0===y.items.length&&w("no_results"):w("not_loading"),(d=f.canCreate(v))&&(p=w("option_create")),f.hasOptions=y.items.length>0||d,b){if(y.items.length>0){if(!(c=O&&f.getOption(O))||!f.dropdown_content.contains(c)){let e=0
+p&&!f.settings.addPrecedence&&(e=1),c=f.selectable()[e]}}else c=p
+f.setActiveOption(c),e&&!f.isOpen&&f.open()}else f.clearActiveOption(),e&&f.isOpen&&f.close(!1)}selectable(){return this.dropdown_content.querySelectorAll("[data-selectable]")}addOption(e){var t,i=this
+if(Array.isArray(e))for(const t of e)i.addOption(t)
+else(t=i.registerOption(e))&&(i.userOptions[t]=!0,i.lastQuery=null,i.trigger("option_add",t,e))}registerOption(e){var t=m(e[this.settings.valueField])
+return null!==t&&!this.options.hasOwnProperty(t)&&(e.$order=e.$order||++this.order,e.$id=this.inputId+"-opt-"+this.options_i++,this.options[t]=e,t)}registerOptionGroup(e){var t=m(e[this.settings.optgroupValueField])
+return null!==t&&(e.$order=e.$order||++this.order,this.optgroups[t]=e,t)}addOptionGroup(e,t){var i
+t[this.settings.optgroupValueField]=e,(i=this.registerOptionGroup(t))&&this.trigger("optgroup_add",i,t)}removeOptionGroup(e){this.optgroups.hasOwnProperty(e)&&(delete this.optgroups[e],this.clearCache(),this.trigger("optgroup_remove",e))}clearOptionGroups(){this.optgroups={},this.clearCache(),this.trigger("optgroup_clear")}updateOption(e,t){var i,s,n,o,r,a,l,d=this
+if(e=m(e),n=m(t[d.settings.valueField]),null!==e&&d.options.hasOwnProperty(e)){if("string"!=typeof n)throw new Error("Value must be set in option data")
+l=d.options[e].$order,n!==e&&(delete d.options[e],-1!==(o=d.items.indexOf(e))&&d.items.splice(o,1,n)),t.$order=t.$order||l,d.options[n]=t,r=d.renderCache.item,a=d.renderCache.option,r&&(delete r[e],delete r[n]),a&&(delete a[e],delete a[n]),-1!==d.items.indexOf(n)&&(i=d.getItem(e),s=d.render("item",t),i.classList.contains("active")&&F(s,"active"),i.parentNode.insertBefore(s,i),i.remove()),d.lastQuery=null,d.isOpen&&d.refreshOptions(!1)}}removeOption(e,t){var i=this
+e=m(e)
+var s=i.renderCache.item,n=i.renderCache.option
+s&&delete s[e],n&&delete n[e],delete i.userOptions[e],delete i.options[e],i.lastQuery=null,i.trigger("option_remove",e),i.removeItem(e,t)}clearOptions(){this.loadedSearches={},this.userOptions={},this.clearCache()
+var e={}
+for(let t in this.options)this.options.hasOwnProperty(t)&&this.items.indexOf(t)>=0&&(e[t]=this.options[t])
+this.options=this.sifter.items=e,this.lastQuery=null,this.trigger("option_clear")}getOption(e){return this.renderCache.option.hasOwnProperty(e)?this.renderCache.option[e]:this.getElementWithValue(e,this.selectable())}getAdjacent(e,t,i="option"){var s
+if(e){s="item"==i?this.controlChildren():this.dropdown_content.querySelectorAll("[data-selectable]")
+for(let i=0;i<s.length;i++)if(s[i]==e)return t>0?s[i+1]:s[i-1]}}getElementWithValue(e,t){if(null!==(e=m(e)))for(const i of t){let t=i
+if(t.getAttribute("data-value")===e)return t}}getItem(e){return this.getElementWithValue(e,this.control.children)}addItems(e,t){var i=this
+i.buffer=document.createDocumentFragment()
+for(const e of i.control.children)i.buffer.appendChild(e)
+var s=Array.isArray(e)?e:[e]
+for(let e=0,n=(s=s.filter((e=>-1===i.items.indexOf(e)))).length;e<n;e++)i.isPending=e<n-1,i.addItem(s[e],t)
+var n=i.control
+n.insertBefore(i.buffer,n.firstChild),i.buffer=null}addItem(e,t){O(this,t?[]:["change"],(()=>{var i,s,n=this,o=n.settings.mode
+if(e=m(e),(-1===n.items.indexOf(e)||("single"===o&&n.close(),"single"!==o&&n.settings.duplicates))&&n.options.hasOwnProperty(e)&&("single"===o&&n.clear(t),"multi"!==o||!n.isFull())){if(i=n.render("item",n.options[e]),n.control.contains(i)&&(i=i.cloneNode(!0)),s=n.isFull(),n.items.splice(n.caretPos,0,e),n.insertAtCaret(i),n.isSetup){let s=n.selectable()
+if(!n.isPending){let t=n.getOption(e),i=n.getAdjacent(t,1)
+n.refreshOptions(n.isFocused&&"single"!==o),i&&n.setActiveOption(i)}!s.length||n.isFull()?n.close():n.isPending||n.positionDropdown(),n.trigger("item_add",e,i),n.isPending||n.updateOriginalInput({silent:t})}(!n.isPending||!s&&n.isFull())&&n.refreshState()}}))}removeItem(e,t){var i,s,n=this,o=n.getItem(e)
+o&&(e=m(o.dataset.value),-1!==(i=n.items.indexOf(e))&&(o.remove(),o.classList.contains("active")&&(s=n.activeItems.indexOf(o),n.activeItems.splice(s,1),k(o,"active")),n.items.splice(i,1),n.lastQuery=null,!n.settings.persist&&n.userOptions.hasOwnProperty(e)&&n.removeOption(e,t),i<n.caretPos&&n.setCaret(n.caretPos-1),n.updateOriginalInput({silent:t}),n.refreshState(),n.positionDropdown(),n.trigger("item_remove",e,o)))}createItem(e,t=!0,i){var s,n=this,o=n.caretPos
+if(e=e||n.inputValue(),"function"!=typeof i&&(i=()=>{}),!n.canCreate(e))return i(),!1
+n.lock()
+var r=!1,a=e=>{if(n.unlock(),!e||"object"!=typeof e)return i()
+var s=m(e[n.settings.valueField])
+if("string"!=typeof s)return i()
+n.setTextboxValue(),n.addOption(e),n.setCaret(o),n.addItem(s),n.refreshOptions(t&&"single"!==n.settings.mode),i(e),r=!0}
+return s="function"==typeof n.settings.create?n.settings.create.call(this,e,a):{[n.settings.labelField]:e,[n.settings.valueField]:e},r||a(s),!0}refreshItems(){var e=this
+e.lastQuery=null,e.isSetup&&e.addItems(e.items),e.updateOriginalInput(),e.refreshState()}refreshState(){var e=this
+e.refreshValidityState()
+var t=e.isFull(),i=e.isLocked
+e.wrapper.classList.toggle("rtl",e.rtl)
+var s,n=e.control.classList
+n.toggle("focus",e.isFocused),n.toggle("disabled",e.isDisabled),n.toggle("required",e.isRequired),n.toggle("invalid",e.isInvalid),n.toggle("locked",i),n.toggle("full",t),n.toggle("not-full",!t),n.toggle("input-active",e.isFocused&&!e.isInputHidden),n.toggle("dropdown-active",e.isOpen),n.toggle("has-options",(s=e.options,0===Object.keys(s).length)),n.toggle("has-items",e.items.length>0)}refreshValidityState(){var e=this
+if(e.input.checkValidity){this.isRequired&&(e.input.required=!0)
+var t=!e.input.checkValidity()
+e.isInvalid=t,e.control_input.required=t,this.isRequired&&(e.input.required=!t)}}isFull(){return null!==this.settings.maxItems&&this.items.length>=this.settings.maxItems}updateOriginalInput(e={}){var t,i,s=this
+if(s.is_select_tag)for(s.input.querySelectorAll("option[selected]").forEach((e=>{-1==s.items.indexOf(e.value)&&(e.selected=!1,e.removeAttribute("selected"))})),t=s.items.length-1;t>=0;t--){var n
+if(i=s.items[t],!(n=s.options[i].$option)){const e=s.options[i][s.settings.labelField]||""
+n=S('<option value="'+y(i)+'">'+y(e)+"</option>"),s.options[i].$option=n}n.selected=!0,V(n,{selected:"true"}),s.input.prepend(n)}else s.input.value=s.getValue()
+s.isSetup&&(e.silent||s.trigger("change",s.getValue()))}open(){var e=this
+e.isLocked||e.isOpen||"multi"===e.settings.mode&&e.isFull()||(e.isOpen=!0,V(e.control_input,{"aria-expanded":"true"}),e.refreshState(),x(e.dropdown,{visibility:"hidden",display:"block"}),e.positionDropdown(),x(e.dropdown,{visibility:"visible",display:"block"}),e.focus(),e.trigger("dropdown_open",e.dropdown))}close(e=!0){var t=this,i=t.isOpen
+e&&t.setTextboxValue(),"single"===t.settings.mode&&t.items.length&&(t.hideInput(),t.tab_key||t.blur()),t.isOpen=!1,V(t.control_input,{"aria-expanded":"false"}),x(t.dropdown,{display:"none"}),t.clearActiveOption(),t.refreshState(),i&&t.trigger("dropdown_close",t.dropdown)}positionDropdown(){if("body"===this.settings.dropdownParent){var e=this.control,t=e.getBoundingClientRect(),i=e.offsetHeight+t.top+window.scrollY,s=t.left+window.scrollX
+x(this.dropdown,{width:t.width+"px",top:i+"px",left:s+"px"})}}clear(e){var t=this
+if(t.items.length){var i=t.controlChildren()
+for(const e of i)e.remove()
+t.items=[],t.lastQuery=null,t.setCaret(0),t.setActiveItem(),t.updateOriginalInput({silent:e}),t.refreshState(),t.showInput(),t.trigger("clear")}}insertAtCaret(e){var t=this,i=Math.min(t.caretPos,t.items.length),s=t.buffer||t.control
+0===i?s.insertBefore(e,s.firstChild):s.insertBefore(e,s.children[i]),t.setCaret(i+1)}deleteSelection(e){var t,i,s,n,o,r=this
+if(t=e&&8===e.keyCode?-1:1,i={start:(o=r.control_input).selectionStart,length:o.selectionEnd-o.selectionStart},s=[],r.activeItems.length){n=q(T(r.activeItems,t)),t>0&&n++
+for(const e of r.activeItems)s.push(e.dataset.value)}else(r.isFocused||"single"===r.settings.mode)&&r.items.length&&(t<0&&0===i.start&&0===i.length?s.push(r.items[r.caretPos-1]):t>0&&i.start===r.inputValue().length&&s.push(r.items[r.caretPos]))
+if(!s.length||"function"==typeof r.settings.onDelete&&!1===r.settings.onDelete.call(r,s,e))return!1
+for(b(e,!0),void 0!==n&&r.setCaret(n);s.length;)r.removeItem(s.pop())
+return r.showInput(),r.positionDropdown(),r.refreshOptions(!1),!0}advanceSelection(e,t){var i,s,n,o=this
+o.rtl&&(e*=-1),o.inputValue().length||(I(f,t)||I("shiftKey",t)?(n=(s=o.getLastActive(e))?s.classList.contains("active")?o.getAdjacent(s,e,"item"):s:e>0?o.control_input.nextElementSibling:o.control_input.previousElementSibling)&&(n.classList.contains("active")&&o.removeActiveItem(s),o.setActiveItemClass(n)):o.isFocused&&!o.activeItems.length?o.setCaret(o.caretPos+e):(s=o.getLastActive(e))&&(i=q(s),o.setCaret(e>0?i+1:i),o.setActiveItem()))}getLastActive(e){let t=this.control.querySelector(".last-active")
+if(t)return t
+var i=this.control.querySelectorAll(".active")
+return i?T(i,e):void 0}setCaret(e){var t=this
+"single"===t.settings.mode||t.settings.controlInput?e=t.items.length:(e=Math.max(0,Math.min(t.items.length,e)))==t.caretPos||t.isPending||t.controlChildren().forEach(((i,s)=>{s<e?t.control_input.insertAdjacentElement("beforebegin",i):t.control.appendChild(i)})),t.caretPos=e}controlChildren(){return Array.from(this.control.getElementsByClassName(this.settings.itemClass))}lock(){this.close(),this.isLocked=!0,this.refreshState()}unlock(){this.isLocked=!1,this.refreshState()}disable(){var e=this
+e.input.disabled=!0,e.control_input.disabled=!0,e.control_input.tabIndex=-1,e.isDisabled=!0,e.lock()}enable(){var e=this
+e.input.disabled=!1,e.control_input.disabled=!1,e.control_input.tabIndex=e.tabIndex,e.isDisabled=!1,e.unlock()}destroy(){var e=this,t=e.revertSettings
+e.trigger("destroy"),e.off(),e.wrapper.remove(),e.dropdown.remove(),e.input.innerHTML=t.innerHTML,e.input.tabIndex=t.tabIndex,k(e.input,"tomselected"),e.input.removeAttribute("hidden"),e.input.required=this.isRequired,e._destroy(),delete e.input.tomselect}render(e,t){var i,s,n=this
+if(("option"===e||"item"===e)&&(i=m(t[n.settings.valueField]),n.renderCache[e].hasOwnProperty(i)))return n.renderCache[e][i]
+var o=n.settings.render[e]
+return"function"!=typeof o?null:(s=o.call(this,t,y))?(s=S(s),"option"===e||"option_create"===e?t[n.settings.disabledField]?V(s,{"aria-disabled":"true"}):V(s,{"data-selectable":""}):"optgroup"===e&&(V(s,{"data-group":t.group[n.settings.optgroupValueField]}),t.group[n.settings.disabledField]&&V(s,{"data-disabled":""})),"option"!==e&&"item"!==e||(V(s,{"data-value":i}),"item"===e?F(s,n.settings.itemClass):(F(s,n.settings.optionClass),V(s,{role:"option",id:t.$id})),n.renderCache[e][i]=s),s):s}clearCache(e){void 0===e?this.renderCache={item:{},option:{}}:this.renderCache[e]={}}canCreate(e){return this.settings.create&&e.length&&this.settings.createFilter.call(this,e)}hook(e,t,i){var s=this,n=s[t]
+s[t]=function(){var t,o
+return"after"===e&&(t=n.apply(s,arguments)),o=i.apply(s,arguments),"instead"===e?o:("before"===e&&(t=n.apply(s,arguments)),t)}}}return j.define("change_listener",(function(e){var t=this,i=!1
+w(t.input,"change",(()=>{if(i)i=!1
+else{i=!0
+var e=_(t.input,{})
+t.setupOptions(e.options,e.optgroups),t.setValue(e.items)}}))})),j.define("checkbox_options",(function(e){var t=this,i=t.onOptionSelect
+t.settings.hideSelected=!1
+var s=function(e){var t=e.querySelector("input")
+e.classList.contains("selected")?t.checked=!0:t.checked=!1}
+t.hook("after","setupTemplates",(()=>{var e=t.settings.render.option
+t.settings.render.option=function(i){var s=S(e.apply(t,arguments)),n=document.createElement("input")
+n.addEventListener("click",(function(e){b(e)})),n.type="checkbox"
+var o=m(i[t.settings.valueField])
+return t.items.indexOf(o)>-1&&(n.checked=!0),s.prepend(n),s}})),t.on("item_remove",(e=>{var i=t.getOption(e)
+i&&(i.classList.remove("selected"),s(i))})),t.hook("instead","onOptionSelect",(function(e,s){return s.classList.contains("selected")?(s.classList.remove("selected"),t.removeItem(s.dataset.value),t.refreshOptions(),void b(e,!0)):i.apply(t,arguments)})),t.hook("after","onOptionSelect",((e,t)=>{s(t)}))})),j.define("clear_button",(function(e){var t=this
+e=Object.assign({className:"clear-button",title:"Clear All",html:e=>`<div class="${e.className}" title="${e.title}">&times;</div>`},e),t.hook("after","setup",(()=>{var i=S(e.html(e))
+i.addEventListener("click",(e=>{for(;t.items.length>0;)t.removeItem(t.items[0],!0)
+t.updateOriginalInput(),e.preventDefault(),e.stopPropagation()})),t.control.appendChild(i)}))})),j.define("drag_drop",(function(e){var t=this
+if(!$.fn.sortable)throw new Error('The "drag_drop" plugin requires jQuery UI "sortable".')
+if("multi"===t.settings.mode){var i=t.lock,s=t.unlock
+t.hook("instead","lock",(function(){var e=t.control.dataset.sortable
+return e&&e.disable(),i.apply(t,arguments)})),t.hook("instead","unlock",(function(){var e=t.control.dataset.sortable
+return e&&e.enable(),s.apply(t,arguments)})),t.hook("after","setup",(()=>{var e=$(t.control).sortable({items:"[data-value]",forcePlaceholderSize:!0,disabled:t.isLocked,start:(t,i)=>{i.placeholder.css("width",i.helper.css("width")),e.css({overflow:"visible"})},stop:()=>{e.css({overflow:"hidden"})
+var i=[]
+e.children("[data-value]").each((function(){i.push($(this).attr("data-value"))})),t.setValue(i)}})}))}})),j.define("dropdown_header",(function(e){var t=this
+e=Object.assign({title:"Untitled",headerClass:"dropdown-header",titleRowClass:"dropdown-header-title",labelClass:"dropdown-header-label",closeClass:"dropdown-header-close",html:e=>'<div class="'+e.headerClass+'"><div class="'+e.titleRowClass+'"><span class="'+e.labelClass+'">'+e.title+'</span><a class="'+e.closeClass+'">&times;</a></div></div>'},e),t.hook("after","setup",(()=>{var i=S(e.html(e)),s=i.querySelector("."+e.closeClass)
+s&&s.addEventListener("click",(e=>{b(e,!0),t.close()})),t.dropdown.insertBefore(i,t.dropdown.firstChild)}))})),j.define("dropdown_input",(function(){var e=this,t=e.settings.controlInput||'<input type="text" autocomplete="off" class="dropdown-input" />'
+t=S(t),e.settings.placeholder&&V(t,{placeholder:e.settings.placeholder}),e.settings.controlInput=t,e.settings.shouldOpen=!0,e.hook("after","setup",(()=>{V(e.wrapper,{tabindex:e.input.disabled?"-1":e.tabIndex}),w(e.wrapper,"keypress",(t=>{if(!e.control.contains(t.target)&&!e.dropdown.contains(t.target))switch(t.keyCode){case 13:return void e.onClick(t)}}))
+let i=S('<div class="dropdown-input-wrap">')
+i.appendChild(t),e.dropdown.insertBefore(i,e.dropdown.firstChild)}))})),j.define("input_autogrow",(function(){var e=this
+e.hook("after","setup",(()=>{var t=document.createElement("span"),i=e.control_input
+t.style.cssText="position:absolute; top:-99999px; left:-99999px; width:auto; padding:0; white-space:pre; ",e.wrapper.appendChild(t)
+for(const e of["letterSpacing","fontSize","fontFamily","fontWeight","textTransform"])t.style[e]=i.style[e]
+var s=()=>{e.items.length>0?(t.textContent=i.value,i.style.width=t.clientWidth+"px"):i.style.width=""}
+s(),e.on("update item_add item_remove",s),w(i,"input",s),w(i,"keyup",s),w(i,"blur",s),w(i,"update",s)}))})),j.define("no_backspace_delete",(function(){var e=this,t=e.deleteSelection
+this.hook("instead","deleteSelection",(function(){return!!e.activeItems.length&&t.apply(e,arguments)}))})),j.define("no_active_items",(function(e){this.hook("instead","setActiveItem",(()=>{})),this.hook("instead","selectAll",(()=>{}))})),j.define("optgroup_columns",(function(){var e=this,t=e.onKeyDown
+e.hook("instead","onKeyDown",(function(i){var s,n,o,r
+if(!e.isOpen||37!==i.keyCode&&39!==i.keyCode)return t.apply(e,arguments)
+r=E(e.activeOption,"[data-group]"),s=q(e.activeOption,"[data-selectable]"),(r=37===i.keyCode?r.previousSibling:r.nextSibling)&&(n=(o=r.querySelectorAll("[data-selectable]"))[Math.min(o.length-1,s)])&&e.setActiveOption(n)}))})),j.define("remove_button",(function(e){e=Object.assign({label:"&times;",title:"Remove",className:"remove",append:!0},e)
+var t=this
+if(e.append){var i='<a href="javascript:void(0)" class="'+e.className+'" tabindex="-1" title="'+y(e.title)+'">'+e.label+"</a>"
+t.hook("after","setupTemplates",(()=>{var e=t.settings.render.item
+t.settings.render.item=function(){var s=S(e.apply(t,arguments)),n=S(i)
+return s.appendChild(n),w(n,"mousedown",(e=>{b(e,!0)})),w(n,"click",(e=>{if(b(e,!0),!t.isLocked){var i=s.dataset.value
+t.removeItem(i),t.refreshOptions(!1)}})),s}}))}})),j.define("restore_on_backspace",(function(e){var t=this
+e.text=e.text||function(e){return e[t.settings.labelField]},t.on("item_remove",(function(i){if(""===t.control_input.value.trim()){var s=t.options[i]
+s&&t.setTextboxValue(e.text.call(t,s))}}))})),j}))
+var tomSelect=function(e,t){return new TomSelect(e,t)}
+//# sourceMappingURL=tom-select.complete.min.js.map
diff --git a/tjdests/templates/base.html b/tjdests/templates/base.html
index 1c8fb39..3488f66 100644
--- a/tjdests/templates/base.html
+++ b/tjdests/templates/base.html
@@ -12,13 +12,14 @@
         <script src="{% static "bootstrap.bundle.min.js" %}" integrity="sha384-JEW9xMcG8R+pH31jmWH6WWP0WintQrMb4s7ZOdauHnUtxwoG2vI5DkLtS3qm9Ekf"></script>
 
         <script src="{% static "jquery.min.js" %}" integrity="sha512-894YE6QWD5I59HgZOGReFYm4dnWc1Qt5NtvYSaNcOP+u1T9qYdvdihz0PPSiiqn/+/3e7Jo4EaG7TubfWGUrMQ=="></script>
-        <script src="{% static "selectize.js" %}" integrity="sha512-pF+DNRwavWMukUv/LyzDyDMn8U2uvqYQdJN0Zvilr6DDo/56xPDZdDoyPDYZRSL4aOKO/FGKXTpzDyQJ8je8Qw=="></script>
-        <link rel="stylesheet" href="{% static "selectize.bootstrap4.min.css" %}" integrity="sha512-MMojOrCQrqLg4Iarid2YMYyZ7pzjPeXKRvhW9nZqLo6kPBBTuvNET9DBVWptAo/Q20Fy11EIHM5ig4WlIrJfQw==" />
+
+        <script src="{% static "tom-select.complete.min.js" %}" integrity="sha384-Hnof5Csstpcrk+thlHZ8VXXkD/Wk96gkCvwIvpwYLBVIAPyQA3gkqcPO+RwLARmZ"></script>
+        <link rel="stylesheet" href="{% static "tom-select.bootstrap5.css" %}" integrity="sha384-3syGtcTzvEB6zjzJ4BQ2loMdsaYaxAjWjD3GcbCLAPAE2XkENSR94WcY8c3g5lNu" />
 
         <script>
             $(document).ready(function(){
                 $("select").each(function(){
-                    $(this).selectize();
+                    new TomSelect("#" + this.id, {allowEmptyOption: true, "plugins": ["change_listener"]});
                 });
                 $(function () {
                   $('[data-toggle="tooltip"]').tooltip()