{"version":3,"file":"60288450bf5976c08d613626.js?3.6.14.7428b935c.1723600572441","mappings":";sFAAA,SAAWA,GACV,aAIC,IAEKC,EACAC,EAUAC,EACAC,EAfDC,OAAOC,UAAUF,WAGhBH,EAAW,CAAC,EAAEA,SACdC,EAAiB,WAEpB,IACC,IAAIK,EAAS,CAAC,EACVC,EAAkBC,OAAOP,eACzBQ,EACHF,EAAgBD,EAAQA,EAAQA,IAAWC,CAC7C,CAAE,MAAOG,GAAQ,CACjB,OAAOD,CACP,CAToB,GAUjBP,EAAU,GAAGA,QACbC,EAAW,SAAUQ,GACxB,GAAY,MAARC,KACH,MAAM,IAAIC,UAEX,IAAIC,EAASV,OAAOQ,MACpB,GAAID,GAAmC,mBAAzBX,EAASe,KAAKJ,GAC3B,MAAM,IAAIE,UAEX,IAAIG,EAAeF,EAAOG,OACtBC,EAAed,OAAOO,GACtBQ,EAAeD,EAAaD,OAC5BG,EAAWC,UAAUJ,OAAS,EAAII,UAAU,QAAKC,EAEjDC,EAAMH,EAAWI,OAAOJ,GAAY,EAOxC,OANIG,GAAOA,IAEVA,EAAM,KAIHJ,EAFQM,KAAKC,IAAID,KAAKE,IAAIJ,EAAK,GAAIP,GAEZA,KAGwB,GAA5Cd,EAAQa,KAAKD,EAAQI,EAAcK,EAC3C,EACItB,EACHA,EAAeG,OAAOC,UAAW,WAAY,CAC5CuB,MAAOzB,EACP0B,cAAc,EACdC,UAAU,IAGX1B,OAAOC,UAAUF,SAAWA,GAK1BC,OAAOC,UAAU0B,YACrB,WAEC,IAAI9B,EAAiB,WAEpB,IACC,IAAIK,EAAS,CAAC,EACVC,EAAkBC,OAAOP,eACzBQ,EACHF,EAAgBD,EAAQA,EAAQA,IAAWC,CAC7C,CAAE,MAAOG,GAAQ,CACjB,OAAOD,CACP,CAToB,GAUjBT,EAAW,CAAC,EAAEA,SACd+B,EAAa,SAAUpB,GAC1B,GAAY,MAARC,KACH,MAAM,IAAIC,UAEX,IAAIC,EAASV,OAAOQ,MACpB,GAAID,GAAmC,mBAAzBX,EAASe,KAAKJ,GAC3B,MAAM,IAAIE,UAEX,IAAIG,EAAeF,EAAOG,OACtBC,EAAed,OAAOO,GACtBQ,EAAeD,EAAaD,OAC5BG,EAAWC,UAAUJ,OAAS,EAAII,UAAU,QAAKC,EAEjDC,EAAMH,EAAWI,OAAOJ,GAAY,EACpCG,GAAOA,IAEVA,EAAM,GAEP,IAAIS,EAAQP,KAAKC,IAAID,KAAKE,IAAIJ,EAAK,GAAIP,GAEvC,GAAIG,EAAea,EAAQhB,EAC1B,OAAO,EAGR,IADA,IAAIiB,GAAS,IACJA,EAAQd,GAChB,GACCL,EAAOoB,WAAWF,EAAQC,IAAUf,EAAagB,WAAWD,GAE5D,OAAO,EAGT,OAAO,CACR,EACIhC,EACHA,EAAeG,OAAOC,UAAW,aAAc,CAC9CuB,MAAOG,EACPF,cAAc,EACdC,UAAU,IAGX1B,OAAOC,UAAU0B,WAAaA,CAE/B,CAvDD,GA0DIvB,OAAO2B,OACX3B,OAAO2B,KAAO,SACbC,EACAC,EACAC,GAMA,IAAKD,KAHLC,EAAI,GAGMF,EAAGE,EAAEC,eAAexB,KAAKqB,EAAGC,IAAMC,EAAEE,KAAKH,GAEnD,OAAOC,CACR,GAMD,IAAIG,EAAW,CACdC,YAAY,EACZC,KAAM5C,EAAE0C,SAASG,OAAOC,KAGzB9C,EAAE0C,SAASG,OAAOC,IAAM,SAAUC,EAAMlB,GAGvC,OAFIA,IAAUa,EAASC,YAAY3C,EAAE+C,GAAMC,KAAK,YAAY,GAErDN,EAASE,KAAKK,MAAMpC,KAAMS,UAClC,EAEA,IAAI4B,EAAoB,KAiFxB,SAASC,EAAgBC,GAmBxB,OAHApD,EAAEqD,KAfU,CACX,CAACC,GAAI,eAAgBC,GAAI,KACzB,CAACD,GAAI,eAAgBC,GAAI,KACzB,CAACD,GAAI,eAAgBC,GAAI,KACzB,CAACD,GAAI,eAAgBC,GAAI,KACzB,CAACD,GAAI,eAAgBC,GAAI,KACzB,CAACD,GAAI,eAAgBC,GAAI,KACzB,CAACD,GAAI,eAAgBC,GAAI,KACzB,CAACD,GAAI,eAAgBC,GAAI,KACzB,CAACD,GAAI,eAAgBC,GAAI,KACzB,CAACD,GAAI,eAAgBC,GAAI,KACzB,CAACD,GAAI,eAAgBC,GAAI,KACzB,CAACD,GAAI,UAAWC,GAAI,KACpB,CAACD,GAAI,UAAWC,GAAI,OAEP,WACbH,EAAOA,EAAOA,EAAKI,QAAQ3C,KAAKyC,GAAIzC,KAAK0C,IAAM,EAChD,IACOH,CACR,CApGApD,EAAEyD,GAAGC,cAAgB,SAAUC,GAC9B,IACCC,EADGC,EAAKhD,KAAK,GAGVgD,EAAGC,eAEe,mBAAVC,MAEVH,EAAQ,IAAIG,MAAMJ,EAAW,CAC5BK,SAAS,KAIVJ,EAAQK,SAASC,YAAY,UACvBC,UAAUR,GAAW,GAAM,GAGlCE,EAAGC,cAAcF,IACPC,EAAGO,YAEbR,EAAQK,SAASI,qBACXC,UAAYX,EAClBE,EAAGO,UAAU,KAAOT,EAAWC,IAG/B/C,KAAK0D,QAAQZ,EAEf,EAIA3D,EAAEwE,KAAKC,QAAQC,UAAY,SAAUC,EAAKzC,EAAO0C,GAChD,IAAIC,EAAO7E,EAAE2E,GAAKG,KAAK,KAIvB,OAHgBD,EAAK7B,KAAK,WAAa6B,EAAKzB,QAC1CnD,WACA8E,cACc3E,SAASwE,EAAK,GAAGG,cAClC,EAGA/E,EAAEwE,KAAKC,QAAQO,QAAU,SAAUL,EAAKzC,EAAO0C,GAC9C,IAAIC,EAAO7E,EAAE2E,GAAKG,KAAK,KAIvB,OAHgBD,EAAK7B,KAAK,WAAa6B,EAAKzB,QAC1CnD,WACA8E,cACc/C,WAAW4C,EAAK,GAAGG,cACpC,EAGA/E,EAAEwE,KAAKC,QAAQQ,WAAa,SAAUN,EAAKzC,EAAO0C,GACjD,IAAIC,EAAO7E,EAAE2E,GAAKG,KAAK,KAQvB,OANCD,EAAK7B,KAAK,WACV6B,EAAK7B,KAAK,mBACV6B,EAAKzB,QAEJnD,WACA8E,cACc3E,SAASwE,EAAK,GAAGG,cAClC,EAGA/E,EAAEwE,KAAKC,QAAQS,SAAW,SAAUP,EAAKzC,EAAO0C,GAC/C,IAAIC,EAAO7E,EAAE2E,GAAKG,KAAK,KAQvB,OANCD,EAAK7B,KAAK,WACV6B,EAAK7B,KAAK,mBACV6B,EAAKzB,QAEJnD,WACA8E,cACc/C,WAAW4C,EAAK,GAAGG,cACpC,EA+BA,IAmBII,EAAgB,SAAUC,GAC7B,IAAIC,EAAU,SAAUC,GACvB,OAAOF,EAAIE,EACZ,EAEIC,EAAS,MAAQ9E,OAAO2B,KAAKgD,GAAKI,KAAK,KAAO,IAC9CC,EAAaC,OAAOH,GACpBI,EAAgBD,OAAOH,EAAQ,KACnC,OAAO,SAAUxE,GAEhB,OADAA,EAAmB,MAAVA,EAAiB,GAAK,GAAKA,EAC7B0E,EAAWG,KAAK7E,GACpBA,EAAOyC,QAAQmC,EAAeN,GAC9BtE,CACJ,CACD,EAEI8E,EAAaV,EAnCD,CACf,IAAK,QACL,IAAK,OACL,IAAK,OACL,IAAK,SACL,IAAK,SACL,IAAK,WA8BFW,EAAeX,EA3BD,CACjB,QAAS,IACT,OAAQ,IACR,OAAQ,IACR,SAAU,IACV,SAAU,IACV,SAAU,MAuBPY,EAAe,SAAUC,EAASC,GAEhCvD,EAASC,aACb3C,EAAE0C,SAASG,OAAOC,IAAMJ,EAASE,KACjCF,EAASC,YAAa,GAGvB9B,KAAKqF,SAAWlG,EAAEgG,GAClBnF,KAAKsF,YAAc,KACnBtF,KAAKuF,QAAU,KACfvF,KAAKwF,MAAQ,KACbxF,KAAKyF,KAAO,KACZzF,KAAKoF,QAAUA,EAIY,OAAvBpF,KAAKoF,QAAQM,QAChB1F,KAAKoF,QAAQM,MAAQ1F,KAAKqF,SAASM,KAAK,UAIzC,IAAIC,EAAS5F,KAAKoF,QAAQS,cACJ,iBAAXD,IACV5F,KAAKoF,QAAQS,cAAgB,CAACD,EAAQA,EAAQA,EAAQA,IAIvD5F,KAAK8F,IAAMZ,EAAazF,UAAUqG,IAClC9F,KAAK+F,OAASb,EAAazF,UAAUsG,OACrC/F,KAAKgG,QAAUd,EAAazF,UAAUuG,QACtChG,KAAKiG,SAAWf,EAAazF,UAAUwG,SACvCjG,KAAKkG,UAAYhB,EAAazF,UAAUyG,UACxClG,KAAKmG,YAAcjB,EAAazF,UAAU0G,YAC1CnG,KAAKoG,QAAUlB,EAAazF,UAAU2G,QACtCpG,KAAKqG,OAASnB,EAAazF,UAAU4G,OACrCrG,KAAKsG,KAAOpB,EAAazF,UAAU6G,KACnCtG,KAAKuG,KAAOrB,EAAazF,UAAU8G,KAEnCvG,KAAKwG,MACN,EA03DA,SAASC,EAAOC,GAEf,IAOI1F,EAPA2F,EAAOlG,UAGPmG,EAAUF,EAEd,GAAGG,MAAMzE,MAAMuE,GAGf,IAAIG,EAAQ9G,KAAKwC,MAAK,WACrB,IAAIuE,EAAQ5H,EAAEa,MACd,GAAI+G,EAAMC,GAAG,UAAW,CACvB,IAAI7E,EAAO4E,EAAM5E,KAAK,gBACrBiD,EAA4B,iBAAXwB,GAAuBA,EAEzC,GAAKzE,GAkBE,GAAIiD,EACV,IAAK,IAAI6B,KAAK7B,EACTA,EAAQzD,eAAesF,KAC1B9E,EAAKiD,QAAQ6B,GAAK7B,EAAQ6B,QArBlB,CACV,IAAIC,EAAS/H,EAAEgI,OACd,CAAC,EACDjC,EAAakC,SACbjI,EAAEyD,GAAGyE,aAAaC,UAAY,CAAC,EAC/BP,EAAM5E,OACNiD,GAED8B,EAAOK,SAAWpI,EAAEgI,OACnB,CAAC,EACDjC,EAAakC,SAASG,SACtBpI,EAAEyD,GAAGyE,aAAaC,SACfnI,EAAEyD,GAAGyE,aAAaC,SAASC,SAC3B,CAAC,EACJR,EAAM5E,OAAOoF,SACbnC,EAAQmC,UAETR,EAAM5E,KAAK,eAAiBA,EAAO,IAAI+C,EAAalF,KAAMkH,GAC3D,CAQsB,iBAAXN,IAET5F,EADGmB,EAAKyE,aAAoBY,SACpBrF,EAAKyE,GAASxE,MAAMD,EAAMwE,GAE1BxE,EAAKiD,QAAQwB,GAGxB,CACD,IAEA,YAAqB,IAAV5F,EAEHA,EAEA8F,CAET,CAl7DA5B,EAAauC,QAAU,SAGvBvC,EAAakC,SAAW,CACvBM,iBAAkB,mBAClBC,gBAAiB,yBACjBC,kBAAmB,SAAUC,EAAaC,GACzC,OAAsB,GAAfD,EAAmB,oBAAsB,oBACjD,EACAE,eAAgB,SAAUC,EAAQC,GACjC,MAAO,CACI,GAAVD,EACG,+BACA,gCACS,GAAZC,EACG,qCACA,sCAEL,EACAC,cAAe,aACfC,gBAAiB,eACjBC,YAAY,EACZC,eAAgB,QAChBC,kBAAmB,KACnBC,UAAW,MACXC,MAAO,cACPC,KAAM,OACN/C,MAAO,KACPgD,mBAAoB,SACpBC,OAAO,EACPC,WAAW,EACXC,cAAc,EACdC,aAAa,EACbC,UAAU,EACVC,aAAa,EACbC,YAAY,EACZC,QAAQ,EACRC,YAAY,EACZC,sBAAuB,KACvBC,qBAAqB,EACrBC,gBAAiB,WACjBC,YAAY,EACZC,SAAU,YACVC,SAAU,eACVC,UAAU,EACVnC,SAAU,CACToC,MAAO,+BAERC,YAAY,EACZC,QAAQ,EACRC,aAAa,EACbC,oBAAoB,EACpBlE,cAAe,GAGhBX,EAAazF,UAAY,CACxBuK,YAAa9E,EAEbsB,KAAM,WACL,IAAIyD,EAAOjK,KACVkK,EAAKlK,KAAKqF,SAASM,KAAK,MAEzB3F,KAAKqF,SAAS8E,SAAS,oBAIvBnK,KAAKoK,MAAQ,CAAC,EACdpK,KAAKqK,SAAWrK,KAAKqF,SAASiF,KAAK,YACnCtK,KAAKuK,UAAYvK,KAAKqF,SAASiF,KAAK,aACpCtK,KAAKsF,YAActF,KAAKwK,aACxBxK,KAAKqF,SAASoF,MAAMzK,KAAKsF,aAAaoF,SAAS1K,KAAKsF,aACpDtF,KAAKuF,QAAUvF,KAAKsF,YAAYqF,SAAS,UACzC3K,KAAKwF,MAAQxF,KAAKsF,YAAYqF,SAAS,kBACvC3K,KAAK4K,WAAa5K,KAAKwF,MAAMmF,SAAS,UACtC3K,KAAK6K,WAAa7K,KAAKwF,MAAMvB,KAAK,SAElCjE,KAAKqF,SAASyF,YAAY,qBAEc,IAApC9K,KAAKoF,QAAQ2E,oBAChB/J,KAAKwF,MAAM2E,SAAS,4BAEH,IAAPD,IACVlK,KAAKuF,QAAQI,KAAK,UAAWuE,GAC7B/K,EAAE,cAAgB+K,EAAK,MAAMa,OAAM,SAAUC,GAC5CA,EAAEC,iBACFhB,EAAK1E,QAAQ2F,OACd,KAGDlL,KAAKmL,gBACLnL,KAAKoL,gBACDpL,KAAKoF,QAAQ+D,YAAYnJ,KAAKqL,qBAClCrL,KAAK+F,SACL/F,KAAKiG,WACLjG,KAAKsL,WACDtL,KAAKoF,QAAQwD,WAAW5I,KAAKuL,iBACjCvL,KAAKwF,MAAMrD,KAAK,OAAQnC,MACxBA,KAAKsF,YAAYnD,KAAK,OAAQnC,MAC1BA,KAAKoF,QAAQyE,QAAQ7J,KAAK6J,SAE9B7J,KAAKsF,YAAYkG,GAAG,CACnB,mBAAoB,SAAUR,GAC7Bf,EAAKW,WAAWjF,KAAK,iBAAiB,GACtCsE,EAAK5E,SAAS3B,QAAQ,iBAAkBsH,EACzC,EACA,qBAAsB,SAAUA,GAC/Bf,EAAK5E,SAAS3B,QAAQ,mBAAoBsH,EAC3C,EACA,mBAAoB,SAAUA,GAC7Bf,EAAKW,WAAWjF,KAAK,iBAAiB,GACtCsE,EAAK5E,SAAS3B,QAAQ,iBAAkBsH,EACzC,EACA,oBAAqB,SAAUA,GAC9Bf,EAAK5E,SAAS3B,QAAQ,kBAAmBsH,EAC1C,IAGGf,EAAK5E,SAAS,GAAGoG,aAAa,aACjCzL,KAAKqF,SAASmG,GAAG,WAAW,WAC3BvB,EAAK1E,QAAQ4E,SAAS,cAAce,QAEpCjB,EAAK5E,SAASmG,GAAG,CAChB,kBAAmB,WAClBvB,EAAK1E,QAAQ2F,QACbjB,EAAK5E,SAASqG,IAAI,kBACnB,EACA,kBAAmB,WAClBzB,EAAK5E,SACHS,IAAImE,EAAK5E,SAASS,OAClB4F,IAAI,kBACP,EACA,qBAAsB,WAEjB1L,KAAK2L,SAASC,OAAO3B,EAAK1E,QAAQuF,YAAY,cAClDb,EAAK5E,SAASqG,IAAI,qBACnB,GAEF,IAGDG,YAAW,WACV5B,EAAK5E,SAAS3B,QAAQ,mBACvB,GACD,EAEAoI,eAAgB,WAGf,IAAIpC,EAAW1J,KAAKqK,UAAYrK,KAAKoF,QAAQsE,SAAW,aAAe,GACtEqC,EAAa/L,KAAKqF,SAAS2G,SAASC,SAAS,eAC1C,mBACA,GACH1B,EAAYvK,KAAKuK,UAAY,aAAe,GAEzCrB,EAASlJ,KAAKoF,QAAQ8D,OACvB,qGACAlJ,KAAKoF,QAAQ8D,OACb,SACA,GACCgD,EAAYlM,KAAKoF,QAAQ+D,WAC1B,wFAEC,OAASnJ,KAAKoF,QAAQgE,sBACrB,GACA,iBACApE,EAAWhF,KAAKoF,QAAQgE,uBACxB,KANF,6CASA,GACC+C,EACHnM,KAAKqK,UAAYrK,KAAKoF,QAAQmE,WAC3B,oJAGAvJ,KAAKoF,QAAQ8C,cAHb,sFAMAlI,KAAKoF,QAAQ+C,gBANb,wBAUA,GACAiE,EACHpM,KAAKqK,UAAYrK,KAAKoF,QAAQgD,WAC3B,oHAGApI,KAAKoF,QAAQiD,eAHb,wBAOA,GACAgE,EACH,yCACA3C,EACAqC,EAFA,kCAKA/L,KAAKoF,QAAQmD,UACb,2CACAgC,EAPA,4FAWAvK,KAAKoF,QAAQmC,SAASoC,MAXtB,mEAeAT,EACAgD,EACAC,EAjBA,6EAoBAC,EApBA,eAwBD,OAAOjN,EAAEkN,EACV,EAEA7B,WAAY,WACX,IAAI8B,EAAQtM,KAAK8L,iBAChBS,EAAKvM,KAAKwM,WAGX,OADAF,EAAMrI,KAAK,MAAM,GAAGwI,UAAYF,EACzBD,CACR,EAEAI,SAAU,WAET,IAAIH,EAAKvM,KAAKwM,WACdxM,KAAK4K,WAAW,GAAG6B,UAAYF,CAChC,EAEAC,SAAU,WACT,IAAIvC,EAAOjK,KACV2M,EAAM,GACNC,EAAQ,EACRC,EAAczJ,SAAS0J,cAAc,UACrCC,GAAW,EAURC,EAAa,SAAUC,EAAS5L,EAAO6L,EAASC,GACnD,MACC,YACqB,IAAZD,EAA4B,KAAOA,EACzC,WAAaA,EAAU,IACvB,UACgB,IAAV7L,EAA0B,OAASA,EACzC,yBAA2BA,EAAQ,IACnC,UACmB,IAAb8L,EAA6B,OAASA,EAC5C,kBAAoBA,EAAW,IAC/B,IACH,IACAF,EACA,OAEF,EASIG,EAAY,SAAU7K,EAAM2K,EAASG,EAAQC,GAChD,MACC,wBACoB,IAAZJ,EAA0B,WAAaA,EAAU,IAAM,KAC9DG,EAAS,WAAaA,EAAS,IAAM,KACrCpD,EAAK7E,QAAQiE,oBACX,0BACA/G,EAAgB0C,EAAW7F,EAAEoD,GAAMgL,SACnC,IACA,UACgB,IAAXD,GAAqC,OAAXA,EAC/B,iBAAmBA,EAAS,IAC5B,IACH,kBACA/K,EACA,gBACA0H,EAAK7E,QAAQoE,SACb,IACAS,EAAK7E,QAAQqE,SAjBP,0BAqBR,EAEA,GAAIzJ,KAAKoF,QAAQM,QAAU1F,KAAKqK,WAG/B0C,KAEK/M,KAAKqF,SAASpB,KAAK,oBAAoB5D,QAAQ,CAEnD,IAAI8E,EAAUnF,KAAKqF,SAAS,GAC5BwH,EAAYW,UAAY,kBACxBX,EAAYJ,UAAYzM,KAAKoF,QAAQM,MACrCmH,EAAY7L,MAAQ,GACpBmE,EAAQsI,aAAaZ,EAAa1H,EAAQuI,iBAMfhN,IAFhBvB,EAAEgG,EAAQC,QAAQD,EAAQwI,gBAE/BhI,KAAK,kBACyBjF,IAAnCV,KAAKqF,SAASlD,KAAK,cAEnB0K,EAAYe,UAAW,EAEzB,CAGD,IAAIC,EAAiB7N,KAAKqF,SAASpB,KAAK,UA8MxC,OA5MA4J,EAAerL,MAAK,SAAUnB,GAC7B,IAAI0F,EAAQ5H,EAAEa,MAId,GAFA+M,KAEIhG,EAAMkF,SAAS,mBAAnB,CAGA,IAsBC6B,EAtBGC,EAAc/N,KAAKwN,WAAa,GACnCH,EAASrI,EAAWhF,KAAKwI,MAAMwF,SAC/BzL,EAAOwE,EAAM5E,KAAK,WAAa4E,EAAM5E,KAAK,WAAa4E,EAAMwG,OAC7DD,EAASvG,EAAM5E,KAAK,UAAY4E,EAAM5E,KAAK,UAAY,KACvD8L,OACkC,IAA1BlH,EAAM5E,KAAK,WACf,6BACA4E,EAAM5E,KAAK,WACX,WACA,GACJ+L,OAC+B,IAAvBnH,EAAM5E,KAAK,QACf,gBACA8H,EAAK7E,QAAQoE,SACb,IACAzC,EAAM5E,KAAK,QACX,aACA,GACJgM,EAAUpH,EAAMiF,SAChBoC,EAAoC,aAAvBD,EAAQ,GAAGE,QACxBC,EAAqBF,GAAcD,EAAQ,GAAGI,SAC9CC,EAAaxO,KAAKuO,UAAYD,EAO/B,GAJa,KAATJ,GAAeM,IAClBN,EAAO,SAAWA,EAAO,WAIzBjE,EAAK7E,QAAQyD,eACX2F,IAAeJ,GAAeE,GAchC,OATAR,EAAkB/G,EAAM5E,KAAK,mBAC7B4E,EACE0H,OACAtM,KACA,uBACoBzB,IAApBoN,EAAgCA,EAAkBzM,QAGpD0L,IASD,GALKhG,EAAM5E,KAAK,aAEfI,EAAO2L,EAAO,sBAAwB3L,EAAO0L,EAAU,WAGpDG,IAAwC,IAA1BrH,EAAM5E,KAAK,WAAqB,CACjD,GAAI8H,EAAK7E,QAAQyD,cAAgB2F,EAAY,CAC5C,QAA2C9N,IAAvCyN,EAAQhM,KAAK,sBAAqC,CACrD,IAAIuM,EAAWP,EAAQxD,WACvBwD,EAAQhM,KACP,qBACAuM,EAASC,OAAO,aAAatO,SAAWqO,EAASrO,OAEnD,CAEA,GAAI8N,EAAQhM,KAAK,sBAEhB,YADA4K,GAGF,CAEA,IAAI6B,EAAgB,IAAMT,EAAQ,GAAGX,WAAa,EAElD,GAAsB,IAAlBzG,EAAM1F,QAAe,CAExBuL,GAAS,EAGT,IAAIiC,EAAQV,EAAQ,GAAGU,MACtBC,OACoC,IAA5BX,EAAQhM,KAAK,WACjB,6BACAgM,EAAQhM,KAAK,WACb,WACA,GASL0M,GARaV,EAAQhM,KAAK,QACtB,gBACA8H,EAAK7E,QAAQoE,SACb,IACA2E,EAAQhM,KAAK,QACb,aACA,IAIH,sBACA6C,EAAW6J,GACXC,EACA,UAEa,IAAVzN,GAAesL,EAAItM,OAAS,IAE/B0M,IACAJ,EAAI/K,KAAKoL,EAAW,GAAI,KAAM,UAAWJ,EAAQ,SAElDG,IACAJ,EAAI/K,KACHoL,EAAW6B,EAAO,KAAM,kBAAoBD,EAAehC,GAE7D,CAEA,GAAI3C,EAAK7E,QAAQyD,cAAgB2F,EAEhC,YADAzB,IAIDJ,EAAI/K,KACHoL,EACCI,EACC7K,EACA,OAASwL,EAAca,EACvBvB,EACAC,GAEDjM,EACA,GACAuL,GAGH,MAAO,IAA8B,IAA1B7F,EAAM5E,KAAK,WACrBwK,EAAI/K,KAAKoL,EAAW,GAAI3L,EAAO,iBACzB,IAA6B,IAAzB0F,EAAM5E,KAAK,UAIrB2L,EAAkB/G,EAAM5E,KAAK,mBAC7B4E,EACE0H,OACAtM,KACA,uBACoBzB,IAApBoN,EAAgCA,EAAkBzM,GAGpDsL,EAAI/K,KACHoL,EACCI,EAAU7K,EAAMwL,EAAaV,EAAQC,GACrCjM,EACA,yBAGI,CACN,IAAI0N,EACH/O,KAAKgP,wBACmC,aAAxChP,KAAKgP,uBAAuBX,QAG7B,IAAKU,GAAe9E,EAAK7E,QAAQyD,mBAGRnI,KAFxBoN,EAAkB/G,EAAM5E,KAAK,oBAEM,CAElC,IAAI8M,EAAapB,EAAeqB,GAAGpB,GAAiB,GAClDkB,uBAGDC,GACuB,aAAvBA,EAAWZ,UACVY,EAAWV,WAEZQ,GAAc,EAEhB,CAGGA,IACHhC,IACAJ,EAAI/K,KAAKoL,EAAW,GAAI,KAAM,UAAWJ,EAAQ,SAElDD,EAAI/K,KACHoL,EAAWI,EAAU7K,EAAMwL,EAAaV,EAAQC,GAASjM,GAE3D,CAEA4I,EAAKG,MAAM/I,GAAS0L,CAvLyB,CAwL9C,IAIE/M,KAAKqK,UAC2C,IAAjDrK,KAAKqF,SAASpB,KAAK,mBAAmB5D,QACrCL,KAAKoF,QAAQM,OAEd1F,KAAKqF,SACHpB,KAAK,UACLiL,GAAG,GACH5E,KAAK,YAAY,GACjB3E,KAAK,WAAY,YAGbgH,EAAIhI,KAAK,GACjB,EAEAwK,QAAS,WAER,OADiB,MAAbnP,KAAKyF,OAAczF,KAAKyF,KAAOzF,KAAKwF,MAAMvB,KAAK,OAC5CjE,KAAKyF,IACb,EAKAM,OAAQ,SAAUqJ,GACjB,IACCC,EADGpF,EAAOjK,KAEV6N,EAAiB7N,KAAKqF,SAASpB,KAAK,WAGpB,IAAbmL,GACHvB,EAAerL,MAAK,SAAUnB,GAC7B,IAAIoE,EAAOwE,EAAKkF,UAAUD,GAAGjF,EAAKG,MAAM/I,IAExC4I,EAAKqF,YACJjO,EACArB,KAAKuO,UACyB,aAA5BvO,KAAKuP,WAAWlB,SAChBrO,KAAKuP,WAAWhB,SAClB9I,GAEDwE,EAAKuF,YAAYnO,EAAOrB,KAAK4N,SAAUnI,EACxC,IAGDzF,KAAKyP,oBAELzP,KAAK0P,WAEL,IAAIC,EAAgB9B,EAClBtJ,KAAI,WACJ,GAAIvE,KAAK4N,SAAU,CAClB,GACC3D,EAAK7E,QAAQyD,eACZ7I,KAAKuO,UACwB,aAA5BvO,KAAKuP,WAAWlB,SAChBrO,KAAKuP,WAAWhB,UAElB,OAED,IASCN,EATGlH,EAAQ5H,EAAEa,MACbkO,EACCnH,EAAM5E,KAAK,SAAW8H,EAAK7E,QAAQ2D,SAChC,aACAkB,EAAK7E,QAAQoE,SACb,IACAzC,EAAM5E,KAAK,QACX,UACA,GAeL,OAPC8L,EAJAhE,EAAK7E,QAAQ0D,aACb/B,EAAM5E,KAAK,aACV8H,EAAKI,SAGL,8BACAtD,EAAM5E,KAAK,WACX,WAES,QAEwB,IAAxB4E,EAAMpB,KAAK,SACdoB,EAAMpB,KAAK,SACRoB,EAAM5E,KAAK,YAAc8H,EAAK7E,QAAQ4D,YACzCjC,EAAM5E,KAAK,WAAW/C,WAEtB8O,EAAOnH,EAAMwG,OAASU,CAE/B,CACD,IACC2B,UAIElK,EAAS1F,KAAKqK,SAEfsF,EAAchL,KAAK3E,KAAKoF,QAAQkD,mBADhCqH,EAAc,GAIjB,GACC3P,KAAKqK,UACLrK,KAAKoF,QAAQsD,mBAAmBpJ,QAAQ,UAAY,EACnD,CACD,IAAIyB,EAAMf,KAAKoF,QAAQsD,mBAAmBmH,MAAM,KAChD,GACE9O,EAAIV,OAAS,GAAKsP,EAActP,OAASU,EAAI,IAC/B,GAAdA,EAAIV,QAAesP,EAActP,QAAU,EAC3C,CACDgP,EAAcrP,KAAKoF,QAAQyD,aAAe,eAAiB,GAC3D,IAAIiH,EAAajC,EAAekC,IAC9B,8CAAgDV,GAC/ChP,OAQHqF,GAN4C,mBAAnC1F,KAAKoF,QAAQwC,kBACjB5H,KAAKoF,QAAQwC,kBACb+H,EAActP,OACdyP,GAEA9P,KAAKoF,QAAQwC,mBAEhBjF,QAAQ,MAAOgN,EAActP,OAAOjB,YACpCuD,QAAQ,MAAOmN,EAAW1Q,WAC7B,CACD,CAE0BsB,MAAtBV,KAAKoF,QAAQM,QAChB1F,KAAKoF,QAAQM,MAAQ1F,KAAKqF,SAASM,KAAK,UAGF,UAAnC3F,KAAKoF,QAAQsD,qBAChBhD,EAAQ1F,KAAKoF,QAAQM,OAIjBA,IACJA,OAC+B,IAAvB1F,KAAKoF,QAAQM,MACjB1F,KAAKoF,QAAQM,MACb1F,KAAKoF,QAAQsC,kBAIlB1H,KAAKuF,QAAQI,KACZ,QACAV,EAAa9F,EAAE6Q,KAAKtK,EAAM/C,QAAQ,YAAa,OAEhD3C,KAAKuF,QAAQoF,SAAS,kBAAkB4C,KAAK7H,GAE7C1F,KAAKqF,SAAS3B,QAAQ,qBACvB,EAMAuC,SAAU,SAAUuC,EAAOyH,GACtBjQ,KAAKqF,SAASM,KAAK,UACtB3F,KAAKsF,YAAY6E,SAChBnK,KAAKqF,SACHM,KAAK,SACLhD,QACA,+DACA,KAKJ,IAAIuN,EAAc1H,GAAgBxI,KAAKoF,QAAQoD,MAEjC,OAAVyH,EACHjQ,KAAKuF,QAAQ4E,SAAS+F,GACF,UAAVD,EACVjQ,KAAKuF,QAAQuF,YAAYoF,IAEzBlQ,KAAKuF,QAAQuF,YAAY9K,KAAKoF,QAAQoD,OACtCxI,KAAKuF,QAAQ4E,SAAS+F,GAExB,EAEAC,SAAU,SAAUnK,GACnB,GAAKA,IAAkC,IAAtBhG,KAAKoF,QAAQqD,OAAkBzI,KAAKoQ,SAArD,CAEA,IAAIC,EAAajN,SAAS0J,cAAc,OACvCwD,EAAOlN,SAAS0J,cAAc,OAC9ByD,EAAYnN,SAAS0J,cAAc,MACnC0D,EAAUpN,SAAS0J,cAAc,MACjCP,EAAKnJ,SAAS0J,cAAc,MAC5B2D,EAAIrN,SAAS0J,cAAc,KAC3BvK,EAAOa,SAAS0J,cAAc,QAC9B5D,EACClJ,KAAKoF,QAAQ8D,QAAUlJ,KAAKwF,MAAMvB,KAAK,kBAAkB5D,OAAS,EAC/DL,KAAKwF,MAAMvB,KAAK,kBAAkB,GAAGyM,WAAU,GAC/C,KACJ3Q,EAASC,KAAKoF,QAAQ+D,WAAa/F,SAAS0J,cAAc,OAAS,KACnE6D,EACC3Q,KAAKoF,QAAQmE,YACbvJ,KAAKqK,UACLrK,KAAKwF,MAAMvB,KAAK,kBAAkB5D,OAAS,EACxCL,KAAKwF,MAAMvB,KAAK,kBAAkB,GAAGyM,WAAU,GAC/C,KACJtI,EACCpI,KAAKoF,QAAQgD,YACbpI,KAAKqK,UACLrK,KAAKwF,MAAMvB,KAAK,kBAAkB5D,OAAS,EACxCL,KAAKwF,MAAMvB,KAAK,kBAAkB,GAAGyM,WAAU,GAC/C,KAcL,GAZAnO,EAAKiL,UAAY,OACjB6C,EAAW7C,UAAYxN,KAAKwF,MAAM,GAAG+J,WAAW/B,UAAY,QAC5D8C,EAAK9C,UAAY,qBACjB+C,EAAU/C,UAAY,sBACtBgD,EAAQhD,UAAY,UAEpBjL,EAAKqO,YAAYxN,SAASyN,eAAe,eACzCJ,EAAEG,YAAYrO,GACdgK,EAAGqE,YAAYH,GACfF,EAAUK,YAAYrE,GACtBgE,EAAUK,YAAYJ,GAClBtH,GAAQoH,EAAKM,YAAY1H,GACzBnJ,EAAQ,CACX,IAAI+Q,EAAQ1N,SAAS0J,cAAc,SACnC/M,EAAOyN,UAAY,eACnBsD,EAAMtD,UAAY,eAClBzN,EAAO6Q,YAAYE,GACnBR,EAAKM,YAAY7Q,EAClB,CACI4Q,GAASL,EAAKM,YAAYD,GAC9BL,EAAKM,YAAYL,GACbnI,GAAYkI,EAAKM,YAAYxI,GACjCiI,EAAWO,YAAYN,GAEvBlN,SAAS2N,KAAKH,YAAYP,GAE1B,IAAIF,EAAWM,EAAEO,aAChBC,EAAe/H,EAASA,EAAO8H,aAAe,EAC9CE,EAAenR,EAASA,EAAOiR,aAAe,EAC9CG,EAAgBR,EAAUA,EAAQK,aAAe,EACjDI,EAAmBhJ,EAAaA,EAAW4I,aAAe,EAC1DK,EAAgBlS,EAAEqR,GAASc,aAAY,GAEvCC,EAC6B,mBAArBC,kBACJA,iBAAiBlB,GAErB9K,EAAQ+L,EAAY,KAAOpS,EAAEmR,GAC7BmB,EAAc,CACbC,KACCC,SACCJ,EAAYA,EAAUK,WAAapM,EAAMqM,IAAI,eAE9CF,SACCJ,EAAYA,EAAUO,cAAgBtM,EAAMqM,IAAI,kBAEjDF,SACCJ,EACGA,EAAUQ,eACVvM,EAAMqM,IAAI,mBAEdF,SACCJ,EACGA,EAAUS,kBACVxM,EAAMqM,IAAI,sBAEfI,MACCN,SACCJ,EAAYA,EAAUW,YAAc1M,EAAMqM,IAAI,gBAE/CF,SACCJ,EAAYA,EAAUY,aAAe3M,EAAMqM,IAAI,iBAEhDF,SACCJ,EACGA,EAAUa,gBACV5M,EAAMqM,IAAI,oBAEdF,SACCJ,EACGA,EAAUc,iBACV7M,EAAMqM,IAAI,sBAGhBS,EAAa,CACZZ,KACCD,EAAYC,KACZC,SAASJ,EAAYA,EAAUgB,UAAY/M,EAAMqM,IAAI,cACrDF,SACCJ,EAAYA,EAAUiB,aAAehN,EAAMqM,IAAI,iBAEhD,EACDI,MACCR,EAAYQ,MACZN,SACCJ,EAAYA,EAAUkB,WAAajN,EAAMqM,IAAI,eAE9CF,SACCJ,EAAYA,EAAUmB,YAAclN,EAAMqM,IAAI,gBAE/C,GAGHzO,SAAS2N,KAAK4B,YAAYtC,GAE1BrQ,KAAKoQ,SAAW,CACfD,SAAUA,EACVc,aAAcA,EACdC,aAAcA,EACdC,cAAeA,EACfC,iBAAkBA,EAClBC,cAAeA,EACfI,YAAaA,EACba,WAAYA,EAlIyD,CAoIvE,EAEAM,QAAS,WAKR,GAJA5S,KAAKmP,UACLnP,KAAKmQ,WAEDnQ,KAAKoF,QAAQ8D,QAAQlJ,KAAKwF,MAAMqM,IAAI,cAAe,IAC7B,IAAtB7R,KAAKoF,QAAQqD,KAAjB,CAEA,IAeCoK,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EAtBGnJ,EAAOjK,KACVwF,EAAQxF,KAAKwF,MACboF,EAAa5K,KAAK4K,WAClByI,EAAUlU,EAAEmU,QACZC,EAAevT,KAAKsF,YAAY,GAAG0L,aACnCwC,EAAcxT,KAAKsF,YAAY,GAAGmO,YAClCtD,EAAWnQ,KAAKoQ,SAAmB,SACnCa,EAAejR,KAAKoQ,SAAuB,aAC3Cc,EAAelR,KAAKoQ,SAAuB,aAC3Ce,EAAgBnR,KAAKoQ,SAAwB,cAC7CgB,EAAmBpR,KAAKoQ,SAA2B,iBACnDsD,EAAY1T,KAAKoQ,SAAwB,cACzCqB,EAAczR,KAAKoQ,SAAsB,YACzCkC,EAAatS,KAAKoQ,SAAqB,WACvCf,EAAcrP,KAAKoF,QAAQyD,aAAe,YAAc,GASxD8K,EAAS,WACR,IAECC,EAFGjT,EAAMsJ,EAAK3E,YAAYuO,SAC1BC,EAAa3U,EAAE8K,EAAK7E,QAAQwD,WAGzBqB,EAAK7E,QAAQwD,YAAckL,EAAW9M,GAAG,UAC5C4M,EAAeE,EAAWD,UACbE,KAAOpC,SAASmC,EAAWjC,IAAI,mBAC5C+B,EAAaI,MAAQrC,SAASmC,EAAWjC,IAAI,qBAE7C+B,EAAe,CAACG,IAAK,EAAGC,KAAM,GAG/B,IAAIpO,EAASqE,EAAK7E,QAAQS,cAC1BoN,EAAkBtS,EAAIoT,IAAMH,EAAaG,IAAMV,EAAQY,YACvDf,EACCG,EAAQa,SACRjB,EACAM,EACAK,EAAaG,IACbnO,EAAO,GACRuN,EACCxS,EAAIqT,KAAOJ,EAAaI,KAAOX,EAAQc,aACxCf,EACCC,EAAQ1K,QACRwK,EACAK,EACAI,EAAaI,KACbpO,EAAO,GACRqN,GAAmBrN,EAAO,GAC1BuN,GAAoBvN,EAAO,EAC5B,EAID,GAFA+N,IAE0B,SAAtB3T,KAAKoF,QAAQqD,KAAiB,CACjC,IAAI2L,EAAU,WACb,IAAIC,EACHpI,EAAW,SAAUuB,EAAW8G,GAC/B,OAAO,SAAUnP,GAChB,OAAImP,EACInP,EAAQoP,UACZpP,EAAQoP,UAAUC,SAAShH,GAC3BrO,EAAEgG,GAAS8G,SAASuB,KAEdrI,EAAQoP,UACdpP,EAAQoP,UAAUC,SAAShH,GAC3BrO,EAAEgG,GAAS8G,SAASuB,GAEzB,CACD,EACAiH,EAAMxK,EAAKW,WAAW,GAAG8J,qBAAqB,MAC9CC,EAAaC,MAAMnV,UAAUkP,OAC1BiG,MAAMnV,UAAUkP,OAAOxO,KAAKsU,EAAKxI,EAAS,UAAU,IACpDhC,EAAKxE,KAAKsK,IAAI,WACjB8E,EAAWD,MAAMnV,UAAUkP,OACxBiG,MAAMnV,UAAUkP,OAAOxO,KACvBwU,EACA1I,EAAS,mBAAmB,IAE5B0I,EAAWhG,OAAO,oBAEtBgF,IACAd,EAAaK,EAAkBZ,EAAWZ,KAC1CoB,EAAYM,EAAoBd,EAAWL,MAEvChI,EAAK7E,QAAQwD,WACXpD,EAAMrD,KAAK,WAAWqD,EAAMrD,KAAK,SAAUqD,EAAM0O,UACtDnB,EAAYvN,EAAMrD,KAAK,UAElBqD,EAAMrD,KAAK,UAAUqD,EAAMrD,KAAK,QAASqD,EAAMmD,SACpDqK,EAAWxN,EAAMrD,KAAK,WAEtB4Q,EAAYvN,EAAM0O,SAClBlB,EAAWxN,EAAMmD,SAGdsB,EAAK7E,QAAQ6D,YAChBgB,EAAK3E,YAAYwP,YAChB,SACA7B,EAAkBC,GACjBL,EAAaP,EAAWZ,KAAOqB,GAI9B9I,EAAK3E,YAAY2G,SAAS,YAC7B4G,EAAaI,EAAkBX,EAAWZ,MAGH,SAApCzH,EAAK7E,QAAQ2E,oBAChBvE,EAAMsP,YACL,sBACA3B,EAAmBC,GAClBN,EAAYR,EAAWL,MAAQe,EAAWQ,GAK5Ca,EADGM,EAAWtU,OAASwU,EAASxU,OAAS,EAClB,EAAX8P,EAAemC,EAAWZ,KAAO,EAEjC,EAGblM,EAAMqM,IAAI,CACT,aAAcgB,EAAa,KAC3BkC,SAAU,SACV,aACCV,EACApD,EACAC,EACAC,EACAC,EACA,OAEFxG,EAAWiH,IAAI,CACd,aACCgB,EACA5B,EACAC,EACAC,EACAC,EACAK,EAAYC,KACZ,KACD,aAAc,OACd,aAAc7Q,KAAKE,IAAIsT,EAAY5C,EAAYC,KAAM,GAAK,MAE5D,EACA0C,IACApU,KAAK6K,WACHa,IAAI,wCACJF,GAAG,uCAAwC4I,GAC7Cf,EACE3H,IAAI,iCACJF,GAAG,gCAAiC4I,EACvC,MAAO,GACNpU,KAAKoF,QAAQqD,MACQ,QAArBzI,KAAKoF,QAAQqD,MACbzI,KAAKyF,KAAKsK,IAAIV,GAAahP,OAASL,KAAKoF,QAAQqD,KAChD,CACD,IAAIuM,EAAWhV,KAAKyF,KACjBsK,IAAI,YACJA,IAAIV,GACJ1E,WACAsK,MAAM,EAAGjV,KAAKoF,QAAQqD,MACtByM,OACAlJ,SACA3K,QACF8T,EAAYnV,KAAKyF,KAAKwP,MAAM,EAAGD,EAAW,GAAGrG,OAAO,YAClDtO,OACHwS,EACC1C,EAAWnQ,KAAKoF,QAAQqD,KACxB0M,EAAYzB,EACZjC,EAAYC,KAETzH,EAAK7E,QAAQwD,WACXpD,EAAMrD,KAAK,WAAWqD,EAAMrD,KAAK,SAAUqD,EAAM0O,UACtDnB,EAAYvN,EAAMrD,KAAK,WAEvB4Q,EAAYvN,EAAM0O,SAGfjK,EAAK7E,QAAQ6D,YAEhBjJ,KAAKsF,YAAYwP,YAChB,SACA7B,EAAkBC,GACjBL,EAAaP,EAAWZ,KAAOqB,GAGlCvN,EAAMqM,IAAI,CACT,aACCgB,EACA5B,EACAC,EACAC,EACAC,EACA,KACD2D,SAAU,SACV,aAAc,KAEfnK,EAAWiH,IAAI,CACd,aAAcgB,EAAapB,EAAYC,KAAO,KAC9C,aAAc,OACd,aAAc,IAEhB,CAlNuC,CAmNxC,EAEApG,SAAU,WACT,GAA2B,SAAvBtL,KAAKoF,QAAQuD,MAAkB,CAClC3I,KAAKwF,MAAMqM,IAAI,YAAa,KAG5B,IAAIuD,EAAepV,KAAKwF,MAAMwG,SAASqJ,QAAQ3K,SAAS,QACvD4K,EAAgBtV,KAAKoF,QAAQwD,UAC1B5I,KAAKsF,YAAY+P,QAAQ3K,SAAS,QAClC0K,EACHG,EAAUH,EAAazK,SAAS,kBAAkB6K,aAClDC,EAAWH,EACTzD,IAAI,QAAS,QACblH,SAAS,UACT6K,aAEHJ,EAAa/O,SACbiP,EAAcjP,SAGdrG,KAAKsF,YAAYuM,IAAI,QAAShR,KAAKE,IAAIwU,EAASE,GAAY,KAC7D,KAAkC,QAAvBzV,KAAKoF,QAAQuD,OAEvB3I,KAAKwF,MAAMqM,IAAI,YAAa,IAC5B7R,KAAKsF,YAAYuM,IAAI,QAAS,IAAI1H,SAAS,cACjCnK,KAAKoF,QAAQuD,OAEvB3I,KAAKwF,MAAMqM,IAAI,YAAa,IAC5B7R,KAAKsF,YAAYuM,IAAI,QAAS7R,KAAKoF,QAAQuD,SAG3C3I,KAAKwF,MAAMqM,IAAI,YAAa,IAC5B7R,KAAKsF,YAAYuM,IAAI,QAAS,KAI9B7R,KAAKsF,YAAY2G,SAAS,cACH,QAAvBjM,KAAKoF,QAAQuD,OAEb3I,KAAKsF,YAAYwF,YAAY,YAE/B,EAEAS,eAAgB,WACfvL,KAAK0V,aAAevW,EAAE,gCAEtB,IAECwB,EACAiT,EACA+B,EAJG1L,EAAOjK,KACV8T,EAAa3U,EAAEa,KAAKoF,QAAQwD,WAI5BgN,EAAe,SAAUvQ,GACxB4E,EAAKyL,aACHvL,SACA9E,EAASM,KAAK,SAAShD,QAAQ,2BAA4B,KAE3DmS,YAAY,SAAUzP,EAAS4G,SAAS,WAC1CtL,EAAM0E,EAASwO,SAEVC,EAAW9M,GAAG,QASlB4M,EAAe,CAACG,IAAK,EAAGC,KAAM,KAR9BJ,EAAeE,EAAWD,UACbE,KACZpC,SAASmC,EAAWjC,IAAI,mBACxBiC,EAAWG,YACZL,EAAaI,MACZrC,SAASmC,EAAWjC,IAAI,oBACxBiC,EAAWK,cAKbwB,EAAetQ,EAAS4G,SAAS,UAC9B,EACA5G,EAAS,GAAG2L,aAEf/G,EAAKyL,aAAa7D,IAAI,CACrBkC,IAAKpT,EAAIoT,IAAMH,EAAaG,IAAM4B,EAClC3B,KAAMrT,EAAIqT,KAAOJ,EAAaI,KAC9BrL,MAAOtD,EAAS,GAAGoO,aAErB,EAEDzT,KAAKuF,QAAQiG,GAAG,SAAS,WACxB,IAAIzE,EAAQ5H,EAAEa,MAEViK,EAAKuE,eAIToH,EAAa3L,EAAK3E,aAElB2E,EAAKyL,aACHhL,SAAST,EAAK7E,QAAQwD,WACtBkM,YAAY,QAAS/N,EAAMkF,SAAS,SACpC4J,OAAO5L,EAAKzE,OACf,IAEArG,EAAEmU,QAAQ9H,GAAG,iBAAiB,WAC7BoK,EAAa3L,EAAK3E,YACnB,IAEAtF,KAAKqF,SAASmG,GAAG,kBAAkB,WAClCvB,EAAKzE,MAAMrD,KAAK,SAAU8H,EAAKzE,MAAM0O,UACrCjK,EAAKyL,aAAaI,QACnB,GACD,EAOAtG,YAAa,SAAUnO,EAAOuM,EAAUnI,GAClCA,IACJzF,KAAKyP,oBACLhK,EAAOzF,KAAKmP,UAAUD,GAAGlP,KAAKoK,MAAM/I,KAGrCoE,EACEqP,YAAY,WAAYlH,GACxB3J,KAAK,KACL0B,KAAK,gBAAiBiI,EACzB,EAOA0B,YAAa,SAAUjO,EAAOkN,EAAU9I,GAClCA,IACJA,EAAOzF,KAAKmP,UAAUD,GAAGlP,KAAKoK,MAAM/I,KAGjCkN,EACH9I,EACE0E,SAAS,YACTQ,SAAS,KACThF,KAAK,OAAQ,KACbA,KAAK,YAAa,GAClBA,KAAK,iBAAiB,GAExBF,EACEqF,YAAY,YACZH,SAAS,KACToL,WAAW,QACXpQ,KAAK,WAAY,GACjBA,KAAK,iBAAiB,EAE1B,EAEA6I,WAAY,WACX,OAAOxO,KAAKqF,SAAS,GAAGkJ,QACzB,EAEApD,cAAe,WACd,IAAIlB,EAAOjK,KAEPA,KAAKwO,cACRxO,KAAKsF,YAAY6E,SAAS,YAC1BnK,KAAKuF,QACH4E,SAAS,YACTxE,KAAK,YAAa,GAClBA,KAAK,iBAAiB,KAEpB3F,KAAKuF,QAAQ0G,SAAS,cACzBjM,KAAKsF,YAAYwF,YAAY,YAC7B9K,KAAKuF,QAAQuF,YAAY,YAAYnF,KAAK,iBAAiB,KAIzB,GAAlC3F,KAAKuF,QAAQI,KAAK,aACjB3F,KAAKqF,SAASlD,KAAK,aAEpBnC,KAAKuF,QAAQwQ,WAAW,aAI1B/V,KAAKuF,QAAQwF,OAAM,WAClB,OAAQd,EAAKuE,YACd,GACD,EAEAiB,kBAAmB,WAClB,IAAIzO,EAAQhB,KAAKqF,SAASS,MAC1B9F,KAAKuF,QAAQuP,YACZ,iBACU,OAAV9T,GACW,KAAVA,GACCA,EAAMgJ,cAAgB4K,OAA0B,IAAjB5T,EAAMX,OAEzC,EAEAqP,SAAU,WAER1P,KAAKqF,SAASlD,KAAK,cAAgBnC,KAAKqF,SAASM,KAAK,cAClB,KAApC3F,KAAKqF,SAASM,KAAK,aACgB,QAAnC3F,KAAKqF,SAASM,KAAK,cAEnB3F,KAAKqF,SAASlD,KAAK,WAAYnC,KAAKqF,SAASM,KAAK,aAClD3F,KAAKuF,QAAQI,KAAK,WAAY3F,KAAKqF,SAASlD,KAAK,cAGlDnC,KAAKqF,SAASM,KAAK,YAAa,GACjC,EAEAyF,cAAe,WACd,IAAInB,EAAOjK,KACVgW,EAAY7W,EAAEiE,UAEf4S,EAAU7T,KAAK,eAAe,GAE9BnC,KAAKuF,QAAQiG,GAAG,SAAS,SAAUR,GAEjC,OAAOjG,KAAKiG,EAAEiL,QAAQ7W,SAAS,MAC/B4W,EAAU7T,KAAK,iBAEf6I,EAAEC,iBACF+K,EAAU7T,KAAK,eAAe,GAEhC,IAEAnC,KAAKuF,QAAQiG,GAAG,SAAS,WACxBvB,EAAK2I,SACN,IAEA5S,KAAKqF,SAASmG,GAAG,mBAAmB,WACnC,GAAKvB,EAAK7E,QAAQ+D,YAAec,EAAKI,UAE/B,IAAKJ,EAAKI,SAAU,CAC1B,IAAIsD,EAAgB1D,EAAKG,MAAMH,EAAK5E,SAAS,GAAGsI,eAEhD,GAA6B,iBAAlBA,IAAoD,IAAtB1D,EAAK7E,QAAQqD,KACrD,OAGD,IAAIoL,EACH5J,EAAKxE,KAAKyJ,GAAGvB,GAAe,GAAGuI,UAC/BjM,EAAKW,WAAW,GAAGsL,UACpBrC,EACCA,EACA5J,EAAKW,WAAW,GAAGoG,aAAe,EAClC/G,EAAKmG,SAASD,SAAW,EAC1BlG,EAAKW,WAAW,GAAGqJ,UAAYJ,CAChC,OAhBC5J,EAAKW,WAAW3G,KAAK,eAAeiH,OAiBtC,IAEAlL,KAAK4K,WAAWY,GAAG,QAAS,QAAQ,SAAUR,GAC7C,IAAIjE,EAAQ5H,EAAEa,MACbmW,EAAepP,EAAMiF,SAAS7J,KAAK,iBACnCiU,EAAYnM,EAAK5E,SAASS,MAC1BuQ,EAAYpM,EAAK5E,SAASiF,KAAK,iBAC/BgM,GAAgB,EAUjB,GAPIrM,EAAKI,UAAwC,IAA5BJ,EAAK7E,QAAQwE,YACjCoB,EAAEuL,kBAGHvL,EAAEC,kBAGGhB,EAAKuE,eAAiBzH,EAAMiF,SAASC,SAAS,YAAa,CAC/D,IAAIyC,EAAWzE,EAAK5E,SAASpB,KAAK,UACjCuS,EAAU9H,EAASQ,GAAGiH,GACtBM,EAAQD,EAAQlM,KAAK,YACrBoM,EAAYF,EAAQxK,OAAO,YAC3BpC,EAAaK,EAAK7E,QAAQwE,WAC1B+M,EAAgBD,EAAUvU,KAAK,gBAAiB,EAEjD,GAAK8H,EAAKI,UAgBT,GAJAmM,EAAQlM,KAAK,YAAamM,GAC1BxM,EAAKuF,YAAY2G,GAAeM,GAChC1P,EAAM6P,QAEa,IAAfhN,IAA0C,IAAlB+M,EAAyB,CACpD,IAAIE,EAAajN,EAAa8E,EAASC,OAAO,aAAatO,OAC1DyW,EACCH,EAAgBD,EAAUzS,KAAK,mBAAmB5D,OAEpD,GACEuJ,GAAciN,GACdF,GAAiBG,EAElB,GAAIlN,GAA4B,GAAdA,EACjB8E,EAASpE,KAAK,YAAY,GAC1BkM,EAAQlM,KAAK,YAAY,GACzBL,EAAKW,WAAW3G,KAAK,aAAa6G,YAAY,YAC9Cb,EAAKuF,YAAY2G,GAAc,QACzB,GAAIQ,GAAkC,GAAjBA,EAAoB,CAC/CD,EAAUzS,KAAK,mBAAmBqG,KAAK,YAAY,GACnDkM,EAAQlM,KAAK,YAAY,GACzB,IAAIyM,EAAahQ,EAAMiF,SAAS7J,KAAK,YACrC8H,EAAKW,WACH3G,KAAK,mBAAqB8S,EAAa,MACvCjM,YAAY,YACdb,EAAKuF,YAAY2G,GAAc,EAChC,KAAO,CACN,IAAIpO,EACqC,iBAAhCkC,EAAK7E,QAAQ2C,eACjB,CACAkC,EAAK7E,QAAQ2C,eACbkC,EAAK7E,QAAQ2C,gBAEbkC,EAAK7E,QAAQ2C,eACjBiP,EAC2B,mBAAnBjP,EACJA,EAAe6B,EAAY+M,GAC3B5O,EACJkP,EAASD,EAAc,GAAGrU,QAAQ,MAAOiH,GACzCsN,EAAYF,EAAc,GAAGrU,QAAQ,MAAOgU,GAC5CQ,EAAUhY,EAAE,8BAGT6X,EAAc,KACjBC,EAASA,EAAOtU,QACf,QACAqU,EAAc,GAAGpN,EAAa,EAAI,EAAI,IAEvCsN,EAAYA,EAAUvU,QACrB,QACAqU,EAAc,GAAGL,EAAgB,EAAI,EAAI,KAI3CH,EAAQlM,KAAK,YAAY,GAEzBL,EAAKzE,MAAMqQ,OAAOsB,GAEdvN,GAAciN,IACjBM,EAAQtB,OAAO1W,EAAE,QAAU8X,EAAS,WACpCX,GAAgB,EAChBrM,EAAK5E,SAAS3B,QAAQ,yBAGnBiT,GAAiBG,IACpBK,EAAQtB,OAAO1W,EAAE,QAAU+X,EAAY,WACvCZ,GAAgB,EAChBrM,EAAK5E,SAAS3B,QAAQ,4BAGvBmI,YAAW,WACV5B,EAAKuF,YAAY2G,GAAc,EAChC,GAAG,IAEHgB,EAAQC,MAAM,KAAKC,QAAQ,KAAK,WAC/BlY,EAAEa,MAAMqG,QACT,GACD,CAEF,OAzFAqI,EAASpE,KAAK,YAAY,GAC1BkM,EAAQlM,KAAK,YAAY,GACzBL,EAAKW,WACH3G,KAAK,aACL6G,YAAY,YACZ7G,KAAK,KACL0B,KAAK,iBAAiB,GACxBsE,EAAKuF,YAAY2G,GAAc,IAsF9BlM,EAAKI,UACLJ,EAAKI,UAAwC,IAA5BJ,EAAK7E,QAAQwE,WAE/BK,EAAK1E,QAAQ2F,QACHjB,EAAK7E,QAAQ+D,YACvBc,EAAKY,WAAWK,QAIboL,IAEDF,GAAanM,EAAK5E,SAASS,OAASmE,EAAKI,UACzCgM,GAAapM,EAAK5E,SAASiF,KAAK,mBAC/BL,EAAKI,YAGPhI,EAAoB,CACnB8T,EACAK,EAAQlM,KAAK,YACbmM,GAEDxM,EAAK5E,SAASxC,cAAc,UAG/B,CACD,IAEA7C,KAAKwF,MAAMgG,GACV,QACA,8DACA,SAAUR,GACLA,EAAEsM,eAAiBtX,OACtBgL,EAAEC,iBACFD,EAAEuL,kBACEtM,EAAK7E,QAAQ+D,aAAehK,EAAE6L,EAAEuM,QAAQtL,SAAS,SACpDhC,EAAKY,WAAWK,QAEhBjB,EAAK1E,QAAQ2F,QAGhB,IAGDlL,KAAK4K,WAAWY,GAAG,QAAS,8BAA8B,SAAUR,GACnEA,EAAEC,iBACFD,EAAEuL,kBACEtM,EAAK7E,QAAQ+D,WAChBc,EAAKY,WAAWK,QAEhBjB,EAAK1E,QAAQ2F,OAEf,IAEAlL,KAAKwF,MAAMgG,GAAG,QAAS,yBAAyB,WAC/CvB,EAAK1E,QAAQwF,OACd,IAEA/K,KAAK6K,WAAWW,GAAG,SAAS,SAAUR,GACrCA,EAAEuL,iBACH,IAEAvW,KAAKwF,MAAMgG,GAAG,QAAS,gBAAgB,SAAUR,GAC5Cf,EAAK7E,QAAQ+D,WAChBc,EAAKY,WAAWK,QAEhBjB,EAAK1E,QAAQ2F,QAGdF,EAAEC,iBACFD,EAAEuL,kBAEEpX,EAAEa,MAAMiM,SAAS,iBACpBhC,EAAK/D,YAEL+D,EAAK9D,aAEP,IAEAnG,KAAKqF,SAASmS,QAAO,WACpBvN,EAAKlE,QAAO,GACZkE,EAAK5E,SAAS3B,QAAQ,oBAAqBrB,GAC3CA,EAAoB,IACrB,GACD,EAEAgJ,mBAAoB,WACnB,IAAIpB,EAAOjK,KACVyX,EAActY,EAAE,gCAEjBa,KAAKuF,QAAQiG,GAAG,2BAA2B,WAC1CvB,EAAKW,WAAW3G,KAAK,WAAW6G,YAAY,UACtCb,EAAKY,WAAW/E,QACrBmE,EAAKY,WAAW/E,IAAI,IACpBmE,EAAKxE,KAAKsK,IAAI,cAAcjF,YAAY,UAClC2M,EAAYzL,SAAS3L,QAAQoX,EAAYpR,UAE3C4D,EAAKI,UACTJ,EAAKW,WAAW3G,KAAK,aAAakG,SAAS,UAC5C0B,YAAW,WACV5B,EAAKY,WAAWK,OACjB,GAAG,GACJ,IAEAlL,KAAK6K,WAAWW,GACf,8EACA,SAAUR,GACTA,EAAEuL,iBACH,IAGDvW,KAAK6K,WAAWW,GAAG,wBAAwB,WAK1C,GAJAvB,EAAKxE,KAAKsK,IAAI,cAAcjF,YAAY,UACxCb,EAAKxE,KAAKkJ,OAAO,WAAW7D,YAAY,UACxC2M,EAAYpR,SAER4D,EAAKY,WAAW/E,MAAO,CAC1B,IAGC4R,EAHGC,EAAc1N,EAAKxE,KAAKsK,IAC1B,0CAiBF,IAbC2H,EADGzN,EAAK7E,QAAQiE,oBACHsO,EAAY5H,IACxB,KACC9F,EAAK2N,eACL,KACAtV,EAAgB2H,EAAKY,WAAW/E,OAChC,MAGW6R,EAAY5H,IACxB,IAAM9F,EAAK2N,eAAiB,KAAO3N,EAAKY,WAAW/E,MAAQ,OAI9CzF,SAAWsX,EAAYtX,OACrCoX,EAAYlK,KACXtD,EAAK7E,QAAQuC,gBAAgBhF,QAC5B,MACA,IAAMqC,EAAWiF,EAAKY,WAAW/E,OAAS,MAG5CmE,EAAKW,WAAWiL,OAAO4B,GACvBxN,EAAKxE,KAAK0E,SAAS,cACb,CACNuN,EAAWvN,SAAS,UAEpB,IACC0N,EADGC,EAAc7N,EAAKxE,KAAKsK,IAAI,WAIhC+H,EAAYtV,MAAK,SAAUnB,GAC1B,IAAI0F,EAAQ5H,EAAEa,MAEV+G,EAAMkF,SAAS,gBACAvL,IAAdmX,EACH9Q,EAAMoD,SAAS,WAEX0N,GAAWA,EAAU1N,SAAS,UAClC0N,EAAY9Q,GAGbA,EAAMkF,SAAS,oBACf6L,EAAY5I,GAAG7N,EAAQ,GAAGc,KAAK,cAC9B4E,EAAM5E,KAAK,YAEZ4E,EAAMoD,SAAS,UAEf0N,EAAY,IAEd,IACIA,GAAWA,EAAU1N,SAAS,UAElCwN,EAAY5H,IAAI,WAAWgI,QAAQ5N,SAAS,UAC5CF,EAAKW,WAAWqJ,UAAU,EAC3B,CACD,CACD,GACD,EAEA2D,aAAc,WAMb,MALa,CACZI,OAAQ,UACR7W,WAAY,WAGCnB,KAAKoF,QAAQkE,kBAAoB,WAChD,EAEAxD,IAAK,SAAU9E,GACd,YAAqB,IAAVA,GACVhB,KAAKqF,SAASS,IAAI9E,GAClBhB,KAAK+F,SAEE/F,KAAKqF,UAELrF,KAAKqF,SAASS,KAEvB,EAEAmS,UAAW,SAAUhI,GACpB,GAAKjQ,KAAKqK,SAAV,MACsB,IAAX4F,IAAwBA,GAAS,GAE5CjQ,KAAKmP,UAEL,IAAIT,EAAW1O,KAAKqF,SAASpB,KAAK,UACjC6T,EAAc9X,KAAKyF,KAAKsK,IACvB,kDAEDmI,EAAYJ,EAAYzX,OACxB8X,EAAkB,GAEnB,GAAIlI,GACH,GAAI6H,EAAYnJ,OAAO,aAAatO,SAAWyX,EAAYzX,OAC1D,YAED,GAA+C,IAA3CyX,EAAYnJ,OAAO,aAAatO,OAAc,OAGnDyX,EAAYhD,YAAY,WAAY7E,GAEpC,IAAK,IAAIhJ,EAAI,EAAGA,EAAIiR,EAAWjR,IAAK,CACnC,IAAImR,EAAYN,EAAY7Q,GAAGoR,aAAa,uBAC5CF,EAAgBA,EAAgB9X,QAAUqO,EAASQ,GAAGkJ,GAAW,EAClE,CAEAjZ,EAAEgZ,GAAiB7N,KAAK,WAAY2F,GAEpCjQ,KAAK+F,QAAO,GAEZ/F,KAAKyP,oBAELzP,KAAKqF,SAASxC,cAAc,SAhCF,CAiC3B,EAEAqD,UAAW,WACV,OAAOlG,KAAKiY,WAAU,EACvB,EAEA9R,YAAa,WACZ,OAAOnG,KAAKiY,WAAU,EACvB,EAEAK,OAAQ,SAAUtN,IACjBA,EAAIA,GAAKsI,OAAOvQ,QAETiI,EAAEuL,kBAETvW,KAAKuF,QAAQ7B,QAAQ,QACtB,EAEA6U,QAAS,SAAUvN,GAClB,IAECwN,EAEAnX,EACAgV,EACAoC,EANG1R,EAAQ5H,EAAEa,MAGbiK,GAFUlD,EAAMC,GAAG,SAAWD,EAAMiF,SAASA,SAAWjF,EAAMiF,UAE/C7J,KAAK,QAIpBuW,EAAW,uDACXC,EAAa,CACZ,GAAI,IACJ,GAAI,IACJ,GAAI,IACJ,GAAI,IACJ,GAAI,IACJ,GAAI,IACJ,GAAI,IACJ,GAAI,IACJ,GAAI,IACJ,GAAI,IACJ,GAAI,IACJ,GAAI,IACJ,GAAI,IACJ,GAAI,IACJ,GAAI,IACJ,GAAI,IACJ,GAAI,IACJ,GAAI,IACJ,GAAI,IACJ,GAAI,IACJ,GAAI,IACJ,GAAI,IACJ,GAAI,IACJ,GAAI,IACJ,GAAI,IACJ,GAAI,IACJ,GAAI,IACJ,GAAI,IACJ,GAAI,IACJ,GAAI,IACJ,GAAI,IACJ,GAAI,IACJ,GAAI,IACJ,GAAI,IACJ,GAAI,IACJ,GAAI,IACJ,GAAI,IACJ,GAAI,IACJ,GAAI,IACJ,GAAI,IACJ,GAAI,IACJ,GAAI,IACJ,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,KAKP,KAFAF,EAAWxO,EAAK3E,YAAY2G,SAAS,WAIlCjB,EAAEiL,SAAW,IAAMjL,EAAEiL,SAAW,IAChCjL,EAAEiL,SAAW,IAAMjL,EAAEiL,SAAW,KAChCjL,EAAEiL,SAAW,IAAMjL,EAAEiL,SAAW,IAUlC,OARKhM,EAAK7E,QAAQwD,UAKjBqB,EAAK1E,QAAQ7B,QAAQ,UAJrBuG,EAAK2I,UACL3I,EAAKzE,MAAMwG,SAAS7B,SAAS,QAC7BsO,GAAW,QAIZxO,EAAKY,WAAWK,QAajB,GATIjB,EAAK7E,QAAQ+D,YACZ,WAAWpE,KAAKiG,EAAEiL,QAAQ7W,SAAS,MAAQqZ,IAC9CzN,EAAEC,iBACFD,EAAEuL,kBACFtM,EAAKW,WAAWG,QAChBd,EAAK1E,QAAQ2F,SAIX,UAAUnG,KAAKiG,EAAEiL,QAAQ7W,SAAS,KAAM,CAE3C,KADAoZ,EAASvO,EAAKxE,KAAKkJ,OAAO+J,IACdrY,OAAQ,OAKnBgB,EAHI4I,EAAK7E,QAAQ+D,WAGTqP,EAAOnX,MAAMmX,EAAO7J,OAAO,YAF3B6J,EAAOnX,MAAMmX,EAAOvU,KAAK,KAAK0K,OAAO,UAAU3C,UAKxDqK,EAAYpM,EAAKW,WAAWzI,KAAK,aAEhB,IAAb6I,EAAEiL,UACAhM,EAAK7E,QAAQ+D,YAAc9H,GAASgV,IAAwB,GAAVhV,GACtDA,IACGA,EAAQ,IAAGA,GAASmX,EAAOnY,SACR,IAAb2K,EAAEiL,WACRhM,EAAK7E,QAAQ+D,YAAc9H,GAASgV,IAAWhV,IACnDA,GAAgBmX,EAAOnY,QAGxB4J,EAAKW,WAAWzI,KAAK,YAAad,GAE7B4I,EAAK7E,QAAQ+D,YAGjB6B,EAAEC,iBACGlE,EAAMkF,SAAS,qBACnBuM,EACE1N,YAAY,UACZoE,GAAG7N,GACH8I,SAAS,UACTQ,SAAS,KACTO,QACFnE,EAAMmE,UAVPsN,EAAOtJ,GAAG7N,GAAOsJ,SAAS,KAAKO,OAajC,MAAO,IAAKnE,EAAMC,GAAG,SAAU,CAC9B,IACC4R,EADGC,EAAW,IAIfL,EAASvO,EAAKxE,KAAKkJ,OAAO+J,IACnBlW,MAAK,SAAUyE,GAEpB9H,EAAE6Q,KAAK7Q,EAAEa,MAAM2K,SAAS,KAAKpI,OAAOuW,eAAeC,UAClD,EACA,IACIJ,EAAW3N,EAAEiL,UAElB4C,EAASjX,KAAKqF,EAEhB,IAEA2R,EAAQzZ,EAAEiE,UAAUjB,KAAK,YACzByW,IACAzZ,EAAEiE,UAAUjB,KAAK,WAAYyW,GAEnBzZ,EAAE6Q,KAAK7Q,EAAE,UAAUoD,OAAOuW,eAAeC,UAAU,EAAG,IAEjDJ,EAAW3N,EAAEiL,UAC3B2C,EAAQ,EACRzZ,EAAEiE,UAAUjB,KAAK,WAAYyW,IACnBA,GAASC,EAASxY,SAC5BlB,EAAEiE,UAAUjB,KAAK,WAAY,GACzByW,EAAQC,EAASxY,SAAQuY,EAAQ,IAGtCJ,EACEtJ,GAAG2J,EAASD,EAAQ,IACpBjO,SAAS,KACTO,OACH,CAGA,IACE,UAAUnG,KAAKiG,EAAEiL,QAAQ7W,SAAS,MACjC,QAAQ2F,KAAKiG,EAAEiL,QAAQ7W,SAAS,MAAQ6K,EAAK7E,QAAQ0E,cACvD2O,EACC,CAED,GADK,OAAO1T,KAAKiG,EAAEiL,QAAQ7W,SAAS,MAAM4L,EAAEC,iBACvChB,EAAK7E,QAAQ+D,WASN,OAAOpE,KAAKiG,EAAEiL,QAAQ7W,SAAS,OAC1C6K,EAAKW,WAAW3G,KAAK,aAAa8G,QAClChE,EAAMmE,aAXuB,CAC7B,IAAIhJ,EAAO/C,EAAE,UACb+C,EAAK6I,QAEL7I,EAAKgJ,QAELF,EAAEC,iBAEF9L,EAAEiE,UAAUjB,KAAK,eAAe,EACjC,CAIAhD,EAAEiE,UAAUjB,KAAK,WAAY,EAC9B,EAGE,WAAW4C,KAAKiG,EAAEiL,QAAQ7W,SAAS,MACnCqZ,IACCxO,EAAKI,UAAYJ,EAAK7E,QAAQ+D,aAC/B,OAAOpE,KAAKiG,EAAEiL,QAAQ7W,SAAS,OAASqZ,KAEzCxO,EAAKzE,MAAMwG,SAASlB,YAAY,QAC5Bb,EAAK7E,QAAQwD,WAAWqB,EAAK3E,YAAYwF,YAAY,QACzDb,EAAK1E,QAAQ2F,QAEf,EAEArB,OAAQ,WACP7J,KAAKqF,SAAS8E,SAAS,gBACxB,EAEAnE,QAAS,WACRhG,KAAKyF,KAAO,KACZzF,KAAKoK,MAAQ,CAAC,EACdpK,KAAK0M,WACL1M,KAAK+F,SACL/F,KAAKmL,gBACLnL,KAAKmQ,UAAS,GACdnQ,KAAKiG,WACLjG,KAAKsL,WACDtL,KAAKyF,MAAMzF,KAAK6K,WAAWnH,QAAQ,kBAEvC1D,KAAKqF,SAAS3B,QAAQ,sBACvB,EAEA6C,KAAM,WACLvG,KAAKsF,YAAYiB,MAClB,EAEAD,KAAM,WACLtG,KAAKsF,YAAYgB,MAClB,EAEAD,OAAQ,WACPrG,KAAKsF,YAAYe,SACjBrG,KAAKqF,SAASgB,QACf,EAEAD,QAAS,WACRpG,KAAKsF,YAAY0T,OAAOhZ,KAAKqF,UAAUgB,SAEnCrG,KAAK0V,aACR1V,KAAK0V,aAAarP,SAElBrG,KAAKwF,MAAMa,SAGZrG,KAAKqF,SACHqG,IAAI,cACJuN,WAAW,gBACXnO,YAAY,gCACf,GAiED,IAAIoO,EAAM/Z,EAAEyD,GAAGyE,aACflI,EAAEyD,GAAGyE,aAAeZ,EACpBtH,EAAEyD,GAAGyE,aAAa8R,YAAcjU,EAIhC/F,EAAEyD,GAAGyE,aAAa+R,WAAa,WAE9B,OADAja,EAAEyD,GAAGyE,aAAe6R,EACblZ,IACR,EAEAb,EAAEiE,UACAjB,KAAK,WAAY,GACjBqJ,GACA,oBACA,oGACAtG,EAAazF,UAAU8Y,SAEvB/M,GACA,gBACA,qGACA,SAAUR,GACTA,EAAEuL,iBACH,IAKFpX,EAAEmU,QAAQ9H,GAAG,2BAA2B,WACvCrM,EAAE,iBAAiBqD,MAAK,WACvB,IAAI6W,EAAgBla,EAAEa,MACtByG,EAAOtG,KAAKkZ,EAAeA,EAAclX,OAC1C,GACD,GACA,CA9xED,CA8xEGmX","sources":["webpack://mono-repo/./build-targets/portal/src/js/lib/bootstrap-select.js"],"sourcesContent":["(function ($) {\n\t'use strict';\n\n\t//\n\tif (!String.prototype.includes) {\n\t\t(function () {\n\t\t\t'use strict'; // needed to support `apply`/`call` with `undefined`/`null`\n\t\t\tvar toString = {}.toString;\n\t\t\tvar defineProperty = (function () {\n\t\t\t\t// IE 8 only supports `Object.defineProperty` on DOM elements\n\t\t\t\ttry {\n\t\t\t\t\tvar object = {};\n\t\t\t\t\tvar $defineProperty = Object.defineProperty;\n\t\t\t\t\tvar result =\n\t\t\t\t\t\t$defineProperty(object, object, object) && $defineProperty;\n\t\t\t\t} catch (error) {}\n\t\t\t\treturn result;\n\t\t\t})();\n\t\t\tvar indexOf = ''.indexOf;\n\t\t\tvar includes = function (search) {\n\t\t\t\tif (this == null) {\n\t\t\t\t\tthrow new TypeError();\n\t\t\t\t}\n\t\t\t\tvar string = String(this);\n\t\t\t\tif (search && toString.call(search) == '[object RegExp]') {\n\t\t\t\t\tthrow new TypeError();\n\t\t\t\t}\n\t\t\t\tvar stringLength = string.length;\n\t\t\t\tvar searchString = String(search);\n\t\t\t\tvar searchLength = searchString.length;\n\t\t\t\tvar position = arguments.length > 1 ? arguments[1] : undefined;\n\t\t\t\t// `ToInteger`\n\t\t\t\tvar pos = position ? Number(position) : 0;\n\t\t\t\tif (pos != pos) {\n\t\t\t\t\t// better `isNaN`\n\t\t\t\t\tpos = 0;\n\t\t\t\t}\n\t\t\t\tvar start = Math.min(Math.max(pos, 0), stringLength);\n\t\t\t\t// Avoid the `indexOf` call if no match is possible\n\t\t\t\tif (searchLength + start > stringLength) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t\treturn indexOf.call(string, searchString, pos) != -1;\n\t\t\t};\n\t\t\tif (defineProperty) {\n\t\t\t\tdefineProperty(String.prototype, 'includes', {\n\t\t\t\t\tvalue: includes,\n\t\t\t\t\tconfigurable: true,\n\t\t\t\t\twritable: true,\n\t\t\t\t});\n\t\t\t} else {\n\t\t\t\tString.prototype.includes = includes;\n\t\t\t}\n\t\t})();\n\t}\n\n\tif (!String.prototype.startsWith) {\n\t\t(function () {\n\t\t\t'use strict'; // needed to support `apply`/`call` with `undefined`/`null`\n\t\t\tvar defineProperty = (function () {\n\t\t\t\t// IE 8 only supports `Object.defineProperty` on DOM elements\n\t\t\t\ttry {\n\t\t\t\t\tvar object = {};\n\t\t\t\t\tvar $defineProperty = Object.defineProperty;\n\t\t\t\t\tvar result =\n\t\t\t\t\t\t$defineProperty(object, object, object) && $defineProperty;\n\t\t\t\t} catch (error) {}\n\t\t\t\treturn result;\n\t\t\t})();\n\t\t\tvar toString = {}.toString;\n\t\t\tvar startsWith = function (search) {\n\t\t\t\tif (this == null) {\n\t\t\t\t\tthrow new TypeError();\n\t\t\t\t}\n\t\t\t\tvar string = String(this);\n\t\t\t\tif (search && toString.call(search) == '[object RegExp]') {\n\t\t\t\t\tthrow new TypeError();\n\t\t\t\t}\n\t\t\t\tvar stringLength = string.length;\n\t\t\t\tvar searchString = String(search);\n\t\t\t\tvar searchLength = searchString.length;\n\t\t\t\tvar position = arguments.length > 1 ? arguments[1] : undefined;\n\t\t\t\t// `ToInteger`\n\t\t\t\tvar pos = position ? Number(position) : 0;\n\t\t\t\tif (pos != pos) {\n\t\t\t\t\t// better `isNaN`\n\t\t\t\t\tpos = 0;\n\t\t\t\t}\n\t\t\t\tvar start = Math.min(Math.max(pos, 0), stringLength);\n\t\t\t\t// Avoid the `indexOf` call if no match is possible\n\t\t\t\tif (searchLength + start > stringLength) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t\tvar index = -1;\n\t\t\t\twhile (++index < searchLength) {\n\t\t\t\t\tif (\n\t\t\t\t\t\tstring.charCodeAt(start + index) != searchString.charCodeAt(index)\n\t\t\t\t\t) {\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn true;\n\t\t\t};\n\t\t\tif (defineProperty) {\n\t\t\t\tdefineProperty(String.prototype, 'startsWith', {\n\t\t\t\t\tvalue: startsWith,\n\t\t\t\t\tconfigurable: true,\n\t\t\t\t\twritable: true,\n\t\t\t\t});\n\t\t\t} else {\n\t\t\t\tString.prototype.startsWith = startsWith;\n\t\t\t}\n\t\t})();\n\t}\n\n\tif (!Object.keys) {\n\t\tObject.keys = function (\n\t\t\to, // object\n\t\t\tk, // key\n\t\t\tr, // result array\n\t\t) {\n\t\t\t// initialize object and result\n\t\t\tr = [];\n\t\t\t// iterate over object keys\n\t\t\t// fill result array with non-prototypical keys\n\t\t\tfor (k in o) r.hasOwnProperty.call(o, k) && r.push(k);\n\t\t\t// return result\n\t\t\treturn r;\n\t\t};\n\t}\n\n\t// set data-selected on select element if the value has been programmatically selected\n\t// prior to initialization of bootstrap-select\n\t// * consider removing or replacing an alternative method *\n\tvar valHooks = {\n\t\tuseDefault: false,\n\t\t_set: $.valHooks.select.set,\n\t};\n\n\t$.valHooks.select.set = function (elem, value) {\n\t\tif (value && !valHooks.useDefault) $(elem).data('selected', true);\n\n\t\treturn valHooks._set.apply(this, arguments);\n\t};\n\n\tvar changed_arguments = null;\n\t$.fn.triggerNative = function (eventName) {\n\t\tvar el = this[0],\n\t\t\tevent;\n\n\t\tif (el.dispatchEvent) {\n\t\t\t// for modern browsers & IE9+\n\t\t\tif (typeof Event === 'function') {\n\t\t\t\t// For modern browsers\n\t\t\t\tevent = new Event(eventName, {\n\t\t\t\t\tbubbles: true,\n\t\t\t\t});\n\t\t\t} else {\n\t\t\t\t// For IE since it doesn't support Event constructor\n\t\t\t\tevent = document.createEvent('Event');\n\t\t\t\tevent.initEvent(eventName, true, false);\n\t\t\t}\n\n\t\t\tel.dispatchEvent(event);\n\t\t} else if (el.fireEvent) {\n\t\t\t// for IE8\n\t\t\tevent = document.createEventObject();\n\t\t\tevent.eventType = eventName;\n\t\t\tel.fireEvent('on' + eventName, event);\n\t\t} else {\n\t\t\t// fall back to jQuery.trigger\n\t\t\tthis.trigger(eventName);\n\t\t}\n\t};\n\t//\n\n\t// Case insensitive contains search\n\t$.expr.pseudos.icontains = function (obj, index, meta) {\n\t\tvar $obj = $(obj).find('a');\n\t\tvar haystack = ($obj.data('tokens') || $obj.text())\n\t\t\t.toString()\n\t\t\t.toUpperCase();\n\t\treturn haystack.includes(meta[3].toUpperCase());\n\t};\n\n\t// Case insensitive begins search\n\t$.expr.pseudos.ibegins = function (obj, index, meta) {\n\t\tvar $obj = $(obj).find('a');\n\t\tvar haystack = ($obj.data('tokens') || $obj.text())\n\t\t\t.toString()\n\t\t\t.toUpperCase();\n\t\treturn haystack.startsWith(meta[3].toUpperCase());\n\t};\n\n\t// Case and accent insensitive contains search\n\t$.expr.pseudos.aicontains = function (obj, index, meta) {\n\t\tvar $obj = $(obj).find('a');\n\t\tvar haystack = (\n\t\t\t$obj.data('tokens') ||\n\t\t\t$obj.data('normalizedText') ||\n\t\t\t$obj.text()\n\t\t)\n\t\t\t.toString()\n\t\t\t.toUpperCase();\n\t\treturn haystack.includes(meta[3].toUpperCase());\n\t};\n\n\t// Case and accent insensitive begins search\n\t$.expr.pseudos.aibegins = function (obj, index, meta) {\n\t\tvar $obj = $(obj).find('a');\n\t\tvar haystack = (\n\t\t\t$obj.data('tokens') ||\n\t\t\t$obj.data('normalizedText') ||\n\t\t\t$obj.text()\n\t\t)\n\t\t\t.toString()\n\t\t\t.toUpperCase();\n\t\treturn haystack.startsWith(meta[3].toUpperCase());\n\t};\n\n\t/**\n\t * Remove all diatrics from the given text.\n\t * @access private\n\t * @param {String} text\n\t * @returns {String}\n\t */\n\tfunction normalizeToBase(text) {\n\t\tvar rExps = [\n\t\t\t{re: /[\\xC0-\\xC6]/g, ch: 'A'},\n\t\t\t{re: /[\\xE0-\\xE6]/g, ch: 'a'},\n\t\t\t{re: /[\\xC8-\\xCB]/g, ch: 'E'},\n\t\t\t{re: /[\\xE8-\\xEB]/g, ch: 'e'},\n\t\t\t{re: /[\\xCC-\\xCF]/g, ch: 'I'},\n\t\t\t{re: /[\\xEC-\\xEF]/g, ch: 'i'},\n\t\t\t{re: /[\\xD2-\\xD6]/g, ch: 'O'},\n\t\t\t{re: /[\\xF2-\\xF6]/g, ch: 'o'},\n\t\t\t{re: /[\\xD9-\\xDC]/g, ch: 'U'},\n\t\t\t{re: /[\\xF9-\\xFC]/g, ch: 'u'},\n\t\t\t{re: /[\\xC7-\\xE7]/g, ch: 'c'},\n\t\t\t{re: /[\\xD1]/g, ch: 'N'},\n\t\t\t{re: /[\\xF1]/g, ch: 'n'},\n\t\t];\n\t\t$.each(rExps, function () {\n\t\t\ttext = text ? text.replace(this.re, this.ch) : '';\n\t\t});\n\t\treturn text;\n\t}\n\n\t// List of HTML entities for escaping.\n\tvar escapeMap = {\n\t\t'&': '&',\n\t\t'<': '<',\n\t\t'>': '>',\n\t\t'\"': '"',\n\t\t\"'\": ''',\n\t\t'`': '`',\n\t};\n\n\tvar unescapeMap = {\n\t\t'&': '&',\n\t\t'<': '<',\n\t\t'>': '>',\n\t\t'"': '\"',\n\t\t''': \"'\",\n\t\t'`': '`',\n\t};\n\n\t// Functions for escaping and unescaping strings to/from HTML interpolation.\n\tvar createEscaper = function (map) {\n\t\tvar escaper = function (match) {\n\t\t\treturn map[match];\n\t\t};\n\t\t// Regexes for identifying a key that needs to be escaped.\n\t\tvar source = '(?:' + Object.keys(map).join('|') + ')';\n\t\tvar testRegexp = RegExp(source);\n\t\tvar replaceRegexp = RegExp(source, 'g');\n\t\treturn function (string) {\n\t\t\tstring = string == null ? '' : '' + string;\n\t\t\treturn testRegexp.test(string)\n\t\t\t\t? string.replace(replaceRegexp, escaper)\n\t\t\t\t: string;\n\t\t};\n\t};\n\n\tvar htmlEscape = createEscaper(escapeMap);\n\tvar htmlUnescape = createEscaper(unescapeMap);\n\n\tvar Selectpicker = function (element, options) {\n\t\t// bootstrap-select has been initialized - revert valHooks.select.set back to its original function\n\t\tif (!valHooks.useDefault) {\n\t\t\t$.valHooks.select.set = valHooks._set;\n\t\t\tvalHooks.useDefault = true;\n\t\t}\n\n\t\tthis.$element = $(element);\n\t\tthis.$newElement = null;\n\t\tthis.$button = null;\n\t\tthis.$menu = null;\n\t\tthis.$lis = null;\n\t\tthis.options = options;\n\n\t\t// If we have no title yet, try to pull it from the html title attribute (jQuery doesnt' pick it up as it's not a\n\t\t// data-attribute)\n\t\tif (this.options.title === null) {\n\t\t\tthis.options.title = this.$element.attr('title');\n\t\t}\n\n\t\t// Format window padding\n\t\tvar winPad = this.options.windowPadding;\n\t\tif (typeof winPad === 'number') {\n\t\t\tthis.options.windowPadding = [winPad, winPad, winPad, winPad];\n\t\t}\n\n\t\t//Expose public methods\n\t\tthis.val = Selectpicker.prototype.val;\n\t\tthis.render = Selectpicker.prototype.render;\n\t\tthis.refresh = Selectpicker.prototype.refresh;\n\t\tthis.setStyle = Selectpicker.prototype.setStyle;\n\t\tthis.selectAll = Selectpicker.prototype.selectAll;\n\t\tthis.deselectAll = Selectpicker.prototype.deselectAll;\n\t\tthis.destroy = Selectpicker.prototype.destroy;\n\t\tthis.remove = Selectpicker.prototype.remove;\n\t\tthis.show = Selectpicker.prototype.show;\n\t\tthis.hide = Selectpicker.prototype.hide;\n\n\t\tthis.init();\n\t};\n\n\tSelectpicker.VERSION = '1.12.2';\n\n\t// part of this is duplicated in i18n/defaults-en_US.js. Make sure to update both.\n\tSelectpicker.DEFAULTS = {\n\t\tnoneSelectedText: 'Nothing selected',\n\t\tnoneResultsText: 'No results matched {0}',\n\t\tcountSelectedText: function (numSelected, numTotal) {\n\t\t\treturn numSelected == 1 ? '{0} item selected' : '{0} items selected';\n\t\t},\n\t\tmaxOptionsText: function (numAll, numGroup) {\n\t\t\treturn [\n\t\t\t\tnumAll == 1\n\t\t\t\t\t? 'Limit reached ({n} item max)'\n\t\t\t\t\t: 'Limit reached ({n} items max)',\n\t\t\t\tnumGroup == 1\n\t\t\t\t\t? 'Group limit reached ({n} item max)'\n\t\t\t\t\t: 'Group limit reached ({n} items max)',\n\t\t\t];\n\t\t},\n\t\tselectAllText: 'Select All',\n\t\tdeselectAllText: 'Deselect All',\n\t\tdoneButton: false,\n\t\tdoneButtonText: 'Close',\n\t\tmultipleSeparator: ', ',\n\t\tstyleBase: 'btn',\n\t\tstyle: 'btn-default',\n\t\tsize: 'auto',\n\t\ttitle: null,\n\t\tselectedTextFormat: 'values',\n\t\twidth: false,\n\t\tcontainer: false,\n\t\thideDisabled: false,\n\t\tshowSubtext: false,\n\t\tshowIcon: true,\n\t\tshowContent: true,\n\t\tdropupAuto: true,\n\t\theader: false,\n\t\tliveSearch: false,\n\t\tliveSearchPlaceholder: null,\n\t\tliveSearchNormalize: false,\n\t\tliveSearchStyle: 'contains',\n\t\tactionsBox: false,\n\t\ticonBase: 'glyphicon',\n\t\ttickIcon: 'glyphicon-ok',\n\t\tshowTick: false,\n\t\ttemplate: {\n\t\t\tcaret: '',\n\t\t},\n\t\tmaxOptions: false,\n\t\tmobile: false,\n\t\tselectOnTab: false,\n\t\tdropdownAlignRight: false,\n\t\twindowPadding: 0,\n\t};\n\n\tSelectpicker.prototype = {\n\t\tconstructor: Selectpicker,\n\n\t\tinit: function () {\n\t\t\tvar that = this,\n\t\t\t\tid = this.$element.attr('id');\n\n\t\t\tthis.$element.addClass('bs-select-hidden');\n\n\t\t\t// store originalIndex (key) and newIndex (value) in this.liObj for fast accessibility\n\t\t\t// allows us to do this.$lis.eq(that.liObj[index]) instead of this.$lis.filter('[data-original-index=\"' + index + '\"]')\n\t\t\tthis.liObj = {};\n\t\t\tthis.multiple = this.$element.prop('multiple');\n\t\t\tthis.autofocus = this.$element.prop('autofocus');\n\t\t\tthis.$newElement = this.createView();\n\t\t\tthis.$element.after(this.$newElement).appendTo(this.$newElement);\n\t\t\tthis.$button = this.$newElement.children('button');\n\t\t\tthis.$menu = this.$newElement.children('.dropdown-menu');\n\t\t\tthis.$menuInner = this.$menu.children('.inner');\n\t\t\tthis.$searchbox = this.$menu.find('input');\n\n\t\t\tthis.$element.removeClass('bs-select-hidden');\n\n\t\t\tif (this.options.dropdownAlignRight === true)\n\t\t\t\tthis.$menu.addClass('dropdown-menu-right');\n\n\t\t\tif (typeof id !== 'undefined') {\n\t\t\t\tthis.$button.attr('data-id', id);\n\t\t\t\t$('label[for=\"' + id + '\"]').click(function (e) {\n\t\t\t\t\te.preventDefault();\n\t\t\t\t\tthat.$button.focus();\n\t\t\t\t});\n\t\t\t}\n\n\t\t\tthis.checkDisabled();\n\t\t\tthis.clickListener();\n\t\t\tif (this.options.liveSearch) this.liveSearchListener();\n\t\t\tthis.render();\n\t\t\tthis.setStyle();\n\t\t\tthis.setWidth();\n\t\t\tif (this.options.container) this.selectPosition();\n\t\t\tthis.$menu.data('this', this);\n\t\t\tthis.$newElement.data('this', this);\n\t\t\tif (this.options.mobile) this.mobile();\n\n\t\t\tthis.$newElement.on({\n\t\t\t\t'hide.bs.dropdown': function (e) {\n\t\t\t\t\tthat.$menuInner.attr('aria-expanded', false);\n\t\t\t\t\tthat.$element.trigger('hide.bs.select', e);\n\t\t\t\t},\n\t\t\t\t'hidden.bs.dropdown': function (e) {\n\t\t\t\t\tthat.$element.trigger('hidden.bs.select', e);\n\t\t\t\t},\n\t\t\t\t'show.bs.dropdown': function (e) {\n\t\t\t\t\tthat.$menuInner.attr('aria-expanded', true);\n\t\t\t\t\tthat.$element.trigger('show.bs.select', e);\n\t\t\t\t},\n\t\t\t\t'shown.bs.dropdown': function (e) {\n\t\t\t\t\tthat.$element.trigger('shown.bs.select', e);\n\t\t\t\t},\n\t\t\t});\n\n\t\t\tif (that.$element[0].hasAttribute('required')) {\n\t\t\t\tthis.$element.on('invalid', function () {\n\t\t\t\t\tthat.$button.addClass('bs-invalid').focus();\n\n\t\t\t\t\tthat.$element.on({\n\t\t\t\t\t\t'focus.bs.select': function () {\n\t\t\t\t\t\t\tthat.$button.focus();\n\t\t\t\t\t\t\tthat.$element.off('focus.bs.select');\n\t\t\t\t\t\t},\n\t\t\t\t\t\t'shown.bs.select': function () {\n\t\t\t\t\t\t\tthat.$element\n\t\t\t\t\t\t\t\t.val(that.$element.val()) // set the value to hide the validation message in Chrome when menu is opened\n\t\t\t\t\t\t\t\t.off('shown.bs.select');\n\t\t\t\t\t\t},\n\t\t\t\t\t\t'rendered.bs.select': function () {\n\t\t\t\t\t\t\t// if select is no longer invalid, remove the bs-invalid class\n\t\t\t\t\t\t\tif (this.validity.valid) that.$button.removeClass('bs-invalid');\n\t\t\t\t\t\t\tthat.$element.off('rendered.bs.select');\n\t\t\t\t\t\t},\n\t\t\t\t\t});\n\t\t\t\t});\n\t\t\t}\n\n\t\t\tsetTimeout(function () {\n\t\t\t\tthat.$element.trigger('loaded.bs.select');\n\t\t\t});\n\t\t},\n\n\t\tcreateDropdown: function () {\n\t\t\t// Options\n\t\t\t// If we are multiple or showTick option is set, then add the show-tick class\n\t\t\tvar showTick = this.multiple || this.options.showTick ? ' show-tick' : '',\n\t\t\t\tinputGroup = this.$element.parent().hasClass('input-group')\n\t\t\t\t\t? ' input-group-btn'\n\t\t\t\t\t: '',\n\t\t\t\tautofocus = this.autofocus ? ' autofocus' : '';\n\t\t\t// Elements\n\t\t\tvar header = this.options.header\n\t\t\t\t? '
' +\n\t\t\t\t this.options.header +\n\t\t\t\t '
'\n\t\t\t\t: '';\n\t\t\tvar searchbox = this.options.liveSearch\n\t\t\t\t? '
' +\n\t\t\t\t '' +\n\t\t\t\t '
'\n\t\t\t\t: '';\n\t\t\tvar actionsbox =\n\t\t\t\tthis.multiple && this.options.actionsBox\n\t\t\t\t\t? '
' +\n\t\t\t\t\t '
' +\n\t\t\t\t\t '' +\n\t\t\t\t\t '' +\n\t\t\t\t\t '
' +\n\t\t\t\t\t '
'\n\t\t\t\t\t: '';\n\t\t\tvar donebutton =\n\t\t\t\tthis.multiple && this.options.doneButton\n\t\t\t\t\t? '
' +\n\t\t\t\t\t '
' +\n\t\t\t\t\t '' +\n\t\t\t\t\t '
' +\n\t\t\t\t\t '
'\n\t\t\t\t\t: '';\n\t\t\tvar drop =\n\t\t\t\t'
' +\n\t\t\t\t'' +\n\t\t\t\t'
' +\n\t\t\t\theader +\n\t\t\t\tsearchbox +\n\t\t\t\tactionsbox +\n\t\t\t\t'' +\n\t\t\t\tdonebutton +\n\t\t\t\t'
' +\n\t\t\t\t'
';\n\n\t\t\treturn $(drop);\n\t\t},\n\n\t\tcreateView: function () {\n\t\t\tvar $drop = this.createDropdown(),\n\t\t\t\tli = this.createLi();\n\n\t\t\t$drop.find('ul')[0].innerHTML = li;\n\t\t\treturn $drop;\n\t\t},\n\n\t\treloadLi: function () {\n\t\t\t// rebuild\n\t\t\tvar li = this.createLi();\n\t\t\tthis.$menuInner[0].innerHTML = li;\n\t\t},\n\n\t\tcreateLi: function () {\n\t\t\tvar that = this,\n\t\t\t\t_li = [],\n\t\t\t\toptID = 0,\n\t\t\t\ttitleOption = document.createElement('option'),\n\t\t\t\tliIndex = -1; // increment liIndex whenever a new
  • element is created to ensure liObj is correct\n\n\t\t\t// Helper functions\n\t\t\t/**\n\t\t\t * @param content\n\t\t\t * @param [index]\n\t\t\t * @param [classes]\n\t\t\t * @param [optgroup]\n\t\t\t * @returns {string}\n\t\t\t */\n\t\t\tvar generateLI = function (content, index, classes, optgroup) {\n\t\t\t\treturn (\n\t\t\t\t\t'' +\n\t\t\t\t\tcontent +\n\t\t\t\t\t'
  • '\n\t\t\t\t);\n\t\t\t};\n\n\t\t\t/**\n\t\t\t * @param text\n\t\t\t * @param [classes]\n\t\t\t * @param [inline]\n\t\t\t * @param [tokens]\n\t\t\t * @returns {string}\n\t\t\t */\n\t\t\tvar generateA = function (text, classes, inline, tokens) {\n\t\t\t\treturn (\n\t\t\t\t\t'' +\n\t\t\t\t\ttext +\n\t\t\t\t\t'' +\n\t\t\t\t\t''\n\t\t\t\t);\n\t\t\t};\n\n\t\t\tif (this.options.title && !this.multiple) {\n\t\t\t\t// this option doesn't create a new
  • element, but does add a new option, so liIndex is decreased\n\t\t\t\t// since liObj is recalculated on every refresh, liIndex needs to be decreased even if the titleOption is already appended\n\t\t\t\tliIndex--;\n\n\t\t\t\tif (!this.$element.find('.bs-title-option').length) {\n\t\t\t\t\t// Use native JS to prepend option (faster)\n\t\t\t\t\tvar element = this.$element[0];\n\t\t\t\t\ttitleOption.className = 'bs-title-option';\n\t\t\t\t\ttitleOption.innerHTML = this.options.title;\n\t\t\t\t\ttitleOption.value = '';\n\t\t\t\t\telement.insertBefore(titleOption, element.firstChild);\n\t\t\t\t\t// Check if selected or data-selected attribute is already set on an option. If not, select the titleOption option.\n\t\t\t\t\t// the selected item may have been changed by user or programmatically before the bootstrap select plugin runs,\n\t\t\t\t\t// if so, the select will have the data-selected attribute\n\t\t\t\t\tvar $opt = $(element.options[element.selectedIndex]);\n\t\t\t\t\tif (\n\t\t\t\t\t\t$opt.attr('selected') === undefined &&\n\t\t\t\t\t\tthis.$element.data('selected') === undefined\n\t\t\t\t\t) {\n\t\t\t\t\t\ttitleOption.selected = true;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tvar $selectOptions = this.$element.find('option');\n\n\t\t\t$selectOptions.each(function (index) {\n\t\t\t\tvar $this = $(this);\n\n\t\t\t\tliIndex++;\n\n\t\t\t\tif ($this.hasClass('bs-title-option')) return;\n\n\t\t\t\t// Get the class and text for the option\n\t\t\t\tvar optionClass = this.className || '',\n\t\t\t\t\tinline = htmlEscape(this.style.cssText),\n\t\t\t\t\ttext = $this.data('content') ? $this.data('content') : $this.html(),\n\t\t\t\t\ttokens = $this.data('tokens') ? $this.data('tokens') : null,\n\t\t\t\t\tsubtext =\n\t\t\t\t\t\ttypeof $this.data('subtext') !== 'undefined'\n\t\t\t\t\t\t\t? '' +\n\t\t\t\t\t\t\t $this.data('subtext') +\n\t\t\t\t\t\t\t ''\n\t\t\t\t\t\t\t: '',\n\t\t\t\t\ticon =\n\t\t\t\t\t\ttypeof $this.data('icon') !== 'undefined'\n\t\t\t\t\t\t\t? ' '\n\t\t\t\t\t\t\t: '',\n\t\t\t\t\t$parent = $this.parent(),\n\t\t\t\t\tisOptgroup = $parent[0].tagName === 'OPTGROUP',\n\t\t\t\t\tisOptgroupDisabled = isOptgroup && $parent[0].disabled,\n\t\t\t\t\tisDisabled = this.disabled || isOptgroupDisabled,\n\t\t\t\t\tprevHiddenIndex;\n\n\t\t\t\tif (icon !== '' && isDisabled) {\n\t\t\t\t\ticon = '' + icon + '';\n\t\t\t\t}\n\n\t\t\t\tif (\n\t\t\t\t\tthat.options.hideDisabled &&\n\t\t\t\t\t((isDisabled && !isOptgroup) || isOptgroupDisabled)\n\t\t\t\t) {\n\t\t\t\t\t// set prevHiddenIndex - the index of the first hidden option in a group of hidden options\n\t\t\t\t\t// used to determine whether or not a divider should be placed after an optgroup if there are\n\t\t\t\t\t// hidden options between the optgroup and the first visible option\n\t\t\t\t\tprevHiddenIndex = $this.data('prevHiddenIndex');\n\t\t\t\t\t$this\n\t\t\t\t\t\t.next()\n\t\t\t\t\t\t.data(\n\t\t\t\t\t\t\t'prevHiddenIndex',\n\t\t\t\t\t\t\tprevHiddenIndex !== undefined ? prevHiddenIndex : index,\n\t\t\t\t\t\t);\n\n\t\t\t\t\tliIndex--;\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (!$this.data('content')) {\n\t\t\t\t\t// Prepend any icon and append any subtext to the main text.\n\t\t\t\t\ttext = icon + '' + text + subtext + '';\n\t\t\t\t}\n\n\t\t\t\tif (isOptgroup && $this.data('divider') !== true) {\n\t\t\t\t\tif (that.options.hideDisabled && isDisabled) {\n\t\t\t\t\t\tif ($parent.data('allOptionsDisabled') === undefined) {\n\t\t\t\t\t\t\tvar $options = $parent.children();\n\t\t\t\t\t\t\t$parent.data(\n\t\t\t\t\t\t\t\t'allOptionsDisabled',\n\t\t\t\t\t\t\t\t$options.filter(':disabled').length === $options.length,\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif ($parent.data('allOptionsDisabled')) {\n\t\t\t\t\t\t\tliIndex--;\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\tvar optGroupClass = ' ' + $parent[0].className || '';\n\n\t\t\t\t\tif ($this.index() === 0) {\n\t\t\t\t\t\t// Is it the first option of the optgroup?\n\t\t\t\t\t\toptID += 1;\n\n\t\t\t\t\t\t// Get the opt group label\n\t\t\t\t\t\tvar label = $parent[0].label,\n\t\t\t\t\t\t\tlabelSubtext =\n\t\t\t\t\t\t\t\ttypeof $parent.data('subtext') !== 'undefined'\n\t\t\t\t\t\t\t\t\t? '' +\n\t\t\t\t\t\t\t\t\t $parent.data('subtext') +\n\t\t\t\t\t\t\t\t\t ''\n\t\t\t\t\t\t\t\t\t: '',\n\t\t\t\t\t\t\tlabelIcon = $parent.data('icon')\n\t\t\t\t\t\t\t\t? ' '\n\t\t\t\t\t\t\t\t: '';\n\n\t\t\t\t\t\tlabel =\n\t\t\t\t\t\t\tlabelIcon +\n\t\t\t\t\t\t\t'' +\n\t\t\t\t\t\t\thtmlEscape(label) +\n\t\t\t\t\t\t\tlabelSubtext +\n\t\t\t\t\t\t\t'';\n\n\t\t\t\t\t\tif (index !== 0 && _li.length > 0) {\n\t\t\t\t\t\t\t// Is it NOT the first option of the select && are there elements in the dropdown?\n\t\t\t\t\t\t\tliIndex++;\n\t\t\t\t\t\t\t_li.push(generateLI('', null, 'divider', optID + 'div'));\n\t\t\t\t\t\t}\n\t\t\t\t\t\tliIndex++;\n\t\t\t\t\t\t_li.push(\n\t\t\t\t\t\t\tgenerateLI(label, null, 'dropdown-header' + optGroupClass, optID),\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\n\t\t\t\t\tif (that.options.hideDisabled && isDisabled) {\n\t\t\t\t\t\tliIndex--;\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\n\t\t\t\t\t_li.push(\n\t\t\t\t\t\tgenerateLI(\n\t\t\t\t\t\t\tgenerateA(\n\t\t\t\t\t\t\t\ttext,\n\t\t\t\t\t\t\t\t'opt ' + optionClass + optGroupClass,\n\t\t\t\t\t\t\t\tinline,\n\t\t\t\t\t\t\t\ttokens,\n\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\tindex,\n\t\t\t\t\t\t\t'',\n\t\t\t\t\t\t\toptID,\n\t\t\t\t\t\t),\n\t\t\t\t\t);\n\t\t\t\t} else if ($this.data('divider') === true) {\n\t\t\t\t\t_li.push(generateLI('', index, 'divider'));\n\t\t\t\t} else if ($this.data('hidden') === true) {\n\t\t\t\t\t// set prevHiddenIndex - the index of the first hidden option in a group of hidden options\n\t\t\t\t\t// used to determine whether or not a divider should be placed after an optgroup if there are\n\t\t\t\t\t// hidden options between the optgroup and the first visible option\n\t\t\t\t\tprevHiddenIndex = $this.data('prevHiddenIndex');\n\t\t\t\t\t$this\n\t\t\t\t\t\t.next()\n\t\t\t\t\t\t.data(\n\t\t\t\t\t\t\t'prevHiddenIndex',\n\t\t\t\t\t\t\tprevHiddenIndex !== undefined ? prevHiddenIndex : index,\n\t\t\t\t\t\t);\n\n\t\t\t\t\t_li.push(\n\t\t\t\t\t\tgenerateLI(\n\t\t\t\t\t\t\tgenerateA(text, optionClass, inline, tokens),\n\t\t\t\t\t\t\tindex,\n\t\t\t\t\t\t\t'hidden is-hidden',\n\t\t\t\t\t\t),\n\t\t\t\t\t);\n\t\t\t\t} else {\n\t\t\t\t\tvar showDivider =\n\t\t\t\t\t\tthis.previousElementSibling &&\n\t\t\t\t\t\tthis.previousElementSibling.tagName === 'OPTGROUP';\n\n\t\t\t\t\t// if previous element is not an optgroup and hideDisabled is true\n\t\t\t\t\tif (!showDivider && that.options.hideDisabled) {\n\t\t\t\t\t\tprevHiddenIndex = $this.data('prevHiddenIndex');\n\n\t\t\t\t\t\tif (prevHiddenIndex !== undefined) {\n\t\t\t\t\t\t\t// select the element **before** the first hidden element in the group\n\t\t\t\t\t\t\tvar prevHidden = $selectOptions.eq(prevHiddenIndex)[0]\n\t\t\t\t\t\t\t\t.previousElementSibling;\n\n\t\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t\tprevHidden &&\n\t\t\t\t\t\t\t\tprevHidden.tagName === 'OPTGROUP' &&\n\t\t\t\t\t\t\t\t!prevHidden.disabled\n\t\t\t\t\t\t\t) {\n\t\t\t\t\t\t\t\tshowDivider = true;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\tif (showDivider) {\n\t\t\t\t\t\tliIndex++;\n\t\t\t\t\t\t_li.push(generateLI('', null, 'divider', optID + 'div'));\n\t\t\t\t\t}\n\t\t\t\t\t_li.push(\n\t\t\t\t\t\tgenerateLI(generateA(text, optionClass, inline, tokens), index),\n\t\t\t\t\t);\n\t\t\t\t}\n\n\t\t\t\tthat.liObj[index] = liIndex;\n\t\t\t});\n\n\t\t\t//If we are not multiple, we don't have a selected item, and we don't have a title, select the first element so something is set in the button\n\t\t\tif (\n\t\t\t\t!this.multiple &&\n\t\t\t\tthis.$element.find('option:selected').length === 0 &&\n\t\t\t\t!this.options.title\n\t\t\t) {\n\t\t\t\tthis.$element\n\t\t\t\t\t.find('option')\n\t\t\t\t\t.eq(0)\n\t\t\t\t\t.prop('selected', true)\n\t\t\t\t\t.attr('selected', 'selected');\n\t\t\t}\n\n\t\t\treturn _li.join('');\n\t\t},\n\n\t\tfindLis: function () {\n\t\t\tif (this.$lis == null) this.$lis = this.$menu.find('li');\n\t\t\treturn this.$lis;\n\t\t},\n\n\t\t/**\n\t\t * @param [updateLi] defaults to true\n\t\t */\n\t\trender: function (updateLi) {\n\t\t\tvar that = this,\n\t\t\t\tnotDisabled,\n\t\t\t\t$selectOptions = this.$element.find('option');\n\n\t\t\t//Update the LI to match the SELECT\n\t\t\tif (updateLi !== false) {\n\t\t\t\t$selectOptions.each(function (index) {\n\t\t\t\t\tvar $lis = that.findLis().eq(that.liObj[index]);\n\n\t\t\t\t\tthat.setDisabled(\n\t\t\t\t\t\tindex,\n\t\t\t\t\t\tthis.disabled ||\n\t\t\t\t\t\t\t(this.parentNode.tagName === 'OPTGROUP' &&\n\t\t\t\t\t\t\t\tthis.parentNode.disabled),\n\t\t\t\t\t\t$lis,\n\t\t\t\t\t);\n\t\t\t\t\tthat.setSelected(index, this.selected, $lis);\n\t\t\t\t});\n\t\t\t}\n\n\t\t\tthis.togglePlaceholder();\n\n\t\t\tthis.tabIndex();\n\n\t\t\tvar selectedItems = $selectOptions\n\t\t\t\t.map(function () {\n\t\t\t\t\tif (this.selected) {\n\t\t\t\t\t\tif (\n\t\t\t\t\t\t\tthat.options.hideDisabled &&\n\t\t\t\t\t\t\t(this.disabled ||\n\t\t\t\t\t\t\t\t(this.parentNode.tagName === 'OPTGROUP' &&\n\t\t\t\t\t\t\t\t\tthis.parentNode.disabled))\n\t\t\t\t\t\t)\n\t\t\t\t\t\t\treturn;\n\n\t\t\t\t\t\tvar $this = $(this),\n\t\t\t\t\t\t\ticon =\n\t\t\t\t\t\t\t\t$this.data('icon') && that.options.showIcon\n\t\t\t\t\t\t\t\t\t? ' '\n\t\t\t\t\t\t\t\t\t: '',\n\t\t\t\t\t\t\tsubtext;\n\n\t\t\t\t\t\tif (\n\t\t\t\t\t\t\tthat.options.showSubtext &&\n\t\t\t\t\t\t\t$this.data('subtext') &&\n\t\t\t\t\t\t\t!that.multiple\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\tsubtext =\n\t\t\t\t\t\t\t\t' ' +\n\t\t\t\t\t\t\t\t$this.data('subtext') +\n\t\t\t\t\t\t\t\t'';\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tsubtext = '';\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (typeof $this.attr('title') !== 'undefined') {\n\t\t\t\t\t\t\treturn $this.attr('title');\n\t\t\t\t\t\t} else if ($this.data('content') && that.options.showContent) {\n\t\t\t\t\t\t\treturn $this.data('content').toString();\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\treturn icon + $this.html() + subtext;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t})\n\t\t\t\t.toArray();\n\n\t\t\t//Fixes issue in IE10 occurring when no default option is selected and at least one option is disabled\n\t\t\t//Convert all the values into a comma delimited string\n\t\t\tvar title = !this.multiple\n\t\t\t\t? selectedItems[0]\n\t\t\t\t: selectedItems.join(this.options.multipleSeparator);\n\n\t\t\t//If this is multi select, and the selectText type is count, the show 1 of 2 selected etc..\n\t\t\tif (\n\t\t\t\tthis.multiple &&\n\t\t\t\tthis.options.selectedTextFormat.indexOf('count') > -1\n\t\t\t) {\n\t\t\t\tvar max = this.options.selectedTextFormat.split('>');\n\t\t\t\tif (\n\t\t\t\t\t(max.length > 1 && selectedItems.length > max[1]) ||\n\t\t\t\t\t(max.length == 1 && selectedItems.length >= 2)\n\t\t\t\t) {\n\t\t\t\t\tnotDisabled = this.options.hideDisabled ? ', [disabled]' : '';\n\t\t\t\t\tvar totalCount = $selectOptions.not(\n\t\t\t\t\t\t\t'[data-divider=\"true\"], [data-hidden=\"true\"]' + notDisabled,\n\t\t\t\t\t\t).length,\n\t\t\t\t\t\ttr8nText =\n\t\t\t\t\t\t\ttypeof this.options.countSelectedText === 'function'\n\t\t\t\t\t\t\t\t? this.options.countSelectedText(\n\t\t\t\t\t\t\t\t\t\tselectedItems.length,\n\t\t\t\t\t\t\t\t\t\ttotalCount,\n\t\t\t\t\t\t\t\t )\n\t\t\t\t\t\t\t\t: this.options.countSelectedText;\n\t\t\t\t\ttitle = tr8nText\n\t\t\t\t\t\t.replace('{0}', selectedItems.length.toString())\n\t\t\t\t\t\t.replace('{1}', totalCount.toString());\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (this.options.title == undefined) {\n\t\t\t\tthis.options.title = this.$element.attr('title');\n\t\t\t}\n\n\t\t\tif (this.options.selectedTextFormat == 'static') {\n\t\t\t\ttitle = this.options.title;\n\t\t\t}\n\n\t\t\t//If we dont have a title, then use the default, or if nothing is set at all, use the not selected text\n\t\t\tif (!title) {\n\t\t\t\ttitle =\n\t\t\t\t\ttypeof this.options.title !== 'undefined'\n\t\t\t\t\t\t? this.options.title\n\t\t\t\t\t\t: this.options.noneSelectedText;\n\t\t\t}\n\n\t\t\t//strip all HTML tags and trim the result, then unescape any escaped tags\n\t\t\tthis.$button.attr(\n\t\t\t\t'title',\n\t\t\t\thtmlUnescape($.trim(title.replace(/<[^>]*>?/g, ''))),\n\t\t\t);\n\t\t\tthis.$button.children('.filter-option').html(title);\n\n\t\t\tthis.$element.trigger('rendered.bs.select');\n\t\t},\n\n\t\t/**\n\t\t * @param [style]\n\t\t * @param [status]\n\t\t */\n\t\tsetStyle: function (style, status) {\n\t\t\tif (this.$element.attr('class')) {\n\t\t\t\tthis.$newElement.addClass(\n\t\t\t\t\tthis.$element\n\t\t\t\t\t\t.attr('class')\n\t\t\t\t\t\t.replace(\n\t\t\t\t\t\t\t/selectpicker|mobile-device|bs-select-hidden|validate\\[.*\\]/gi,\n\t\t\t\t\t\t\t'',\n\t\t\t\t\t\t),\n\t\t\t\t);\n\t\t\t}\n\n\t\t\tvar buttonClass = style ? style : this.options.style;\n\n\t\t\tif (status == 'add') {\n\t\t\t\tthis.$button.addClass(buttonClass);\n\t\t\t} else if (status == 'remove') {\n\t\t\t\tthis.$button.removeClass(buttonClass);\n\t\t\t} else {\n\t\t\t\tthis.$button.removeClass(this.options.style);\n\t\t\t\tthis.$button.addClass(buttonClass);\n\t\t\t}\n\t\t},\n\n\t\tliHeight: function (refresh) {\n\t\t\tif (!refresh && (this.options.size === false || this.sizeInfo)) return;\n\n\t\t\tvar newElement = document.createElement('div'),\n\t\t\t\tmenu = document.createElement('div'),\n\t\t\t\tmenuInner = document.createElement('ul'),\n\t\t\t\tdivider = document.createElement('li'),\n\t\t\t\tli = document.createElement('li'),\n\t\t\t\ta = document.createElement('a'),\n\t\t\t\ttext = document.createElement('span'),\n\t\t\t\theader =\n\t\t\t\t\tthis.options.header && this.$menu.find('.popover-title').length > 0\n\t\t\t\t\t\t? this.$menu.find('.popover-title')[0].cloneNode(true)\n\t\t\t\t\t\t: null,\n\t\t\t\tsearch = this.options.liveSearch ? document.createElement('div') : null,\n\t\t\t\tactions =\n\t\t\t\t\tthis.options.actionsBox &&\n\t\t\t\t\tthis.multiple &&\n\t\t\t\t\tthis.$menu.find('.bs-actionsbox').length > 0\n\t\t\t\t\t\t? this.$menu.find('.bs-actionsbox')[0].cloneNode(true)\n\t\t\t\t\t\t: null,\n\t\t\t\tdoneButton =\n\t\t\t\t\tthis.options.doneButton &&\n\t\t\t\t\tthis.multiple &&\n\t\t\t\t\tthis.$menu.find('.bs-donebutton').length > 0\n\t\t\t\t\t\t? this.$menu.find('.bs-donebutton')[0].cloneNode(true)\n\t\t\t\t\t\t: null;\n\n\t\t\ttext.className = 'text';\n\t\t\tnewElement.className = this.$menu[0].parentNode.className + ' open';\n\t\t\tmenu.className = 'dropdown-menu open';\n\t\t\tmenuInner.className = 'dropdown-menu inner';\n\t\t\tdivider.className = 'divider';\n\n\t\t\ttext.appendChild(document.createTextNode('Inner text'));\n\t\t\ta.appendChild(text);\n\t\t\tli.appendChild(a);\n\t\t\tmenuInner.appendChild(li);\n\t\t\tmenuInner.appendChild(divider);\n\t\t\tif (header) menu.appendChild(header);\n\t\t\tif (search) {\n\t\t\t\tvar input = document.createElement('input');\n\t\t\t\tsearch.className = 'bs-searchbox';\n\t\t\t\tinput.className = 'form-control';\n\t\t\t\tsearch.appendChild(input);\n\t\t\t\tmenu.appendChild(search);\n\t\t\t}\n\t\t\tif (actions) menu.appendChild(actions);\n\t\t\tmenu.appendChild(menuInner);\n\t\t\tif (doneButton) menu.appendChild(doneButton);\n\t\t\tnewElement.appendChild(menu);\n\n\t\t\tdocument.body.appendChild(newElement);\n\n\t\t\tvar liHeight = a.offsetHeight,\n\t\t\t\theaderHeight = header ? header.offsetHeight : 0,\n\t\t\t\tsearchHeight = search ? search.offsetHeight : 0,\n\t\t\t\tactionsHeight = actions ? actions.offsetHeight : 0,\n\t\t\t\tdoneButtonHeight = doneButton ? doneButton.offsetHeight : 0,\n\t\t\t\tdividerHeight = $(divider).outerHeight(true),\n\t\t\t\t// fall back to jQuery if getComputedStyle is not supported\n\t\t\t\tmenuStyle =\n\t\t\t\t\ttypeof getComputedStyle === 'function'\n\t\t\t\t\t\t? getComputedStyle(menu)\n\t\t\t\t\t\t: false,\n\t\t\t\t$menu = menuStyle ? null : $(menu),\n\t\t\t\tmenuPadding = {\n\t\t\t\t\tvert:\n\t\t\t\t\t\tparseInt(\n\t\t\t\t\t\t\tmenuStyle ? menuStyle.paddingTop : $menu.css('paddingTop'),\n\t\t\t\t\t\t) +\n\t\t\t\t\t\tparseInt(\n\t\t\t\t\t\t\tmenuStyle ? menuStyle.paddingBottom : $menu.css('paddingBottom'),\n\t\t\t\t\t\t) +\n\t\t\t\t\t\tparseInt(\n\t\t\t\t\t\t\tmenuStyle\n\t\t\t\t\t\t\t\t? menuStyle.borderTopWidth\n\t\t\t\t\t\t\t\t: $menu.css('borderTopWidth'),\n\t\t\t\t\t\t) +\n\t\t\t\t\t\tparseInt(\n\t\t\t\t\t\t\tmenuStyle\n\t\t\t\t\t\t\t\t? menuStyle.borderBottomWidth\n\t\t\t\t\t\t\t\t: $menu.css('borderBottomWidth'),\n\t\t\t\t\t\t),\n\t\t\t\t\thoriz:\n\t\t\t\t\t\tparseInt(\n\t\t\t\t\t\t\tmenuStyle ? menuStyle.paddingLeft : $menu.css('paddingLeft'),\n\t\t\t\t\t\t) +\n\t\t\t\t\t\tparseInt(\n\t\t\t\t\t\t\tmenuStyle ? menuStyle.paddingRight : $menu.css('paddingRight'),\n\t\t\t\t\t\t) +\n\t\t\t\t\t\tparseInt(\n\t\t\t\t\t\t\tmenuStyle\n\t\t\t\t\t\t\t\t? menuStyle.borderLeftWidth\n\t\t\t\t\t\t\t\t: $menu.css('borderLeftWidth'),\n\t\t\t\t\t\t) +\n\t\t\t\t\t\tparseInt(\n\t\t\t\t\t\t\tmenuStyle\n\t\t\t\t\t\t\t\t? menuStyle.borderRightWidth\n\t\t\t\t\t\t\t\t: $menu.css('borderRightWidth'),\n\t\t\t\t\t\t),\n\t\t\t\t},\n\t\t\t\tmenuExtras = {\n\t\t\t\t\tvert:\n\t\t\t\t\t\tmenuPadding.vert +\n\t\t\t\t\t\tparseInt(menuStyle ? menuStyle.marginTop : $menu.css('marginTop')) +\n\t\t\t\t\t\tparseInt(\n\t\t\t\t\t\t\tmenuStyle ? menuStyle.marginBottom : $menu.css('marginBottom'),\n\t\t\t\t\t\t) +\n\t\t\t\t\t\t2,\n\t\t\t\t\thoriz:\n\t\t\t\t\t\tmenuPadding.horiz +\n\t\t\t\t\t\tparseInt(\n\t\t\t\t\t\t\tmenuStyle ? menuStyle.marginLeft : $menu.css('marginLeft'),\n\t\t\t\t\t\t) +\n\t\t\t\t\t\tparseInt(\n\t\t\t\t\t\t\tmenuStyle ? menuStyle.marginRight : $menu.css('marginRight'),\n\t\t\t\t\t\t) +\n\t\t\t\t\t\t2,\n\t\t\t\t};\n\n\t\t\tdocument.body.removeChild(newElement);\n\n\t\t\tthis.sizeInfo = {\n\t\t\t\tliHeight: liHeight,\n\t\t\t\theaderHeight: headerHeight,\n\t\t\t\tsearchHeight: searchHeight,\n\t\t\t\tactionsHeight: actionsHeight,\n\t\t\t\tdoneButtonHeight: doneButtonHeight,\n\t\t\t\tdividerHeight: dividerHeight,\n\t\t\t\tmenuPadding: menuPadding,\n\t\t\t\tmenuExtras: menuExtras,\n\t\t\t};\n\t\t},\n\n\t\tsetSize: function () {\n\t\t\tthis.findLis();\n\t\t\tthis.liHeight();\n\n\t\t\tif (this.options.header) this.$menu.css('padding-top', 0);\n\t\t\tif (this.options.size === false) return;\n\n\t\t\tvar that = this,\n\t\t\t\t$menu = this.$menu,\n\t\t\t\t$menuInner = this.$menuInner,\n\t\t\t\t$window = $(window),\n\t\t\t\tselectHeight = this.$newElement[0].offsetHeight,\n\t\t\t\tselectWidth = this.$newElement[0].offsetWidth,\n\t\t\t\tliHeight = this.sizeInfo['liHeight'],\n\t\t\t\theaderHeight = this.sizeInfo['headerHeight'],\n\t\t\t\tsearchHeight = this.sizeInfo['searchHeight'],\n\t\t\t\tactionsHeight = this.sizeInfo['actionsHeight'],\n\t\t\t\tdoneButtonHeight = this.sizeInfo['doneButtonHeight'],\n\t\t\t\tdivHeight = this.sizeInfo['dividerHeight'],\n\t\t\t\tmenuPadding = this.sizeInfo['menuPadding'],\n\t\t\t\tmenuExtras = this.sizeInfo['menuExtras'],\n\t\t\t\tnotDisabled = this.options.hideDisabled ? '.disabled' : '',\n\t\t\t\tmenuHeight,\n\t\t\t\tmenuWidth,\n\t\t\t\tgetHeight,\n\t\t\t\tgetWidth,\n\t\t\t\tselectOffsetTop,\n\t\t\t\tselectOffsetBot,\n\t\t\t\tselectOffsetLeft,\n\t\t\t\tselectOffsetRight,\n\t\t\t\tgetPos = function () {\n\t\t\t\t\tvar pos = that.$newElement.offset(),\n\t\t\t\t\t\t$container = $(that.options.container),\n\t\t\t\t\t\tcontainerPos;\n\n\t\t\t\t\tif (that.options.container && !$container.is('body')) {\n\t\t\t\t\t\tcontainerPos = $container.offset();\n\t\t\t\t\t\tcontainerPos.top += parseInt($container.css('borderTopWidth'));\n\t\t\t\t\t\tcontainerPos.left += parseInt($container.css('borderLeftWidth'));\n\t\t\t\t\t} else {\n\t\t\t\t\t\tcontainerPos = {top: 0, left: 0};\n\t\t\t\t\t}\n\n\t\t\t\t\tvar winPad = that.options.windowPadding;\n\t\t\t\t\tselectOffsetTop = pos.top - containerPos.top - $window.scrollTop();\n\t\t\t\t\tselectOffsetBot =\n\t\t\t\t\t\t$window.height() -\n\t\t\t\t\t\tselectOffsetTop -\n\t\t\t\t\t\tselectHeight -\n\t\t\t\t\t\tcontainerPos.top -\n\t\t\t\t\t\twinPad[2];\n\t\t\t\t\tselectOffsetLeft =\n\t\t\t\t\t\tpos.left - containerPos.left - $window.scrollLeft();\n\t\t\t\t\tselectOffsetRight =\n\t\t\t\t\t\t$window.width() -\n\t\t\t\t\t\tselectOffsetLeft -\n\t\t\t\t\t\tselectWidth -\n\t\t\t\t\t\tcontainerPos.left -\n\t\t\t\t\t\twinPad[1];\n\t\t\t\t\tselectOffsetTop -= winPad[0];\n\t\t\t\t\tselectOffsetLeft -= winPad[3];\n\t\t\t\t};\n\n\t\t\tgetPos();\n\n\t\t\tif (this.options.size === 'auto') {\n\t\t\t\tvar getSize = function () {\n\t\t\t\t\tvar minHeight,\n\t\t\t\t\t\thasClass = function (className, include) {\n\t\t\t\t\t\t\treturn function (element) {\n\t\t\t\t\t\t\t\tif (include) {\n\t\t\t\t\t\t\t\t\treturn element.classList\n\t\t\t\t\t\t\t\t\t\t? element.classList.contains(className)\n\t\t\t\t\t\t\t\t\t\t: $(element).hasClass(className);\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\treturn !(element.classList\n\t\t\t\t\t\t\t\t\t\t? element.classList.contains(className)\n\t\t\t\t\t\t\t\t\t\t: $(element).hasClass(className));\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t};\n\t\t\t\t\t\t},\n\t\t\t\t\t\tlis = that.$menuInner[0].getElementsByTagName('li'),\n\t\t\t\t\t\tlisVisible = Array.prototype.filter\n\t\t\t\t\t\t\t? Array.prototype.filter.call(lis, hasClass('hidden', false))\n\t\t\t\t\t\t\t: that.$lis.not('.hidden'),\n\t\t\t\t\t\toptGroup = Array.prototype.filter\n\t\t\t\t\t\t\t? Array.prototype.filter.call(\n\t\t\t\t\t\t\t\t\tlisVisible,\n\t\t\t\t\t\t\t\t\thasClass('dropdown-header', true),\n\t\t\t\t\t\t\t )\n\t\t\t\t\t\t\t: lisVisible.filter('.dropdown-header');\n\n\t\t\t\t\tgetPos();\n\t\t\t\t\tmenuHeight = selectOffsetBot - menuExtras.vert;\n\t\t\t\t\tmenuWidth = selectOffsetRight - menuExtras.horiz;\n\n\t\t\t\t\tif (that.options.container) {\n\t\t\t\t\t\tif (!$menu.data('height')) $menu.data('height', $menu.height());\n\t\t\t\t\t\tgetHeight = $menu.data('height');\n\n\t\t\t\t\t\tif (!$menu.data('width')) $menu.data('width', $menu.width());\n\t\t\t\t\t\tgetWidth = $menu.data('width');\n\t\t\t\t\t} else {\n\t\t\t\t\t\tgetHeight = $menu.height();\n\t\t\t\t\t\tgetWidth = $menu.width();\n\t\t\t\t\t}\n\n\t\t\t\t\tif (that.options.dropupAuto) {\n\t\t\t\t\t\tthat.$newElement.toggleClass(\n\t\t\t\t\t\t\t'dropup',\n\t\t\t\t\t\t\tselectOffsetTop > selectOffsetBot &&\n\t\t\t\t\t\t\t\tmenuHeight - menuExtras.vert < getHeight,\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\n\t\t\t\t\tif (that.$newElement.hasClass('dropup')) {\n\t\t\t\t\t\tmenuHeight = selectOffsetTop - menuExtras.vert;\n\t\t\t\t\t}\n\n\t\t\t\t\tif (that.options.dropdownAlignRight === 'auto') {\n\t\t\t\t\t\t$menu.toggleClass(\n\t\t\t\t\t\t\t'dropdown-menu-right',\n\t\t\t\t\t\t\tselectOffsetLeft > selectOffsetRight &&\n\t\t\t\t\t\t\t\tmenuWidth - menuExtras.horiz < getWidth - selectWidth,\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\n\t\t\t\t\tif (lisVisible.length + optGroup.length > 3) {\n\t\t\t\t\t\tminHeight = liHeight * 3 + menuExtras.vert - 2;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tminHeight = 0;\n\t\t\t\t\t}\n\n\t\t\t\t\t$menu.css({\n\t\t\t\t\t\t'max-height': menuHeight + 'px',\n\t\t\t\t\t\toverflow: 'hidden',\n\t\t\t\t\t\t'min-height':\n\t\t\t\t\t\t\tminHeight +\n\t\t\t\t\t\t\theaderHeight +\n\t\t\t\t\t\t\tsearchHeight +\n\t\t\t\t\t\t\tactionsHeight +\n\t\t\t\t\t\t\tdoneButtonHeight +\n\t\t\t\t\t\t\t'px',\n\t\t\t\t\t});\n\t\t\t\t\t$menuInner.css({\n\t\t\t\t\t\t'max-height':\n\t\t\t\t\t\t\tmenuHeight -\n\t\t\t\t\t\t\theaderHeight -\n\t\t\t\t\t\t\tsearchHeight -\n\t\t\t\t\t\t\tactionsHeight -\n\t\t\t\t\t\t\tdoneButtonHeight -\n\t\t\t\t\t\t\tmenuPadding.vert +\n\t\t\t\t\t\t\t'px',\n\t\t\t\t\t\t'overflow-y': 'auto',\n\t\t\t\t\t\t'min-height': Math.max(minHeight - menuPadding.vert, 0) + 'px',\n\t\t\t\t\t});\n\t\t\t\t};\n\t\t\t\tgetSize();\n\t\t\t\tthis.$searchbox\n\t\t\t\t\t.off('input.getSize propertychange.getSize')\n\t\t\t\t\t.on('input.getSize propertychange.getSize', getSize);\n\t\t\t\t$window\n\t\t\t\t\t.off('resize.getSize scroll.getSize')\n\t\t\t\t\t.on('resize.getSize scroll.getSize', getSize);\n\t\t\t} else if (\n\t\t\t\tthis.options.size &&\n\t\t\t\tthis.options.size != 'auto' &&\n\t\t\t\tthis.$lis.not(notDisabled).length > this.options.size\n\t\t\t) {\n\t\t\t\tvar optIndex = this.$lis\n\t\t\t\t\t\t.not('.divider')\n\t\t\t\t\t\t.not(notDisabled)\n\t\t\t\t\t\t.children()\n\t\t\t\t\t\t.slice(0, this.options.size)\n\t\t\t\t\t\t.last()\n\t\t\t\t\t\t.parent()\n\t\t\t\t\t\t.index(),\n\t\t\t\t\tdivLength = this.$lis.slice(0, optIndex + 1).filter('.divider')\n\t\t\t\t\t\t.length;\n\t\t\t\tmenuHeight =\n\t\t\t\t\tliHeight * this.options.size +\n\t\t\t\t\tdivLength * divHeight +\n\t\t\t\t\tmenuPadding.vert;\n\n\t\t\t\tif (that.options.container) {\n\t\t\t\t\tif (!$menu.data('height')) $menu.data('height', $menu.height());\n\t\t\t\t\tgetHeight = $menu.data('height');\n\t\t\t\t} else {\n\t\t\t\t\tgetHeight = $menu.height();\n\t\t\t\t}\n\n\t\t\t\tif (that.options.dropupAuto) {\n\t\t\t\t\t//noinspection JSUnusedAssignment\n\t\t\t\t\tthis.$newElement.toggleClass(\n\t\t\t\t\t\t'dropup',\n\t\t\t\t\t\tselectOffsetTop > selectOffsetBot &&\n\t\t\t\t\t\t\tmenuHeight - menuExtras.vert < getHeight,\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t\t$menu.css({\n\t\t\t\t\t'max-height':\n\t\t\t\t\t\tmenuHeight +\n\t\t\t\t\t\theaderHeight +\n\t\t\t\t\t\tsearchHeight +\n\t\t\t\t\t\tactionsHeight +\n\t\t\t\t\t\tdoneButtonHeight +\n\t\t\t\t\t\t'px',\n\t\t\t\t\toverflow: 'hidden',\n\t\t\t\t\t'min-height': '',\n\t\t\t\t});\n\t\t\t\t$menuInner.css({\n\t\t\t\t\t'max-height': menuHeight - menuPadding.vert + 'px',\n\t\t\t\t\t'overflow-y': 'auto',\n\t\t\t\t\t'min-height': '',\n\t\t\t\t});\n\t\t\t}\n\t\t},\n\n\t\tsetWidth: function () {\n\t\t\tif (this.options.width === 'auto') {\n\t\t\t\tthis.$menu.css('min-width', '0');\n\n\t\t\t\t// Get correct width if element is hidden\n\t\t\t\tvar $selectClone = this.$menu.parent().clone().appendTo('body'),\n\t\t\t\t\t$selectClone2 = this.options.container\n\t\t\t\t\t\t? this.$newElement.clone().appendTo('body')\n\t\t\t\t\t\t: $selectClone,\n\t\t\t\t\tulWidth = $selectClone.children('.dropdown-menu').outerWidth(),\n\t\t\t\t\tbtnWidth = $selectClone2\n\t\t\t\t\t\t.css('width', 'auto')\n\t\t\t\t\t\t.children('button')\n\t\t\t\t\t\t.outerWidth();\n\n\t\t\t\t$selectClone.remove();\n\t\t\t\t$selectClone2.remove();\n\n\t\t\t\t// Set width to whatever's larger, button title or longest option\n\t\t\t\tthis.$newElement.css('width', Math.max(ulWidth, btnWidth) + 'px');\n\t\t\t} else if (this.options.width === 'fit') {\n\t\t\t\t// Remove inline min-width so width can be changed from 'auto'\n\t\t\t\tthis.$menu.css('min-width', '');\n\t\t\t\tthis.$newElement.css('width', '').addClass('fit-width');\n\t\t\t} else if (this.options.width) {\n\t\t\t\t// Remove inline min-width so width can be changed from 'auto'\n\t\t\t\tthis.$menu.css('min-width', '');\n\t\t\t\tthis.$newElement.css('width', this.options.width);\n\t\t\t} else {\n\t\t\t\t// Remove inline min-width/width so width can be changed\n\t\t\t\tthis.$menu.css('min-width', '');\n\t\t\t\tthis.$newElement.css('width', '');\n\t\t\t}\n\t\t\t// Remove fit-width class if width is changed programmatically\n\t\t\tif (\n\t\t\t\tthis.$newElement.hasClass('fit-width') &&\n\t\t\t\tthis.options.width !== 'fit'\n\t\t\t) {\n\t\t\t\tthis.$newElement.removeClass('fit-width');\n\t\t\t}\n\t\t},\n\n\t\tselectPosition: function () {\n\t\t\tthis.$bsContainer = $('
    ');\n\n\t\t\tvar that = this,\n\t\t\t\t$container = $(this.options.container),\n\t\t\t\tpos,\n\t\t\t\tcontainerPos,\n\t\t\t\tactualHeight,\n\t\t\t\tgetPlacement = function ($element) {\n\t\t\t\t\tthat.$bsContainer\n\t\t\t\t\t\t.addClass(\n\t\t\t\t\t\t\t$element.attr('class').replace(/form-control|fit-width/gi, ''),\n\t\t\t\t\t\t)\n\t\t\t\t\t\t.toggleClass('dropup', $element.hasClass('dropup'));\n\t\t\t\t\tpos = $element.offset();\n\n\t\t\t\t\tif (!$container.is('body')) {\n\t\t\t\t\t\tcontainerPos = $container.offset();\n\t\t\t\t\t\tcontainerPos.top +=\n\t\t\t\t\t\t\tparseInt($container.css('borderTopWidth')) -\n\t\t\t\t\t\t\t$container.scrollTop();\n\t\t\t\t\t\tcontainerPos.left +=\n\t\t\t\t\t\t\tparseInt($container.css('borderLeftWidth')) -\n\t\t\t\t\t\t\t$container.scrollLeft();\n\t\t\t\t\t} else {\n\t\t\t\t\t\tcontainerPos = {top: 0, left: 0};\n\t\t\t\t\t}\n\n\t\t\t\t\tactualHeight = $element.hasClass('dropup')\n\t\t\t\t\t\t? 0\n\t\t\t\t\t\t: $element[0].offsetHeight;\n\n\t\t\t\t\tthat.$bsContainer.css({\n\t\t\t\t\t\ttop: pos.top - containerPos.top + actualHeight,\n\t\t\t\t\t\tleft: pos.left - containerPos.left,\n\t\t\t\t\t\twidth: $element[0].offsetWidth,\n\t\t\t\t\t});\n\t\t\t\t};\n\n\t\t\tthis.$button.on('click', function () {\n\t\t\t\tvar $this = $(this);\n\n\t\t\t\tif (that.isDisabled()) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tgetPlacement(that.$newElement);\n\n\t\t\t\tthat.$bsContainer\n\t\t\t\t\t.appendTo(that.options.container)\n\t\t\t\t\t.toggleClass('open', !$this.hasClass('open'))\n\t\t\t\t\t.append(that.$menu);\n\t\t\t});\n\n\t\t\t$(window).on('resize scroll', function () {\n\t\t\t\tgetPlacement(that.$newElement);\n\t\t\t});\n\n\t\t\tthis.$element.on('hide.bs.select', function () {\n\t\t\t\tthat.$menu.data('height', that.$menu.height());\n\t\t\t\tthat.$bsContainer.detach();\n\t\t\t});\n\t\t},\n\n\t\t/**\n\t\t * @param {number} index - the index of the option that is being changed\n\t\t * @param {boolean} selected - true if the option is being selected, false if being deselected\n\t\t * @param {JQuery} $lis - the 'li' element that is being modified\n\t\t */\n\t\tsetSelected: function (index, selected, $lis) {\n\t\t\tif (!$lis) {\n\t\t\t\tthis.togglePlaceholder(); // check if setSelected is being called by changing the value of the select\n\t\t\t\t$lis = this.findLis().eq(this.liObj[index]);\n\t\t\t}\n\n\t\t\t$lis\n\t\t\t\t.toggleClass('selected', selected)\n\t\t\t\t.find('a')\n\t\t\t\t.attr('aria-selected', selected);\n\t\t},\n\n\t\t/**\n\t\t * @param {number} index - the index of the option that is being disabled\n\t\t * @param {boolean} disabled - true if the option is being disabled, false if being enabled\n\t\t * @param {JQuery} $lis - the 'li' element that is being modified\n\t\t */\n\t\tsetDisabled: function (index, disabled, $lis) {\n\t\t\tif (!$lis) {\n\t\t\t\t$lis = this.findLis().eq(this.liObj[index]);\n\t\t\t}\n\n\t\t\tif (disabled) {\n\t\t\t\t$lis\n\t\t\t\t\t.addClass('disabled')\n\t\t\t\t\t.children('a')\n\t\t\t\t\t.attr('href', '#')\n\t\t\t\t\t.attr('tabindex', -1)\n\t\t\t\t\t.attr('aria-disabled', true);\n\t\t\t} else {\n\t\t\t\t$lis\n\t\t\t\t\t.removeClass('disabled')\n\t\t\t\t\t.children('a')\n\t\t\t\t\t.removeAttr('href')\n\t\t\t\t\t.attr('tabindex', 0)\n\t\t\t\t\t.attr('aria-disabled', false);\n\t\t\t}\n\t\t},\n\n\t\tisDisabled: function () {\n\t\t\treturn this.$element[0].disabled;\n\t\t},\n\n\t\tcheckDisabled: function () {\n\t\t\tvar that = this;\n\n\t\t\tif (this.isDisabled()) {\n\t\t\t\tthis.$newElement.addClass('disabled');\n\t\t\t\tthis.$button\n\t\t\t\t\t.addClass('disabled')\n\t\t\t\t\t.attr('tabindex', -1)\n\t\t\t\t\t.attr('aria-disabled', true);\n\t\t\t} else {\n\t\t\t\tif (this.$button.hasClass('disabled')) {\n\t\t\t\t\tthis.$newElement.removeClass('disabled');\n\t\t\t\t\tthis.$button.removeClass('disabled').attr('aria-disabled', false);\n\t\t\t\t}\n\n\t\t\t\tif (\n\t\t\t\t\tthis.$button.attr('tabindex') == -1 &&\n\t\t\t\t\t!this.$element.data('tabindex')\n\t\t\t\t) {\n\t\t\t\t\tthis.$button.removeAttr('tabindex');\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tthis.$button.click(function () {\n\t\t\t\treturn !that.isDisabled();\n\t\t\t});\n\t\t},\n\n\t\ttogglePlaceholder: function () {\n\t\t\tvar value = this.$element.val();\n\t\t\tthis.$button.toggleClass(\n\t\t\t\t'bs-placeholder',\n\t\t\t\tvalue === null ||\n\t\t\t\t\tvalue === '' ||\n\t\t\t\t\t(value.constructor === Array && value.length === 0),\n\t\t\t);\n\t\t},\n\n\t\ttabIndex: function () {\n\t\t\tif (\n\t\t\t\tthis.$element.data('tabindex') !== this.$element.attr('tabindex') &&\n\t\t\t\tthis.$element.attr('tabindex') !== -98 &&\n\t\t\t\tthis.$element.attr('tabindex') !== '-98'\n\t\t\t) {\n\t\t\t\tthis.$element.data('tabindex', this.$element.attr('tabindex'));\n\t\t\t\tthis.$button.attr('tabindex', this.$element.data('tabindex'));\n\t\t\t}\n\n\t\t\tthis.$element.attr('tabindex', -98);\n\t\t},\n\n\t\tclickListener: function () {\n\t\t\tvar that = this,\n\t\t\t\t$document = $(document);\n\n\t\t\t$document.data('spaceSelect', false);\n\n\t\t\tthis.$button.on('keyup', function (e) {\n\t\t\t\tif (\n\t\t\t\t\t/(32)/.test(e.keyCode.toString(10)) &&\n\t\t\t\t\t$document.data('spaceSelect')\n\t\t\t\t) {\n\t\t\t\t\te.preventDefault();\n\t\t\t\t\t$document.data('spaceSelect', false);\n\t\t\t\t}\n\t\t\t});\n\n\t\t\tthis.$button.on('click', function () {\n\t\t\t\tthat.setSize();\n\t\t\t});\n\n\t\t\tthis.$element.on('shown.bs.select', function () {\n\t\t\t\tif (!that.options.liveSearch && !that.multiple) {\n\t\t\t\t\tthat.$menuInner.find('.selected a').focus();\n\t\t\t\t} else if (!that.multiple) {\n\t\t\t\t\tvar selectedIndex = that.liObj[that.$element[0].selectedIndex];\n\n\t\t\t\t\tif (typeof selectedIndex !== 'number' || that.options.size === false)\n\t\t\t\t\t\treturn;\n\n\t\t\t\t\t// scroll to selected option\n\t\t\t\t\tvar offset =\n\t\t\t\t\t\tthat.$lis.eq(selectedIndex)[0].offsetTop -\n\t\t\t\t\t\tthat.$menuInner[0].offsetTop;\n\t\t\t\t\toffset =\n\t\t\t\t\t\toffset -\n\t\t\t\t\t\tthat.$menuInner[0].offsetHeight / 2 +\n\t\t\t\t\t\tthat.sizeInfo.liHeight / 2;\n\t\t\t\t\tthat.$menuInner[0].scrollTop = offset;\n\t\t\t\t}\n\t\t\t});\n\n\t\t\tthis.$menuInner.on('click', 'li a', function (e) {\n\t\t\t\tvar $this = $(this),\n\t\t\t\t\tclickedIndex = $this.parent().data('originalIndex'),\n\t\t\t\t\tprevValue = that.$element.val(),\n\t\t\t\t\tprevIndex = that.$element.prop('selectedIndex'),\n\t\t\t\t\ttriggerChange = true;\n\n\t\t\t\t// Don't close on multi choice menu\n\t\t\t\tif (that.multiple && that.options.maxOptions !== 1) {\n\t\t\t\t\te.stopPropagation();\n\t\t\t\t}\n\n\t\t\t\te.preventDefault();\n\n\t\t\t\t//Don't run if we have been disabled\n\t\t\t\tif (!that.isDisabled() && !$this.parent().hasClass('disabled')) {\n\t\t\t\t\tvar $options = that.$element.find('option'),\n\t\t\t\t\t\t$option = $options.eq(clickedIndex),\n\t\t\t\t\t\tstate = $option.prop('selected'),\n\t\t\t\t\t\t$optgroup = $option.parent('optgroup'),\n\t\t\t\t\t\tmaxOptions = that.options.maxOptions,\n\t\t\t\t\t\tmaxOptionsGrp = $optgroup.data('maxOptions') || false;\n\n\t\t\t\t\tif (!that.multiple) {\n\t\t\t\t\t\t// Deselect all others if not multi select box\n\t\t\t\t\t\t$options.prop('selected', false);\n\t\t\t\t\t\t$option.prop('selected', true);\n\t\t\t\t\t\tthat.$menuInner\n\t\t\t\t\t\t\t.find('.selected')\n\t\t\t\t\t\t\t.removeClass('selected')\n\t\t\t\t\t\t\t.find('a')\n\t\t\t\t\t\t\t.attr('aria-selected', false);\n\t\t\t\t\t\tthat.setSelected(clickedIndex, true);\n\t\t\t\t\t} else {\n\t\t\t\t\t\t// Toggle the one we have chosen if we are multi select.\n\t\t\t\t\t\t$option.prop('selected', !state);\n\t\t\t\t\t\tthat.setSelected(clickedIndex, !state);\n\t\t\t\t\t\t$this.blur();\n\n\t\t\t\t\t\tif (maxOptions !== false || maxOptionsGrp !== false) {\n\t\t\t\t\t\t\tvar maxReached = maxOptions < $options.filter(':selected').length,\n\t\t\t\t\t\t\t\tmaxReachedGrp =\n\t\t\t\t\t\t\t\t\tmaxOptionsGrp < $optgroup.find('option:selected').length;\n\n\t\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t\t(maxOptions && maxReached) ||\n\t\t\t\t\t\t\t\t(maxOptionsGrp && maxReachedGrp)\n\t\t\t\t\t\t\t) {\n\t\t\t\t\t\t\t\tif (maxOptions && maxOptions == 1) {\n\t\t\t\t\t\t\t\t\t$options.prop('selected', false);\n\t\t\t\t\t\t\t\t\t$option.prop('selected', true);\n\t\t\t\t\t\t\t\t\tthat.$menuInner.find('.selected').removeClass('selected');\n\t\t\t\t\t\t\t\t\tthat.setSelected(clickedIndex, true);\n\t\t\t\t\t\t\t\t} else if (maxOptionsGrp && maxOptionsGrp == 1) {\n\t\t\t\t\t\t\t\t\t$optgroup.find('option:selected').prop('selected', false);\n\t\t\t\t\t\t\t\t\t$option.prop('selected', true);\n\t\t\t\t\t\t\t\t\tvar optgroupID = $this.parent().data('optgroup');\n\t\t\t\t\t\t\t\t\tthat.$menuInner\n\t\t\t\t\t\t\t\t\t\t.find('[data-optgroup=\"' + optgroupID + '\"]')\n\t\t\t\t\t\t\t\t\t\t.removeClass('selected');\n\t\t\t\t\t\t\t\t\tthat.setSelected(clickedIndex, true);\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\tvar maxOptionsText =\n\t\t\t\t\t\t\t\t\t\t\ttypeof that.options.maxOptionsText === 'string'\n\t\t\t\t\t\t\t\t\t\t\t\t? [\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tthat.options.maxOptionsText,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tthat.options.maxOptionsText,\n\t\t\t\t\t\t\t\t\t\t\t\t ]\n\t\t\t\t\t\t\t\t\t\t\t\t: that.options.maxOptionsText,\n\t\t\t\t\t\t\t\t\t\tmaxOptionsArr =\n\t\t\t\t\t\t\t\t\t\t\ttypeof maxOptionsText === 'function'\n\t\t\t\t\t\t\t\t\t\t\t\t? maxOptionsText(maxOptions, maxOptionsGrp)\n\t\t\t\t\t\t\t\t\t\t\t\t: maxOptionsText,\n\t\t\t\t\t\t\t\t\t\tmaxTxt = maxOptionsArr[0].replace('{n}', maxOptions),\n\t\t\t\t\t\t\t\t\t\tmaxTxtGrp = maxOptionsArr[1].replace('{n}', maxOptionsGrp),\n\t\t\t\t\t\t\t\t\t\t$notify = $('
    ');\n\t\t\t\t\t\t\t\t\t// If {var} is set in array, replace it\n\t\t\t\t\t\t\t\t\t/** @deprecated */\n\t\t\t\t\t\t\t\t\tif (maxOptionsArr[2]) {\n\t\t\t\t\t\t\t\t\t\tmaxTxt = maxTxt.replace(\n\t\t\t\t\t\t\t\t\t\t\t'{var}',\n\t\t\t\t\t\t\t\t\t\t\tmaxOptionsArr[2][maxOptions > 1 ? 0 : 1],\n\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\tmaxTxtGrp = maxTxtGrp.replace(\n\t\t\t\t\t\t\t\t\t\t\t'{var}',\n\t\t\t\t\t\t\t\t\t\t\tmaxOptionsArr[2][maxOptionsGrp > 1 ? 0 : 1],\n\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t$option.prop('selected', false);\n\n\t\t\t\t\t\t\t\t\tthat.$menu.append($notify);\n\n\t\t\t\t\t\t\t\t\tif (maxOptions && maxReached) {\n\t\t\t\t\t\t\t\t\t\t$notify.append($('
    ' + maxTxt + '
    '));\n\t\t\t\t\t\t\t\t\t\ttriggerChange = false;\n\t\t\t\t\t\t\t\t\t\tthat.$element.trigger('maxReached.bs.select');\n\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\tif (maxOptionsGrp && maxReachedGrp) {\n\t\t\t\t\t\t\t\t\t\t$notify.append($('
    ' + maxTxtGrp + '
    '));\n\t\t\t\t\t\t\t\t\t\ttriggerChange = false;\n\t\t\t\t\t\t\t\t\t\tthat.$element.trigger('maxReachedGrp.bs.select');\n\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\tsetTimeout(function () {\n\t\t\t\t\t\t\t\t\t\tthat.setSelected(clickedIndex, false);\n\t\t\t\t\t\t\t\t\t}, 10);\n\n\t\t\t\t\t\t\t\t\t$notify.delay(750).fadeOut(300, function () {\n\t\t\t\t\t\t\t\t\t\t$(this).remove();\n\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\tif (\n\t\t\t\t\t\t!that.multiple ||\n\t\t\t\t\t\t(that.multiple && that.options.maxOptions === 1)\n\t\t\t\t\t) {\n\t\t\t\t\t\tthat.$button.focus();\n\t\t\t\t\t} else if (that.options.liveSearch) {\n\t\t\t\t\t\tthat.$searchbox.focus();\n\t\t\t\t\t}\n\n\t\t\t\t\t// Trigger select 'change'\n\t\t\t\t\tif (triggerChange) {\n\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t(prevValue != that.$element.val() && that.multiple) ||\n\t\t\t\t\t\t\t(prevIndex != that.$element.prop('selectedIndex') &&\n\t\t\t\t\t\t\t\t!that.multiple)\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\t// $option.prop('selected') is current option state (selected/unselected). state is previous option state.\n\t\t\t\t\t\t\tchanged_arguments = [\n\t\t\t\t\t\t\t\tclickedIndex,\n\t\t\t\t\t\t\t\t$option.prop('selected'),\n\t\t\t\t\t\t\t\tstate,\n\t\t\t\t\t\t\t];\n\t\t\t\t\t\t\tthat.$element.triggerNative('change');\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t});\n\n\t\t\tthis.$menu.on(\n\t\t\t\t'click',\n\t\t\t\t'li.disabled a, .popover-title, .popover-title :not(.close)',\n\t\t\t\tfunction (e) {\n\t\t\t\t\tif (e.currentTarget == this) {\n\t\t\t\t\t\te.preventDefault();\n\t\t\t\t\t\te.stopPropagation();\n\t\t\t\t\t\tif (that.options.liveSearch && !$(e.target).hasClass('close')) {\n\t\t\t\t\t\t\tthat.$searchbox.focus();\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tthat.$button.focus();\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t);\n\n\t\t\tthis.$menuInner.on('click', '.divider, .dropdown-header', function (e) {\n\t\t\t\te.preventDefault();\n\t\t\t\te.stopPropagation();\n\t\t\t\tif (that.options.liveSearch) {\n\t\t\t\t\tthat.$searchbox.focus();\n\t\t\t\t} else {\n\t\t\t\t\tthat.$button.focus();\n\t\t\t\t}\n\t\t\t});\n\n\t\t\tthis.$menu.on('click', '.popover-title .close', function () {\n\t\t\t\tthat.$button.click();\n\t\t\t});\n\n\t\t\tthis.$searchbox.on('click', function (e) {\n\t\t\t\te.stopPropagation();\n\t\t\t});\n\n\t\t\tthis.$menu.on('click', '.actions-btn', function (e) {\n\t\t\t\tif (that.options.liveSearch) {\n\t\t\t\t\tthat.$searchbox.focus();\n\t\t\t\t} else {\n\t\t\t\t\tthat.$button.focus();\n\t\t\t\t}\n\n\t\t\t\te.preventDefault();\n\t\t\t\te.stopPropagation();\n\n\t\t\t\tif ($(this).hasClass('bs-select-all')) {\n\t\t\t\t\tthat.selectAll();\n\t\t\t\t} else {\n\t\t\t\t\tthat.deselectAll();\n\t\t\t\t}\n\t\t\t});\n\n\t\t\tthis.$element.change(function () {\n\t\t\t\tthat.render(false);\n\t\t\t\tthat.$element.trigger('changed.bs.select', changed_arguments);\n\t\t\t\tchanged_arguments = null;\n\t\t\t});\n\t\t},\n\n\t\tliveSearchListener: function () {\n\t\t\tvar that = this,\n\t\t\t\t$no_results = $('
  • ');\n\n\t\t\tthis.$button.on('click.dropdown.data-api', function () {\n\t\t\t\tthat.$menuInner.find('.active').removeClass('active');\n\t\t\t\tif (!!that.$searchbox.val()) {\n\t\t\t\t\tthat.$searchbox.val('');\n\t\t\t\t\tthat.$lis.not('.is-hidden').removeClass('hidden');\n\t\t\t\t\tif (!!$no_results.parent().length) $no_results.remove();\n\t\t\t\t}\n\t\t\t\tif (!that.multiple)\n\t\t\t\t\tthat.$menuInner.find('.selected').addClass('active');\n\t\t\t\tsetTimeout(function () {\n\t\t\t\t\tthat.$searchbox.focus();\n\t\t\t\t}, 10);\n\t\t\t});\n\n\t\t\tthis.$searchbox.on(\n\t\t\t\t'click.dropdown.data-api focus.dropdown.data-api touchend.dropdown.data-api',\n\t\t\t\tfunction (e) {\n\t\t\t\t\te.stopPropagation();\n\t\t\t\t},\n\t\t\t);\n\n\t\t\tthis.$searchbox.on('input propertychange', function () {\n\t\t\t\tthat.$lis.not('.is-hidden').removeClass('hidden');\n\t\t\t\tthat.$lis.filter('.active').removeClass('active');\n\t\t\t\t$no_results.remove();\n\n\t\t\t\tif (that.$searchbox.val()) {\n\t\t\t\t\tvar $searchBase = that.$lis.not(\n\t\t\t\t\t\t\t'.is-hidden, .divider, .dropdown-header',\n\t\t\t\t\t\t),\n\t\t\t\t\t\t$hideItems;\n\t\t\t\t\tif (that.options.liveSearchNormalize) {\n\t\t\t\t\t\t$hideItems = $searchBase.not(\n\t\t\t\t\t\t\t':a' +\n\t\t\t\t\t\t\t\tthat._searchStyle() +\n\t\t\t\t\t\t\t\t'(\"' +\n\t\t\t\t\t\t\t\tnormalizeToBase(that.$searchbox.val()) +\n\t\t\t\t\t\t\t\t'\")',\n\t\t\t\t\t\t);\n\t\t\t\t\t} else {\n\t\t\t\t\t\t$hideItems = $searchBase.not(\n\t\t\t\t\t\t\t':' + that._searchStyle() + '(\"' + that.$searchbox.val() + '\")',\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\n\t\t\t\t\tif ($hideItems.length === $searchBase.length) {\n\t\t\t\t\t\t$no_results.html(\n\t\t\t\t\t\t\tthat.options.noneResultsText.replace(\n\t\t\t\t\t\t\t\t'{0}',\n\t\t\t\t\t\t\t\t'\"' + htmlEscape(that.$searchbox.val()) + '\"',\n\t\t\t\t\t\t\t),\n\t\t\t\t\t\t);\n\t\t\t\t\t\tthat.$menuInner.append($no_results);\n\t\t\t\t\t\tthat.$lis.addClass('hidden');\n\t\t\t\t\t} else {\n\t\t\t\t\t\t$hideItems.addClass('hidden');\n\n\t\t\t\t\t\tvar $lisVisible = that.$lis.not('.hidden'),\n\t\t\t\t\t\t\t$foundDiv;\n\n\t\t\t\t\t\t// hide divider if first or last visible, or if followed by another divider\n\t\t\t\t\t\t$lisVisible.each(function (index) {\n\t\t\t\t\t\t\tvar $this = $(this);\n\n\t\t\t\t\t\t\tif ($this.hasClass('divider')) {\n\t\t\t\t\t\t\t\tif ($foundDiv === undefined) {\n\t\t\t\t\t\t\t\t\t$this.addClass('hidden');\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\tif ($foundDiv) $foundDiv.addClass('hidden');\n\t\t\t\t\t\t\t\t\t$foundDiv = $this;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} else if (\n\t\t\t\t\t\t\t\t$this.hasClass('dropdown-header') &&\n\t\t\t\t\t\t\t\t$lisVisible.eq(index + 1).data('optgroup') !==\n\t\t\t\t\t\t\t\t\t$this.data('optgroup')\n\t\t\t\t\t\t\t) {\n\t\t\t\t\t\t\t\t$this.addClass('hidden');\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t$foundDiv = null;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t});\n\t\t\t\t\t\tif ($foundDiv) $foundDiv.addClass('hidden');\n\n\t\t\t\t\t\t$searchBase.not('.hidden').first().addClass('active');\n\t\t\t\t\t\tthat.$menuInner.scrollTop(0);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t});\n\t\t},\n\n\t\t_searchStyle: function () {\n\t\t\tvar styles = {\n\t\t\t\tbegins: 'ibegins',\n\t\t\t\tstartsWith: 'ibegins',\n\t\t\t};\n\n\t\t\treturn styles[this.options.liveSearchStyle] || 'icontains';\n\t\t},\n\n\t\tval: function (value) {\n\t\t\tif (typeof value !== 'undefined') {\n\t\t\t\tthis.$element.val(value);\n\t\t\t\tthis.render();\n\n\t\t\t\treturn this.$element;\n\t\t\t} else {\n\t\t\t\treturn this.$element.val();\n\t\t\t}\n\t\t},\n\n\t\tchangeAll: function (status) {\n\t\t\tif (!this.multiple) return;\n\t\t\tif (typeof status === 'undefined') status = true;\n\n\t\t\tthis.findLis();\n\n\t\t\tvar $options = this.$element.find('option'),\n\t\t\t\t$lisVisible = this.$lis.not(\n\t\t\t\t\t'.divider, .dropdown-header, .disabled, .hidden',\n\t\t\t\t),\n\t\t\t\tlisVisLen = $lisVisible.length,\n\t\t\t\tselectedOptions = [];\n\n\t\t\tif (status) {\n\t\t\t\tif ($lisVisible.filter('.selected').length === $lisVisible.length)\n\t\t\t\t\treturn;\n\t\t\t} else {\n\t\t\t\tif ($lisVisible.filter('.selected').length === 0) return;\n\t\t\t}\n\n\t\t\t$lisVisible.toggleClass('selected', status);\n\n\t\t\tfor (var i = 0; i < lisVisLen; i++) {\n\t\t\t\tvar origIndex = $lisVisible[i].getAttribute('data-original-index');\n\t\t\t\tselectedOptions[selectedOptions.length] = $options.eq(origIndex)[0];\n\t\t\t}\n\n\t\t\t$(selectedOptions).prop('selected', status);\n\n\t\t\tthis.render(false);\n\n\t\t\tthis.togglePlaceholder();\n\n\t\t\tthis.$element.triggerNative('change');\n\t\t},\n\n\t\tselectAll: function () {\n\t\t\treturn this.changeAll(true);\n\t\t},\n\n\t\tdeselectAll: function () {\n\t\t\treturn this.changeAll(false);\n\t\t},\n\n\t\ttoggle: function (e) {\n\t\t\te = e || window.event;\n\n\t\t\tif (e) e.stopPropagation();\n\n\t\t\tthis.$button.trigger('click');\n\t\t},\n\n\t\tkeydown: function (e) {\n\t\t\tvar $this = $(this),\n\t\t\t\t$parent = $this.is('input') ? $this.parent().parent() : $this.parent(),\n\t\t\t\t$items,\n\t\t\t\tthat = $parent.data('this'),\n\t\t\t\tindex,\n\t\t\t\tprevIndex,\n\t\t\t\tisActive,\n\t\t\t\tselector = ':not(.disabled, .hidden, .dropdown-header, .divider)',\n\t\t\t\tkeyCodeMap = {\n\t\t\t\t\t32: ' ',\n\t\t\t\t\t48: '0',\n\t\t\t\t\t49: '1',\n\t\t\t\t\t50: '2',\n\t\t\t\t\t51: '3',\n\t\t\t\t\t52: '4',\n\t\t\t\t\t53: '5',\n\t\t\t\t\t54: '6',\n\t\t\t\t\t55: '7',\n\t\t\t\t\t56: '8',\n\t\t\t\t\t57: '9',\n\t\t\t\t\t59: ';',\n\t\t\t\t\t65: 'a',\n\t\t\t\t\t66: 'b',\n\t\t\t\t\t67: 'c',\n\t\t\t\t\t68: 'd',\n\t\t\t\t\t69: 'e',\n\t\t\t\t\t70: 'f',\n\t\t\t\t\t71: 'g',\n\t\t\t\t\t72: 'h',\n\t\t\t\t\t73: 'i',\n\t\t\t\t\t74: 'j',\n\t\t\t\t\t75: 'k',\n\t\t\t\t\t76: 'l',\n\t\t\t\t\t77: 'm',\n\t\t\t\t\t78: 'n',\n\t\t\t\t\t79: 'o',\n\t\t\t\t\t80: 'p',\n\t\t\t\t\t81: 'q',\n\t\t\t\t\t82: 'r',\n\t\t\t\t\t83: 's',\n\t\t\t\t\t84: 't',\n\t\t\t\t\t85: 'u',\n\t\t\t\t\t86: 'v',\n\t\t\t\t\t87: 'w',\n\t\t\t\t\t88: 'x',\n\t\t\t\t\t89: 'y',\n\t\t\t\t\t90: 'z',\n\t\t\t\t\t96: '0',\n\t\t\t\t\t97: '1',\n\t\t\t\t\t98: '2',\n\t\t\t\t\t99: '3',\n\t\t\t\t\t100: '4',\n\t\t\t\t\t101: '5',\n\t\t\t\t\t102: '6',\n\t\t\t\t\t103: '7',\n\t\t\t\t\t104: '8',\n\t\t\t\t\t105: '9',\n\t\t\t\t};\n\n\t\t\tisActive = that.$newElement.hasClass('open');\n\n\t\t\tif (\n\t\t\t\t!isActive &&\n\t\t\t\t((e.keyCode >= 48 && e.keyCode <= 57) ||\n\t\t\t\t\t(e.keyCode >= 96 && e.keyCode <= 105) ||\n\t\t\t\t\t(e.keyCode >= 65 && e.keyCode <= 90))\n\t\t\t) {\n\t\t\t\tif (!that.options.container) {\n\t\t\t\t\tthat.setSize();\n\t\t\t\t\tthat.$menu.parent().addClass('open');\n\t\t\t\t\tisActive = true;\n\t\t\t\t} else {\n\t\t\t\t\tthat.$button.trigger('click');\n\t\t\t\t}\n\t\t\t\tthat.$searchbox.focus();\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif (that.options.liveSearch) {\n\t\t\t\tif (/(^9$|27)/.test(e.keyCode.toString(10)) && isActive) {\n\t\t\t\t\te.preventDefault();\n\t\t\t\t\te.stopPropagation();\n\t\t\t\t\tthat.$menuInner.click();\n\t\t\t\t\tthat.$button.focus();\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (/(38|40)/.test(e.keyCode.toString(10))) {\n\t\t\t\t$items = that.$lis.filter(selector);\n\t\t\t\tif (!$items.length) return;\n\n\t\t\t\tif (!that.options.liveSearch) {\n\t\t\t\t\tindex = $items.index($items.find('a').filter(':focus').parent());\n\t\t\t\t} else {\n\t\t\t\t\tindex = $items.index($items.filter('.active'));\n\t\t\t\t}\n\n\t\t\t\tprevIndex = that.$menuInner.data('prevIndex');\n\n\t\t\t\tif (e.keyCode == 38) {\n\t\t\t\t\tif ((that.options.liveSearch || index == prevIndex) && index != -1)\n\t\t\t\t\t\tindex--;\n\t\t\t\t\tif (index < 0) index += $items.length;\n\t\t\t\t} else if (e.keyCode == 40) {\n\t\t\t\t\tif (that.options.liveSearch || index == prevIndex) index++;\n\t\t\t\t\tindex = index % $items.length;\n\t\t\t\t}\n\n\t\t\t\tthat.$menuInner.data('prevIndex', index);\n\n\t\t\t\tif (!that.options.liveSearch) {\n\t\t\t\t\t$items.eq(index).children('a').focus();\n\t\t\t\t} else {\n\t\t\t\t\te.preventDefault();\n\t\t\t\t\tif (!$this.hasClass('dropdown-toggle')) {\n\t\t\t\t\t\t$items\n\t\t\t\t\t\t\t.removeClass('active')\n\t\t\t\t\t\t\t.eq(index)\n\t\t\t\t\t\t\t.addClass('active')\n\t\t\t\t\t\t\t.children('a')\n\t\t\t\t\t\t\t.focus();\n\t\t\t\t\t\t$this.focus();\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else if (!$this.is('input')) {\n\t\t\t\tvar keyIndex = [],\n\t\t\t\t\tcount,\n\t\t\t\t\tprevKey;\n\n\t\t\t\t$items = that.$lis.filter(selector);\n\t\t\t\t$items.each(function (i) {\n\t\t\t\t\tif (\n\t\t\t\t\t\t$.trim($(this).children('a').text().toLowerCase()).substring(\n\t\t\t\t\t\t\t0,\n\t\t\t\t\t\t\t1,\n\t\t\t\t\t\t) == keyCodeMap[e.keyCode]\n\t\t\t\t\t) {\n\t\t\t\t\t\tkeyIndex.push(i);\n\t\t\t\t\t}\n\t\t\t\t});\n\n\t\t\t\tcount = $(document).data('keycount');\n\t\t\t\tcount++;\n\t\t\t\t$(document).data('keycount', count);\n\n\t\t\t\tprevKey = $.trim($(':focus').text().toLowerCase()).substring(0, 1);\n\n\t\t\t\tif (prevKey != keyCodeMap[e.keyCode]) {\n\t\t\t\t\tcount = 1;\n\t\t\t\t\t$(document).data('keycount', count);\n\t\t\t\t} else if (count >= keyIndex.length) {\n\t\t\t\t\t$(document).data('keycount', 0);\n\t\t\t\t\tif (count > keyIndex.length) count = 1;\n\t\t\t\t}\n\n\t\t\t\t$items\n\t\t\t\t\t.eq(keyIndex[count - 1])\n\t\t\t\t\t.children('a')\n\t\t\t\t\t.focus();\n\t\t\t}\n\n\t\t\t// Select focused option if \"Enter\", \"Spacebar\" or \"Tab\" (when selectOnTab is true) are pressed inside the menu.\n\t\t\tif (\n\t\t\t\t(/(13|32)/.test(e.keyCode.toString(10)) ||\n\t\t\t\t\t(/(^9$)/.test(e.keyCode.toString(10)) && that.options.selectOnTab)) &&\n\t\t\t\tisActive\n\t\t\t) {\n\t\t\t\tif (!/(32)/.test(e.keyCode.toString(10))) e.preventDefault();\n\t\t\t\tif (!that.options.liveSearch) {\n\t\t\t\t\tvar elem = $(':focus');\n\t\t\t\t\telem.click();\n\t\t\t\t\t// Bring back focus for multiselects\n\t\t\t\t\telem.focus();\n\t\t\t\t\t// Prevent screen from scrolling if the user hit the spacebar\n\t\t\t\t\te.preventDefault();\n\t\t\t\t\t// Fixes spacebar selection of dropdown items in FF & IE\n\t\t\t\t\t$(document).data('spaceSelect', true);\n\t\t\t\t} else if (!/(32)/.test(e.keyCode.toString(10))) {\n\t\t\t\t\tthat.$menuInner.find('.active a').click();\n\t\t\t\t\t$this.focus();\n\t\t\t\t}\n\t\t\t\t$(document).data('keycount', 0);\n\t\t\t}\n\n\t\t\tif (\n\t\t\t\t(/(^9$|27)/.test(e.keyCode.toString(10)) &&\n\t\t\t\t\tisActive &&\n\t\t\t\t\t(that.multiple || that.options.liveSearch)) ||\n\t\t\t\t(/(27)/.test(e.keyCode.toString(10)) && !isActive)\n\t\t\t) {\n\t\t\t\tthat.$menu.parent().removeClass('open');\n\t\t\t\tif (that.options.container) that.$newElement.removeClass('open');\n\t\t\t\tthat.$button.focus();\n\t\t\t}\n\t\t},\n\n\t\tmobile: function () {\n\t\t\tthis.$element.addClass('mobile-device');\n\t\t},\n\n\t\trefresh: function () {\n\t\t\tthis.$lis = null;\n\t\t\tthis.liObj = {};\n\t\t\tthis.reloadLi();\n\t\t\tthis.render();\n\t\t\tthis.checkDisabled();\n\t\t\tthis.liHeight(true);\n\t\t\tthis.setStyle();\n\t\t\tthis.setWidth();\n\t\t\tif (this.$lis) this.$searchbox.trigger('propertychange');\n\n\t\t\tthis.$element.trigger('refreshed.bs.select');\n\t\t},\n\n\t\thide: function () {\n\t\t\tthis.$newElement.hide();\n\t\t},\n\n\t\tshow: function () {\n\t\t\tthis.$newElement.show();\n\t\t},\n\n\t\tremove: function () {\n\t\t\tthis.$newElement.remove();\n\t\t\tthis.$element.remove();\n\t\t},\n\n\t\tdestroy: function () {\n\t\t\tthis.$newElement.before(this.$element).remove();\n\n\t\t\tif (this.$bsContainer) {\n\t\t\t\tthis.$bsContainer.remove();\n\t\t\t} else {\n\t\t\t\tthis.$menu.remove();\n\t\t\t}\n\n\t\t\tthis.$element\n\t\t\t\t.off('.bs.select')\n\t\t\t\t.removeData('selectpicker')\n\t\t\t\t.removeClass('bs-select-hidden selectpicker');\n\t\t},\n\t};\n\n\t// SELECTPICKER PLUGIN DEFINITION\n\t// ==============================\n\tfunction Plugin(option) {\n\t\t// get the args of the outer function..\n\t\tvar args = arguments;\n\t\t// The arguments of the function are explicitly re-defined from the argument list, because the shift causes them\n\t\t// to get lost/corrupted in android 2.3 and IE9 #715 #775\n\t\tvar _option = option;\n\n\t\t[].shift.apply(args);\n\n\t\tvar value;\n\t\tvar chain = this.each(function () {\n\t\t\tvar $this = $(this);\n\t\t\tif ($this.is('select')) {\n\t\t\t\tvar data = $this.data('selectpicker'),\n\t\t\t\t\toptions = typeof _option == 'object' && _option;\n\n\t\t\t\tif (!data) {\n\t\t\t\t\tvar config = $.extend(\n\t\t\t\t\t\t{},\n\t\t\t\t\t\tSelectpicker.DEFAULTS,\n\t\t\t\t\t\t$.fn.selectpicker.defaults || {},\n\t\t\t\t\t\t$this.data(),\n\t\t\t\t\t\toptions,\n\t\t\t\t\t);\n\t\t\t\t\tconfig.template = $.extend(\n\t\t\t\t\t\t{},\n\t\t\t\t\t\tSelectpicker.DEFAULTS.template,\n\t\t\t\t\t\t$.fn.selectpicker.defaults\n\t\t\t\t\t\t\t? $.fn.selectpicker.defaults.template\n\t\t\t\t\t\t\t: {},\n\t\t\t\t\t\t$this.data().template,\n\t\t\t\t\t\toptions.template,\n\t\t\t\t\t);\n\t\t\t\t\t$this.data('selectpicker', (data = new Selectpicker(this, config)));\n\t\t\t\t} else if (options) {\n\t\t\t\t\tfor (var i in options) {\n\t\t\t\t\t\tif (options.hasOwnProperty(i)) {\n\t\t\t\t\t\t\tdata.options[i] = options[i];\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tif (typeof _option == 'string') {\n\t\t\t\t\tif (data[_option] instanceof Function) {\n\t\t\t\t\t\tvalue = data[_option].apply(data, args);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tvalue = data.options[_option];\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\n\t\tif (typeof value !== 'undefined') {\n\t\t\t//noinspection JSUnusedAssignment\n\t\t\treturn value;\n\t\t} else {\n\t\t\treturn chain;\n\t\t}\n\t}\n\n\tvar old = $.fn.selectpicker;\n\t$.fn.selectpicker = Plugin;\n\t$.fn.selectpicker.Constructor = Selectpicker;\n\n\t// SELECTPICKER NO CONFLICT\n\t// ========================\n\t$.fn.selectpicker.noConflict = function () {\n\t\t$.fn.selectpicker = old;\n\t\treturn this;\n\t};\n\n\t$(document)\n\t\t.data('keycount', 0)\n\t\t.on(\n\t\t\t'keydown.bs.select',\n\t\t\t'.bootstrap-select [data-toggle=dropdown], .bootstrap-select [role=\"listbox\"], .bs-searchbox input',\n\t\t\tSelectpicker.prototype.keydown,\n\t\t)\n\t\t.on(\n\t\t\t'focusin.modal',\n\t\t\t'.bootstrap-select [data-toggle=dropdown], .bootstrap-select [role=\"listbox\"], .bs-searchbox input',\n\t\t\tfunction (e) {\n\t\t\t\te.stopPropagation();\n\t\t\t},\n\t\t);\n\n\t// SELECTPICKER DATA-API\n\t// =====================\n\t$(window).on('load.bs.select.data-api', function () {\n\t\t$('.selectpicker').each(function () {\n\t\t\tvar $selectpicker = $(this);\n\t\t\tPlugin.call($selectpicker, $selectpicker.data());\n\t\t});\n\t});\n})(jQuery);\n"],"names":["$","toString","defineProperty","indexOf","includes","String","prototype","object","$defineProperty","Object","result","error","search","this","TypeError","string","call","stringLength","length","searchString","searchLength","position","arguments","undefined","pos","Number","Math","min","max","value","configurable","writable","startsWith","start","index","charCodeAt","keys","o","k","r","hasOwnProperty","push","valHooks","useDefault","_set","select","set","elem","data","apply","changed_arguments","normalizeToBase","text","each","re","ch","replace","fn","triggerNative","eventName","event","el","dispatchEvent","Event","bubbles","document","createEvent","initEvent","fireEvent","createEventObject","eventType","trigger","expr","pseudos","icontains","obj","meta","$obj","find","toUpperCase","ibegins","aicontains","aibegins","createEscaper","map","escaper","match","source","join","testRegexp","RegExp","replaceRegexp","test","htmlEscape","htmlUnescape","Selectpicker","element","options","$element","$newElement","$button","$menu","$lis","title","attr","winPad","windowPadding","val","render","refresh","setStyle","selectAll","deselectAll","destroy","remove","show","hide","init","Plugin","option","args","_option","shift","chain","$this","is","i","config","extend","DEFAULTS","selectpicker","defaults","template","Function","VERSION","noneSelectedText","noneResultsText","countSelectedText","numSelected","numTotal","maxOptionsText","numAll","numGroup","selectAllText","deselectAllText","doneButton","doneButtonText","multipleSeparator","styleBase","style","size","selectedTextFormat","width","container","hideDisabled","showSubtext","showIcon","showContent","dropupAuto","header","liveSearch","liveSearchPlaceholder","liveSearchNormalize","liveSearchStyle","actionsBox","iconBase","tickIcon","showTick","caret","maxOptions","mobile","selectOnTab","dropdownAlignRight","constructor","that","id","addClass","liObj","multiple","prop","autofocus","createView","after","appendTo","children","$menuInner","$searchbox","removeClass","click","e","preventDefault","focus","checkDisabled","clickListener","liveSearchListener","setWidth","selectPosition","on","hasAttribute","off","validity","valid","setTimeout","createDropdown","inputGroup","parent","hasClass","searchbox","actionsbox","donebutton","drop","$drop","li","createLi","innerHTML","reloadLi","_li","optID","titleOption","createElement","liIndex","generateLI","content","classes","optgroup","generateA","inline","tokens","html","className","insertBefore","firstChild","selectedIndex","selected","$selectOptions","prevHiddenIndex","optionClass","cssText","subtext","icon","$parent","isOptgroup","tagName","isOptgroupDisabled","disabled","isDisabled","next","$options","filter","optGroupClass","label","labelSubtext","showDivider","previousElementSibling","prevHidden","eq","findLis","updateLi","notDisabled","setDisabled","parentNode","setSelected","togglePlaceholder","tabIndex","selectedItems","toArray","split","totalCount","not","trim","status","buttonClass","liHeight","sizeInfo","newElement","menu","menuInner","divider","a","cloneNode","actions","appendChild","createTextNode","input","body","offsetHeight","headerHeight","searchHeight","actionsHeight","doneButtonHeight","dividerHeight","outerHeight","menuStyle","getComputedStyle","menuPadding","vert","parseInt","paddingTop","css","paddingBottom","borderTopWidth","borderBottomWidth","horiz","paddingLeft","paddingRight","borderLeftWidth","borderRightWidth","menuExtras","marginTop","marginBottom","marginLeft","marginRight","removeChild","setSize","menuHeight","menuWidth","getHeight","getWidth","selectOffsetTop","selectOffsetBot","selectOffsetLeft","selectOffsetRight","$window","window","selectHeight","selectWidth","offsetWidth","divHeight","getPos","containerPos","offset","$container","top","left","scrollTop","height","scrollLeft","getSize","minHeight","include","classList","contains","lis","getElementsByTagName","lisVisible","Array","optGroup","toggleClass","overflow","optIndex","slice","last","divLength","$selectClone","clone","$selectClone2","ulWidth","outerWidth","btnWidth","$bsContainer","actualHeight","getPlacement","append","detach","removeAttr","$document","keyCode","offsetTop","clickedIndex","prevValue","prevIndex","triggerChange","stopPropagation","$option","state","$optgroup","maxOptionsGrp","blur","maxReached","maxReachedGrp","optgroupID","maxOptionsArr","maxTxt","maxTxtGrp","$notify","delay","fadeOut","currentTarget","target","change","$no_results","$hideItems","$searchBase","_searchStyle","$foundDiv","$lisVisible","first","begins","changeAll","lisVisLen","selectedOptions","origIndex","getAttribute","toggle","keydown","$items","isActive","selector","keyCodeMap","count","keyIndex","toLowerCase","substring","before","removeData","old","Constructor","noConflict","$selectpicker","jQuery"],"sourceRoot":""}