define(function(require,exports,module){var PreferencesManager=require("preferences/PreferencesManager");function _providerSort(a,b){return b.priority-a.priority}function RegistrationHandler(){this._providers={all:[]}}RegistrationHandler.prototype.registerProvider=function(providerInfo,languageIds,priority){var providerObj={provider:providerInfo,priority:priority||0},self=this;languageIds.forEach(function(languageId){self._providers[languageId]||(self._providers[languageId]=[]),self._providers[languageId].push(providerObj),self._providers[languageId].sort(_providerSort)})},RegistrationHandler.prototype.removeProvider=function(provider,targetLanguageId){var index,providers,targetLanguageIdArr,self=this;(targetLanguageIdArr=Array.isArray(targetLanguageId)?targetLanguageId:targetLanguageId?[targetLanguageId]:Object.keys(self._providers)).forEach(function(languageId){for(providers=self._providers[languageId],index=0;index