From 608d253120816b0e438e6e5f23029fc8f8694c48 Mon Sep 17 00:00:00 2001 From: Sam Saccone Date: Mon, 15 Sep 2014 21:30:25 -0400 Subject: [PATCH] Bump and build v2.2.1 --- bower.json | 2 +- changelog.md | 6 ++++++ lib/backbone.marionette.js | 14 +++----------- lib/backbone.marionette.map | 2 +- lib/backbone.marionette.min.js | 6 +++--- lib/core/backbone.marionette.js | 14 +++----------- lib/core/backbone.marionette.map | 2 +- lib/core/backbone.marionette.min.js | 4 ++-- package.json | 2 +- 9 files changed, 21 insertions(+), 31 deletions(-) diff --git a/bower.json b/bower.json index 8031c07f4a..18c1758262 100644 --- a/bower.json +++ b/bower.json @@ -3,7 +3,7 @@ "description": "Make your Backbone.js apps dance with a composite application architecture!", "homepage": "http://marionettejs.org", "main": "./lib/core/backbone.marionette.js", - "version": "2.2.0", + "version": "2.2.1", "keywords": [ "backbone", "framework", diff --git a/changelog.md b/changelog.md index 2121e58665..7df355e870 100644 --- a/changelog.md +++ b/changelog.md @@ -1,3 +1,9 @@ +### v2.2.1 [view commit logs](https://github.com/marionettejs/backbone.marionette/compare/v2.2.0...v2.2.1) + +* Fixes + + * Revert collection type checking for `collectionView`. + ### v2.2.0 [view commit logs](https://github.com/marionettejs/backbone.marionette/compare/v2.1.0...v2.2.0) * Features diff --git a/lib/backbone.marionette.js b/lib/backbone.marionette.js index 8952355e97..18abb57ba7 100644 --- a/lib/backbone.marionette.js +++ b/lib/backbone.marionette.js @@ -1,6 +1,6 @@ // MarionetteJS (Backbone.Marionette) // ---------------------------------- -// v2.2.0 +// v2.2.1 // // Copyright (c)2014 Derick Bailey, Muted Solutions, LLC. // Distributed under MIT license @@ -493,7 +493,7 @@ var Marionette = Backbone.Marionette = {}; - Marionette.VERSION = '2.2.0'; + Marionette.VERSION = '2.2.1'; Marionette.noConflict = function() { root.Marionette = previousMarionette; @@ -1744,7 +1744,7 @@ // Call destroy on each behavior after // destroying the view. // This unbinds event listeners - // that behaviors have registerd for. + // that behaviors have registered for. _.invoke(this._behaviors, 'destroy', args); return this; @@ -1985,7 +1985,6 @@ }); /* jshint maxstatements: 14 */ - /* jshint maxlen: 200 */ // Collection View // --------------- @@ -2006,12 +2005,7 @@ var initOptions = options || {}; this.sort = _.isUndefined(initOptions.sort) ? true : initOptions.sort; - if (initOptions.collection && !(initOptions.collection instanceof Backbone.Collection)) { - throw new Marionette.Error('The Collection option passed to this view needs to be an instance of a Backbone.Collection'); - } - this.once('render', this._initialEvents); - this._initChildViewStorage(); Marionette.View.apply(this, arguments); @@ -2704,7 +2698,6 @@ // Add a single region, by name, to the layoutView addRegion: function(name, definition) { - this.triggerMethod('before:region:add', name); var regions = {}; regions[name] = definition; return this._buildRegions(regions)[name]; @@ -2718,7 +2711,6 @@ // Remove a single region from the LayoutView, by name removeRegion: function(name) { - this.triggerMethod('before:region:remove', name); delete this.regions[name]; return this.regionManager.removeRegion(name); }, diff --git a/lib/backbone.marionette.map b/lib/backbone.marionette.map index 4f1e27d445..22612c9ebc 100644 --- a/lib/backbone.marionette.map +++ b/lib/backbone.marionette.map @@ -1 +1 @@ -{"version":3,"file":"lib/backbone.marionette.min.js","sources":["?"],"names":["root","factory","define","amd","Backbone","_","Marionette","exports","require","module","this","previousChildViewContainer","ChildViewContainer","Container","views","_views","_indexByModel","_indexByCustom","_updateLength","each","add","extend","prototype","view","customIndex","viewCid","cid","model","findByModel","findByModelCid","modelCid","findByCid","findByCustom","index","findByIndex","values","remove","any","key","call","method","apply","tail","arguments","args","isFunction","length","size","methods","concat","toArray","VERSION","noConflict","previousWreqr","Wreqr","Handlers","options","_wreqrHandlers","initialize","Model","Events","setHandlers","handlers","handler","name","context","isObject","callback","setHandler","config","trigger","hasHandler","getHandler","Array","slice","removeHandler","removeAllHandlers","CommandStorage","_commands","getCommands","commandName","commands","command","instances","addCommand","push","clearCommands","Commands","storageType","constructor","_initializeStorage","on","_executeCommands","execute","storage","StorageType","RequestResponse","request","EventAggregator","EA","Channel","channelName","vent","reqres","reset","off","stopListening","connectEvents","hash","_connect","connectCommands","connectRequests","type","fn","eventName","bind","radio","Radio","_channels","_proxyMethods","channel","Error","_getChannel","system","messageSystems","proxyMethod","messageSystem","previousMarionette","Deferred","$","getOption","target","optionName","value","undefined","proxyGetOption","normalizeMethods","normalizedHash","normalizeUIString","uiString","ui","replace","r","normalizeUIKeys","clone","keys","normalizedKey","normalizeUIValues","val","isString","actAsCollection","object","listProperty","list","result","triggerMethod","event","getEventName","match","prefix","toUpperCase","splitter","methodName","triggerMethodOn","fnc","MonitorDOMRefresh","documentElement","handleShow","_isShown","triggerDOMRefresh","handleRender","_isRendered","isInDOM","contains","el","listenTo","document","bindFromStrings","entity","evt","methodNames","split","bindToFunction","unbindFromStrings","unbindToFunction","iterateEvents","bindings","functionCallback","stringCallback","message","url","bindEntityEvents","unbindEntityEvents","proxyBindEntityEvents","proxyUnbindEntityEvents","errorProps","urlRoot","error","pick","captureStackTrace","toString","Callbacks","_deferred","_callbacks","contextOverride","promise","cb","ctx","then","run","resolve","callbacks","Controller","destroy","Object","Region","$el","getEl","buildRegion","regionConfig","DefaultRegionClass","_buildRegionFromSelector","selector","regionClass","_buildRegionFromObject","_buildRegionFromRegionClass","RegionClass","omit","region","parentEl","find","show","_ensureElement","showOptions","isDifferentView","currentView","preventDestroy","forceShow","isChangingView","_shouldDestroyView","_shouldShowView","empty","once","render","attachHtml","innerHTML","appendChild","_destroyView","isDestroyed","attachView","hasView","RegionManager","_regions","addRegions","regionDefinitions","defaults","regions","definition","addRegion","_store","get","getRegions","removeRegion","_remove","removeRegions","emptyRegions","_setLength","TemplateCache","templateId","templateCaches","cachedTemplate","load","clear","i","compiledTemplate","template","loadTemplate","compileTemplate","html","rawTemplate","Renderer","data","templateFunc","View","bindAll","_behaviors","Behaviors","onShowCalled","getTemplate","serializeModel","toJSON","mixinTemplateHelpers","templateHelpers","uiBindings","configureTriggers","triggers","triggerEvents","_buildViewTrigger","delegateEvents","events","_delegateDOMEvents","collection","behavior","eventsArg","isUndefined","combinedEvents","behaviorEvents","behaviorTriggers","undelegateEvents","_ensureViewIsIntact","unbindUIElements","invoke","bindUIElements","_bindUIElements","_uiBindings","_unbindUIElements","triggerDef","hasOptions","preventDefault","stopPropagation","e","setElement","ret","b","ItemView","serializeData","partial","items","serializeCollection","_renderTemplate","attachElContent","CollectionView","childViewEventPrefix","initOptions","sort","Collection","_initialEvents","_initChildViewStorage","initRenderBuffer","elBuffer","createDocumentFragment","_bufferedChildren","startBuffering","isBuffering","endBuffering","_triggerBeforeShowBufferedChildren","attachBuffer","_triggerShowBufferedChildren","_triggerMethodOnChild","childView","_onCollectionAdd","_onCollectionRemove","_sortViews","child","destroyEmptyView","ChildView","getChildView","indexOf","addChild","children","removeChildView","checkEmpty","_renderChildren","resortView","orderChanged","item","_index","destroyChildren","isEmpty","showEmptyView","showCollection","EmptyView","getEmptyView","_showingEmptyView","addEmptyView","emptyViewOptions","buildChildView","proxyChildEvents","renderChildView","childViewOptions","_updateIndices","_addChildView","increment","laterView","ChildViewClass","collectionView","buffer","append","_insertBefore","_insertAfter","findPosition","before","childViews","map","identity","rootEvent","childEvents","splice","CompositeView","isRendered","resetChildViewContainer","compositeView","$container","getChildViewContainer","containerView","$childViewContainer","container","childViewContainer","charAt","substr","LayoutView","_firstRender","_initializeRegions","_reInitializeRegions","regionManager","_buildRegions","getRegion","that","_initRegionManager","regionOptions","getRegionManager","Behavior","proxyViewProperties","behaviors","parseBehaviors","wrap","BehaviorTriggersBuilder","_view","_viewUI","_triggers","triggerBuilder","buildBehaviorTriggers","_behaviorsEvents","viewUI","_events","behaviorUI","whitespace","join","eventKey","behaviorsLookup","getBehaviorClass","behaviorClass","chain","BehaviorClass","nestedBehaviors","flatten","_buildTriggerHandlersForBehavior","triggersHash","_setHandlerForBehavior","triggerKey","triggerName","AppRouter","Router","appRoutes","controller","_getController","processAppRoutes","_processOnRoute","appRoute","route","_addAppRoute","routeName","routeArgs","routePath","invert","onRoute","routeNames","reverse","Application","_initCallbacks","submodules","_initChannel","addInitializer","initializer","start","_regionManager","moduleNames","moduleDefinition","ModuleClass","Module","getClass","unshift","create","optionRegions","moduleName","app","_setupInitializersAndFinalizers","startWithParent","_initializerCallbacks","addFinalizer","_finalizerCallbacks","_isInitialized","mod","stop","addDefinition","customArgs","_runModuleDefinition","moduleDefinitions","parentModule","_getModule","_addModuleDefinition","def","moduleClass","_getDefine","_getStartWithParent","_addStartWithParent","swp","startWithParentIsConfigured"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"lib/backbone.marionette.min.js","sources":["?"],"names":["root","factory","define","amd","Backbone","_","Marionette","exports","require","module","this","previousChildViewContainer","ChildViewContainer","Container","views","_views","_indexByModel","_indexByCustom","_updateLength","each","add","extend","prototype","view","customIndex","viewCid","cid","model","findByModel","findByModelCid","modelCid","findByCid","findByCustom","index","findByIndex","values","remove","any","key","call","method","apply","tail","arguments","args","isFunction","length","size","methods","concat","toArray","VERSION","noConflict","previousWreqr","Wreqr","Handlers","options","_wreqrHandlers","initialize","Model","Events","setHandlers","handlers","handler","name","context","isObject","callback","setHandler","config","trigger","hasHandler","getHandler","Array","slice","removeHandler","removeAllHandlers","CommandStorage","_commands","getCommands","commandName","commands","command","instances","addCommand","push","clearCommands","Commands","storageType","constructor","_initializeStorage","on","_executeCommands","execute","storage","StorageType","RequestResponse","request","EventAggregator","EA","Channel","channelName","vent","reqres","reset","off","stopListening","connectEvents","hash","_connect","connectCommands","connectRequests","type","fn","eventName","bind","radio","Radio","_channels","_proxyMethods","channel","Error","_getChannel","system","messageSystems","proxyMethod","messageSystem","previousMarionette","Deferred","$","getOption","target","optionName","value","undefined","proxyGetOption","normalizeMethods","normalizedHash","normalizeUIString","uiString","ui","replace","r","normalizeUIKeys","clone","keys","normalizedKey","normalizeUIValues","val","isString","actAsCollection","object","listProperty","list","result","triggerMethod","event","getEventName","match","prefix","toUpperCase","splitter","methodName","triggerMethodOn","fnc","MonitorDOMRefresh","documentElement","handleShow","_isShown","triggerDOMRefresh","handleRender","_isRendered","isInDOM","contains","el","listenTo","document","bindFromStrings","entity","evt","methodNames","split","bindToFunction","unbindFromStrings","unbindToFunction","iterateEvents","bindings","functionCallback","stringCallback","message","url","bindEntityEvents","unbindEntityEvents","proxyBindEntityEvents","proxyUnbindEntityEvents","errorProps","urlRoot","error","pick","captureStackTrace","toString","Callbacks","_deferred","_callbacks","contextOverride","promise","cb","ctx","then","run","resolve","callbacks","Controller","destroy","Object","Region","$el","getEl","buildRegion","regionConfig","DefaultRegionClass","_buildRegionFromSelector","selector","regionClass","_buildRegionFromObject","_buildRegionFromRegionClass","RegionClass","omit","region","parentEl","find","show","_ensureElement","showOptions","isDifferentView","currentView","preventDestroy","forceShow","isChangingView","_shouldDestroyView","_shouldShowView","empty","once","render","attachHtml","innerHTML","appendChild","_destroyView","isDestroyed","attachView","hasView","RegionManager","_regions","addRegions","regionDefinitions","defaults","regions","definition","addRegion","_store","get","getRegions","removeRegion","_remove","removeRegions","emptyRegions","_setLength","TemplateCache","templateId","templateCaches","cachedTemplate","load","clear","i","compiledTemplate","template","loadTemplate","compileTemplate","html","rawTemplate","Renderer","data","templateFunc","View","bindAll","_behaviors","Behaviors","onShowCalled","getTemplate","serializeModel","toJSON","mixinTemplateHelpers","templateHelpers","uiBindings","configureTriggers","triggers","triggerEvents","_buildViewTrigger","delegateEvents","events","_delegateDOMEvents","collection","behavior","eventsArg","isUndefined","combinedEvents","behaviorEvents","behaviorTriggers","undelegateEvents","_ensureViewIsIntact","unbindUIElements","invoke","bindUIElements","_bindUIElements","_uiBindings","_unbindUIElements","triggerDef","hasOptions","preventDefault","stopPropagation","e","setElement","ret","b","ItemView","serializeData","partial","items","serializeCollection","_renderTemplate","attachElContent","CollectionView","childViewEventPrefix","initOptions","sort","_initialEvents","_initChildViewStorage","initRenderBuffer","elBuffer","createDocumentFragment","_bufferedChildren","startBuffering","isBuffering","endBuffering","_triggerBeforeShowBufferedChildren","attachBuffer","_triggerShowBufferedChildren","_triggerMethodOnChild","childView","_onCollectionAdd","_onCollectionRemove","_sortViews","child","destroyEmptyView","ChildView","getChildView","indexOf","addChild","children","removeChildView","checkEmpty","_renderChildren","resortView","orderChanged","item","_index","destroyChildren","isEmpty","showEmptyView","showCollection","EmptyView","getEmptyView","_showingEmptyView","addEmptyView","emptyViewOptions","buildChildView","proxyChildEvents","renderChildView","childViewOptions","_updateIndices","_addChildView","increment","laterView","ChildViewClass","collectionView","buffer","append","_insertBefore","_insertAfter","findPosition","before","childViews","map","identity","rootEvent","childEvents","splice","CompositeView","isRendered","resetChildViewContainer","compositeView","$container","getChildViewContainer","containerView","$childViewContainer","container","childViewContainer","charAt","substr","LayoutView","_firstRender","_initializeRegions","_reInitializeRegions","regionManager","_buildRegions","getRegion","that","_initRegionManager","regionOptions","getRegionManager","Behavior","proxyViewProperties","behaviors","parseBehaviors","wrap","BehaviorTriggersBuilder","_view","_viewUI","_triggers","triggerBuilder","buildBehaviorTriggers","_behaviorsEvents","viewUI","_events","behaviorUI","whitespace","join","eventKey","behaviorsLookup","getBehaviorClass","behaviorClass","chain","BehaviorClass","nestedBehaviors","flatten","_buildTriggerHandlersForBehavior","triggersHash","_setHandlerForBehavior","triggerKey","triggerName","AppRouter","Router","appRoutes","controller","_getController","processAppRoutes","_processOnRoute","appRoute","route","_addAppRoute","routeName","routeArgs","routePath","invert","onRoute","routeNames","reverse","Application","_initCallbacks","submodules","_initChannel","addInitializer","initializer","start","_regionManager","moduleNames","moduleDefinition","ModuleClass","Module","getClass","unshift","create","optionRegions","moduleName","app","_setupInitializersAndFinalizers","startWithParent","_initializerCallbacks","addFinalizer","_finalizerCallbacks","_isInitialized","mod","stop","addDefinition","customArgs","_runModuleDefinition","moduleDefinitions","parentModule","_getModule","_addModuleDefinition","def","moduleClass","_getDefine","_getStartWithParent","_addStartWithParent","swp","startWithParentIsConfigured"],"mappings":";;;;;;;;;;;;;;;;;;;;CAmBC,SAASA,EAAMC,GAGd,GAAsB,kBAAXC,SAAyBA,OAAOC,IACzCD,QAAQ,WAAY,cAAe,SAASE,EAAUC,GACpD,MAAQL,GAAKM,WAAaL,EAAQD,EAAMI,EAAUC,SAE/C,IAAuB,mBAAZE,SAAyB,CACzC,GAAIH,GAAWI,QAAQ,YACnBH,EAAIG,QAAQ,aAChBC,QAAOF,QAAUN,EAAQD,EAAMI,EAAUC,OAEzCL,GAAKM,WAAaL,EAAQD,EAAMA,EAAKI,SAAUJ,EAAKK,IAGtDK,KAAM,SAASV,EAAMI,EAAUC,GAC/B,cAWA,SAAUD,EAAUC,GAElB,GAAIM,GAA6BP,EAASQ,kBA8H1C,OAxHAR,GAASQ,mBAAqB,SAASR,EAAUC,GAG/C,GAAIQ,GAAY,SAASC,GACvBJ,KAAKK,UACLL,KAAKM,iBACLN,KAAKO,kBACLP,KAAKQ,gBACLb,EAAEc,KAAKL,EAAOJ,KAAKU,IAAKV,MAI1BL,GAAEgB,OAAOR,EAAUS,WAKjBF,IAAK,SAASG,EAAMC,GAClB,GAAIC,GAAUF,EAAKG,GAYnB,OAVAhB,MAAKK,OAAOU,GAAWF,EAEnBA,EAAKI,QACPjB,KAAKM,cAAcO,EAAKI,MAAMD,KAAOD,GAGnCD,IACFd,KAAKO,eAAeO,GAAeC,GAErCf,KAAKQ,gBACER,MAITkB,YAAa,SAASD,GACpB,MAAOjB,MAAKmB,eAAeF,EAAMD,MAKnCG,eAAgB,SAASC,GACvB,GAAIL,GAAUf,KAAKM,cAAcc,EACjC,OAAOpB,MAAKqB,UAAUN,IAGxBO,aAAc,SAASC,GACrB,GAAIR,GAAUf,KAAKO,eAAegB,EAClC,OAAOvB,MAAKqB,UAAUN,IAIxBS,YAAa,SAASD,GACpB,MAAO5B,GAAE8B,OAAOzB,KAAKK,QAAQkB,IAG/BF,UAAW,SAASL,GAClB,MAAOhB,MAAKK,OAAOW,IAGrBU,OAAQ,SAASb,GACf,GAAIE,GAAUF,EAAKG,GAgBnB,OAdIH,GAAKI,aACAjB,MAAKM,cAAcO,EAAKI,MAAMD,KAGvCrB,EAAEgC,IAAI3B,KAAKO,eAAgB,SAASS,EAAKY,GACvC,MAAIZ,KAAQD,SACHf,MAAKO,eAAeqB,IACpB,GAFT,QAIC5B,YAEIA,MAAKK,OAAOU,GAEnBf,KAAKQ,gBACER,MAKT6B,KAAM,SAASC,GACb9B,KAAK+B,MAAMD,EAAQnC,EAAEqC,KAAKC,aAK5BF,MAAO,SAASD,EAAQI,GACtBvC,EAAEc,KAAKT,KAAKK,OAAQ,SAASQ,GACvBlB,EAAEwC,WAAWtB,EAAKiB,KACpBjB,EAAKiB,GAAQC,MAAMlB,EAAMqB,UAK/B1B,cAAe,WACbR,KAAKoC,OAASzC,EAAE0C,KAAKrC,KAAKK,UAQ9B,IAAIiC,IAAY,UAAW,OAAQ,MAAO,OAAQ,SAAU,SAAU,SAAU,SAAU,QAAS,MAAO,OAAQ,MAAO,UAAW,WAAY,SAAU,UAAW,QAAS,UAAW,OAAQ,OAAQ,UAAW,UAAW,QAS/N,OARA3C,GAAEc,KAAK6B,EAAS,SAASR,GACvB3B,EAAUS,UAAUkB,GAAU,WAC5B,GAAI1B,GAAQT,EAAE8B,OAAOzB,KAAKK,QACtB6B,GAAS9B,GAAQmC,OAAO5C,EAAE6C,QAAQP,WACtC,OAAOtC,GAAEmC,GAAQC,MAAMpC,EAAGuC,MAIvB/B,GACPT,EAAUC,GACZD,EAASQ,mBAAmBuC,QAAU,QACtC/C,EAASQ,mBAAmBwC,WAAa,WAEvC,MADAhD,GAASQ,mBAAqBD,EACvBD,MAEFN,EAASQ,oBACfR,EAAUC,GAWb,SAAUD,EAAUC,GAElB,GAAIgD,GAAgBjD,EAASkD,MACzBA,EAAQlD,EAASkD,QA2SrB,OA1SAlD,GAASkD,MAAMH,QAAU,QACzB/C,EAASkD,MAAMF,WAAa,WAE1B,MADAhD,GAASkD,MAAQD,EACV3C,MAKT4C,EAAMC,SAAW,SAASnD,EAAUC,GAIlC,GAAIkD,GAAW,SAASC,GACtB9C,KAAK8C,QAAUA,EACf9C,KAAK+C,kBACDpD,EAAEwC,WAAWnC,KAAKgD,aACpBhD,KAAKgD,WAAWF,GAsDpB,OAnDAD,GAASlC,OAASjB,EAASuD,MAAMtC,OAGjChB,EAAEgB,OAAOkC,EAASjC,UAAWlB,EAASwD,QAEpCC,YAAa,SAASC,GACpBzD,EAAEc,KAAK2C,EAAU,SAASC,EAASC,GACjC,GAAIC,GAAU,IACV5D,GAAE6D,SAASH,KAAa1D,EAAEwC,WAAWkB,KACvCE,EAAUF,EAAQE,QAClBF,EAAUA,EAAQI,UAEpBzD,KAAK0D,WAAWJ,EAAMD,EAASE,IAC9BvD,OAIL0D,WAAY,SAASJ,EAAMD,EAASE,GAClC,GAAII,IACFF,SAAUJ,EACVE,QAASA,EAEXvD,MAAK+C,eAAeO,GAAQK,EAC5B3D,KAAK4D,QAAQ,cAAeN,EAAMD,EAASE,IAG7CM,WAAY,SAASP,GACnB,QAAStD,KAAK+C,eAAeO,IAK/BQ,WAAY,SAASR,GACnB,GAAIK,GAAS3D,KAAK+C,eAAeO,EACjC,IAAKK,EAGL,MAAO,YACL,GAAIzB,GAAO6B,MAAMnD,UAAUoD,MAAMjC,MAAME,UACvC,OAAO0B,GAAOF,SAAS1B,MAAM4B,EAAOJ,QAASrB,KAIjD+B,cAAe,SAASX,SACftD,MAAK+C,eAAeO,IAG7BY,kBAAmB,WACjBlE,KAAK+C,qBAGFF,GACPnD,EAAUC,GAKZiD,EAAMuB,eAAiB,WAGrB,GAAIA,GAAiB,SAASrB,GAC5B9C,KAAK8C,QAAUA,EACf9C,KAAKoE,aACDzE,EAAEwC,WAAWnC,KAAKgD,aACpBhD,KAAKgD,WAAWF,GAkCpB,OA9BAnD,GAAEgB,OAAOwD,EAAevD,UAAWlB,EAASwD,QAI1CmB,YAAa,SAASC,GACpB,GAAIC,GAAWvE,KAAKoE,UAAUE,EAW9B,OATKC,KAEHA,GACEC,QAASF,EACTG,cAGFzE,KAAKoE,UAAUE,GAAeC,GAEzBA,GAITG,WAAY,SAASJ,EAAapC,GAChC,GAAIsC,GAAUxE,KAAKqE,YAAYC,EAC/BE,GAAQC,UAAUE,KAAKzC,IAGzB0C,cAAe,SAASN,GACtB,GAAIE,GAAUxE,KAAKqE,YAAYC,EAC/BE,GAAQC,gBAGLN,KAOTvB,EAAMiC,SAAW,SAASjC,GAExB,MAAOA,GAAMC,SAASlC,QAEpBmE,YAAalC,EAAMuB,eACnBY,YAAa,SAASjC,GACpB9C,KAAK8C,QAAUA,MACf9C,KAAKgF,mBAAmBhF,KAAK8C,SAC7B9C,KAAKiF,GAAG,cAAejF,KAAKkF,iBAAkBlF,KAC9C,IAAIkC,GAAO6B,MAAMnD,UAAUoD,MAAMnC,KAAKI,UACtCW,GAAMC,SAASjC,UAAUmE,YAAYhD,MAAM/B,KAAMkC,IAGnDiD,QAAS,SAAS7B,EAAMpB,GACtBoB,EAAOrB,UAAU,GACjBC,EAAO6B,MAAMnD,UAAUoD,MAAMnC,KAAKI,UAAW,GACzCjC,KAAK6D,WAAWP,GAClBtD,KAAK8D,WAAWR,GAAMvB,MAAM/B,KAAMkC,GAElClC,KAAKoF,QAAQV,WAAWpB,EAAMpB,IAIlCgD,iBAAkB,SAAS5B,EAAMD,EAASE,GACxC,GAAIiB,GAAUxE,KAAKoF,QAAQf,YAAYf,EAEvC3D,GAAEc,KAAK+D,EAAQC,UAAW,SAASvC,GACjCmB,EAAQtB,MAAMwB,EAASrB,KAEzBlC,KAAKoF,QAAQR,cAActB,IAI7B0B,mBAAoB,SAASlC,GAC3B,GAAIsC,GACAC,EAAcvC,EAAQgC,aAAe9E,KAAK8E,WAE5CM,GADEzF,EAAEwC,WAAWkD,GACL,GAAIA,GAEJA,EAEZrF,KAAKoF,QAAUA,MAGnBxC,GAMFA,EAAM0C,gBAAkB,SAAS1C,GAE/B,MAAOA,GAAMC,SAASlC,QACpB4E,QAAS,WACP,GAAIjC,GAAOrB,UAAU,GACjBC,EAAO6B,MAAMnD,UAAUoD,MAAMnC,KAAKI,UAAW,EACjD,OAAIjC,MAAK6D,WAAWP,GACXtD,KAAK8D,WAAWR,GAAMvB,MAAM/B,KAAMkC,GAD3C,WAKJU,GAKFA,EAAM4C,gBAAkB,SAAS9F,EAAUC,GAEzC,GAAI8F,GAAK,YAKT,OAHAA,GAAG9E,OAASjB,EAASuD,MAAMtC,OAE3BhB,EAAEgB,OAAO8E,EAAG7E,UAAWlB,EAASwD,QACzBuC,GACP/F,EAAUC,GAMZiD,EAAM8C,QAAU,WAEd,GAAIA,GAAU,SAASC,GACrB3F,KAAK4F,KAAO,GAAIlG,GAASkD,MAAM4C,gBAC/BxF,KAAK6F,OAAS,GAAInG,GAASkD,MAAM0C,gBACjCtF,KAAKuE,SAAW,GAAI7E,GAASkD,MAAMiC,SACnC7E,KAAK2F,YAAcA,EAoCrB,OAlCAhG,GAAEgB,OAAO+E,EAAQ9E,WAEfkF,MAAO,WAKL,MAJA9F,MAAK4F,KAAKG,MACV/F,KAAK4F,KAAKI,gBACVhG,KAAK6F,OAAO3B,oBACZlE,KAAKuE,SAASL,oBACPlE,MAGTiG,cAAe,SAASC,EAAM3C,GAE5B,MADAvD,MAAKmG,SAAS,OAAQD,EAAM3C,GACrBvD,MAEToG,gBAAiB,SAASF,EAAM3C,GAE9B,MADAvD,MAAKmG,SAAS,WAAYD,EAAM3C,GACzBvD,MAETqG,gBAAiB,SAASH,EAAM3C,GAE9B,MADAvD,MAAKmG,SAAS,SAAUD,EAAM3C,GACvBvD,MAGTmG,SAAU,SAASG,EAAMJ,EAAM3C,GAC7B,GAAK2C,EAAL,CAGA3C,EAAUA,GAAWvD,IACrB,IAAI8B,GAAkB,SAATwE,EAAkB,KAAO,YACtC3G,GAAEc,KAAKyF,EAAM,SAASK,EAAIC,GACxBxG,KAAKsG,GAAMxE,GAAQ0E,EAAW7G,EAAE8G,KAAKF,EAAIhD,KACxCvD,UAGA0F,GACP9C,GAKFA,EAAM8D,MAAQ,SAAS9D,GAErB,GAAI+D,GAAQ,WACV3G,KAAK4G,aACL5G,KAAK4F,QACL5F,KAAKuE,YACLvE,KAAK6F,UACL7F,KAAK6G,gBAEPlH,GAAEgB,OAAOgG,EAAM/F,WACbkG,QAAS,SAASnB,GAChB,IAAKA,EACH,KAAM,IAAIoB,OAAM,8BAElB,OAAO/G,MAAKgH,YAAYrB,IAE1BqB,YAAa,SAASrB,GACpB,GAAImB,GAAU9G,KAAK4G,UAAUjB,EAK7B,OAJKmB,KACHA,EAAU,GAAIlE,GAAM8C,QAAQC,GAC5B3F,KAAK4G,UAAUjB,GAAemB,GAEzBA,GAETD,cAAe,WACblH,EAAEc,MAAO,OAAQ,WAAY,UAAY,SAASwG,GAChDtH,EAAEc,KAAKyG,EAAeD,GAAS,SAASnF,GACtC9B,KAAKiH,GAAQnF,GAAUqF,EAAYnH,KAAMiH,EAAQnF,IAChD9B,OACFA,QAGP,IAAIkH,IACFtB,MAAQ,KAAM,MAAO,UAAW,OAAQ,gBAAiB,WAAY,gBACrErB,UAAY,UAAW,aAAc,cAAe,gBAAiB,qBACrEsB,QAAU,UAAW,aAAc,cAAe,gBAAiB,sBAEjEsB,EAAc,SAAST,EAAOO,EAAQnF,GACxC,MAAO,UAAS6D,GACd,GAAIyB,GAAgBV,EAAMM,YAAYrB,GAAasB,GAC/C/E,EAAO6B,MAAMnD,UAAUoD,MAAMnC,KAAKI,UAAW,EACjD,OAAOmF,GAActF,GAAQC,MAAMqF,EAAelF,IAGtD,OAAO,IAAIyE,IACX/D,GACKlD,EAASkD,OACflD,EAAUC,EAEb,IAAI0H,GAAqB/H,EAAKM,WAE1BA,EAAaF,EAASE,aAE1BA,GAAW6C,QAAU,QAErB7C,EAAW8C,WAAa,WAEtB,MADApD,GAAKM,WAAayH,EACXrH,MAGTN,EAASE,WAAaA,EAGtBA,EAAW0H,SAAW5H,EAAS6H,EAAED,QAQjC,IAAItD,GAAQD,MAAMnD,UAAUoD,KAM5BpE,GAAWe,OAASjB,EAASuD,MAAMtC,OAOnCf,EAAW4H,UAAY,SAASC,EAAQC,GACtC,GAAKD,GAAWC,EAAhB,CACA,GAAIC,EAQJ,OALEA,GADEF,EAAO3E,SAA2C8E,SAA/BH,EAAO3E,QAAQ4E,GAC5BD,EAAO3E,QAAQ4E,GAEfD,EAAOC,KAOnB9H,EAAWiI,eAAiB,SAASH,GACnC,MAAO9H,GAAW4H,UAAUxH,KAAM0H,IAQpC9H,EAAWkI,iBAAmB,SAAS5B,GACrC,GAAI6B,KAUJ,OATApI,GAAEc,KAAKyF,EAAM,SAASpE,EAAQwB,GACvB3D,EAAEwC,WAAWL,KAChBA,EAAS9B,KAAK8B,IAEXA,IAGLiG,EAAezE,GAAQxB,IACtB9B,MACI+H,GAKTnI,EAAWoI,kBAAoB,SAASC,EAAUC,GAChD,MAAOD,GAASE,QAAQ,uBAAwB,SAASC,GACvD,MAAOF,GAAGE,EAAEpE,MAAM,OAQtBpE,EAAWyI,gBAAkB,SAASnC,EAAMgC,GAC1C,MAAqB,mBAAX,IAIVhC,EAAOvG,EAAE2I,MAAMpC,GAEfvG,EAAEc,KAAKd,EAAE4I,KAAKrC,GAAO,SAAStE,GAC5B,GAAI4G,GAAgB5I,EAAWoI,kBAAkBpG,EAAKsG,EAClDM,KAAkB5G,IACpBsE,EAAKsC,GAAiBtC,EAAKtE,SACpBsE,GAAKtE,MAITsE,GAdP,QAoBFtG,EAAW6I,kBAAoB,SAASvC,EAAMgC,GAC5C,MAAqB,mBAAX,IAIVvI,EAAEc,KAAKyF,EAAM,SAASwC,EAAK9G,GACrBjC,EAAEgJ,SAASD,KACbxC,EAAKtE,GAAOhC,EAAWoI,kBAAkBU,EAAKR,MAI3ChC,GAVP,QAiBFtG,EAAWgJ,gBAAkB,SAASC,EAAQC,GAC5C,GAAIxG,IAAW,UAAW,OAAQ,MAAO,OAAQ,SAAU,SACzD,SAAU,SAAU,QAAS,MAAO,OAAQ,MAAO,UACnD,WAAY,SAAU,UAAW,QAAS,UAAW,OACrD,OAAQ,UAAW,UAAW,QAEhC3C,GAAEc,KAAK6B,EAAS,SAASR,GACvB+G,EAAO/G,GAAU,WACf,GAAIiH,GAAOpJ,EAAE8B,OAAO9B,EAAEqJ,OAAOhJ,KAAM8I,IAC/B5G,GAAQ6G,GAAMxG,OAAO5C,EAAE6C,QAAQP,WACnC,OAAOtC,GAAEmC,GAAQC,MAAMpC,EAAGuC,OAYhCtC,EAAWqJ,cAAgB,SAASC,GAOlC,QAASC,GAAaC,EAAOC,EAAQ7C,GACnC,MAAOA,GAAU8C,cALnB,GAWIN,GAXAO,EAAW,cASXC,EAAa,KAAON,EAAMf,QAAQoB,EAAUJ,GAC5CrH,EAAS9B,KAAKwJ,EAclB,OAVI7J,GAAEwC,WAAWL,KAEfkH,EAASlH,EAAOC,MAAM/B,KAAML,EAAEqC,KAAKC,aAIjCtC,EAAEwC,WAAWnC,KAAK4D,UACpB5D,KAAK4D,QAAQ7B,MAAM/B,KAAMiC,WAGpB+G,GAOTpJ,EAAW6J,gBAAkB,SAASlG,EAAS2F,GAC7C,GACIQ,GADAxH,EAAOvC,EAAEqC,KAAKC,UAAW,EAS7B,OALEyH,GADE/J,EAAEwC,WAAWoB,EAAQ0F,eACjB1F,EAAQ0F,cAERrJ,EAAWqJ,cAGZS,EAAI3H,MAAMwB,GAAU2F,GAAO3G,OAAOL,KAU3CtC,EAAW+J,kBAAoB,SAAUC,GAGvC,QAASC,GAAWhJ,GAClBA,EAAKiJ,UAAW,EAChBC,EAAkBlJ,GAIpB,QAASmJ,GAAanJ,GACpBA,EAAKoJ,aAAc,EACnBF,EAAkBlJ,GAIpB,QAASkJ,GAAkBlJ,GACrBA,EAAKiJ,UAAYjJ,EAAKoJ,aAAeC,EAAQrJ,IAC3ClB,EAAEwC,WAAWtB,EAAKoI,gBACpBpI,EAAKoI,cAAc,eAKzB,QAASiB,GAAQrJ,GACf,MAAOnB,GAAS6H,EAAE4C,SAASP,EAAiB/I,EAAKuJ,IAInD,MAAO,UAASvJ,GACdA,EAAKwJ,SAASxJ,EAAM,OAAQ,WAC1BgJ,EAAWhJ,KAGbA,EAAKwJ,SAASxJ,EAAM,SAAU,WAC5BmJ,EAAanJ,OAGhByJ,SAASV,iBAqBZ,SAAUhK,GAKR,QAAS2K,GAAgB9C,EAAQ+C,EAAQC,EAAKnI,GAC5C,GAAIoI,GAAcpI,EAAQqI,MAAM,MAEhChL,GAAEc,KAAKiK,EAAa,SAASlB,GAE3B,GAAI1H,GAAS2F,EAAO+B,EACpB,KAAK1H,EACH,KAAM,IAAIlC,GAAWmH,MAAM,WAAayC,EACtC,4DAGJ/B,GAAO4C,SAASG,EAAQC,EAAK3I,KAKjC,QAAS8I,GAAenD,EAAQ+C,EAAQC,EAAK3I,GAC3C2F,EAAO4C,SAASG,EAAQC,EAAK3I,GAK/B,QAAS+I,GAAkBpD,EAAQ+C,EAAQC,EAAKnI,GAC9C,GAAIoI,GAAcpI,EAAQqI,MAAM,MAEhChL,GAAEc,KAAKiK,EAAa,SAASlB,GAC3B,GAAI1H,GAAS2F,EAAO+B,EACpB/B,GAAOzB,cAAcwE,EAAQC,EAAK3I,KAKtC,QAASgJ,GAAiBrD,EAAQ+C,EAAQC,EAAK3I,GAC7C2F,EAAOzB,cAAcwE,EAAQC,EAAK3I,GAKpC,QAASiJ,GAActD,EAAQ+C,EAAQQ,EAAUC,EAAkBC,GACjE,GAAKV,GAAWQ,EAAhB,CAGA,IAAKrL,EAAEwC,WAAW6I,KAAcrL,EAAE6D,SAASwH,GACzC,KAAM,IAAIpL,GAAWmH,OACnBoE,QAAS,0CACTC,IAAK,wDAKLzL,GAAEwC,WAAW6I,KACfA,EAAWA,EAASnJ,KAAK4F,IAI3B9H,EAAEc,KAAKuK,EAAU,SAAS1I,EAASmI,GAI7B9K,EAAEwC,WAAWG,GACf2I,EAAiBxD,EAAQ+C,EAAQC,EAAKnI,GAEtC4I,EAAezD,EAAQ+C,EAAQC,EAAKnI,MAO1C1C,EAAWyL,iBAAmB,SAAS5D,EAAQ+C,EAAQQ,GACrDD,EAActD,EAAQ+C,EAAQQ,EAAUJ,EAAgBL,IAG1D3K,EAAW0L,mBAAqB,SAAS7D,EAAQ+C,EAAQQ,GACvDD,EAActD,EAAQ+C,EAAQQ,EAAUF,EAAkBD,IAI5DjL,EAAW2L,sBAAwB,SAASf,EAAQQ,GAClD,MAAOpL,GAAWyL,iBAAiBrL,KAAMwK,EAAQQ,IAInDpL,EAAW4L,wBAA0B,SAAShB,EAAQQ,GACpD,MAAOpL,GAAW0L,mBAAmBtL,KAAMwK,EAAQQ,KAEpDpL,EAGH,IAAI6L,IAAc,cAAe,WAAY,aAAc,OAAQ,UAAW,SAyqF9E,OAvqFA7L,GAAWmH,MAAQnH,EAAWe,OAAOkB,KAAKkF,OACxC2E,QAAS,gCAAkC9L,EAAW6C,QAAU,IAEhEsC,YAAa,SAASoG,EAASrI,GACzBnD,EAAE6D,SAAS2H,IACbrI,EAAUqI,EACVA,EAAUrI,EAAQqI,SACRrI,IACVA,KAGF,IAAI6I,GAAQ5E,MAAMlF,KAAK7B,KAAMmL,EAC7BxL,GAAEgB,OAAOX,KAAML,EAAEiM,KAAKD,EAAOF,GAAa9L,EAAEiM,KAAK9I,EAAS2I,IAE1DzL,KAAK6L,oBAED/I,EAAQsI,MACVpL,KAAKoL,IAAMpL,KAAK0L,QAAU5I,EAAQsI,MAItCS,kBAAmB,WACb9E,MAAM8E,mBACR9E,MAAM8E,kBAAkB7L,KAAMJ,EAAWmH,QAI7C+E,SAAU,WACR,MAAO9L,MAAKsD,KAAO,KAAOtD,KAAKmL,SAAWnL,KAAKoL,IAAM,SAAWpL,KAAKoL,IAAM,OAI/ExL,EAAWmH,MAAMpG,OAASf,EAAWe,OAQrCf,EAAWmM,UAAY,WACrB/L,KAAKgM,UAAYpM,EAAW0H,WAC5BtH,KAAKiM,eAGPtM,EAAEgB,OAAOf,EAAWmM,UAAUnL,WAK5BF,IAAK,SAAS+C,EAAUyI,GACtB,GAAIC,GAAUxM,EAAEqJ,OAAOhJ,KAAKgM,UAAW,UAEvChM,MAAKiM,WAAWtH,MAAMyH,GAAI3I,EAAU4I,IAAKH,IAEzCC,EAAQG,KAAK,SAASpK,GAChBgK,IAAkBhK,EAAKqB,QAAU2I,GACrCzI,EAAS5B,KAAKK,EAAKqB,QAASrB,EAAKY,YAOrCyJ,IAAK,SAASzJ,EAASS,GACrBvD,KAAKgM,UAAUQ,SACb1J,QAASA,EACTS,QAASA,KAMbuC,MAAO,WACL,GAAI2G,GAAYzM,KAAKiM,UACrBjM,MAAKgM,UAAYpM,EAAW0H,WAC5BtH,KAAKiM,cAELtM,EAAEc,KAAKgM,EAAW,SAASL,GACzBpM,KAAKU,IAAI0L,EAAGA,GAAIA,EAAGC,MAClBrM,SAUPJ,EAAW8M,WAAa,SAAS5J,GAC/B9C,KAAK8C,QAAUA,MAEXnD,EAAEwC,WAAWnC,KAAKgD,aACpBhD,KAAKgD,WAAWhD,KAAK8C,UAIzBlD,EAAW8M,WAAW/L,OAASf,EAAWe,OAM1ChB,EAAEgB,OAAOf,EAAW8M,WAAW9L,UAAWlB,EAASwD,QACjDyJ,QAAS,WACP,GAAIzK,GAAO8B,EAAMnC,KAAKI,UAMtB,OALAjC,MAAKiJ,cAAclH,MAAM/B,MAAO,kBAAkBuC,OAAOL,IACzDlC,KAAKiJ,cAAclH,MAAM/B,MAAO,WAAWuC,OAAOL,IAElDlC,KAAKgG,gBACLhG,KAAK+F,MACE/F,MAKTiJ,cAAerJ,EAAWqJ,cAG1BzB,UAAW5H,EAAWiI,iBASxBjI,EAAWgN,OAAS,SAAS9J,GAC3B9C,KAAK8C,QAAUnD,EAAEgB,UAAWhB,EAAEqJ,OAAOhJ,KAAM,WAAY8C,GAEvD9C,KAAKgD,WAAWjB,MAAM/B,KAAMiC,YAG9BrC,EAAWgN,OAAOjM,OAASf,EAAWe,OAKtChB,EAAEgB,OAAOf,EAAWgN,OAAOhM,WAGzBoC,WAAY,aAEZ2J,QAAS,WACP3M,KAAKiJ,cAAc,kBACnBjJ,KAAKiJ,cAAc,WACnBjJ,KAAKgG,iBAKPiD,cAAerJ,EAAWqJ,cAG1BzB,UAAW5H,EAAWiI,eAGtBwD,iBAAkBzL,EAAW2L,sBAG7BD,mBAAoB1L,EAAW4L,0BAIjC7L,EAAEgB,OAAOf,EAAWgN,OAAOhM,UAAWlB,EAASwD,QAU/CtD,EAAWiN,OAAS,SAAS/J,GAO3B,GANA9C,KAAK8C,QAAUA,MACf9C,KAAKoK,GAAKpK,KAAKwH,UAAU,MAGzBxH,KAAKoK,GAAKpK,KAAKoK,aAAc1K,GAAS6H,EAAIvH,KAAKoK,GAAG,GAAKpK,KAAKoK,IAEvDpK,KAAKoK,GACR,KAAM,IAAIxK,GAAWmH,OACnBzD,KAAM,YACN6H,QAAS,2CAMb,IAFAnL,KAAK8M,IAAM9M,KAAK+M,MAAM/M,KAAKoK,IAEvBpK,KAAKgD,WAAY,CACnB,GAAId,GAAO8B,EAAMjC,MAAME,UACvBjC,MAAKgD,WAAWjB,MAAM/B,KAAMkC,KAQhCvC,EAAEgB,OAAOf,EAAWiN,QAgBlBG,YAAa,SAASC,EAAcC,GAClC,GAAIvN,EAAEgJ,SAASsE,GACb,MAAOjN,MAAKmN,yBAAyBF,EAAcC,EAGrD,IAAID,EAAaG,UAAYH,EAAa7C,IAAM6C,EAAaI,YAC3D,MAAOrN,MAAKsN,uBAAuBL,EAAcC,EAGnD,IAAIvN,EAAEwC,WAAW8K,GACf,MAAOjN,MAAKuN,4BAA4BN,EAG1C,MAAM,IAAIrN,GAAWmH,OACnBoE,QAAS,sCACTC,IAAK,uDAKT+B,yBAA0B,SAASC,EAAUF,GAC3C,MAAO,IAAIA,IAAqB9C,GAAIgD,KAOtCE,uBAAwB,SAASL,EAAcC,GAC7C,GAAIM,GAAcP,EAAaI,aAAeH,EAC1CpK,EAAUnD,EAAE8N,KAAKR,EAAc,WAAY,cAE3CA,GAAaG,WAAatK,EAAQsH,KACpCtH,EAAQsH,GAAK6C,EAAaG,SAG5B,IAAIM,GAAS,GAAIF,GAAY1K,EAqB7B,OAbImK,GAAaU,WACfD,EAAOX,MAAQ,SAAS3C,GACtB,GAAIzK,EAAE6D,SAAS4G,GACb,MAAO1K,GAAS6H,EAAE6C,EAEpB,IAAIuD,GAAWV,EAAaU,QAI5B,OAHIhO,GAAEwC,WAAWwL,KACfA,EAAWA,KAENA,EAASC,KAAKxD,KAIlBsD,GAITH,4BAA6B,SAASC,GACpC,MAAO,IAAIA,MAQf7N,EAAEgB,OAAOf,EAAWiN,OAAOjM,UAAWlB,EAASwD,QAY7C2K,KAAM,SAAShN,EAAMiC,GACnB9C,KAAK8N,gBAEL,IAAIC,GAAcjL,MACdkL,EAAkBnN,IAASb,KAAKiO,YAChCC,IAAoBH,EAAYG,eAChCC,IAAcJ,EAAYI,UAG1BC,IAAmBpO,KAAKiO,YAGxBI,GAAsBH,GAAkBF,EAGxCM,EAAkBN,GAAmBG,CAUzC,OARIC,IACFpO,KAAKiJ,cAAc,iBAAkBjJ,KAAKiO,aAGxCI,GACFrO,KAAKuO,QAGHD,GAOFzN,EAAK2N,KAAK,UAAW7O,EAAE8G,KAAKzG,KAAKuO,MAAOvO,OACxCa,EAAK4N,SAEDL,GACFpO,KAAKiJ,cAAc,cAAepI,GAGpCb,KAAKiJ,cAAc,cAAepI,GAClCjB,EAAW6J,gBAAgB5I,EAAM,eAE7BuN,GACFpO,KAAKiJ,cAAc,UAAWjJ,KAAKiO,aAGrCjO,KAAK0O,WAAW7N,GAChBb,KAAKiO,YAAcpN,EAEfuN,GACFpO,KAAKiJ,cAAc,OAAQpI,GAG7Bb,KAAKiJ,cAAc,OAAQpI,GAC3BjB,EAAW6J,gBAAgB5I,EAAM,QAE1Bb,MAGFA,MAGT8N,eAAgB,WAMd,GALKnO,EAAE6D,SAASxD,KAAKoK,MACnBpK,KAAK8M,IAAM9M,KAAK+M,MAAM/M,KAAKoK,IAC3BpK,KAAKoK,GAAKpK,KAAK8M,IAAI,KAGhB9M,KAAK8M,KAA2B,IAApB9M,KAAK8M,IAAI1K,OACxB,KAAM,IAAIxC,GAAWmH,MAAM,WAAa/G,KAAK8M,IAAIM,SAAW,uBAMhEL,MAAO,SAAS3C,GACd,MAAO1K,GAAS6H,EAAE6C,IAKpBsE,WAAY,SAAS7N,GAEnBb,KAAKoK,GAAGuE,UAAU,GAClB3O,KAAKoK,GAAGwE,YAAY/N,EAAKuJ,KAK3BmE,MAAO,WACL,GAAI1N,GAAOb,KAAKiO,WAIhB,IAAKpN,EAQL,MANAb,MAAKiJ,cAAc,eAAgBpI,GACnCb,KAAK6O,eACL7O,KAAKiJ,cAAc,QAASpI,SAGrBb,MAAKiO,YACLjO,MAKT6O,aAAc,WACZ,GAAIhO,GAAOb,KAAKiO,WAEZpN,GAAK8L,UAAY9L,EAAKiO,YACxBjO,EAAK8L,UACI9L,EAAKa,QACdb,EAAKa,UAQTqN,WAAY,SAASlO,GAEnB,MADAb,MAAKiO,YAAcpN,EACZb,MAMTgP,QAAS,WACP,QAAShP,KAAKiO,aAOhBnI,MAAO,WAQL,MAPA9F,MAAKuO,QAEDvO,KAAK8M,MACP9M,KAAKoK,GAAKpK,KAAK8M,IAAIM,gBAGdpN,MAAK8M,IACL9M,MAITwH,UAAW5H,EAAWiI,eAItBoB,cAAerJ,EAAWqJ,gBAI5BrJ,EAAWiN,OAAOlM,OAASf,EAAWe,OAMtCf,EAAWqP,cAAgB,SAAUrP,GAEnC,GAAIqP,GAAgBrP,EAAW8M,WAAW/L,QACxCoE,YAAa,SAASjC,GACpB9C,KAAKkP,YACLtP,EAAW8M,WAAW7K,KAAK7B,KAAM8C,IAOnCqM,WAAY,SAASC,EAAmBC,GAClC1P,EAAEwC,WAAWiN,KACfA,EAAoBA,EAAkBrN,MAAM/B,KAAMiC,WAGpD,IAAIqN,KAeJ,OAbA3P,GAAEc,KAAK2O,EAAmB,SAASG,EAAYjM,GACzC3D,EAAEgJ,SAAS4G,KACbA,GAAcnC,SAAUmC,IAGtBA,EAAWnC,WACbmC,EAAa5P,EAAE0P,YAAaE,EAAYF,GAG1C,IAAI3B,GAAS1N,KAAKwP,UAAUlM,EAAMiM,EAClCD,GAAQhM,GAAQoK,GACf1N,MAEIsP,GAKTE,UAAW,SAASlM,EAAMiM,GACxB,GAAI7B,EAaJ,OAVEA,GADE6B,YAAsB3P,GAAWiN,OAC1B0C,EAEA3P,EAAWiN,OAAOG,YAAYuC,EAAY3P,EAAWiN,QAGhE7M,KAAKiJ,cAAc,oBAAqB3F,EAAMoK,GAE9C1N,KAAKyP,OAAOnM,EAAMoK,GAElB1N,KAAKiJ,cAAc,aAAc3F,EAAMoK,GAChCA,GAITgC,IAAK,SAASpM,GACZ,MAAOtD,MAAKkP,SAAS5L,IAKvBqM,WAAY,WACV,MAAOhQ,GAAE2I,MAAMtI,KAAKkP,WAItBU,aAAc,SAAStM,GACrB,GAAIoK,GAAS1N,KAAKkP,SAAS5L,EAG3B,OAFAtD,MAAK6P,QAAQvM,EAAMoK,GAEZA,GAKToC,cAAe,WACb,GAAIR,GAAUtP,KAAK2P,YAKnB,OAJAhQ,GAAEc,KAAKT,KAAKkP,SAAU,SAASxB,EAAQpK,GACrCtD,KAAK6P,QAAQvM,EAAMoK,IAClB1N,MAEIsP,GAKTS,aAAc,WACZ,GAAIT,GAAUtP,KAAK2P,YAKnB,OAJAhQ,GAAEc,KAAK6O,EAAS,SAAS5B,GACvBA,EAAOa,SACNvO,MAEIsP,GAKT3C,QAAS,WAEP,MADA3M,MAAK8P,gBACElQ,EAAW8M,WAAW9L,UAAU+L,QAAQ5K,MAAM/B,KAAMiC,YAI7DwN,OAAQ,SAASnM,EAAMoK,GACrB1N,KAAKkP,SAAS5L,GAAQoK,EACtB1N,KAAKgQ,cAIPH,QAAS,SAASvM,EAAMoK,GACtB1N,KAAKiJ,cAAc,uBAAwB3F,EAAMoK,GACjDA,EAAOa,QACPb,EAAO1H,sBACAhG,MAAKkP,SAAS5L,GACrBtD,KAAKgQ,aACLhQ,KAAKiJ,cAAc,gBAAiB3F,EAAMoK,IAI5CsC,WAAY,WACVhQ,KAAKoC,OAASzC,EAAE0C,KAAKrC,KAAKkP,YAO9B,OAFAtP,GAAWgJ,gBAAgBqG,EAAcrO,UAAW,YAE7CqO,GACNrP,GAQHA,EAAWqQ,cAAgB,SAASC,GAClClQ,KAAKkQ,WAAaA,GAMpBvQ,EAAEgB,OAAOf,EAAWqQ,eAClBE,kBAKAT,IAAK,SAASQ,GACZ,GAAIE,GAAiBpQ,KAAKmQ,eAAeD,EAOzC,OALKE,KACHA,EAAiB,GAAIxQ,GAAWqQ,cAAcC,GAC9ClQ,KAAKmQ,eAAeD,GAAcE,GAG7BA,EAAeC,QAUxBC,MAAO,WACL,GAAIC,GACArO,EAAO8B,EAAMnC,KAAKI,WAClBG,EAASF,EAAKE,MAElB,IAAIA,EAAS,EACX,IAAKmO,EAAI,EAAOnO,EAAJmO,EAAYA,UACfvQ,MAAKmQ,eAAejO,EAAKqO,QAGlCvQ,MAAKmQ,qBAQXxQ,EAAEgB,OAAOf,EAAWqQ,cAAcrP,WAGhCyP,KAAM,WAEJ,GAAIrQ,KAAKwQ,iBACP,MAAOxQ,MAAKwQ,gBAId,IAAIC,GAAWzQ,KAAK0Q,aAAa1Q,KAAKkQ,WAGtC,OAFAlQ,MAAKwQ,iBAAmBxQ,KAAK2Q,gBAAgBF,GAEtCzQ,KAAKwQ,kBAQdE,aAAc,SAASR,GACrB,GAAIO,GAAW/Q,EAAS6H,EAAE2I,GAAYU,MAEtC,KAAKH,GAAgC,IAApBA,EAASrO,OACxB,KAAM,IAAIxC,GAAWmH,OACnBzD,KAAM,kBACN6H,QAAS,6BAA+B+E,EAAa,KAIzD,OAAOO,IAOTE,gBAAiB,SAASE,GACxB,MAAOlR,GAAE8Q,SAASI,MAStBjR,EAAWkR,UAMTrC,OAAQ,SAASgC,EAAUM,GACzB,IAAKN,EACH,KAAM,IAAI7Q,GAAWmH,OACnBzD,KAAM,wBACN6H,QAAS,kEAIb,IAAI6F,EAOJ,QALEA,EADsB,kBAAbP,GACMA,EAEA7Q,EAAWqQ,cAAcP,IAAIe,IAG1BM,KAUxBnR,EAAWqR,KAAOvR,EAASuR,KAAKtQ,QAE9BoE,YAAa,SAASjC,GACpBnD,EAAEuR,QAAQlR,KAAM,UAMhBA,KAAK8C,QAAUnD,EAAEgB,UAAWhB,EAAEqJ,OAAOhJ,KAAM,WAAYL,EAAEwC,WAAWW,GAAWA,EAAQjB,KAAK7B,MAAQ8C,GAEpG9C,KAAKmR,WAAavR,EAAWwR,UAAUpR,MAEvCN,EAASuR,KAAKlP,MAAM/B,KAAMiC,WAE1BrC,EAAW+J,kBAAkB3J,MAC7BA,KAAKqK,SAASrK,KAAM,OAAQA,KAAKqR,eAOnCC,YAAa,WACX,MAAOtR,MAAKwH,UAAU,aAKxB+J,eAAgB,SAAStQ,GACvB,MAAOA,GAAMuQ,OAAOzP,MAAMd,EAAO+C,EAAMnC,KAAKI,UAAW,KAQzDwP,qBAAsB,SAAShK,GAC7BA,EAASA,KACT,IAAIiK,GAAkB1R,KAAKwH,UAAU,kBAIrC,OAHI7H,GAAEwC,WAAWuP,KACfA,EAAkBA,EAAgB7P,KAAK7B,OAElCL,EAAEgB,OAAO8G,EAAQiK,IAK1BrJ,gBAAiB,SAASnC,GACxB,GAAIgC,GAAKvI,EAAEqJ,OAAOhJ,KAAM,MACpB2R,EAAahS,EAAEqJ,OAAOhJ,KAAM,cAChC,OAAOJ,GAAWyI,gBAAgBnC,EAAMyL,GAAczJ,IAKxDO,kBAAmB,SAASvC,GAC1B,GAAIgC,GAAKvI,EAAEqJ,OAAOhJ,KAAM,MACpB2R,EAAahS,EAAEqJ,OAAOhJ,KAAM,cAChC,OAAOJ,GAAW6I,kBAAkBvC,EAAMyL,GAAczJ,IAK1D0J,kBAAmB,WACjB,GAAK5R,KAAK6R,SAAV,CAEA,GAAIC,MAGAD,EAAW7R,KAAKqI,gBAAgB1I,EAAEqJ,OAAOhJ,KAAM,YAQnD,OAJAL,GAAEc,KAAKoR,EAAU,SAASlK,EAAO/F,GAC/BkQ,EAAclQ,GAAO5B,KAAK+R,kBAAkBpK,IAC3C3H,MAEI8R,IAKTE,eAAgB,SAASC,GAUvB,MATAjS,MAAKkS,mBAAmBD,GACxBjS,KAAKqL,iBAAiBrL,KAAKiB,MAAOjB,KAAKwH,UAAU,gBACjDxH,KAAKqL,iBAAiBrL,KAAKmS,WAAYnS,KAAKwH,UAAU,qBAEtD7H,EAAEc,KAAKT,KAAKmR,WAAY,SAASiB,GAC/BA,EAAS/G,iBAAiBrL,KAAKiB,MAAOmR,EAAS5K,UAAU,gBACzD4K,EAAS/G,iBAAiBrL,KAAKmS,WAAYC,EAAS5K,UAAU,sBAC7DxH,MAEIA,MAITkS,mBAAoB,SAASG,GAC3B,GAAIJ,GAASI,GAAarS,KAAKiS,MAC3BtS,GAAEwC,WAAW8P,KAAWA,EAASA,EAAOpQ,KAAK7B,OAGjDiS,EAASjS,KAAKqI,gBAAgB4J,GAC3BtS,EAAE2S,YAAYD,KAAarS,KAAKiS,OAASA,EAE5C,IAAIM,MAGAC,EAAiB7S,EAAEqJ,OAAOhJ,KAAM,sBAChC6R,EAAW7R,KAAK4R,oBAChBa,EAAmB9S,EAAEqJ,OAAOhJ,KAAM,uBAGtCL,GAAEgB,OAAO4R,EAAgBC,EAAgBP,EAAQJ,EAAUY,GAE3D/S,EAASuR,KAAKrQ,UAAUoR,eAAenQ,KAAK7B,KAAMuS,IAKpDG,iBAAkB,WAChB,GAAIxQ,GAAO8B,EAAMnC,KAAKI,UAWtB,OAVAvC,GAASuR,KAAKrQ,UAAU8R,iBAAiB3Q,MAAM/B,KAAMkC,GAErDlC,KAAKsL,mBAAmBtL,KAAKiB,MAAOjB,KAAKwH,UAAU,gBACnDxH,KAAKsL,mBAAmBtL,KAAKmS,WAAYnS,KAAKwH,UAAU,qBAExD7H,EAAEc,KAAKT,KAAKmR,WAAY,SAASiB,GAC/BA,EAAS9G,mBAAmBtL,KAAKiB,MAAOmR,EAAS5K,UAAU,gBAC3D4K,EAAS9G,mBAAmBtL,KAAKmS,WAAYC,EAAS5K,UAAU,sBAC/DxH,MAEIA,MAITqR,aAAc,aAGdsB,oBAAqB,WACnB,GAAI3S,KAAK8O,YACP,KAAM,IAAIlP,GAAWmH,OACnBzD,KAAM,qBACN6H,QAAS,eAAiBnL,KAAKgB,IAAM,uDAS3C2L,QAAS,WACP,IAAI3M,KAAK8O,YAAT,CAEA,GAAI5M,GAAO8B,EAAMnC,KAAKI,UAsBtB,OApBAjC,MAAKiJ,cAAclH,MAAM/B,MAAO,kBAAkBuC,OAAOL,IAKzDlC,KAAK8O,aAAc,EACnB9O,KAAKiJ,cAAclH,MAAM/B,MAAO,WAAWuC,OAAOL,IAGlDlC,KAAK4S,mBAGL5S,KAAK0B,SAML/B,EAAEkT,OAAO7S,KAAKmR,WAAY,UAAWjP,GAE9BlC,OAGT8S,eAAgB,WACd9S,KAAK+S,kBACLpT,EAAEkT,OAAO7S,KAAKmR,WAAYnR,KAAK+S,kBAKjCA,gBAAiB,WACf,GAAK/S,KAAKkI,GAAV,CAIKlI,KAAKgT,cACRhT,KAAKgT,YAAchT,KAAKkI,GAI1B,IAAI8C,GAAWrL,EAAEqJ,OAAOhJ,KAAM,cAG9BA,MAAKkI,MAGLvI,EAAEc,KAAKd,EAAE4I,KAAKyC,GAAW,SAASpJ,GAChC,GAAIwL,GAAWpC,EAASpJ,EACxB5B,MAAKkI,GAAGtG,GAAO5B,KAAKuH,EAAE6F,IACrBpN,QAIL4S,iBAAkB,WAChB5S,KAAKiT,oBACLtT,EAAEkT,OAAO7S,KAAKmR,WAAYnR,KAAKiT,oBAGjCA,kBAAmB,WACZjT,KAAKkI,IAAOlI,KAAKgT,cAGtBrT,EAAEc,KAAKT,KAAKkI,GAAI,SAAS4E,EAAKxJ,SACrBtD,MAAKkI,GAAG5E,IACdtD,MAGHA,KAAKkI,GAAKlI,KAAKgT,kBACRhT,MAAKgT,cAKdjB,kBAAmB,SAASmB,GAC1B,GAAIC,GAAaxT,EAAE6D,SAAS0P,GAExBpQ,EAAUnD,EAAE0P,YAAc8D,EAAaD,MACzCE,gBAAgB,EAChBC,iBAAiB,IAGf7M,EAAY2M,EAAarQ,EAAQoG,MAAQgK,CAE7C,OAAO,UAASI,GACVA,IACEA,EAAEF,gBAAkBtQ,EAAQsQ,gBAC9BE,EAAEF,iBAGAE,EAAED,iBAAmBvQ,EAAQuQ,iBAC/BC,EAAED,kBAIN,IAAInR,IACFrB,KAAMb,KACNiB,MAAOjB,KAAKiB,MACZkR,WAAYnS,KAAKmS,WAGnBnS,MAAKiJ,cAAczC,EAAWtE,KAIlCqR,WAAY,WACV,GAAIC,GAAM9T,EAASuR,KAAKrQ,UAAU2S,WAAWxR,MAAM/B,KAAMiC,UAOzD,OAFAtC,GAAEkT,OAAO7S,KAAKmR,WAAY,sBAAuBnR,MAE1CwT,GAKTvK,cAAe,WACb,GAAI/G,GAAOD,UACPgH,EAAgBrJ,EAAWqJ,cAE3BuK,EAAMvK,EAAclH,MAAM/B,KAAMkC,EAKpC,OAJAvC,GAAEc,KAAKT,KAAKmR,WAAY,SAASsC,GAC/BxK,EAAclH,MAAM0R,EAAGvR,KAGlBsR,GAKT1L,iBAAkBlI,EAAWkI,iBAG7BN,UAAW5H,EAAWiI,eAGtBwD,iBAAkBzL,EAAW2L,sBAG7BD,mBAAoB1L,EAAW4L,0BASjC5L,EAAW8T,SAAW9T,EAAWqR,KAAKtQ,QAIpCoE,YAAa,WACXnF,EAAWqR,KAAKlP,MAAM/B,KAAMiC,YAU9B0R,cAAe,WACb,GAAI5C,KASJ,OAPI/Q,MAAKiB,MACP8P,EAAOpR,EAAEiU,QAAQ5T,KAAKuR,eAAgBvR,KAAKiB,OAAOc,MAAM/B,KAAMiC,WAEvDjC,KAAKmS,aACZpB,GAAS8C,MAAOlU,EAAEiU,QAAQ5T,KAAK8T,oBAAqB9T,KAAKmS,YAAYpQ,MAAM/B,KAAMiC,aAG5E8O,GAIT+C,oBAAqB,SAAS3B,GAC5B,MAAOA,GAAWX,OAAOzP,MAAMoQ,EAAYnO,EAAMnC,KAAKI,UAAW,KAQnEwM,OAAQ,WAUN,MATAzO,MAAK2S,sBAEL3S,KAAKiJ,cAAc,gBAAiBjJ,MAEpCA,KAAK+T,kBACL/T,KAAK8S,iBAEL9S,KAAKiJ,cAAc,SAAUjJ,MAEtBA,MAOT+T,gBAAiB,WACf,GAAItD,GAAWzQ,KAAKsR,aAGpB,IAAIb,KAAa,EAAjB,CAIA,IAAKA,EACH,KAAM,IAAI7Q,GAAWmH,OACnBzD,KAAM,yBACN6H,QAAS,6DAKb,IAAI4F,GAAO/Q,KAAK2T,eAChB5C,GAAO/Q,KAAKyR,qBAAqBV,EAGjC,IAAIH,GAAOhR,EAAWkR,SAASrC,OAAOgC,EAAUM,EAAM/Q,KAGtD,OAFAA,MAAKgU,gBAAgBpD,GAEd5Q,OAeTgU,gBAAiB,SAASpD,GAGxB,MAFA5Q,MAAK8M,IAAI8D,KAAKA,GAEP5Q,MAKT2M,QAAS,WACP,MAAI3M,MAAK8O,YAAT,OAEOlP,EAAWqR,KAAKrQ,UAAU+L,QAAQ5K,MAAM/B,KAAMiC,cAWzDrC,EAAWqU,eAAiBrU,EAAWqR,KAAKtQ,QAI1CuT,qBAAsB,YAMtBnP,YAAa,SAASjC,GACpB,GAAIqR,GAAcrR,KAClB9C,MAAKoU,KAAOzU,EAAE2S,YAAY6B,EAAYC,OAAQ,EAAOD,EAAYC,KAEjEpU,KAAKwO,KAAK,SAAUxO,KAAKqU,gBACzBrU,KAAKsU,wBAEL1U,EAAWqR,KAAKlP,MAAM/B,KAAMiC,WAE5BjC,KAAKuU,oBAMPA,iBAAkB,WAChBvU,KAAKwU,SAAWlK,SAASmK,yBACzBzU,KAAK0U,sBAGPC,eAAgB,WACd3U,KAAKuU,mBACLvU,KAAK4U,aAAc,GAGrBC,aAAc,WACZ7U,KAAK4U,aAAc,EACnB5U,KAAK8U,qCACL9U,KAAK+U,aAAa/U,KAAMA,KAAKwU,UAC7BxU,KAAKgV,+BACLhV,KAAKuU,oBAGPO,mCAAoC,WAC9B9U,KAAK8J,UACPnK,EAAEc,KAAKT,KAAK0U,kBAAmB/U,EAAEiU,QAAQ5T,KAAKiV,sBAAuB,iBAIzED,6BAA8B,WACxBhV,KAAK8J,WACPnK,EAAEc,KAAKT,KAAK0U,kBAAmB/U,EAAEiU,QAAQ5T,KAAKiV,sBAAuB,SAErEjV,KAAK0U,uBAMTO,sBAAuB,SAAS/L,EAAOgM,GACrCtV,EAAW6J,gBAAgByL,EAAWhM,IAKxCmL,eAAgB,WACVrU,KAAKmS,aACPnS,KAAKqK,SAASrK,KAAKmS,WAAY,MAAOnS,KAAKmV,kBAC3CnV,KAAKqK,SAASrK,KAAKmS,WAAY,SAAUnS,KAAKoV,qBAC9CpV,KAAKqK,SAASrK,KAAKmS,WAAY,QAASnS,KAAKyO,QAEzCzO,KAAKoU,MACPpU,KAAKqK,SAASrK,KAAKmS,WAAY,OAAQnS,KAAKqV,cAMlDF,iBAAkB,SAASG,GACzBtV,KAAKuV,kBACL,IAAIC,GAAYxV,KAAKyV,aAAaH,GAC9B/T,EAAQvB,KAAKmS,WAAWuD,QAAQJ,EACpCtV,MAAK2V,SAASL,EAAOE,EAAWjU,IAIlC6T,oBAAqB,SAASnU,GAC5B,GAAIJ,GAAOb,KAAK4V,SAAS1U,YAAYD,EACrCjB,MAAK6V,gBAAgBhV,GACrBb,KAAK8V,cAIPzE,aAAc,WACZrR,KAAK4V,SAASnV,KAAKd,EAAEiU,QAAQ5T,KAAKiV,sBAAuB,UAM3DxG,OAAQ,WAKN,MAJAzO,MAAK2S,sBACL3S,KAAKiJ,cAAc,gBAAiBjJ,MACpCA,KAAK+V,kBACL/V,KAAKiJ,cAAc,SAAUjJ,MACtBA,MAOTgW,WAAY,WACVhW,KAAKyO,UAKP4G,WAAY,WAEV,GAAIY,GAAejW,KAAKmS,WAAWvE,KAAK,SAASsI,EAAM3U,GACrD,GAAIV,GAAOb,KAAK4V,SAAS1U,YAAYgV,EACrC,QAAQrV,GAAQA,EAAKsV,SAAW5U,GAC/BvB,KAECiW,IACFjW,KAAKgW,cAOTD,gBAAiB,WACf/V,KAAKuV,mBACLvV,KAAKoW,kBAEDpW,KAAKqW,QAAQrW,KAAKmS,YACpBnS,KAAKsW,iBAELtW,KAAKiJ,cAAc,2BAA4BjJ,MAC/CA,KAAK2U,iBACL3U,KAAKuW,iBACLvW,KAAK6U,eACL7U,KAAKiJ,cAAc,oBAAqBjJ,QAK5CuW,eAAgB,WACd,GAAIf,EACJxV,MAAKmS,WAAW1R,KAAK,SAAS6U,EAAO/T,GACnCiU,EAAYxV,KAAKyV,aAAaH,GAC9BtV,KAAK2V,SAASL,EAAOE,EAAWjU,IAC/BvB,OAKLsW,cAAe,WACb,GAAIE,GAAYxW,KAAKyW,cAErB,IAAID,IAAcxW,KAAK0W,kBAAmB,CACxC1W,KAAKiJ,cAAc,uBAEnBjJ,KAAK0W,mBAAoB,CACzB,IAAIzV,GAAQ,GAAIvB,GAASuD,KACzBjD,MAAK2W,aAAa1V,EAAOuV,GAEzBxW,KAAKiJ,cAAc,kBAOvBsM,iBAAkB,WACZvV,KAAK0W,oBACP1W,KAAKiJ,cAAc,uBAEnBjJ,KAAKoW,wBACEpW,MAAK0W,kBAEZ1W,KAAKiJ,cAAc,kBAKvBwN,aAAc,WACZ,MAAOzW,MAAKwH,UAAU,cAMxBmP,aAAc,SAASrB,EAAOkB,GAG5B,GAAII,GAAmB5W,KAAKwH,UAAU,qBAChBxH,KAAKwH,UAAU,mBAEjC7H,GAAEwC,WAAWyU,KACfA,EAAmBA,EAAiB/U,KAAK7B,MAI3C,IAAIa,GAAOb,KAAK6W,eAAevB,EAAOkB,EAAWI,EAGjD5W,MAAK8W,iBAAiBjW,GAIlBb,KAAK8J,UACPlK,EAAW6J,gBAAgB5I,EAAM,eAKnCb,KAAK4V,SAASlV,IAAIG,GAGlBb,KAAK+W,gBAAgBlW,EAAM,IAIvBb,KAAK8J,UACPlK,EAAW6J,gBAAgB5I,EAAM,SAUrC4U,aAAc,WACZ,GAAIP,GAAYlV,KAAKwH,UAAU,YAE/B,KAAK0N,EACH,KAAM,IAAItV,GAAWmH,OACnBzD,KAAM,mBACN6H,QAAS,mCAIb,OAAO+J,IAOTS,SAAU,SAASL,EAAOE,EAAWjU,GACnC,GAAIyV,GAAmBhX,KAAKwH,UAAU,mBAClC7H,GAAEwC,WAAW6U,KACfA,EAAmBA,EAAiBnV,KAAK7B,KAAMsV,EAAO/T,GAGxD,IAAIV,GAAOb,KAAK6W,eAAevB,EAAOE,EAAWwB,EAOjD,OAJAhX,MAAKiX,eAAepW,GAAM,EAAMU,GAEhCvB,KAAKkX,cAAcrW,EAAMU,GAElBV,GAKToW,eAAgB,SAASpW,EAAMsW,EAAW5V,GACnCvB,KAAKoU,OAIN+C,GAEFtW,EAAKsV,OAAS5U,EAGdvB,KAAK4V,SAASnV,KAAK,SAAU2W,GACvBA,EAAUjB,QAAUtV,EAAKsV,QAC3BiB,EAAUjB,YAMdnW,KAAK4V,SAASnV,KAAK,SAAU2W,GACvBA,EAAUjB,QAAUtV,EAAKsV,QAC3BiB,EAAUjB,aASlBe,cAAe,SAASrW,EAAMU,GAE5BvB,KAAK8W,iBAAiBjW,GAEtBb,KAAKiJ,cAAc,mBAAoBpI,GAIvCb,KAAK4V,SAASlV,IAAIG,GAClBb,KAAK+W,gBAAgBlW,EAAMU,GAEvBvB,KAAK8J,WAAa9J,KAAK4U,aACzBhV,EAAW6J,gBAAgB5I,EAAM,QAGnCb,KAAKiJ,cAAc,YAAapI,IAIlCkW,gBAAiB,SAASlW,EAAMU,GAG9B,MAFAV,GAAK4N,SACLzO,KAAK0O,WAAW1O,KAAMa,EAAMU,GACrBV,GAITgW,eAAgB,SAASvB,EAAO+B,EAAgBL,GAC9C,GAAIlU,GAAUnD,EAAEgB,QAAQM,MAAOqU,GAAQ0B,EACvC,OAAO,IAAIK,GAAevU,IAO5B+S,gBAAiB,SAAShV,GAgBxB,MAdIA,KACFb,KAAKiJ,cAAc,sBAAuBpI,GAEtCA,EAAK8L,QAAW9L,EAAK8L,UAChB9L,EAAKa,QAAUb,EAAKa,SAE7B1B,KAAKgG,cAAcnF,GACnBb,KAAK4V,SAASlU,OAAOb,GACrBb,KAAKiJ,cAAc,eAAgBpI,GAGnCb,KAAKiX,eAAepW,GAAM,IAGrBA,GAITwV,QAAS,WACP,OAAQrW,KAAKmS,YAAyC,IAA3BnS,KAAKmS,WAAW/P,QAI7C0T,WAAY,WACN9V,KAAKqW,QAAQrW,KAAKmS,aACpBnS,KAAKsW,iBAKTvB,aAAc,SAASuC,EAAgBC,GACrCD,EAAexK,IAAI0K,OAAOD,IAM5B7I,WAAY,SAAS4I,EAAgBpC,EAAW3T,GAC1C+V,EAAe1C,aAIjB0C,EAAe9C,SAAS5F,YAAYsG,EAAU9K,IAC9CkN,EAAe5C,kBAAkB/P,KAAKuQ,IAMjCoC,EAAeG,cAAcvC,EAAW3T,IAC3C+V,EAAeI,aAAaxC,IAOlCuC,cAAe,SAASvC,EAAW3T,GACjC,GAAI0M,GACA0J,EAAe3X,KAAKoU,MAAS7S,EAAQvB,KAAK4V,SAASxT,OAAS,CAQhE,OAPIuV,KAEF1J,EAAcjO,KAAK4V,SAAShI,KAAK,SAAU/M,GACzC,MAAOA,GAAKsV,SAAW5U,EAAQ,KAI/B0M,GACFA,EAAYnB,IAAI8K,OAAO1C,EAAU9K,KAC1B,IAGF,GAITsN,aAAc,SAASxC,GACrBlV,KAAK8M,IAAI0K,OAAOtC,EAAU9K,KAK5BkK,sBAAuB,WACrBtU,KAAK4V,SAAW,GAAIlW,GAASQ,oBAI/ByM,QAAS,WACP,MAAI3M,MAAK8O,YAAT,QAEA9O,KAAKiJ,cAAc,6BACnBjJ,KAAKoW,kBACLpW,KAAKiJ,cAAc,sBAEZrJ,EAAWqR,KAAKrQ,UAAU+L,QAAQ5K,MAAM/B,KAAMiC,aAKvDmU,gBAAiB,WACf,GAAIyB,GAAa7X,KAAK4V,SAASkC,IAAInY,EAAEoY,SAGrC,OAFA/X,MAAK4V,SAASnV,KAAKT,KAAK6V,gBAAiB7V,MACzCA,KAAK8V,aACE+B,GAKTf,iBAAkB,SAASjW,GACzB,GAAIwI,GAASrJ,KAAKwH,UAAU,uBAI5BxH,MAAKqK,SAASxJ,EAAM,MAAO,WACzB,GAAIqB,GAAO8B,EAAMnC,KAAKI,WAClB+V,EAAY9V,EAAK,GACjB+V,EAAcjY,KAAK8H,iBAAiBnI,EAAEqJ,OAAOhJ,KAAM,eAEvDkC,GAAK,GAAKmH,EAAS,IAAM2O,EACzB9V,EAAKgW,OAAO,EAAG,EAAGrX,GAGS,mBAAhBoX,IAA+BtY,EAAEwC,WAAW8V,EAAYD,KACjEC,EAAYD,GAAWjW,MAAM/B,KAAMkC,EAAK8B,MAAM,IAGhDhE,KAAKiJ,cAAclH,MAAM/B,KAAMkC,IAC9BlC,SAYPJ,EAAWuY,cAAgBvY,EAAWqU,eAAetT,QAOnDoE,YAAa,WACXnF,EAAWqU,eAAelS,MAAM/B,KAAMiC,YAMxCoS,eAAgB,WAKVrU,KAAKmS,aACPnS,KAAKqK,SAASrK,KAAKmS,WAAY,MAAOnS,KAAKmV,kBAC3CnV,KAAKqK,SAASrK,KAAKmS,WAAY,SAAUnS,KAAKoV,qBAC9CpV,KAAKqK,SAASrK,KAAKmS,WAAY,QAASnS,KAAK+V,iBAEzC/V,KAAKoU,MACPpU,KAAKqK,SAASrK,KAAKmS,WAAY,OAAQnS,KAAKqV,cASlDI,aAAc,WACZ,GAAIP,GAAYlV,KAAKwH,UAAU,cAAgBxH,KAAK+E,WAEpD,KAAKmQ,EACH,KAAM,IAAItV,GAAWmH,OACnBzD,KAAM,mBACN6H,QAAS,mCAIb,OAAO+J,IAMTvB,cAAe,WACb,GAAI5C,KAMJ,OAJI/Q,MAAKiB,QACP8P,EAAOpR,EAAEiU,QAAQ5T,KAAKuR,eAAgBvR,KAAKiB,OAAOc,MAAM/B,KAAMiC,YAGzD8O,GAMTtC,OAAQ,WAWN,MAVAzO,MAAK2S,sBACL3S,KAAKoY,YAAa,EAClBpY,KAAKqY,0BAELrY,KAAKiJ,cAAc,gBAAiBjJ,MAEpCA,KAAK+T,kBACL/T,KAAK+V,kBAEL/V,KAAKiJ,cAAc,SAAUjJ,MACtBA,MAGT+V,gBAAiB,WACX/V,KAAKoY,YACPxY,EAAWqU,eAAerT,UAAUmV,gBAAgBlU,KAAK7B,OAM7D+T,gBAAiB,WACf,GAAIhD,KACJA,GAAO/Q,KAAK2T,gBACZ5C,EAAO/Q,KAAKyR,qBAAqBV,GAEjC/Q,KAAKiJ,cAAc,yBAEnB,IAAIwH,GAAWzQ,KAAKsR,cAChBV,EAAOhR,EAAWkR,SAASrC,OAAOgC,EAAUM,EAAM/Q,KACtDA,MAAKgU,gBAAgBpD,GAKrB5Q,KAAK8S,iBACL9S,KAAKiJ,cAAc,oBAerB+K,gBAAiB,SAASpD,GAGxB,MAFA5Q,MAAK8M,IAAI8D,KAAKA,GAEP5Q,MAIT+U,aAAc,SAASuD,EAAef,GACpC,GAAIgB,GAAavY,KAAKwY,sBAAsBF,EAC5CC,GAAWf,OAAOD,IAMpBG,aAAc,SAAUxC,GACtB,GAAIqD,GAAavY,KAAKwY,sBAAsBxY,KAC5CuY,GAAWf,OAAOtC,EAAU9K,KAK9BoO,sBAAuB,SAASC,GAC9B,GAAI,uBAAyBA,GAC3B,MAAOA,GAAcC,mBAGvB,IAAIC,GACAC,EAAqBhZ,EAAW4H,UAAUiR,EAAe,qBAC7D,IAAIG,EAAoB,CAEtB,GAAIxL,GAAWzN,EAAEwC,WAAWyW,GAAsBA,EAAmB/W,KAAK4W,GAAiBG,CAQ3F,IALED,EADyB,MAAvBvL,EAASyL,OAAO,IAAcJ,EAAcvQ,GAClCuQ,EAAcvQ,GAAGkF,EAAS0L,OAAO,IAEjCL,EAAclR,EAAE6F,GAG1BuL,EAAUvW,QAAU,EACtB,KAAM,IAAIxC,GAAWmH,OACnBzD,KAAM,iCACN6H,QAAS,qDAAuDsN,EAAcG,yBAKlFD,GAAYF,EAAc3L,GAI5B,OADA2L,GAAcC,oBAAsBC,EAC7BA,GAITN,wBAAyB,WACnBrY,KAAK0Y,2BACA1Y,MAAK0Y,uBAclB9Y,EAAWmZ,WAAanZ,EAAW8T,SAAS/S,QAC1C0M,YAAazN,EAAWiN,OAIxB9H,YAAa,SAASjC,GACpBA,EAAUA,MAEV9C,KAAKgZ,cAAe,EACpBhZ,KAAKiZ,mBAAmBnW,GAExBlD,EAAW8T,SAAS7R,KAAK7B,KAAM8C,IAOjC2L,OAAQ,WAaN,MAZAzO,MAAK2S,sBAED3S,KAAKgZ,aAGPhZ,KAAKgZ,cAAe,EAIpBhZ,KAAKkZ,uBAGAtZ,EAAW8T,SAAS9S,UAAU6N,OAAO1M,MAAM/B,KAAMiC,YAI1D0K,QAAS,WACP,MAAI3M,MAAK8O,YAAsB9O,MAE/BA,KAAKmZ,cAAcxM,UACZ/M,EAAW8T,SAAS9S,UAAU+L,QAAQ5K,MAAM/B,KAAMiC,aAI3DuN,UAAW,SAASlM,EAAMiM,GACxB,GAAID,KAEJ,OADAA,GAAQhM,GAAQiM,EACTvP,KAAKoZ,cAAc9J,GAAShM,IAIrC6L,WAAY,SAASG,GAEnB,MADAtP,MAAKsP,QAAU3P,EAAEgB,UAAWX,KAAKsP,QAASA,GACnCtP,KAAKoZ,cAAc9J,IAI5BM,aAAc,SAAStM,GAErB,aADOtD,MAAKsP,QAAQhM,GACbtD,KAAKmZ,cAAcvJ,aAAatM,IAMzC+V,UAAW,SAAS3L,GAClB,MAAO1N,MAAKmZ,cAAczJ,IAAIhC,IAIhCiC,WAAY,WACV,MAAO3P,MAAKmZ,cAAcxJ,cAI5ByJ,cAAe,SAAS9J,GACtB,GAAIgK,GAAOtZ,KAEPqP,GACFhC,YAAarN,KAAKwH,UAAU,eAC5BmG,SAAU,WAAa,MAAO2L,GAAKxM,KAGrC,OAAO9M,MAAKmZ,cAAchK,WAAWG,EAASD,IAKhD4J,mBAAoB,SAASnW,GAC3B,GAAIwM,EACJtP,MAAKuZ,qBAGHjK,EADE3P,EAAEwC,WAAWnC,KAAKsP,SACVtP,KAAKsP,QAAQxM,GAEb9C,KAAKsP,WAIjB,IAAIkK,GAAgBxZ,KAAKwH,UAAU3F,KAAKiB,EAAS,UAG7CnD,GAAEwC,WAAWqX,KACfA,EAAgBA,EAAc3X,KAAK7B,KAAM8C,IAG3CnD,EAAEgB,OAAO2O,EAASkK,GAIlBlK,EAAUtP,KAAKyI,kBAAkB6G,GAEjCtP,KAAKmP,WAAWG,IAKlB4J,qBAAsB,WACpBlZ,KAAKmZ,cAAcpJ,eACnB/P,KAAKmZ,cAAc1Y,KAAK,SAASiN,GAC/BA,EAAO5H,WAOX2T,iBAAkB,WAChB,MAAO,IAAI7Z,GAAWqP,eAKxBsK,mBAAoB,WAClBvZ,KAAKmZ,cAAgBnZ,KAAKyZ,mBAE1BzZ,KAAKqK,SAASrK,KAAKmZ,cAAe,oBAAqB,SAAS7V,GAC9DtD,KAAKiJ,cAAc,oBAAqB3F,KAG1CtD,KAAKqK,SAASrK,KAAKmZ,cAAe,aAAc,SAAS7V,EAAMoK,GAC7D1N,KAAKsD,GAAQoK,EACb1N,KAAKiJ,cAAc,aAAc3F,EAAMoK,KAGzC1N,KAAKqK,SAASrK,KAAKmZ,cAAe,uBAAwB,SAAS7V,GACjEtD,KAAKiJ,cAAc,uBAAwB3F,KAG7CtD,KAAKqK,SAASrK,KAAKmZ,cAAe,gBAAiB,SAAS7V,EAAMoK,SACzD1N,MAAKsD,GACZtD,KAAKiJ,cAAc,gBAAiB3F,EAAMoK,QAchD9N,EAAW8Z,SAAW,SAAU/Z,EAAGD,GACjC,QAASga,GAAS5W,EAASjC,GAKzBb,KAAKa,KAAOA,EACZb,KAAKqP,SAAW1P,EAAEqJ,OAAOhJ,KAAM,gBAC/BA,KAAK8C,QAAWnD,EAAEgB,UAAWX,KAAKqP,SAAUvM,GAK5C9C,KAAKuH,EAAI,WACP,MAAOvH,MAAKa,KAAK0G,EAAExF,MAAM/B,KAAKa,KAAMoB,YAKtCjC,KAAKgD,WAAWjB,MAAM/B,KAAMiC,WAoC9B,MAjCAtC,GAAEgB,OAAO+Y,EAAS9Y,UAAWlB,EAASwD,QACpCF,WAAY,aAGZ2J,QAAS,WACP3M,KAAKgG,iBAGP2T,oBAAqB,SAAU9Y,GAC7Bb,KAAK8M,IAAMjM,EAAKiM,IAChB9M,KAAKoK,GAAKvJ,EAAKuJ,IAKjBnB,cAAerJ,EAAWqJ,cAG1BzB,UAAW5H,EAAWiI,eAGtBwD,iBAAkBzL,EAAW2L,sBAG7BD,mBAAoB1L,EAAW4L,0BAOjCkO,EAAS/Y,OAASf,EAAWe,OAEtB+Y,GACN/Z,EAAGD,GAYNE,EAAWwR,UAAY,SAAUxR,EAAYD,GAE3C,QAASyR,GAAUvQ,EAAM+Y,GAEvB,MAAKja,GAAE6D,SAAS3C,EAAK+Y,YAMrBA,EAAYxI,EAAUyI,eAAehZ,EAAM+Y,GAAaja,EAAEqJ,OAAOnI,EAAM,cAKvEuQ,EAAU0I,KAAKjZ,EAAM+Y,EAAWja,EAAE4I,KAAKjG,IAChCsX,MA4GT,QAASG,GAAwBlZ,EAAM+Y,GACrC5Z,KAAKga,MAAanZ,EAClBb,KAAKia,QAAata,EAAEqJ,OAAOnI,EAAM,MACjCb,KAAKmR,WAAayI,EAClB5Z,KAAKka,aA7GP,GAAI5X,IACFmQ,iBAAkB,SAASA,EAAkBmH,GAC3C,GAAIO,GAAiB,GAAIJ,GAAwB/Z,KAAM4Z,EACvD,OAAOO,GAAeC,yBAGxB5H,eAAgB,SAASA,EAAgBoH,GACvC,GAAIS,MACAC,EAAS3a,EAAEqJ,OAAOhJ,KAAM,KAkC5B,OAhCAL,GAAEc,KAAKmZ,EAAW,SAASnG,EAAGlD,GAC5B,GAAIgK,MACA/H,EAAiB7S,EAAE2I,MAAM3I,EAAEqJ,OAAOyK,EAAG,eACrC+G,EAAa7a,EAAEqJ,OAAOyK,EAAG,MAOzBvL,EAAKvI,EAAEgB,UAAW2Z,EAAQE,EAI9BhI,GAAiB5S,EAAWyI,gBAAgBmK,EAAgBtK,GAE5DvI,EAAEc,KAAKd,EAAE4I,KAAKiK,GAAiB,SAAS5Q,GAMtC,GAAI6Y,GAAa,GAAK1W,OAAMwM,EAAI,GAAImK,KAAK,KACrCC,EAAa/Y,EAAM6Y,EACnBpX,EAAa1D,EAAEwC,WAAWqQ,EAAe5Q,IAAQ4Q,EAAe5Q,GAAO6R,EAAEjB,EAAe5Q,GAE5F2Y,GAAQI,GAAYhb,EAAE8G,KAAKpD,EAASoQ,KAGtC4G,EAAmB1a,EAAEgB,OAAO0Z,EAAkBE,KAGzCF,GAmGX,OA/FA1a,GAAEgB,OAAOyQ,GAWPwJ,gBAAiB,WACf,KAAM,IAAIhb,GAAWmH,OACnBoE,QAAS,mDACTC,IAAK,+CASTyP,iBAAkB,SAAS/X,EAASlB,GAClC,MAAIkB,GAAQgY,cACHhY,EAAQgY,cAIVnb,EAAEwC,WAAWiP,EAAUwJ,iBAAmBxJ,EAAUwJ,gBAAgB7Y,MAAM/B,KAAMiC,WAAWL,GAAOwP,EAAUwJ,gBAAgBhZ;EAKrIiY,eAAgB,SAAShZ,EAAM+Y,GAC7B,MAAOja,GAAEob,MAAMnB,GAAW9B,IAAI,SAAShV,EAASlB,GAC9C,GAAIoZ,GAAgB5J,EAAUyJ,iBAAiB/X,EAASlB,GAEpDwQ,EAAW,GAAI4I,GAAclY,EAASjC,GACtCoa,EAAkB7J,EAAUyI,eAAehZ,EAAMlB,EAAEqJ,OAAOoJ,EAAU,aAExE,QAAQA,GAAU7P,OAAO0Y,KACxBC,UAAUvT,SAQfmS,KAAM,SAASjZ,EAAM+Y,EAAWlP,GAC9B/K,EAAEc,KAAKiK,EAAa,SAASlB,GAC3B3I,EAAK2I,GAAc7J,EAAEiU,QAAQtR,EAAQkH,GAAa3I,EAAK2I,GAAaoQ,QAc1Eja,EAAEgB,OAAOoZ,EAAwBnZ,WAE/BwZ,sBAAuB,WAErB,MADAza,GAAEc,KAAKT,KAAKmR,WAAYnR,KAAKmb,iCAAkCnb,MACxDA,KAAKka,WAIdiB,iCAAkC,SAAS/I,EAAU7B,GACnD,GAAIrI,GAAKvI,EAAEgB,UAAWX,KAAKia,QAASta,EAAEqJ,OAAOoJ,EAAU,OACnDgJ,EAAezb,EAAE2I,MAAM3I,EAAEqJ,OAAOoJ,EAAU,gBAE9CgJ,GAAexb,EAAWyI,gBAAgB+S,EAAclT,GAExDvI,EAAEc,KAAK2a,EAAczb,EAAEiU,QAAQ5T,KAAKqb,uBAAwBjJ,EAAU7B,GAAIvQ,OAK5Eqb,uBAAwB,SAASjJ,EAAU7B,EAAG/J,EAAW5C,GAEvD,GAAI0X,GAAa1X,EAAQuE,QAAQ,OAAQ,SAASoT,GAChD,MAAOA,GAAc,oBAA2BhL,GAGlDvQ,MAAKka,UAAUoB,GAActb,KAAKga,MAAMjI,kBAAkBvL,MAIvD4K,GAENxR,EAAYD,GAqBfC,EAAW4b,UAAY9b,EAAS+b,OAAO9a,QAErCoE,YAAa,SAASjC,GACpBpD,EAAS+b,OAAO1Z,MAAM/B,KAAMiC,WAE5BjC,KAAK8C,QAAUA,KAEf,IAAI4Y,GAAY1b,KAAKwH,UAAU,aAC3BmU,EAAa3b,KAAK4b,gBACtB5b,MAAK6b,iBAAiBF,EAAYD,GAClC1b,KAAKiF,GAAG,QAASjF,KAAK8b,gBAAiB9b,OAKzC+b,SAAU,SAASC,EAAOxS,GACxB,GAAImS,GAAa3b,KAAK4b,gBACtB5b,MAAKic,aAAaN,EAAYK,EAAOxS,IAKvCsS,gBAAiB,SAASI,EAAWC,GAEnC,GAAIC,GAAYzc,EAAE0c,OAAOrc,KAAKwH,UAAU,cAAc0U,EAGlDvc,GAAEwC,WAAWnC,KAAKsc,UACpBtc,KAAKsc,QAAQJ,EAAWE,EAAWD,IAOvCN,iBAAkB,SAASF,EAAYD,GACrC,GAAKA,EAAL,CAEA,GAAIa,GAAa5c,EAAE4I,KAAKmT,GAAWc,SAEnC7c,GAAEc,KAAK8b,EAAY,SAASP,GAC1Bhc,KAAKic,aAAaN,EAAYK,EAAON,EAAUM,KAC9Chc,QAGL4b,eAAgB,WACd,MAAO5b,MAAKwH,UAAU,eAGxByU,aAAc,SAASN,EAAYK,EAAOxS,GACxC,GAAI1H,GAAS6Z,EAAWnS,EAExB,KAAK1H,EACH,KAAM,IAAIlC,GAAWmH,MAAM,WAAayC,EAAa,oCAGvDxJ,MAAKgc,MAAMA,EAAOxS,EAAY7J,EAAE8G,KAAK3E,EAAQ6Z,KAI/CnU,UAAW5H,EAAWiI,iBASxBjI,EAAW6c,YAAc,SAAS3Z,GAChC9C,KAAK8C,QAAUA,EACf9C,KAAKiZ,mBAAmBnW,GACxB9C,KAAK0c,eAAiB,GAAI9c,GAAWmM,UACrC/L,KAAK2c,cACLhd,EAAEgB,OAAOX,KAAM8C,GACf9C,KAAK4c,eACL5c,KAAKgD,WAAWjB,MAAM/B,KAAMiC,YAG9BtC,EAAEgB,OAAOf,EAAW6c,YAAY7b,UAAWlB,EAASwD,QAGlDF,WAAY,aAGZmC,QAAS,WACPnF,KAAKuE,SAASY,QAAQpD,MAAM/B,KAAKuE,SAAUtC,YAI7CsD,QAAS,WACP,MAAOvF,MAAK6F,OAAON,QAAQxD,MAAM/B,KAAK6F,OAAQ5D,YAMhD4a,eAAgB,SAASC,GACvB9c,KAAK0c,eAAehc,IAAIoc,IAM1BC,MAAO,SAASja,GACd9C,KAAKiJ,cAAc,eAAgBnG,GACnC9C,KAAK0c,eAAenQ,IAAIzJ,EAAS9C,MACjCA,KAAKiJ,cAAc,QAASnG,IAO9BqM,WAAY,SAASG,GACnB,MAAOtP,MAAKgd,eAAe7N,WAAWG,IAIxCS,aAAc,WACZ,MAAO/P,MAAKgd,eAAejN,gBAM7BH,aAAc,SAASlC,GACrB,MAAO1N,MAAKgd,eAAepN,aAAalC,IAM1C2L,UAAW,SAAS3L,GAClB,MAAO1N,MAAKgd,eAAetN,IAAIhC,IAIjCiC,WAAY,WACV,MAAO3P,MAAKgd,eAAerN,cAI7B5P,OAAQ,SAASkd,EAAaC,GAG5B,GAAIC,GAAcvd,EAAWwd,OAAOC,SAASH,GAIzChb,EAAO8B,EAAMnC,KAAKI,UAItB,OAHAC,GAAKob,QAAQtd,MAGNmd,EAAYI,OAAOxb,MAAMob,EAAajb,IAM/CuX,iBAAkB,WAChB,MAAO,IAAI7Z,GAAWqP,eAKxBgK,mBAAoB,SAASnW,GAC3B,GAAIwM,GAAU3P,EAAEwC,WAAWnC,KAAKsP,SAAWtP,KAAKsP,QAAQxM,GAAW9C,KAAKsP,WAExEtP,MAAKuZ,oBAGL,IAAIiE,GAAgB5d,EAAW4H,UAAU1E,EAAS,UAYlD,OATInD,GAAEwC,WAAWqb,KACfA,EAAgBA,EAAc3b,KAAK7B,KAAM8C,IAI3CnD,EAAEgB,OAAO2O,EAASkO,GAElBxd,KAAKmP,WAAWG,GAETtP,MAITuZ,mBAAoB,WAClBvZ,KAAKgd,eAAiBhd,KAAKyZ,mBAE3BzZ,KAAKqK,SAASrK,KAAKgd,eAAgB,oBAAqB,SAAS1Z,GAC/DtD,KAAKiJ,cAAc,oBAAqB3F,KAG1CtD,KAAKqK,SAASrK,KAAKgd,eAAgB,aAAc,SAAS1Z,EAAMoK,GAC9D1N,KAAKsD,GAAQoK,EACb1N,KAAKiJ,cAAc,aAAc3F,EAAMoK,KAGzC1N,KAAKqK,SAASrK,KAAKgd,eAAgB,uBAAwB,SAAS1Z,GAClEtD,KAAKiJ,cAAc,uBAAwB3F,KAG7CtD,KAAKqK,SAASrK,KAAKgd,eAAgB,gBAAiB,SAAS1Z,EAAMoK,SAC1D1N,MAAKsD,GACZtD,KAAKiJ,cAAc,gBAAiB3F,EAAMoK,MAK9CkP,aAAc,WACZ5c,KAAK2F,YAAchG,EAAEqJ,OAAOhJ,KAAM,gBAAkB,SACpDA,KAAK8G,QAAUnH,EAAEqJ,OAAOhJ,KAAM,YAAcN,EAASkD,MAAM8D,MAAMI,QAAQ9G,KAAK2F,aAC9E3F,KAAK4F,KAAOjG,EAAEqJ,OAAOhJ,KAAM,SAAWA,KAAK8G,QAAQlB,KACnD5F,KAAKuE,SAAW5E,EAAEqJ,OAAOhJ,KAAM,aAAeA,KAAK8G,QAAQvC,SAC3DvE,KAAK6F,OAASlG,EAAEqJ,OAAOhJ,KAAM,WAAaA,KAAK8G,QAAQjB,QAKzDoD,cAAerJ,EAAWqJ,cAG1BzB,UAAW5H,EAAWiI,iBAIxBjI,EAAW6c,YAAY9b,OAASf,EAAWe,OAS3Cf,EAAWwd,OAAS,SAASK,EAAYC,EAAK5a,GAC5C9C,KAAKyd,WAAaA,EAClBzd,KAAK8C,QAAUnD,EAAEgB,UAAWX,KAAK8C,QAASA,GAG1C9C,KAAKgD,WAAaF,EAAQE,YAAchD,KAAKgD,WAG7ChD,KAAK2c,cAEL3c,KAAK2d,kCAIL3d,KAAK0d,IAAMA,EAEP/d,EAAEwC,WAAWnC,KAAKgD,aACpBhD,KAAKgD,WAAWya,EAAYC,EAAK1d,KAAK8C,UAI1ClD,EAAWwd,OAAOzc,OAASf,EAAWe,OAItChB,EAAEgB,OAAOf,EAAWwd,OAAOxc,UAAWlB,EAASwD,QAG7C0a,iBAAiB,EAIjB5a,WAAY,aAIZ6Z,eAAgB,SAASpZ,GACvBzD,KAAK6d,sBAAsBnd,IAAI+C,IAMjCqa,aAAc,SAASra,GACrBzD,KAAK+d,oBAAoBrd,IAAI+C,IAI/BsZ,MAAO,SAASja,GAEV9C,KAAKge,iBAGTre,EAAEc,KAAKT,KAAK2c,WAAY,SAASsB,GAE3BA,EAAIL,iBACNK,EAAIlB,MAAMja,KAKd9C,KAAKiJ,cAAc,eAAgBnG,GAEnC9C,KAAK6d,sBAAsBtR,IAAIzJ,EAAS9C,MACxCA,KAAKge,gBAAiB,EAEtBhe,KAAKiJ,cAAc,QAASnG,KAK9Bob,KAAM,WAECle,KAAKge,iBACVhe,KAAKge,gBAAiB,EAEtBhe,KAAKiJ,cAAc,eAInBtJ,EAAEc,KAAKT,KAAK2c,WAAY,SAASsB,GAAOA,EAAIC,SAG5Cle,KAAK+d,oBAAoBxR,IAAI3E,OAAW5H,MAGxCA,KAAK6d,sBAAsB/X,QAC3B9F,KAAK+d,oBAAoBjY,QAEzB9F,KAAKiJ,cAAc,UAKrBkV,cAAe,SAASjB,EAAkBkB,GACxCpe,KAAKqe,qBAAqBnB,EAAkBkB,IAK9CC,qBAAsB,SAAS9O,EAAY6O,GAEzC,GAAK7O,EAAL,CAGA,GAAIrN,GAAOvC,EAAEub,SACXlb,KACAA,KAAK0d,IACLhe,EACAE,EACAF,EAAS6H,EAAG5H,EACZye,GAGF7O,GAAWxN,MAAM/B,KAAMkC,KAMzByb,gCAAiC,WAC/B3d,KAAK6d,sBAAwB,GAAIje,GAAWmM,UAC5C/L,KAAK+d,oBAAsB,GAAIne,GAAWmM,WAK5C9C,cAAerJ,EAAWqJ,gBAI5BtJ,EAAEgB,OAAOf,EAAWwd,QAGlBG,OAAQ,SAASG,EAAKT,EAAaC,GACjC,GAAInd,GAAS2d,EAITU,EAAapa,EAAMnC,KAAKI,UAC5Bmc,GAAWlG,OAAO,EAAG,GAKrB+E,EAAcA,EAAYtS,MAAM,IAChC,IAAIvI,GAAS6a,EAAY7a,OAGrBkc,IAWJ,OAVAA,GAAkBlc,EAAS,GAAK8a,EAGhCvd,EAAEc,KAAKwc,EAAa,SAASQ,EAAYlN,GACvC,GAAIgO,GAAexe,CACnBA,GAASC,KAAKwe,WAAWD,EAAcd,EAAYC,EAAKR,GACxDld,KAAKye,qBAAqBF,EAAcxe,EAAQue,EAAkB/N,GAAI6N,IACrEpe,MAGID,GAGTye,WAAY,SAASD,EAAcd,EAAYC,EAAKgB,GAClD,GAAI5b,GAAUnD,EAAEgB,UAAW+d,GACvBvB,EAAcnd,KAAKqd,SAASqB,GAG5B3e,EAASwe,EAAad,EAU1B,OARK1d,KAEHA,EAAS,GAAIod,GAAYM,EAAYC,EAAK5a,GAC1Cyb,EAAad,GAAc1d,EAE3Bwe,EAAa5B,WAAWc,GAAc1d,GAGjCA,GASTsd,SAAU,SAASH,GACjB,GAAIC,GAAcvd,EAAWwd,MAE7B,OAAKF,GAMDA,EAAiBtc,oBAAqBuc,GACjCD,EAGFA,EAAiByB,aAAexB,EAT9BA,GAeXsB,qBAAsB,SAASF,EAAcxe,EAAQ2e,EAAKxc,GACxD,GAAIqE,GAAKvG,KAAK4e,WAAWF,GACrBd,EAAkB5d,KAAK6e,oBAAoBH,EAAK3e,EAEhDwG,IACFxG,EAAOoe,cAAc5X,EAAIrE,GAG3BlC,KAAK8e,oBAAoBP,EAAcxe,EAAQ6d,IAGjDiB,oBAAqB,SAASH,EAAK3e,GACjC,GAAIgf,EAEJ,OAAIpf,GAAEwC,WAAWuc,IAASA,EAAI9d,oBAAqBhB,GAAWwd,QAC5D2B,EAAMhf,EAAOgF,YAAYnE,UAAUgd,gBAC5Bje,EAAE2S,YAAYyM,IAAO,EAAOA,GAGjCpf,EAAE6D,SAASkb,IACbK,EAAML,EAAId,gBACHje,EAAE2S,YAAYyM,IAAO,EAAOA,IAG9B,GAGTH,WAAY,SAASF,GACnB,OAAI/e,EAAEwC,WAAWuc,IAAUA,EAAI9d,oBAAqBhB,GAAWwd,OAI3Dzd,EAAE6D,SAASkb,GACNA,EAAIlf,OAGN,KAPEkf,GAUXI,oBAAqB,SAASP,EAAcxe,EAAQ6d,GAClD7d,EAAO6d,gBAAkB7d,EAAO6d,iBAAmBA,EAE9C7d,EAAO6d,kBAAqB7d,EAAOif,8BAIxCjf,EAAOif,6BAA8B,EAErCT,EAAa1B,eAAe,SAAS/Z,GAC/B/C,EAAO6d,iBACT7d,EAAOgd,MAAMja,SAOdlD"} \ No newline at end of file diff --git a/lib/backbone.marionette.min.js b/lib/backbone.marionette.min.js index 871c2d52db..899352a5ec 100644 --- a/lib/backbone.marionette.min.js +++ b/lib/backbone.marionette.min.js @@ -1,6 +1,6 @@ // MarionetteJS (Backbone.Marionette) // ---------------------------------- -// v2.2.0 +// v2.2.1 // // Copyright (c)2014 Derick Bailey, Muted Solutions, LLC. // Distributed under MIT license @@ -18,6 +18,6 @@ -!function(a,b){if("function"==typeof define&&define.amd)define(["backbone","underscore"],function(c,d){return a.Marionette=b(a,c,d)});else if("undefined"!=typeof exports){var c=require("backbone"),d=require("underscore");module.exports=b(a,c,d)}else a.Marionette=b(a,a.Backbone,a._)}(this,function(a,b,c){"use strict";!function(a,b){var c=a.ChildViewContainer;return a.ChildViewContainer=function(a,b){var c=function(a){this._views={},this._indexByModel={},this._indexByCustom={},this._updateLength(),b.each(a,this.add,this)};b.extend(c.prototype,{add:function(a,b){var c=a.cid;return this._views[c]=a,a.model&&(this._indexByModel[a.model.cid]=c),b&&(this._indexByCustom[b]=c),this._updateLength(),this},findByModel:function(a){return this.findByModelCid(a.cid)},findByModelCid:function(a){var b=this._indexByModel[a];return this.findByCid(b)},findByCustom:function(a){var b=this._indexByCustom[a];return this.findByCid(b)},findByIndex:function(a){return b.values(this._views)[a]},findByCid:function(a){return this._views[a]},remove:function(a){var c=a.cid;return a.model&&delete this._indexByModel[a.model.cid],b.any(this._indexByCustom,function(a,b){return a===c?(delete this._indexByCustom[b],!0):void 0},this),delete this._views[c],this._updateLength(),this},call:function(a){this.apply(a,b.tail(arguments))},apply:function(a,c){b.each(this._views,function(d){b.isFunction(d[a])&&d[a].apply(d,c||[])})},_updateLength:function(){this.length=b.size(this._views)}});var d=["forEach","each","map","find","detect","filter","select","reject","every","all","some","any","include","contains","invoke","toArray","first","initial","rest","last","without","isEmpty","pluck"];return b.each(d,function(a){c.prototype[a]=function(){var c=b.values(this._views),d=[c].concat(b.toArray(arguments));return b[a].apply(b,d)}}),c}(a,b),a.ChildViewContainer.VERSION="0.1.4",a.ChildViewContainer.noConflict=function(){return a.ChildViewContainer=c,this},a.ChildViewContainer}(b,c),function(a,b){var c=a.Wreqr,d=a.Wreqr={};return a.Wreqr.VERSION="1.3.1",a.Wreqr.noConflict=function(){return a.Wreqr=c,this},d.Handlers=function(a,b){var c=function(a){this.options=a,this._wreqrHandlers={},b.isFunction(this.initialize)&&this.initialize(a)};return c.extend=a.Model.extend,b.extend(c.prototype,a.Events,{setHandlers:function(a){b.each(a,function(a,c){var d=null;b.isObject(a)&&!b.isFunction(a)&&(d=a.context,a=a.callback),this.setHandler(c,a,d)},this)},setHandler:function(a,b,c){var d={callback:b,context:c};this._wreqrHandlers[a]=d,this.trigger("handler:add",a,b,c)},hasHandler:function(a){return!!this._wreqrHandlers[a]},getHandler:function(a){var b=this._wreqrHandlers[a];if(b)return function(){var a=Array.prototype.slice.apply(arguments);return b.callback.apply(b.context,a)}},removeHandler:function(a){delete this._wreqrHandlers[a]},removeAllHandlers:function(){this._wreqrHandlers={}}}),c}(a,b),d.CommandStorage=function(){var c=function(a){this.options=a,this._commands={},b.isFunction(this.initialize)&&this.initialize(a)};return b.extend(c.prototype,a.Events,{getCommands:function(a){var b=this._commands[a];return b||(b={command:a,instances:[]},this._commands[a]=b),b},addCommand:function(a,b){var c=this.getCommands(a);c.instances.push(b)},clearCommands:function(a){var b=this.getCommands(a);b.instances=[]}}),c}(),d.Commands=function(a){return a.Handlers.extend({storageType:a.CommandStorage,constructor:function(b){this.options=b||{},this._initializeStorage(this.options),this.on("handler:add",this._executeCommands,this);var c=Array.prototype.slice.call(arguments);a.Handlers.prototype.constructor.apply(this,c)},execute:function(a,b){a=arguments[0],b=Array.prototype.slice.call(arguments,1),this.hasHandler(a)?this.getHandler(a).apply(this,b):this.storage.addCommand(a,b)},_executeCommands:function(a,c,d){var e=this.storage.getCommands(a);b.each(e.instances,function(a){c.apply(d,a)}),this.storage.clearCommands(a)},_initializeStorage:function(a){var c,d=a.storageType||this.storageType;c=b.isFunction(d)?new d:d,this.storage=c}})}(d),d.RequestResponse=function(a){return a.Handlers.extend({request:function(){var a=arguments[0],b=Array.prototype.slice.call(arguments,1);return this.hasHandler(a)?this.getHandler(a).apply(this,b):void 0}})}(d),d.EventAggregator=function(a,b){var c=function(){};return c.extend=a.Model.extend,b.extend(c.prototype,a.Events),c}(a,b),d.Channel=function(){var c=function(b){this.vent=new a.Wreqr.EventAggregator,this.reqres=new a.Wreqr.RequestResponse,this.commands=new a.Wreqr.Commands,this.channelName=b};return b.extend(c.prototype,{reset:function(){return this.vent.off(),this.vent.stopListening(),this.reqres.removeAllHandlers(),this.commands.removeAllHandlers(),this},connectEvents:function(a,b){return this._connect("vent",a,b),this},connectCommands:function(a,b){return this._connect("commands",a,b),this},connectRequests:function(a,b){return this._connect("reqres",a,b),this},_connect:function(a,c,d){if(c){d=d||this;var e="vent"===a?"on":"setHandler";b.each(c,function(c,f){this[a][e](f,b.bind(c,d))},this)}}}),c}(d),d.radio=function(a){var c=function(){this._channels={},this.vent={},this.commands={},this.reqres={},this._proxyMethods()};b.extend(c.prototype,{channel:function(a){if(!a)throw new Error("Channel must receive a name");return this._getChannel(a)},_getChannel:function(b){var c=this._channels[b];return c||(c=new a.Channel(b),this._channels[b]=c),c},_proxyMethods:function(){b.each(["vent","commands","reqres"],function(a){b.each(d[a],function(b){this[a][b]=e(this,a,b)},this)},this)}});var d={vent:["on","off","trigger","once","stopListening","listenTo","listenToOnce"],commands:["execute","setHandler","setHandlers","removeHandler","removeAllHandlers"],reqres:["request","setHandler","setHandlers","removeHandler","removeAllHandlers"]},e=function(a,b,c){return function(d){var e=a._getChannel(d)[b],f=Array.prototype.slice.call(arguments,1);return e[c].apply(e,f)}};return new c}(d),a.Wreqr}(b,c);var d=a.Marionette,e=b.Marionette={};e.VERSION="2.2.0",e.noConflict=function(){return a.Marionette=d,this},b.Marionette=e,e.Deferred=b.$.Deferred;var f=Array.prototype.slice;e.extend=b.Model.extend,e.getOption=function(a,b){if(a&&b){var c;return c=a.options&&void 0!==a.options[b]?a.options[b]:a[b]}},e.proxyGetOption=function(a){return e.getOption(this,a)},e.normalizeMethods=function(a){var b={};return c.each(a,function(a,d){c.isFunction(a)||(a=this[a]),a&&(b[d]=a)},this),b},e.normalizeUIString=function(a,b){return a.replace(/@ui\.[a-zA-Z_$0-9]*/g,function(a){return b[a.slice(4)]})},e.normalizeUIKeys=function(a,b){return"undefined"!=typeof a?(a=c.clone(a),c.each(c.keys(a),function(c){var d=e.normalizeUIString(c,b);d!==c&&(a[d]=a[c],delete a[c])}),a):void 0},e.normalizeUIValues=function(a,b){return"undefined"!=typeof a?(c.each(a,function(d,f){c.isString(d)&&(a[f]=e.normalizeUIString(d,b))}),a):void 0},e.actAsCollection=function(a,b){var d=["forEach","each","map","find","detect","filter","select","reject","every","all","some","any","include","contains","invoke","toArray","first","initial","rest","last","without","isEmpty","pluck"];c.each(d,function(d){a[d]=function(){var a=c.values(c.result(this,b)),e=[a].concat(c.toArray(arguments));return c[d].apply(c,e)}})},e.triggerMethod=function(a){function b(a,b,c){return c.toUpperCase()}var d,e=/(^|:)(\w)/gi,f="on"+a.replace(e,b),g=this[f];return c.isFunction(g)&&(d=g.apply(this,c.tail(arguments))),c.isFunction(this.trigger)&&this.trigger.apply(this,arguments),d},e.triggerMethodOn=function(a,b){var d,f=c.tail(arguments,2);return d=c.isFunction(a.triggerMethod)?a.triggerMethod:e.triggerMethod,d.apply(a,[b].concat(f))},e.MonitorDOMRefresh=function(a){function d(a){a._isShown=!0,f(a)}function e(a){a._isRendered=!0,f(a)}function f(a){a._isShown&&a._isRendered&&g(a)&&c.isFunction(a.triggerMethod)&&a.triggerMethod("dom:refresh")}function g(c){return b.$.contains(a,c.el)}return function(a){a.listenTo(a,"show",function(){d(a)}),a.listenTo(a,"render",function(){e(a)})}}(document.documentElement),function(a){function b(b,d,e,f){var g=f.split(/\s+/);c.each(g,function(c){var f=b[c];if(!f)throw new a.Error('Method "'+c+'" was configured as an event handler, but does not exist.');b.listenTo(d,e,f)})}function d(a,b,c,d){a.listenTo(b,c,d)}function e(a,b,d,e){var f=e.split(/\s+/);c.each(f,function(c){var e=a[c];a.stopListening(b,d,e)})}function f(a,b,c,d){a.stopListening(b,c,d)}function g(b,d,e,f,g){if(d&&e){if(!c.isFunction(e)&&!c.isObject(e))throw new a.Error({message:"Bindings must be an object or function.",url:"marionette.functions.html#marionettebindentityevents"});c.isFunction(e)&&(e=e.call(b)),c.each(e,function(a,e){c.isFunction(a)?f(b,d,e,a):g(b,d,e,a)})}}a.bindEntityEvents=function(a,c,e){g(a,c,e,d,b)},a.unbindEntityEvents=function(a,b,c){g(a,b,c,f,e)},a.proxyBindEntityEvents=function(b,c){return a.bindEntityEvents(this,b,c)},a.proxyUnbindEntityEvents=function(b,c){return a.unbindEntityEvents(this,b,c)}}(e);var g=["description","fileName","lineNumber","name","message","number"];return e.Error=e.extend.call(Error,{urlRoot:"http://marionettejs.com/docs/"+e.VERSION+"/",constructor:function(a,b){c.isObject(a)?(b=a,a=b.message):b||(b={});var d=Error.call(this,a);c.extend(this,c.pick(d,g),c.pick(b,g)),this.captureStackTrace(),b.url&&(this.url=this.urlRoot+b.url)},captureStackTrace:function(){Error.captureStackTrace&&Error.captureStackTrace(this,e.Error)},toString:function(){return this.name+": "+this.message+(this.url?" See: "+this.url:"")}}),e.Error.extend=e.extend,e.Callbacks=function(){this._deferred=e.Deferred(),this._callbacks=[]},c.extend(e.Callbacks.prototype,{add:function(a,b){var d=c.result(this._deferred,"promise");this._callbacks.push({cb:a,ctx:b}),d.then(function(c){b&&(c.context=b),a.call(c.context,c.options)})},run:function(a,b){this._deferred.resolve({options:a,context:b})},reset:function(){var a=this._callbacks;this._deferred=e.Deferred(),this._callbacks=[],c.each(a,function(a){this.add(a.cb,a.ctx)},this)}}),e.Controller=function(a){this.options=a||{},c.isFunction(this.initialize)&&this.initialize(this.options)},e.Controller.extend=e.extend,c.extend(e.Controller.prototype,b.Events,{destroy:function(){var a=f.call(arguments);return this.triggerMethod.apply(this,["before:destroy"].concat(a)),this.triggerMethod.apply(this,["destroy"].concat(a)),this.stopListening(),this.off(),this},triggerMethod:e.triggerMethod,getOption:e.proxyGetOption}),e.Object=function(a){this.options=c.extend({},c.result(this,"options"),a),this.initialize.apply(this,arguments)},e.Object.extend=e.extend,c.extend(e.Object.prototype,{initialize:function(){},destroy:function(){this.triggerMethod("before:destroy"),this.triggerMethod("destroy"),this.stopListening()},triggerMethod:e.triggerMethod,getOption:e.proxyGetOption,bindEntityEvents:e.proxyBindEntityEvents,unbindEntityEvents:e.proxyUnbindEntityEvents}),c.extend(e.Object.prototype,b.Events),e.Region=function(a){if(this.options=a||{},this.el=this.getOption("el"),this.el=this.el instanceof b.$?this.el[0]:this.el,!this.el)throw new e.Error({name:"NoElError",message:'An "el" must be specified for a region.'});if(this.$el=this.getEl(this.el),this.initialize){var c=f.apply(arguments);this.initialize.apply(this,c)}},c.extend(e.Region,{buildRegion:function(a,b){if(c.isString(a))return this._buildRegionFromSelector(a,b);if(a.selector||a.el||a.regionClass)return this._buildRegionFromObject(a,b);if(c.isFunction(a))return this._buildRegionFromRegionClass(a);throw new e.Error({message:"Improper region configuration type.",url:"marionette.region.html#region-configuration-types"})},_buildRegionFromSelector:function(a,b){return new b({el:a})},_buildRegionFromObject:function(a,d){var e=a.regionClass||d,f=c.omit(a,"selector","regionClass");a.selector&&!f.el&&(f.el=a.selector);var g=new e(f);return a.parentEl&&(g.getEl=function(d){if(c.isObject(d))return b.$(d);var e=a.parentEl;return c.isFunction(e)&&(e=e()),e.find(d)}),g},_buildRegionFromRegionClass:function(a){return new a}}),c.extend(e.Region.prototype,b.Events,{show:function(a,b){this._ensureElement();var d=b||{},f=a!==this.currentView,g=!!d.preventDestroy,h=!!d.forceShow,i=!!this.currentView,j=!g&&f,k=f||h;return i&&this.triggerMethod("before:swapOut",this.currentView),j&&this.empty(),k?(a.once("destroy",c.bind(this.empty,this)),a.render(),i&&this.triggerMethod("before:swap",a),this.triggerMethod("before:show",a),e.triggerMethodOn(a,"before:show"),i&&this.triggerMethod("swapOut",this.currentView),this.attachHtml(a),this.currentView=a,i&&this.triggerMethod("swap",a),this.triggerMethod("show",a),e.triggerMethodOn(a,"show"),this):this},_ensureElement:function(){if(c.isObject(this.el)||(this.$el=this.getEl(this.el),this.el=this.$el[0]),!this.$el||0===this.$el.length)throw new e.Error('An "el" '+this.$el.selector+" must exist in DOM")},getEl:function(a){return b.$(a)},attachHtml:function(a){this.el.innerHTML="",this.el.appendChild(a.el)},empty:function(){var a=this.currentView;if(a)return this.triggerMethod("before:empty",a),this._destroyView(),this.triggerMethod("empty",a),delete this.currentView,this},_destroyView:function(){var a=this.currentView;a.destroy&&!a.isDestroyed?a.destroy():a.remove&&a.remove()},attachView:function(a){return this.currentView=a,this},hasView:function(){return!!this.currentView},reset:function(){return this.empty(),this.$el&&(this.el=this.$el.selector),delete this.$el,this},getOption:e.proxyGetOption,triggerMethod:e.triggerMethod}),e.Region.extend=e.extend,e.RegionManager=function(a){var b=a.Controller.extend({constructor:function(b){this._regions={},a.Controller.call(this,b)},addRegions:function(a,b){c.isFunction(a)&&(a=a.apply(this,arguments));var d={};return c.each(a,function(a,e){c.isString(a)&&(a={selector:a}),a.selector&&(a=c.defaults({},a,b));var f=this.addRegion(e,a);d[e]=f},this),d},addRegion:function(b,c){var d;return d=c instanceof a.Region?c:a.Region.buildRegion(c,a.Region),this.triggerMethod("before:add:region",b,d),this._store(b,d),this.triggerMethod("add:region",b,d),d},get:function(a){return this._regions[a]},getRegions:function(){return c.clone(this._regions)},removeRegion:function(a){var b=this._regions[a];return this._remove(a,b),b},removeRegions:function(){var a=this.getRegions();return c.each(this._regions,function(a,b){this._remove(b,a)},this),a},emptyRegions:function(){var a=this.getRegions();return c.each(a,function(a){a.empty()},this),a},destroy:function(){return this.removeRegions(),a.Controller.prototype.destroy.apply(this,arguments)},_store:function(a,b){this._regions[a]=b,this._setLength()},_remove:function(a,b){this.triggerMethod("before:remove:region",a,b),b.empty(),b.stopListening(),delete this._regions[a],this._setLength(),this.triggerMethod("remove:region",a,b)},_setLength:function(){this.length=c.size(this._regions)}});return a.actAsCollection(b.prototype,"_regions"),b}(e),e.TemplateCache=function(a){this.templateId=a},c.extend(e.TemplateCache,{templateCaches:{},get:function(a){var b=this.templateCaches[a];return b||(b=new e.TemplateCache(a),this.templateCaches[a]=b),b.load()},clear:function(){var a,b=f.call(arguments),c=b.length;if(c>0)for(a=0;c>a;a++)delete this.templateCaches[b[a]];else this.templateCaches={}}}),c.extend(e.TemplateCache.prototype,{load:function(){if(this.compiledTemplate)return this.compiledTemplate;var a=this.loadTemplate(this.templateId);return this.compiledTemplate=this.compileTemplate(a),this.compiledTemplate},loadTemplate:function(a){var c=b.$(a).html();if(!c||0===c.length)throw new e.Error({name:"NoTemplateError",message:'Could not find template: "'+a+'"'});return c},compileTemplate:function(a){return c.template(a)}}),e.Renderer={render:function(a,b){if(!a)throw new e.Error({name:"TemplateNotFoundError",message:"Cannot render the template since its false, null or undefined."});var c;return(c="function"==typeof a?a:e.TemplateCache.get(a))(b)}},e.View=b.View.extend({constructor:function(a){c.bindAll(this,"render"),this.options=c.extend({},c.result(this,"options"),c.isFunction(a)?a.call(this):a),this._behaviors=e.Behaviors(this),b.View.apply(this,arguments),e.MonitorDOMRefresh(this),this.listenTo(this,"show",this.onShowCalled)},getTemplate:function(){return this.getOption("template")},serializeModel:function(a){return a.toJSON.apply(a,f.call(arguments,1))},mixinTemplateHelpers:function(a){a=a||{};var b=this.getOption("templateHelpers");return c.isFunction(b)&&(b=b.call(this)),c.extend(a,b)},normalizeUIKeys:function(a){var b=c.result(this,"ui"),d=c.result(this,"_uiBindings");return e.normalizeUIKeys(a,d||b)},normalizeUIValues:function(a){var b=c.result(this,"ui"),d=c.result(this,"_uiBindings");return e.normalizeUIValues(a,d||b)},configureTriggers:function(){if(this.triggers){var a={},b=this.normalizeUIKeys(c.result(this,"triggers"));return c.each(b,function(b,c){a[c]=this._buildViewTrigger(b)},this),a}},delegateEvents:function(a){return this._delegateDOMEvents(a),this.bindEntityEvents(this.model,this.getOption("modelEvents")),this.bindEntityEvents(this.collection,this.getOption("collectionEvents")),c.each(this._behaviors,function(a){a.bindEntityEvents(this.model,a.getOption("modelEvents")),a.bindEntityEvents(this.collection,a.getOption("collectionEvents"))},this),this},_delegateDOMEvents:function(a){var d=a||this.events;c.isFunction(d)&&(d=d.call(this)),d=this.normalizeUIKeys(d),c.isUndefined(a)&&(this.events=d);var e={},f=c.result(this,"behaviorEvents")||{},g=this.configureTriggers(),h=c.result(this,"behaviorTriggers")||{};c.extend(e,f,d,g,h),b.View.prototype.delegateEvents.call(this,e)},undelegateEvents:function(){var a=f.call(arguments);return b.View.prototype.undelegateEvents.apply(this,a),this.unbindEntityEvents(this.model,this.getOption("modelEvents")),this.unbindEntityEvents(this.collection,this.getOption("collectionEvents")),c.each(this._behaviors,function(a){a.unbindEntityEvents(this.model,a.getOption("modelEvents")),a.unbindEntityEvents(this.collection,a.getOption("collectionEvents"))},this),this},onShowCalled:function(){},_ensureViewIsIntact:function(){if(this.isDestroyed)throw new e.Error({name:"ViewDestroyedError",message:'View (cid: "'+this.cid+'") has already been destroyed and cannot be used.'})},destroy:function(){if(!this.isDestroyed){var a=f.call(arguments);return this.triggerMethod.apply(this,["before:destroy"].concat(a)),this.isDestroyed=!0,this.triggerMethod.apply(this,["destroy"].concat(a)),this.unbindUIElements(),this.remove(),c.invoke(this._behaviors,"destroy",a),this}},bindUIElements:function(){this._bindUIElements(),c.invoke(this._behaviors,this._bindUIElements)},_bindUIElements:function(){if(this.ui){this._uiBindings||(this._uiBindings=this.ui);var a=c.result(this,"_uiBindings");this.ui={},c.each(c.keys(a),function(b){var c=a[b];this.ui[b]=this.$(c)},this)}},unbindUIElements:function(){this._unbindUIElements(),c.invoke(this._behaviors,this._unbindUIElements)},_unbindUIElements:function(){this.ui&&this._uiBindings&&(c.each(this.ui,function(a,b){delete this.ui[b]},this),this.ui=this._uiBindings,delete this._uiBindings)},_buildViewTrigger:function(a){var b=c.isObject(a),d=c.defaults({},b?a:{},{preventDefault:!0,stopPropagation:!0}),e=b?d.event:a;return function(a){a&&(a.preventDefault&&d.preventDefault&&a.preventDefault(),a.stopPropagation&&d.stopPropagation&&a.stopPropagation());var b={view:this,model:this.model,collection:this.collection};this.triggerMethod(e,b)}},setElement:function(){var a=b.View.prototype.setElement.apply(this,arguments);return c.invoke(this._behaviors,"proxyViewProperties",this),a},triggerMethod:function(){var a=arguments,b=e.triggerMethod,d=b.apply(this,a);return c.each(this._behaviors,function(c){b.apply(c,a)}),d},normalizeMethods:e.normalizeMethods,getOption:e.proxyGetOption,bindEntityEvents:e.proxyBindEntityEvents,unbindEntityEvents:e.proxyUnbindEntityEvents}),e.ItemView=e.View.extend({constructor:function(){e.View.apply(this,arguments)},serializeData:function(){var a={};return this.model?a=c.partial(this.serializeModel,this.model).apply(this,arguments):this.collection&&(a={items:c.partial(this.serializeCollection,this.collection).apply(this,arguments)}),a},serializeCollection:function(a){return a.toJSON.apply(a,f.call(arguments,1))},render:function(){return this._ensureViewIsIntact(),this.triggerMethod("before:render",this),this._renderTemplate(),this.bindUIElements(),this.triggerMethod("render",this),this},_renderTemplate:function(){var a=this.getTemplate();if(a!==!1){if(!a)throw new e.Error({name:"UndefinedTemplateError",message:"Cannot render the template since it is null or undefined."});var b=this.serializeData();b=this.mixinTemplateHelpers(b);var c=e.Renderer.render(a,b,this);return this.attachElContent(c),this}},attachElContent:function(a){return this.$el.html(a),this},destroy:function(){return this.isDestroyed?void 0:e.View.prototype.destroy.apply(this,arguments)}}),e.CollectionView=e.View.extend({childViewEventPrefix:"childview",constructor:function(a){var d=a||{};if(this.sort=c.isUndefined(d.sort)?!0:d.sort,d.collection&&!(d.collection instanceof b.Collection))throw new e.Error("The Collection option passed to this view needs to be an instance of a Backbone.Collection");this.once("render",this._initialEvents),this._initChildViewStorage(),e.View.apply(this,arguments),this.initRenderBuffer()},initRenderBuffer:function(){this.elBuffer=document.createDocumentFragment(),this._bufferedChildren=[]},startBuffering:function(){this.initRenderBuffer(),this.isBuffering=!0},endBuffering:function(){this.isBuffering=!1,this._triggerBeforeShowBufferedChildren(),this.attachBuffer(this,this.elBuffer),this._triggerShowBufferedChildren(),this.initRenderBuffer()},_triggerBeforeShowBufferedChildren:function(){this._isShown&&c.each(this._bufferedChildren,c.partial(this._triggerMethodOnChild,"before:show"))},_triggerShowBufferedChildren:function(){this._isShown&&(c.each(this._bufferedChildren,c.partial(this._triggerMethodOnChild,"show")),this._bufferedChildren=[])},_triggerMethodOnChild:function(a,b){e.triggerMethodOn(b,a)},_initialEvents:function(){this.collection&&(this.listenTo(this.collection,"add",this._onCollectionAdd),this.listenTo(this.collection,"remove",this._onCollectionRemove),this.listenTo(this.collection,"reset",this.render),this.sort&&this.listenTo(this.collection,"sort",this._sortViews))},_onCollectionAdd:function(a){this.destroyEmptyView();var b=this.getChildView(a),c=this.collection.indexOf(a);this.addChild(a,b,c)},_onCollectionRemove:function(a){var b=this.children.findByModel(a);this.removeChildView(b),this.checkEmpty()},onShowCalled:function(){this.children.each(c.partial(this._triggerMethodOnChild,"show"))},render:function(){return this._ensureViewIsIntact(),this.triggerMethod("before:render",this),this._renderChildren(),this.triggerMethod("render",this),this},resortView:function(){this.render()},_sortViews:function(){var a=this.collection.find(function(a,b){var c=this.children.findByModel(a);return!c||c._index!==b},this);a&&this.resortView()},_renderChildren:function(){this.destroyEmptyView(),this.destroyChildren(),this.isEmpty(this.collection)?this.showEmptyView():(this.triggerMethod("before:render:collection",this),this.startBuffering(),this.showCollection(),this.endBuffering(),this.triggerMethod("render:collection",this))},showCollection:function(){var a;this.collection.each(function(b,c){a=this.getChildView(b),this.addChild(b,a,c)},this)},showEmptyView:function(){var a=this.getEmptyView();if(a&&!this._showingEmptyView){this.triggerMethod("before:render:empty"),this._showingEmptyView=!0;var c=new b.Model;this.addEmptyView(c,a),this.triggerMethod("render:empty")}},destroyEmptyView:function(){this._showingEmptyView&&(this.triggerMethod("before:remove:empty"),this.destroyChildren(),delete this._showingEmptyView,this.triggerMethod("remove:empty"))},getEmptyView:function(){return this.getOption("emptyView")},addEmptyView:function(a,b){var d=this.getOption("emptyViewOptions")||this.getOption("childViewOptions");c.isFunction(d)&&(d=d.call(this));var f=this.buildChildView(a,b,d);this.proxyChildEvents(f),this._isShown&&e.triggerMethodOn(f,"before:show"),this.children.add(f),this.renderChildView(f,-1),this._isShown&&e.triggerMethodOn(f,"show")},getChildView:function(){var a=this.getOption("childView");if(!a)throw new e.Error({name:"NoChildViewError",message:'A "childView" must be specified'});return a},addChild:function(a,b,d){var e=this.getOption("childViewOptions");c.isFunction(e)&&(e=e.call(this,a,d));var f=this.buildChildView(a,b,e);return this._updateIndices(f,!0,d),this._addChildView(f,d),f},_updateIndices:function(a,b,c){this.sort&&(b?(a._index=c,this.children.each(function(b){b._index>=a._index&&b._index++})):this.children.each(function(b){b._index>=a._index&&b._index--}))},_addChildView:function(a,b){this.proxyChildEvents(a),this.triggerMethod("before:add:child",a),this.children.add(a),this.renderChildView(a,b),this._isShown&&!this.isBuffering&&e.triggerMethodOn(a,"show"),this.triggerMethod("add:child",a)},renderChildView:function(a,b){return a.render(),this.attachHtml(this,a,b),a},buildChildView:function(a,b,d){var e=c.extend({model:a},d);return new b(e)},removeChildView:function(a){return a&&(this.triggerMethod("before:remove:child",a),a.destroy?a.destroy():a.remove&&a.remove(),this.stopListening(a),this.children.remove(a),this.triggerMethod("remove:child",a),this._updateIndices(a,!1)),a},isEmpty:function(){return!this.collection||0===this.collection.length},checkEmpty:function(){this.isEmpty(this.collection)&&this.showEmptyView()},attachBuffer:function(a,b){a.$el.append(b)},attachHtml:function(a,b,c){a.isBuffering?(a.elBuffer.appendChild(b.el),a._bufferedChildren.push(b)):a._insertBefore(b,c)||a._insertAfter(b)},_insertBefore:function(a,b){var c,d=this.sort&&b0)for(a=0;c>a;a++)delete this.templateCaches[b[a]];else this.templateCaches={}}}),c.extend(e.TemplateCache.prototype,{load:function(){if(this.compiledTemplate)return this.compiledTemplate;var a=this.loadTemplate(this.templateId);return this.compiledTemplate=this.compileTemplate(a),this.compiledTemplate},loadTemplate:function(a){var c=b.$(a).html();if(!c||0===c.length)throw new e.Error({name:"NoTemplateError",message:'Could not find template: "'+a+'"'});return c},compileTemplate:function(a){return c.template(a)}}),e.Renderer={render:function(a,b){if(!a)throw new e.Error({name:"TemplateNotFoundError",message:"Cannot render the template since its false, null or undefined."});var c;return(c="function"==typeof a?a:e.TemplateCache.get(a))(b)}},e.View=b.View.extend({constructor:function(a){c.bindAll(this,"render"),this.options=c.extend({},c.result(this,"options"),c.isFunction(a)?a.call(this):a),this._behaviors=e.Behaviors(this),b.View.apply(this,arguments),e.MonitorDOMRefresh(this),this.listenTo(this,"show",this.onShowCalled)},getTemplate:function(){return this.getOption("template")},serializeModel:function(a){return a.toJSON.apply(a,f.call(arguments,1))},mixinTemplateHelpers:function(a){a=a||{};var b=this.getOption("templateHelpers");return c.isFunction(b)&&(b=b.call(this)),c.extend(a,b)},normalizeUIKeys:function(a){var b=c.result(this,"ui"),d=c.result(this,"_uiBindings");return e.normalizeUIKeys(a,d||b)},normalizeUIValues:function(a){var b=c.result(this,"ui"),d=c.result(this,"_uiBindings");return e.normalizeUIValues(a,d||b)},configureTriggers:function(){if(this.triggers){var a={},b=this.normalizeUIKeys(c.result(this,"triggers"));return c.each(b,function(b,c){a[c]=this._buildViewTrigger(b)},this),a}},delegateEvents:function(a){return this._delegateDOMEvents(a),this.bindEntityEvents(this.model,this.getOption("modelEvents")),this.bindEntityEvents(this.collection,this.getOption("collectionEvents")),c.each(this._behaviors,function(a){a.bindEntityEvents(this.model,a.getOption("modelEvents")),a.bindEntityEvents(this.collection,a.getOption("collectionEvents"))},this),this},_delegateDOMEvents:function(a){var d=a||this.events;c.isFunction(d)&&(d=d.call(this)),d=this.normalizeUIKeys(d),c.isUndefined(a)&&(this.events=d);var e={},f=c.result(this,"behaviorEvents")||{},g=this.configureTriggers(),h=c.result(this,"behaviorTriggers")||{};c.extend(e,f,d,g,h),b.View.prototype.delegateEvents.call(this,e)},undelegateEvents:function(){var a=f.call(arguments);return b.View.prototype.undelegateEvents.apply(this,a),this.unbindEntityEvents(this.model,this.getOption("modelEvents")),this.unbindEntityEvents(this.collection,this.getOption("collectionEvents")),c.each(this._behaviors,function(a){a.unbindEntityEvents(this.model,a.getOption("modelEvents")),a.unbindEntityEvents(this.collection,a.getOption("collectionEvents"))},this),this},onShowCalled:function(){},_ensureViewIsIntact:function(){if(this.isDestroyed)throw new e.Error({name:"ViewDestroyedError",message:'View (cid: "'+this.cid+'") has already been destroyed and cannot be used.'})},destroy:function(){if(!this.isDestroyed){var a=f.call(arguments);return this.triggerMethod.apply(this,["before:destroy"].concat(a)),this.isDestroyed=!0,this.triggerMethod.apply(this,["destroy"].concat(a)),this.unbindUIElements(),this.remove(),c.invoke(this._behaviors,"destroy",a),this}},bindUIElements:function(){this._bindUIElements(),c.invoke(this._behaviors,this._bindUIElements)},_bindUIElements:function(){if(this.ui){this._uiBindings||(this._uiBindings=this.ui);var a=c.result(this,"_uiBindings");this.ui={},c.each(c.keys(a),function(b){var c=a[b];this.ui[b]=this.$(c)},this)}},unbindUIElements:function(){this._unbindUIElements(),c.invoke(this._behaviors,this._unbindUIElements)},_unbindUIElements:function(){this.ui&&this._uiBindings&&(c.each(this.ui,function(a,b){delete this.ui[b]},this),this.ui=this._uiBindings,delete this._uiBindings)},_buildViewTrigger:function(a){var b=c.isObject(a),d=c.defaults({},b?a:{},{preventDefault:!0,stopPropagation:!0}),e=b?d.event:a;return function(a){a&&(a.preventDefault&&d.preventDefault&&a.preventDefault(),a.stopPropagation&&d.stopPropagation&&a.stopPropagation());var b={view:this,model:this.model,collection:this.collection};this.triggerMethod(e,b)}},setElement:function(){var a=b.View.prototype.setElement.apply(this,arguments);return c.invoke(this._behaviors,"proxyViewProperties",this),a},triggerMethod:function(){var a=arguments,b=e.triggerMethod,d=b.apply(this,a);return c.each(this._behaviors,function(c){b.apply(c,a)}),d},normalizeMethods:e.normalizeMethods,getOption:e.proxyGetOption,bindEntityEvents:e.proxyBindEntityEvents,unbindEntityEvents:e.proxyUnbindEntityEvents}),e.ItemView=e.View.extend({constructor:function(){e.View.apply(this,arguments)},serializeData:function(){var a={};return this.model?a=c.partial(this.serializeModel,this.model).apply(this,arguments):this.collection&&(a={items:c.partial(this.serializeCollection,this.collection).apply(this,arguments)}),a},serializeCollection:function(a){return a.toJSON.apply(a,f.call(arguments,1))},render:function(){return this._ensureViewIsIntact(),this.triggerMethod("before:render",this),this._renderTemplate(),this.bindUIElements(),this.triggerMethod("render",this),this},_renderTemplate:function(){var a=this.getTemplate();if(a!==!1){if(!a)throw new e.Error({name:"UndefinedTemplateError",message:"Cannot render the template since it is null or undefined."});var b=this.serializeData();b=this.mixinTemplateHelpers(b);var c=e.Renderer.render(a,b,this);return this.attachElContent(c),this}},attachElContent:function(a){return this.$el.html(a),this},destroy:function(){return this.isDestroyed?void 0:e.View.prototype.destroy.apply(this,arguments)}}),e.CollectionView=e.View.extend({childViewEventPrefix:"childview",constructor:function(a){var b=a||{};this.sort=c.isUndefined(b.sort)?!0:b.sort,this.once("render",this._initialEvents),this._initChildViewStorage(),e.View.apply(this,arguments),this.initRenderBuffer()},initRenderBuffer:function(){this.elBuffer=document.createDocumentFragment(),this._bufferedChildren=[]},startBuffering:function(){this.initRenderBuffer(),this.isBuffering=!0},endBuffering:function(){this.isBuffering=!1,this._triggerBeforeShowBufferedChildren(),this.attachBuffer(this,this.elBuffer),this._triggerShowBufferedChildren(),this.initRenderBuffer()},_triggerBeforeShowBufferedChildren:function(){this._isShown&&c.each(this._bufferedChildren,c.partial(this._triggerMethodOnChild,"before:show"))},_triggerShowBufferedChildren:function(){this._isShown&&(c.each(this._bufferedChildren,c.partial(this._triggerMethodOnChild,"show")),this._bufferedChildren=[])},_triggerMethodOnChild:function(a,b){e.triggerMethodOn(b,a)},_initialEvents:function(){this.collection&&(this.listenTo(this.collection,"add",this._onCollectionAdd),this.listenTo(this.collection,"remove",this._onCollectionRemove),this.listenTo(this.collection,"reset",this.render),this.sort&&this.listenTo(this.collection,"sort",this._sortViews))},_onCollectionAdd:function(a){this.destroyEmptyView();var b=this.getChildView(a),c=this.collection.indexOf(a);this.addChild(a,b,c)},_onCollectionRemove:function(a){var b=this.children.findByModel(a);this.removeChildView(b),this.checkEmpty()},onShowCalled:function(){this.children.each(c.partial(this._triggerMethodOnChild,"show"))},render:function(){return this._ensureViewIsIntact(),this.triggerMethod("before:render",this),this._renderChildren(),this.triggerMethod("render",this),this},resortView:function(){this.render()},_sortViews:function(){var a=this.collection.find(function(a,b){var c=this.children.findByModel(a);return!c||c._index!==b},this);a&&this.resortView()},_renderChildren:function(){this.destroyEmptyView(),this.destroyChildren(),this.isEmpty(this.collection)?this.showEmptyView():(this.triggerMethod("before:render:collection",this),this.startBuffering(),this.showCollection(),this.endBuffering(),this.triggerMethod("render:collection",this))},showCollection:function(){var a;this.collection.each(function(b,c){a=this.getChildView(b),this.addChild(b,a,c)},this)},showEmptyView:function(){var a=this.getEmptyView();if(a&&!this._showingEmptyView){this.triggerMethod("before:render:empty"),this._showingEmptyView=!0;var c=new b.Model;this.addEmptyView(c,a),this.triggerMethod("render:empty")}},destroyEmptyView:function(){this._showingEmptyView&&(this.triggerMethod("before:remove:empty"),this.destroyChildren(),delete this._showingEmptyView,this.triggerMethod("remove:empty"))},getEmptyView:function(){return this.getOption("emptyView")},addEmptyView:function(a,b){var d=this.getOption("emptyViewOptions")||this.getOption("childViewOptions");c.isFunction(d)&&(d=d.call(this));var f=this.buildChildView(a,b,d);this.proxyChildEvents(f),this._isShown&&e.triggerMethodOn(f,"before:show"),this.children.add(f),this.renderChildView(f,-1),this._isShown&&e.triggerMethodOn(f,"show")},getChildView:function(){var a=this.getOption("childView");if(!a)throw new e.Error({name:"NoChildViewError",message:'A "childView" must be specified'});return a},addChild:function(a,b,d){var e=this.getOption("childViewOptions");c.isFunction(e)&&(e=e.call(this,a,d));var f=this.buildChildView(a,b,e);return this._updateIndices(f,!0,d),this._addChildView(f,d),f},_updateIndices:function(a,b,c){this.sort&&(b?(a._index=c,this.children.each(function(b){b._index>=a._index&&b._index++})):this.children.each(function(b){b._index>=a._index&&b._index--}))},_addChildView:function(a,b){this.proxyChildEvents(a),this.triggerMethod("before:add:child",a),this.children.add(a),this.renderChildView(a,b),this._isShown&&!this.isBuffering&&e.triggerMethodOn(a,"show"),this.triggerMethod("add:child",a)},renderChildView:function(a,b){return a.render(),this.attachHtml(this,a,b),a},buildChildView:function(a,b,d){var e=c.extend({model:a},d);return new b(e)},removeChildView:function(a){return a&&(this.triggerMethod("before:remove:child",a),a.destroy?a.destroy():a.remove&&a.remove(),this.stopListening(a),this.children.remove(a),this.triggerMethod("remove:child",a),this._updateIndices(a,!1)),a},isEmpty:function(){return!this.collection||0===this.collection.length},checkEmpty:function(){this.isEmpty(this.collection)&&this.showEmptyView()},attachBuffer:function(a,b){a.$el.append(b)},attachHtml:function(a,b,c){a.isBuffering?(a.elBuffer.appendChild(b.el),a._bufferedChildren.push(b)):a._insertBefore(b,c)||a._insertAfter(b)},_insertBefore:function(a,b){var c,d=this.sort&&b0)for(a=0;c>a;a++)delete this.templateCaches[b[a]];else this.templateCaches={}}}),c.extend(e.TemplateCache.prototype,{load:function(){if(this.compiledTemplate)return this.compiledTemplate;var a=this.loadTemplate(this.templateId);return this.compiledTemplate=this.compileTemplate(a),this.compiledTemplate},loadTemplate:function(a){var c=b.$(a).html();if(!c||0===c.length)throw new e.Error({name:"NoTemplateError",message:'Could not find template: "'+a+'"'});return c},compileTemplate:function(a){return c.template(a)}}),e.Renderer={render:function(a,b){if(!a)throw new e.Error({name:"TemplateNotFoundError",message:"Cannot render the template since its false, null or undefined."});var c;return(c="function"==typeof a?a:e.TemplateCache.get(a))(b)}},e.View=b.View.extend({constructor:function(a){c.bindAll(this,"render"),this.options=c.extend({},c.result(this,"options"),c.isFunction(a)?a.call(this):a),this._behaviors=e.Behaviors(this),b.View.apply(this,arguments),e.MonitorDOMRefresh(this),this.listenTo(this,"show",this.onShowCalled)},getTemplate:function(){return this.getOption("template")},serializeModel:function(a){return a.toJSON.apply(a,f.call(arguments,1))},mixinTemplateHelpers:function(a){a=a||{};var b=this.getOption("templateHelpers");return c.isFunction(b)&&(b=b.call(this)),c.extend(a,b)},normalizeUIKeys:function(a){var b=c.result(this,"ui"),d=c.result(this,"_uiBindings");return e.normalizeUIKeys(a,d||b)},normalizeUIValues:function(a){var b=c.result(this,"ui"),d=c.result(this,"_uiBindings");return e.normalizeUIValues(a,d||b)},configureTriggers:function(){if(this.triggers){var a={},b=this.normalizeUIKeys(c.result(this,"triggers"));return c.each(b,function(b,c){a[c]=this._buildViewTrigger(b)},this),a}},delegateEvents:function(a){return this._delegateDOMEvents(a),this.bindEntityEvents(this.model,this.getOption("modelEvents")),this.bindEntityEvents(this.collection,this.getOption("collectionEvents")),c.each(this._behaviors,function(a){a.bindEntityEvents(this.model,a.getOption("modelEvents")),a.bindEntityEvents(this.collection,a.getOption("collectionEvents"))},this),this},_delegateDOMEvents:function(a){var d=a||this.events;c.isFunction(d)&&(d=d.call(this)),d=this.normalizeUIKeys(d),c.isUndefined(a)&&(this.events=d);var e={},f=c.result(this,"behaviorEvents")||{},g=this.configureTriggers(),h=c.result(this,"behaviorTriggers")||{};c.extend(e,f,d,g,h),b.View.prototype.delegateEvents.call(this,e)},undelegateEvents:function(){var a=f.call(arguments);return b.View.prototype.undelegateEvents.apply(this,a),this.unbindEntityEvents(this.model,this.getOption("modelEvents")),this.unbindEntityEvents(this.collection,this.getOption("collectionEvents")),c.each(this._behaviors,function(a){a.unbindEntityEvents(this.model,a.getOption("modelEvents")),a.unbindEntityEvents(this.collection,a.getOption("collectionEvents"))},this),this},onShowCalled:function(){},_ensureViewIsIntact:function(){if(this.isDestroyed)throw new e.Error({name:"ViewDestroyedError",message:'View (cid: "'+this.cid+'") has already been destroyed and cannot be used.'})},destroy:function(){if(!this.isDestroyed){var a=f.call(arguments);return this.triggerMethod.apply(this,["before:destroy"].concat(a)),this.isDestroyed=!0,this.triggerMethod.apply(this,["destroy"].concat(a)),this.unbindUIElements(),this.remove(),c.invoke(this._behaviors,"destroy",a),this}},bindUIElements:function(){this._bindUIElements(),c.invoke(this._behaviors,this._bindUIElements)},_bindUIElements:function(){if(this.ui){this._uiBindings||(this._uiBindings=this.ui);var a=c.result(this,"_uiBindings");this.ui={},c.each(c.keys(a),function(b){var c=a[b];this.ui[b]=this.$(c)},this)}},unbindUIElements:function(){this._unbindUIElements(),c.invoke(this._behaviors,this._unbindUIElements)},_unbindUIElements:function(){this.ui&&this._uiBindings&&(c.each(this.ui,function(a,b){delete this.ui[b]},this),this.ui=this._uiBindings,delete this._uiBindings)},_buildViewTrigger:function(a){var b=c.isObject(a),d=c.defaults({},b?a:{},{preventDefault:!0,stopPropagation:!0}),e=b?d.event:a;return function(a){a&&(a.preventDefault&&d.preventDefault&&a.preventDefault(),a.stopPropagation&&d.stopPropagation&&a.stopPropagation());var b={view:this,model:this.model,collection:this.collection};this.triggerMethod(e,b)}},setElement:function(){var a=b.View.prototype.setElement.apply(this,arguments);return c.invoke(this._behaviors,"proxyViewProperties",this),a},triggerMethod:function(){var a=arguments,b=e.triggerMethod,d=b.apply(this,a);return c.each(this._behaviors,function(c){b.apply(c,a)}),d},normalizeMethods:e.normalizeMethods,getOption:e.proxyGetOption,bindEntityEvents:e.proxyBindEntityEvents,unbindEntityEvents:e.proxyUnbindEntityEvents}),e.ItemView=e.View.extend({constructor:function(){e.View.apply(this,arguments)},serializeData:function(){var a={};return this.model?a=c.partial(this.serializeModel,this.model).apply(this,arguments):this.collection&&(a={items:c.partial(this.serializeCollection,this.collection).apply(this,arguments)}),a},serializeCollection:function(a){return a.toJSON.apply(a,f.call(arguments,1))},render:function(){return this._ensureViewIsIntact(),this.triggerMethod("before:render",this),this._renderTemplate(),this.bindUIElements(),this.triggerMethod("render",this),this},_renderTemplate:function(){var a=this.getTemplate();if(a!==!1){if(!a)throw new e.Error({name:"UndefinedTemplateError",message:"Cannot render the template since it is null or undefined."});var b=this.serializeData();b=this.mixinTemplateHelpers(b);var c=e.Renderer.render(a,b,this);return this.attachElContent(c),this}},attachElContent:function(a){return this.$el.html(a),this},destroy:function(){return this.isDestroyed?void 0:e.View.prototype.destroy.apply(this,arguments)}}),e.CollectionView=e.View.extend({childViewEventPrefix:"childview",constructor:function(a){var d=a||{};if(this.sort=c.isUndefined(d.sort)?!0:d.sort,d.collection&&!(d.collection instanceof b.Collection))throw new e.Error("The Collection option passed to this view needs to be an instance of a Backbone.Collection");this.once("render",this._initialEvents),this._initChildViewStorage(),e.View.apply(this,arguments),this.initRenderBuffer()},initRenderBuffer:function(){this.elBuffer=document.createDocumentFragment(),this._bufferedChildren=[]},startBuffering:function(){this.initRenderBuffer(),this.isBuffering=!0},endBuffering:function(){this.isBuffering=!1,this._triggerBeforeShowBufferedChildren(),this.attachBuffer(this,this.elBuffer),this._triggerShowBufferedChildren(),this.initRenderBuffer()},_triggerBeforeShowBufferedChildren:function(){this._isShown&&c.each(this._bufferedChildren,c.partial(this._triggerMethodOnChild,"before:show"))},_triggerShowBufferedChildren:function(){this._isShown&&(c.each(this._bufferedChildren,c.partial(this._triggerMethodOnChild,"show")),this._bufferedChildren=[])},_triggerMethodOnChild:function(a,b){e.triggerMethodOn(b,a)},_initialEvents:function(){this.collection&&(this.listenTo(this.collection,"add",this._onCollectionAdd),this.listenTo(this.collection,"remove",this._onCollectionRemove),this.listenTo(this.collection,"reset",this.render),this.sort&&this.listenTo(this.collection,"sort",this._sortViews))},_onCollectionAdd:function(a){this.destroyEmptyView();var b=this.getChildView(a),c=this.collection.indexOf(a);this.addChild(a,b,c)},_onCollectionRemove:function(a){var b=this.children.findByModel(a);this.removeChildView(b),this.checkEmpty()},onShowCalled:function(){this.children.each(c.partial(this._triggerMethodOnChild,"show"))},render:function(){return this._ensureViewIsIntact(),this.triggerMethod("before:render",this),this._renderChildren(),this.triggerMethod("render",this),this},resortView:function(){this.render()},_sortViews:function(){var a=this.collection.find(function(a,b){var c=this.children.findByModel(a);return!c||c._index!==b},this);a&&this.resortView()},_renderChildren:function(){this.destroyEmptyView(),this.destroyChildren(),this.isEmpty(this.collection)?this.showEmptyView():(this.triggerMethod("before:render:collection",this),this.startBuffering(),this.showCollection(),this.endBuffering(),this.triggerMethod("render:collection",this))},showCollection:function(){var a;this.collection.each(function(b,c){a=this.getChildView(b),this.addChild(b,a,c)},this)},showEmptyView:function(){var a=this.getEmptyView();if(a&&!this._showingEmptyView){this.triggerMethod("before:render:empty"),this._showingEmptyView=!0;var c=new b.Model;this.addEmptyView(c,a),this.triggerMethod("render:empty")}},destroyEmptyView:function(){this._showingEmptyView&&(this.triggerMethod("before:remove:empty"),this.destroyChildren(),delete this._showingEmptyView,this.triggerMethod("remove:empty"))},getEmptyView:function(){return this.getOption("emptyView")},addEmptyView:function(a,b){var d=this.getOption("emptyViewOptions")||this.getOption("childViewOptions");c.isFunction(d)&&(d=d.call(this));var f=this.buildChildView(a,b,d);this.proxyChildEvents(f),this._isShown&&e.triggerMethodOn(f,"before:show"),this.children.add(f),this.renderChildView(f,-1),this._isShown&&e.triggerMethodOn(f,"show")},getChildView:function(){var a=this.getOption("childView");if(!a)throw new e.Error({name:"NoChildViewError",message:'A "childView" must be specified'});return a},addChild:function(a,b,d){var e=this.getOption("childViewOptions");c.isFunction(e)&&(e=e.call(this,a,d));var f=this.buildChildView(a,b,e);return this._updateIndices(f,!0,d),this._addChildView(f,d),f},_updateIndices:function(a,b,c){this.sort&&(b?(a._index=c,this.children.each(function(b){b._index>=a._index&&b._index++})):this.children.each(function(b){b._index>=a._index&&b._index--}))},_addChildView:function(a,b){this.proxyChildEvents(a),this.triggerMethod("before:add:child",a),this.children.add(a),this.renderChildView(a,b),this._isShown&&!this.isBuffering&&e.triggerMethodOn(a,"show"),this.triggerMethod("add:child",a)},renderChildView:function(a,b){return a.render(),this.attachHtml(this,a,b),a},buildChildView:function(a,b,d){var e=c.extend({model:a},d);return new b(e)},removeChildView:function(a){return a&&(this.triggerMethod("before:remove:child",a),a.destroy?a.destroy():a.remove&&a.remove(),this.stopListening(a),this.children.remove(a),this.triggerMethod("remove:child",a),this._updateIndices(a,!1)),a},isEmpty:function(){return!this.collection||0===this.collection.length},checkEmpty:function(){this.isEmpty(this.collection)&&this.showEmptyView()},attachBuffer:function(a,b){a.$el.append(b)},attachHtml:function(a,b,c){a.isBuffering?(a.elBuffer.appendChild(b.el),a._bufferedChildren.push(b)):a._insertBefore(b,c)||a._insertAfter(b)},_insertBefore:function(a,b){var c,d=this.sort&&b0)for(a=0;c>a;a++)delete this.templateCaches[b[a]];else this.templateCaches={}}}),c.extend(e.TemplateCache.prototype,{load:function(){if(this.compiledTemplate)return this.compiledTemplate;var a=this.loadTemplate(this.templateId);return this.compiledTemplate=this.compileTemplate(a),this.compiledTemplate},loadTemplate:function(a){var c=b.$(a).html();if(!c||0===c.length)throw new e.Error({name:"NoTemplateError",message:'Could not find template: "'+a+'"'});return c},compileTemplate:function(a){return c.template(a)}}),e.Renderer={render:function(a,b){if(!a)throw new e.Error({name:"TemplateNotFoundError",message:"Cannot render the template since its false, null or undefined."});var c;return(c="function"==typeof a?a:e.TemplateCache.get(a))(b)}},e.View=b.View.extend({constructor:function(a){c.bindAll(this,"render"),this.options=c.extend({},c.result(this,"options"),c.isFunction(a)?a.call(this):a),this._behaviors=e.Behaviors(this),b.View.apply(this,arguments),e.MonitorDOMRefresh(this),this.listenTo(this,"show",this.onShowCalled)},getTemplate:function(){return this.getOption("template")},serializeModel:function(a){return a.toJSON.apply(a,f.call(arguments,1))},mixinTemplateHelpers:function(a){a=a||{};var b=this.getOption("templateHelpers");return c.isFunction(b)&&(b=b.call(this)),c.extend(a,b)},normalizeUIKeys:function(a){var b=c.result(this,"ui"),d=c.result(this,"_uiBindings");return e.normalizeUIKeys(a,d||b)},normalizeUIValues:function(a){var b=c.result(this,"ui"),d=c.result(this,"_uiBindings");return e.normalizeUIValues(a,d||b)},configureTriggers:function(){if(this.triggers){var a={},b=this.normalizeUIKeys(c.result(this,"triggers"));return c.each(b,function(b,c){a[c]=this._buildViewTrigger(b)},this),a}},delegateEvents:function(a){return this._delegateDOMEvents(a),this.bindEntityEvents(this.model,this.getOption("modelEvents")),this.bindEntityEvents(this.collection,this.getOption("collectionEvents")),c.each(this._behaviors,function(a){a.bindEntityEvents(this.model,a.getOption("modelEvents")),a.bindEntityEvents(this.collection,a.getOption("collectionEvents"))},this),this},_delegateDOMEvents:function(a){var d=a||this.events;c.isFunction(d)&&(d=d.call(this)),d=this.normalizeUIKeys(d),c.isUndefined(a)&&(this.events=d);var e={},f=c.result(this,"behaviorEvents")||{},g=this.configureTriggers(),h=c.result(this,"behaviorTriggers")||{};c.extend(e,f,d,g,h),b.View.prototype.delegateEvents.call(this,e)},undelegateEvents:function(){var a=f.call(arguments);return b.View.prototype.undelegateEvents.apply(this,a),this.unbindEntityEvents(this.model,this.getOption("modelEvents")),this.unbindEntityEvents(this.collection,this.getOption("collectionEvents")),c.each(this._behaviors,function(a){a.unbindEntityEvents(this.model,a.getOption("modelEvents")),a.unbindEntityEvents(this.collection,a.getOption("collectionEvents"))},this),this},onShowCalled:function(){},_ensureViewIsIntact:function(){if(this.isDestroyed)throw new e.Error({name:"ViewDestroyedError",message:'View (cid: "'+this.cid+'") has already been destroyed and cannot be used.'})},destroy:function(){if(!this.isDestroyed){var a=f.call(arguments);return this.triggerMethod.apply(this,["before:destroy"].concat(a)),this.isDestroyed=!0,this.triggerMethod.apply(this,["destroy"].concat(a)),this.unbindUIElements(),this.remove(),c.invoke(this._behaviors,"destroy",a),this}},bindUIElements:function(){this._bindUIElements(),c.invoke(this._behaviors,this._bindUIElements)},_bindUIElements:function(){if(this.ui){this._uiBindings||(this._uiBindings=this.ui);var a=c.result(this,"_uiBindings");this.ui={},c.each(c.keys(a),function(b){var c=a[b];this.ui[b]=this.$(c)},this)}},unbindUIElements:function(){this._unbindUIElements(),c.invoke(this._behaviors,this._unbindUIElements)},_unbindUIElements:function(){this.ui&&this._uiBindings&&(c.each(this.ui,function(a,b){delete this.ui[b]},this),this.ui=this._uiBindings,delete this._uiBindings)},_buildViewTrigger:function(a){var b=c.isObject(a),d=c.defaults({},b?a:{},{preventDefault:!0,stopPropagation:!0}),e=b?d.event:a;return function(a){a&&(a.preventDefault&&d.preventDefault&&a.preventDefault(),a.stopPropagation&&d.stopPropagation&&a.stopPropagation());var b={view:this,model:this.model,collection:this.collection};this.triggerMethod(e,b)}},setElement:function(){var a=b.View.prototype.setElement.apply(this,arguments);return c.invoke(this._behaviors,"proxyViewProperties",this),a},triggerMethod:function(){var a=arguments,b=e.triggerMethod,d=b.apply(this,a);return c.each(this._behaviors,function(c){b.apply(c,a)}),d},normalizeMethods:e.normalizeMethods,getOption:e.proxyGetOption,bindEntityEvents:e.proxyBindEntityEvents,unbindEntityEvents:e.proxyUnbindEntityEvents}),e.ItemView=e.View.extend({constructor:function(){e.View.apply(this,arguments)},serializeData:function(){var a={};return this.model?a=c.partial(this.serializeModel,this.model).apply(this,arguments):this.collection&&(a={items:c.partial(this.serializeCollection,this.collection).apply(this,arguments)}),a},serializeCollection:function(a){return a.toJSON.apply(a,f.call(arguments,1))},render:function(){return this._ensureViewIsIntact(),this.triggerMethod("before:render",this),this._renderTemplate(),this.bindUIElements(),this.triggerMethod("render",this),this},_renderTemplate:function(){var a=this.getTemplate();if(a!==!1){if(!a)throw new e.Error({name:"UndefinedTemplateError",message:"Cannot render the template since it is null or undefined."});var b=this.serializeData();b=this.mixinTemplateHelpers(b);var c=e.Renderer.render(a,b,this);return this.attachElContent(c),this}},attachElContent:function(a){return this.$el.html(a),this},destroy:function(){return this.isDestroyed?void 0:e.View.prototype.destroy.apply(this,arguments)}}),e.CollectionView=e.View.extend({childViewEventPrefix:"childview",constructor:function(a){var b=a||{};this.sort=c.isUndefined(b.sort)?!0:b.sort,this.once("render",this._initialEvents),this._initChildViewStorage(),e.View.apply(this,arguments),this.initRenderBuffer()},initRenderBuffer:function(){this.elBuffer=document.createDocumentFragment(),this._bufferedChildren=[]},startBuffering:function(){this.initRenderBuffer(),this.isBuffering=!0},endBuffering:function(){this.isBuffering=!1,this._triggerBeforeShowBufferedChildren(),this.attachBuffer(this,this.elBuffer),this._triggerShowBufferedChildren(),this.initRenderBuffer()},_triggerBeforeShowBufferedChildren:function(){this._isShown&&c.each(this._bufferedChildren,c.partial(this._triggerMethodOnChild,"before:show"))},_triggerShowBufferedChildren:function(){this._isShown&&(c.each(this._bufferedChildren,c.partial(this._triggerMethodOnChild,"show")),this._bufferedChildren=[])},_triggerMethodOnChild:function(a,b){e.triggerMethodOn(b,a)},_initialEvents:function(){this.collection&&(this.listenTo(this.collection,"add",this._onCollectionAdd),this.listenTo(this.collection,"remove",this._onCollectionRemove),this.listenTo(this.collection,"reset",this.render),this.sort&&this.listenTo(this.collection,"sort",this._sortViews))},_onCollectionAdd:function(a){this.destroyEmptyView();var b=this.getChildView(a),c=this.collection.indexOf(a);this.addChild(a,b,c)},_onCollectionRemove:function(a){var b=this.children.findByModel(a);this.removeChildView(b),this.checkEmpty()},onShowCalled:function(){this.children.each(c.partial(this._triggerMethodOnChild,"show"))},render:function(){return this._ensureViewIsIntact(),this.triggerMethod("before:render",this),this._renderChildren(),this.triggerMethod("render",this),this},resortView:function(){this.render()},_sortViews:function(){var a=this.collection.find(function(a,b){var c=this.children.findByModel(a);return!c||c._index!==b},this);a&&this.resortView()},_renderChildren:function(){this.destroyEmptyView(),this.destroyChildren(),this.isEmpty(this.collection)?this.showEmptyView():(this.triggerMethod("before:render:collection",this),this.startBuffering(),this.showCollection(),this.endBuffering(),this.triggerMethod("render:collection",this))},showCollection:function(){var a;this.collection.each(function(b,c){a=this.getChildView(b),this.addChild(b,a,c)},this)},showEmptyView:function(){var a=this.getEmptyView();if(a&&!this._showingEmptyView){this.triggerMethod("before:render:empty"),this._showingEmptyView=!0;var c=new b.Model;this.addEmptyView(c,a),this.triggerMethod("render:empty")}},destroyEmptyView:function(){this._showingEmptyView&&(this.triggerMethod("before:remove:empty"),this.destroyChildren(),delete this._showingEmptyView,this.triggerMethod("remove:empty"))},getEmptyView:function(){return this.getOption("emptyView")},addEmptyView:function(a,b){var d=this.getOption("emptyViewOptions")||this.getOption("childViewOptions");c.isFunction(d)&&(d=d.call(this));var f=this.buildChildView(a,b,d);this.proxyChildEvents(f),this._isShown&&e.triggerMethodOn(f,"before:show"),this.children.add(f),this.renderChildView(f,-1),this._isShown&&e.triggerMethodOn(f,"show")},getChildView:function(){var a=this.getOption("childView");if(!a)throw new e.Error({name:"NoChildViewError",message:'A "childView" must be specified'});return a},addChild:function(a,b,d){var e=this.getOption("childViewOptions");c.isFunction(e)&&(e=e.call(this,a,d));var f=this.buildChildView(a,b,e);return this._updateIndices(f,!0,d),this._addChildView(f,d),f},_updateIndices:function(a,b,c){this.sort&&(b?(a._index=c,this.children.each(function(b){b._index>=a._index&&b._index++})):this.children.each(function(b){b._index>=a._index&&b._index--}))},_addChildView:function(a,b){this.proxyChildEvents(a),this.triggerMethod("before:add:child",a),this.children.add(a),this.renderChildView(a,b),this._isShown&&!this.isBuffering&&e.triggerMethodOn(a,"show"),this.triggerMethod("add:child",a)},renderChildView:function(a,b){return a.render(),this.attachHtml(this,a,b),a},buildChildView:function(a,b,d){var e=c.extend({model:a},d);return new b(e)},removeChildView:function(a){return a&&(this.triggerMethod("before:remove:child",a),a.destroy?a.destroy():a.remove&&a.remove(),this.stopListening(a),this.children.remove(a),this.triggerMethod("remove:child",a),this._updateIndices(a,!1)),a},isEmpty:function(){return!this.collection||0===this.collection.length},checkEmpty:function(){this.isEmpty(this.collection)&&this.showEmptyView()},attachBuffer:function(a,b){a.$el.append(b)},attachHtml:function(a,b,c){a.isBuffering?(a.elBuffer.appendChild(b.el),a._bufferedChildren.push(b)):a._insertBefore(b,c)||a._insertAfter(b)},_insertBefore:function(a,b){var c,d=this.sort&&b