if("undefined"==typeof jQuery)throw new Error("Bootstrap's JavaScript requires jQuery");+function(n){"use strict";function t(){var i=document.createElement("bootstrap"),n={WebkitTransition:"webkitTransitionEnd",MozTransition:"transitionend",OTransition:"oTransitionEnd otransitionend",transition:"transitionend"};for(var t in n)if(void 0!==i.style[t])return{end:n[t]};return!1}n.fn.emulateTransitionEnd=function(t){var i=!1,u=this,r;n(this).one(n.support.transition.end,function(){i=!0});return r=function(){i||n(u).trigger(n.support.transition.end)},setTimeout(r,t),this};n(function(){n.support.transition=t()})}(jQuery);+function(n){"use strict";var i='[data-dismiss="alert"]',t=function(t){n(t).on("click",i,this.close)},r;t.prototype.close=function(t){function f(){i.trigger("closed.bs.alert").remove()}var u=n(this),r=u.attr("data-target"),i;r||(r=u.attr("href"),r=r&&r.replace(/.*(?=#[^\s]*$)/,""));i=n(r);t&&t.preventDefault();i.length||(i=u.hasClass("alert")?u:u.parent());i.trigger(t=n.Event("close.bs.alert"));t.isDefaultPrevented()||(i.removeClass("in"),n.support.transition&&i.hasClass("fade")?i.one(n.support.transition.end,f).emulateTransitionEnd(150):f())};r=n.fn.alert;n.fn.alert=function(i){return this.each(function(){var r=n(this),u=r.data("bs.alert");u||r.data("bs.alert",u=new t(this));"string"==typeof i&&u[i].call(r)})};n.fn.alert.Constructor=t;n.fn.alert.noConflict=function(){return n.fn.alert=r,this};n(document).on("click.bs.alert.data-api",i,t.prototype.close)}(jQuery);+function(n){"use strict";var t=function(i,r){this.$element=n(i);this.options=n.extend({},t.DEFAULTS,r);this.isLoading=!1},i;t.DEFAULTS={loadingText:"loading..."};t.prototype.setState=function(t){var r="disabled",i=this.$element,u=i.is("input")?"val":"html",f=i.data();t+="Text";f.resetText||i.data("resetText",i[u]());i[u](f[t]||this.options[t]);setTimeout(n.proxy(function(){"loadingText"==t?(this.isLoading=!0,i.addClass(r).attr(r,r)):this.isLoading&&(this.isLoading=!1,i.removeClass(r).removeAttr(r))},this),0)};t.prototype.toggle=function(){var t=!0,i=this.$element.closest('[data-toggle="buttons"]'),n;i.length&&(n=this.$element.find("input"),"radio"==n.prop("type")&&(n.prop("checked")&&this.$element.hasClass("active")?t=!1:i.find(".active").removeClass("active")),t&&n.prop("checked",!this.$element.hasClass("active")).trigger("change"));t&&this.$element.toggleClass("active")};i=n.fn.button;n.fn.button=function(i){return this.each(function(){var u=n(this),r=u.data("bs.button"),f="object"==typeof i&&i;r||u.data("bs.button",r=new t(this,f));"toggle"==i?r.toggle():i&&r.setState(i)})};n.fn.button.Constructor=t;n.fn.button.noConflict=function(){return n.fn.button=i,this};n(document).on("click.bs.button.data-api","[data-toggle^=button]",function(t){var i=n(t.target);i.hasClass("btn")||(i=i.closest(".btn"));i.button("toggle");t.preventDefault()})}(jQuery);+function(n){"use strict";var t=function(t,i){this.$element=n(t);this.$indicators=this.$element.find(".carousel-indicators");this.options=i;this.paused=this.sliding=this.interval=this.$active=this.$items=null;"hover"==this.options.pause&&this.$element.on("mouseenter",n.proxy(this.pause,this)).on("mouseleave",n.proxy(this.cycle,this))},i;t.DEFAULTS={interval:5e3,pause:"hover",wrap:!0};t.prototype.cycle=function(t){return t||(this.paused=!1),this.interval&&clearInterval(this.interval),this.options.interval&&!this.paused&&(this.interval=setInterval(n.proxy(this.next,this),this.options.interval)),this};t.prototype.getActiveIndex=function(){return this.$active=this.$element.find(".item.active"),this.$items=this.$active.parent().children(),this.$items.index(this.$active)};t.prototype.to=function(t){var r=this,i=this.getActiveIndex();if(!(t>this.$items.length-1)&&!(0>t))return this.sliding?this.$element.one("slid.bs.carousel",function(){r.to(t)}):i==t?this.pause().cycle():this.slide(t>i?"next":"prev",n(this.$items[t]))};t.prototype.pause=function(t){return t||(this.paused=!0),this.$element.find(".next, .prev").length&&n.support.transition&&(this.$element.trigger(n.support.transition.end),this.cycle(!0)),this.interval=clearInterval(this.interval),this};t.prototype.next=function(){if(!this.sliding)return this.slide("next")};t.prototype.prev=function(){if(!this.sliding)return this.slide("prev")};t.prototype.slide=function(t,i){var u=this.$element.find(".item.active"),r=i||u[t](),s=this.interval,f="next"==t?"left":"right",h="next"==t?"first":"last",e=this,o;if(!r.length){if(!this.options.wrap)return;r=this.$element.find(".item")[h]()}return r.hasClass("active")?this.sliding=!1:(o=n.Event("slide.bs.carousel",{relatedTarget:r[0],direction:f}),this.$element.trigger(o),o.isDefaultPrevented()?void 0:(this.sliding=!0,s&&this.pause(),this.$indicators.length&&(this.$indicators.find(".active").removeClass("active"),this.$element.one("slid.bs.carousel",function(){var t=n(e.$indicators.children()[e.getActiveIndex()]);t&&t.addClass("active")})),n.support.transition&&this.$element.hasClass("slide")?(r.addClass(t),r[0].offsetWidth,u.addClass(f),r.addClass(f),u.one(n.support.transition.end,function(){r.removeClass([t,f].join(" ")).addClass("active");u.removeClass(["active",f].join(" "));e.sliding=!1;setTimeout(function(){e.$element.trigger("slid.bs.carousel")},0)}).emulateTransitionEnd(1e3*u.css("transition-duration").slice(0,-1))):(u.removeClass("active"),r.addClass("active"),this.sliding=!1,this.$element.trigger("slid.bs.carousel")),s&&this.cycle(),this))};i=n.fn.carousel;n.fn.carousel=function(i){return this.each(function(){var u=n(this),r=u.data("bs.carousel"),f=n.extend({},t.DEFAULTS,u.data(),"object"==typeof i&&i),e="string"==typeof i?i:f.slide;r||u.data("bs.carousel",r=new t(this,f));"number"==typeof i?r.to(i):e?r[e]():f.interval&&r.pause().cycle()})};n.fn.carousel.Constructor=t;n.fn.carousel.noConflict=function(){return n.fn.carousel=i,this};n(document).on("click.bs.carousel.data-api","[data-slide], [data-slide-to]",function(t){var f,i=n(this),r=n(i.attr("data-target")||(f=i.attr("href"))&&f.replace(/.*(?=#[^\s]+$)/,"")),e=n.extend({},r.data(),i.data()),u=i.attr("data-slide-to");u&&(e.interval=!1);r.carousel(e);(u=i.attr("data-slide-to"))&&r.data("bs.carousel").to(u);t.preventDefault()});n(window).on("load",function(){n('[data-ride="carousel"]').each(function(){var t=n(this);t.carousel(t.data())})})}(jQuery);+function(n){"use strict";var t=function(i,r){this.$element=n(i);this.options=n.extend({},t.DEFAULTS,r);this.transitioning=null;this.options.parent&&(this.$parent=n(this.options.parent));this.options.toggle&&this.toggle()},i;t.DEFAULTS={toggle:!0};t.prototype.dimension=function(){var n=this.$element.hasClass("width");return n?"width":"height"};t.prototype.show=function(){var u,t,r,i,f,e;if(!this.transitioning&&!this.$element.hasClass("in")&&(u=n.Event("show.bs.collapse"),this.$element.trigger(u),!u.isDefaultPrevented())){if(t=this.$parent&&this.$parent.find("> .panel > .in"),t&&t.length){if(r=t.data("bs.collapse"),r&&r.transitioning)return;t.collapse("hide");r||t.data("bs.collapse",null)}if(i=this.dimension(),this.$element.removeClass("collapse").addClass("collapsing")[i](0),this.transitioning=1,f=function(){this.$element.removeClass("collapsing").addClass("collapse in")[i]("auto");this.transitioning=0;this.$element.trigger("shown.bs.collapse")},!n.support.transition)return f.call(this);e=n.camelCase(["scroll",i].join("-"));this.$element.one(n.support.transition.end,n.proxy(f,this)).emulateTransitionEnd(350)[i](this.$element[0][e])}};t.prototype.hide=function(){var i,t,r;if(!this.transitioning&&this.$element.hasClass("in")&&(i=n.Event("hide.bs.collapse"),this.$element.trigger(i),!i.isDefaultPrevented()))return t=this.dimension(),this.$element[t](this.$element[t]())[0].offsetHeight,this.$element.addClass("collapsing").removeClass("collapse").removeClass("in"),this.transitioning=1,r=function(){this.transitioning=0;this.$element.trigger("hidden.bs.collapse").removeClass("collapsing").addClass("collapse")},n.support.transition?void this.$element[t](0).one(n.support.transition.end,n.proxy(r,this)).emulateTransitionEnd(350):r.call(this)};t.prototype.toggle=function(){this[this.$element.hasClass("in")?"hide":"show"]()};i=n.fn.collapse;n.fn.collapse=function(i){return this.each(function(){var u=n(this),r=u.data("bs.collapse"),f=n.extend({},t.DEFAULTS,u.data(),"object"==typeof i&&i);!r&&f.toggle&&"show"==i&&(i=!i);r||u.data("bs.collapse",r=new t(this,f));"string"==typeof i&&r[i]()})};n.fn.collapse.Constructor=t;n.fn.collapse.noConflict=function(){return n.fn.collapse=i,this};n(document).on("click.bs.collapse.data-api","[data-toggle=collapse]",function(t){var e,i=n(this),s=i.attr("data-target")||t.preventDefault()||(e=i.attr("href"))&&e.replace(/.*(?=#[^\s]+$)/,""),r=n(s),u=r.data("bs.collapse"),h=u?"toggle":i.data(),f=i.attr("data-parent"),o=f&&n(f);u&&u.transitioning||(o&&o.find('[data-toggle=collapse][data-parent="'+f+'"]').not(i).addClass("collapsed"),i[r.hasClass("in")?"addClass":"removeClass"]("collapsed"));r.collapse(h)})}(jQuery);+function(n){"use strict";function r(t){n(e).remove();n(i).each(function(){var i=u(n(this)),r={relatedTarget:this};i.hasClass("open")&&(i.trigger(t=n.Event("hide.bs.dropdown",r)),t.isDefaultPrevented()||i.removeClass("open").trigger("hidden.bs.dropdown",r))})}function u(t){var i=t.attr("data-target"),r;return i||(i=t.attr("href"),i=i&&/#[A-Za-z]/.test(i)&&i.replace(/.*(?=#[^\s]*$)/,"")),r=i&&n(i),r&&r.length?r:t.parent()}var e=".dropdown-backdrop",i="[data-toggle=dropdown]",t=function(t){n(t).on("click.bs.dropdown",this.toggle)},f;t.prototype.toggle=function(t){var f=n(this),i,o,e;if(!f.is(".disabled, :disabled")){if(i=u(f),o=i.hasClass("open"),r(),!o){if("ontouchstart"in document.documentElement&&!i.closest(".navbar-nav").length&&n('<div class="dropdown-backdrop"/>').insertAfter(n(this)).on("click",r),e={relatedTarget:this},i.trigger(t=n.Event("show.bs.dropdown",e)),t.isDefaultPrevented())return;i.toggleClass("open").trigger("shown.bs.dropdown",e);f.focus()}return!1}};t.prototype.keydown=function(t){var e,o,s,h,f,r;if(/(38|40|27)/.test(t.keyCode)&&(e=n(this),t.preventDefault(),t.stopPropagation(),!e.is(".disabled, :disabled"))){if(o=u(e),s=o.hasClass("open"),!s||s&&27==t.keyCode)return 27==t.which&&o.find(i).focus(),e.click();h=" li:not(.divider):visible a";f=o.find("[role=menu]"+h+", [role=listbox]"+h);f.length&&(r=f.index(f.filter(":focus")),38==t.keyCode&&r>0&&r--,40==t.keyCode&&r<f.length-1&&r++,~r||(r=0),f.eq(r).focus())}};f=n.fn.dropdown;n.fn.dropdown=function(i){return this.each(function(){var r=n(this),u=r.data("bs.dropdown");u||r.data("bs.dropdown",u=new t(this));"string"==typeof i&&u[i].call(r)})};n.fn.dropdown.Constructor=t;n.fn.dropdown.noConflict=function(){return n.fn.dropdown=f,this};n(document).on("click.bs.dropdown.data-api",r).on("click.bs.dropdown.data-api",".dropdown form",function(n){n.stopPropagation()}).on("click.bs.dropdown.data-api",i,t.prototype.toggle).on("keydown.bs.dropdown.data-api",i+", [role=menu], [role=listbox]",t.prototype.keydown)}(jQuery);+function(n){"use strict";var t=function(t,i){this.options=i;this.$element=n(t);this.$backdrop=this.isShown=null;this.options.remote&&this.$element.find(".modal-content").load(this.options.remote,n.proxy(function(){this.$element.trigger("loaded.bs.modal")},this))},i;t.DEFAULTS={backdrop:!0,keyboard:!0,show:!0};t.prototype.toggle=function(n){return this[this.isShown?"hide":"show"](n)};t.prototype.show=function(t){var i=this,r=n.Event("show.bs.modal",{relatedTarget:t});this.$element.trigger(r);this.isShown||r.isDefaultPrevented()||(this.isShown=!0,this.escape(),this.$element.on("click.dismiss.bs.modal",'[data-dismiss="modal"]',n.proxy(this.hide,this)),this.backdrop(function(){var u=n.support.transition&&i.$element.hasClass("fade"),r;i.$element.parent().length||i.$element.appendTo(document.body);i.$element.show().scrollTop(0);u&&i.$element[0].offsetWidth;i.$element.addClass("in").attr("aria-hidden",!1);i.enforceFocus();r=n.Event("shown.bs.modal",{relatedTarget:t});u?i.$element.find(".modal-dialog").one(n.support.transition.end,function(){i.$element.focus().trigger(r)}).emulateTransitionEnd(300):i.$element.focus().trigger(r)}))};t.prototype.hide=function(t){t&&t.preventDefault();t=n.Event("hide.bs.modal");this.$element.trigger(t);this.isShown&&!t.isDefaultPrevented()&&(this.isShown=!1,this.escape(),n(document).off("focusin.bs.modal"),this.$element.removeClass("in").attr("aria-hidden",!0).off("click.dismiss.bs.modal"),n.support.transition&&this.$element.hasClass("fade")?this.$element.one(n.support.transition.end,n.proxy(this.hideModal,this)).emulateTransitionEnd(300):this.hideModal())};t.prototype.enforceFocus=function(){n(document).off("focusin.bs.modal").on("focusin.bs.modal",n.proxy(function(n){this.$element[0]===n.target||this.$element.has(n.target).length||this.$element.focus()},this))};t.prototype.escape=function(){this.isShown&&this.options.keyboard?this.$element.on("keyup.dismiss.bs.modal",n.proxy(function(n){27==n.which&&this.hide()},this)):this.isShown||this.$element.off("keyup.dismiss.bs.modal")};t.prototype.hideModal=function(){var n=this;this.$element.hide();this.backdrop(function(){n.removeBackdrop();n.$element.trigger("hidden.bs.modal")})};t.prototype.removeBackdrop=function(){this.$backdrop&&this.$backdrop.remove();this.$backdrop=null};t.prototype.backdrop=function(t){var r=this.$element.hasClass("fade")?"fade":"",i;if(this.isShown&&this.options.backdrop){if(i=n.support.transition&&r,this.$backdrop=n('<div class="modal-backdrop '+r+'" />').appendTo(document.body),this.$element.on("click.dismiss.bs.modal",n.proxy(function(n){n.target===n.currentTarget&&("static"==this.options.backdrop?this.$element[0].focus.call(this.$element[0]):this.hide.call(this))},this)),i&&this.$backdrop[0].offsetWidth,this.$backdrop.addClass("in"),!t)return;i?this.$backdrop.one(n.support.transition.end,t).emulateTransitionEnd(150):t()}else!this.isShown&&this.$backdrop?(this.$backdrop.removeClass("in"),n.support.transition&&this.$element.hasClass("fade")?this.$backdrop.one(n.support.transition.end,t).emulateTransitionEnd(150):t()):t&&t()};i=n.fn.modal;n.fn.modal=function(i,r){return this.each(function(){var f=n(this),u=f.data("bs.modal"),e=n.extend({},t.DEFAULTS,f.data(),"object"==typeof i&&i);u||f.data("bs.modal",u=new t(this,e));"string"==typeof i?u[i](r):e.show&&u.show(r)})};n.fn.modal.Constructor=t;n.fn.modal.noConflict=function(){return n.fn.modal=i,this};n(document).on("click.bs.modal.data-api",'[data-toggle="modal"]',function(t){var i=n(this),r=i.attr("href"),u=n(i.attr("data-target")||r&&r.replace(/.*(?=#[^\s]+$)/,"")),f=u.data("bs.modal")?"toggle":n.extend({remote:!/#/.test(r)&&r},u.data(),i.data());i.is("a")&&t.preventDefault();u.modal(f,this).one("hide",function(){i.is(":visible")&&i.focus()})});n(document).on("show.bs.modal",".modal",function(){n(document.body).addClass("modal-open")}).on("hidden.bs.modal",".modal",function(){n(document.body).removeClass("modal-open")})}(jQuery);+function(n){"use strict";var t=function(n,t){this.type=this.options=this.enabled=this.timeout=this.hoverState=this.$element=null;this.init("tooltip",n,t)},i;t.DEFAULTS={animation:!0,placement:"top",selector:!1,template:'<div class="tooltip"><div class="tooltip-arrow"><\/div><div class="tooltip-inner"><\/div><\/div>',trigger:"hover focus",title:"",delay:0,html:!1,container:!1};t.prototype.init=function(t,i,r){var f,e,u,o,s;for(this.enabled=!0,this.type=t,this.$element=n(i),this.options=this.getOptions(r),f=this.options.trigger.split(" "),e=f.length;e--;)if(u=f[e],"click"==u)this.$element.on("click."+this.type,this.options.selector,n.proxy(this.toggle,this));else"manual"!=u&&(o="hover"==u?"mouseenter":"focusin",s="hover"==u?"mouseleave":"focusout",this.$element.on(o+"."+this.type,this.options.selector,n.proxy(this.enter,this)),this.$element.on(s+"."+this.type,this.options.selector,n.proxy(this.leave,this)));this.options.selector?this._options=n.extend({},this.options,{trigger:"manual",selector:""}):this.fixTitle()};t.prototype.getDefaults=function(){return t.DEFAULTS};t.prototype.getOptions=function(t){return t=n.extend({},this.getDefaults(),this.$element.data(),t),t.delay&&"number"==typeof t.delay&&(t.delay={show:t.delay,hide:t.delay}),t};t.prototype.getDelegateOptions=function(){var t={},i=this.getDefaults();return this._options&&n.each(this._options,function(n,r){i[n]!=r&&(t[n]=r)}),t};t.prototype.enter=function(t){var i=t instanceof this.constructor?t:n(t.currentTarget)[this.type](this.getDelegateOptions()).data("bs."+this.type);return clearTimeout(i.timeout),i.hoverState="in",i.options.delay&&i.options.delay.show?void(i.timeout=setTimeout(function(){"in"==i.hoverState&&i.show()},i.options.delay.show)):i.show()};t.prototype.leave=function(t){var i=t instanceof this.constructor?t:n(t.currentTarget)[this.type](this.getDelegateOptions()).data("bs."+this.type);return clearTimeout(i.timeout),i.hoverState="out",i.options.delay&&i.options.delay.hide?void(i.timeout=setTimeout(function(){"out"==i.hoverState&&i.hide()},i.options.delay.hide)):i.hide()};t.prototype.show=function(){var h=n.Event("show.bs."+this.type),u,i,v,s;if(this.hasContent()&&this.enabled){if(this.$element.trigger(h),h.isDefaultPrevented())return;u=this;i=this.tip();this.setContent();this.options.animation&&i.addClass("fade");var t="function"==typeof this.options.placement?this.options.placement.call(this,i[0],this.$element[0]):this.options.placement,c=/\s?auto?\s?/i,l=c.test(t);l&&(t=t.replace(c,"")||"top");i.detach().css({top:0,left:0,display:"block"}).addClass(t);this.options.container?i.appendTo(this.options.container):i.insertAfter(this.$element);var r=this.getPosition(),f=i[0].offsetWidth,e=i[0].offsetHeight;if(l){var o=this.$element.parent(),y=t,a=document.documentElement.scrollTop||document.body.scrollTop,p="body"==this.options.container?window.innerWidth:o.outerWidth(),w="body"==this.options.container?window.innerHeight:o.outerHeight(),b="body"==this.options.container?0:o.offset().left;t="bottom"==t&&r.top+r.height+e-a>w?"top":"top"==t&&r.top-a-e<0?"bottom":"right"==t&&r.right+f>p?"left":"left"==t&&r.left-f<b?"right":t;i.removeClass(y).addClass(t)}v=this.getCalculatedOffset(t,r,f,e);this.applyPlacement(v,t);this.hoverState=null;s=function(){u.$element.trigger("shown.bs."+u.type)};n.support.transition&&this.$tip.hasClass("fade")?i.one(n.support.transition.end,s).emulateTransitionEnd(150):s()}};t.prototype.applyPlacement=function(t,i){var c,r=this.tip(),l=r[0].offsetWidth,e=r[0].offsetHeight,o=parseInt(r.css("margin-top"),10),s=parseInt(r.css("margin-left"),10),f,u,h;isNaN(o)&&(o=0);isNaN(s)&&(s=0);t.top=t.top+o;t.left=t.left+s;n.offset.setOffset(r[0],n.extend({using:function(n){r.css({top:Math.round(n.top),left:Math.round(n.left)})}},t),0);r.addClass("in");f=r[0].offsetWidth;u=r[0].offsetHeight;("top"==i&&u!=e&&(c=!0,t.top=t.top+e-u),/bottom|top/.test(i))?(h=0,t.left<0&&(h=-2*t.left,t.left=0,r.offset(t),f=r[0].offsetWidth,u=r[0].offsetHeight),this.replaceArrow(h-l+f,f,"left")):this.replaceArrow(u-e,u,"top");c&&r.offset(t)};t.prototype.replaceArrow=function(n,t,i){this.arrow().css(i,n?50*(1-n/t)+"%":"")};t.prototype.setContent=function(){var n=this.tip(),t=this.getTitle();n.find(".tooltip-inner")[this.options.html?"html":"text"](t);n.removeClass("fade in top bottom left right")};t.prototype.hide=function(){function r(){"in"!=t.hoverState&&i.detach();t.$element.trigger("hidden.bs."+t.type)}var t=this,i=this.tip(),u=n.Event("hide.bs."+this.type);return this.$element.trigger(u),u.isDefaultPrevented()?void 0:(i.removeClass("in"),n.support.transition&&this.$tip.hasClass("fade")?i.one(n.support.transition.end,r).emulateTransitionEnd(150):r(),this.hoverState=null,this)};t.prototype.fixTitle=function(){var n=this.$element;(n.attr("title")||"string"!=typeof n.attr("data-original-title"))&&n.attr("data-original-title",n.attr("title")||"").attr("title","")};t.prototype.hasContent=function(){return this.getTitle()};t.prototype.getPosition=function(){var t=this.$element[0];return n.extend({},"function"==typeof t.getBoundingClientRect?t.getBoundingClientRect():{width:t.offsetWidth,height:t.offsetHeight},this.$element.offset())};t.prototype.getCalculatedOffset=function(n,t,i,r){return"bottom"==n?{top:t.top+t.height,left:t.left+t.width/2-i/2}:"top"==n?{top:t.top-r,left:t.left+t.width/2-i/2}:"left"==n?{top:t.top+t.height/2-r/2,left:t.left-i}:{top:t.top+t.height/2-r/2,left:t.left+t.width}};t.prototype.getTitle=function(){var t=this.$element,n=this.options;return t.attr("data-original-title")||("function"==typeof n.title?n.title.call(t[0]):n.title)};t.prototype.tip=function(){return this.$tip=this.$tip||n(this.options.template)};t.prototype.arrow=function(){return this.$arrow=this.$arrow||this.tip().find(".tooltip-arrow")};t.prototype.validate=function(){this.$element[0].parentNode||(this.hide(),this.$element=null,this.options=null)};t.prototype.enable=function(){this.enabled=!0};t.prototype.disable=function(){this.enabled=!1};t.prototype.toggleEnabled=function(){this.enabled=!this.enabled};t.prototype.toggle=function(t){var i=t?n(t.currentTarget)[this.type](this.getDelegateOptions()).data("bs."+this.type):this;i.tip().hasClass("in")?i.leave(i):i.enter(i)};t.prototype.destroy=function(){clearTimeout(this.timeout);this.hide().$element.off("."+this.type).removeData("bs."+this.type)};i=n.fn.tooltip;n.fn.tooltip=function(i){return this.each(function(){var u=n(this),r=u.data("bs.tooltip"),f="object"==typeof i&&i;(r||"destroy"!=i)&&(r||u.data("bs.tooltip",r=new t(this,f)),"string"==typeof i&&r[i]())})};n.fn.tooltip.Constructor=t;n.fn.tooltip.noConflict=function(){return n.fn.tooltip=i,this}}(jQuery);+function(n){"use strict";var t=function(n,t){this.init("popover",n,t)},i;if(!n.fn.tooltip)throw new Error("Popover requires tooltip.js");t.DEFAULTS=n.extend({},n.fn.tooltip.Constructor.DEFAULTS,{placement:"right",trigger:"click",content:"",template:'<div class="popover"><div class="arrow"><\/div><h3 class="popover-title"><\/h3><div class="popover-content"><\/div><\/div>'});t.prototype=n.extend({},n.fn.tooltip.Constructor.prototype);t.prototype.constructor=t;t.prototype.getDefaults=function(){return t.DEFAULTS};t.prototype.setContent=function(){var n=this.tip(),i=this.getTitle(),t=this.getContent();n.find(".popover-title")[this.options.html?"html":"text"](i);n.find(".popover-content")[this.options.html?"string"==typeof t?"html":"append":"text"](t);n.removeClass("fade top bottom left right in");n.find(".popover-title").html()||n.find(".popover-title").hide()};t.prototype.hasContent=function(){return this.getTitle()||this.getContent()};t.prototype.getContent=function(){var t=this.$element,n=this.options;return t.attr("data-content")||("function"==typeof n.content?n.content.call(t[0]):n.content)};t.prototype.arrow=function(){return this.$arrow=this.$arrow||this.tip().find(".arrow")};t.prototype.tip=function(){return this.$tip||(this.$tip=n(this.options.template)),this.$tip};i=n.fn.popover;n.fn.popover=function(i){return this.each(function(){var u=n(this),r=u.data("bs.popover"),f="object"==typeof i&&i;(r||"destroy"!=i)&&(r||u.data("bs.popover",r=new t(this,f)),"string"==typeof i&&r[i]())})};n.fn.popover.Constructor=t;n.fn.popover.noConflict=function(){return n.fn.popover=i,this}}(jQuery);+function(n){"use strict";function t(i,r){var u,f=n.proxy(this.process,this);this.$element=n(n(i).is("body")?window:i);this.$body=n("body");this.$scrollElement=this.$element.on("scroll.bs.scroll-spy.data-api",f);this.options=n.extend({},t.DEFAULTS,r);this.selector=(this.options.target||(u=n(i).attr("href"))&&u.replace(/.*(?=#[^\s]+$)/,"")||"")+" .nav li > a";this.offsets=n([]);this.targets=n([]);this.activeTarget=null;this.refresh();this.process()}t.DEFAULTS={offset:10};t.prototype.refresh=function(){var i=this.$element[0]==window?"offset":"position",t;this.offsets=n([]);this.targets=n([]);t=this;this.$body.find(this.selector).map(function(){var f=n(this),u=f.data("target")||f.attr("href"),r=/^#./.test(u)&&n(u);return r&&r.length&&r.is(":visible")&&[[r[i]().top+(!n.isWindow(t.$scrollElement.get(0))&&t.$scrollElement.scrollTop()),u]]||null}).sort(function(n,t){return n[0]-t[0]}).each(function(){t.offsets.push(this[0]);t.targets.push(this[1])})};t.prototype.process=function(){var n,i=this.$scrollElement.scrollTop()+this.options.offset,f=this.$scrollElement[0].scrollHeight||this.$body[0].scrollHeight,e=f-this.$scrollElement.height(),t=this.offsets,r=this.targets,u=this.activeTarget;if(i>=e)return u!=(n=r.last()[0])&&this.activate(n);if(u&&i<=t[0])return u!=(n=r[0])&&this.activate(n);for(n=t.length;n--;)u!=r[n]&&i>=t[n]&&(!t[n+1]||i<=t[n+1])&&this.activate(r[n])};t.prototype.activate=function(t){this.activeTarget=t;n(this.selector).parentsUntil(this.options.target,".active").removeClass("active");var r=this.selector+'[data-target="'+t+'"],'+this.selector+'[href="'+t+'"]',i=n(r).parents("li").addClass("active");i.parent(".dropdown-menu").length&&(i=i.closest("li.dropdown").addClass("active"));i.trigger("activate.bs.scrollspy")};var i=n.fn.scrollspy;n.fn.scrollspy=function(i){return this.each(function(){var u=n(this),r=u.data("bs.scrollspy"),f="object"==typeof i&&i;r||u.data("bs.scrollspy",r=new t(this,f));"string"==typeof i&&r[i]()})};n.fn.scrollspy.Constructor=t;n.fn.scrollspy.noConflict=function(){return n.fn.scrollspy=i,this};n(window).on("load",function(){n('[data-spy="scroll"]').each(function(){var t=n(this);t.scrollspy(t.data())})})}(jQuery);+function(n){"use strict";var t=function(t){this.element=n(t)},i;t.prototype.show=function(){var t=this.element,e=t.closest("ul:not(.dropdown-menu)"),i=t.data("target"),r,u,f;(i||(i=t.attr("href"),i=i&&i.replace(/.*(?=#[^\s]*$)/,"")),t.parent("li").hasClass("active"))||(r=e.find(".active:last a")[0],u=n.Event("show.bs.tab",{relatedTarget:r}),(t.trigger(u),u.isDefaultPrevented())||(f=n(i),this.activate(t.parent("li"),e),this.activate(f,f.parent(),function(){t.trigger({type:"shown.bs.tab",relatedTarget:r})})))};t.prototype.activate=function(t,i,r){function f(){u.removeClass("active").find("> .dropdown-menu > .active").removeClass("active");t.addClass("active");e?(t[0].offsetWidth,t.addClass("in")):t.removeClass("fade");t.parent(".dropdown-menu")&&t.closest("li.dropdown").addClass("active");r&&r()}var u=i.find("> .active"),e=r&&n.support.transition&&u.hasClass("fade");e?u.one(n.support.transition.end,f).emulateTransitionEnd(150):f();u.removeClass("in")};i=n.fn.tab;n.fn.tab=function(i){return this.each(function(){var u=n(this),r=u.data("bs.tab");r||u.data("bs.tab",r=new t(this));"string"==typeof i&&r[i]()})};n.fn.tab.Constructor=t;n.fn.tab.noConflict=function(){return n.fn.tab=i,this};n(document).on("click.bs.tab.data-api",'[data-toggle="tab"], [data-toggle="pill"]',function(t){t.preventDefault();n(this).tab("show")})}(jQuery);+function(n){"use strict";var t=function(i,r){this.options=n.extend({},t.DEFAULTS,r);this.$window=n(window).on("scroll.bs.affix.data-api",n.proxy(this.checkPosition,this)).on("click.bs.affix.data-api",n.proxy(this.checkPositionWithEventLoop,this));this.$element=n(i);this.affixed=this.unpin=this.pinnedOffset=null;this.checkPosition()},i;t.RESET="affix affix-top affix-bottom";t.DEFAULTS={offset:0};t.prototype.getPinnedOffset=function(){if(this.pinnedOffset)return this.pinnedOffset;this.$element.removeClass(t.RESET).addClass("affix");var n=this.$window.scrollTop(),i=this.$element.offset();return this.pinnedOffset=i.top-n};t.prototype.checkPositionWithEventLoop=function(){setTimeout(n.proxy(this.checkPosition,this),1)};t.prototype.checkPosition=function(){var i,e,h;if(this.$element.is(":visible")){var c=n(document).height(),o=this.$window.scrollTop(),s=this.$element.offset(),r=this.options.offset,f=r.top,u=r.bottom;"top"==this.affixed&&(s.top+=o);"object"!=typeof r&&(u=f=r);"function"==typeof f&&(f=r.top(this.$element));"function"==typeof u&&(u=r.bottom(this.$element));i=null!=this.unpin&&o+this.unpin<=s.top?!1:null!=u&&s.top+this.$element.height()>=c-u?"bottom":null!=f&&f>=o?"top":!1;this.affixed!==i&&(this.unpin&&this.$element.css("top",""),e="affix"+(i?"-"+i:""),h=n.Event(e+".bs.affix"),this.$element.trigger(h),h.isDefaultPrevented()||(this.affixed=i,this.unpin="bottom"==i?this.getPinnedOffset():null,this.$element.removeClass(t.RESET).addClass(e).trigger(n.Event(e.replace("affix","affixed"))),"bottom"==i&&this.$element.offset({top:c-u-this.$element.height()})))}};i=n.fn.affix;n.fn.affix=function(i){return this.each(function(){var u=n(this),r=u.data("bs.affix"),f="object"==typeof i&&i;r||u.data("bs.affix",r=new t(this,f));"string"==typeof i&&r[i]()})};n.fn.affix.Constructor=t;n.fn.affix.noConflict=function(){return n.fn.affix=i,this};n(window).on("load",function(){n('[data-spy="affix"]').each(function(){var i=n(this),t=i.data();t.offset=t.offset||{};t.offsetBottom&&(t.offset.bottom=t.offsetBottom);t.offsetTop&&(t.offset.top=t.offsetTop);i.affix(t)})})}(jQuery);Object.keys||(Object.keys=function(){"use strict";var t=Object.prototype.hasOwnProperty,i=!{toString:null}.propertyIsEnumerable("toString"),n=["toString","toLocaleString","valueOf","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","constructor"],r=n.length;return function(u){if(typeof u!="object"&&(typeof u!="function"||u===null))throw new TypeError("Object.keys called on non-object");var e=[],o,f;for(o in u)t.call(u,o)&&e.push(o);if(i)for(f=0;f<r;f++)t.call(u,n[f])&&e.push(n[f]);return e}}());typeof Object.create!="function"&&(Object.create=function(){var n=function(){};return function(t){if(arguments.length>1)throw Error("Second argument not supported");if(typeof t!="object")throw TypeError("Argument must be an object");n.prototype=t;var i=new n;return n.prototype=null,i}}());Object.getPrototypeOf||(Object.getPrototypeOf=function(n){var t=n.__proto__;return t||t===null?t:n.constructor?n.constructor.prototype:prototypeOfObject});Array.prototype.indexOf||(Array.prototype.indexOf=function(n,t){var r,f,u,i;if(this==null)throw new TypeError('"this" is null or not defined');if((f=Object(this),u=f.length>>>0,u===0)||(i=+t||0,Math.abs(i)===Infinity&&(i=0),i>=u))return-1;for(r=Math.max(i>=0?i:u-Math.abs(i),0);r<u;){if(r in f&&f[r]===n)return r;r++}return-1});Array.prototype.filter||(Array.prototype.filter=function(n){"use strict";var i,f,r,e,t,u;if(this===void 0||this===null)throw new TypeError;if(i=Object(this),f=i.length>>>0,typeof n!="function")throw new TypeError;for(r=[],e=arguments.length>=2?arguments[1]:void 0,t=0;t<f;t++)t in i&&(u=i[t],n.call(e,u,t,i)&&r.push(u));return r});Array.isArray||(Array.isArray=function(n){return Object.prototype.toString.call(n)==="[object Array]"});Array.prototype.every||(Array.prototype.every=function(n,t){"use strict";var u,i,r,f,e,o;if(this==null)throw new TypeError("this is null or not defined");if(r=Object(this),f=r.length>>>0,typeof n!="function")throw new TypeError;for(arguments.length>1&&(u=t),i=0;i<f;){if(i in r&&(e=r[i],o=n.call(u,e,i,r),!o))return!1;i++}return!0});Array.prototype.forEach||(Array.prototype.forEach=function(n,t){var u,i,r,f,e;if(this==null)throw new TypeError(" this is null or not defined");if(r=Object(this),f=r.length>>>0,typeof n!="function")throw new TypeError(n+" is not a function");for(arguments.length>1&&(u=t),i=0;i<f;)i in r&&(e=r[i],n.call(u,e,i,r)),i++});String.prototype.trim||function(){var n=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g;String.prototype.trim=function(){return this.replace(n,"")}}(),function(n,t,i){"use strict";function y(n){return function(){for(var i=arguments[0],i="["+(n?n+":":"")+i+"] http://errors.angularjs.org/1.3.0-beta.18/"+(n?n+"/":"")+i,t=1;t<arguments.length;t++)i=i+(1==t?"?":"&")+"p"+(t-1)+"="+encodeURIComponent("function"==typeof arguments[t]?arguments[t].toString().replace(/ \{[\s\S]*$/,""):"undefined"==typeof arguments[t]?"undefined":"string"!=typeof arguments[t]?JSON.stringify(arguments[t]):arguments[t]);return Error(i)}}function hr(n){if(null==n||ai(n))return!1;var t=n.length;return 1===n.nodeType&&t?!0:s(n)||h(n)||0===t||"number"==typeof t&&0<t&&t-1 in n}function r(n,t,i){var u,f;if(n)if(e(n))for(u in n)"prototype"==u||"length"==u||"name"==u||n.hasOwnProperty&&!n.hasOwnProperty(u)||t.call(i,n[u],u);else if(h(n)||hr(n))for(u=0,f=n.length;u<f;u++)t.call(i,n[u],u);else if(n.forEach&&n.forEach!==r)n.forEach(t,i);else for(u in n)n.hasOwnProperty(u)&&t.call(i,n[u],u);return n}function wf(n){var t=[];for(var i in n)n.hasOwnProperty(i)&&t.push(i);return t.sort()}function as(n,t,i){for(var r=wf(n),u=0;u<r.length;u++)t.call(i,n[r[u]],r[u]);return r}function bf(n){return function(t,i){n(i,t)}}function vs(){return++uu}function kf(n,t){t?n.$$hashKey=t:delete n.$$hashKey}function l(n){var t=n.$$hashKey;return r(arguments,function(t){t!==n&&r(t,function(t,i){n[i]=t})}),kf(n,t),n}function k(n){return parseInt(n,10)}function df(n,t){return l(new(l(function(){},{prototype:n})),t)}function o(){}function ri(n){return n}function nt(n){return function(){return n}}function c(n){return"undefined"==typeof n}function f(n){return"undefined"!=typeof n}function a(n){return null!=n&&"object"==typeof n}function s(n){return"string"==typeof n}function ui(n){return"number"==typeof n}function tt(n){return"[object Date]"===ti.call(n)}function e(n){return"function"==typeof n}function cr(n){return"[object RegExp]"===ti.call(n)}function ai(n){return n&&n.window===n}function ys(n){return!(!n||!(n.nodeName||n.prop&&n.attr&&n.find))}function ps(n){var i={},t;for(n=n.split(","),t=0;t<n.length;t++)i[n[t]]=!0;return i}function ws(n,t,i){var u=[];return r(n,function(n,r,f){u.push(t.call(i,n,r,f))}),u}function vi(n,t){if(n.indexOf)return n.indexOf(t);for(var i=0;i<n.length;i++)if(t===n[i])return i;return-1}function fi(n,t){var i=vi(n,t);return 0<=i&&n.splice(i,1),t}function ei(n,t,i,u){var e,f,o;if(ai(n)||n&&n.$evalAsync&&n.$watch)throw gi("cpws");if(t){if(n===t)throw gi("cpi");if(i=i||[],u=u||[],a(n)){if(e=vi(i,n),-1!==e)return u[e];i.push(n);u.push(t)}if(h(n))for(f=t.length=0;f<n.length;f++)e=ei(n[f],null,i,u),a(n[f])&&(i.push(n[f]),u.push(e)),t.push(e);else{o=t.$$hashKey;r(t,function(n,i){delete t[i]});for(f in n)n.hasOwnProperty(f)&&(e=ei(n[f],null,i,u),a(n[f])&&(i.push(n[f]),u.push(e)),t[f]=e);kf(t,o)}}else(t=n)&&(h(n)?t=ei(n,[],i,u):tt(n)?t=new Date(n.getTime()):cr(n)?(t=RegExp(n.source,n.toString().match(/[^\/]*$/)[0]),t.lastIndex=n.lastIndex):a(n)&&(e=Object.create(Object.getPrototypeOf(n)),t=ei(n,e,i,u)));return t}function ut(n,t){var i=0,u,f,r;if(h(n))for(t=t||[];i<n.length;i++)t[i]=n[i];else if(a(n))for(t=t||{},u=Object.keys(n),f=u.length;i<f;i++)r=u[i],("$"!==r.charAt(0)||"$"!==r.charAt(1))&&(t[r]=n[r]);return t||n}function pt(n,t){if(n===t)return!0;if(null===n||null===t)return!1;if(n!==n&&t!==t)return!0;var u=typeof n,r;if(u==typeof t&&"object"==u)if(h(n)){if(!h(t))return!1;if((u=n.length)==t.length){for(r=0;r<u;r++)if(!pt(n[r],t[r]))return!1;return!0}}else{if(tt(n))return tt(t)&&n.getTime()==t.getTime();if(cr(n)&&cr(t))return n.toString()==t.toString();if(n&&n.$evalAsync&&n.$watch||t&&t.$evalAsync&&t.$watch||ai(n)||ai(t)||h(t))return!1;u={};for(r in n)if("$"!==r.charAt(0)&&!e(n[r])){if(!pt(n[r],t[r]))return!1;u[r]=!0}for(r in t)if(!u.hasOwnProperty(r)&&"$"!==r.charAt(0)&&t[r]!==i&&!e(t[r]))return!1;return!0}return!1}function cu(n,t){var i=2<arguments.length?st.call(arguments,2):[];return!e(t)||t instanceof RegExp?t:i.length?function(){return arguments.length?t.apply(n,i.concat(st.call(arguments,0))):t.apply(n,i)}:function(){return arguments.length?t.apply(n,arguments):t.call(n)}}function bs(n,r){var u=r;return"string"==typeof n&&"$"===n.charAt(0)&&"$"===n.charAt(1)?u=i:ai(r)?u="$WINDOW":r&&t===r?u="$DOCUMENT":r&&r.$evalAsync&&r.$watch&&(u="$SCOPE"),u}function wt(n,t){return"undefined"==typeof n?i:JSON.stringify(n,bs,t?"  ":null)}function gf(n){return s(n)?JSON.parse(n):n}function ft(n){n=u(n).clone();try{n.empty()}catch(i){}var t=u("<div>").append(n).html();try{return 3===n[0].nodeType?v(t):t.match(/^(<[^>]+>)/)[1].replace(/^<([\w\-]+)/,function(n,t){return"<"+v(t)})}catch(r){return v(t)}}function ne(n){try{return decodeURIComponent(n)}catch(t){}}function te(n){var i={},u,t;return r((n||"").split("&"),function(n){n&&(u=n.replace(/\+/g,"%20").split("="),t=ne(u[0]),f(t)&&(n=f(u[1])?ne(u[1]):!0,ff.call(i,t)?h(i[t])?i[t].push(n):i[t]=[i[t],n]:i[t]=n))}),i}function lu(n){var t=[];return r(n,function(n,i){h(n)?r(n,function(n){t.push(gt(i,!0)+(!0===n?"":"="+gt(n,!0)))}):t.push(gt(i,!0)+(!0===n?"":"="+gt(n,!0)))}),t.length?t.join("&"):""}function lr(n){return gt(n,!0).replace(/%26/gi,"&").replace(/%3D/gi,"=").replace(/%2B/gi,"+")}function gt(n,t){return encodeURIComponent(n).replace(/%40/gi,"@").replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%3B/gi,";").replace(/%20/g,t?"%20":"+")}function ks(n,t){var i,r,f=fu.length;for(n=u(n),r=0;r<f;++r)if(i=fu[r]+t,s(i=n.attr(i)))return i;return null}function ds(n,t){var i,u,f={};r(fu,function(t){t+="app";!i&&n.hasAttribute&&n.hasAttribute(t)&&(i=n,u=n.getAttribute(t))});r(fu,function(t){t+="app";var r;!i&&(r=n.querySelector("["+t.replace(":","\\:")+"]"))&&(i=r,u=r.getAttribute(t))});i&&(f.strictDi=null!==ks(i,"strict-di"),t(i,u?[u]:[],f))}function ie(i,f,e){a(e)||(e={});e=l({strictDi:!1},e);var o=function(){if(i=u(i),i.injector()){var n=i[0]===t?"document":ft(i);throw gi("btstrpd",n);}return f=f||[],f.unshift(["$provide",function(n){n.value("$rootElement",i)}]),f.unshift("ng"),n=bu(f,e.strictDi),n.invoke(["$rootScope","$rootElement","$compile","$injector",function(n,t,i,r){n.$apply(function(){t.data("$injector",r);i(t)(n)})}]),n},s=/^NG_DEFER_BOOTSTRAP!/;if(n&&!s.test(n.name))return o();n.name=n.name.replace(s,"");nr.resumeBootstrap=function(n){r(n,function(n){f.push(n)});o()}}function ar(n,t){return t=t||"_",n.replace(nl,function(n,i){return(i?t:"")+n.toLowerCase()})}function gs(){var t;(ot=n.jQuery)&&ot.fn.on?(u=ot,l(ot.fn,{scope:ii.scope,isolateScope:ii.isolateScope,controller:ii.controller,injector:ii.injector,inheritedData:ii.inheritedData}),t=ot.cleanData,t=t.$$original||t,ot.cleanData=function(n){for(var i=0,r;null!=(r=n[i]);i++)ot(r).triggerHandler("$destroy");t(n)},ot.cleanData.$$original=t):u=p;nr.element=u}function au(n,t,i){if(!n)throw gi("areq",t||"?",i||"required");return n}function yi(n,t,i){return i&&h(n)&&(n=n[n.length-1]),au(e(n),t,"not a function, got "+(n&&"object"==typeof n?n.constructor.name||"Object":typeof n)),n}function ni(n,t){if("hasOwnProperty"===n)throw gi("badname",t);}function re(n,t,i){if(!t)return n;t=t.split(".");for(var u,f=n,o=t.length,r=0;r<o;r++)u=t[r],n&&(n=(f=n)[u]);return!i&&e(n)?cu(f,n):n}function vr(n){var t=n[0],i;if(n=n[n.length-1],t===n)return u(t);i=[t];do{if(t=t.nextSibling,!t)break;i.push(t)}while(t!==n);return u(i)}function nh(n){var t=y("$injector"),i=y("ng");return n=n.angular||(n.angular={}),n.$$minErr=n.$$minErr||y,n.module||(n.module=function(){var n={};return function(r,u,f){if("hasOwnProperty"===r)throw i("badname","module");return u&&n.hasOwnProperty(r)&&(n[r]=null),n[r]||(n[r]=function(){function n(n,t,r,u){return u||(u=i),function(){return u[r||"push"]([n,t,arguments]),h}}if(!u)throw t("nomod",r);var i=[],e=[],o=[],s=n("$injector","invoke","push",e),h={_invokeQueue:i,_configBlocks:e,_runBlocks:o,requires:u,name:r,provider:n("$provide","provider"),factory:n("$provide","factory"),service:n("$provide","service"),value:n("$provide","value"),constant:n("$provide","constant","unshift"),animation:n("$animateProvider","register"),filter:n("$filterProvider","register"),controller:n("$controllerProvider","register"),directive:n("$compileProvider","directive"),config:s,run:function(n){return o.push(n),this}};return f&&s(f),h}())}}())}function th(t){l(t,{bootstrap:ie,copy:ei,extend:l,equals:pt,element:u,forEach:r,injector:bu,noop:o,bind:cu,toJson:wt,fromJson:gf,identity:ri,isUndefined:c,isDefined:f,isString:s,isFunction:e,isObject:a,isNumber:ui,isElement:ys,isArray:h,version:tl,isDate:tt,lowercase:v,uppercase:ru,callbacks:{counter:0},$$minErr:y,$$csp:ir});tr=nh(n);try{tr("ngLocale")}catch(i){tr("ngLocale",[]).provider("$locale",nc)}tr("ng",["ngLocale"],["$provide",function(n){n.provider({$$sanitizeUri:sc});n.provider("$compile",he).directive({a:go,input:es,textarea:es,form:ia,script:bv,select:gv,style:ty,option:ny,ngBind:wa,ngBindHtml:ka,ngBindTemplate:ba,ngClass:da,ngClassEven:nv,ngClassOdd:ga,ngCloak:tv,ngController:iv,ngForm:ra,ngHide:lv,ngIf:rv,ngInclude:uv,ngInit:ev,ngNonBindable:ov,ngPluralize:sv,ngRepeat:hv,ngShow:cv,ngStyle:av,ngSwitch:vv,ngSwitchWhen:yv,ngSwitchDefault:pv,ngOptions:dv,ngTransclude:wv,ngModel:ca,ngList:aa,ngChange:la,pattern:ss,ngPattern:ss,required:os,ngRequired:os,minlength:cs,ngMinlength:cs,maxlength:hs,ngMaxlength:hs,ngValue:ya,ngModelOptions:pa}).directive({ngInclude:fv}).directive(or).directive(ls);n.provider({$anchorScroll:eh,$animate:al,$browser:hh,$cacheFactory:ch,$controller:ah,$document:vh,$exceptionHandler:yh,$filter:to,$interpolate:dh,$interval:gh,$http:ph,$httpBackend:bh,$location:tc,$log:ic,$parse:rc,$rootScope:oc,$q:uc,$$q:fc,$sce:lc,$sceDelegate:cc,$sniffer:ac,$templateCache:lh,$timeout:vc,$window:yc,$$rAF:ec,$$asyncCallback:oh})}])}function pi(n){return n.replace(rl,function(n,t,i,r){return r?i.toUpperCase():i}).replace(ul,"Moz$1")}function ih(n,t){var i,u,f=t.createDocumentFragment(),e=[];if(of.test(n)){for(i=i||f.appendChild(t.createElement("div")),u=(el.exec(n)||["",""])[1].toLowerCase(),u=it[u]||it._default,i.innerHTML=u[1]+n.replace(ol,"<$1><\/$2>")+u[2],u=u[0];u--;)i=i.lastChild;e=e.concat(st.call(i.childNodes,void 0));i=f.firstChild;i.textContent=""}else e.push(t.createTextNode(n));return f.textContent="",f.innerHTML="",r(e,function(n){f.appendChild(n)}),f}function p(n){var r,i;if(n instanceof p)return n;if(s(n)&&(n=b(n)),!(this instanceof p)){if(s(n)&&"<"!=n.charAt(0))throw ef("nosel");return new p(n)}s(n)&&(r=t,n=(i=fl.exec(n))?[r.createElement(i[1])]:(i=ih(n,r))?i.childNodes:[]);fe(this,n)}function vu(n){return n.cloneNode(!0)}function yr(n,t){var i,r,u;if(t||pr(n),n.childNodes&&n.childNodes.length)for(n.getElementsByTagName?(i=n.getElementsByTagName("*"),i=st.call(i,0)):i=n.querySelectorAll?n.querySelectorAll("*"):[],r=0,u=i.length;r<u;r++)pr(i[r])}function ue(n,t,i,u){if(f(u))throw ef("offargs");var e=lt(n,"events");lt(n,"handle")&&(c(t)?r(e,function(t,i){ur(n,i,t);delete e[i]}):r(t.split(" "),function(t){c(i)?(ur(n,t,e[t]),delete e[t]):fi(e[t]||[],i)}))}function pr(n,t){var u=n.ng339,r=rr[u];r&&(t?delete rr[u].data[t]:(r.handle&&(r.events.$destroy&&r.handle({},"$destroy"),ue(n)),delete rr[u],n.ng339=i))}function lt(n,t,i){var r=n.ng339,r=rr[r||-1];if(f(i))r||(n.ng339=r=++il,r=rr[r]={}),r[t]=i;else return r&&r[t]}function yu(n,t,i){if(!n.nodeType||1===n.nodeType||9===n.nodeType){var r=lt(n,"data"),u=f(i),e=!u&&f(t),o=e&&!a(t);if(r||o||lt(n,"data",r={}),u)r[t]=i;else if(e){if(o)return r&&r[t];l(r,t)}else return r}}function pu(n,t){return n.getAttribute?-1<(" "+(n.getAttribute("class")||"")+" ").replace(/[\n\t]/g," ").indexOf(" "+t+" "):!1}function wr(n,t){t&&n.setAttribute&&r(t.split(" "),function(t){n.setAttribute("class",b((" "+(n.getAttribute("class")||"")+" ").replace(/[\n\t]/g," ").replace(" "+b(t)+" "," ")))})}function br(n,t){if(t&&n.setAttribute){var i=(" "+(n.getAttribute("class")||"")+" ").replace(/[\n\t]/g," ");r(t.split(" "),function(n){n=b(n);-1===i.indexOf(" "+n+" ")&&(i+=n+" ")});n.setAttribute("class",b(i))}}function fe(n,t){if(t)if(t.nodeType)n[n.length++]=t;else{var i=t.length;"number"==typeof i&&t.window!==t?i&&(t.item&&(t=st.call(t)),ao.apply(n,t)):n[n.length++]=t}}function ee(n,t){return kr(n,"$"+(t||"ngController")+"Controller")}function kr(n,t,r){for(9==n.nodeType&&(n=n.documentElement),t=h(t)?t:[t];n;){for(var f=0,e=t.length;f<e;f++)if((r=u.data(n,t[f]))!==i)return r;n=n.parentNode||11===n.nodeType&&n.host}}function oe(n){for(yr(n,!0);n.firstChild;)n.removeChild(n.firstChild)}function se(n,t){var i=fr[t.toLowerCase()];return i&&sf[yt(n)]&&i}function rh(n,t){var i=n.nodeName;return("INPUT"===i||"TEXTAREA"===i)&&hf[t]}function uh(n,i){var u=function(u,f){var e,o;u.preventDefault||(u.preventDefault=function(){u.returnValue=!1});u.stopPropagation||(u.stopPropagation=function(){u.cancelBubble=!0});u.target||(u.target=u.srcElement||t);c(u.defaultPrevented)&&(e=u.preventDefault,u.preventDefault=function(){u.defaultPrevented=!0;e.call(u)},u.defaultPrevented=!1);u.isDefaultPrevented=function(){return u.defaultPrevented||!1===u.returnValue};o=ut(i[f||u.type]||[]);r(o,function(t){t.call(n,u)});8>=w?(u.preventDefault=null,u.stopPropagation=null,u.isDefaultPrevented=null):(delete u.preventDefault,delete u.stopPropagation,delete u.isDefaultPrevented)};return u.elem=n,u}function oi(n,t){var u=typeof n,r;return"function"==u||"object"==u&&null!==n?"function"==typeof(r=n.$$hashKey)?r=n.$$hashKey():r===i&&(r=n.$$hashKey=(t||vs)()):r=n,u+":"+r}function wi(n,t){if(t){var i=0;this.nextUid=function(){return++i}}r(n,this.put,this)}function fh(n){return(n=n.toString().replace(yo,"").match(vo))?"function("+(n[1]||"").replace(/[\s\r\n]+/," ")+")":"fn"}function wu(n,t,i){var u;if("function"==typeof n){if(!(u=n.$inject)){if(u=[],n.length){if(t)throw s(i)&&i||(i=n.name||fh(n)),hi("strictdi",i);t=n.toString().replace(yo,"");t=t.match(vo);r(t[1].split(hl),function(n){n.replace(cl,function(n,t,i){u.push(i)})})}n.$inject=u}}else h(n)?(t=n.length-1,yi(n[t],"fn"),u=n.slice(0,t)):yi(n,"fn",!0);return u}function bu(n,t){function f(n){return function(t,i){if(a(t))r(t,bf(n));else return n(t,i)}}function k(n,t){if(ni(n,"service"),(e(t)||h(t))&&(t=u.instantiate(t)),!t.$get)throw hi("pget",n);return c[n+v]=t}function p(n,t){return k(n,{$get:t})}function d(n){var t=[],i;return r(n,function(n){function f(n){for(var i,r,t=0,f=n.length;t<f;t++)i=n[t],r=u.get(i[0]),r[i[1]].apply(r,i[2])}if(!tt.get(n)){tt.put(n,!0);try{s(n)?(i=tr(n),t=t.concat(d(i.requires)).concat(i._runBlocks),f(i._invokeQueue),f(i._configBlocks)):e(n)?t.push(u.invoke(n)):h(n)?t.push(u.invoke(n)):yi(n,"module")}catch(r){throw h(n)&&(n=n[n.length-1]),r.message&&r.stack&&-1==r.stack.indexOf(r.message)&&(r=r.message+"\n"+r.stack),hi("modulerr",n,r.stack||r.message||r);}}}),t}function g(n,i){function r(t){if(n.hasOwnProperty(t)){if(n[t]===w)throw hi("cdep",t+" <- "+y.join(" <- "));return n[t]}try{return y.unshift(t),n[t]=w,n[t]=i(t)}catch(r){throw n[t]===w&&delete n[t],r;}finally{y.shift()}}function u(n,i,u,f){var s,c,o,e;for("string"==typeof u&&(f=u,u=null),s=[],f=wu(n,t,f),o=0,c=f.length;o<c;o++){if(e=f[o],"string"!=typeof e)throw hi("itkn",e);s.push(u&&u.hasOwnProperty(e)?u[e]:r(e))}return h(n)&&(n=n[c]),n.apply(i,s)}return{invoke:u,instantiate:function(n,t,i){var r=function(){};return r.prototype=(h(n)?n[n.length-1]:n).prototype,r=new r,n=u(n,r,t,i),a(n)||e(n)?n:r},get:r,annotate:wu,has:function(t){return c.hasOwnProperty(t+v)||n.hasOwnProperty(t)}}}t=!0===t;var w={},v="Provider",y=[],tt=new wi([],!0),c={$provide:{provider:f(k),factory:f(p),service:f(function(n,t){return p(n,["$injector",function(n){return n.instantiate(t)}])}),value:f(function(n,t){return p(n,nt(t))}),constant:f(function(n,t){ni(n,"constant");c[n]=t;b[n]=t}),decorator:function(n,t){var i=u.get(n+v),r=i.$get;i.$get=function(){var n=l.invoke(r,i);return l.invoke(t,null,{$delegate:n})}}}},u=c.$injector=g(c,function(){throw hi("unpr",y.join(" <- "));},t),b={},l=b.$injector=g(b,function(n){var t=u.get(n+v);return l.invoke(t.$get,t,i,n)},t);return r(d(n),function(n){l.invoke(n||o)}),l}function eh(){var n=!0;this.disableAutoScrolling=function(){n=!1};this.$get=["$window","$location","$rootScope",function(t,i,u){function o(n){var t=null;return r(n,function(n){t||"a"!==yt(n)||(t=n)}),t}function f(){var n=i.hash(),r;n?(r=e.getElementById(n))?r.scrollIntoView():(r=o(e.getElementsByName(n)))?r.scrollIntoView():"top"===n&&t.scrollTo(0,0):t.scrollTo(0,0)}var e=t.document;return n&&u.$watch(function(){return i.hash()},function(){u.$evalAsync(f)}),f}]}function oh(){this.$get=["$$rAF","$timeout",function(n,t){return n.supported?function(t){return n(t)}:function(n){return t(n,0,!1)}}]}function sh(n,t,f,e){function g(n){try{n.apply(null,st.call(arguments,1))}finally{if(a--,0===a)for(;w.length;)try{w.pop()()}catch(t){f.error(t)}}}function ct(n,t){(function i(){r(b,function(n){n()});ot=t(i,n)})()}function nt(){it=null;k!=h.url()&&(k=h.url(),r(rt,function(n){n(h.url())}))}var h=this,v=t[0],l=n.location,y=n.history,et=n.setTimeout,lt=n.clearTimeout,p={},a,w,b,ot,rt,ut;h.isMock=!1;a=0;w=[];h.$$completeOutstandingRequest=g;h.$$incOutstandingRequestCount=function(){a++};h.notifyWhenNoOutstandingRequests=function(n){r(b,function(n){n()});0===a?n():w.push(n)};b=[];h.addPollFn=function(n){return c(ot)&&ct(100,et),b.push(n),n};var k=l.href,tt=t.find("base"),it=null;h.url=function(t,i){if(l!==n.location&&(l=n.location),y!==n.history&&(y=n.history),t){if(k!=t)return k=t,e.history?i?y.replaceState(null,"",t):(y.pushState(null,"",t),tt.attr("href",tt.attr("href"))):(it=t,i?l.replace(t):l.href=t),h}else return it||l.href.replace(/%27/g,"'")};rt=[];ut=!1;h.onUrlChange=function(t){if(!ut){if(e.history)u(n).on("popstate",nt);if(e.hashchange)u(n).on("hashchange",nt);else h.addPollFn(nt);ut=!0}return rt.push(t),t};h.baseHref=function(){var n=tt.attr("href");return n?n.replace(/^(https?\:)?\/\/[^\/]*/,""):""};var d={},ft="",ht=h.baseHref();h.cookies=function(n,t){var r,u,e,o;if(n)t===i?v.cookie=encodeURIComponent(n)+"=;path="+ht+";expires=Thu, 01 Jan 1970 00:00:00 GMT":s(t)&&(r=(v.cookie=encodeURIComponent(n)+"="+encodeURIComponent(t)+";path="+ht).length+1,4096<r&&f.warn("Cookie '"+n+"' possibly not set or overflowed because it was too large ("+r+" > 4096 bytes)!"));else{if(v.cookie!==ft)for(ft=v.cookie,r=ft.split("; "),d={},e=0;e<r.length;e++)u=r[e],o=u.indexOf("="),0<o&&(n=decodeURIComponent(u.substring(0,o)),d[n]===i&&(d[n]=decodeURIComponent(u.substring(o+1))));return d}};h.defer=function(n,t){var i;return a++,i=et(function(){delete p[i];g(n)},t||0),p[i]=!0,i};h.defer.cancel=function(n){return p[n]?(delete p[n],lt(n),g(o),!0):!1}}function hh(){this.$get=["$window","$log","$sniffer","$document",function(n,t,i,r){return new sh(n,r,t,i)}]}function ch(){this.$get=function(){function t(t,i){function a(n){n!=f&&(r?r==n&&(r=n.n):r=n,h(n.n,n.p),h(n,f),f=n,f.n=null)}function h(n,t){n!=t&&(n&&(n.p=t),t&&(t.n=n))}if(t in n)throw y("$cacheFactory")("iid",t);var o=0,v=l({},i,{id:t}),e={},s=i&&i.capacity||Number.MAX_VALUE,u={},f=null,r=null;return n[t]={put:function(n,t){if(s<Number.MAX_VALUE){var i=u[n]||(u[n]={key:n});a(i)}if(!c(t))return n in e||o++,e[n]=t,o>s&&this.remove(r.key),t},get:function(n){if(s<Number.MAX_VALUE){var t=u[n];if(!t)return;a(t)}return e[n]},remove:function(n){if(s<Number.MAX_VALUE){var t=u[n];if(!t)return;t==f&&(f=t.p);t==r&&(r=t.n);h(t.n,t.p);delete u[n]}delete e[n];o--},removeAll:function(){e={};o=0;u={};f=r=null},destroy:function(){u=v=e=null;delete n[t]},info:function(){return l({},v,{size:o})}}}var n={};return t.info=function(){var t={};return r(n,function(n,i){t[i]=n.info()}),t},t.get=function(t){return n[t]},t}}function lh(){this.$get=["$cacheFactory",function(n){return n("templates")}]}function he(n,o){var c={},y="Directive",p=/^\s*directive\:\s*([\d\w_\-]+)\s+(.*)$/,k=/(([\d\w_\-]+)(?:\:([^;]+))?;?)/,d=ps("ngSrc,ngSrcset,src,srcset"),g=/^(on[a-z]+|formaction)$/;this.directive=function tt(t,i){return ni(t,"directive"),s(t)?(au(i,"directiveFactory"),c.hasOwnProperty(t)||(c[t]=[],n.factory(t+y,["$injector","$exceptionHandler",function(n,i){var u=[];return r(c[t],function(r,f){try{var o=n.invoke(r);e(o)?o={compile:nt(o)}:!o.compile&&o.link&&(o.compile=nt(o.link));o.priority=o.priority||0;o.index=f;o.name=o.name||t;o.require=o.require||o.controller&&o.name;o.restrict=o.restrict||"EA";u.push(o)}catch(s){i(s)}}),u}])),c[t].push(i)):r(t,bf(tt)),this};this.aHrefSanitizationWhitelist=function(n){return f(n)?(o.aHrefSanitizationWhitelist(n),this):o.aHrefSanitizationWhitelist()};this.imgSrcSanitizationWhitelist=function(n){return f(n)?(o.imgSrcSanitizationWhitelist(n),this):o.imgSrcSanitizationWhitelist()};this.$get=["$injector","$interpolate","$exceptionHandler","$http","$templateCache","$parse","$controller","$rootScope","$document","$sce","$animate","$$sanitizeUri",function(n,f,o,nt,tt,it,rt,et,ct,lt,vt,wt){function ti(n,t,i,f,e){n instanceof u||(n=u(n));r(n,function(t,i){3==t.nodeType&&t.nodeValue.match(/\S+/)&&(n[i]=u(t).wrap("<span><\/span>").parent()[0])});var o=ui(n,t,n,i,f,e);return bt(n,"ng-scope"),function(t,i,u,f){au(t,"scope");var e=i?ii.clone.call(n):n;return r(u,function(n,t){e.data("$"+t+"Controller",n)}),e.data("$scope",t),i&&i(e,t),o&&o(t,e,e,f),e}}function bt(n,t){try{n.addClass(t)}catch(i){}}function ui(n,t,r,f,e,o){function y(n,r,f,e){var s,h,l,o,y,a,p,v;for(s=r.length,v=Array(s),o=0;o<s;o++)v[o]=r[o];for(a=o=0,y=c.length;o<y;a++)h=v[a],r=c[o++],s=c[o++],r?(r.scope?(l=n.$new(),u.data(h,"$scope",l)):l=n,p=r.transcludeOnThisElement?dt(n,r.transclude,e):!r.templateOnThisElement&&e?e:!e&&t?dt(n,t):null,r(s,l,h,f,p)):s&&s(n,h.childNodes,i,e)}for(var c=[],s,l,a,v,h=0;h<n.length;h++)s=new oi,l=ei(n[h],[],s,0===h?f:i,e),(o=l.length?ci(l,n[h],s,t,r,null,[],[],o):null)&&o.scope&&bt(s.$$element,"ng-scope"),s=o&&o.terminal||!(a=n[h].childNodes)||!a.length?null:ui(a,o?(o.transcludeOnThisElement||!o.templateOnThisElement)&&o.transclude:t),c.push(o,s),v=v||o||s,o=null;return v?y:null}function dt(n,t,i){return function(r,u,f){var e=!1;if(r||(r=n.$new(),e=r.$$transcluded=!0),u=t(r,u,f,i),e)u.on("$destroy",function(){r.$destroy()});return u}}function ei(t,i,r,u,f){var ut=r.$attr,e,g,nt,tt,l,a;switch(t.nodeType){case 1:gt(i,at(yt(t)),"E",u,f);for(var h,o,rt,v=t.attributes,d=0,ft=v&&v.length;d<ft;d++)if(g=!1,nt=!1,h=v[d],!w||8<=w||h.specified){e=h.name;h=b(h.value);o=at(e);(rt=ir.test(o))&&(e=ar(o.substr(6),"-"));tt=o.replace(/(Start|End)$/,"");n:{if(a=tt,c.hasOwnProperty(a)){l=void 0;for(var a=n.get(a+y),it=0,et=a.length;it<et;it++)if(l=a[it],l.multiElement){l=!0;break n}}l=!1}l&&o===tt+"Start"&&(g=e,nt=e.substr(0,e.length-5)+"end",e=e.substr(0,e.length-6));o=at(e.toLowerCase());ut[o]=e;(rt||!r.hasOwnProperty(o))&&(r[o]=h,se(t,o)&&(r[o]=!0));tr(t,i,h,o);gt(i,o,"A",u,f,g,nt)}if(t=t.className,s(t)&&""!==t)for(;e=k.exec(t);)o=at(e[2]),gt(i,o,"C",u,f)&&(r[o]=b(e[3])),t=t.substr(e.index+e[0].length);break;case 3:gi(i,t.nodeValue);break;case 8:try{(e=p.exec(t.nodeValue))&&(o=at(e[1]),gt(i,o,"M",u,f)&&(r[o]=b(e[2])))}catch(ot){}}return i.sort(di),i}function si(n,t,i){var r=[],f=0;if(t&&n.hasAttribute&&n.hasAttribute(t)){do{if(!n)throw ht("uterdir",t,i);1==n.nodeType&&(n.hasAttribute(t)&&f++,n.hasAttribute(i)&&f--);r.push(n);n=n.nextSibling}while(0<f)}else r.push(n);return u(r)}function hi(n,t,i){return function(r,u,f,e,o){return u=si(u[0],t,i),n(r,u,f,e,o)}}function ci(n,c,l,v,y,p,w,k,d){function gi(n,t,i,r){n&&(i&&(n=hi(n,i,r)),n.require=g.require,n.directiveName=ot,(tt===g||g.$$isolateScope)&&(n=yi(n,{isolateScope:!0})),w.push(n));t&&(i&&(t=hi(t,i,r)),t.require=g.require,t.directiveName=ot,(tt===g||g.$$isolateScope)&&(t=yi(t,{isolateScope:!0})),k.push(t))}function pi(n,t,i,u){var f,e="data",o=!1;if(s(t)){for(;"^"==(f=t.charAt(0))||"?"==f;)t=t.substr(1),"^"==f&&(e="inheritedData"),o=o||"?"==f;if(f=null,u&&"data"===e&&(f=u[t]),f=f||i[e]("$"+t+"Controller"),!f&&!o)throw ht("ctreq",t,n);}else h(t)&&(f=[],r(t,function(t){f.push(pi(n,t,i,u))}));return f}function lt(n,t,e,s,h){function ot(n,t){var r;return 2>arguments.length&&(t=n,n=i),fi&&(r=d),h(n,t,r)}var v,y,nt,p,b,a,d={},g,et;for(v=c===e?l:ut(l,new oi(u(e),l.$attr)),y=v.$$element,tt&&(et=/^\s*([@=&])(\??)\s*(\w*)\s*$/,a=t.$new(!0),!ct||ct!==tt&&ct!==tt.$$originalDirective?y.data("$isolateScopeNoTemplate",a):y.data("$isolateScope",a),bt(y,"ng-isolate-scope"),r(tt.scope,function(n,i){var e=n.match(et)||[],r=e[3]||i,s="?"==e[2],e=e[1],o,u,c,h;a.$$isolateBindings[i]=e+r;switch(e){case"@":v.$observe(r,function(n){a[i]=n});v.$$observers[r].$$scope=t;v[r]&&(a[i]=f(v[r])(t));break;case"=":if(s&&!v[r])break;u=it(v[r]);h=u.literal?pt:function(n,t){return n===t||n!==n&&t!==t};c=u.assign||function(){o=a[i]=u(t);throw ht("nonassign",v[r],tt.name);};o=a[i]=u(t);s=t.$watch(it(v[r],function(n){return h(n,a[i])||(h(n,o)?c(t,n=a[i]):a[i]=n),o=n}),null,u.literal);a.$on("$destroy",s);break;case"&":u=it(v[r]);a[i]=function(n){return u(t,n)};break;default:throw ht("iscp",tt.name,i,n);}})),g=h&&ot,at&&r(at,function(n){var r={$scope:n===tt||n.$$isolateScope?a:t,$element:y,$attrs:v,$transclude:g},i;b=n.controller;"@"==b&&(b=v[n.name]);i=rt(b,r);d[n.name]=i;fi||y.data("$"+n.name+"Controller",i);n.controllerAs&&(r.$scope[n.controllerAs]=i)}),s=0,nt=w.length;s<nt;s++)try{p=w[s];p(p.isolateScope?a:t,y,v,p.require&&pi(p.directiveName,p.require,y,d),g)}catch(st){o(st,ft(y))}for(s=t,tt&&(tt.template||null===tt.templateUrl)&&(s=a),n&&n(s,e.childNodes,i,h),s=k.length-1;0<=s;s--)try{p=k[s];p(p.isolateScope?a:t,y,v,p.require&&pi(p.directiveName,p.require,y,d),g)}catch(lt){o(lt,ft(y))}}var ri,ci,nr;d=d||{};for(var dt=-Number.MAX_VALUE,gt,at=d.controllerDirectives,tt=d.newIsolateScopeDirective,ct=d.templateDirective,ui=d.nonTlbTranscludeDirective,wi=!1,di=!1,fi=d.hasElementTranscludeDirective,et=l.$$element=u(c),g,ot,nt,ii=v,yt,vt=0,wt=n.length;vt<wt;vt++){if(g=n[vt],ri=g.$$start,ci=g.$$end,ri&&(et=si(c,ri,ci)),nt=i,dt>g.priority)break;if((nt=g.scope)&&(g.templateUrl||(a(nt)?(kt("new/isolated scope",tt||gt,g,et),tt=g):kt("new/isolated scope",tt,g,et)),gt=gt||g),ot=g.name,!g.templateUrl&&g.controller&&(nt=g.controller,at=at||{},kt("'"+ot+"' controller",at[ot],g,et),at[ot]=g),(nt=g.transclude)&&(wi=!0,g.$$tlb||(kt("transclusion",ui,g,et),ui=g),"element"==nt?(fi=!0,dt=g.priority,nt=et,et=l.$$element=u(t.createComment(" "+ot+": "+l[ot]+" ")),c=et[0],ni(y,st.call(nt,0),c),ii=ti(nt,v,dt,p&&p.name,{nonTlbTranscludeDirective:ui})):(nt=u(vu(c)).contents(),et.empty(),ii=ti(nt,v))),g.template)if(di=!0,kt("template",ct,g,et),ct=g,nt=e(g.template)?g.template(et,l):g.template,nt=bi(nt),g.replace){if(p=g,nt=of.test(nt)?u(vi(g.type,b(nt))):[],c=nt[0],1!=nt.length||1!==c.nodeType)throw ht("tplrt",ot,"");ni(y,et,c);wt={$attr:{}};nt=ei(c,[],wt);nr=n.splice(vt+1,n.length-(vt+1));tt&&li(nt);n=n.concat(nt).concat(nr);ai(l,wt);wt=n.length}else et.html(nt);if(g.templateUrl)di=!0,kt("template",ct,g,et),ct=g,g.replace&&(p=g),lt=ki(n.splice(vt,n.length-vt),et,l,y,wi&&ii,w,k,{controllerDirectives:at,newIsolateScopeDirective:tt,templateDirective:ct,nonTlbTranscludeDirective:ui}),wt=n.length;else if(g.compile)try{yt=g.compile(et,l,ii);e(yt)?gi(null,yt,ri,ci):yt&&gi(yt.pre,yt.post,ri,ci)}catch(tr){o(tr,ft(et))}g.terminal&&(lt.terminal=!0,dt=Math.max(dt,g.priority))}return lt.scope=gt&&!0===gt.scope,lt.transcludeOnThisElement=wi,lt.templateOnThisElement=di,lt.transclude=ii,d.hasElementTranscludeDirective=fi,lt}function li(n){for(var t=0,i=n.length;t<i;t++)n[t]=df(n[t],{$$isolateScope:!0})}function gt(t,r,u,f,e,s,h){var l,a,v;if(r===e)return null;if(e=null,c.hasOwnProperty(r))for(r=n.get(r+y),a=0,v=r.length;a<v;a++)try{l=r[a];(f===i||f>l.priority)&&-1!=l.restrict.indexOf(u)&&(s&&(l=df(l,{$$start:s,$$end:h})),t.push(l),e=l)}catch(p){o(p)}return e}function ai(n,t){var u=t.$attr,f=n.$attr,i=n.$$element;r(n,function(i,r){"$"!=r.charAt(0)&&(t[r]&&t[r]!==i&&(i+=("style"===r?";":" ")+t[r]),n.$set(r,i,!0,u[r]))});r(t,function(t,r){"class"==r?(bt(i,t),n["class"]=(n["class"]?n["class"]+" ":"")+t):"style"==r?(i.attr("style",i.attr("style")+";"+t),n.style=(n.style?n.style+";":"")+t):"$"==r.charAt(0)||n.hasOwnProperty(r)||(n[r]=t,f[r]=u[r])})}function ki(n,t,i,f,o,s,h,c){var v=[],p,w,k=t[0],y=n.shift(),g=l({},y,{templateUrl:null,transclude:null,replace:null,$$originalDirective:y}),d=e(y.templateUrl)?y.templateUrl(t,i):y.templateUrl,it=y.type;return t.empty(),nt.get(lt.getTrustedResourceUrl(d),{cache:tt}).success(function(e){var l,tt,nt,ut;if(e=bi(e),y.replace){if(e=of.test(e)?u(vi(it,b(e))):[],l=e[0],1!=e.length||1!==l.nodeType)throw ht("tplrt",y.name,d);e={$attr:{}};ni(f,t,l);nt=ei(l,[],e);a(y.scope)&&li(nt);n=nt.concat(n);ai(i,e)}else l=k,t.html(e);for(n.unshift(g),p=ci(n,l,i,o,t,y,s,h,c),r(f,function(n,i){n==l&&(f[i]=t[0])}),w=ui(t[0].childNodes,o);v.length;){e=v.shift();tt=v.shift();var ft=v.shift(),rt=v.shift(),nt=t[0];tt!==k&&(ut=tt.className,c.hasElementTranscludeDirective&&y.replace||(nt=vu(l)),ni(ft,u(tt),nt),bt(u(nt),ut));tt=p.transcludeOnThisElement?dt(e,p.transclude,rt):rt;p(w,e,nt,f,tt)}v=null}).error(function(n,t,i,r){throw ht("tpload",r.url);}),function(n,t,i,r,u){n=u;v?(v.push(t),v.push(i),v.push(r),v.push(n)):(p.transcludeOnThisElement&&(n=dt(t,p.transclude,u)),p(w,t,i,r,n))}}function di(n,t){var i=t.priority-n.priority;return 0!==i?i:n.name!==t.name?n.name<t.name?-1:1:n.index-t.index}function kt(n,t,i,r){if(t)throw ht("multidir",t.name,i.name,n,ft(r));}function gi(n,t){var i=f(t,!0);i&&n.push({priority:0,compile:function(n){var t=n.parent().length;return t&&bt(n.parent(),"ng-binding"),function(n,r){var u=r.parent(),f=u.data("$binding")||[];f.push(i);u.data("$binding",f);t||bt(u,"ng-binding");n.$watch(i,function(n){r[0].nodeValue=n})}}})}function vi(n,i){n=v(n||"html");switch(n){case"svg":case"math":var r=t.createElement("div");return r.innerHTML="<"+n+">"+i+"<\/"+n+">",r.childNodes[0].childNodes;default:return i}}function nr(n,t){if("srcdoc"==t)return lt.HTML;var i=yt(n);if("xlinkHref"==t||"form"==i&&"action"==t||"img"!=i&&("src"==t||"ngSrc"==t))return lt.RESOURCE_URL}function tr(n,t,i,r){var u=f(i,!0);if(u){if("multiple"===r&&"select"===yt(n))throw ht("selmulti",ft(n));t.push({priority:100,compile:function(){return{pre:function(t,i,e){if(i=e.$$observers||(e.$$observers={}),g.test(r))throw ht("nodomevents");(u=f(e[r],!0,nr(n,r),d[r]))&&(e[r]=u(t),(i[r]||(i[r]=[])).$$inter=!0,(e.$$observers&&e.$$observers[r].$$scope||t).$watch(u,function(n,t){"class"===r&&n!=t?e.$updateClass(n,t):e.$set(r,n)}))}}}})}}function ni(n,i,r){var f=i[0],h=i.length,s=f.parentNode,e,o,c;if(n)for(e=0,o=n.length;e<o;e++)if(n[e]==f){for(n[e++]=r,o=e+h-1,c=n.length;e<c;e++,o++)o<c?n[e]=n[o]:delete n[e];n.length-=h-1;break}for(s&&s.replaceChild(r,f),n=t.createDocumentFragment(),n.appendChild(f),u(r).data(u(f).data()),ot?ot.cleanData.$$original([f]):delete u.cache[f[u.expando]],f=1,h=i.length;f<h;f++)s=i[f],u(s).remove(),n.appendChild(s),delete i[f];i[0]=r;i.length=1}function yi(n,t){return l(function(){return n.apply(null,arguments)},n,t)}var oi=function(n,t){this.$$element=n;this.$attr=t||{}};oi.prototype={$normalize:at,$addClass:function(n){n&&0<n.length&&vt.addClass(this.$$element,n)},$removeClass:function(n){n&&0<n.length&&vt.removeClass(this.$$element,n)},$updateClass:function(n,t){var i=ce(n,t),r=ce(t,n);0===i.length?vt.removeClass(this.$$element,r):0===r.length?vt.addClass(this.$$element,i):vt.setClass(this.$$element,i,r)},$set:function(n,t,u,f){var s=this.$$element[0],e=se(s,n),h=rh(s,n),s=n;e?(this.$$element.prop(n,t),f=e):h&&(this[h]=t,s=h);this[n]=t;f?this.$attr[n]=f:(f=this.$attr[n])||(this.$attr[n]=f=ar(n,"-"));e=yt(this.$$element);("a"===e&&"href"===n||"img"===e&&"src"===n)&&(this[n]=t=wt(t,"src"===n));!1!==u&&(null===t||t===i?this.$$element.removeAttr(f):this.$$element.attr(f,t));(n=this.$$observers)&&r(n[s],function(n){try{n(t)}catch(i){o(i)}})},$observe:function(n,t){var i=this,u=i.$$observers||(i.$$observers={}),r=u[n]||(u[n]=[]);return r.push(t),et.$evalAsync(function(){r.$$inter||t(i[n])}),function(){fi(r,t)}}};var pi=f.startSymbol(),wi=f.endSymbol(),bi="{{"==pi||"}}"==wi?ri:function(n){return n.replace(/\{\{/g,pi).replace(/}}/g,wi)},ir=/^ngAttr[A-Z]/;return ti}]}function at(n){return pi(n.replace(vl,""))}function ce(n,t){var r="",e=n.split(/\s+/),o=t.split(/\s+/),u=0,f,i;n:for(;u<e.length;u++){for(f=e[u],i=0;i<o.length;i++)if(f==o[i])continue n;r+=(0<r.length?" ":"")+f}return r}function ah(){var n={},t=!1,r=/^(\S+)(\s+as\s+(\w+))?$/;this.register=function(t,i){ni(t,"controller");a(t)?l(n,t):n[t]=i};this.allowGlobals=function(){t=!0};this.$get=["$injector","$window",function(u,f){return function(e,o){var c,h,l;if(s(e)&&(c=e.match(r),h=c[1],l=c[3],e=n.hasOwnProperty(h)?n[h]:re(o.$scope,h,!0)||(t?re(f,h,!0):i),yi(e,h,!0)),c=u.instantiate(e,o,h),l){if(!o||"object"!=typeof o.$scope)throw y("$controller")("noscp",h||e.name,l);o.$scope[l]=c}return c}}]}function vh(){this.$get=["$window",function(n){return u(n.document)}]}function yh(){this.$get=["$log",function(n){return function(){n.error.apply(n,arguments)}}]}function le(n){var t={},i,u,f;return n?(r(n.split("\n"),function(n){f=n.indexOf(":");i=v(b(n.substr(0,f)));u=b(n.substr(f+1));i&&(t[i]=t[i]?t[i]+", "+u:u)}),t):t}function ae(n){var t=a(n)?n:i;return function(i){return t||(t=le(n)),i?t[v(i)]||null:t}}function ve(n,t,i){return e(i)?i(n,t):(r(i,function(i){n=i(n,t)}),n)}function ph(){var u=/^\s*(\[|\{[^\{])/,o=/[\}\]]\s*$/,y=/^\)\]\}',?\n/,t={"Content-Type":"application/json;charset=utf-8"},n=this.defaults={transformResponse:[function(n){return s(n)&&(n=n.replace(y,""),u.test(n)&&o.test(n)&&(n=gf(n))),n}],transformRequest:[function(n){return a(n)&&"[object File]"!==ti.call(n)&&"[object Blob]"!==ti.call(n)?wt(n):n}],headers:{common:{Accept:"application/json, text/plain, */*"},post:ut(t),put:ut(t),patch:ut(t)},xsrfCookieName:"XSRF-TOKEN",xsrfHeaderName:"X-XSRF-TOKEN"},p=this.interceptors=[];this.$get=["$httpBackend","$browser","$cacheFactory","$rootScope","$q","$injector",function(t,u,o,y,w,b){function k(t){function h(n){var t=l({},n,{data:ve(n.data,n.headers,f.transformResponse)});return 200<=n.status&&300>n.status?t:w.reject(t)}var f={method:"get",transformRequest:n.transformRequest,transformResponse:n.transformResponse},o=function(t){var i=n.headers,u=l({},t.headers),f,o,i=l({},i.common,i[v(t.method)]);n:for(f in i){t=v(f);for(o in u)if(v(o)===t)continue n;u[f]=i[f]}return function(n){var t;r(n,function(i,r){e(i)&&(t=i(),null!=t?n[r]=t:delete n[r])})}(u),u}(t),s,a,u;for(l(f,t),f.headers=o,f.method=ru(f.method),s=[function(t){o=t.headers;var i=ve(t.data,ae(o),t.transformRequest);return c(i)&&r(o,function(n,t){"content-type"===v(t)&&delete o[t]}),c(t.withCredentials)&&!c(n.withCredentials)&&(t.withCredentials=n.withCredentials),g(t,i,o).then(h,h)},i],u=w.when(f),r(d,function(n){(n.request||n.requestError)&&s.unshift(n.request,n.requestError);(n.response||n.responseError)&&s.push(n.response,n.responseError)});s.length;)t=s.shift(),a=s.shift(),u=u.then(t,a);return u.success=function(n){return u.then(function(t){n(t.data,t.status,t.headers,f)}),u},u.error=function(n){return u.then(null,function(t){n(t.data,t.status,t.headers,f)}),u},u}function g(r,o,s){function rt(n,t,i,r){v&&(200<=n&&300>n?v.put(p,[n,t,le(i),r]):v.remove(p));d(t,n,i,r);y.$$phase||y.$apply()}function d(n,t,i,u){t=Math.max(t,0);(200<=t&&300>t?g.resolve:g.reject)({data:n,status:t,headers:ae(i),config:r,statusText:u})}function b(){var n=vi(k.pendingRequests,r);-1!==n&&k.pendingRequests.splice(n,1)}var g=w.defer(),tt=g.promise,v,l,p=nt(r.url,r.params);if(k.pendingRequests.push(r),tt.then(b,b),(r.cache||n.cache)&&!1!==r.cache&&("GET"===r.method||"JSONP"===r.method)&&(v=a(r.cache)?r.cache:a(n.cache)?n.cache:it),v)if(l=v.get(p),f(l)){if(l&&e(l.then))return l.then(b,b),l;h(l)?d(l[1],l[0],ut(l[2]),l[3]):d(l,200,{},"OK")}else v.put(p,tt);return c(l)&&((l=tf(r.url)?u.cookies()[r.xsrfCookieName||n.xsrfCookieName]:i)&&(s[r.xsrfHeaderName||n.xsrfHeaderName]=l),t(r.method,p,o,rt,s,r.timeout,r.withCredentials,r.responseType)),tt}function nt(n,t){if(!t)return n;var i=[];return as(t,function(n,t){null===n||c(n)||(h(n)||(n=[n]),r(n,function(n){a(n)&&(tt(n)?n=n.toISOString():a(n)&&(n=wt(n)));i.push(gt(t)+"="+gt(n))}))}),0<i.length&&(n+=(-1==n.indexOf("?")?"?":"&")+i.join("&")),n}var it=o("$http"),d=[];return r(p,function(n){d.unshift(s(n)?b.get(n):b.invoke(n))}),k.pendingRequests=[],function(){r(arguments,function(n){k[n]=function(t,i){return k(l(i||{},{method:n,url:t}))}})}("get","delete","head","jsonp"),function(){r(arguments,function(n){k[n]=function(t,i,r){return k(l(r||{},{method:n,url:t,data:i}))}})}("post","put","patch"),k.defaults=n,k}]}function wh(t){if(8>=w&&(!t.match(/^(get|post|head|put|delete|options)$/i)||!n.XMLHttpRequest))return new n.ActiveXObject("Microsoft.XMLHTTP");if(n.XMLHttpRequest)return new n.XMLHttpRequest;throw y("$httpBackend")("noxhr");}function bh(){this.$get=["$browser","$window","$document",function(n,t,i){return kh(n,wh,n.defer,t.angular.callbacks,i[0])}]}function kh(n,t,i,u,s){function c(n,t,i){var r=s.createElement("script"),f=null;return r.type="text/javascript",r.src=n,r.async=!0,f=function(n){ur(r,"load",f);ur(r,"error",f);s.body.removeChild(r);r=null;var e=-1,o="unknown";n&&("load"!==n.type||u[t].called||(n={type:"error"}),o=n.type,e="error"===n.type?404:200);i&&i(e,o)},eu(r,"load",f),eu(r,"error",f),s.body.appendChild(r),f}var h=-1;return function(s,l,a,y,p,b,k,d){function ut(){tt=h;it&&it();g&&g.abort()}function ft(t,r,u,f,e){rt&&i.cancel(rt);it=g=null;0===r&&(r=u?200:"file"==bt(l).protocol?404:0);t(1223===r?204:r,u,f,e||"");n.$$completeOutstandingRequest(o)}var tt,nt,it,g,rt;if(n.$$incOutstandingRequestCount(),l=l||n.url(),"jsonp"==v(s))nt="_"+(u.counter++).toString(36),u[nt]=function(n){u[nt].data=n;u[nt].called=!0},it=c(l.replace("JSON_CALLBACK","angular.callbacks."+nt),nt,function(n,t){ft(y,n,u[nt].data,"",t);u[nt]=o});else{if(g=t(s),g.open(s,l,!0),r(p,function(n,t){f(n)&&g.setRequestHeader(t,n)}),g.onreadystatechange=function(){if(g&&4==g.readyState){var n=null,t=null,i="";tt!==h&&(n=g.getAllResponseHeaders(),t="response"in g?g.response:g.responseText);tt===h&&10>w||(i=g.statusText);ft(y,tt||g.status,t,n,i)}},k&&(g.withCredentials=!0),d)try{g.responseType=d}catch(et){if("json"!==d)throw et;}g.send(a||null)}0<b?rt=i(ut,b):b&&e(b.then)&&b.then(ut)}}function dh(){var n="{{",t="}}";this.startSymbol=function(t){return t?(n=t,this):n};this.endSymbol=function(n){return n?(t=n,this):t};this.$get=["$parse","$exceptionHandler","$sce",function(i,u,f){function s(n){return"\\\\\\"+n}function o(o,s,p,w){function ot(n){try{var i,t=p?f.getTrusted(p,n):f.valueOf(n);if(null==t)i="";else{switch(typeof t){case"string":break;case"number":t=""+t;break;default:t=wt(t)}i=t}return i}catch(r){n=cf("interr",o,r.toString());u(n)}}var ft;w=!!w;for(var g,tt,k=0,b=[],d=[],it=[],et=o.length,rt=!1,ut=!1,nt=[];k<et;)if(-1!=(g=o.indexOf(n,k))&&-1!=(tt=o.indexOf(t,g+h)))k!==g&&(ut=!0),b.push(o.substring(k,g)),k=o.substring(g+h,tt),d.push(k),it.push(i(k,ot)),k=tt+a,rt=!0;else{k!==et&&(ut=!0,b.push(o.substring(k)));break}if(r(b,function(i,r){b[r]=b[r].replace(v,n).replace(y,t)}),b.length===d.length&&b.push(""),p&&rt&&(ut||1<d.length))throw cf("noconcat",o);if(!s||rt)return nt.length=b.length+d.length,ft=function(n){for(var t=0,i=d.length;t<i;t++){if(w&&c(n[t]))return;nt[2*t]=b[t];nt[2*t+1]=n[t]}return nt[2*i]=b[i],nt.join("")},l(function(n){var t=0,i=d.length,r=Array(i);try{for(;t<i;t++)r[t]=it[t](n);return ft(r)}catch(f){n=cf("interr",o,f.toString());u(n)}},{exp:o,separators:b,expressions:d,$$watchDelegate:function(n,t,i,r){var u;return n.$watchGroup(it,function(i,r){var f=ft(i);e(t)&&t.call(this,f,i!==r?u:f,n);u=f},i,r)}})}var h=n.length,a=t.length,v=RegExp(n.replace(/./g,s),"g"),y=RegExp(t.replace(/./g,s),"g");return o.startSymbol=function(){return n},o.endSymbol=function(){return t},o}]}function gh(){this.$get=["$rootScope","$window","$q","$$q",function(n,t,i,r){function e(e,o,s,h){var y=t.setInterval,p=t.clearInterval,a=0,v=f(h)&&!h,l=(v?r:i).defer(),c=l.promise;return s=f(s)?s:0,c.then(null,null,e),c.$$intervalId=y(function(){l.notify(a++);0<s&&a>=s&&(l.resolve(a),p(c.$$intervalId),delete u[c.$$intervalId]);v||n.$apply()},o),u[c.$$intervalId]=l,c}var u={};return e.cancel=function(n){return n&&n.$$intervalId in u?(u[n.$$intervalId].reject("canceled"),t.clearInterval(n.$$intervalId),delete u[n.$$intervalId],!0):!1},e}]}function nc(){this.$get=function(){return{id:"en-us",NUMBER_FORMATS:{DECIMAL_SEP:".",GROUP_SEP:",",PATTERNS:[{minInt:1,minFrac:0,maxFrac:3,posPre:"",posSuf:"",negPre:"-",negSuf:"",gSize:3,lgSize:3},{minInt:1,minFrac:2,maxFrac:2,posPre:"¤",posSuf:"",negPre:"(¤",negSuf:")",gSize:3,lgSize:3}],CURRENCY_SYM:"$"},DATETIME_FORMATS:{MONTH:"January February March April May June July August September October November December".split(" "),SHORTMONTH:"Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec".split(" "),DAY:"Sunday Monday Tuesday Wednesday Thursday Friday Saturday".split(" "),SHORTDAY:"Sun Mon Tue Wed Thu Fri Sat".split(" "),AMPMS:["AM","PM"],medium:"MMM d, y h:mm:ss a",short:"M/d/yy h:mm a",fullDate:"EEEE, MMMM d, y",longDate:"MMMM d, y",mediumDate:"MMM d, y",shortDate:"M/d/yy",mediumTime:"h:mm:ss a",shortTime:"h:mm a"},pluralCat:function(n){return 1===n?"one":"other"}}}}function ku(n){n=n.split("/");for(var t=n.length;t--;)n[t]=lr(n[t]);return n.join("/")}function ye(n,t,i){n=bt(n,i);t.$$protocol=n.protocol;t.$$host=n.hostname;t.$$port=k(n.port)||pl[n.protocol]||null}function pe(n,t,i){var r="/"!==n.charAt(0);r&&(n="/"+n);n=bt(n,i);t.$$path=decodeURIComponent(r&&"/"===n.pathname.charAt(0)?n.pathname.substring(1):n.pathname);t.$$search=te(n.search);t.$$hash=decodeURIComponent(n.hash);t.$$path&&"/"!=t.$$path.charAt(0)&&(t.$$path="/"+t.$$path)}function vt(n,t){if(0===t.indexOf(n))return t.substr(n.length)}function bi(n){var t=n.indexOf("#");return-1==t?n:n.substr(0,t)}function du(n){return n.substr(0,bi(n).lastIndexOf("/")+1)}function we(n,t){this.$$html5=!0;t=t||"";var r=du(n);ye(n,this,n);this.$$parse=function(t){var i=vt(r,t);if(!s(i))throw lf("ipthprfx",t,r);pe(i,this,n);this.$$path||(this.$$path="/");this.$$compose()};this.$$compose=function(){var n=lu(this.$$search),t=this.$$hash?"#"+lr(this.$$hash):"";this.$$url=ku(this.$$path)+(n?"?"+n:"")+t;this.$$absUrl=r+this.$$url.substr(1)};this.$$rewrite=function(u){var f;return(f=vt(n,u))!==i?(u=f,(f=vt(t,f))!==i?r+(vt("/",f)||f):n+u):(f=vt(r,u))!==i?r+f:r==u+"/"?r:void 0}}function gu(n,t){var i=du(n);ye(n,this,n);this.$$parse=function(r){var u=vt(n,r)||vt(i,r),u="#"==u.charAt(0)?vt(t,u):this.$$html5?u:"",f;if(!s(u))throw lf("ihshprfx",r,t);pe(u,this,n);r=this.$$path;f=/^\/[A-Z]:(\/.*)/;0===u.indexOf(n)&&(u=u.replace(n,""));f.exec(u)||(r=(u=f.exec(r))?u[1]:r);this.$$path=r;this.$$compose()};this.$$compose=function(){var i=lu(this.$$search),r=this.$$hash?"#"+lr(this.$$hash):"";this.$$url=ku(this.$$path)+(i?"?"+i:"")+r;this.$$absUrl=n+(this.$$url?t+this.$$url:"")};this.$$rewrite=function(t){if(bi(n)==bi(t))return t}}function nf(n,t){this.$$html5=!0;gu.apply(this,arguments);var i=du(n);this.$$rewrite=function(r){var u;return n==bi(r)?r:(u=vt(i,r))?n+t+u:i===r+"/"?i:void 0};this.$$compose=function(){var i=lu(this.$$search),r=this.$$hash?"#"+lr(this.$$hash):"";this.$$url=ku(this.$$path)+(i?"?"+i:"")+r;this.$$absUrl=n+t+this.$$url}}function dr(n){return function(){return this[n]}}function be(n,t){return function(i){return c(i)?this[n]:(this[n]=t(i),this.$$compose(),this)}}function tc(){var t="",i=!1;this.hashPrefix=function(n){return f(n)?(t=n,this):t};this.html5Mode=function(n){return f(n)?(i=n,this):i};this.$get=["$rootScope","$browser","$sniffer","$rootElement",function(r,f,e,o){function y(n){r.$broadcast("$locationChangeSuccess",s.absUrl(),n)}var s,l,w=f.baseHref(),h=f.url(),c,p,v;i?(c=h.substring(0,h.indexOf("/",h.indexOf("//")+2))+(w||"/"),l=e.history?we:nf):(c=bi(h),l=gu);s=new l(c,"#"+t);s.$$parse(s.$$rewrite(h));p=/^\s*(javascript|mailto):/i;o.on("click",function(i){var v,e,h;if(!i.ctrlKey&&!i.metaKey&&2!=i.which){for(v=u(i.target);"a"!==yt(v[0]);)if(v[0]===o[0]||!(v=v.parent())[0])return;if(e=v.prop("href"),a(e)&&"[object SVGAnimatedString]"===e.toString()&&(e=bt(e.animVal).href),!p.test(e)){if(l===nf&&(h=v.attr("href")||v.attr("xlink:href"),0>h.indexOf("://")))if(e="#"+t,"/"==h[0])e=c+e+h;else if("#"==h[0])e=c+e+(s.path()||"/")+h;else{for(var y=s.path().split("/"),h=h.split("/"),w=0;w<h.length;w++)"."!=h[w]&&(".."==h[w]?y.pop():h[w].length&&y.push(h[w]));e=c+e+y.join("/")}y=s.$$rewrite(e);e&&!v.attr("target")&&y&&!i.isDefaultPrevented()&&(i.preventDefault(),y!=f.url()&&(s.$$parse(y),r.$apply(),n.angular["ff-684208-preventDefault"]=!0))}}});s.absUrl()!=h&&f.url(s.absUrl(),!0);f.onUrlChange(function(n){s.absUrl()!=n&&(r.$evalAsync(function(){var t=s.absUrl();s.$$parse(n);r.$broadcast("$locationChangeStart",n,t).defaultPrevented?(s.$$parse(t),f.url(t)):y(t)}),r.$$phase||r.$digest())});return v=0,r.$watch(function(){var n=f.url(),t=s.$$replace;return v&&n==s.absUrl()||(v++,r.$evalAsync(function(){r.$broadcast("$locationChangeStart",s.absUrl(),n).defaultPrevented?s.$$parse(n):(f.url(s.absUrl(),t),y(n))})),s.$$replace=!1,v}),s}]}function ic(){var n=!0,t=this;this.debugEnabled=function(t){return f(t)?(n=t,this):n};this.$get=["$window",function(i){function f(n){return n instanceof Error&&(n.stack?n=n.message&&-1===n.stack.indexOf(n.message)?"Error: "+n.message+"\n"+n.stack:n.stack:n.sourceURL&&(n=n.message+"\n"+n.sourceURL+":"+n.line)),n}function u(n){var t=i.console||{},u=t[n]||t.log||o;n=!1;try{n=!!u.apply}catch(e){}return n?function(){var n=[];return r(arguments,function(t){n.push(f(t))}),u.apply(t,n)}:function(n,t){u(n,null==t?"":t)}}return{log:u("log"),info:u("info"),warn:u("warn"),error:u("error"),debug:function(){var i=u("debug");return function(){n&&i.apply(t,arguments)}}()}}]}function et(n,t){if("__defineGetter__"===n||"__defineSetter__"===n||"__lookupGetter__"===n||"__lookupSetter__"===n||"__proto__"===n)throw ct("isecfld",t);return n}function si(n,t){if(n){if(n.constructor===n)throw ct("isecfn",t);if(n.window===n)throw ct("isecwindow",t);if(n.children&&(n.nodeName||n.prop&&n.attr&&n.find))throw ct("isecdom",t);if(n===Object)throw ct("isecobj",t);}return n}function gr(n,t,i,r){var u,e,f;for(t=t.split("."),e=0;1<t.length;e++)u=et(t.shift(),r),f=n[u],f||(f={},n[u]=f),n=f;return u=et(t.shift(),r),si(n,r),si(n[u],r),n[u]=i}function ke(n,t,r,u,f,e){return et(n,e),et(t,e),et(r,e),et(u,e),et(f,e),function(e,o){var s=o&&o.hasOwnProperty(n)?o:e;return null==s?s:(s=s[n],!t)?s:null==s?i:(s=s[t],!r)?s:null==s?i:(s=s[r],!u)?s:null==s?i:(s=s[u],f?null==s?i:s=s[f]:s)}}function de(n,t,u){var f,o,e;return vf.hasOwnProperty(n)?vf[n]:(f=n.split("."),o=f.length,t.csp?t=6>o?ke(f[0],f[1],f[2],f[3],f[4],u):function(n,t){var r=0,e;do e=ke(f[r++],f[r++],f[r++],f[r++],f[r++],u)(n,t),t=i,n=e;while(r<o);return e}:(e="var p;\n",r(f,function(n,t){et(n,u);e+="if(s == null) return undefined;\ns="+(t?"s":'((k&&k.hasOwnProperty("'+n+'"))?k:s)')+"."+n+";\n"}),e+="return s;",t=new Function("s","k",e),t.toString=nt(e)),"hasOwnProperty"!==n&&(vf[n]=t),t)}function rc(){var n={},t={csp:!1};this.$get=["$filter","$sniffer",function(i,u){function h(n,t,i,r,u){var o,s;return o=n.$watch(function(n){return u(n)},function(n,i,r){s=n;e(t)&&t.apply(this,arguments);f(n)&&r.$$postDigest(function(){f(s)&&o()})},i,r)}function c(n,t,i,u,o){function s(n){var t=!0;return r(n,function(n){f(n)||(t=!1)}),t}var h;return h=n.$watch(function(n){return o(n)},function(n,i,r){e(t)&&t.call(this,n,i,r);s(n)&&r.$$postDigest(function(){s(n)&&h()})},i)}function l(n,t,i,r,u){var f;return f=n.$watch(function(n){return u(n)},function(){e(t)&&t.apply(this,arguments);f()},i,r)}function s(n,t){if(e(t)){var i=function(i,r){var u=n(i,r),e=t(u,i,r);return f(u)?e:u};return i.$$watchDelegate=n.$$watchDelegate,i}return n}return t.csp=u.csp,function(r,u){var f,a,e=r=b(r);switch(typeof r){case"string":return n.hasOwnProperty(e)?f=n[e]:(":"===r.charAt(0)&&":"===r.charAt(1)&&(a=!0,r=r.substring(2)),f=new af(t),f=new ci(f,i,t).parse(r),f.constant?f.$$watchDelegate=l:a&&(f.$$watchDelegate=f.literal?c:h),"hasOwnProperty"!==e&&(n[e]=f)),s(f,u);case"function":return s(r,u);default:return s(o,u)}}}]}function uc(){this.$get=["$rootScope","$exceptionHandler",function(n,t){return ge(function(t){n.$evalAsync(t)},t)}]}function fc(){this.$get=["$browser","$exceptionHandler",function(n,t){return ge(function(t){n.defer(t)},t)}]}function ge(n,t){function y(){this.$$pending=[]}function s(n,t){return function(i){t.call(n,i)}}function u(){this.promise=new y;this.resolve=s(this,this.resolve);this.reject=s(this,this.reject);this.notify=s(this,this.notify)}function f(n){return n}function v(n){return l(n)}y.prototype={then:function(n,i,r){var o=new u,s=function(i){try{o.resolve((e(n)?n:f)(i))}catch(r){o.reject(r);t(r)}},h=function(n){try{o.resolve((e(i)?i:v)(n))}catch(r){o.reject(r);t(r)}},c=function(n){try{o.notify((e(r)?r:f)(n))}catch(i){t(i)}};return this.$$pending?this.$$pending.push([s,h,c]):this.$$value.then(s,h,c),o.promise},"catch":function(n){return this.then(null,n)},"finally":function(n){return this.then(function(t){return p(t,!0,n)},function(t){return p(t,!1,n)})}};u.prototype={resolve:function(t){if(this.promise.$$pending){var r=this.promise.$$pending;this.promise.$$pending=i;this.promise.$$value=c(t);r.length&&n(s(this,function(){for(var n,t=0,i=r.length;t<i;t++)n=r[t],this.promise.$$value.then(n[0],n[1],n[2])}))}},reject:function(n){this.resolve(b(n))},notify:function(t){if(this.promise.$$pending){var i=this.promise.$$pending;this.promise.$$pending.length&&n(function(){for(var r,n=0,u=i.length;n<u;n++)r=i[n],r[2](t)})}}};var c=function(t){return t&&e(t.then)?t:{then:function(i){var r=new u;return n(function(){r.resolve(i(t))}),r.promise}}},l=function(n){var t=new u;return t.reject(n),t.promise},a=function(n,t){var i=new u;return t?i.resolve(n):i.reject(n),i.promise},p=function(n,t,i){var r=null;try{r=(i||f)()}catch(u){return a(u,!1)}return r&&e(r.then)?r.then(function(){return a(n,t)},function(n){return a(n,!1)}):a(n,t)},b=function(i){return{then:function(r,f){var o=new u;return n(function(){try{o.resolve((e(f)?f:v)(i))}catch(n){o.reject(n);t(n)}}),o.promise}}},o=function w(n){if(!e(n))throw new TypeError("Expected resolverFn");if(!(this instanceof w))return new w(n);var t=new u;return n(function(n){t.resolve(n)},function(n){t.reject(n)}),t.promise};return o.defer=function(){return new u},o.reject=l,o.when=function(i,r,o,s){var a=new u,h,w=function(n){try{return(e(r)?r:f)(n)}catch(i){return t(i),l(i)}},y=function(n){try{return(e(o)?o:v)(n)}catch(i){return t(i),l(i)}},p=function(n){try{return(e(s)?s:f)(n)}catch(i){t(i)}};return n(function(){c(i).then(function(n){h||(h=!0,a.resolve(c(n).then(w,y,p)))},function(n){h||(h=!0,a.resolve(y(n)))},function(n){h||a.notify(p(n))})}),a.promise},o.all=function(n){var i=new u,f=0,t=h(n)?[]:{};return r(n,function(n,r){f++;c(n).then(function(n){t.hasOwnProperty(r)||(t[r]=n,--f||i.resolve(t))},function(n){t.hasOwnProperty(r)||i.reject(n)})}),0===f&&i.resolve(t),i.promise},o}function ec(){this.$get=["$window","$timeout",function(n,t){var i=n.requestAnimationFrame||n.webkitRequestAnimationFrame||n.mozRequestAnimationFrame,f=n.cancelAnimationFrame||n.webkitCancelAnimationFrame||n.mozCancelAnimationFrame||n.webkitCancelRequestAnimationFrame,r=!!i,u=r?function(n){var t=i(n);return function(){f(t)}}:function(n){var i=t(n,16.66,!1);return function(){t.cancel(i)}};return u.supported=r,u}]}function oc(){var t=10,i=y("$rootScope"),n=null;this.digestTtl=function(n){return arguments.length&&(t=n),t};this.$get=["$injector","$exceptionHandler","$parse","$browser",function(u,f,s,h){function l(){this.$id=++uu;this.$$phase=this.$parent=this.$$watchers=this.$$nextSibling=this.$$prevSibling=this.$$childHead=this.$$childTail=null;this["this"]=this.$root=this;this.$$destroyed=!1;this.$$asyncQueue=[];this.$$postDigestQueue=[];this.$$listeners={};this.$$listenerCount={};this.$$isolateBindings={}}function v(n){if(c.$$phase)throw i("inprog",c.$$phase);c.$$phase=n}function w(n,t){var i=s(n);return yi(i,t),i}function y(n,t,i){do n.$$listenerCount[i]-=t,0===n.$$listenerCount[i]&&delete n.$$listenerCount[i];while(n=n.$parent)}function p(){}l.prototype={constructor:l,$new:function(n){return n?(n=new l,n.$root=this.$root,n.$$asyncQueue=this.$$asyncQueue,n.$$postDigestQueue=this.$$postDigestQueue):(this.$$childScopeClass||(this.$$childScopeClass=function(){this.$$watchers=this.$$nextSibling=this.$$childHead=this.$$childTail=null;this.$$listeners={};this.$$listenerCount={};this.$id=++uu;this.$$childScopeClass=null},this.$$childScopeClass.prototype=this),n=new this.$$childScopeClass),n["this"]=n,n.$parent=this,n.$$prevSibling=this.$$childTail,this.$$childHead?this.$$childTail=this.$$childTail.$$nextSibling=n:this.$$childHead=this.$$childTail=n,n},$watch:function(t,i,r,u){var s=w(t,"watch"),f,h;return s.$$watchDelegate?s.$$watchDelegate(this,i,r,u,s):(f=this.$$watchers,h={fn:i,last:p,get:s,exp:t,eq:!!r},n=null,e(i)||(h.fn=o),f||(f=this.$$watchers=[]),f.unshift(h),function(){fi(f,h);n=null;e(u)&&u()})},$watchGroup:function(n,t){var f=Array(n.length),i=Array(n.length),u=[],o=0,e=this,s;return 1===n.length?this.$watch(n[0],function(n,r,u){i[0]=n;f[0]=r;t.call(this,i,n===r?i:f,u)}):(r(n,function(n,t){var r=e.$watch(n,function(n,r){i[t]=n;f[t]=r;o++},!1,function(){fi(u,r);u.length||s()});u.push(r)},this),s=e.$watch(function(){return o},function(n,r){t(i,n===r?i:f,e)}),function(){for(;u.length;)u[0]()})},$watchCollection:function(n,t){var o=this,i,r,e,v=1<t.length,u=0,y=s(n,function(n){i=n;var t,e;if(a(i))if(hr(i))for(r!==h&&(r=h,f=r.length=0,u++),n=i.length,f!==n&&(u++,r.length=f=n),t=0;t<n;t++)e=r[t]!==r[t]&&i[t]!==i[t],e||r[t]===i[t]||(u++,r[t]=i[t]);else{r!==c&&(r=c={},f=0,u++);n=0;for(t in i)i.hasOwnProperty(t)&&(n++,r.hasOwnProperty(t)?(e=r[t]!==r[t]&&i[t]!==i[t],e||r[t]===i[t]||(u++,r[t]=i[t])):(f++,r[t]=i[t],u++));if(f>n)for(t in u++,r)r.hasOwnProperty(t)&&!i.hasOwnProperty(t)&&(f--,delete r[t])}else r!==i&&(r=i,u++);return u}),h=[],c={},l=!0,f=0;return this.$watch(y,function(){if(l?(l=!1,t(i,i,o)):t(i,e,o),v)if(a(i))if(hr(i)){e=Array(i.length);for(var n=0;n<i.length;n++)e[n]=i[n]}else for(n in e={},i)ff.call(i,n)&&(e[n]=i[n]);else e=i})},$digest:function(){var r,o,s,h,a=this.$$asyncQueue,nt=this.$$postDigestQueue,b,l,k=t,u,y=[],w,d,g;v("$digest");n=null;do{for(l=!1,u=this;a.length;){try{g=a.shift();g.scope.$eval(g.expression)}catch(tt){c.$$phase=null;f(tt)}n=null}n:do{if(h=u.$$watchers)for(b=h.length;b--;)try{if(r=h[b])if((o=r.get(u))===(s=r.last)||(r.eq?pt(o,s):"number"==typeof o&&"number"==typeof s&&isNaN(o)&&isNaN(s))){if(r===n){l=!1;break n}}else l=!0,n=r,r.last=r.eq?ei(o,null):o,r.fn(o,s===p?o:s,u),5>k&&(w=4-k,y[w]||(y[w]=[]),d=e(r.exp)?"fn: "+(r.exp.name||r.exp.toString()):r.exp,d+="; newVal: "+wt(o)+"; oldVal: "+wt(s),y[w].push(d))}catch(it){c.$$phase=null;f(it)}if(!(h=u.$$childHead||u!==this&&u.$$nextSibling))for(;u!==this&&!(h=u.$$nextSibling);)u=u.$parent}while(u=h);if((l||a.length)&&!k--)throw c.$$phase=null,i("infdig",t,wt(y));}while(l||a.length);for(c.$$phase=null;nt.length;)try{nt.shift()()}catch(rt){f(rt)}},$destroy:function(){if(!this.$$destroyed){var n=this.$parent;this.$broadcast("$destroy");this.$$destroyed=!0;this!==c&&(r(this.$$listenerCount,cu(null,y,this)),n.$$childHead==this&&(n.$$childHead=this.$$nextSibling),n.$$childTail==this&&(n.$$childTail=this.$$prevSibling),this.$$prevSibling&&(this.$$prevSibling.$$nextSibling=this.$$nextSibling),this.$$nextSibling&&(this.$$nextSibling.$$prevSibling=this.$$prevSibling),this.$parent=this.$$nextSibling=this.$$prevSibling=this.$$childHead=this.$$childTail=this.$root=null,this.$$listeners={},this.$$watchers=this.$$asyncQueue=this.$$postDigestQueue=[],this.$destroy=this.$digest=this.$apply=o,this.$on=this.$watch=this.$watchGroup=function(){return o})}},$eval:function(n,t){return s(n)(this,t)},$evalAsync:function(n){c.$$phase||c.$$asyncQueue.length||h.defer(function(){c.$$asyncQueue.length&&c.$digest()});this.$$asyncQueue.push({scope:this,expression:n})},$$postDigest:function(n){this.$$postDigestQueue.push(n)},$apply:function(n){try{return v("$apply"),this.$eval(n)}catch(i){f(i)}finally{c.$$phase=null;try{c.$digest()}catch(t){throw f(t),t;}}},$on:function(n,t){var r=this.$$listeners[n],i,u;r||(this.$$listeners[n]=r=[]);r.push(t);i=this;do i.$$listenerCount[n]||(i.$$listenerCount[n]=0),i.$$listenerCount[n]++;while(i=i.$parent);return u=this,function(){r[vi(r,t)]=null;y(u,1,n)}},$emit:function(n){var s=[],u,r=this,o=!1,t={name:n,targetScope:r,stopPropagation:function(){o=!0},preventDefault:function(){t.defaultPrevented=!0},defaultPrevented:!1},h=[t].concat(st.call(arguments,1)),i,e;do{for(u=r.$$listeners[n]||s,t.currentScope=r,i=0,e=u.length;i<e;i++)if(u[i])try{u[i].apply(null,h)}catch(c){f(c)}else u.splice(i,1),i--,e--;if(o)return t.currentScope=null,t;r=r.$parent}while(r);return t.currentScope=null,t},$broadcast:function(n){for(var t=this,i=this,u={name:n,targetScope:this,preventDefault:function(){u.defaultPrevented=!0},defaultPrevented:!1},o=[u].concat(st.call(arguments,1)),r,e;t=i;){for(u.currentScope=t,i=t.$$listeners[n]||[],r=0,e=i.length;r<e;r++)if(i[r])try{i[r].apply(null,o)}catch(s){f(s)}else i.splice(r,1),r--,e--;if(!(i=t.$$listenerCount[n]&&t.$$childHead||t!==this&&t.$$nextSibling))for(;t!==this&&!(i=t.$$nextSibling);)t=t.$parent}return u.currentScope=null,u}};var c=new l;return c}]}function sc(){var n=/^\s*(https?|ftp|mailto|tel|file):/,t=/^\s*(https?|ftp|file|blob):|data:image\//;this.aHrefSanitizationWhitelist=function(t){return f(t)?(n=t,this):n};this.imgSrcSanitizationWhitelist=function(n){return f(n)?(t=n,this):t};this.$get=function(){return function(i,r){var f=r?t:n,u;return(!w||8<=w)&&(u=bt(i).href,""!==u&&!u.match(f))?"unsafe:"+u:i}}}function hc(n){if("self"===n)return n;if(s(n)){if(-1<n.indexOf("***"))throw dt("iwcard",n);return n=n.replace(/([-()\[\]{}+?*.$\^|,:#<!\\])/g,"\\$1").replace(/\x08/g,"\\x08").replace("\\*\\*",".*").replace("\\*","[^:/.?&;]*"),RegExp("^"+n+"$")}if(cr(n))return RegExp("^"+n.source+"$");throw dt("imatcher");}function no(n){var t=[];return f(n)&&r(n,function(n){t.push(hc(n))}),t}function cc(){this.SCE_CONTEXTS=rt;var n=["self"],t=[];this.resourceUrlWhitelist=function(t){return arguments.length&&(n=no(t)),n};this.resourceUrlBlacklist=function(n){return arguments.length&&(t=no(n)),t};this.$get=["$injector",function(r){function f(n){var t=function(n){this.$$unwrapTrustedValue=function(){return n}};return n&&(t.prototype=new n),t.prototype.valueOf=function(){return this.$$unwrapTrustedValue()},t.prototype.toString=function(){return this.$$unwrapTrustedValue().toString()},t}var o=function(){throw dt("unsafe");},e,u;return r.has("$sanitize")&&(o=r.get("$sanitize")),e=f(),u={},u[rt.HTML]=f(e),u[rt.CSS]=f(e),u[rt.URL]=f(e),u[rt.JS]=f(e),u[rt.RESOURCE_URL]=f(u[rt.URL]),{trustAs:function(n,t){var r=u.hasOwnProperty(n)?u[n]:null;if(!r)throw dt("icontext",n,t);if(null===t||t===i||""===t)return t;if("string"!=typeof t)throw dt("itype",n);return new r(t)},getTrusted:function(r,f){var s,e,c,h;if(null===f||f===i||""===f)return f;if(s=u.hasOwnProperty(r)?u[r]:null,s&&f instanceof s)return f.$$unwrapTrustedValue();if(r===rt.RESOURCE_URL){for(s=bt(f.toString()),h=!1,e=0,c=n.length;e<c;e++)if("self"===n[e]?tf(s):n[e].exec(s.href)){h=!0;break}if(h)for(e=0,c=t.length;e<c;e++)if("self"===t[e]?tf(s):t[e].exec(s.href)){h=!1;break}if(h)return f;throw dt("insecurl",f.toString());}if(r===rt.HTML)return o(f);throw dt("unsafe");},valueOf:function(n){return n instanceof e?n.$$unwrapTrustedValue():n}}}]}function lc(){var n=!0;this.enabled=function(t){return arguments.length&&(n=!!t),n};this.$get=["$parse","$sniffer","$sceDelegate",function(t,i,u){var f;if(n&&i.msie&&8>i.msieDocumentMode)throw dt("iequirks");f=ut(rt);f.isEnabled=function(){return n};f.trustAs=u.trustAs;f.getTrusted=u.getTrusted;f.valueOf=u.valueOf;n||(f.trustAs=f.getTrusted=function(n,t){return t},f.valueOf=ri);f.parseAs=function(n,i){var r=t(i);return r.literal&&r.constant?r:t(i,function(t){return f.getTrusted(n,t)})};var e=f.parseAs,o=f.getTrusted,s=f.trustAs;return r(rt,function(n,t){var i=v(t);f[pi("parse_as_"+i)]=function(t){return e(n,t)};f[pi("get_trusted_"+i)]=function(t){return o(n,t)};f[pi("trust_as_"+i)]=function(t){return s(n,t)}}),f}]}function ac(){this.$get=["$window","$document",function(n,t){var o={},h=k((/android (\d+)/.exec(v((n.navigator||{}).userAgent))||[])[1]),y=/Boxee/i.test((n.navigator||{}).userAgent),u=t[0]||{},l=u.documentMode,i,r=u.body&&u.body.style,f=!1,e=!1,a;if(r){for(a in r)if(f=/^(Moz|webkit|O|ms)(?=[A-Z])/.exec(a)){i=f[0];i=i.substr(0,1).toUpperCase()+i.substr(1);break}i||(i="WebkitOpacity"in r&&"webkit");f=!!("transition"in r||i+"Transition"in r);e=!!("animation"in r||i+"Animation"in r);!h||f&&e||(f=s(u.body.style.webkitTransition),e=s(u.body.style.webkitAnimation))}return{history:!(!n.history||!n.history.pushState||4>h||y),hashchange:"onhashchange"in n&&(!l||7<l),hasEvent:function(n){if("input"==n&&9==w)return!1;if(c(o[n])){var t=u.createElement("div");o[n]="on"+n in t}return o[n]},csp:ir(),vendorPrefix:i,transitions:f,animations:e,android:h,msie:w,msieDocumentMode:l}}]}function vc(){this.$get=["$rootScope","$browser","$q","$$q","$exceptionHandler",function(n,t,i,r,u){function o(o,s,h){var a=f(h)&&!h,c=(a?r:i).defer(),l=c.promise;return s=t.defer(function(){try{c.resolve(o())}catch(t){c.reject(t);u(t)}finally{delete e[l.$$timeoutId]}a||n.$apply()},s),l.$$timeoutId=s,e[s]=c,l}var e={};return o.cancel=function(n){return n&&n.$$timeoutId in e?(e[n.$$timeoutId].reject("canceled"),delete e[n.$$timeoutId],t.defer.cancel(n.$$timeoutId)):!1},o}]}function bt(n){var t=n;return w&&(g.setAttribute("href",t),t=g.href),g.setAttribute("href",t),{href:g.href,protocol:g.protocol?g.protocol.replace(/:$/,""):"",host:g.host,search:g.search?g.search.replace(/^\?/,""):"",hash:g.hash?g.hash.replace(/^#/,""):"",hostname:g.hostname,port:g.port,pathname:"/"===g.pathname.charAt(0)?g.pathname:"/"+g.pathname}}function tf(n){return n=s(n)?bt(n):n,n.protocol===po.protocol&&n.host===po.host}function yc(){this.$get=nt(n)}function to(n){function t(u,f){if(a(u)){var e={};return r(u,function(n,i){e[i]=t(i,n)}),e}return n.factory(u+i,f)}var i="Filter";this.register=t;this.$get=["$injector",function(n){return function(t){return n.get(t+i)}}];t("currency",io);t("date",oo);t("filter",pc);t("json",wc);t("limitTo",bc);t("lowercase",bo);t("number",ro);t("orderBy",so);t("uppercase",ko)}function pc(){return function(n,t,i){var u,r,e,f,o;if(!h(n))return n;u=typeof i;r=[];r.check=function(n){for(var t=0;t<r.length;t++)if(!r[t](n))return!1;return!0};"function"!==u&&(i="boolean"===u&&i?function(n,t){return nr.equals(n,t)}:function(n,t){if(n&&t&&"object"==typeof n&&"object"==typeof t){for(var r in n)if("$"!==r.charAt(0)&&ff.call(n,r)&&i(n[r],t[r]))return!0;return!1}return t=(""+t).toLowerCase(),-1<(""+n).toLowerCase().indexOf(t)});e=function(n,t){if("string"==typeof t&&"!"===t.charAt(0))return!e(n,t.substr(1));switch(typeof n){case"boolean":case"number":case"string":return i(n,t);case"object":switch(typeof t){case"object":return i(n,t);default:for(var r in n)if("$"!==r.charAt(0)&&e(n[r],t))return!0}return!1;case"array":for(r=0;r<n.length;r++)if(e(n[r],t))return!0;return!1;default:return!1}};switch(typeof t){case"boolean":case"number":case"string":t={$:t};case"object":for(f in t)(function(n){"undefined"!=typeof t[n]&&r.push(function(i){return e("$"==n?i:i&&i[n],t[n])})})(f);break;case"function":r.push(t);break;default:return n}for(u=[],f=0;f<n.length;f++)o=n[f],r.check(o)&&u.push(o);return u}}function io(n){var t=n.NUMBER_FORMATS;return function(n,i){return c(i)&&(i=t.CURRENCY_SYM),uo(n,t.PATTERNS[1],t.GROUP_SEP,t.DECIMAL_SEP,2).replace(/\u00A4/g,i)}}function ro(n){var t=n.NUMBER_FORMATS;return function(n,i){return uo(n,t.PATTERNS[0],t.GROUP_SEP,t.DECIMAL_SEP,i)}}function uo(n,t,i,r,u){var l,s;if(null==n||!isFinite(n)||a(n))return"";l=0>n;n=Math.abs(n);var f=n+"",o="",h=[],e=!1;if(-1!==f.indexOf("e")&&(s=f.match(/([\d\.]+)e(-?)(\d+)/),s&&"-"==s[2]&&s[3]>u+1?(f="0",n=0):(o=f,e=!0)),e)0<u&&-1<n&&1>n&&(o=n.toFixed(u));else{f=(f.split(wo)[1]||"").length;c(u)&&(u=Math.min(Math.max(t.minFrac,f),t.maxFrac));n=+(Math.round(+(n.toString()+"e"+u)).toString()+"e"+-u);n=(""+n).split(wo);f=n[0];n=n[1]||"";var s=0,v=t.lgSize,y=t.gSize;if(f.length>=v+y)for(s=f.length-v,e=0;e<s;e++)0==(s-e)%y&&0!==e&&(o+=i),o+=f.charAt(e);for(e=s;e<f.length;e++)0==(f.length-e)%v&&0!==e&&(o+=i),o+=f.charAt(e);for(;n.length<u;)n+="0";u&&"0"!==u&&(o+=r+n.substr(0,u))}return h.push(l?t.negPre:t.posPre),h.push(o),h.push(l?t.negSuf:t.posSuf),h.join("")}function nu(n,t,i){var r="";for(0>n&&(r="-",n=-n),n=""+n;n.length<t;)n="0"+n;return i&&(n=n.substr(n.length-t)),r+n}function d(n,t,i,r){return i=i||0,function(u){return u=u["get"+n](),(0<i||u>-i)&&(u+=i),0===u&&-12==i&&(u=12),nu(u,t,r)}}function tu(n,t){return function(i,r){var u=i["get"+n](),f=ru(t?"SHORT"+n:n);return r[f][u]}}function fo(n){var t=new Date(n,0,1).getDay();return new Date(n,0,(4>=t?5:12)-t)}function eo(n){return function(t){var i=fo(t.getFullYear());return t=+new Date(t.getFullYear(),t.getMonth(),t.getDate()+(4-t.getDay()))-+i,t=1+Math.round(t/6048e5),nu(t,n)}}function oo(n){function t(n){var t;if(t=n.match(i)){n=new Date(0);var r=0,u=0,f=t[8]?n.setUTCFullYear:n.setFullYear,e=t[8]?n.setUTCHours:n.setHours;t[9]&&(r=k(t[9]+t[10]),u=k(t[9]+t[11]));f.call(n,k(t[1]),k(t[2])-1,k(t[3]));r=k(t[4]||0)-r;u=k(t[5]||0)-u;f=k(t[6]||0);t=Math.round(1e3*parseFloat("0."+(t[7]||0)));e.call(n,r,u,f,t)}return n}var i=/^(\d{4})-?(\d\d)-?(\d\d)(?:T(\d\d)(?::?(\d\d)(?::?(\d\d)(?:\.(\d+))?)?)?(Z|([+-])(\d\d):?(\d\d))?)?$/;return function(i,u){var o="",f=[],e,h;if(u=u||"mediumDate",u=n.DATETIME_FORMATS[u]||u,s(i)&&(i=ta.test(i)?k(i):t(i)),ui(i)&&(i=new Date(i)),!tt(i))return i;for(;u;)(h=na.exec(u))?(f=f.concat(st.call(h,1)),u=f.pop()):(f.push(u),u=null);return r(f,function(t){e=gl[t];o+=e?e(i,n.DATETIME_FORMATS):t.replace(/(^'|'$)/g,"").replace(/''/g,"'")}),o}}function wc(){return function(n){return wt(n,!0)}}function bc(){return function(n,t){if(!h(n)&&!s(n))return n;if(t=Infinity===Math.abs(Number(t))?Number(t):k(t),s(n))return t?0<=t?n.slice(0,t):n.slice(t,n.length):"";var u=[],i,r;for(t>n.length?t=n.length:t<-n.length&&(t=-n.length),0<t?(i=0,r=t):(i=n.length+t,r=n.length);i<r;i++)u.push(n[i]);return u}}function so(n){return function(t,i,r){function u(n,t){return t?function(t,i){return n(i,t)}:n}function e(n,t){var i=typeof n,r=typeof t;return i==r?(tt(n)&&tt(t)&&(n=n.valueOf(),t=t.valueOf()),"string"==i&&(n=n.toLowerCase(),t=t.toLowerCase()),n===t?0:n<t?-1:1):i<r?-1:1}if(!h(t)||!i)return t;i=h(i)?i:[i];i=ws(i,function(t){var r=!1,i=t||ri,f;return s(t)&&(("+"==t.charAt(0)||"-"==t.charAt(0))&&(r="-"==t.charAt(0),t=t.substring(1)),i=n(t),i.constant)?(f=i(),u(function(n,t){return e(n[f],t[f])},r)):u(function(n,t){return e(i(n),i(t))},r)});for(var o=[],f=0;f<t.length;f++)o.push(t[f]);return o.sort(u(function(n,t){for(var u,r=0;r<i.length;r++)if(u=i[r](n,t),0!==u)return u;return 0},r))}}function kt(n){return e(n)&&(n={link:n}),n.restrict=n.restrict||"AC",nt(n)}function ho(n,t,i,u){function e(t,i){i=i?"-"+ar(i,"-"):"";u.removeClass(n,(t?su:ou)+i);u.addClass(n,(t?ou:su)+i)}var f=this,o=n.parent().controller("form")||sr,h=0,c=f.$error={},s=[];f.$name=t.name||t.ngForm;f.$dirty=!1;f.$pristine=!0;f.$valid=!0;f.$invalid=!1;f.$submitted=!1;o.$addControl(f);n.addClass(li);e(!0);f.$rollbackViewValue=function(){r(s,function(n){n.$rollbackViewValue()})};f.$commitViewValue=function(){r(s,function(n){n.$commitViewValue()})};f.$addControl=function(n){ni(n.$name,"input");s.push(n);n.$name&&(f[n.$name]=n)};f.$removeControl=function(n){n.$name&&f[n.$name]===n&&delete f[n.$name];r(c,function(t,i){f.$setValidity(i,!0,n)});fi(s,n)};f.$setValidity=function(n,t,i){var r=c[n];if(t)r&&(fi(r,i),r.length||(h--,h||(e(t),f.$valid=!0,f.$invalid=!1),c[n]=!1,e(!0,n),o.$setValidity(n,!0,f)));else{if(h||e(t),r){if(-1!=vi(r,i))return}else c[n]=r=[],h++,e(!1,n),o.$setValidity(n,!1,f);r.push(i);f.$valid=!1;f.$invalid=!0}};f.$setDirty=function(){u.removeClass(n,li);u.addClass(n,hu);f.$dirty=!0;f.$pristine=!1;o.$setDirty()};f.$setPristine=function(){u.setClass(n,li,hu+" "+yf);f.$dirty=!1;f.$pristine=!0;f.$submitted=!1;r(s,function(n){n.$setPristine()})};f.$setSubmitted=function(){u.addClass(n,yf);f.$submitted=!0;o.$setSubmitted()}}function rf(n,t,r,u){return n.$setValidity(t,r),r?u:i}function co(n,t){var i,r;if(t)for(i=0;i<t.length;++i)if(r=t[i],n[r])return!0;return!1}function kc(n,t,i,r,u){a(u)&&(n.$$hasNativeValidators=!0,n.$parsers.push(function(f){if(n.$error[t]||co(u,r)||!co(u,i))return f;n.$setValidity(t,!1)}))}function ki(n,t,i,r,u,f){var c=t.prop(gc),l=t[0].placeholder,a={},o,e,s,h;if(r.$$validityState=c,!u.android){o=!1;t.on("compositionstart",function(){o=!0});t.on("compositionend",function(){o=!1;e()})}if(e=function(u){var f,s,e;o||(f=t.val(),s=u&&u.type,w&&"input"===(u||a).type&&t[0].placeholder!==l?l=t[0].placeholder:(i.ngTrim&&"false"===i.ngTrim||(f=b(f)),e=c&&r.$$hasNativeValidators,(r.$viewValue!==f||""===f&&e)&&(n.$$phase?r.$setViewValue(f,s,e):n.$apply(function(){r.$setViewValue(f,s,e)}))))},u.hasEvent("input"))t.on("input",e);else{h=function(n){s||(s=f.defer(function(){e(n);s=null}))};t.on("keydown",function(n){var t=n.keyCode;91===t||15<t&&19>t||37<=t&&40>=t||h(n)});if(u.hasEvent("paste"))t.on("paste cut",h)}t.on("change",e);r.$render=function(){t.val(r.$isEmpty(r.$viewValue)?"":r.$viewValue)}}function iu(n,t){return function(i){var u;return tt(i)?i:s(i)&&(n.lastIndex=0,i=n.exec(i))?(i.shift(),u={yyyy:0,MM:1,dd:1,HH:0,mm:0},r(i,function(n,i){i<t.length&&(u[t[i]]=+n)}),new Date(u.yyyy,u.MM-1,u.dd,u.HH,u.mm)):NaN}}function di(n,t,r,u){return function(f,e,o,s,h,c,l){ki(f,e,o,s,h,c);s.$parsers.push(function(u){return s.$isEmpty(u)?(s.$setValidity(n,!0),null):t.test(u)?(s.$setValidity(n,!0),r(u)):(s.$setValidity(n,!1),i)});s.$formatters.push(function(n){return tt(n)?l("date")(n,u):""});o.min&&(f=function(n){var t=s.$isEmpty(n)||r(n)>=r(o.min);return s.$setValidity("min",t),t?n:i},s.$parsers.push(f),s.$formatters.push(f));o.max&&(f=function(n){var t=s.$isEmpty(n)||r(n)<=r(o.max);return s.$setValidity("max",t),t?n:i},s.$parsers.push(f),s.$formatters.push(f))}}function lo(n,t,i,r,u){if(f(r)){if(n=n(r),!n.constant)throw new y("ngModel")("constexpr","Expected constant expression for `{0}`, but saw `{1}`.",i,r);return n(t)}return u}function uf(n,t){return n="ngClass"+n,["$animate",function(i){function f(n,t){var f=[],r=0,u,i;n:for(;r<n.length;r++){for(u=n[r],i=0;i<t.length;i++)if(u==t[i])continue n;f.push(u)}return f}function u(n){if(!h(n)){if(s(n))return n.split(" ");if(a(n)){var t=[];return r(n,function(n,i){n&&(t=t.concat(i.split(" ")))}),t}}return n}return{restrict:"AC",link:function(e,o,s){function h(n,t){var i=o.data("$classCounts")||{},u=[];return r(n,function(n){(0<t||i[n])&&(i[n]=(i[n]||0)+t,i[n]===+(0<t)&&u.push(n))}),o.data("$classCounts",i),u.join(" ")}function l(n){var r,l;if(!0===t||e.$index%2===t)if(r=u(n||[]),c){if(!pt(n,c)){var a=u(c),l=f(r,a),r=f(a,r),r=h(r,-1),l=h(l,1);0===l.length?i.removeClass(o,r):0===r.length?i.addClass(o,l):i.setClass(o,l,r)}}else l=h(r,1),s.$addClass(l);c=ut(n)}var c;e.$watch(s[n],l,!0);s.$observe("class",function(){l(e.$eval(s[n]))});"ngClass"!==n&&e.$watch("$index",function(i,r){var f=i&1,o;f!==(r&1)&&(o=u(e.$eval(s[n])),f===t?(f=h(o,1),s.$addClass(f)):(f=h(o,-1),s.$removeClass(f)))})}}}]}var dc=/^\/(.+)\/([a-z]*)$/,gc="validity",v=function(n){return s(n)?n.toLowerCase():n},ff=Object.prototype.hasOwnProperty,ru=function(n){return s(n)?n.toUpperCase():n},w,u,ot,st=[].slice,ao=[].push,ti=Object.prototype.toString,gi=y("ng"),nr=n.angular||(n.angular={}),tr,yt,uu=0,h,b,ii,fr,sf,hf,ci,bo,ko,go,or,sr,yf;w=k((/msie (\d+)/.exec(v(navigator.userAgent))||[])[1]);isNaN(w)&&(w=k((/trident\/.*; rv:(\d+)/.exec(v(navigator.userAgent))||[])[1]));o.$inject=[];ri.$inject=[];h=function(){return e(Array.isArray)?Array.isArray:function(n){return"[object Array]"===ti.call(n)}}();b=function(){return String.prototype.trim?function(n){return s(n)?n.trim():n}:function(n){return s(n)?n.replace(/^\s\s*/,"").replace(/\s\s*$/,""):n}}();yt=9>w?function(n){return n=n.nodeName?n:n[0],v(n.scopeName&&"HTML"!=n.scopeName?n.scopeName+":"+n.nodeName:n.nodeName)}:function(n){return v(n.nodeName?n.nodeName:n[0].nodeName)};var ir=function(){if(f(ir.isActive_))return ir.isActive_;var n=!(!t.querySelector("[ng-csp]")&&!t.querySelector("[data-ng-csp]"));if(!n)try{new Function("")}catch(i){n=!0}return ir.isActive_=n},fu=["ng-","data-ng-","ng:","x-ng-"],nl=/[A-Z]/g,tl={full:"1.3.0-beta.18",major:1,minor:3,dot:0,codeName:"spontaneous-combustion"};p.expando="ng339";var rr=p.cache={},il=1,eu=n.document.addEventListener?function(n,t,i){n.addEventListener(t,i,!1)}:function(n,t,i){n.attachEvent("on"+t,i)},ur=n.document.removeEventListener?function(n,t,i){n.removeEventListener(t,i,!1)}:function(n,t,i){n.detachEvent("on"+t,i)};p._data=function(n){return this.cache[n[this.expando]]||{}};var rl=/([\:\-\_]+(.))/g,ul=/^moz([A-Z])/,ef=y("jqLite"),fl=/^<(\w+)\s*\/?>(?:<\/\1>|)$/,of=/<|&#?\w+;/,el=/<([\w:]+)/,ol=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi,it={option:[1,'<select multiple="multiple">',"<\/select>"],thead:[1,"<table>","<\/table>"],col:[2,"<table><colgroup>","<\/colgroup><\/table>"],tr:[2,"<table><tbody>","<\/tbody><\/table>"],td:[3,"<table><tbody><tr>","<\/tr><\/tbody><\/table>"],_default:[0,"",""]};it.optgroup=it.option;it.tbody=it.tfoot=it.colgroup=it.caption=it.thead;it.th=it.td;ii=p.prototype={ready:function(i){function r(){u||(u=!0,i())}var u=!1;"complete"===t.readyState?setTimeout(r):(this.on("DOMContentLoaded",r),p(n).on("load",r))},toString:function(){var n=[];return r(this,function(t){n.push(""+t)}),"["+n.join(", ")+"]"},eq:function(n){return 0<=n?u(this[n]):u(this[this.length+n])},length:0,push:ao,sort:[].sort,splice:[].splice};fr={};r("multiple selected checked disabled readOnly required open".split(" "),function(n){fr[v(n)]=n});sf={};r("input select option textarea button form details".split(" "),function(n){sf[n]=!0});hf={ngMinlength:"minlength",ngMaxlength:"maxlength",ngPattern:"pattern"};r({data:yu,removeData:pr},function(n,t){p[t]=n});r({data:yu,inheritedData:kr,scope:function(n){return u.data(n,"$scope")||kr(n.parentNode||n,["$isolateScope","$scope"])},isolateScope:function(n){return u.data(n,"$isolateScope")||u.data(n,"$isolateScopeNoTemplate")},controller:ee,injector:function(n){return kr(n,"$injector")},removeAttr:function(n,t){n.removeAttribute(t)},hasClass:pu,css:function(n,t,r){if(t=pi(t),f(r))n.style[t]=r;else{var u;return 8>=w&&(u=n.currentStyle&&n.currentStyle[t],""===u&&(u="auto")),u=u||n.style[t],8>=w&&(u=""===u?i:u),u}},attr:function(n,t,r){var u=v(t);if(fr[u])if(f(r))r?(n[t]=!0,n.setAttribute(t,u)):(n[t]=!1,n.removeAttribute(u));else return n[t]||(n.attributes.getNamedItem(t)||o).specified?u:i;else if(f(r))n.setAttribute(t,r);else if(n.getAttribute)return n=n.getAttribute(t,2),null===n?i:n},prop:function(n,t,i){if(f(i))n[t]=i;else return n[t]},text:function(){function n(n,t){if(c(t)){var i=n.nodeType;return 1===i||3===i?n.textContent:""}n.textContent=t}return n.$dv="",n}(),val:function(n,t){if(c(t)){if(n.multiple&&"select"===yt(n)){var i=[];return r(n.options,function(n){n.selected&&i.push(n.value||n.text)}),0===i.length?null:i}return n.value}n.value=t},html:function(n,t){if(c(t))return n.innerHTML;yr(n,!0);n.innerHTML=t},empty:oe},function(n,t){p.prototype[t]=function(t,r){var u,f,e=this.length,o;if(n!==oe&&(2==n.length&&n!==pu&&n!==ee?t:r)===i){if(a(t)){for(u=0;u<e;u++)if(n===yu)n(this[u],t);else for(f in t)n(this[u],f,t[f]);return this}for(u=n.$dv,e=u===i?Math.min(e,1):e,f=0;f<e;f++)o=n(this[f],t,r),u=u?u+o:o;return u}for(u=0;u<e;u++)n(this[u],t,r);return this}});r({removeData:pr,on:function sl(n,i,u,e){if(f(e))throw ef("onargs");if(!n.nodeType||1===n.nodeType||9===n.nodeType){var o=lt(n,"events"),s=lt(n,"handle");o||lt(n,"events",o={});s||lt(n,"handle",s=uh(n,o));r(i.split(" "),function(i){var r=o[i],f;r||("mouseenter"==i||"mouseleave"==i?(f=t.body.contains||t.body.compareDocumentPosition?function(n,t){var r=9===n.nodeType?n.documentElement:n,i=t&&t.parentNode;return n===i||!!(i&&1===i.nodeType&&(r.contains?r.contains(i):n.compareDocumentPosition&&n.compareDocumentPosition(i)&16))}:function(n,t){if(t)for(;t=t.parentNode;)if(t===n)return!0;return!1},o[i]=[],sl(n,{mouseleave:"mouseout",mouseenter:"mouseover"}[i],function(n){var t=n.relatedTarget;t&&(t===this||f(this,t))||s(n,i)})):(eu(n,i,s),o[i]=[]),r=o[i]);r.push(u)})}},off:ue,one:function(n,t,i){n=u(n);n.on(t,function r(){n.off(t,i);n.off(t,r)});n.on(t,i)},replaceWith:function(n,t){var i,u=n.parentNode;yr(n);r(new p(t),function(t){i?u.insertBefore(t,i.nextSibling):u.replaceChild(t,n);i=t})},children:function(n){var t=[];return r(n.childNodes,function(n){1===n.nodeType&&t.push(n)}),t},contents:function(n){return n.contentDocument||n.childNodes||[]},append:function(n,t){r(new p(t),function(t){1!==n.nodeType&&11!==n.nodeType||n.appendChild(t)})},prepend:function(n,t){if(1===n.nodeType){var i=n.firstChild;r(new p(t),function(t){n.insertBefore(t,i)})}},wrap:function(n,t){t=u(t)[0];var i=n.parentNode;i&&i.replaceChild(t,n);t.appendChild(n)},remove:function(n){yr(n);var t=n.parentNode;t&&t.removeChild(n)},after:function(n,t){var i=n,u=n.parentNode;r(new p(t),function(n){u.insertBefore(n,i.nextSibling);i=n})},addClass:br,removeClass:wr,toggleClass:function(n,t,i){t&&r(t.split(" "),function(t){var r=i;c(r)&&(r=!pu(n,t));(r?br:wr)(n,t)})},parent:function(n){return(n=n.parentNode)&&11!==n.nodeType?n:null},next:function(n){if(n.nextElementSibling)return n.nextElementSibling;for(n=n.nextSibling;null!=n&&1!==n.nodeType;)n=n.nextSibling;return n},find:function(n,t){return n.getElementsByTagName?n.getElementsByTagName(t):[]},clone:vu,triggerHandler:function(n,t,i){var u,e,f;u=t.type||t;f=(lt(n,"events")||{})[u];f&&(u={preventDefault:function(){this.defaultPrevented=!0},isDefaultPrevented:function(){return!0===this.defaultPrevented},stopPropagation:o,type:u,target:n},t.type&&(u=l(u,t)),t=ut(f),e=i?[u].concat(i):[u],r(t,function(t){t.apply(n,e)}))}},function(n,t){p.prototype[t]=function(t,i,r){for(var e,o=0;o<this.length;o++)c(e)?(e=n(this[o],t,i,r),f(e)&&(e=u(e))):fe(e,n(this[o],t,i,r));return f(e)?e:this};p.prototype.bind=p.prototype.on;p.prototype.unbind=p.prototype.off});wi.prototype={put:function(n,t){this[oi(n,this.nextUid)]=t},get:function(n){return this[oi(n,this.nextUid)]},remove:function(n){var t=this[n=oi(n,this.nextUid)];return delete this[n],t}};var vo=/^function\s*[^\(]*\(\s*([^\)]*)\)/m,hl=/,/,cl=/^\s*(_?)(\S+?)\1\s*$/,yo=/((\/\/.*$)|(\/\*[\s\S]*?\*\/))/mg,hi=y("$injector");bu.$$annotate=wu;var ll=y("$animate"),al=["$provide",function(n){this.$$selectors={};this.register=function(t,i){var r=t+"-animation";if(t&&"."!=t.charAt(0))throw ll("notcsel",t);this.$$selectors[t.substr(1)]=r;n.factory(r,i)};this.classNameFilter=function(n){return 1===arguments.length&&(this.$$classNameFilter=n instanceof RegExp?n:null),this.$$classNameFilter};this.$get=["$timeout","$$asyncCallback",function(n,t){return{enter:function(n,i,r,u){return r?r.after(n):i.prepend(n),u&&t(u),o},leave:function(n,i){return n.remove(),i&&t(i),o},move:function(n,t,i,r){return this.enter(n,t,i,r)},addClass:function(n,i,u){return i=s(i)?i:h(i)?i.join(" "):"",r(n,function(n){br(n,i)}),u&&t(u),o},removeClass:function(n,i,u){return i=s(i)?i:h(i)?i.join(" "):"",r(n,function(n){wr(n,i)}),u&&t(u),o},setClass:function(n,i,u,f){return r(n,function(n){br(n,i);wr(n,u)}),f&&t(f),o},enabled:o}}]}],ht=y("$compile");he.$inject=["$provide","$$sanitizeUriProvider"];var vl=/^(x[\:\-_]|data[\:\-_])/i,cf=y("$interpolate"),yl=/^([^\?#]*)(\?([^#]*))?(#(.*))?$/,pl={http:80,https:443,ftp:21},lf=y("$location");nf.prototype=gu.prototype=we.prototype={$$html5:!1,$$replace:!1,absUrl:dr("$$absUrl"),url:function(n,t){if(c(n))return this.$$url;var i=yl.exec(n);return i[1]&&this.path(decodeURIComponent(i[1])),(i[2]||i[1])&&this.search(i[3]||""),this.hash(i[5]||"",t),this},protocol:dr("$$protocol"),host:dr("$$host"),port:dr("$$port"),path:be("$$path",function(n){return"/"==n.charAt(0)?n:"/"+n}),search:function(n,t){switch(arguments.length){case 0:return this.$$search;case 1:if(s(n))this.$$search=te(n);else if(a(n))r(n,function(t,i){null==t&&delete n[i]}),this.$$search=n;else throw lf("isrcharg");break;default:c(t)||null===t?delete this.$$search[n]:this.$$search[n]=t}return this.$$compose(),this},hash:be("$$hash",ri),replace:function(){return this.$$replace=!0,this}};var ct=y("$parse"),wl=Function.prototype.call,bl=Function.prototype.apply,kl=Function.prototype.bind,er={"null":function(){return null},"true":function(){return!0},"false":function(){return!1},undefined:o,"+":function(n,t,r,u){return r=r(n,t),u=u(n,t),f(r)?f(u)?r+u:r:f(u)?u:i},"-":function(n,t,i,r){return i=i(n,t),r=r(n,t),(f(i)?i:0)-(f(r)?r:0)},"*":function(n,t,i,r){return i(n,t)*r(n,t)},"/":function(n,t,i,r){return i(n,t)/r(n,t)},"%":function(n,t,i,r){return i(n,t)%r(n,t)},"^":function(n,t,i,r){return i(n,t)^r(n,t)},"=":o,"===":function(n,t,i,r){return i(n,t)===r(n,t)},"!==":function(n,t,i,r){return i(n,t)!==r(n,t)},"==":function(n,t,i,r){return i(n,t)==r(n,t)},"!=":function(n,t,i,r){return i(n,t)!=r(n,t)},"<":function(n,t,i,r){return i(n,t)<r(n,t)},">":function(n,t,i,r){return i(n,t)>r(n,t)},"<=":function(n,t,i,r){return i(n,t)<=r(n,t)},">=":function(n,t,i,r){return i(n,t)>=r(n,t)},"&&":function(n,t,i,r){return i(n,t)&&r(n,t)},"||":function(n,t,i,r){return i(n,t)||r(n,t)},"&":function(n,t,i,r){return i(n,t)&r(n,t)},"|":function(n,t,i,r){return r(n,t)(n,t,i(n,t))},"!":function(n,t,i){return!i(n,t)}},dl={n:"\n",f:"\f",r:"\r",t:"\t",v:"\v","'":"'",'"':'"'},af=function(n){this.options=n};af.prototype={constructor:af,lex:function(n){for(this.text=n,this.index=0,this.ch=i,this.tokens=[];this.index<this.text.length;)if(this.ch=this.text.charAt(this.index),this.is("\"'"))this.readString(this.ch);else if(this.isNumber(this.ch)||this.is(".")&&this.isNumber(this.peek()))this.readNumber();else if(this.isIdent(this.ch))this.readIdent();else if(this.is("(){}[].,;:?"))this.tokens.push({index:this.index,text:this.ch}),this.index++;else if(this.isWhitespace(this.ch))this.index++;else{n=this.ch+this.peek();var t=n+this.peek(2),r=er[this.ch],u=er[n],f=er[t];f?(this.tokens.push({index:this.index,text:t,fn:f}),this.index+=3):u?(this.tokens.push({index:this.index,text:n,fn:u}),this.index+=2):r?(this.tokens.push({index:this.index,text:this.ch,fn:r}),this.index+=1):this.throwError("Unexpected next character ",this.index,this.index+1)}return this.tokens},is:function(n){return-1!==n.indexOf(this.ch)},peek:function(n){return n=n||1,this.index+n<this.text.length?this.text.charAt(this.index+n):!1},isNumber:function(n){return"0"<=n&&"9">=n},isWhitespace:function(n){return" "===n||"\r"===n||"\t"===n||"\n"===n||"\v"===n||" "===n},isIdent:function(n){return"a"<=n&&"z">=n||"A"<=n&&"Z">=n||"_"===n||"$"===n},isExpOperator:function(n){return"-"===n||"+"===n||this.isNumber(n)},throwError:function(n,t,i){i=i||this.index;t=f(t)?"s "+t+"-"+this.index+" ["+this.text.substring(t,i)+"]":" "+i;throw ct("lexerr",n,t,this.text);},readNumber:function(){for(var t,i,n="",r=this.index;this.index<this.text.length;){if(t=v(this.text.charAt(this.index)),"."==t||this.isNumber(t))n+=t;else if(i=this.peek(),"e"==t&&this.isExpOperator(i))n+=t;else if(this.isExpOperator(t)&&i&&this.isNumber(i)&&"e"==n.charAt(n.length-1))n+=t;else if(!this.isExpOperator(t)||i&&this.isNumber(i)||"e"!=n.charAt(n.length-1))break;else this.throwError("Invalid exponent");this.index++}n*=1;this.tokens.push({index:r,text:n,constant:!0,fn:function(){return n}})},readIdent:function(){for(var e,o=this,n="",i=this.index,r,u,f,t;this.index<this.text.length;){if(t=this.text.charAt(this.index),"."===t||this.isIdent(t)||this.isNumber(t))"."===t&&(r=this.index),n+=t;else break;this.index++}if(r)for(u=this.index;u<this.text.length;){if(t=this.text.charAt(u),"("===t){f=n.substr(r-i+1);n=n.substr(0,r-i);this.index=u;break}if(this.isWhitespace(t))u++;else break}i={index:i,text:n};er.hasOwnProperty(n)?(i.fn=er[n],i.constant=!0):(e=de(n,this.options,this.text),i.fn=l(function(n,t){return e(n,t)},{assign:function(t,i){return gr(t,n,i,o.text)}}));this.tokens.push(i);f&&(this.tokens.push({index:r,text:"."}),this.tokens.push({index:r+1,text:f}))},readString:function(n){var f=this.index,t,u;this.index++;for(var r="",u=n,i=!1;this.index<this.text.length;){if(t=this.text.charAt(this.index),u=u+t,i)"u"===t?(i=this.text.substring(this.index+1,this.index+5),i.match(/[\da-f]{4}/i)||this.throwError("Invalid unicode escape [\\u"+i+"]"),this.index+=4,r+=String.fromCharCode(parseInt(i,16))):r+=dl[t]||t,i=!1;else if("\\"===t)i=!0;else{if(t===n){this.index++;this.tokens.push({index:f,text:u,string:r,constant:!0,fn:function(){return r}});return}r+=t}this.index++}this.throwError("Unterminated quote",f)}};ci=function(n,t,i){this.lexer=n;this.$filter=t;this.options=i};ci.ZERO=l(function(){return 0},{constant:!0});ci.prototype={constructor:ci,parse:function(n){return this.text=n,this.tokens=this.lexer.lex(n),n=this.statements(),0!==this.tokens.length&&this.throwError("is an unexpected token",this.tokens[0]),n.literal=!!n.literal,n.constant=!!n.constant,n},primary:function(){var n,t,i;for(this.expect("(")?(n=this.filterChain(),this.consume(")")):this.expect("[")?n=this.arrayDeclaration():this.expect("{")?n=this.object():(t=this.expect(),(n=t.fn)||this.throwError("not a primary expression",t),t.constant&&(n.constant=!0,n.literal=!0));t=this.expect("(","[",".");)"("===t.text?(n=this.functionCall(n,i),i=null):"["===t.text?(i=n,n=this.objectIndex(n)):"."===t.text?(i=n,n=this.fieldAccess(n)):this.throwError("IMPOSSIBLE");return n},throwError:function(n,t){throw ct("syntax",t.text,n,t.index+1,this.text,this.text.substring(t.index));},peekToken:function(){if(0===this.tokens.length)throw ct("ueoe",this.text);return this.tokens[0]},peek:function(n,t,i,r){if(0<this.tokens.length){var f=this.tokens[0],u=f.text;if(u===n||u===t||u===i||u===r||!(n||t||i||r))return f}return!1},expect:function(n,t,i,r){return(n=this.peek(n,t,i,r))?(this.tokens.shift(),n):!1},consume:function(n){this.expect(n)||this.throwError("is unexpected, expecting ["+n+"]",this.peek())},unaryFn:function(n,t){return l(function(i,r){return n(i,r,t)},{constant:t.constant})},ternaryFn:function(n,t,i){return l(function(r,u){return n(r,u)?t(r,u):i(r,u)},{constant:n.constant&&t.constant&&i.constant})},binaryFn:function(n,t,i){return l(function(r,u){return t(r,u,n,i)},{constant:n.constant&&i.constant})},statements:function(){for(var n=[];;)if(0<this.tokens.length&&!this.peek("}",")",";","]")&&n.push(this.filterChain()),!this.expect(";"))return 1===n.length?n[0]:function(t,i){for(var f,u,r=0;r<n.length;r++)u=n[r],u&&(f=u(t,i));return f}},filterChain:function(){for(var n=this.expression(),t;;)if(t=this.expect("|"))n=this.binaryFn(n,t.fn,this.filter());else return n},filter:function(){for(var t=this.expect(),i=this.$filter(t.text),n=[];this.expect(":");)n.push(this.expression());return nt(function(t,r,u){u=[u];for(var f=0;f<n.length;f++)u.push(n[f](t,r));return i.apply(t,u)})},expression:function(){return this.assignment()},assignment:function(){var n=this.ternary(),i,t;return(t=this.expect("="))?(n.assign||this.throwError("implies assignment but ["+this.text.substring(0,t.index)+"] can not be assigned to",t),i=this.ternary(),function(t,r){return n.assign(t,i(t,r),r)}):n},ternary:function(){var n=this.logicalOR(),t,i;if(this.expect("?")){if(t=this.assignment(),i=this.expect(":"))return this.ternaryFn(n,t,this.assignment());this.throwError("expected :",i)}else return n},logicalOR:function(){for(var n=this.logicalAND(),t;;)if(t=this.expect("||"))n=this.binaryFn(n,t.fn,this.logicalAND());else return n},logicalAND:function(){var n=this.equality(),t;return(t=this.expect("&&"))&&(n=this.binaryFn(n,t.fn,this.logicalAND())),n},equality:function(){var n=this.relational(),t;return(t=this.expect("==","!=","===","!=="))&&(n=this.binaryFn(n,t.fn,this.equality())),n},relational:function(){var n=this.additive(),t;return(t=this.expect("<",">","<=",">="))&&(n=this.binaryFn(n,t.fn,this.relational())),n},additive:function(){for(var n=this.multiplicative(),t;t=this.expect("+","-");)n=this.binaryFn(n,t.fn,this.multiplicative());return n},multiplicative:function(){for(var n=this.unary(),t;t=this.expect("*","/","%");)n=this.binaryFn(n,t.fn,this.unary());return n},unary:function(){var n;return this.expect("+")?this.primary():(n=this.expect("-"))?this.binaryFn(ci.ZERO,n.fn,this.unary()):(n=this.expect("!"))?this.unaryFn(n.fn,this.unary()):this.primary()},fieldAccess:function(n){var i=this,t=this.expect().text,r=de(t,this.options,this.text);return l(function(t,i,u){return r(u||n(t,i))},{assign:function(r,u,f){return(f=n(r,f))||n.assign(r,f={}),gr(f,t,u,i.text)}})},objectIndex:function(n){var t=this,r=this.expression();return this.consume("]"),l(function(u,f){var e=n(u,f),o=r(u,f);return et(o,t.text),e?si(e[o],t.text):i},{assign:function(i,u,f){var e=et(r(i,f),t.text);return(f=si(n(i,f),t.text))||n.assign(i,f={}),f[e]=u}})},functionCall:function(n,t){var r=[],i;if(")"!==this.peekToken().text)do r.push(this.expression());while(this.expect(","));return this.consume(")"),i=this,function(u,f){for(var c,s=[],h=t?t(u,f):u,e=0;e<r.length;e++)s.push(r[e](u,f));if(e=n(u,f,h)||o,si(h,i.text),c=i.text,e){if(e.constructor===e)throw ct("isecfn",c);if(e===wl||e===bl||e===kl)throw ct("isecff",c);}return s=e.apply?e.apply(h,s):e(s[0],s[1],s[2],s[3],s[4]),si(s,i.text)}},arrayDeclaration:function(){var n=[],i=!0,t;if("]"!==this.peekToken().text)do{if(this.peek("]"))break;t=this.expression();n.push(t);t.constant||(i=!1)}while(this.expect(","));return this.consume("]"),l(function(t,i){for(var u=[],r=0;r<n.length;r++)u.push(n[r](t,i));return u},{literal:!0,constant:i})},object:function(){var t=[],r=!0,n,i;if("}"!==this.peekToken().text)do{if(this.peek("}"))break;n=this.expect();n=n.string||n.text;this.consume(":");i=this.expression();t.push({key:n,value:i});i.constant||(r=!1)}while(this.expect(","));return this.consume("}"),l(function(n,i){for(var f,u={},r=0;r<t.length;r++)f=t[r],u[f.key]=f.value(n,i);return u},{literal:!0,constant:r})}};var vf={},dt=y("$sce"),rt={HTML:"html",CSS:"css",URL:"url",RESOURCE_URL:"resourceUrl",JS:"js"},g=t.createElement("a"),po=bt(n.location.href,!0);to.$inject=["$provide"];io.$inject=["$locale"];ro.$inject=["$locale"];var wo=".",gl={yyyy:d("FullYear",4),yy:d("FullYear",2,0,!0),y:d("FullYear",1),MMMM:tu("Month"),MMM:tu("Month",!0),MM:d("Month",2,1),M:d("Month",1,1),dd:d("Date",2),d:d("Date",1),HH:d("Hours",2),H:d("Hours",1),hh:d("Hours",2,-12),h:d("Hours",1,-12),mm:d("Minutes",2),m:d("Minutes",1),ss:d("Seconds",2),s:d("Seconds",1),sss:d("Milliseconds",3),EEEE:tu("Day"),EEE:tu("Day",!0),a:function(n,t){return 12>n.getHours()?t.AMPMS[0]:t.AMPMS[1]},Z:function(n){return n=-1*n.getTimezoneOffset(),(0<=n?"+":"")+(nu(Math[0<n?"floor":"ceil"](n/60),2)+nu(Math.abs(n%60),2))},ww:eo(2),w:eo(1)},na=/((?:[^yMdHhmsaZEw']+)|(?:'(?:[^']|'')*')|(?:E+|y+|M+|d+|H+|h+|m+|s+|a|Z|w+))(.*)/,ta=/^\-?\d+$/;oo.$inject=["$locale"];bo=nt(v);ko=nt(ru);so.$inject=["$parse"];go=nt({restrict:"E",compile:function(n,i){return 8>=w&&(i.href||i.name||i.$set("href",""),n.append(t.createComment("IE fix"))),!i.href&&!i.xlinkHref&&!i.name?function(n,t){var i="[object SVGAnimatedString]"===ti.call(t.prop("href"))?"xlink:href":"href";t.on("click",function(n){t.attr(i)||n.preventDefault()})}:void 0}});or={};r(fr,function(n,t){if("multiple"!=n){var i=at("ng-"+t);or[i]=function(){return{restrict:"A",priority:100,link:function(n,r,u){n.$watch(u[i],function(n){u.$set(t,!!n)})}}}}});r(hf,function(n,t){or[t]=function(){return{priority:100,link:function(n,i,r){if("ngPattern"===t&&"/"==r.ngPattern.charAt(0)&&(i=r.ngPattern.match(dc))){r.$set("ngPattern",RegExp(i[1],i[2]));return}n.$watch(r[t],function(n){r.$set(t,n)})}}}});r(["src","srcset","href"],function(n){var t=at("ng-"+n);or[t]=function(){return{priority:99,link:function(i,r,u){var e=n,f=n;"href"===n&&"[object SVGAnimatedString]"===ti.call(r.prop("href"))&&(f="xlinkHref",u.$attr[f]="xlink:href",e=null);u.$observe(t,function(t){t?(u.$set(f,t),w&&e&&r.prop(e,u[f])):"href"===n&&u.$set(f,null)})}}}});sr={$addControl:o,$removeControl:o,$setValidity:o,$setDirty:o,$setPristine:o,$setSubmitted:o};yf="ng-submitted";ho.$inject=["$element","$attrs","$scope","$animate"];var ns=function(n){return["$timeout",function(t){return{name:"form",restrict:n?"EAC":"E",controller:ho,compile:function(){return{pre:function(n,r,u,f){var o,s,e;if(!u.action){o=function(t){n.$apply(function(){f.$commitViewValue();f.$setSubmitted()});t.preventDefault?t.preventDefault():t.returnValue=!1};eu(r[0],"submit",o);r.on("$destroy",function(){t(function(){ur(r[0],"submit",o)},0,!1)})}if(s=r.parent().controller("form"),e=u.name||u.ngForm,e&&gr(n,e,f,e),s)r.on("$destroy",function(){s.$removeControl(f);e&&gr(n,e,i,e);l(f,sr)})}}}}}]},ia=ns(),ra=ns(!0),ua=/^(ftp|http|https):\/\/(\w+:{0,1}\w*@)?(\S+)(:[0-9]+)?(\/|\/([\w#!:.?+=&%@!\-\/]))?$/,fa=/^[a-z0-9!#$%&'*+\/=?^_`{|}~.-]+@[a-z0-9]([a-z0-9-]*[a-z0-9])?(\.[a-z0-9]([a-z0-9-]*[a-z0-9])?)*$/i,ea=/^\s*(\-|\+)?(\d+|(\d*(\.\d*)))\s*$/,ts=/^(\d{4})-(\d{2})-(\d{2})$/,is=/^(\d{4})-(\d\d)-(\d\d)T(\d\d):(\d\d)$/,pf=/^(\d{4})-W(\d\d)$/,rs=/^(\d{4})-(\d\d)$/,us=/^(\d\d):(\d\d)$/,oa=/(\s+|^)default(\s+|$)/,fs={text:ki,date:di("date",ts,iu(ts,["yyyy","MM","dd"]),"yyyy-MM-dd"),"datetime-local":di("datetimelocal",is,iu(is,["yyyy","MM","dd","HH","mm"]),"yyyy-MM-ddTHH:mm"),time:di("time",us,iu(us,["HH","mm"]),"HH:mm"),week:di("week",pf,function(n){var t;if(tt(n))return n;if(s(n)&&(pf.lastIndex=0,t=pf.exec(n),t)){n=+t[1];var i=+t[2],t=fo(n),i=7*(i-1);return new Date(n,0,t.getDate()+i)}return NaN},"yyyy-Www"),month:di("month",rs,iu(rs,["yyyy","MM"]),"yyyy-MM"),number:function(n,t,r,u,f,e){ki(n,t,r,u,f,e);u.$parsers.push(function(n){var t=u.$isEmpty(n);return t||ea.test(n)?(u.$setValidity("number",!0),""===n?null:t?n:parseFloat(n)):(u.$setValidity("number",!1),i)});kc(u,"number",sa,null,u.$$validityState);u.$formatters.push(function(n){return u.$isEmpty(n)?"":""+n});r.min&&(n=function(n){var t=parseFloat(r.min);return rf(u,"min",u.$isEmpty(n)||n>=t,n)},u.$parsers.push(n),u.$formatters.push(n));r.max&&(n=function(n){var t=parseFloat(r.max);return rf(u,"max",u.$isEmpty(n)||n<=t,n)},u.$parsers.push(n),u.$formatters.push(n));u.$formatters.push(function(n){return rf(u,"number",u.$isEmpty(n)||ui(n),n)})},url:function(n,t,i,r,u,f){ki(n,t,i,r,u,f);r.$validators.url=function(n,t){var i=n||t;return r.$isEmpty(i)||ua.test(i)}},email:function(n,t,i,r,u,f){ki(n,t,i,r,u,f);r.$validators.email=function(n,t){var i=n||t;return r.$isEmpty(i)||fa.test(i)}},radio:function(n,t,i,r){c(i.name)&&t.attr("name",++uu);t.on("click",function(u){t[0].checked&&n.$apply(function(){r.$setViewValue(i.value,u&&u.type)})});r.$render=function(){t[0].checked=i.value==r.$viewValue};i.$observe("value",r.$render)},checkbox:function(n,t,i,r,u,f,e,o){var s=lo(o,n,"ngTrueValue",i.ngTrueValue,!0),h=lo(o,n,"ngFalseValue",i.ngFalseValue,!1);t.on("click",function(i){n.$apply(function(){r.$setViewValue(t[0].checked,i&&i.type)})});r.$render=function(){t[0].checked=r.$viewValue};r.$isEmpty=function(n){return n!==s};r.$formatters.push(function(n){return pt(n,s)});r.$parsers.push(function(n){return n?s:h})},hidden:o,button:o,submit:o,reset:o,file:o},sa=["badInput"],es=["$browser","$sniffer","$filter","$parse",function(n,t,i,r){return{restrict:"E",require:["?ngModel"],link:function(u,f,e,o){o[0]&&(fs[v(e.type)]||fs.text)(u,f,e,o[0],t,n,i,r)}}}],ou="ng-valid",su="ng-invalid",li="ng-pristine",hu="ng-dirty",ha=["$scope","$exceptionHandler","$attrs","$element","$parse","$animate","$timeout",function(n,t,u,s,h,l,a){function p(n,t){t=t?"-"+ar(t,"-"):"";l.removeClass(s,(n?su:ou)+t);l.addClass(s,(n?ou:su)+t)}this.$modelValue=this.$viewValue=Number.NaN;this.$validators={};this.$parsers=[];this.$formatters=[];this.$viewChangeListeners=[];this.$untouched=!0;this.$touched=!1;this.$pristine=!0;this.$dirty=!1;this.$valid=!0;this.$invalid=!1;this.$name=u.name;var b=h(u.ngModel),g=b.assign,w=null,v=this;if(!g)throw y("ngModel")("nonassign",u.ngModel,ft(s));this.$render=o;this.$isEmpty=function(n){return c(n)||""===n||null===n||n!==n};var nt=s.inheritedData("$formController")||sr,k=0,d=this.$error={};s.addClass(li).addClass("ng-untouched");p(!0);this.$setValidity=function(n,t){d[n]!==!t&&(t?(d[n]&&k--,k||(p(!0),v.$valid=!0,v.$invalid=!1)):(p(!1),v.$invalid=!0,v.$valid=!1,k++),d[n]=!t,p(t,n),nt.$setValidity(n,t,v))};this.$setPristine=function(){v.$dirty=!1;v.$pristine=!0;l.removeClass(s,hu);l.addClass(s,li)};this.$setUntouched=function(){v.$touched=!1;v.$untouched=!0;l.setClass(s,"ng-untouched","ng-touched")};this.$setTouched=function(){v.$touched=!0;v.$untouched=!1;l.setClass(s,"ng-touched","ng-untouched")};this.$rollbackViewValue=function(){a.cancel(w);v.$viewValue=v.$$lastCommittedViewValue;v.$render()};this.$validate=function(){if(v.$modelValue===v.$modelValue){var n=v.$modelValue;v.$$runValidators(v.$$invalidModelValue||v.$modelValue,v.$viewValue);n!==v.$modelValue&&v.$$writeModelToScope()}};this.$$runValidators=function(n,t){r(v.$validators,function(i,r){v.$setValidity(r,i(n,t))});v.$modelValue=v.$valid?n:i;v.$$invalidModelValue=v.$valid?i:n};this.$commitViewValue=function(n){var i=v.$viewValue,t;a.cancel(w);(n||v.$$lastCommittedViewValue!==i)&&(v.$$lastCommittedViewValue=i,v.$pristine&&(v.$dirty=!0,v.$pristine=!1,l.removeClass(s,li),l.addClass(s,hu),nt.$setDirty()),t=i,r(v.$parsers,function(n){t=n(t)}),v.$modelValue!==t&&(c(v.$$invalidModelValue)||v.$$invalidModelValue!=t)&&(v.$$runValidators(t,i),v.$$writeModelToScope()))};this.$$writeModelToScope=function(){var i;v.$options&&v.$options.getterSetter&&e(i=b(n))?i(v.$modelValue):g(n,v.$modelValue);r(v.$viewChangeListeners,function(n){try{n()}catch(i){t(i)}})};this.$setViewValue=function(n,t,i){v.$viewValue=n;v.$options&&!v.$options.updateOnDefault||v.$$debounceViewValueCommit(t,i)};this.$$debounceViewValueCommit=function(n,t){var r=0,i=v.$options;i&&f(i.debounce)&&(i=i.debounce,ui(i)?r=i:ui(i[n])?r=i[n]:ui(i["default"])&&(r=i["default"]));a.cancel(w);r?w=a(function(){v.$commitViewValue(t)},r):v.$commitViewValue(t)};n.$watch(function(){var t=b(n);if(v.$options&&v.$options.getterSetter&&e(t)&&(t=t()),v.$modelValue!==t&&(c(v.$$invalidModelValue)||v.$$invalidModelValue!=t)){for(var r=v.$formatters,u=r.length,i=t;u--;)i=r[u](i);v.$$runValidators(t,i);v.$viewValue!==i&&(v.$viewValue=v.$$lastCommittedViewValue=i,v.$render())}return t})}],ca=function(){return{restrict:"A",require:["ngModel","^?form","^?ngModelOptions"],controller:ha,link:{pre:function(n,t,i,r){r[2]&&(r[0].$options=r[2].$options);var u=r[0],f=r[1]||sr;f.$addControl(u);n.$on("$destroy",function(){f.$removeControl(u)})},post:function(n,t,i,r){var u=r[0];if(u.$options&&u.$options.updateOn)t.on(u.$options.updateOn,function(t){n.$apply(function(){u.$$debounceViewValueCommit(t&&t.type)})});t.on("blur",function(){u.$touched||n.$apply(function(){u.$setTouched()})})}}}},la=nt({restrict:"A",require:"ngModel",link:function(n,t,i,r){r.$viewChangeListeners.push(function(){n.$eval(i.ngChange)})}}),os=function(){return{restrict:"A",require:"?ngModel",link:function(n,t,i,r){r&&(i.required=!0,r.$validators.required=function(n,t){return!i.required||!r.$isEmpty(t)},i.$observe("required",function(){r.$validate()}))}}},ss=function(){return{restrict:"A",require:"?ngModel",link:function(n,t,r,u){if(u){var f,e=r.ngPattern||r.pattern;r.$observe("pattern",function(n){if(s(n)&&0<n.length&&(n=RegExp(n)),n&&!n.test)throw y("ngPattern")("noregexp",e,n,ft(t));f=n||i;u.$validate()});u.$validators.pattern=function(n){return u.$isEmpty(n)||c(f)||f.test(n)}}}}},hs=function(){return{restrict:"A",require:"?ngModel",link:function(n,t,i,r){if(r){var u=0;i.$observe("maxlength",function(n){u=k(n)||0;r.$validate()});r.$validators.maxlength=function(n){return r.$isEmpty(n)||n.length<=u}}}}},cs=function(){return{restrict:"A",require:"?ngModel",link:function(n,t,i,r){if(r){var u=0;i.$observe("minlength",function(n){u=k(n)||0;r.$validate()});r.$validators.minlength=function(n){return r.$isEmpty(n)||n.length>=u}}}}},aa=function(){return{restrict:"A",require:"ngModel",link:function(n,t,u,f){var e=t.attr(u.$attr.ngList)||", ",o="false"!==u.ngTrim,s=o?b(e):e;f.$parsers.push(function(n){if(!c(n)){var t=[];return n&&r(n.split(s),function(n){n&&t.push(o?b(n):n)}),t}});f.$formatters.push(function(n){return h(n)?n.join(e):i});f.$isEmpty=function(n){return!n||!n.length}}}},va=/^(true|false|\d+)$/,ya=function(){return{restrict:"A",priority:100,compile:function(n,t){return va.test(t.ngValue)?function(n,t,i){i.$set("value",n.$eval(i.ngValue))}:function(n,t,i){n.$watch(i.ngValue,function(n){i.$set("value",n)})}}}},pa=function(){return{restrict:"A",controller:["$scope","$attrs",function(n,t){var r=this;this.$options=n.$eval(t.ngModelOptions);this.$options.updateOn!==i?(this.$options.updateOnDefault=!1,this.$options.updateOn=b(this.$options.updateOn.replace(oa,function(){return r.$options.updateOnDefault=!0," "}))):this.$options.updateOnDefault=!0}]}},wa=kt({compile:function(n){return n.addClass("ng-binding"),function(n,t,r){t.data("$binding",r.ngBind);n.$watch(r.ngBind,function(n){t.text(n==i?"":n)})}}}),ba=["$interpolate",function(n){return function(t,i,r){t=n(i.attr(r.$attr.ngBindTemplate));i.addClass("ng-binding").data("$binding",t);r.$observe("ngBindTemplate",function(n){i.text(n)})}}],ka=["$sce","$parse",function(n,t){return{restrict:"A",compile:function(i){return i.addClass("ng-binding"),function(i,r,u){r.data("$binding",u.ngBindHtml);var f=t(u.ngBindHtml);u=t(u.ngBindHtml,function(n){return(n||"").toString()});i.$watch(u,function(){r.html(n.getTrustedHtml(f(i))||"")})}}}}],da=uf("",!0),ga=uf("Odd",0),nv=uf("Even",1),tv=kt({compile:function(n,t){t.$set("ngCloak",i);n.removeClass("ng-cloak")}}),iv=[function(){return{restrict:"A",scope:!0,controller:"@",priority:500}}],ls={};r("click dblclick mousedown mouseup mouseover mouseout mousemove mouseenter mouseleave keydown keyup keypress submit focus blur copy cut paste".split(" "),function(n){var t=at("ng-"+n);ls[t]=["$parse",function(i){return{restrict:"A",compile:function(r,u){var f=i(u[t]);return function(t,i){i.on(v(n),function(n){t.$apply(function(){f(t,{$event:n})})})}}}}]});var rv=["$animate",function(n){return{multiElement:!0,transclude:"element",priority:600,terminal:!0,restrict:"A",$$tlb:!0,link:function(i,r,u,f,e){var h,s,o;i.$watch(u.ngIf,function(i){i?s||e(function(i,f){s=f;i[i.length++]=t.createComment(" end ngIf: "+u.ngIf+" ");h={clone:i};n.enter(i,r.parent(),r)}):(o&&(o.remove(),o=null),s&&(s.$destroy(),s=null),h&&(o=vr(h.clone),n.leave(o,function(){o=null}),h=null))})}}}],uv=["$http","$templateCache","$anchorScroll","$animate","$sce",function(n,t,i,r,u){return{restrict:"ECA",priority:400,terminal:!0,transclude:"element",controller:nr.noop,compile:function(e,o){var h=o.ngInclude||o.src,c=o.onload||"",s=o.autoscroll;return function(e,o,l,a,v){var b=0,y,p,w,k=function(){p&&(p.remove(),p=null);y&&(y.$destroy(),y=null);w&&(r.leave(w,function(){p=null}),p=w,w=null)};e.$watch(u.parseAsResourceUrl(h),function(u){var l=function(){f(s)&&(!s||e.$eval(s))&&i()},h=++b;u?(n.get(u,{cache:t}).success(function(n){if(h===b){var t=e.$new();a.template=n;n=v(t,function(n){k();r.enter(n,null,o,l)});y=t;w=n;y.$emit("$includeContentLoaded");e.$eval(c)}}).error(function(){h===b&&(k(),e.$emit("$includeContentError"))}),e.$emit("$includeContentRequested")):(k(),a.template=null)})}}}}],fv=["$compile",function(n){return{restrict:"ECA",priority:-400,require:"ngInclude",link:function(t,i,r,u){i.html(u.template);n(i.contents())(t)}}}],ev=kt({priority:450,compile:function(){return{pre:function(n,t,i){n.$eval(i.ngInit)}}}}),ov=kt({terminal:!0,priority:1e3}),sv=["$locale","$interpolate",function(n,t){var i=/{}/g;return{restrict:"EA",link:function(u,f,e){var s=e.count,l=e.$attr.when&&f.attr(e.$attr.when),h=e.offset||0,o=u.$eval(l)||{},c={},a=t.startSymbol(),y=t.endSymbol(),p=/^when(Minus)?(.+)$/;r(e,function(n,t){p.test(t)&&(o[v(t.replace("when","").replace("Minus","-"))]=f.attr(e.$attr[t]))});r(o,function(n,r){c[r]=t(n.replace(i,a+s+"-"+h+y))});u.$watch(function(){var t=parseFloat(u.$eval(s));return isNaN(t)?"":(t in o||(t=n.pluralCat(t-h)),c[t](u))},function(n){f.text(n)})}}}],hv=["$parse","$animate",function(n,i){var f=y("ngRepeat");return{restrict:"A",multiElement:!0,transclude:"element",priority:1e3,terminal:!0,$$tlb:!0,link:function(e,o,s,h,c){var y=s.ngRepeat,l=y.match(/^\s*([\s\S]+?)\s+in\s+([\s\S]+?)(?:\s+as\s+([\s\S]+?))?(?:\s+track\s+by\s+([\s\S]+?))?\s*$/),d,w,b,g,nt,k,v,p={$id:oi},a;if(!l)throw f("iexp",y);if(s=l[1],h=l[2],w=l[3],(l=l[4])?(d=n(l),b=function(n,t,i){return v&&(p[v]=n),p[k]=t,p.$index=i,d(e,p)}):(g=function(n,t){return oi(t)},nt=function(n){return n}),l=s.match(/^(?:([\$\w]+)|\(([\$\w]+)\s*,\s*([\$\w]+)\))$/),!l)throw f("iidexp",s);k=l[3]||l[1];v=l[2];a={};e.$watchCollection(h,function(n){var s,l,rt=o[0],tt,ft={},ht,ut,et,d,ot,p,h,it=[],st;if(w&&(e[w]=n),st=function(n,t){n[k]=et;v&&(n[v]=ut);n.$index=t;n.$first=0===t;n.$last=t===ht-1;n.$middle=!(n.$first||n.$last);n.$odd=!(n.$even=0==(t&1))},hr(n))p=n,ot=b||g;else{ot=b||nt;p=[];for(l in n)n.hasOwnProperty(l)&&"$"!=l.charAt(0)&&p.push(l);p.sort()}for(ht=p.length,l=it.length=p.length,s=0;s<l;s++)if(ut=n===p?s:p[s],et=n[ut],d=ot(ut,et,s),ni(d,"`track by` id"),a.hasOwnProperty(d))h=a[d],delete a[d],ft[d]=h,it[s]=h;else{if(ft.hasOwnProperty(d))throw r(it,function(n){n&&n.scope&&(a[n.id]=n)}),f("dupes",y,d);it[s]={id:d};ft[d]=!1}for(tt in a)a.hasOwnProperty(tt)&&(h=a[tt],l=vr(h.clone),i.leave(l),r(l,function(n){n.$$NG_REMOVED=!0}),h.scope.$destroy());for(s=0,l=p.length;s<l;s++)if(ut=n===p?s:p[s],et=n[ut],h=it[s],it[s-1]&&(rt=it[s-1].clone[it[s-1].clone.length-1]),h.scope){tt=rt;do tt=tt.nextSibling;while(tt&&tt.$$NG_REMOVED);h.clone[0]!=tt&&i.move(vr(h.clone),null,u(rt));rt=h.clone[h.clone.length-1];st(h.scope,s)}else c(function(n,r){h.scope=r;n[n.length++]=t.createComment(" end ngRepeat: "+y+" ");i.enter(n,null,u(rt));rt=n;h.clone=n;ft[h.id]=h;st(h.scope,s)});a=ft})}}}],cv=["$animate",function(n){return{restrict:"A",multiElement:!0,link:function(t,i,r){t.$watch(r.ngShow,function(t){n[t?"removeClass":"addClass"](i,"ng-hide")})}}}],lv=["$animate",function(n){return{restrict:"A",multiElement:!0,link:function(t,i,r){t.$watch(r.ngHide,function(t){n[t?"addClass":"removeClass"](i,"ng-hide")})}}}],av=kt(function(n,t,i){n.$watch(i.ngStyle,function(n,i){i&&n!==i&&r(i,function(n,i){t.css(i,"")});n&&t.css(n)},!0)}),vv=["$animate",function(n){return{restrict:"EA",require:"ngSwitch",controller:["$scope",function(){this.cases={}}],link:function(i,u,f,e){var c=[],h=[],o=[],s=[];i.$watch(f.ngSwitch||f.on,function(u){for(var v,l=0,a=o.length;l<a;++l)o[l].remove();for(l=o.length=0,a=s.length;l<a;++l)v=vr(h[l].clone),s[l].$destroy(),o[l]=v,n.leave(v,function(){o.splice(l,1)});h.length=0;s.length=0;(c=e.cases["!"+u]||e.cases["?"])&&(i.$eval(f.change),r(c,function(i){i.transclude(function(r,u){s.push(u);var f=i.element;r[r.length++]=t.createComment(" end ngSwitchWhen: ");h.push({clone:r});n.enter(r,f.parent(),f)})}))})}}}],yv=kt({transclude:"element",priority:1200,require:"^ngSwitch",multiElement:!0,link:function(n,t,i,r,u){r.cases["!"+i.ngSwitchWhen]=r.cases["!"+i.ngSwitchWhen]||[];r.cases["!"+i.ngSwitchWhen].push({transclude:u,element:t})}}),pv=kt({transclude:"element",priority:1200,require:"^ngSwitch",multiElement:!0,link:function(n,t,i,r,u){r.cases["?"]=r.cases["?"]||[];r.cases["?"].push({transclude:u,element:t})}}),wv=kt({restrict:"EAC",link:function(n,t,i,r,u){if(!u)throw y("ngTransclude")("orphan",ft(t));u(function(n){t.empty();t.append(n)})}}),bv=["$templateCache",function(n){return{restrict:"E",terminal:!0,compile:function(t,i){"text/ng-template"==i.type&&n.put(i.id,t[0].text)}}}],kv=y("ngOptions"),dv=nt({restrict:"A",terminal:!0}),gv=["$compile","$parse",function(n,e){var s=/^\s*([\s\S]+?)(?:\s+as\s+([\s\S]+?))?(?:\s+group\s+by\s+([\s\S]+?))?\s+for\s+(?:([\$\w][\$\w]*)|(?:\(\s*([\$\w][\$\w]*)\s*,\s*([\$\w][\$\w]*)\s*\)))\s+in\s+([\s\S]+?)(?:\s+track\s+by\s+([\s\S]+?))?$/,l={$setViewValue:o};return{restrict:"E",require:["select","?ngModel"],controller:["$element","$scope","$attrs",function(n,t,i){var r=this,f={},e=l,u;r.databound=i.ngModel;r.init=function(n,t,i){e=n;u=i};r.addOption=function(t,i){ni(t,'"option value"');f[t]=!0;e.$viewValue==t&&(n.val(t),u.parent()&&u.remove());i[0].hasAttribute("selected")&&(i[0].selected=!0)};r.removeOption=function(n){this.hasOption(n)&&(delete f[n],e.$viewValue==n&&this.renderUnknownOption(n))};r.renderUnknownOption=function(t){t="? "+oi(t)+" ?";u.val(t);n.prepend(u);n.val(t);u.prop("selected",!0)};r.hasOption=function(n){return f.hasOwnProperty(n)};t.$on("$destroy",function(){r.renderUnknownOption=o})}],link:function(o,l,a,v){function rt(n,t,i,r){i.$render=function(){var n=i.$viewValue;r.hasOption(n)?(b.parent()&&b.remove(),t.val(n),""===n&&nt.prop("selected",!0)):c(n)&&nt?t.val(""):r.renderUnknownOption(n)};t.on("change",function(){n.$apply(function(){b.parent()&&b.remove();i.$setViewValue(t.val())})})}function et(n,t,i){var u;i.$render=function(){var n=new wi(i.$viewValue);r(t.find("option"),function(t){t.selected=f(n.get(t.value))})};n.$watch(function(){pt(u,i.$viewValue)||(u=ut(i.$viewValue),i.$render())});t.on("change",function(){n.$apply(function(){var n=[];r(t.find("option"),function(t){t.selected&&n.push(t.value)});i.$setViewValue(n)})})}function ot(t,r,u){function k(){var et={"":[]},ht=[""],n,s,g,rt,i,ut,ot,c,e,k,ft;if(g=u.$modelValue,rt=d(t)||[],ut=a?wf(rt):rt,c={},e=!1,p)if(s=u.$modelValue,o&&h(s))for(e=new wi([]),n={},i=0;i<s.length;i++)n[l]=s[i],e.put(o(t,n),s[i]);else e=new wi(s);for(i=e,e=0;ot=ut.length,e<ot;e++){if(s=e,a){if(s=ut[e],"$"===s.charAt(0))continue;c[a]=s}c[l]=rt[s];n=it(t,c)||"";(s=et[n])||(s=et[n]=[],ht.push(n));p?n=f(i.remove(o?o(t,c):b(t,c))):(o?(n={},n[l]=g,n=o(t,n)===o(t,c)):n=g===b(t,c),i=i||n);k=nt(t,c);k=f(k)?k:"";s.push({id:o?o(t,c):a?ut[e]:e,label:k,selected:n})}for(p||(y||null===g?et[""].unshift({id:"",label:"",selected:!i}):i||et[""].unshift({id:"?",label:"",selected:!0})),c=0,ut=ht.length;c<ut;c++){for(n=ht[c],s=et[n],v.length<=c?(g={element:st.clone().attr("label",n),label:s.label},rt=[g],v.push(rt),r.append(g.element)):(rt=v[c],g=rt[0],g.label!=n&&g.element.attr("label",g.label=n)),k=null,e=0,ot=s.length;e<ot;e++)n=s[e],(i=rt[e+1])?(k=i.element,i.label!==n.label&&k.text(i.label=n.label),i.id!==n.id&&k.val(i.id=n.id),k[0].selected!==n.selected&&(k.prop("selected",i.selected=n.selected),w&&k.prop("selected",i.selected))):(""===n.id&&y?ft=y:(ft=tt.clone()).val(n.id).prop("selected",n.selected).attr("selected",n.selected).text(n.label),rt.push({element:ft,label:n.label,id:n.id,selected:n.selected}),k?k.after(ft):g.element.append(ft),k=ft);for(e++;rt.length>e;)rt.pop().element.remove()}for(;v.length>c;)v.pop()[0].element.remove()}var c;if(!(c=g.match(s)))throw kv("iexp",g,ft(r));var nt=e(c[2]||c[1]),l=c[4]||c[6],a=c[5],it=e(c[3]||""),b=e(c[2]?c[1]:l),d=e(c[7]),o=c[8]?e(c[8]):null,v=[[{element:r,label:""}]];y&&(n(y)(t),y.removeClass("ng-scope"),y.remove());r.empty();r.on("change",function(){t.$apply(function(){var w,h=d(t)||[],f={},n,s,c,y,g,nt,e;if(p){for(s=[],y=0,nt=v.length;y<nt;y++)for(w=v[y],c=1,g=w.length;c<g;c++)if((n=w[c].element)[0].selected){if(n=n.val(),a&&(f[a]=n),o)for(e=0;e<h.length&&(f[l]=h[e],o(t,f)!=n);e++);else f[l]=h[n];s.push(b(t,f))}}else if(n=r.val(),"?"==n)s=i;else if(""===n)s=null;else if(o){for(e=0;e<h.length;e++)if(f[l]=h[e],o(t,f)==n){s=b(t,f);break}}else f[l]=h[n],a&&(f[a]=n),s=b(t,f);u.$setViewValue(s);k()})});u.$render=k;t.$watchCollection(d,k);p&&t.$watchCollection(function(){return u.$modelValue},k)}var d,k,it;if(v[1]){d=v[0];v=v[1];var p=a.multiple,g=a.ngOptions,y=!1,nt,tt=u(t.createElement("option")),st=u(t.createElement("optgroup")),b=tt.clone();for(a=0,k=l.children(),it=k.length;a<it;a++)if(""===k[a].value){nt=y=k.eq(a);break}d.init(v,y,b);p&&(v.$isEmpty=function(n){return!n||0===n.length});g?ot(o,l,v):p?et(o,l,v):rt(o,l,v,d)}}}}],ny=["$interpolate",function(n){var t={addOption:o,removeOption:o};return{restrict:"E",priority:100,compile:function(i,r){if(c(r.value)){var u=n(i.text(),!0);u||r.$set("value",i.text())}return function(n,i,r){var e=i.parent(),f=e.data("$selectController")||e.parent().data("$selectController");f&&f.databound?i.prop("selected",!1):f=t;u?n.$watch(u,function(n,t){r.$set("value",n);t!==n&&f.removeOption(t);f.addOption(n,i)}):f.addOption(r.value,i);i.on("$destroy",function(){f.removeOption(r.value)})}}}}],ty=nt({restrict:"E",terminal:!1});n.angular.bootstrap?console.log("WARNING: Tried to load angular more than once."):(gs(),th(nr),u(t).ready(function(){ds(t,ie)}))}(window,document);window.angular.$$csp()||window.angular.element(document).find("head").prepend('<style type="text/css">@charset "UTF-8";[ng\\:cloak],[ng-cloak],[data-ng-cloak],[x-ng-cloak],.ng-cloak,.x-ng-cloak,.ng-hide:not(.ng-animate){display:none !important;}ng\\:form{display:block;}<\/style>'),function(n,t,i){"use strict";function k(n){var i=[];return o(i,t.noop).chars(n),i.join("")}function r(n){var i={},t;for(n=n.split(","),t=0;t<n.length;t++)i[n[t]]=!0;return i}function d(n,i){function k(n,r,e,s){if(r=t.lowercase(r),v[r])for(;u.last()&&y[u.last()];)o("",u.last());a[r]&&u.last()==r&&o("",r);(s=l[r]||!!s)||u.push(r);var h={};e.replace(nt,function(n,t,i,r,u){h[t]=f(i||r||u||"")});i.start&&i.start(r,h,s)}function o(n,r){var f=0,e;if(r=t.lowercase(r))for(f=u.length-1;0<=f&&u[f]!=r;f--);if(0<=f){for(e=u.length-1;e>=f;e--)i.end&&i.end(u[e]);u.length=f}}"string"!=typeof n&&(n=null===n||"undefined"==typeof n?"":""+n);var r,e,u=[],b=n,w;for(u.last=function(){return u[u.length-1]};n;){if(w="",e=!0,u.last()&&p[u.last()]?(n=n.replace(RegExp("(.*)<\\s*\\/\\s*"+u.last()+"[^>]*>","i"),function(n,t){return t=t.replace(rt,"$1").replace(ut,"$1"),i.chars&&i.chars(f(t)),""}),o("",u.last())):(0===n.indexOf("<!--")?(r=n.indexOf("--",4),0<=r&&n.lastIndexOf("-->",r)===r&&(i.comment&&i.comment(n.substring(4,r)),n=n.substring(r+3),e=!1)):c.test(n)?(r=n.match(c))&&(n=n.replace(r[0],""),e=!1):it.test(n)?(r=n.match(h))&&(n=n.substring(r[0].length),r[0].replace(h,o),e=!1):tt.test(n)&&((r=n.match(s))?(r[4]&&(n=n.substring(r[0].length),r[0].replace(s,k)),e=!1):(w+="<",n=n.substring(1))),e&&(r=n.indexOf("<"),w+=0>r?n:n.substring(0,r),n=0>r?"":n.substring(r),i.chars&&i.chars(f(w)))),n==b)throw g("badparse",n);b=n}o()}function f(n){var t,i;return n?(t=st.exec(n),n=t[1],i=t[3],(t=t[2])&&(u.innerHTML=t.replace(/</g,"&lt;"),t="textContent"in u?u.textContent:u.innerText),n+t+i):""}function e(n){return n.replace(/&/g,"&amp;").replace(ft,function(n){var t=n.charCodeAt(0);return n=n.charCodeAt(1),"&#"+(1024*(t-55296)+(n-56320)+65536)+";"}).replace(et,function(n){return"&#"+n.charCodeAt(0)+";"}).replace(/</g,"&lt;").replace(/>/g,"&gt;")}function o(n,i){var u=!1,r=t.bind(n,n.push);return{start:function(n,f,o){n=t.lowercase(n);!u&&p[n]&&(u=n);u||!0!==w[n]||(r("<"),r(n),t.forEach(f,function(u,f){var o=t.lowercase(f),s="img"===n&&"src"===o||"background"===o;!0===ot[o]&&(!0!==b[o]||i(u,s))&&(r(" "),r(f),r('="'),r(e(u)),r('"'))}),r(o?"/>":">"))},end:function(n){n=t.lowercase(n);u||!0!==w[n]||(r("<\/"),r(n),r(">"));n==u&&(u=!1)},chars:function(n){u||r(e(n))}}}var g=t.$$minErr("$sanitize"),s=/^<((?:[a-zA-Z])[\w:-]*)((?:\s+[\w:-]+(?:\s*=\s*(?:(?:"[^"]*")|(?:'[^']*')|[^>\s]+))?)*)\s*(\/?)\s*(>?)/,h=/^<\/\s*([\w:-]+)[^>]*>/,nt=/([\w:-]+)(?:\s*=\s*(?:(?:"((?:[^"])*)")|(?:'((?:[^'])*)')|([^>\s]+)))?/g,tt=/^</,it=/^<\//,rt=/\x3c!--(.*?)--\x3e/g,c=/<!DOCTYPE([^>]*?)>/i,ut=/<!\[CDATA\[(.*?)]]\x3e/g,ft=/[\uD800-\uDBFF][\uDC00-\uDFFF]/g,et=/([^\#-~| |!])/g,l=r("area,br,col,hr,img,wbr");n=r("colgroup,dd,dt,li,p,tbody,td,tfoot,th,thead,tr");i=r("rp,rt");var a=t.extend({},i,n),v=t.extend({},n,r("address,article,aside,blockquote,caption,center,del,dir,div,dl,figure,figcaption,footer,h1,h2,h3,h4,h5,h6,header,hgroup,hr,ins,map,menu,nav,ol,pre,script,section,table,ul")),y=t.extend({},i,r("a,abbr,acronym,b,bdi,bdo,big,br,cite,code,del,dfn,em,font,i,img,ins,kbd,label,map,mark,q,ruby,rp,rt,s,samp,small,span,strike,strong,sub,sup,time,tt,u,var")),p=r("script,style"),w=t.extend({},l,v,y,a),b=r("background,cite,href,longdesc,src,usemap"),ot=t.extend({},b,r("abbr,align,alt,axis,bgcolor,border,cellpadding,cellspacing,class,clear,color,cols,colspan,compact,coords,dir,face,headers,height,hreflang,hspace,ismap,lang,language,nohref,nowrap,rel,rev,rows,rowspan,rules,scope,scrolling,shape,size,span,start,summary,target,title,type,valign,value,vspace,width")),u=document.createElement("pre"),st=/^(\s*)([\s\S]*?)(\s*)$/;t.module("ngSanitize",[]).provider("$sanitize",function(){this.$get=["$$sanitizeUri",function(n){return function(t){var i=[];return d(t,o(i,function(t,i){return!/^unsafe/.test(n(t,i))})),i.join("")}}]});t.module("ngSanitize").filter("linky",["$sanitize",function(n){var i=/((ftp|https?):\/\/|(mailto:)?[A-Za-z0-9._%+-]+@)\S*[^\s.;,(){}<>]/,r=/^mailto:/;return function(u,f){function c(n){n&&e.push(k(n))}function a(n,i){e.push("<a ");t.isDefined(f)&&(e.push('target="'),e.push(f),e.push('" '));e.push('href="');e.push(n);e.push('">');c(i);e.push("<\/a>")}if(!u)return u;for(var o,s=u,e=[],h,l;o=s.match(i);)h=o[0],o[2]==o[3]&&(h="mailto:"+h),l=o.index,c(s.substr(0,l)),a(h,o[0].replace(r,"")),s=s.substring(l+o[0].length);return c(s),n(e.join(""))}}])}(window,window.angular),function(n,t,i){"use strict";t.module("ngCookies",["ng"]).factory("$cookies",["$rootScope","$browser",function(n,r){var u={},f={},e,o=!1,s=t.copy,h=t.isUndefined;return r.addPollFn(function(){var t=r.cookies();e!=t&&(e=t,s(t,f),s(t,u),o&&n.$apply())})(),o=!0,n.$watch(function(){var n,e,o;for(n in f)h(u[n])&&r.cookies(n,i);for(n in u)e=u[n],t.isString(e)||(e=""+e,u[n]=e),e!==f[n]&&(r.cookies(n,e),o=!0);if(o)for(n in e=r.cookies(),u)u[n]!==e[n]&&(h(e[n])?delete u[n]:u[n]=e[n])}),u}]).factory("$cookieStore",["$cookies",function(n){return{get:function(i){return(i=n[i])?t.fromJson(i):i},put:function(i,r){n[i]=t.toJson(r)},remove:function(t){delete n[t]}}}])}(window,window.angular),function(n,t){t.module("angular-md5",["gdi2290.md5"]);t.module("ngMd5",["gdi2290.md5"]);t.module("gdi2290.md5",["gdi2290.gravatar-filter","gdi2290.md5-service","gdi2290.md5-filter"]);t.module("gdi2290.gravatar-filter",[]).filter("gravatar",["md5",function(n){var t={};return function(i,r){return t[i]||(r=r?n.createHash(r.toString().toLowerCase()):"",t[i]=i?n.createHash(i.toString().toLowerCase()):r),t[i]}}]);t.module("gdi2290.md5-filter",[]).filter("md5",["md5",function(n){return function(t){return t?n.createHash(t.toString().toLowerCase()):t}}]);t.module("gdi2290.md5-service",[]).factory("md5",[function(){return{createHash:function(n){var ht,a=function(n,t){return n<<t|n>>>32-t},o=function(n,t){var f,e,r,u,i;return(r=n&2147483648,u=t&2147483648,f=n&1073741824,e=t&1073741824,i=(n&1073741823)+(t&1073741823),f&e)?i^2147483648^r^u:f|e?i&1073741824?i^3221225472^r^u:i^1073741824^r^u:i^r^u},pt=function(n,t,i){return n&t|~n&i},wt=function(n,t,i){return n&i|t&~i},bt=function(n,t,i){return n^t^i},kt=function(n,t,i){return t^(n|~i)},s=function(n,t,i,r,u,f,e){return n=o(n,o(o(pt(t,i,r),u),e)),o(a(n,f),t)},h=function(n,t,i,r,u,f,e){return n=o(n,o(o(wt(t,i,r),u),e)),o(a(n,f),t)},c=function(n,t,i,r,u,f,e){return n=o(n,o(o(bt(t,i,r),u),e)),o(a(n,f),t)},l=function(n,t,i,r,u,f,e){return n=o(n,o(o(kt(t,i,r),u),e)),o(a(n,f),t)},dt=function(n){for(var r,u=n.length,o=u+8,s=(o-o%64)/64,e=(s+1)*16,i=new Array(e-1),f=0,t=0;t<u;)r=(t-t%4)/4,f=t%4*8,i[r]=i[r]|n.charCodeAt(t)<<f,t++;return r=(t-t%4)/4,f=t%4*8,i[r]=i[r]|128<<f,i[e-2]=u<<3,i[e-1]=u>>>29,i},v=function(n){for(var i="",r="",u,t=0;t<=3;t++)u=n>>>t*8&255,r="0"+u.toString(16),i=i+r.substr(r.length-2,2);return i},e=[],f,ct,lt,at,vt,t,i,r,u,y=7,p=12,w=17,b=22,k=5,d=9,g=14,nt=20,tt=4,it=11,rt=16,ut=23,ft=6,et=10,ot=15,st=21,yt;for(e=dt(n),t=1732584193,i=4023233417,r=2562383102,u=271733878,ht=e.length,f=0;f<ht;f+=16)ct=t,lt=i,at=r,vt=u,t=s(t,i,r,u,e[f+0],y,3614090360),u=s(u,t,i,r,e[f+1],p,3905402710),r=s(r,u,t,i,e[f+2],w,606105819),i=s(i,r,u,t,e[f+3],b,3250441966),t=s(t,i,r,u,e[f+4],y,4118548399),u=s(u,t,i,r,e[f+5],p,1200080426),r=s(r,u,t,i,e[f+6],w,2821735955),i=s(i,r,u,t,e[f+7],b,4249261313),t=s(t,i,r,u,e[f+8],y,1770035416),u=s(u,t,i,r,e[f+9],p,2336552879),r=s(r,u,t,i,e[f+10],w,4294925233),i=s(i,r,u,t,e[f+11],b,2304563134),t=s(t,i,r,u,e[f+12],y,1804603682),u=s(u,t,i,r,e[f+13],p,4254626195),r=s(r,u,t,i,e[f+14],w,2792965006),i=s(i,r,u,t,e[f+15],b,1236535329),t=h(t,i,r,u,e[f+1],k,4129170786),u=h(u,t,i,r,e[f+6],d,3225465664),r=h(r,u,t,i,e[f+11],g,643717713),i=h(i,r,u,t,e[f+0],nt,3921069994),t=h(t,i,r,u,e[f+5],k,3593408605),u=h(u,t,i,r,e[f+10],d,38016083),r=h(r,u,t,i,e[f+15],g,3634488961),i=h(i,r,u,t,e[f+4],nt,3889429448),t=h(t,i,r,u,e[f+9],k,568446438),u=h(u,t,i,r,e[f+14],d,3275163606),r=h(r,u,t,i,e[f+3],g,4107603335),i=h(i,r,u,t,e[f+8],nt,1163531501),t=h(t,i,r,u,e[f+13],k,2850285829),u=h(u,t,i,r,e[f+2],d,4243563512),r=h(r,u,t,i,e[f+7],g,1735328473),i=h(i,r,u,t,e[f+12],nt,2368359562),t=c(t,i,r,u,e[f+5],tt,4294588738),u=c(u,t,i,r,e[f+8],it,2272392833),r=c(r,u,t,i,e[f+11],rt,1839030562),i=c(i,r,u,t,e[f+14],ut,4259657740),t=c(t,i,r,u,e[f+1],tt,2763975236),u=c(u,t,i,r,e[f+4],it,1272893353),r=c(r,u,t,i,e[f+7],rt,4139469664),i=c(i,r,u,t,e[f+10],ut,3200236656),t=c(t,i,r,u,e[f+13],tt,681279174),u=c(u,t,i,r,e[f+0],it,3936430074),r=c(r,u,t,i,e[f+3],rt,3572445317),i=c(i,r,u,t,e[f+6],ut,76029189),t=c(t,i,r,u,e[f+9],tt,3654602809),u=c(u,t,i,r,e[f+12],it,3873151461),r=c(r,u,t,i,e[f+15],rt,530742520),i=c(i,r,u,t,e[f+2],ut,3299628645),t=l(t,i,r,u,e[f+0],ft,4096336452),u=l(u,t,i,r,e[f+7],et,1126891415),r=l(r,u,t,i,e[f+14],ot,2878612391),i=l(i,r,u,t,e[f+5],st,4237533241),t=l(t,i,r,u,e[f+12],ft,1700485571),u=l(u,t,i,r,e[f+3],et,2399980690),r=l(r,u,t,i,e[f+10],ot,4293915773),i=l(i,r,u,t,e[f+1],st,2240044497),t=l(t,i,r,u,e[f+8],ft,1873313359),u=l(u,t,i,r,e[f+15],et,4264355552),r=l(r,u,t,i,e[f+6],ot,2734768916),i=l(i,r,u,t,e[f+13],st,1309151649),t=l(t,i,r,u,e[f+4],ft,4149444226),u=l(u,t,i,r,e[f+11],et,3174756917),r=l(r,u,t,i,e[f+2],ot,718787259),i=l(i,r,u,t,e[f+9],st,3951481745),t=o(t,ct),i=o(i,lt),r=o(r,at),u=o(u,vt);return yt=v(t)+v(i)+v(r)+v(u),yt.toLowerCase()}}}])}(this,this.angular,void 0);angular.module("ui.alias",[]).config(["$compileProvider","uiAliasConfig",function(n,t){t=t||{};angular.forEach(t,function(t,i){angular.isString(t)&&(t={replace:!0,template:t});n.directive(i,function(){return t})})}]);angular.module("ui.event",[]).directive("uiEvent",["$parse",function(n){return function(t,i,r){var u=t.$eval(r.uiEvent);angular.forEach(u,function(r,u){var f=n(r);i.bind(u,function(n){var i=Array.prototype.slice.call(arguments);i=i.splice(1);f(t,{$event:n,$params:i});t.$$phase||t.$apply()})})}}]);angular.module("ui.format",[]).filter("format",function(){return function(n,t){var i=n,r,u;return angular.isString(i)&&void 0!==t&&((angular.isArray(t)||angular.isObject(t)||(t=[t]),angular.isArray(t))?(r=t.length,u=function(n,i){return i=parseInt(i,10),i>=0&&r>i?t[i]:n},i=i.replace(/\$([0-9]+)/g,u)):angular.forEach(t,function(n,t){i=i.split(":"+t).join(n)})),i}});angular.module("ui.highlight",[]).filter("highlight",function(){return function(n,t,i){return t||angular.isNumber(t)?(n=n.toString(),t=t.toString(),i?n.split(t).join('<span class="ui-match">'+t+"<\/span>"):n.replace(new RegExp(t,"gi"),'<span class="ui-match">$&<\/span>')):n}});angular.module("ui.include",[]).directive("uiInclude",["$http","$templateCache","$anchorScroll","$compile",function(n,t,i,r){return{restrict:"ECA",terminal:!0,compile:function(u,f){var o=f.uiInclude||f.src,s=f.fragment||"",h=f.onload||"",e=f.autoscroll;return function(u,f){function a(){var a=++l,y=u.$eval(o),p=u.$eval(s);y?n.get(y,{cache:t}).success(function(n){if(a===l){c&&c.$destroy();c=u.$new();var t;t=p?angular.element("<div/>").html(n).find(p):angular.element("<div/>").html(n).contents();f.html(t);r(t)(c);!angular.isDefined(e)||e&&!u.$eval(e)||i();c.$emit("$includeContentLoaded");u.$eval(h)}}).error(function(){a===l&&v()}):v()}var c,l=0,v=function(){c&&(c.$destroy(),c=null);f.html("")};u.$watch(s,a);u.$watch(o,a)}}}}]);angular.module("ui.indeterminate",[]).directive("uiIndeterminate",[function(){return{compile:function(n,t){return t.type&&"checkbox"===t.type.toLowerCase()?function(n,t,i){n.$watch(i.uiIndeterminate,function(n){t[0].indeterminate=!!n})}:angular.noop}}}]);angular.module("ui.inflector",[]).filter("inflector",function(){function n(n){return n.replace(/^([a-z])|\s+([a-z])/g,function(n){return n.toUpperCase()})}function t(n,t){return n.replace(/[A-Z]/g,function(n){return t+n})}var i={humanize:function(i){return n(t(i," ").split("_").join(" "))},underscore:function(n){return n.substr(0,1).toLowerCase()+t(n.substr(1),"_").toLowerCase().split(" ").join("_")},variable:function(t){return t.substr(0,1).toLowerCase()+n(t.split("_").join(" ")).substr(1).split(" ").join("")}};return function(n,t){return t!==!1&&angular.isString(n)?(t=t||"humanize",i[t](n)):n}});angular.module("ui.jq",[]).value("uiJqConfig",{}).directive("uiJq",["uiJqConfig","$timeout",function(n,t){return{restrict:"A",compile:function(i,r){if(!angular.isFunction(i[r.uiJq]))throw new Error('ui-jq: The "'+r.uiJq+'" function does not exist');var u=n&&n[r.uiJq];return function(n,i,r){function e(){t(function(){i[r.uiJq].apply(i,f)},0,!1)}var f=[];r.uiOptions?(f=n.$eval("["+r.uiOptions+"]"),angular.isObject(u)&&angular.isObject(f[0])&&(f[0]=angular.extend({},u,f[0]))):u&&(f=[u]);r.ngModel&&i.is("select,input,textarea")&&i.bind("change",function(){i.trigger("input")});r.uiRefresh&&n.$watch(r.uiRefresh,function(){e()});e()}}}}]);angular.module("ui.keypress",[]).factory("keypressHelper",["$parse",function(n){var t={8:"backspace",9:"tab",13:"enter",27:"esc",32:"space",33:"pageup",34:"pagedown",35:"end",36:"home",37:"left",38:"up",39:"right",40:"down",45:"insert",46:"delete"},i=function(n){return n.charAt(0).toUpperCase()+n.slice(1)};return function(r,u,f,e){var o,s=[];o=u.$eval(e["ui"+i(r)]);angular.forEach(o,function(t,i){var r,u;u=n(t);angular.forEach(i.split(" "),function(n){r={expression:u,keys:{}};angular.forEach(n.split("-"),function(n){r.keys[n]=!0});s.push(r)})});f.bind(r,function(n){var e=!(!n.metaKey||n.ctrlKey),o=!!n.altKey,h=!!n.ctrlKey,f=!!n.shiftKey,i=n.keyCode;"keypress"===r&&!f&&i>=97&&122>=i&&(i-=32);angular.forEach(s,function(r){var s=r.keys[t[i]]||r.keys[i.toString()],c=!!r.keys.meta,l=!!r.keys.alt,a=!!r.keys.ctrl,v=!!r.keys.shift;s&&c===e&&l===o&&a===h&&v===f&&u.$apply(function(){r.expression(u,{$event:n})})})})}}]);angular.module("ui.keypress").directive("uiKeydown",["keypressHelper",function(n){return{link:function(t,i,r){n("keydown",t,i,r)}}}]);angular.module("ui.keypress").directive("uiKeypress",["keypressHelper",function(n){return{link:function(t,i,r){n("keypress",t,i,r)}}}]);angular.module("ui.keypress").directive("uiKeyup",["keypressHelper",function(n){return{link:function(t,i,r){n("keyup",t,i,r)}}}]);angular.module("ui.mask",[]).value("uiMaskConfig",{maskDefinitions:{9:/\d/,A:/[a-zA-Z]/,"*":/[a-zA-Z0-9]/}}).directive("uiMask",["uiMaskConfig",function(n){return{priority:100,require:"ngModel",restrict:"A",compile:function(){var t=n;return function(n,i,r,u){function lt(n){return angular.isDefined(n)?(gt(n),l?(pt(),wt(),!0):et()):et()}function at(n){angular.isDefined(n)&&(s=n,l&&c())}function vt(n){return l?(f=a(n||""),o=b(f),u.$setValidity("mask",o),o&&f.length?v(f):void 0):n}function yt(n){return l?(f=a(n||""),o=b(f),u.$viewValue=f.length?v(f):"",u.$setValidity("mask",o),""===f&&void 0!==u.$error.required&&u.$setValidity("required",!1),o?f:void 0):n}function et(){return l=!1,bt(),angular.isDefined(ht)?i.attr("placeholder",ht):i.removeAttr("placeholder"),angular.isDefined(ct)?i.attr("maxlength",ct):i.removeAttr("maxlength"),i.val(u.$modelValue),u.$viewValue=u.$modelValue,!1}function pt(){f=ut=a(u.$modelValue||"");it=rt=v(f);o=b(f);var n=o&&f.length?it:"";r.maxlength&&i.attr("maxlength",2*e[e.length-1]);i.attr("placeholder",s);i.val(n);u.$viewValue=n}function wt(){w||(i.bind("blur",ot),i.bind("mousedown mouseup",y),i.bind("input keyup click focus",c),w=!0)}function bt(){w&&(i.unbind("blur",ot),i.unbind("mousedown",y),i.unbind("mouseup",y),i.unbind("input",c),i.unbind("keyup",c),i.unbind("click",c),i.unbind("focus",c),w=!1)}function b(n){return n.length?n.length>=tt:!0}function a(n){var i="",t=nt.slice();return n=n.toString(),angular.forEach(st,function(t){n=n.replace(t,"")}),angular.forEach(n.split(""),function(n){t.length&&t[0].test(n)&&(i+=n,t.shift())}),i}function v(n){var t="",i=e.slice();return angular.forEach(s.split(""),function(r,u){n.length&&u===i[0]?(t+=n.charAt(0)||"_",n=n.substr(1),i.shift()):t+=r}),t}function kt(n){var t=r.placeholder;return"undefined"!=typeof t&&t[n]?t[n]:"_"}function dt(){return s.replace(/[_]+/g,"_").replace(/([^_]+)([a-zA-Z0-9])([^_])/g,"$1$2_$3").split("_")}function gt(n){var t=0,i,r;(e=[],nt=[],s="","string"==typeof n)&&(tt=0,i=!1,r=n.split(""),angular.forEach(r,function(n,r){h.maskDefinitions[n]?(e.push(t),s+=kt(r),nt.push(h.maskDefinitions[n]),t++,i||tt++):"?"===n?i=!0:(s+=n,t++)}));e.push(e.slice().pop()+1);st=dt();l=e.length>1?!0:!1}function ot(){ft=0;p=0;o&&0!==f.length||(it="",i.val(""),n.$apply(function(){u.$setViewValue("")}))}function y(n){"mousedown"===n.type?i.bind("mouseout",k):i.unbind("mouseout",k)}function k(){p=g(this);i.unbind("mouseout",k)}function c(t){var f,s,tt;if(t=t||{},f=t.which,s=t.type,16!==f&&91!==f){var b,c=i.val(),w=rt,o=a(c),lt=ut,it=!1,r=ni(this)||0,et=ft||0,ot=r-et,h=e[0],l=e[o.length]||e.slice().shift(),y=p||0,at=g(this)>0,st=y>0,ht=c.length>w.length||y&&c.length>w.length-y,k=c.length<w.length||y&&c.length===w.length-y,vt=f>=37&&40>=f&&t.shiftKey,yt=37===f,ct=8===f||"keyup"!==s&&k&&-1===ot,pt=46===f||"keyup"!==s&&k&&0===ot&&!st,nt=(yt||ct||"click"===s)&&r>h;if(p=g(this),!vt&&(!at||"click"!==s&&"keyup"!==s)){if("input"===s&&k&&!st&&o===lt){for(;ct&&r>h&&!d(r);)r--;for(;pt&&l>r&&-1===e.indexOf(r);)r++;tt=e.indexOf(r);o=o.substring(0,tt)+o.substring(tt+1);it=!0}for(b=v(o),rt=b,ut=o,i.val(b),it&&n.$apply(function(){u.$setViewValue(o)}),ht&&h>=r&&(r=h+1),nt&&r--,r=r>l?l:h>r?h:r;!d(r)&&r>h&&l>r;)r+=nt?-1:1;(nt&&l>r||ht&&!d(et))&&r++;ft=r;ti(this,r)}}}function d(n){return e.indexOf(n)>-1}function ni(n){if(!n)return 0;if(void 0!==n.selectionStart)return n.selectionStart;if(document.selection){n.focus();var t=document.selection.createRange();return t.moveStart("character",-n.value.length),t.text.length}return 0}function ti(n,t){if(!n)return 0;if(0!==n.offsetWidth&&0!==n.offsetHeight)if(n.setSelectionRange)n.focus(),n.setSelectionRange(t,t);else if(n.createTextRange){var i=n.createTextRange();i.collapse(!0);i.moveEnd("character",t);i.moveStart("character",t);i.select()}}function g(n){return n?void 0!==n.selectionStart?n.selectionEnd-n.selectionStart:document.selection?document.selection.createRange().text.length:0:0}var e,nt,s,st,tt,f,it,o,rt,ut,ft,p,l=!1,w=!1,ht=r.placeholder,ct=r.maxlength,h={};r.uiOptions?(h=n.$eval("["+r.uiOptions+"]"),angular.isObject(h[0])&&(h=function(n,t){for(var i in n)Object.prototype.hasOwnProperty.call(n,i)&&(t[i]?angular.extend(t[i],n[i]):t[i]=angular.copy(n[i]));return t}(t,h[0]))):h=t;r.$observe("uiMask",lt);r.$observe("placeholder",at);u.$formatters.push(vt);u.$parsers.push(yt);i.bind("mousedown mouseup",y);Array.prototype.indexOf||(Array.prototype.indexOf=function(n){var u,r,t,i;if(null===this)throw new TypeError;if((u=Object(this),r=u.length>>>0,0===r)||(t=0,arguments.length>1&&(t=Number(arguments[1]),t!==t?t=0:0!==t&&1/0!==t&&t!==-1/0&&(t=(t>0||-1)*Math.floor(Math.abs(t)))),t>=r))return-1;for(i=t>=0?t:Math.max(r-Math.abs(t),0);r>i;i++)if(i in u&&u[i]===n)return i;return-1})}}}}]);angular.module("ui.reset",[]).value("uiResetConfig",null).directive("uiReset",["uiResetConfig",function(n){var t=null;return void 0!==n&&(t=n),{require:"ngModel",link:function(n,i,r,u){var f;f=angular.element('<a class="ui-reset" />');i.wrap('<span class="ui-resetwrap" />').after(f);f.bind("click",function(i){i.preventDefault();n.$apply(function(){u.$setViewValue(r.uiReset?n.$eval(r.uiReset):t);u.$render()})})}}}]);angular.module("ui.route",[]).directive("uiRoute",["$location","$parse",function(n,t){return{restrict:"AC",scope:!0,compile:function(i,r){var u;if(r.uiRoute)u="uiRoute";else if(r.ngHref)u="ngHref";else{if(!r.href)throw new Error("uiRoute missing a route or href property on "+i[0]);u="href"}return function(i,r,f){function o(t){var r=t.indexOf("#");r>-1&&(t=t.substr(r+1));(e=function(){h(i,n.path().indexOf(t)>-1)})()}function s(t){var r=t.indexOf("#");r>-1&&(t=t.substr(r+1));(e=function(){var r=new RegExp("^"+t+"$",["i"]);h(i,r.test(n.path()))})()}var h=t(f.ngModel||f.routeModel||"$uiRoute").assign,e=angular.noop;switch(u){case"uiRoute":f.uiRoute?s(f.uiRoute):f.$observe("uiRoute",s);break;case"ngHref":f.ngHref?o(f.ngHref):f.$observe("ngHref",o);break;case"href":o(f.href)}i.$on("$routeChangeSuccess",function(){e()});i.$on("$stateChangeSuccess",function(){e()})}}}}]);angular.module("ui.scroll.jqlite",["ui.scroll"]).service("jqLiteExtras",["$log","$window",function(n,t){return{registerFor:function(n){var i,u,s,r,f,e,o;return u=angular.element.prototype.css,n.prototype.css=function(n,t){var i,r;return r=this,i=r[0],i&&3!==i.nodeType&&8!==i.nodeType&&i.style?u.call(r,n,t):void 0},e=function(n){return n&&n.document&&n.location&&n.alert&&n.setInterval},o=function(n,t,i){var r,u,s,o,f;return r=n[0],f={top:["scrollTop","pageYOffset","scrollLeft"],left:["scrollLeft","pageXOffset","scrollTop"]}[t],u=f[0],o=f[1],s=f[2],e(r)?angular.isDefined(i)?r.scrollTo(n[s].call(n),i):o in r?r[o]:r.document.documentElement[u]:angular.isDefined(i)?r[u]=i:r[u]},t.getComputedStyle?(r=function(n){return t.getComputedStyle(n,null)},i=function(n,t){return parseFloat(t)}):(r=function(n){return n.currentStyle},i=function(n,t){var f,e,o,s,i,u,r;return f=/[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source,s=new RegExp("^("+f+")(?!px)[a-z%]+$","i"),s.test(t)?(r=n.style,e=r.left,i=n.runtimeStyle,u=i&&i.left,i&&(i.left=r.left),r.left=t,o=r.pixelLeft,r.left=e,u&&(i.left=u),o):parseFloat(t)}),s=function(n,t){var f,c,l,a,v,u,o,s,y,p,w,b,h;return e(n)?(f=document.documentElement[{height:"clientHeight",width:"clientWidth"}[t]],{base:f,padding:0,border:0,margin:0}):(h={width:[n.offsetWidth,"Left","Right"],height:[n.offsetHeight,"Top","Bottom"]}[t],f=h[0],o=h[1],s=h[2],u=r(n),w=i(n,u["padding"+o])||0,b=i(n,u["padding"+s])||0,c=i(n,u["border"+o+"Width"])||0,l=i(n,u["border"+s+"Width"])||0,a=u["margin"+o],v=u["margin"+s],y=i(n,a)||0,p=i(n,v)||0,{base:f,padding:w+b,border:c+l,margin:y+p})},f=function(n,t,i){var e,u,f;return u=s(n,t),u.base>0?{base:u.base-u.padding-u.border,outer:u.base,outerfull:u.base+u.margin}[i]:(e=r(n),f=e[t],(0>f||null===f)&&(f=n.style[t]||0),f=parseFloat(f)||0,{base:f-u.padding-u.border,outer:f,outerfull:f+u.padding+u.border+u.margin}[i])},angular.forEach({before:function(n){var t,u,f,e,o,i,r;if(o=this,u=o[0],e=o.parent(),t=e.contents(),t[0]===u)return e.prepend(n);for(f=i=1,r=t.length-1;r>=1?r>=i:i>=r;f=r>=1?++i:--i)if(t[f]===u)return void angular.element(t[f-1]).after(n);throw new Error("invalid DOM structure "+u.outerHTML);},height:function(n){var t;return t=this,angular.isDefined(n)?(angular.isNumber(n)&&(n+="px"),u.call(t,"height",n)):f(this[0],"height","base")},outerHeight:function(n){return f(this[0],"height",n?"outerfull":"outer")},offset:function(n){var r,u,t,i,f,e;return f=this,arguments.length?void 0===n?f:n:(r={top:0,left:0},i=f[0],(u=i&&i.ownerDocument)?(t=u.documentElement,i.getBoundingClientRect&&(r=i.getBoundingClientRect()),e=u.defaultView||u.parentWindow,{top:r.top+(e.pageYOffset||t.scrollTop)-(t.clientTop||0),left:r.left+(e.pageXOffset||t.scrollLeft)-(t.clientLeft||0)}):void 0)},scrollTop:function(n){return o(this,"top",n)},scrollLeft:function(n){return o(this,"left",n)}},function(t,i){if(!n.prototype[i])return n.prototype[i]=t})}}}]).run(["$log","$window","jqLiteExtras",function(n,t,i){if(!t.jQuery)return i.registerFor(angular.element)}]);angular.module("ui.scroll",[]).directive("ngScrollViewport",["$log",function(){return{controller:["$scope","$element",function(n,t){return t}]}}]).directive("ngScroll",["$log","$injector","$rootScope","$timeout",function(n,t,i,r){return{require:["?^ngScrollViewport"],transclude:"element",priority:1e3,terminal:!0,compile:function(u,f,e){return function(f,o,s,h){var l,k,dt,tt,et,c,it,w,gt,ni,p,ot,ct,rt,ut,lt,ft,a,b,at,d,vt,yt,st,v,g,ti,nt,pt,wt,ii,bt,kt,ri,ht,y;if(st=s.ngScroll.match(/^\s*(\w+)\s+in\s+(\w+)\s*$/),!st)throw new Error('Expected ngScroll in form of "item_ in _datasource_" but got "'+s.ngScroll+'"');if(vt=st[1],ot=st[2],at=function(n){return angular.isObject(n)&&n.get&&angular.isFunction(n.get)},p=f[ot],!at(p)&&(p=t.get(ot),!at(p)))throw new Error(ot+" is not a valid datasource");return w=Math.max(3,+s.bufferSize||10),it=function(){return y.height()*Math.max(.1,+s.padding||.1)},ii=function(n){return n[0].scrollHeight||n[0].document.documentElement.scrollHeight},l=null,e(ri=f.$new(),function(n){var i,e,o,t,r,f;if(t=n[0].localName,"dl"===t)throw new Error("ng-scroll directive does not support <"+n[0].localName+"> as a repeating tag: "+n[0].outerHTML);return"li"!==t&&"tr"!==t&&(t="div"),f=h[0]||angular.element(window),f.css({"overflow-y":"auto",display:"block"}),o=function(n){var i,t,r;switch(n){case"tr":return r=angular.element("<table><tr><td><div><\/div><\/td><\/tr><\/table>"),i=r.find("div"),t=r.find("tr"),t.paddingHeight=function(){return i.height.apply(i,arguments)},t;default:return t=angular.element("<"+n+"><\/"+n+">"),t.paddingHeight=t.height,t}},e=function(n,t,i){return t[{top:"before",bottom:"after"}[i]](n),{paddingHeight:function(){return n.paddingHeight.apply(n,arguments)},insert:function(t){return n[{top:"after",bottom:"before"}[i]](t)}}},r=e(o(t),u,"top"),i=e(o(t),u,"bottom"),ri.$destroy(),l={viewport:f,topPadding:r.paddingHeight,bottomPadding:i.paddingHeight,append:i.insert,prepend:r.insert,bottomDataPos:function(){return ii(f)-i.paddingHeight()},topDataPos:function(){return r.paddingHeight()}}}),y=l.viewport,a=1,v=1,c=[],g=[],rt=!1,tt=!1,yt=p.loading||function(){},d=!1,nt=function(n,t){for(var i,r=i=n;t>=n?t>i:i>t;r=t>=n?++i:--i)c[r].scope.$destroy(),c[r].element.remove();return c.splice(n,t-n)},ti=function(){return a=1,v=1,nt(0,c.length),l.topPadding(0),l.bottomPadding(0),g=[],rt=!1,tt=!1,k(!1)},et=function(){return y.scrollTop()+y.height()},ht=function(){return y.scrollTop()},bt=function(){return!rt&&l.bottomDataPos()<et()+it()},gt=function(){var r,u,f,t,i,e;for(r=0,t=0,u=i=e=c.length-1;(0>=e?0>=i:i>=0)&&(f=c[u].element.outerHeight(!0),l.bottomDataPos()-r-f>et()+it());u=0>=e?++i:--i)r+=f,t++,rt=!1;if(t>0)return(l.bottomPadding(l.bottomPadding()+r),nt(c.length-t,c.length),v-=t,n.log("clipped off bottom "+t+" bottom padding "+l.bottomPadding()))},kt=function(){return!tt&&l.topDataPos()>ht()-it()},ni=function(){var f,u,t,i,r,e;for(i=0,t=0,r=0,e=c.length;e>r&&(f=c[r],u=f.element.outerHeight(!0),l.topDataPos()+i+u<ht()-it());r++)i+=u,t++,tt=!1;if(t>0)return(l.topPadding(l.topPadding()+i),nt(0,t),a+=t,n.log("clipped off top "+t+" top padding "+l.topPadding()))},ct=function(n,t){return d||(d=!0,yt(!0)),1===g.push(n)?lt(t):void 0},b=function(n,t){var i,u,r;return i=f.$new(),i[vt]=t,u=n>a,i.$index=n,u&&i.$index--,r={scope:i},e(i,function(t){return r.element=t,u?n===v?(l.append(t),c.push(r)):(c[n-a].element.after(t),c.splice(n-a+1,0,r)):(l.prepend(t),c.unshift(r))}),{appended:u,wrapper:r}},dt=function(n,t){var i;return n?l.bottomPadding(Math.max(0,l.bottomPadding()-t.element.outerHeight(!0))):(i=l.topPadding()-t.element.outerHeight(!0),i>=0?l.topPadding(i):y.scrollTop(y.scrollTop()+t.element.outerHeight(!0)))},k=function(t,i,u){var f;return f=function(){return n.log("top {actual="+l.topDataPos()+" visible from="+ht()+" bottom {visible through="+et()+" actual="+l.bottomDataPos()+"}"),bt()?ct(!0,t):kt()&&ct(!1,t),u?u():void 0},i?r(function(){for(var t,n=0,r=i.length;r>n;n++)t=i[n],dt(t.appended,t.wrapper);return f()}):f()},ft=function(n,t){return k(n,t,function(){return g.shift(),0===g.length?(d=!1,yt(!1)):lt(n)})},lt=function(t){var i;return i=g[0],i?c.length&&!bt()?ft(t):p.get(v,w,function(i){var f,u,r,e;if(u=[],0===i.length)rt=!0,l.bottomPadding(0),n.log("appended: requested "+w+" records starting from "+v+" recieved: eof");else{for(ni(),r=0,e=i.length;e>r;r++)f=i[r],u.push(b(++v,f));n.log("appended: requested "+w+" received "+i.length+" buffer size "+c.length+" first "+a+" next "+v)}return ft(t,u)}):c.length&&!kt()?ft(t):p.get(a-w,w,function(i){var u,f,r,e;if(f=[],0===i.length)tt=!0,l.topPadding(0),n.log("prepended: requested "+w+" records starting from "+(a-w)+" recieved: bof");else{for(gt(),u=r=e=i.length-1;0>=e?0>=r:r>=0;u=0>=e?++r:--r)f.unshift(b(--a,i[u]));n.log("prepended: requested "+w+" received "+i.length+" buffer size "+c.length+" first "+a+" next "+v)}return ft(t,f)})},pt=function(){if(!i.$$phase&&!d)return(k(!1),f.$apply())},y.bind("resize",pt),wt=function(){if(!i.$$phase&&!d)return(k(!0),f.$apply())},y.bind("scroll",wt),f.$watch(p.revision,function(){return ti()}),ut=p.scope?p.scope.$new():f.$new(),f.$on("$destroy",function(){return ut.$destroy(),y.unbind("resize",pt),y.unbind("scroll",wt)}),ut.$on("update.items",function(n,t,i){var u,f,r,e,o;if(angular.isFunction(t))for(f=function(n){return t(n.scope)},r=0,e=c.length;e>r;r++)u=c[r],f(u);else 0<=(o=t-a-1)&&o<c.length&&(c[t-a-1].scope[vt]=i);return null}),ut.$on("delete.items",function(n,t){var i,u,r,s,h,f,e,o,l,y,p,w;if(angular.isFunction(t)){for(r=[],f=0,l=c.length;l>f;f++)u=c[f],r.unshift(u);for(h=function(n){if(t(n.scope))return(nt(r.length-1-i,r.length-i),v--)},i=e=0,y=r.length;y>e;i=++e)s=r[i],h(s)}else 0<=(w=t-a-1)&&w<c.length&&(nt(t-a-1,t-a),v--);for(i=o=0,p=c.length;p>o;i=++o)u=c[i],u.scope.$index=a+i;return k(!1)}),ut.$on("insert.item",function(n,t,i){var r,u,f,h,l,e,o,s,y,p,w,d;if(u=[],angular.isFunction(t)){for(f=[],e=0,y=c.length;y>e;e++)i=c[e],f.unshift(i);for(l=function(n){var e,f,o,h,s;if(f=t(n.scope)){if(b=function(n,t){return b(n,t),v++},angular.isArray(f)){for(s=[],e=o=0,h=f.length;h>o;e=++o)i=f[e],s.push(u.push(b(r+e,i)));return s}return u.push(b(r,f))}},r=o=0,p=f.length;p>o;r=++o)h=f[r],l(h)}else 0<=(d=t-a-1)&&d<c.length&&(u.push(b(t,i)),v++);for(r=s=0,w=c.length;w>s;r=++s)i=c[r],i.scope.$index=a+r;return k(!1,u)})}}}}]);angular.module("ui.scrollfix",[]).directive("uiScrollfix",["$window",function(n){return{require:"^?uiScrollfixTarget",link:function(t,i,r,u){function e(){var t,u;angular.isDefined(n.pageYOffset)?t=n.pageYOffset:(u=document.compatMode&&"BackCompat"!==document.compatMode?document.documentElement:document.body,t=u.scrollTop);!i.hasClass("ui-scrollfix")&&t>r.uiScrollfix?i.addClass("ui-scrollfix"):i.hasClass("ui-scrollfix")&&t<r.uiScrollfix&&i.removeClass("ui-scrollfix")}var f=i[0].offsetTop,o=u&&u.$element||angular.element(n);r.uiScrollfix?"string"==typeof r.uiScrollfix&&("-"===r.uiScrollfix.charAt(0)?r.uiScrollfix=f-parseFloat(r.uiScrollfix.substr(1)):"+"===r.uiScrollfix.charAt(0)&&(r.uiScrollfix=f+parseFloat(r.uiScrollfix.substr(1)))):r.uiScrollfix=f;o.on("scroll",e);t.$on("$destroy",function(){o.off("scroll",e)})}}}]).directive("uiScrollfixTarget",[function(){return{controller:["$element",function(n){this.$element=n}]}}]);angular.module("ui.showhide",[]).directive("uiShow",[function(){return function(n,t,i){n.$watch(i.uiShow,function(n){n?t.addClass("ui-show"):t.removeClass("ui-show")})}}]).directive("uiHide",[function(){return function(n,t,i){n.$watch(i.uiHide,function(n){n?t.addClass("ui-hide"):t.removeClass("ui-hide")})}}]).directive("uiToggle",[function(){return function(n,t,i){n.$watch(i.uiToggle,function(n){n?t.removeClass("ui-hide").addClass("ui-show"):t.removeClass("ui-show").addClass("ui-hide")})}}]);angular.module("ui.unique",[]).filter("unique",["$parse",function(n){return function(t,i){if(i===!1)return t;if((i||angular.isUndefined(i))&&angular.isArray(t)){var r=[],f=angular.isString(i)?n(i):function(n){return n},u=function(n){return angular.isObject(n)?f(n):n};angular.forEach(t,function(n){for(var i=!1,t=0;t<r.length;t++)if(angular.equals(u(r[t]),u(n))){i=!0;break}i||r.push(n)});t=r}return t}}]);angular.module("ui.validate",[]).directive("uiValidate",function(){return{restrict:"A",require:"ngModel",link:function(n,t,i,r){function o(t){return angular.isString(t)?void n.$watch(t,function(){angular.forEach(u,function(n){n(r.$modelValue)})}):angular.isArray(t)?void angular.forEach(t,function(t){n.$watch(t,function(){angular.forEach(u,function(n){n(r.$modelValue)})})}):void(angular.isObject(t)&&angular.forEach(t,function(t,i){angular.isString(t)&&n.$watch(t,function(){u[i](r.$modelValue)});angular.isArray(t)&&angular.forEach(t,function(t){n.$watch(t,function(){u[i](r.$modelValue)})})}))}var e,u={},f=n.$eval(i.uiValidate);f&&(angular.isString(f)&&(f={validator:f}),angular.forEach(f,function(t,i){e=function(u){var f=n.$eval(t,{$value:u});return angular.isObject(f)&&angular.isFunction(f.then)?(f.then(function(){r.$setValidity(i,!0)},function(){r.$setValidity(i,!1)}),u):f?(r.$setValidity(i,!0),u):(r.$setValidity(i,!1),u)};u[i]=e;r.$formatters.push(e);r.$parsers.push(e)}),i.uiValidateWatch&&o(n.$eval(i.uiValidateWatch)))}}});angular.module("ui.utils",["ui.event","ui.format","ui.highlight","ui.include","ui.indeterminate","ui.inflector","ui.jq","ui.keypress","ui.mask","ui.reset","ui.route","ui.scrollfix","ui.scroll","ui.scroll.jqlite","ui.showhide","ui.unique","ui.validate"]);angular.module("ui.bootstrap",["ui.bootstrap.tpls","ui.bootstrap.transition","ui.bootstrap.collapse","ui.bootstrap.accordion","ui.bootstrap.alert","ui.bootstrap.bindHtml","ui.bootstrap.buttons","ui.bootstrap.carousel","ui.bootstrap.dateparser","ui.bootstrap.position","ui.bootstrap.datepicker","ui.bootstrap.dropdown","ui.bootstrap.modal","ui.bootstrap.pagination","ui.bootstrap.tooltip","ui.bootstrap.popover","ui.bootstrap.progressbar","ui.bootstrap.rating","ui.bootstrap.tabs","ui.bootstrap.timepicker","ui.bootstrap.typeahead"]);angular.module("ui.bootstrap.tpls",["template/accordion/accordion-group.html","template/accordion/accordion.html","template/alert/alert.html","template/carousel/carousel.html","template/carousel/slide.html","template/datepicker/datepicker.html","template/datepicker/day.html","template/datepicker/month.html","template/datepicker/popup.html","template/datepicker/year.html","template/modal/backdrop.html","template/modal/window.html","template/pagination/pager.html","template/pagination/pagination.html","template/tooltip/tooltip-html-unsafe-popup.html","template/tooltip/tooltip-popup.html","template/popover/popover.html","template/progressbar/bar.html","template/progressbar/progress.html","template/progressbar/progressbar.html","template/rating/rating.html","template/tabs/tab.html","template/tabs/tabset.html","template/timepicker/timepicker.html","template/typeahead/typeahead-match.html","template/typeahead/typeahead-popup.html"]);angular.module("ui.bootstrap.transition",[]).factory("$transition",["$q","$timeout","$rootScope",function(n,t,i){function u(n){for(var t in n)if(void 0!==f.style[t])return n[t]}var r=function(u,f,e){e=e||{};var s=n.defer(),o=r[e.animation?"animationEndEventName":"transitionEndEventName"],h=function(){i.$apply(function(){u.unbind(o,h);s.resolve(u)})};return o&&u.bind(o,h),t(function(){angular.isString(f)?u.addClass(f):angular.isFunction(f)?f(u):angular.isObject(f)&&u.css(f);o||s.resolve(u)}),s.promise.cancel=function(){o&&u.unbind(o,h);s.reject("Transition cancelled")},s.promise},f=document.createElement("trans");return r.transitionEndEventName=u({WebkitTransition:"webkitTransitionEnd",MozTransition:"transitionend",OTransition:"oTransitionEnd",transition:"transitionend"}),r.animationEndEventName=u({WebkitTransition:"webkitAnimationEnd",MozTransition:"animationend",OTransition:"oAnimationEnd",transition:"animationend"}),r}]);angular.module("ui.bootstrap.collapse",["ui.bootstrap.transition"]).directive("collapse",["$transition",function(n){return{link:function(t,i,r){function e(t){function f(){u===r&&(u=void 0)}var r=n(i,t);return u&&u.cancel(),u=r,r.then(f,f),r}function h(){f?(f=!1,o()):(i.removeClass("collapse").addClass("collapsing"),e({height:i[0].scrollHeight+"px"}).then(o))}function o(){i.removeClass("collapsing");i.addClass("collapse in");i.css({height:"auto"})}function c(){f?(f=!1,s(),i.css({height:0})):(i.css({height:i[0].scrollHeight+"px"}),i[0].offsetWidth,i.removeClass("collapse in").addClass("collapsing"),e({height:0}).then(s))}function s(){i.removeClass("collapsing");i.addClass("collapse")}var u,f=!0;t.$watch(r.collapse,function(n){n?c():h()})}}}]);angular.module("ui.bootstrap.accordion",["ui.bootstrap.collapse"]).constant("accordionConfig",{closeOthers:!0}).controller("AccordionController",["$scope","$attrs","accordionConfig",function(n,t,i){this.groups=[];this.closeOthers=function(r){var u=angular.isDefined(t.closeOthers)?n.$eval(t.closeOthers):i.closeOthers;u&&angular.forEach(this.groups,function(n){n!==r&&(n.isOpen=!1)})};this.addGroup=function(n){var t=this;this.groups.push(n);n.$on("$destroy",function(){t.removeGroup(n)})};this.removeGroup=function(n){var t=this.groups.indexOf(n);-1!==t&&this.groups.splice(t,1)}}]).directive("accordion",function(){return{restrict:"EA",controller:"AccordionController",transclude:!0,replace:!1,templateUrl:"template/accordion/accordion.html"}}).directive("accordionGroup",function(){return{require:"^accordion",restrict:"EA",transclude:!0,replace:!0,templateUrl:"template/accordion/accordion-group.html",scope:{heading:"@",isOpen:"=?",isDisabled:"=?"},controller:function(){this.setHeading=function(n){this.heading=n}},link:function(n,t,i,r){r.addGroup(n);n.$watch("isOpen",function(t){t&&r.closeOthers(n)});n.toggleOpen=function(){n.isDisabled||(n.isOpen=!n.isOpen)}}}}).directive("accordionHeading",function(){return{restrict:"EA",transclude:!0,template:"",replace:!0,require:"^accordionGroup",link:function(n,t,i,r,u){r.setHeading(u(n,function(){}))}}}).directive("accordionTransclude",function(){return{require:"^accordionGroup",link:function(n,t,i,r){n.$watch(function(){return r[i.accordionTransclude]},function(n){n&&(t.html(""),t.append(n))})}}});angular.module("ui.bootstrap.alert",[]).controller("AlertController",["$scope","$attrs",function(n,t){n.closeable="close"in t}]).directive("alert",function(){return{restrict:"EA",controller:"AlertController",templateUrl:"template/alert/alert.html",transclude:!0,replace:!0,scope:{type:"@",close:"&"}}});angular.module("ui.bootstrap.bindHtml",[]).directive("bindHtmlUnsafe",function(){return function(n,t,i){t.addClass("ng-binding").data("$binding",i.bindHtmlUnsafe);n.$watch(i.bindHtmlUnsafe,function(n){t.html(n||"")})}});angular.module("ui.bootstrap.buttons",[]).constant("buttonConfig",{activeClass:"active",toggleEvent:"click"}).controller("ButtonsController",["buttonConfig",function(n){this.activeClass=n.activeClass||"active";this.toggleEvent=n.toggleEvent||"click"}]).directive("btnRadio",function(){return{require:["btnRadio","ngModel"],controller:"ButtonsController",link:function(n,t,i,r){var f=r[0],u=r[1];u.$render=function(){t.toggleClass(f.activeClass,angular.equals(u.$modelValue,n.$eval(i.btnRadio)))};t.bind(f.toggleEvent,function(){var r=t.hasClass(f.activeClass);(!r||angular.isDefined(i.uncheckable))&&n.$apply(function(){u.$setViewValue(r?null:n.$eval(i.btnRadio));u.$render()})})}}}).directive("btnCheckbox",function(){return{require:["btnCheckbox","ngModel"],controller:"ButtonsController",link:function(n,t,i,r){function e(){return o(i.btnCheckboxTrue,!0)}function s(){return o(i.btnCheckboxFalse,!1)}function o(t,i){var r=n.$eval(t);return angular.isDefined(r)?r:i}var f=r[0],u=r[1];u.$render=function(){t.toggleClass(f.activeClass,angular.equals(u.$modelValue,e()))};t.bind(f.toggleEvent,function(){n.$apply(function(){u.$setViewValue(t.hasClass(f.activeClass)?s():e());u.$render()})})}}});angular.module("ui.bootstrap.carousel",["ui.bootstrap.transition"]).controller("CarouselController",["$scope","$timeout","$transition",function(n,t,i){function e(){h();var i=+n.interval;!isNaN(i)&&i>=0&&(o=t(l,i))}function h(){o&&(t.cancel(o),o=null)}function l(){s?(n.next(),e()):n.pause()}var o,s,u=this,r=u.slides=n.slides=[],f=-1,c;u.currentSlide=null;c=!1;u.select=n.select=function(o,s){function l(){c||(u.currentSlide&&angular.isString(s)&&!n.noTransition&&o.$element?(o.$element.addClass(s),o.$element[0].offsetWidth,angular.forEach(r,function(n){angular.extend(n,{direction:"",entering:!1,leaving:!1,active:!1})}),angular.extend(o,{direction:s,active:!0,entering:!0}),angular.extend(u.currentSlide||{},{direction:s,leaving:!0}),n.$currentTransition=i(o.$element,{}),function(t,i){n.$currentTransition.then(function(){h(t,i)},function(){h(t,i)})}(o,u.currentSlide)):h(o,u.currentSlide),u.currentSlide=o,f=a,e())}function h(t,i){angular.extend(t,{direction:"",active:!0,leaving:!1,entering:!1});angular.extend(i||{},{direction:"",active:!1,leaving:!1,entering:!1});n.$currentTransition=null}var a=r.indexOf(o);void 0===s&&(s=a>f?"next":"prev");o&&o!==u.currentSlide&&(n.$currentTransition?(n.$currentTransition.cancel(),t(l)):l())};n.$on("$destroy",function(){c=!0});u.indexOfSlide=function(n){return r.indexOf(n)};n.next=function(){var t=(f+1)%r.length;if(!n.$currentTransition)return u.select(r[t],"next")};n.prev=function(){var t=0>f-1?r.length-1:f-1;if(!n.$currentTransition)return u.select(r[t],"prev")};n.isActive=function(n){return u.currentSlide===n};n.$watch("interval",e);n.$on("$destroy",h);n.play=function(){s||(s=!0,e())};n.pause=function(){n.noPause||(s=!1,h())};u.addSlide=function(t,i){t.$element=i;r.push(t);1===r.length||t.active?(u.select(r[r.length-1]),1==r.length&&n.play()):t.active=!1};u.removeSlide=function(n){var t=r.indexOf(n);r.splice(t,1);r.length>0&&n.active?u.select(t>=r.length?r[t-1]:r[t]):f>t&&f--}}]).directive("carousel",[function(){return{restrict:"EA",transclude:!0,replace:!0,controller:"CarouselController",require:"carousel",templateUrl:"template/carousel/carousel.html",scope:{interval:"=",noTransition:"=",noPause:"="}}}]).directive("slide",function(){return{require:"^carousel",restrict:"EA",transclude:!0,replace:!0,templateUrl:"template/carousel/slide.html",scope:{active:"=?"},link:function(n,t,i,r){r.addSlide(n,t);n.$on("$destroy",function(){r.removeSlide(n)});n.$watch("active",function(t){t&&r.select(n)})}}});angular.module("ui.bootstrap.dateparser",[]).service("dateParser",["$locale","orderByFilter",function(n,t){function i(n){var r=[],i=n.split("");return angular.forEach(u,function(t,u){var f=n.indexOf(u),e,o;if(f>-1){for(n=n.split(""),i[f]="("+t.regex+")",n[f]="$",e=f+1,o=f+u.length;o>e;e++)i[e]="",n[e]="$";n=n.join("");r.push({index:f,apply:t.apply})}}),{regex:new RegExp("^"+i.join("")+"$"),map:t(r,"index")}}function r(n,t,i){return 1===t&&i>28?29===i&&(n%4==0&&n%100!=0||n%400==0):3===t||5===t||8===t||10===t?31>i:!0}this.parsers={};var u={yyyy:{regex:"\\d{4}",apply:function(n){this.year=+n}},yy:{regex:"\\d{2}",apply:function(n){this.year=+n+2e3}},y:{regex:"\\d{1,4}",apply:function(n){this.year=+n}},MMMM:{regex:n.DATETIME_FORMATS.MONTH.join("|"),apply:function(t){this.month=n.DATETIME_FORMATS.MONTH.indexOf(t)}},MMM:{regex:n.DATETIME_FORMATS.SHORTMONTH.join("|"),apply:function(t){this.month=n.DATETIME_FORMATS.SHORTMONTH.indexOf(t)}},MM:{regex:"0[1-9]|1[0-2]",apply:function(n){this.month=n-1}},M:{regex:"[1-9]|1[0-2]",apply:function(n){this.month=n-1}},dd:{regex:"[0-2][0-9]{1}|3[0-1]{1}",apply:function(n){this.date=+n}},d:{regex:"[1-2]?[0-9]{1}|3[0-1]{1}",apply:function(n){this.date=+n}},EEEE:{regex:n.DATETIME_FORMATS.DAY.join("|")},EEE:{regex:n.DATETIME_FORMATS.SHORTDAY.join("|")}};this.parse=function(t,u){var s;if(!angular.isString(t)||!u)return t;u=n.DATETIME_FORMATS[u]||u;this.parsers[u]||(this.parsers[u]=i(u));var h=this.parsers[u],l=h.regex,a=h.map,e=t.match(l);if(e&&e.length){for(var c,f={year:1900,month:0,date:1,hours:0},o=1,v=e.length;v>o;o++)s=a[o-1],s.apply&&s.apply.call(f,e[o]);return r(f.year,f.month,f.date)&&(c=new Date(f.year,f.month,f.date,f.hours)),c}}}]);angular.module("ui.bootstrap.position",[]).factory("$position",["$document","$window",function(n,t){function i(n,i){return n.currentStyle?n.currentStyle[i]:t.getComputedStyle?t.getComputedStyle(n)[i]:n.style[i]}function r(n){return"static"===(i(n,"position")||"static")}var u=function(t){for(var u=n[0],i=t.offsetParent||u;i&&i!==u&&r(i);)i=i.offsetParent;return i||u};return{position:function(t){var e=this.offset(t),r={top:0,left:0},i=u(t[0]),f;return i!=n[0]&&(r=this.offset(angular.element(i)),r.top+=i.clientTop-i.scrollTop,r.left+=i.clientLeft-i.scrollLeft),f=t[0].getBoundingClientRect(),{width:f.width||t.prop("offsetWidth"),height:f.height||t.prop("offsetHeight"),top:e.top-r.top,left:e.left-r.left}},offset:function(i){var r=i[0].getBoundingClientRect();return{width:r.width||i.prop("offsetWidth"),height:r.height||i.prop("offsetHeight"),top:r.top+(t.pageYOffset||n[0].documentElement.scrollTop),left:r.left+(t.pageXOffset||n[0].documentElement.scrollLeft)}},positionElements:function(n,t,i,r){var u,h,c,f,a=i.split("-"),l=a[0],e=a[1]||"center",o,s;u=r?this.offset(n):this.position(n);h=t.prop("offsetWidth");c=t.prop("offsetHeight");o={center:function(){return u.left+u.width/2-h/2},left:function(){return u.left},right:function(){return u.left+u.width}};s={center:function(){return u.top+u.height/2-c/2},top:function(){return u.top},bottom:function(){return u.top+u.height}};switch(l){case"right":f={top:s[e](),left:o[l]()};break;case"left":f={top:s[e](),left:u.left-h};break;case"bottom":f={top:s[l](),left:o[e]()};break;default:f={top:u.top-c,left:o[e]()}}return f}}}]);angular.module("ui.bootstrap.datepicker",["ui.bootstrap.dateparser","ui.bootstrap.position"]).constant("datepickerConfig",{formatDay:"dd",formatMonth:"MMMM",formatYear:"yyyy",formatDayHeader:"EEE",formatDayTitle:"MMMM yyyy",formatMonthTitle:"yyyy",datepickerMode:"day",minMode:"day",maxMode:"year",showWeeks:!0,startingDay:0,yearRange:20,minDate:null,maxDate:null}).controller("DatepickerController",["$scope","$attrs","$parse","$interpolate","$timeout","$log","dateFilter","datepickerConfig",function(n,t,i,r,u,f,e,o){var s=this,h={$setViewValue:angular.noop},c;this.modes=["day","month","year"];angular.forEach(["formatDay","formatMonth","formatYear","formatDayHeader","formatDayTitle","formatMonthTitle","minMode","maxMode","showWeeks","startingDay","yearRange"],function(i,u){s[i]=angular.isDefined(t[i])?8>u?r(t[i])(n.$parent):n.$parent.$eval(t[i]):o[i]});angular.forEach(["minDate","maxDate"],function(r){t[r]?n.$parent.$watch(i(t[r]),function(n){s[r]=n?new Date(n):null;s.refreshView()}):s[r]=o[r]?new Date(o[r]):null});n.datepickerMode=n.datepickerMode||o.datepickerMode;n.uniqueId="datepicker-"+n.$id+"-"+Math.floor(1e4*Math.random());this.activeDate=angular.isDefined(t.initDate)?n.$parent.$eval(t.initDate):new Date;n.isActive=function(t){return 0===s.compare(t.date,s.activeDate)?(n.activeDateId=t.uid,!0):!1};this.init=function(n){h=n;h.$render=function(){s.render()}};this.render=function(){if(h.$modelValue){var n=new Date(h.$modelValue),t=!isNaN(n);t?this.activeDate=n:f.error('Datepicker directive: "ng-model" value must be a Date object, a number of milliseconds since 01.01.1970 or a string representing an RFC2822 or ISO 8601 date.');h.$setValidity("date",t)}this.refreshView()};this.refreshView=function(){if(this.element){this._refreshView();var n=h.$modelValue?new Date(h.$modelValue):null;h.$setValidity("date-disabled",!n||this.element&&!this.isDisabled(n))}};this.createDateObject=function(n,t){var i=h.$modelValue?new Date(h.$modelValue):null;return{date:n,label:e(n,t),selected:i&&0===this.compare(n,i),disabled:this.isDisabled(n),current:0===this.compare(n,new Date)}};this.isDisabled=function(i){return this.minDate&&this.compare(i,this.minDate)<0||this.maxDate&&this.compare(i,this.maxDate)>0||t.dateDisabled&&n.dateDisabled({date:i,mode:n.datepickerMode})};this.split=function(n,t){for(var i=[];n.length>0;)i.push(n.splice(0,t));return i};n.select=function(t){if(n.datepickerMode===s.minMode){var i=h.$modelValue?new Date(h.$modelValue):new Date(0,0,0,0,0,0,0);i.setFullYear(t.getFullYear(),t.getMonth(),t.getDate());h.$setViewValue(i);h.$render()}else s.activeDate=t,n.datepickerMode=s.modes[s.modes.indexOf(n.datepickerMode)-1]};n.move=function(n){var t=s.activeDate.getFullYear()+n*(s.step.years||0),i=s.activeDate.getMonth()+n*(s.step.months||0);s.activeDate.setFullYear(t,i,1);s.refreshView()};n.toggleMode=function(t){t=t||1;n.datepickerMode===s.maxMode&&1===t||n.datepickerMode===s.minMode&&-1===t||(n.datepickerMode=s.modes[s.modes.indexOf(n.datepickerMode)+t])};n.keys={13:"enter",32:"space",33:"pageup",34:"pagedown",35:"end",36:"home",37:"left",38:"up",39:"right",40:"down"};c=function(){u(function(){s.element[0].focus()},0,!1)};n.$on("datepicker.focus",c);n.keydown=function(t){var i=n.keys[t.which];if(i&&!t.shiftKey&&!t.altKey)if(t.preventDefault(),t.stopPropagation(),"enter"===i||"space"===i){if(s.isDisabled(s.activeDate))return;n.select(s.activeDate);c()}else!t.ctrlKey||"up"!==i&&"down"!==i?(s.handleKeyDown(i,t),s.refreshView()):(n.toggleMode("up"===i?1:-1),c())}}]).directive("datepicker",function(){return{restrict:"EA",replace:!0,templateUrl:"template/datepicker/datepicker.html",scope:{datepickerMode:"=?",dateDisabled:"&"},require:["datepicker","?^ngModel"],controller:"DatepickerController",link:function(n,t,i,r){var f=r[0],u=r[1];u&&f.init(u)}}}).directive("daypicker",["dateFilter",function(n){return{restrict:"EA",replace:!0,templateUrl:"template/datepicker/day.html",require:"^datepicker",link:function(t,i,r,u){function f(n,t){return 1!==t||n%4!=0||n%100==0&&n%400!=0?s[t]:29}function e(n,t){var r=new Array(t),i=new Date(n),u=0;for(i.setHours(12);t>u;)r[u++]=new Date(i),i.setDate(i.getDate()+1);return r}function o(n){var t=new Date(n),i;return t.setDate(t.getDate()+4-(t.getDay()||7)),i=t.getTime(),t.setMonth(0),t.setDate(1),Math.floor(Math.round((i-t)/864e5)/7)+1}t.showWeeks=u.showWeeks;u.step={months:1};u.element=i;var s=[31,28,31,30,31,30,31,31,30,31,30,31];u._refreshView=function(){var p=u.activeDate.getFullYear(),h=u.activeDate.getMonth(),c=new Date(p,h,1),s=u.startingDay-c.getDay(),l=s>0?7-s:-s,a=new Date(c),i,r,f,v,y;for(l>0&&a.setDate(-l+1),i=e(a,42),r=0;42>r;r++)i[r]=angular.extend(u.createDateObject(i[r],u.formatDay),{secondary:i[r].getMonth()!==h,uid:t.uniqueId+"-"+r});for(t.labels=new Array(7),f=0;7>f;f++)t.labels[f]={abbr:n(i[f].date,u.formatDayHeader),full:n(i[f].date,"EEEE")};if(t.title=n(u.activeDate,u.formatDayTitle),t.rows=u.split(i,7),t.showWeeks)for(t.weekNumbers=[],v=o(t.rows[0][0].date),y=t.rows.length;t.weekNumbers.push(v++)<y;);};u.compare=function(n,t){return new Date(n.getFullYear(),n.getMonth(),n.getDate())-new Date(t.getFullYear(),t.getMonth(),t.getDate())};u.handleKeyDown=function(n){var t=u.activeDate.getDate(),i;"left"===n?t-=1:"up"===n?t-=7:"right"===n?t+=1:"down"===n?t+=7:"pageup"===n||"pagedown"===n?(i=u.activeDate.getMonth()+("pageup"===n?-1:1),u.activeDate.setMonth(i,1),t=Math.min(f(u.activeDate.getFullYear(),u.activeDate.getMonth()),t)):"home"===n?t=1:"end"===n&&(t=f(u.activeDate.getFullYear(),u.activeDate.getMonth()));u.activeDate.setDate(t)};u.refreshView()}}}]).directive("monthpicker",["dateFilter",function(n){return{restrict:"EA",replace:!0,templateUrl:"template/datepicker/month.html",require:"^datepicker",link:function(t,i,r,u){u.step={years:1};u.element=i;u._refreshView=function(){for(var r=new Array(12),f=u.activeDate.getFullYear(),i=0;12>i;i++)r[i]=angular.extend(u.createDateObject(new Date(f,i,1),u.formatMonth),{uid:t.uniqueId+"-"+i});t.title=n(u.activeDate,u.formatMonthTitle);t.rows=u.split(r,3)};u.compare=function(n,t){return new Date(n.getFullYear(),n.getMonth())-new Date(t.getFullYear(),t.getMonth())};u.handleKeyDown=function(n){var t=u.activeDate.getMonth(),i;"left"===n?t-=1:"up"===n?t-=3:"right"===n?t+=1:"down"===n?t+=3:"pageup"===n||"pagedown"===n?(i=u.activeDate.getFullYear()+("pageup"===n?-1:1),u.activeDate.setFullYear(i)):"home"===n?t=0:"end"===n&&(t=11);u.activeDate.setMonth(t)};u.refreshView()}}}]).directive("yearpicker",["dateFilter",function(){return{restrict:"EA",replace:!0,templateUrl:"template/datepicker/year.html",require:"^datepicker",link:function(n,t,i,r){function f(n){return parseInt((n-1)/u,10)*u+1}var u=r.yearRange;r.step={years:u};r.element=t;r._refreshView=function(){for(var i=new Array(u),t=0,e=f(r.activeDate.getFullYear());u>t;t++)i[t]=angular.extend(r.createDateObject(new Date(e+t,0,1),r.formatYear),{uid:n.uniqueId+"-"+t});n.title=[i[0].label,i[u-1].label].join(" - ");n.rows=r.split(i,5)};r.compare=function(n,t){return n.getFullYear()-t.getFullYear()};r.handleKeyDown=function(n){var t=r.activeDate.getFullYear();"left"===n?t-=1:"up"===n?t-=5:"right"===n?t+=1:"down"===n?t+=5:"pageup"===n||"pagedown"===n?t+=("pageup"===n?-1:1)*r.step.years:"home"===n?t=f(r.activeDate.getFullYear()):"end"===n&&(t=f(r.activeDate.getFullYear())+u-1);r.activeDate.setFullYear(t)};r.refreshView()}}}]).constant("datepickerPopupConfig",{datepickerPopup:"yyyy-MM-dd",currentText:"Today",clearText:"Clear",closeText:"Done",closeOnDateSelection:!0,appendToBody:!1,showButtonBar:!0}).directive("datepickerPopup",["$compile","$parse","$document","$position","dateFilter","dateParser","datepickerPopupConfig",function(n,t,i,r,u,f,e){return{restrict:"EA",require:"ngModel",scope:{isOpen:"=?",currentText:"@",clearText:"@",closeText:"@",dateDisabled:"&"},link:function(o,s,h,c){function b(n){return n.replace(/([A-Z])/g,function(n){return"-"+n.toLowerCase()})}function k(n){if(n){if(angular.isDate(n)&&!isNaN(n))return c.$setValidity("date",!0),n;if(angular.isString(n)){var t=f.parse(n,p)||new Date(n);return isNaN(t)?void c.$setValidity("date",!1):(c.$setValidity("date",!0),t)}return void c.$setValidity("date",!1)}return c.$setValidity("date",!0),null}var p,g=angular.isDefined(h.closeOnDateSelection)?o.$parent.$eval(h.closeOnDateSelection):e.closeOnDateSelection,d=angular.isDefined(h.datepickerAppendToBody)?o.$parent.$eval(h.datepickerAppendToBody):e.appendToBody,l,a,v,w,y;o.showButtonBar=angular.isDefined(h.showButtonBar)?o.$parent.$eval(h.showButtonBar):e.showButtonBar;o.getText=function(n){return o[n+"Text"]||e[n+"Text"]};h.$observe("datepickerPopup",function(n){p=n||e.datepickerPopup;c.$render()});l=angular.element("<div datepicker-popup-wrap><div datepicker><\/div><\/div>");l.attr({"ng-model":"date","ng-change":"dateSelection()"});a=angular.element(l.children()[0]);h.datepickerOptions&&angular.forEach(o.$parent.$eval(h.datepickerOptions),function(n,t){a.attr(b(t),n)});o.watchData={};angular.forEach(["minDate","maxDate","datepickerMode"],function(n){var i,r;h[n]&&(i=t(h[n]),(o.$parent.$watch(i,function(t){o.watchData[n]=t}),a.attr(b(n),"watchData."+n),"datepickerMode"===n)&&(r=i.assign,o.$watch("watchData."+n,function(n,t){n!==t&&r(o.$parent,n)})))});h.dateDisabled&&a.attr("date-disabled","dateDisabled({ date: date, mode: mode })");c.$parsers.unshift(k);o.dateSelection=function(n){angular.isDefined(n)&&(o.date=n);c.$setViewValue(o.date);c.$render();g&&(o.isOpen=!1,s[0].focus())};s.bind("input change keyup",function(){o.$apply(function(){o.date=c.$modelValue})});c.$render=function(){var n=c.$viewValue?u(c.$viewValue,p):"";s.val(n);o.date=k(c.$modelValue)};v=function(n){o.isOpen&&n.target!==s[0]&&o.$apply(function(){o.isOpen=!1})};w=function(n){o.keydown(n)};s.bind("keydown",w);o.keydown=function(n){27===n.which?(n.preventDefault(),n.stopPropagation(),o.close()):40!==n.which||o.isOpen||(o.isOpen=!0)};o.$watch("isOpen",function(n){n?(o.$broadcast("datepicker.focus"),o.position=d?r.offset(s):r.position(s),o.position.top=o.position.top+s.prop("offsetHeight"),i.bind("click",v)):i.unbind("click",v)});o.select=function(n){if("today"===n){var t=new Date;angular.isDate(c.$modelValue)?(n=new Date(c.$modelValue),n.setFullYear(t.getFullYear(),t.getMonth(),t.getDate())):n=new Date(t.setHours(0,0,0,0))}o.dateSelection(n)};o.close=function(){o.isOpen=!1;s[0].focus()};y=n(l)(o);l.remove();d?i.find("body").append(y):s.after(y);o.$on("$destroy",function(){y.remove();s.unbind("keydown",w);i.unbind("click",v)})}}}]).directive("datepickerPopupWrap",function(){return{restrict:"EA",replace:!0,transclude:!0,templateUrl:"template/datepicker/popup.html",link:function(n,t){t.bind("click",function(n){n.preventDefault();n.stopPropagation()})}}});angular.module("ui.bootstrap.dropdown",[]).constant("dropdownConfig",{openClass:"open"}).service("dropdownService",["$document",function(n){var t=null,i,r;this.open=function(u){t||(n.bind("click",i),n.bind("keydown",r));t&&t!==u&&(t.isOpen=!1);t=u};this.close=function(u){t===u&&(t=null,n.unbind("click",i),n.unbind("keydown",r))};i=function(n){var i=t.getToggleElement();n&&i&&i[0].contains(n.target)||t.$apply(function(){t.isOpen=!1})};r=function(n){27===n.which&&(t.focusToggleElement(),i())}}]).controller("DropdownController",["$scope","$attrs","$parse","dropdownConfig","dropdownService","$animate",function(n,t,i,r,u,f){var s,o=this,e=n.$new(),c=r.openClass,h=angular.noop,l=t.onToggle?i(t.onToggle):angular.noop;this.init=function(r){o.$element=r;t.isOpen&&(s=i(t.isOpen),h=s.assign,n.$watch(s,function(n){e.isOpen=!!n}))};this.toggle=function(n){return e.isOpen=arguments.length?!!n:!e.isOpen};this.isOpen=function(){return e.isOpen};e.getToggleElement=function(){return o.toggleElement};e.focusToggleElement=function(){o.toggleElement&&o.toggleElement[0].focus()};e.$watch("isOpen",function(t,i){f[t?"addClass":"removeClass"](o.$element,c);t?(e.focusToggleElement(),u.open(e)):u.close(e);h(n,t);angular.isDefined(t)&&t!==i&&l(n,{open:!!t})});n.$on("$locationChangeSuccess",function(){e.isOpen=!1});n.$on("$destroy",function(){e.$destroy()})}]).directive("dropdown",function(){return{restrict:"CA",controller:"DropdownController",link:function(n,t,i,r){r.init(t)}}}).directive("dropdownToggle",function(){return{restrict:"CA",require:"?^dropdown",link:function(n,t,i,r){if(r){r.toggleElement=t;var u=function(u){u.preventDefault();t.hasClass("disabled")||i.disabled||n.$apply(function(){r.toggle()})};t.bind("click",u);t.attr({"aria-haspopup":!0,"aria-expanded":!1});n.$watch(r.isOpen,function(n){t.attr("aria-expanded",!!n)});n.$on("$destroy",function(){t.unbind("click",u)})}}}});angular.module("ui.bootstrap.modal",["ui.bootstrap.transition"]).factory("$$stackedMap",function(){return{createNew:function(){var n=[];return{add:function(t,i){n.push({key:t,value:i})},get:function(t){for(var i=0;i<n.length;i++)if(t==n[i].key)return n[i]},keys:function(){for(var i=[],t=0;t<n.length;t++)i.push(n[t].key);return i},top:function(){return n[n.length-1]},remove:function(t){for(var r=-1,i=0;i<n.length;i++)if(t==n[i].key){r=i;break}return n.splice(r,1)[0]},removeTop:function(){return n.splice(n.length-1,1)[0]},length:function(){return n.length}}}}}).directive("modalBackdrop",["$timeout",function(n){return{restrict:"EA",replace:!0,templateUrl:"template/modal/backdrop.html",link:function(t,i,r){t.backdropClass=r.backdropClass||"";t.animate=!1;n(function(){t.animate=!0})}}}]).directive("modalWindow",["$modalStack","$timeout",function(n,t){return{restrict:"EA",scope:{index:"@",animate:"="},replace:!0,transclude:!0,templateUrl:function(n,t){return t.templateUrl||"template/modal/window.html"},link:function(i,r,u){r.addClass(u.windowClass||"");i.size=u.size;t(function(){i.animate=!0;r[0].querySelectorAll("[autofocus]").length||r[0].focus()});i.close=function(t){var i=n.getTop();i&&i.value.backdrop&&"static"!=i.value.backdrop&&t.target===t.currentTarget&&(t.preventDefault(),t.stopPropagation(),n.dismiss(i.key,"backdrop click"))}}}}]).directive("modalTransclude",function(){return{link:function(n,t,i,r,u){u(n.$parent,function(n){t.empty();t.append(n)})}}}).factory("$modalStack",["$transition","$timeout","$document","$compile","$rootScope","$$stackedMap",function(n,t,i,r,u,f){function c(){for(var t=-1,i=e.keys(),n=0;n<i.length;n++)e.get(i[n]).value.backdrop&&(t=n);return t}function l(n){var r=i.find("body").eq(0),t=e.get(n).value;e.remove(n);a(t.modalDomEl,t.modalScope,300,function(){t.modalScope.$destroy();r.toggleClass(v,e.length()>0);y()})}function y(){if(h&&-1==c()){var n=o;a(h,o,150,function(){n.$destroy();n=null});h=void 0;o=void 0}}function a(i,r,u,f){function e(){e.done||(e.done=!0,i.remove(),f&&f())}var o,s;r.animate=!1;o=n.transitionEndEventName;o?(s=t(e,u),i.bind(o,function(){t.cancel(s);e();r.$apply()})):t(e)}var h,o,v="modal-open",e=f.createNew(),s={};return u.$watch(c,function(n){o&&(o.index=n)}),i.bind("keydown",function(n){var t;27===n.which&&(t=e.top(),t&&t.value.keyboard&&(n.preventDefault(),u.$apply(function(){s.dismiss(t.key,"escape key press")})))}),s.open=function(n,t){var f,s,l,a,y;e.add(n,{deferred:t.deferred,modalScope:t.scope,backdrop:t.backdrop,keyboard:t.keyboard});f=i.find("body").eq(0);s=c();s>=0&&!h&&(o=u.$new(!0),o.index=s,l=angular.element("<div modal-backdrop><\/div>"),l.attr("backdrop-class",t.backdropClass),h=r(l)(o),f.append(h));a=angular.element("<div modal-window><\/div>");a.attr({"template-url":t.windowTemplateUrl,"window-class":t.windowClass,size:t.size,index:e.length()-1,animate:"animate"}).html(t.content);y=r(a)(t.scope);e.top().value.modalDomEl=y;f.append(y);f.addClass(v)},s.close=function(n,t){var i=e.get(n);i&&(i.value.deferred.resolve(t),l(n))},s.dismiss=function(n,t){var i=e.get(n);i&&(i.value.deferred.reject(t),l(n))},s.dismissAll=function(n){for(var t=this.getTop();t;)this.dismiss(t.key,n),t=this.getTop()},s.getTop=function(){return e.top()},s}]).provider("$modal",function(){var n={options:{backdrop:!0,keyboard:!0},$get:["$injector","$rootScope","$q","$http","$templateCache","$controller","$modalStack",function(t,i,r,u,f,e,o){function h(n){return n.template?r.when(n.template):u.get(angular.isFunction(n.templateUrl)?n.templateUrl():n.templateUrl,{cache:f}).then(function(n){return n.data})}function c(n){var i=[];return angular.forEach(n,function(n){(angular.isFunction(n)||angular.isArray(n))&&i.push(r.when(t.invoke(n)))}),i}var s={};return s.open=function(t){var f=r.defer(),s=r.defer(),u={result:f.promise,opened:s.promise,close:function(n){o.close(u,n)},dismiss:function(n){o.dismiss(u,n)}},l;if(t=angular.extend({},n.options,t),t.resolve=t.resolve||{},!t.template&&!t.templateUrl)throw new Error("One of template or templateUrl options is required.");return l=r.all([h(t)].concat(c(t.resolve))),l.then(function(n){var r=(t.scope||i).$new(),h,s,c;r.$close=u.close;r.$dismiss=u.dismiss;s={};c=1;t.controller&&(s.$scope=r,s.$modalInstance=u,angular.forEach(t.resolve,function(t,i){s[i]=n[c++]}),h=e(t.controller,s),t.controllerAs&&(r[t.controllerAs]=h));o.open(u,{scope:r,deferred:f,content:n[0],backdrop:t.backdrop,keyboard:t.keyboard,backdropClass:t.backdropClass,windowClass:t.windowClass,windowTemplateUrl:t.windowTemplateUrl,size:t.size})},function(n){f.reject(n)}),l.then(function(){s.resolve(!0)},function(){s.reject(!1)}),u},s}]};return n});angular.module("ui.bootstrap.pagination",[]).controller("PaginationController",["$scope","$attrs","$parse",function(n,t,i){var u=this,r={$setViewValue:angular.noop},f=t.numPages?i(t.numPages).assign:angular.noop;this.init=function(f,e){r=f;this.config=e;r.$render=function(){u.render()};t.itemsPerPage?n.$parent.$watch(i(t.itemsPerPage),function(t){u.itemsPerPage=parseInt(t,10);n.totalPages=u.calculateTotalPages()}):this.itemsPerPage=e.itemsPerPage};this.calculateTotalPages=function(){var t=this.itemsPerPage<1?1:Math.ceil(n.totalItems/this.itemsPerPage);return Math.max(t||0,1)};this.render=function(){n.page=parseInt(r.$viewValue,10)||1};n.selectPage=function(t){n.page!==t&&t>0&&t<=n.totalPages&&(r.$setViewValue(t),r.$render())};n.getText=function(t){return n[t+"Text"]||u.config[t+"Text"]};n.noPrevious=function(){return 1===n.page};n.noNext=function(){return n.page===n.totalPages};n.$watch("totalItems",function(){n.totalPages=u.calculateTotalPages()});n.$watch("totalPages",function(t){f(n.$parent,t);n.page>t?n.selectPage(t):r.$render()})}]).constant("paginationConfig",{itemsPerPage:10,boundaryLinks:!1,directionLinks:!0,firstText:"First",previousText:"Previous",nextText:"Next",lastText:"Last",rotate:!0}).directive("pagination",["$parse","paginationConfig",function(n,t){return{restrict:"EA",scope:{totalItems:"=",firstText:"@",previousText:"@",nextText:"@",lastText:"@"},require:["pagination","?ngModel"],controller:"PaginationController",templateUrl:"template/pagination/pagination.html",replace:!0,link:function(i,r,u,f){function s(n,t,i){return{number:n,text:t,active:i}}function a(n,t){var f=[],i=1,r=t,o=angular.isDefined(e)&&t>e,u,c,l,a;for(o&&(h?(i=Math.max(n-Math.floor(e/2),1),r=i+e-1,r>t&&(r=t,i=r-e+1)):(i=(Math.ceil(n/e)-1)*e+1,r=Math.min(i+e-1,t))),u=i;r>=u;u++)c=s(u,u,u===n),f.push(c);return o&&!h&&(i>1&&(l=s(i-1,"...",!1),f.unshift(l)),t>r&&(a=s(r+1,"...",!1),f.push(a))),f}var o=f[0],c=f[1],e,h,l;c&&(e=angular.isDefined(u.maxSize)?i.$parent.$eval(u.maxSize):t.maxSize,h=angular.isDefined(u.rotate)?i.$parent.$eval(u.rotate):t.rotate,i.boundaryLinks=angular.isDefined(u.boundaryLinks)?i.$parent.$eval(u.boundaryLinks):t.boundaryLinks,i.directionLinks=angular.isDefined(u.directionLinks)?i.$parent.$eval(u.directionLinks):t.directionLinks,o.init(c,t),u.maxSize&&i.$parent.$watch(n(u.maxSize),function(n){e=parseInt(n,10);o.render()}),l=o.render,o.render=function(){l();i.page>0&&i.page<=i.totalPages&&(i.pages=a(i.page,i.totalPages))})}}}]).constant("pagerConfig",{itemsPerPage:10,previousText:"« Previous",nextText:"Next »",align:!0}).directive("pager",["pagerConfig",function(n){return{restrict:"EA",scope:{totalItems:"=",previousText:"@",nextText:"@"},require:["pager","?ngModel"],controller:"PaginationController",templateUrl:"template/pagination/pager.html",replace:!0,link:function(t,i,r,u){var e=u[0],f=u[1];f&&(t.align=angular.isDefined(r.align)?t.$parent.$eval(r.align):n.align,e.init(f,n))}}}]);angular.module("ui.bootstrap.tooltip",["ui.bootstrap.position","ui.bootstrap.bindHtml"]).provider("$tooltip",function(){function i(n){var t="-";return n.replace(/[A-Z]/g,function(n,i){return(i?t:"")+n.toLowerCase()})}var r={placement:"top",animation:!0,popupDelay:0},n={mouseenter:"mouseleave",click:"click",focus:"blur"},t={};this.options=function(n){angular.extend(t,n)};this.setTriggers=function(t){angular.extend(n,t)};this.$get=["$window","$compile","$timeout","$parse","$document","$position","$interpolate",function(u,f,e,o,s,h,c){return function(u,l,a){function w(t){var i=t||v.trigger||a,r=n[i]||i;return{show:i,hide:r}}var v=angular.extend({},r,t),b=i(u),y=c.startSymbol(),p=c.endSymbol(),k="<div "+b+'-popup title="'+y+"tt_title"+p+'" content="'+y+"tt_content"+p+'" placement="'+y+"tt_placement"+p+'" animation="tt_animation" is-open="tt_isOpen"><\/div>';return{restrict:"EA",scope:!0,compile:function(){var n=f(k);return function(t,i,r){function ut(){t.tt_isOpen?d():k()}function k(){(!et||t.$eval(r[l+"Enable"]))&&(t.tt_popupDelay?y||(y=e(it,t.tt_popupDelay,!1),y.then(function(n){n()})):it()())}function d(){t.$apply(function(){g()})}function it(){return y=null,a&&(e.cancel(a),a=null),t.tt_content?(ft(),f.css({top:0,left:0,display:"block"}),p?s.find("body").append(f):i.after(f),rt(),t.tt_isOpen=!0,t.$digest(),rt):angular.noop}function g(){t.tt_isOpen=!1;e.cancel(y);y=null;t.tt_animation?a||(a=e(b,500)):b()}function ft(){f&&b();f=n(t,function(){});t.$digest()}function b(){a=null;f&&(f.remove(),f=null)}var f,a,y,p=angular.isDefined(v.appendToBody)?v.appendToBody:!1,c=w(void 0),et=angular.isDefined(r[l+"Enable"]),rt=function(){var n=h.positionElements(i,f,t.tt_placement,p);n.top+="px";n.left+="px";f.css(n)},nt,tt;t.tt_isOpen=!1;r.$observe(u,function(n){t.tt_content=n;!n&&t.tt_isOpen&&g()});r.$observe(l+"Title",function(n){t.tt_title=n});r.$observe(l+"Placement",function(n){t.tt_placement=angular.isDefined(n)?n:v.placement});r.$observe(l+"PopupDelay",function(n){var i=parseInt(n,10);t.tt_popupDelay=isNaN(i)?v.popupDelay:i});nt=function(){i.unbind(c.show,k);i.unbind(c.hide,d)};r.$observe(l+"Trigger",function(n){nt();c=w(n);c.show===c.hide?i.bind(c.show,ut):(i.bind(c.show,k),i.bind(c.hide,d))});tt=t.$eval(r[l+"Animation"]);t.tt_animation=angular.isDefined(tt)?!!tt:v.animation;r.$observe(l+"AppendToBody",function(n){p=angular.isDefined(n)?o(n)(t):p});p&&t.$on("$locationChangeSuccess",function(){t.tt_isOpen&&g()});t.$on("$destroy",function(){e.cancel(a);e.cancel(y);nt();b()})}}}}}]}).directive("tooltipPopup",function(){return{restrict:"EA",replace:!0,scope:{content:"@",placement:"@",animation:"&",isOpen:"&"},templateUrl:"template/tooltip/tooltip-popup.html"}}).directive("tooltip",["$tooltip",function(n){return n("tooltip","tooltip","mouseenter")}]).directive("tooltipHtmlUnsafePopup",function(){return{restrict:"EA",replace:!0,scope:{content:"@",placement:"@",animation:"&",isOpen:"&"},templateUrl:"template/tooltip/tooltip-html-unsafe-popup.html"}}).directive("tooltipHtmlUnsafe",["$tooltip",function(n){return n("tooltipHtmlUnsafe","tooltip","mouseenter")}]);angular.module("ui.bootstrap.popover",["ui.bootstrap.tooltip"]).directive("popoverPopup",function(){return{restrict:"EA",replace:!0,scope:{title:"@",content:"@",placement:"@",animation:"&",isOpen:"&"},templateUrl:"template/popover/popover.html"}}).directive("popover",["$tooltip",function(n){return n("popover","popover","click")}]);angular.module("ui.bootstrap.progressbar",[]).constant("progressConfig",{animate:!0,max:100}).controller("ProgressController",["$scope","$attrs","progressConfig",function(n,t,i){var r=this,u=angular.isDefined(t.animate)?n.$parent.$eval(t.animate):i.animate;this.bars=[];n.max=angular.isDefined(t.max)?n.$parent.$eval(t.max):i.max;this.addBar=function(t,i){u||i.css({transition:"none"});this.bars.push(t);t.$watch("value",function(i){t.percent=+(100*i/n.max).toFixed(2)});t.$on("$destroy",function(){i=null;r.removeBar(t)})};this.removeBar=function(n){this.bars.splice(this.bars.indexOf(n),1)}}]).directive("progress",function(){return{restrict:"EA",replace:!0,transclude:!0,controller:"ProgressController",require:"progress",scope:{},templateUrl:"template/progressbar/progress.html"}}).directive("bar",function(){return{restrict:"EA",replace:!0,transclude:!0,require:"^progress",scope:{value:"=",type:"@"},templateUrl:"template/progressbar/bar.html",link:function(n,t,i,r){r.addBar(n,t)}}}).directive("progressbar",function(){return{restrict:"EA",replace:!0,transclude:!0,controller:"ProgressController",scope:{value:"=",type:"@"},templateUrl:"template/progressbar/progressbar.html",link:function(n,t,i,r){r.addBar(n,angular.element(t.children()[0]))}}});angular.module("ui.bootstrap.rating",[]).constant("ratingConfig",{max:5,stateOn:null,stateOff:null}).controller("RatingController",["$scope","$attrs","ratingConfig",function(n,t,i){var r={$setViewValue:angular.noop};this.init=function(u){r=u;r.$render=this.render;this.stateOn=angular.isDefined(t.stateOn)?n.$parent.$eval(t.stateOn):i.stateOn;this.stateOff=angular.isDefined(t.stateOff)?n.$parent.$eval(t.stateOff):i.stateOff;var f=angular.isDefined(t.ratingStates)?n.$parent.$eval(t.ratingStates):new Array(angular.isDefined(t.max)?n.$parent.$eval(t.max):i.max);n.range=this.buildTemplateObjects(f)};this.buildTemplateObjects=function(n){for(var t=0,i=n.length;i>t;t++)n[t]=angular.extend({index:t},{stateOn:this.stateOn,stateOff:this.stateOff},n[t]);return n};n.rate=function(t){!n.readonly&&t>=0&&t<=n.range.length&&(r.$setViewValue(t),r.$render())};n.enter=function(t){n.readonly||(n.value=t);n.onHover({value:t})};n.reset=function(){n.value=r.$viewValue;n.onLeave()};n.onKeydown=function(t){/(37|38|39|40)/.test(t.which)&&(t.preventDefault(),t.stopPropagation(),n.rate(n.value+(38===t.which||39===t.which?1:-1)))};this.render=function(){n.value=r.$viewValue}}]).directive("rating",function(){return{restrict:"EA",require:["rating","ngModel"],scope:{readonly:"=?",onHover:"&",onLeave:"&"},controller:"RatingController",templateUrl:"template/rating/rating.html",replace:!0,link:function(n,t,i,r){var f=r[0],u=r[1];u&&f.init(u)}}});angular.module("ui.bootstrap.tabs",[]).controller("TabsetController",["$scope",function(n){var i=this,t=i.tabs=n.tabs=[];i.select=function(n){angular.forEach(t,function(t){t.active&&t!==n&&(t.active=!1,t.onDeselect())});n.active=!0;n.onSelect()};i.addTab=function(n){t.push(n);1===t.length?n.active=!0:n.active&&i.select(n)};i.removeTab=function(n){var r=t.indexOf(n),u;n.active&&t.length>1&&(u=r==t.length-1?r-1:r+1,i.select(t[u]));t.splice(r,1)}}]).directive("tabset",function(){return{restrict:"EA",transclude:!0,replace:!0,scope:{type:"@"},controller:"TabsetController",templateUrl:"template/tabs/tabset.html",link:function(n,t,i){n.vertical=angular.isDefined(i.vertical)?n.$parent.$eval(i.vertical):!1;n.justified=angular.isDefined(i.justified)?n.$parent.$eval(i.justified):!1}}}).directive("tab",["$parse",function(n){return{require:"^tabset",restrict:"EA",replace:!0,templateUrl:"template/tabs/tab.html",transclude:!0,scope:{active:"=?",heading:"@",onSelect:"&select",onDeselect:"&deselect"},controller:function(){},compile:function(t,i,r){return function(t,i,u,f){t.$watch("active",function(n){n&&f.select(t)});t.disabled=!1;u.disabled&&t.$parent.$watch(n(u.disabled),function(n){t.disabled=!!n});t.select=function(){t.disabled||(t.active=!0)};f.addTab(t);t.$on("$destroy",function(){f.removeTab(t)});t.$transcludeFn=r}}}}]).directive("tabHeadingTransclude",[function(){return{restrict:"A",require:"^tab",link:function(n,t){n.$watch("headingElement",function(n){n&&(t.html(""),t.append(n))})}}}]).directive("tabContentTransclude",function(){function n(n){return n.tagName&&(n.hasAttribute("tab-heading")||n.hasAttribute("data-tab-heading")||"tab-heading"===n.tagName.toLowerCase()||"data-tab-heading"===n.tagName.toLowerCase())}return{restrict:"A",require:"^tabset",link:function(t,i,r){var u=t.$eval(r.tabContentTransclude);u.$transcludeFn(u.$parent,function(t){angular.forEach(t,function(t){n(t)?u.headingElement=t:i.append(t)})})}}});angular.module("ui.bootstrap.timepicker",[]).constant("timepickerConfig",{hourStep:1,minuteStep:1,showMeridian:!0,meridians:null,readonlyInput:!1,mousewheel:!0}).controller("TimepickerController",["$scope","$attrs","$parse","$log","$locale","timepickerConfig",function(n,t,i,r,u,f){function p(){var t=parseInt(n.hours,10),i=n.showMeridian?t>0&&13>t:t>=0&&24>t;if(i)return(n.showMeridian&&(12===t&&(t=0),n.meridian===y[1]&&(t+=12)),t)}function w(){var t=parseInt(n.minutes,10);if(t>=0&&60>t)return t}function h(n){return angular.isDefined(n)&&n.toString().length<2?"0"+n:n}function c(n){b();o.$setViewValue(new Date(e));v(n)}function b(){o.$setValidity("time",!0);n.invalidHours=!1;n.invalidMinutes=!1}function v(t){var i=e.getHours(),r=e.getMinutes();n.showMeridian&&(i=0===i||12===i?12:i%12);n.hours="h"===t?i:h(i);n.minutes="m"===t?r:h(r);n.meridian=e.getHours()<12?y[0]:y[1]}function s(n){var t=new Date(e.getTime()+6e4*n);e.setHours(t.getHours(),t.getMinutes());c()}var e=new Date,o={$setViewValue:angular.noop},y=angular.isDefined(t.meridians)?n.$parent.$eval(t.meridians):f.meridians||u.DATETIME_FORMATS.AMPMS,l,a;this.init=function(i,r){o=i;o.$render=this.render;var u=r.eq(0),e=r.eq(1),s=angular.isDefined(t.mousewheel)?n.$parent.$eval(t.mousewheel):f.mousewheel;s&&this.setupMousewheelEvents(u,e);n.readonlyInput=angular.isDefined(t.readonlyInput)?n.$parent.$eval(t.readonlyInput):f.readonlyInput;this.setupInputEvents(u,e)};l=f.hourStep;t.hourStep&&n.$parent.$watch(i(t.hourStep),function(n){l=parseInt(n,10)});a=f.minuteStep;t.minuteStep&&n.$parent.$watch(i(t.minuteStep),function(n){a=parseInt(n,10)});n.showMeridian=f.showMeridian;t.showMeridian&&n.$parent.$watch(i(t.showMeridian),function(t){if(n.showMeridian=!!t,o.$error.time){var i=p(),r=w();angular.isDefined(i)&&angular.isDefined(r)&&(e.setHours(i),c())}else v()});this.setupMousewheelEvents=function(t,i){var r=function(n){n.originalEvent&&(n=n.originalEvent);var t=n.wheelDelta?n.wheelDelta:-n.deltaY;return n.detail||t>0};t.bind("mousewheel wheel",function(t){n.$apply(r(t)?n.incrementHours():n.decrementHours());t.preventDefault()});i.bind("mousewheel wheel",function(t){n.$apply(r(t)?n.incrementMinutes():n.decrementMinutes());t.preventDefault()})};this.setupInputEvents=function(t,i){if(n.readonlyInput)return n.updateHours=angular.noop,void(n.updateMinutes=angular.noop);var r=function(t,i){o.$setViewValue(null);o.$setValidity("time",!1);angular.isDefined(t)&&(n.invalidHours=t);angular.isDefined(i)&&(n.invalidMinutes=i)};n.updateHours=function(){var n=p();angular.isDefined(n)?(e.setHours(n),c("h")):r(!0)};t.bind("blur",function(){!n.invalidHours&&n.hours<10&&n.$apply(function(){n.hours=h(n.hours)})});n.updateMinutes=function(){var n=w();angular.isDefined(n)?(e.setMinutes(n),c("m")):r(void 0,!0)};i.bind("blur",function(){!n.invalidMinutes&&n.minutes<10&&n.$apply(function(){n.minutes=h(n.minutes)})})};this.render=function(){var n=o.$modelValue?new Date(o.$modelValue):null;isNaN(n)?(o.$setValidity("time",!1),r.error('Timepicker directive: "ng-model" value must be a Date object, a number of milliseconds since 01.01.1970 or a string representing an RFC2822 or ISO 8601 date.')):(n&&(e=n),b(),v())};n.incrementHours=function(){s(60*l)};n.decrementHours=function(){s(60*-l)};n.incrementMinutes=function(){s(a)};n.decrementMinutes=function(){s(-a)};n.toggleMeridian=function(){s(720*(e.getHours()<12?1:-1))}}]).directive("timepicker",function(){return{restrict:"EA",require:["timepicker","?^ngModel"],controller:"TimepickerController",replace:!0,scope:{},templateUrl:"template/timepicker/timepicker.html",link:function(n,t,i,r){var f=r[0],u=r[1];u&&f.init(u,t.find("input"))}}});angular.module("ui.bootstrap.typeahead",["ui.bootstrap.position","ui.bootstrap.bindHtml"]).factory("typeaheadParser",["$parse",function(n){var t=/^\s*([\s\S]+?)(?:\s+as\s+([\s\S]+?))?\s+for\s+(?:([\$\w][\$\w\d]*))\s+in\s+([\s\S]+?)$/;return{parse:function(i){var r=i.match(t);if(!r)throw new Error('Expected typeahead specification in form of "_modelValue_ (as _label_)? for _item_ in _collection_" but got "'+i+'".');return{itemName:r[3],source:n(r[4]),viewMapper:n(r[2]||r[1]),modelMapper:n(r[1])}}}}]).directive("typeahead",["$compile","$parse","$q","$timeout","$document","$position","typeaheadParser",function(n,t,i,r,u,f,e){var o=[9,13,27,38,40];return{require:"ngModel",link:function(s,h,c,l){var k,st=s.$eval(c.typeaheadMinLength)||1,ut=s.$eval(c.typeaheadWaitMs)||0,ht=s.$eval(c.typeaheadEditable)!==!1,p=t(c.typeaheadLoading).assign||angular.noop,ct=t(c.typeaheadOnSelect),ft=c.typeaheadInputFormatter?t(c.typeaheadInputFormatter):void 0,et=c.typeaheadAppendToBody?s.$eval(c.typeaheadAppendToBody):!1,lt=t(c.ngModel).assign,v=e.parse(c.typeahead),a=s.$new(),w,b,y,d,g,nt,ot,tt,it,rt;s.$on("$destroy",function(){a.$destroy()});w="typeahead-"+a.$id+"-"+Math.floor(1e4*Math.random());h.attr({"aria-autocomplete":"list","aria-expanded":!1,"aria-owns":w});b=angular.element("<div typeahead-popup><\/div>");b.attr({id:w,matches:"matches",active:"activeIdx",select:"select(activeIdx)",query:"query",position:"position"});angular.isDefined(c.typeaheadTemplateUrl)&&b.attr("template-url",c.typeaheadTemplateUrl);y=function(){a.matches=[];a.activeIdx=-1;h.attr("aria-expanded",!1)};d=function(n){return w+"-option-"+n};a.$watch("activeIdx",function(n){0>n?h.removeAttr("aria-activedescendant"):h.attr("aria-activedescendant",d(n))});g=function(n){var t={$viewValue:n};p(s,!0);i.when(v.source(s,t)).then(function(i){var u=n===l.$viewValue,r;if(u&&k)if(i.length>0){for(a.activeIdx=0,a.matches.length=0,r=0;r<i.length;r++)t[v.itemName]=i[r],a.matches.push({id:d(r),label:v.viewMapper(a,t),model:i[r]});a.query=n;a.position=et?f.offset(h):f.position(h);a.position.top=a.position.top+h.prop("offsetHeight");h.attr("aria-expanded",!0)}else y();u&&p(s,!1)},function(){y();p(s,!1)})};y();a.query=void 0;ot=function(n){nt=r(function(){g(n)},ut)};tt=function(){nt&&r.cancel(nt)};l.$parsers.unshift(function(n){return k=!0,n&&n.length>=st?ut>0?(tt(),ot(n)):g(n):(p(s,!1),tt(),y()),ht?n:n?void l.$setValidity("editable",!1):(l.$setValidity("editable",!0),n)});l.$formatters.push(function(n){var i,r,t={};return ft?(t.$model=n,ft(s,t)):(t[v.itemName]=n,i=v.viewMapper(s,t),t[v.itemName]=void 0,r=v.viewMapper(s,t),i!==r?i:n)});a.select=function(n){var t,u,i={};i[v.itemName]=u=a.matches[n].model;t=v.modelMapper(s,i);lt(s,t);l.$setValidity("editable",!0);ct(s,{$item:u,$model:t,$label:v.viewMapper(s,i)});y();r(function(){h[0].focus()},0,!1)};h.bind("keydown",function(n){0!==a.matches.length&&-1!==o.indexOf(n.which)&&(n.preventDefault(),40===n.which?(a.activeIdx=(a.activeIdx+1)%a.matches.length,a.$digest()):38===n.which?(a.activeIdx=(a.activeIdx?a.activeIdx:a.matches.length)-1,a.$digest()):13===n.which||9===n.which?a.$apply(function(){a.select(a.activeIdx)}):27===n.which&&(n.stopPropagation(),y(),a.$digest()))});h.bind("blur",function(){k=!1});it=function(n){h[0]!==n.target&&(y(),a.$digest())};u.bind("click",it);s.$on("$destroy",function(){u.unbind("click",it)});rt=n(b)(a);et?u.find("body").append(rt):h.after(rt)}}}]).directive("typeaheadPopup",function(){return{restrict:"EA",scope:{matches:"=",query:"=",active:"=",position:"=",select:"&"},replace:!0,templateUrl:"template/typeahead/typeahead-popup.html",link:function(n,t,i){n.templateUrl=i.templateUrl;n.isOpen=function(){return n.matches.length>0};n.isActive=function(t){return n.active==t};n.selectActive=function(t){n.active=t};n.selectMatch=function(t){n.select({activeIdx:t})}}}}).directive("typeaheadMatch",["$http","$templateCache","$compile","$parse",function(n,t,i,r){return{restrict:"EA",scope:{index:"=",match:"=",query:"="},link:function(u,f,e){var o=r(e.templateUrl)(u.$parent)||"template/typeahead/typeahead-match.html";n.get(o,{cache:t}).success(function(n){f.replaceWith(i(n.trim())(u))})}}}]).filter("typeaheadHighlight",function(){function n(n){return n.replace(/([.?*+^$[\]\\(){}|-])/g,"\\$1")}return function(t,i){return i?(""+t).replace(new RegExp(n(i),"gi"),"<strong>$&<\/strong>"):t}});angular.module("template/accordion/accordion-group.html",[]).run(["$templateCache",function(n){n.put("template/accordion/accordion-group.html",'<div class="panel panel-default">\n  <div class="panel-heading">\n    <h4 class="panel-title">\n      <a class="accordion-toggle" ng-click="toggleOpen()" accordion-transclude="heading"><span ng-class="{\'text-muted\': isDisabled}">{{heading}}<\/span><\/a>\n    <\/h4>\n  <\/div>\n  <div class="panel-collapse" collapse="!isOpen">\n\t  <div class="panel-body" ng-transclude><\/div>\n  <\/div>\n<\/div>')}]);angular.module("template/accordion/accordion.html",[]).run(["$templateCache",function(n){n.put("template/accordion/accordion.html",'<div class="panel-group" ng-transclude><\/div>')}]);angular.module("template/alert/alert.html",[]).run(["$templateCache",function(n){n.put("template/alert/alert.html",'<div class="alert" ng-class="[\'alert-\' + (type || \'warning\'), closeable ? \'alert-dismissable\' : null]" role="alert">\n    <button ng-show="closeable" type="button" class="close" ng-click="close()">\n        <span aria-hidden="true">&times;<\/span>\n        <span class="sr-only">Close<\/span>\n    <\/button>\n    <div ng-transclude><\/div>\n<\/div>\n')}]);angular.module("template/carousel/carousel.html",[]).run(["$templateCache",function(n){n.put("template/carousel/carousel.html",'<div ng-mouseenter="pause()" ng-mouseleave="play()" class="carousel" ng-swipe-right="prev()" ng-swipe-left="next()">\n    <ol class="carousel-indicators" ng-show="slides.length > 1">\n        <li ng-repeat="slide in slides track by $index" ng-class="{active: isActive(slide)}" ng-click="select(slide)"><\/li>\n    <\/ol>\n    <div class="carousel-inner" ng-transclude><\/div>\n    <a class="left carousel-control" ng-click="prev()" ng-show="slides.length > 1"><span class="glyphicon glyphicon-chevron-left"><\/span><\/a>\n    <a class="right carousel-control" ng-click="next()" ng-show="slides.length > 1"><span class="glyphicon glyphicon-chevron-right"><\/span><\/a>\n<\/div>\n')}]);angular.module("template/carousel/slide.html",[]).run(["$templateCache",function(n){n.put("template/carousel/slide.html","<div ng-class=\"{\n    'active': leaving || (active && !entering),\n    'prev': (next || active) && direction=='prev',\n    'next': (next || active) && direction=='next',\n    'right': direction=='prev',\n    'left': direction=='next'\n  }\" class=\"item text-center\" ng-transclude><\/div>\n")}]);angular.module("template/datepicker/datepicker.html",[]).run(["$templateCache",function(n){n.put("template/datepicker/datepicker.html",'<div ng-switch="datepickerMode" role="application" ng-keydown="keydown($event)">\n  <daypicker ng-switch-when="day" tabindex="0"><\/daypicker>\n  <monthpicker ng-switch-when="month" tabindex="0"><\/monthpicker>\n  <yearpicker ng-switch-when="year" tabindex="0"><\/yearpicker>\n<\/div>')}]);angular.module("template/datepicker/day.html",[]).run(["$templateCache",function(n){n.put("template/datepicker/day.html",'<table role="grid" aria-labelledby="{{uniqueId}}-title" aria-activedescendant="{{activeDateId}}">\n  <thead>\n    <tr>\n      <th><button type="button" class="btn btn-default btn-sm pull-left" ng-click="move(-1)" tabindex="-1"><i class="glyphicon glyphicon-chevron-left"><\/i><\/button><\/th>\n      <th colspan="{{5 + showWeeks}}"><button id="{{uniqueId}}-title" role="heading" aria-live="assertive" aria-atomic="true" type="button" class="btn btn-default btn-sm" ng-click="toggleMode()" tabindex="-1" style="width:100%;"><strong>{{title}}<\/strong><\/button><\/th>\n      <th><button type="button" class="btn btn-default btn-sm pull-right" ng-click="move(1)" tabindex="-1"><i class="glyphicon glyphicon-chevron-right"><\/i><\/button><\/th>\n    <\/tr>\n    <tr>\n      <th ng-show="showWeeks" class="text-center"><\/th>\n      <th ng-repeat="label in labels track by $index" class="text-center"><small aria-label="{{label.full}}">{{label.abbr}}<\/small><\/th>\n    <\/tr>\n  <\/thead>\n  <tbody>\n    <tr ng-repeat="row in rows track by $index">\n      <td ng-show="showWeeks" class="text-center h6"><em>{{ weekNumbers[$index] }}<\/em><\/td>\n      <td ng-repeat="dt in row track by dt.date" class="text-center" role="gridcell" id="{{dt.uid}}" aria-disabled="{{!!dt.disabled}}">\n        <button type="button" style="width:100%;" class="btn btn-default btn-sm" ng-class="{\'btn-info\': dt.selected, active: isActive(dt)}" ng-click="select(dt.date)" ng-disabled="dt.disabled" tabindex="-1"><span ng-class="{\'text-muted\': dt.secondary, \'text-info\': dt.current}">{{dt.label}}<\/span><\/button>\n      <\/td>\n    <\/tr>\n  <\/tbody>\n<\/table>\n')}]);angular.module("template/datepicker/month.html",[]).run(["$templateCache",function(n){n.put("template/datepicker/month.html",'<table role="grid" aria-labelledby="{{uniqueId}}-title" aria-activedescendant="{{activeDateId}}">\n  <thead>\n    <tr>\n      <th><button type="button" class="btn btn-default btn-sm pull-left" ng-click="move(-1)" tabindex="-1"><i class="glyphicon glyphicon-chevron-left"><\/i><\/button><\/th>\n      <th><button id="{{uniqueId}}-title" role="heading" aria-live="assertive" aria-atomic="true" type="button" class="btn btn-default btn-sm" ng-click="toggleMode()" tabindex="-1" style="width:100%;"><strong>{{title}}<\/strong><\/button><\/th>\n      <th><button type="button" class="btn btn-default btn-sm pull-right" ng-click="move(1)" tabindex="-1"><i class="glyphicon glyphicon-chevron-right"><\/i><\/button><\/th>\n    <\/tr>\n  <\/thead>\n  <tbody>\n    <tr ng-repeat="row in rows track by $index">\n      <td ng-repeat="dt in row track by dt.date" class="text-center" role="gridcell" id="{{dt.uid}}" aria-disabled="{{!!dt.disabled}}">\n        <button type="button" style="width:100%;" class="btn btn-default" ng-class="{\'btn-info\': dt.selected, active: isActive(dt)}" ng-click="select(dt.date)" ng-disabled="dt.disabled" tabindex="-1"><span ng-class="{\'text-info\': dt.current}">{{dt.label}}<\/span><\/button>\n      <\/td>\n    <\/tr>\n  <\/tbody>\n<\/table>\n')}]);angular.module("template/datepicker/popup.html",[]).run(["$templateCache",function(n){n.put("template/datepicker/popup.html",'<ul class="dropdown-menu" ng-style="{display: (isOpen && \'block\') || \'none\', top: position.top+\'px\', left: position.left+\'px\'}" ng-keydown="keydown($event)">\n\t<li ng-transclude><\/li>\n\t<li ng-if="showButtonBar" style="padding:10px 9px 2px">\n\t\t<span class="btn-group">\n\t\t\t<button type="button" class="btn btn-sm btn-info" ng-click="select(\'today\')">{{ getText(\'current\') }}<\/button>\n\t\t\t<button type="button" class="btn btn-sm btn-danger" ng-click="select(null)">{{ getText(\'clear\') }}<\/button>\n\t\t<\/span>\n\t\t<button type="button" class="btn btn-sm btn-success pull-right" ng-click="close()">{{ getText(\'close\') }}<\/button>\n\t<\/li>\n<\/ul>\n')}]);angular.module("template/datepicker/year.html",[]).run(["$templateCache",function(n){n.put("template/datepicker/year.html",'<table role="grid" aria-labelledby="{{uniqueId}}-title" aria-activedescendant="{{activeDateId}}">\n  <thead>\n    <tr>\n      <th><button type="button" class="btn btn-default btn-sm pull-left" ng-click="move(-1)" tabindex="-1"><i class="glyphicon glyphicon-chevron-left"><\/i><\/button><\/th>\n      <th colspan="3"><button id="{{uniqueId}}-title" role="heading" aria-live="assertive" aria-atomic="true" type="button" class="btn btn-default btn-sm" ng-click="toggleMode()" tabindex="-1" style="width:100%;"><strong>{{title}}<\/strong><\/button><\/th>\n      <th><button type="button" class="btn btn-default btn-sm pull-right" ng-click="move(1)" tabindex="-1"><i class="glyphicon glyphicon-chevron-right"><\/i><\/button><\/th>\n    <\/tr>\n  <\/thead>\n  <tbody>\n    <tr ng-repeat="row in rows track by $index">\n      <td ng-repeat="dt in row track by dt.date" class="text-center" role="gridcell" id="{{dt.uid}}" aria-disabled="{{!!dt.disabled}}">\n        <button type="button" style="width:100%;" class="btn btn-default" ng-class="{\'btn-info\': dt.selected, active: isActive(dt)}" ng-click="select(dt.date)" ng-disabled="dt.disabled" tabindex="-1"><span ng-class="{\'text-info\': dt.current}">{{dt.label}}<\/span><\/button>\n      <\/td>\n    <\/tr>\n  <\/tbody>\n<\/table>\n')}]);angular.module("template/modal/backdrop.html",[]).run(["$templateCache",function(n){n.put("template/modal/backdrop.html",'<div class="modal-backdrop fade {{ backdropClass }}"\n     ng-class="{in: animate}"\n     ng-style="{\'z-index\': 1040 + (index && 1 || 0) + index*10}"\n><\/div>\n')}]);angular.module("template/modal/window.html",[]).run(["$templateCache",function(n){n.put("template/modal/window.html",'<div tabindex="-1" role="dialog" class="modal fade" ng-class="{in: animate}" ng-style="{\'z-index\': 1050 + index*10, display: \'block\'}" ng-click="close($event)">\n    <div class="modal-dialog" ng-class="{\'modal-sm\': size == \'sm\', \'modal-lg\': size == \'lg\'}"><div class="modal-content" modal-transclude><\/div><\/div>\n<\/div>')}]);angular.module("template/pagination/pager.html",[]).run(["$templateCache",function(n){n.put("template/pagination/pager.html",'<ul class="pager">\n  <li ng-class="{disabled: noPrevious(), previous: align}"><a href ng-click="selectPage(page - 1)">{{getText(\'previous\')}}<\/a><\/li>\n  <li ng-class="{disabled: noNext(), next: align}"><a href ng-click="selectPage(page + 1)">{{getText(\'next\')}}<\/a><\/li>\n<\/ul>')}]);angular.module("template/pagination/pagination.html",[]).run(["$templateCache",function(n){n.put("template/pagination/pagination.html",'<ul class="pagination">\n  <li ng-if="boundaryLinks" ng-class="{disabled: noPrevious()}"><a href ng-click="selectPage(1)">{{getText(\'first\')}}<\/a><\/li>\n  <li ng-if="directionLinks" ng-class="{disabled: noPrevious()}"><a href ng-click="selectPage(page - 1)">{{getText(\'previous\')}}<\/a><\/li>\n  <li ng-repeat="page in pages track by $index" ng-class="{active: page.active}"><a href ng-click="selectPage(page.number)">{{page.text}}<\/a><\/li>\n  <li ng-if="directionLinks" ng-class="{disabled: noNext()}"><a href ng-click="selectPage(page + 1)">{{getText(\'next\')}}<\/a><\/li>\n  <li ng-if="boundaryLinks" ng-class="{disabled: noNext()}"><a href ng-click="selectPage(totalPages)">{{getText(\'last\')}}<\/a><\/li>\n<\/ul>')}]);angular.module("template/tooltip/tooltip-html-unsafe-popup.html",[]).run(["$templateCache",function(n){n.put("template/tooltip/tooltip-html-unsafe-popup.html",'<div class="tooltip {{placement}}" ng-class="{ in: isOpen(), fade: animation() }">\n  <div class="tooltip-arrow"><\/div>\n  <div class="tooltip-inner" bind-html-unsafe="content"><\/div>\n<\/div>\n')}]);angular.module("template/tooltip/tooltip-popup.html",[]).run(["$templateCache",function(n){n.put("template/tooltip/tooltip-popup.html",'<div class="tooltip {{placement}}" ng-class="{ in: isOpen(), fade: animation() }">\n  <div class="tooltip-arrow"><\/div>\n  <div class="tooltip-inner" ng-bind="content"><\/div>\n<\/div>\n')}]);angular.module("template/popover/popover.html",[]).run(["$templateCache",function(n){n.put("template/popover/popover.html",'<div class="popover {{placement}}" ng-class="{ in: isOpen(), fade: animation() }">\n  <div class="arrow"><\/div>\n\n  <div class="popover-inner">\n      <h3 class="popover-title" ng-bind="title" ng-show="title"><\/h3>\n      <div class="popover-content" ng-bind="content"><\/div>\n  <\/div>\n<\/div>\n')}]);angular.module("template/progressbar/bar.html",[]).run(["$templateCache",function(n){n.put("template/progressbar/bar.html",'<div class="progress-bar" ng-class="type && \'progress-bar-\' + type" role="progressbar" aria-valuenow="{{value}}" aria-valuemin="0" aria-valuemax="{{max}}" ng-style="{width: percent + \'%\'}" aria-valuetext="{{percent | number:0}}%" ng-transclude><\/div>')}]);angular.module("template/progressbar/progress.html",[]).run(["$templateCache",function(n){n.put("template/progressbar/progress.html",'<div class="progress" ng-transclude><\/div>')}]);angular.module("template/progressbar/progressbar.html",[]).run(["$templateCache",function(n){n.put("template/progressbar/progressbar.html",'<div class="progress">\n  <div class="progress-bar" ng-class="type && \'progress-bar-\' + type" role="progressbar" aria-valuenow="{{value}}" aria-valuemin="0" aria-valuemax="{{max}}" ng-style="{width: percent + \'%\'}" aria-valuetext="{{percent | number:0}}%" ng-transclude><\/div>\n<\/div>')}]);angular.module("template/rating/rating.html",[]).run(["$templateCache",function(n){n.put("template/rating/rating.html",'<span ng-mouseleave="reset()" ng-keydown="onKeydown($event)" tabindex="0" role="slider" aria-valuemin="0" aria-valuemax="{{range.length}}" aria-valuenow="{{value}}">\n    <i ng-repeat="r in range track by $index" ng-mouseenter="enter($index + 1)" ng-click="rate($index + 1)" class="glyphicon" ng-class="$index < value && (r.stateOn || \'glyphicon-star\') || (r.stateOff || \'glyphicon-star-empty\')">\n        <span class="sr-only">({{ $index < value ? \'*\' : \' \' }})<\/span>\n    <\/i>\n<\/span>')}]);angular.module("template/tabs/tab.html",[]).run(["$templateCache",function(n){n.put("template/tabs/tab.html",'<li ng-class="{active: active, disabled: disabled}">\n  <a ng-click="select()" tab-heading-transclude>{{heading}}<\/a>\n<\/li>\n')}]);angular.module("template/tabs/tabset.html",[]).run(["$templateCache",function(n){n.put("template/tabs/tabset.html",'<div>\n  <ul class="nav nav-{{type || \'tabs\'}}" ng-class="{\'nav-stacked\': vertical, \'nav-justified\': justified}" ng-transclude><\/ul>\n  <div class="tab-content">\n    <div class="tab-pane" \n         ng-repeat="tab in tabs" \n         ng-class="{active: tab.active}"\n         tab-content-transclude="tab">\n    <\/div>\n  <\/div>\n<\/div>\n')}]);angular.module("template/timepicker/timepicker.html",[]).run(["$templateCache",function(n){n.put("template/timepicker/timepicker.html",'<table>\n\t<tbody>\n\t\t<tr class="text-center">\n\t\t\t<td><a ng-click="incrementHours()" class="btn btn-link"><span class="glyphicon glyphicon-chevron-up"><\/span><\/a><\/td>\n\t\t\t<td>&nbsp;<\/td>\n\t\t\t<td><a ng-click="incrementMinutes()" class="btn btn-link"><span class="glyphicon glyphicon-chevron-up"><\/span><\/a><\/td>\n\t\t\t<td ng-show="showMeridian"><\/td>\n\t\t<\/tr>\n\t\t<tr>\n\t\t\t<td style="width:50px;" class="form-group" ng-class="{\'has-error\': invalidHours}">\n\t\t\t\t<input type="text" ng-model="hours" ng-change="updateHours()" class="form-control text-center" ng-mousewheel="incrementHours()" ng-readonly="readonlyInput" maxlength="2">\n\t\t\t<\/td>\n\t\t\t<td>:<\/td>\n\t\t\t<td style="width:50px;" class="form-group" ng-class="{\'has-error\': invalidMinutes}">\n\t\t\t\t<input type="text" ng-model="minutes" ng-change="updateMinutes()" class="form-control text-center" ng-readonly="readonlyInput" maxlength="2">\n\t\t\t<\/td>\n\t\t\t<td ng-show="showMeridian"><button type="button" class="btn btn-default text-center" ng-click="toggleMeridian()">{{meridian}}<\/button><\/td>\n\t\t<\/tr>\n\t\t<tr class="text-center">\n\t\t\t<td><a ng-click="decrementHours()" class="btn btn-link"><span class="glyphicon glyphicon-chevron-down"><\/span><\/a><\/td>\n\t\t\t<td>&nbsp;<\/td>\n\t\t\t<td><a ng-click="decrementMinutes()" class="btn btn-link"><span class="glyphicon glyphicon-chevron-down"><\/span><\/a><\/td>\n\t\t\t<td ng-show="showMeridian"><\/td>\n\t\t<\/tr>\n\t<\/tbody>\n<\/table>\n')}]);angular.module("template/typeahead/typeahead-match.html",[]).run(["$templateCache",function(n){n.put("template/typeahead/typeahead-match.html",'<a tabindex="-1" bind-html-unsafe="match.label | typeaheadHighlight:query"><\/a>')}]);angular.module("template/typeahead/typeahead-popup.html",[]).run(["$templateCache",function(n){n.put("template/typeahead/typeahead-popup.html",'<ul class="dropdown-menu" ng-show="isOpen()" ng-style="{top: position.top+\'px\', left: position.left+\'px\'}" style="display: block;" role="listbox" aria-hidden="{{!isOpen()}}">\n    <li ng-repeat="match in matches track by $index" ng-class="{active: isActive($index) }" ng-mouseenter="selectActive($index)" ng-click="selectMatch($index)" role="option" id="{{match.id}}">\n        <div typeahead-match index="$index" match="match" query="query" template-url="templateUrl"><\/div>\n    <\/li>\n<\/ul>\n')}]);!function(n,t){"use strict";n.module("ng.shims.placeholder",[]).directive("placeholder",["$timeout",function(i){if(!n.mock){var r=t.createElement("input");if(void 0!==r.placeholder)return{}}return{restrict:"A",require:"?ngModel",priority:1,link:function(r,u,f,e){function v(){var n=u.val();u.hasClass(h)&&n===c||(t.documentMode<=11?i(function(){l(n)},0):l(n))}function l(n){n||o===t.activeElement?(u.removeClass(h),a&&p(),u.val(n)):(u.addClass(h),a?g():u.val(c))}function b(){return e?r.$eval(f.ngModel)||"":k()||""}function k(){var n=u.val();return n===f.placeholder&&(n=""),n}function d(){s=n.element('<input type="text" value="'+c+'"/>');y();s.addClass(h).addClass("ng-hide").bind("focus",nt);o.parentNode.insertBefore(s[0],o)}function y(){s.val(c).attr("class",u.attr("class")||"").attr("style",u.attr("style")||"")}function g(){y();u.addClass("ng-hide");s.removeClass("ng-hide")}function p(){s.addClass("ng-hide");u.removeClass("ng-hide")}function nt(){p();o.focus()}var s,tt=b(),o=u[0],w=o.nodeName.toLowerCase(),it="input"===w||"textarea"===w,a="password"===f.type,c=f.placeholder,h="empty";c&&it&&(a&&d(),l(tt),u.bind("focus",function(){u.hasClass(h)&&(u.val(""),u.removeClass(h),o.select())}),u.bind("blur",v),e||u.bind("change",v),e&&(e.$render=function(){l(e.$viewValue);o!==t.activeElement||u.val()||o.select()}))}}}])}(window.angular,window.document);angular.module("mni.utils",[]).service("Utils",["$q","$parse","$interpolate",function(n,t,i){function r(n){return function(){return n}}function u(n,t,i){for(var u=Object(n),c=u.length>>>0,s=[],e=[],r=0;r<c;r++)if(r in u){var h=u[r],o=t.call(i,h,r,u),f=e[s.indexOf(o)];f||(e[s.push(o)-1]=f=[],f.key=o);f.push(h)}return e}function f(n){return!angular.isString(n)||!n.length}function h(n){return!angular.isString(n)||!n.length||!/\S/.test(n)}function e(n,t){var i={};return angular.forEach(t,function(t,r){var u=n[r];angular.equals(t,u)||(i[r]=angular.isObject(t)?e(u||{},t):t)}),i}function c(n,t){return n===t?null:n}function o(n){return(n=+n,n===0||isNaN(n))?n:n>0?1:-1}function s(n,t){if(typeof t=="undefined"||+t==0)return Math.round(n);n=+n;t=+t;var i=o(n);return(i<0&&(n=-n),isNaN(n)||!(typeof t=="number"&&t%1==0))?NaN:(n=n.toString().split("e"),n=Math.round(+(n[0]+"e"+(n[1]?+n[1]+t:t))),n=n.toString().split("e"),n=+(n[0]+"e"+(n[1]?+n[1]-t:-t)),i*n)}return{trueFn:r(!0),falseFn:r(!1),sign:o,roundHalfAwayFromZero:s,currency:function(n){return s(n,2)},startOfDay:function(n){var t=new Date(n);return t.setHours(0,0,0,0),t},toLocalDate:function(n){if(angular.isString(n)){var t=n.match(/^(\d+)-(\d+)-(\d+)T(\d+):(\d+):(\d+)(?:\.(\d+))?/);n=t?new Date(+t[1],+t[2]-1,+t[3],+t[4],+t[5],+t[6],+t[7]||0):new Date(n)}return n},find:function(n,t,i){for(var u=Object(n),e=u.length>>>0,f,r=0;r<e;r++)if(r in u&&(f=u[r],t.call(i,f,r,u)))return f},where:function(n,t,i){for(var u=Object(n),o=u.length>>>0,f,e=[],r=0;r<o;r++)r in u&&(f=u[r],t.call(i,f,r,u)&&e.push(f));return e},map:function(n,t,i){for(var u=Object(n),o=u.length>>>0,f,e=[],r=0;r<o;r++)r in u&&(f=u[r],e.push(t.call(i,f,r,u)));return e},mapMany:function(n,t,i){var r=Object(n),u=[],f=0;return angular.forEach(r,function(n){angular.forEach(t.call(i,n,f++,r),function(n){u.push(n)})}),u},toDictionary:function(n,t,i){for(var f,o,u=Object(n),s=u.length>>>0,e={},r=0;r<s;r++)r in u&&(f=u[r],o=t.call(i,f,r,u),e[o]=f);return e},toLookup:function(n,t,i){for(var u=Object(n),h=u.length>>>0,f={},r=0;r<h;r++)if(r in u){var o=u[r],s=t.call(i,o,r,u),e=f[s];e||(f[s]=e=[]);e.push(o)}return f},groupBy:u,inGroupsOf:function(n,t){var i=0;return u(n,function(){return Math.floor(i++/t)})},remove:function(n,t){var i=n.indexOf(t);i>=0&&n.splice(i,1)},isNullOrEmpty:f,isNullOrWhitespace:h,isEmpty:function(n){return angular.isArray(n)?!n.length:angular.isObject(n)?angular.equals({},n):!1},concatWithSeperators:function(n,t){var r=[],i;for(angular.isFunction(t)||(t=f),t(n[0])||r.push(n[0]),i=2;i<n.length;i+=2)t(n[i])||(r.length&&r.push(n[i-1]),r.push(n[i]));return r.join("")},arrayToObject:function(n){var t={};return angular.forEach(n,function(n){t[n]=!0}),t},objectToArray:function(n){var t=[];return angular.forEach(n,function(n,i){n&&t.push(i)}),t},trimHtmlWhitespace:function(n){return n&&n.replace(/^(<br\s*\/>|&nbsp;|\s+)+|(<br\s*\/>|&nbsp;|\s+)+$/ig,"")},compare:function(n,t){var i=typeof n,r=typeof t;return i==r?(i=="string"&&(n=n.toLowerCase(),t=t.toLowerCase()),n===t)?0:n<t?-1:1:i<r?-1:1},diff:e,nullIf:c,format:function(n,t){return i(n)(t)},getter:function(n){return function(i){return t(n)(i)}},dataFromRequest:function(n){return n.data}}}]).filter("default",function(){return function(n,t){return angular.isDefined(n)?n:t}}).filter("ifBlank",["Utils",function(n){return function(t,i){return n.isNullOrWhitespace(t)?i:t}}]).filter("trim",function(){return function(n){return angular.isString(n)?n.trim():n}}).filter("capitalize",function(){return function(n){return angular.isString(n)?n.substring(0,1).toUpperCase()+n.substring(1):n}}).filter("joinBy",["Utils",function(n){return function(t,i,r){var u=[],f;return angular.forEach(t,function(t){n.isNullOrWhitespace(t)||u.push(t)}),f=u.pop(),u.length>0&&(f=[u.pop(),f].join(r||i)),u.length>0&&(u.push(f),f=u.join(i)),f}}]).filter("ssl",function(){return function(n){return angular.isString(n)?n.replace(/^http:\/\//,"https://"):n}});angular.module("eventRegistrationApp",["ngSanitize","ngCookies","ui.utils","ui.bootstrap","ng.shims.placeholder","mni.utils","eventRegistrationApp.constants","eventRegistrationApp.controllers","eventRegistrationApp.directives","eventRegistrationApp.factories","eventRegistrationApp.filters","eventRegistrationApp.providers","eventRegistrationApp.services"]);angular.module("eventRegistrationApp.constants",[]).constant("Enum",{MODE_NEW:1,MODE_EDIT:2,DISCOUNT_AGE:1,DISCOUNT_VOLUME:2,DISCOUNT_EARLY:3,DISCOUNT_MEMBERSHIP:4,DISCOUNT_PROMO:5,DISCOUNT_BENEFIT:6,DISCOUNT_FLAT:1,DISCOUNT_AMOUNT:2,DISCOUNT_PERCENT:3,ELIGIBILITY_ANY:0,ELIGIBILITY_MEMBER:1,ELIGIBILITY_NONMEMBER:2,PLACEMENT_HIDDEN:0,PLACEMENT_TOP:1,PLACEMENT_BOTTOM:2,PLACEMENT_RIGHT:3,AUTH_DUAL:1,AUTH_MEMBER_LIST:2,AUTH_CREDENTIALS:3,AUTH_EMAIL:4,MEMBERTYPE_PROSPECTIVE:1,MEMBERTYPE_ACTIVE:2,MEMBERTYPE_COURTESY:4,MEMBERTYPE_NONMEMBER:8,MEMBERTYPE_INACTIVE:16,MEMBERTYPE_DELETED:32,REPSTATUS_INACTIVE:1,REPSTATUS_ACTIVE:2,EVENTSTATUS_PENDING:1,EVENTSTATUS_APPROVED:2,EVENTSTATUS_DISABLED:4,INVITE_UNKNOWN:0,INVITE_INVITED:1,INVITE_ACCEPTED:2,INVITE_DECLINED:3,INVITE_REGISTERED:4,INVITE_ROSTERONLY:5,INVITE_SPONSORONLY:6,INVITE_REGISTERED_CANCELLED:7,INVITE_INCOMPLETE:8,PAYMENT_UNKNOWN:0,PAYMENT_CREDIT_CARD:1,PAYMENT_CHECK:2,PAYMENT_INVOICE:3,PAYMENT_NOCHARGE:4,BILL_INVOICE:1,BILL_CREDITCARD:2,BILL_CHECK:4,BILL_NOCHARGE:8,BILL_ALLOW_EXPLICIT:16,BILLING_STATUS_UNKNOWN:0,BILLING_STATUS_UNPAID:1,BILLING_STATUS_PAID:2,BILLING_SOLUTION_NATIVE:0,BILLING_SOLUTION_QUICKBOOKS:1,BANNER_TOP:1,BANNER_HEADER:2,BANNER_BOTTOM:3,LAYOUT_DEFAULT:0,LAYOUT_MIC:1,LAYOUT_BACKOFFICE:2,CUSTOMFIELDBASIS_PERATTENDEE:0,CUSTOMFIELDBASIS_PERFEE:1,REPRESENTATIVEVISIBILITY_ALL:0,REPRESENTATIVEVISIBILITY_MEMBER:1,COOKIE_AUTHTOKEN:"EventRegAuthToken",ALERT_CLOSABLE:{closable:!0},ALERT_NOCLOSE:{closable:!1},ALERT_REG_CLOSED:"Registration for this event has closed.",ALERT_REG_NOTFOUND:"Registration information could not be retrieved for this event.",ALERT_REG_NONREGISTRABLE:"Online registration is not available for this event.",ALERT_REG_ERRUSES:"An error occurred while attempting to load the registration's fee information.",ALERT_REG_ERRMEMLIST:"An error occurred while attempting to load the registration's membership list.",ALERT_REG_AUTOLOGIN:'We\'ve automatically logged you in as <span ng-if="representative"><strong>{{representative}}<\/strong> of <\/span><strong>{{member}}<\/strong> using your active session. Not you? <a href="javascript:void(0)" ng-click="login()" class="alert-link">Click here to re-login<\/a>.',ALERT_REG_REGISTERED:"Good news! You're already registered for the <strong>{{event}}<\/strong> event. <span ng-if=\"date.Utc\">Your registration was completed on <strong>{{date.Utc | date:'fullDate'}}<\/strong> at approximately <strong>{{date.Utc | date:'shortTime'}}<\/strong>.<\/span>",ALERT_REG_EDITABLE:"<span>You can update your attendee information below or contact <strong>{{association}}<\/strong> to make any other changes.<\/span>",ALERT_REG_LOGINFORMAT:"<strong>{{terminology.RegistrationLoginHeading}}<\/strong><br />{{terminology.RegistrationLoginLink}}",ALERT_REG_CANCELED:"Registration canceled. Returning to previous page&hellip;",ALERT_REG_READONLY:"Registrations for this event may no longer be edited. If information needs to be updated, please contact <strong>{{association}}<\/strong> for assistance.",ALERT_REG_UNSAVED:"Leaving this page before completion will discard all changes to your registration.",ALERT_REG_UPDATECONTACT:'You\'ve changed the attendee name. If you\'d also like to change the primary contact <a href="" ng-click="update()" class="alert-link">click here<\/a>.',ALERT_REG_BILLMEMBER:"An error occurred while attempting to load the default bill member for non-member registration's.",ALERT_REGISTRATION:{closable:!0,key:{}},ALERT_REGISTRATION_NOTFOUND:"We were unable to load your existing registration information.",ALERT_REGISTRATION_UNKNOWN:"An error occurred while attempting to submit your registration. Please try again soon.",ALERT_REGISTRATION_INVALID:"Your registration was rejected due to one or more errors. Please review your registration, fix any errors, and try again.",ALERT_REGISTRATION_COMPLETE:"Your registration has been successfully submitted.",ALERT_REGISTRATION_ERRADDCART:"An error occurred while attempting to initiate the checkout process.",ALERT_REGISTRATION_ERRRECORDPMT:"An error occurred while attempting to initiate the payment recording process.",ALERT_REGISTRATION_ERRRECEIPT:"An error occurred while attempting to create the receipt.",ALERT_REGISTRATION_ERRNOATTENDEE:"An error occurred while attempting to save the registration. No attendee found. Please fix attendee errors and try again.",ALERT_REGISTRATION_ADDEDTOCART:"Your registration has been successfully added to your cart.",ALERT_REGISTRATION_CHECKOUT:"Your registration has been successfully added to your cart. Proceeding to checkout&hellip;",ALERT_AUTH:{closable:!0,key:{}},ALERT_AUTH_INVALID:"The login supplied was not found in the system or is not configured to allow registration.",ALERT_AUTH_ERROR:"An error occurred while attempting to login. Please try again soon.",ALERT_AUTH_BADREP:"An error occurred while attempting to load a representative's profile.",ALERT_AUTH_MEMONLY:"This event is for members only.",ALERT_UNVERIFIED:{closable:!0,key:{}},ALERT_UNVERIFIED_LOGIN:'{{[ fields.Phone && "phone number", fields.Address && "address" ] | joinBy:", ":" and " | capitalize}} fields are required for this event. To automatically fill in this information from your account instead of manually entering it, for security purposes please login again using your login and password instead of using your email address only. <a href="javascript:void(0)" ng-click="login()" class="alert-link">Click here to login<\/a>.',ALERT_UNVERIFIED_SUCCESS:"Your login was successful. All contact info fields will automatically be filled in with info that is saved on your account.",ALERT_CIM:{closable:!0,key:{}},ALERT_CIM_LOGIN:'You may have a secure saved credit/debit card or account that could be used to pay for <strong>{{event}}<\/strong>. To use these secure accounts you need to login again using both your login and password. <a href="javascript:void(0)" ng-click="login()" class="alert-link">Click here to login again<\/a>.',ALERT_CIM_SUCCESS:"Your login was successful and you'll now be able to take advantage of the secure credit/debit card storage feature during checkout.",ALERT_PROMO:{closable:!0,key:{}},ALERT_PROMO_SUCCESS:"Promotional code has been successfully applied.",ALERT_PROMO_WRONG:"The promotional code cannot be used with this item.",ALERT_PROMO_INVALID:"The entered promotional code is not valid.",ALERT_PROMO_NOQUALIFY:"You may not use the entered code as its requirements have not been met.",ALERT_PROMO_ERRUSES:"An error occurred while attempting to load promotional code details.",ALERT_PROMO_LIMITREG:"This registration has reached the maximum number of uses for this discount.",ALERT_PROMO_LIMITEVENT:"The maximum number of uses has been reached for this event.",ALERT_PROMO_LIMITMEM:'The maximum number of uses has been reached for <strong>{{member | trim | ifBlank:("Member #" + memberId)}}<\/strong>.',ALERT_BENEFIT:{closable:!0,key:{}},ALERT_BENEFIT_SUCCESS:"Benefit item has been successfully applied.",ALERT_SOLDOUT_DEFAULT:"Registration for the <strong>{{event}}<\/strong> event is full.",ALERT_SOLDOUT_WAITING_LIST:'Registration for the <strong>{{event}}<\/strong> event is full. Would you like to add your name to the waiting list? <a href="" ng-click="openWaitingList()" class="alert-link">Yes please<\/a>',ALERT_DELAYED_SOLDOUT_DEFAULT:"I'm sorry. <strong>{{event}}<\/strong> became sold out before your registration was fully submitted.",ALERT_DELAYED_SOLDOUT_WAITING_LIST:'I\'m sorry. <strong>{{event}}<\/strong> became sold out before your registration was fully submitted.  Would you like to add your name to the waiting list? <a href="" ng-click="saveWaitList()" class="alert-link">Yes please<\/a>',ALERT_WAITING_LIST:{closable:!0,key:{}},ALERT_WAITING_LIST_UNKNOWN:"An error occurred while atempting to submit your waiting list entry. Please try again soon.",ALERT_RECOVERY:{closable:!0,key:{}},ALERT_RECOVERY_ERROR:"We were unable to process your password recovery request at this time. Please try again soon.",ALERT_RECOVERY_SUCCESS:"Your password reset link has been sent to <strong>{{emailAddress}}<\/strong>.",ALERT_FEES_INVOICERECEIPT:'Warning! {{invoiceId ? receiptId ? "An invoice and a payment have" : "An invoice has" : "A receipt has"}} already been created for this registration. Changing fees, fee amounts, and quantities is not recommended.',ALERT_FEES_DELETEATTENDEETITLE:"Delete Attendee",ALERT_FEES_DELETEATTENDEEMSG:'<p>Warning! {{invoiceId ? receiptId ? "An invoice and a payment have" : "An invoice has" : "A receipt has"}} already been created for this registration. Changing fees, fee amounts, and quantities is not recommended.<\/p><p>Consider keeping this registration as is and change the Registration Status to Canceled instead. Then create a new registration with the desired changes.<\/p><p>Are you sure you want to delete the attendee?<\/p>',ALERT_FEES_ADDITIONALQTYEXCEEDED:"Before your registration was fully submitted the Additional Items available quantity changed. Please reduce the quantity entered for Additional Items.",ALERT_BACKOFFICE_NOEMAIL:"A confirmation email can not be sent since no valid email addresses were entered for the attendees.",ALERT_BACKOFFICE_ATTENDEETITLE:"Add Attendee",ALERT_BACKOFFICE_ATTENDEEMULTIPLETITLE:"Add Multiple Attendees",ALERT_BACKOFFICE_ATTENDEESINGLE:"This event allows only one attendee per registration. Please enable the event's multiple attendees setting to add additional attendees.",ALERT_BACKOFFICE_ATTENDEEMULTIPLE:"There weren't enough fee options to create all of the additional attendees. Only {{created}} of the {{total}} attendees requested could be added. Please ensure that the event's attendee and fee limits have not been reached.",ALERT_BACKOFFICE_ATTENDEENOOPTS:"The maximum quantity of fees available to sell and the attendee limit have both been reached for this event. Please check the event's attendee limit and\\or maximum limit on fees.",ALERT_BACKOFFICE_ATTENDEELIMITREACHED:"The Attendee limit has been reached for this event or the limit of attendees per registration has been reached.<br/><br/>Click OK to add a Sponsor Only registration or click Cancel and add the attendees to the waiting list (if enabled) or increase the limits on the General tab.",ALERT_BACKOFFICE_ATTENDEELIMITREACHEDNONSPONSOR:"The Attendee limit has been reached for this event or the limit of attendees per registration has been reached.<br/><br/>Add the attendees to the waiting list (if enabled) or increase the limits on the General tab.",ALERT_BACKOFFICE_DELETETITLE:"Delete Registration",ALERT_BACKOFFICE_DELETEMSG:"Are you sure? Please confirm that you'd like to <strong>delete<\/strong> this registration. Information will be deleted permanently. Fees will apply to restore.",ALERT_BACKOFFICE_DELETEDENIED:"You do not have sufficient permissions to delete this registration.",ALERT_BACKOFFICE_DELETEINVALID:'This registration could not be deleted because it has {{receipt ? "a receipt" : ""}}{{receipt && invoices.length ? " and " : ""}}{{invoices.length ? invoices.length == 1 ? "an invoice" : invoices.length + " invoices" : ""}} applied to it. See {{receipt ? "receipt <strong>#" + receipt + "<\/strong>" : ""}}{{receipt && invoices.length ? " and " : ""}}{{invoices.length ? "invoice " + "<strong>#" + invoices.join("<\/strong>, <strong>#") + "<\/strong>" : ""}} to resolve the issue.',ALERT_BACKOFFICE_DELETEERROR:"We were unable to delete this registration at this time. Please try again soon.",ALERT_BACKOFFICE_NOFEESSET:'No fees have been set for this event. This attendee will be created with the default "Free Fee" assigned.',ALERT_BACKOFFICE_NOFEESREMAINING:"The maximum number of available fees have been used for this event. Please increase the available fees if you wish to add more registrations.",ALERT_BACKOFFICE_ATTENDEE:{closable:!0,key:{}},ALERT_BACKOFFICE_ATTENDEENONONOPTS:"The maximum quantity of non-member fees available to sell has been reached for this event. Please check the limits on your fees to view or change this.",ALERT_REGISTRANT:{closable:!0,key:{}},ALERT_REGISTRANT_CONFIRMTITLE:"Update Registrant",ALERT_REGISTRANT_CONFIRMMSG:"The first attendee, which is ordinarily the registrant, is linked to someone else. Would you like to <strong>update the registrant<\/strong> for this registration?",ALERT_REGISTRANT_CHANGEDMSG:'The registrant has been modified{{memberId ? " and linked to " + (representative ? ("<strong>" + representative + "<\/strong>" + (member ? " of <strong>" + member + "<\/strong>" : "")) : "<strong>" + (member ? member : "a member") + "<\/strong>") : ", unlinked, and flagged as <strong>a non-member<\/strong>"}}. Pricing options and discounts may be available that were not available before.',ALERT_VALIDATION:{closable:!0,key:{}},ALERT_VALIDATION_NOATTENDEE:"A registration must include at least 1 attendee. Please add an attendee by clicking the <strong>Add Attendee<\/strong> button.",ALERT_VALIDATION_ATTENDEES:'One or more attendee fields are not valid. Click the <span class="glyphicon glyphicon-user"><\/span> button to right of an invalid attendee to fix the errors.',ALERT_VALIDATION_CONTACT:"One or more contact fields are not valid. Please review the contact information and fix any errors.",ALERT_VALIDATION_ATTENDEE:"One or more attendee fields are not valid. Please review the attendee's information and fix any errors.",ALERT_VALIDATION_ATTENDEEFEE:"A new {{eligibility}} attendee may not be registered.  The maximum quantity of {{eligibility}} fees available to sell may have been reached for this event.  Please check the event's attendee limit or maximum limit on {{eligibility}} fees.",ALERT_VALIDATION_ADDITIONAL:"One or more additional item fields are not valid. Please review the item's information and fix any errors.",ALERT_VALIDATION_ADDITIONAL_LIMIT:"The quantity entered exceeds the quantity currently available. Please reduce the quantity entered to a maximum of {{available}} ",MSG_BROWSER_UNSUPPORTED:'Your browser does not meet the minimum requirement of Internet Explorer Version 9. You will need to <a href="http://windows.microsoft.com/en-us/internet-explorer/download-ie" target="_blank" class="alert-link">upgrade to the latest version<\/a> in order to continue.',MSG_LOAD_EVENT:"Retrieving event information&hellip;",MSG_LOAD_HISTORY:"Retrieving registration history&hellip;",MSG_LOAD_REGISTRATION:"Retrieving registration information&hellip;",MSG_LOAD_USES:"Loading fee information&hellip;",MSG_LOAD_MEMLIST:"Loading membership information&hellip;",MSG_LOAD_ACCOUNT:"Loading active account information&hellip;",MSG_LOAD_SUCCESS:"Initialization complete.",MSG_LOAD_FAIL:"Initialization failed.",MSG_LOAD_BILL_MEMBER:"Loading bill member&hellip;",MSG_HELP_ERRTITLE:'<span class="text-danger glyphicon glyphicon-warning-sign"><\/span> Oops, something went wrong.',MSG_HELP_ERR:"We have logged this error and have notified Customer Service. We hopefully will have it fixed soon.",MSG_ADMIN_PRICEMEMBER:"(Grayed out = non-member only pricing)",MSG_ADMIN_PRICENONMEMBER:"(Grayed out = member only pricing)",HEADER_EDIT_ATTENDEE:"Enter information",HEADER_WAIT_LIST:"Waiting List",HEADER_WAIT_LIST_MSG:"We will be in contact with you when there is availablity. Please enter any special notes in the Comments.",CMD_PROCESS:0,CMD_SAVEONLY:1,CMD_CAPTUREPAYMENT:2,CMD_RECORDPAYMENT:3,CMD_PROCESSNOCARD:4,CMD_CREATERECEIPT:5,STEP_UNKNOWN:"unknown",STEP_BLANK:"blank",STEP_LOGIN:"login",STEP_SOLDOUT:"soldout",STEP_FEES:"fees",STEP_SUMMARY:"summary",STEP_CART:"cart",STEP_CHECKOUT:"checkout",STEP_COMPLETE:"complete",STEP_PAYMENT:"payment",STEP_ATTENDEE:"editAttendee",STEP_FEE:"editFee",STEP_NOFEE_EVENT:"Free (No fee assigned)",STEP_COMPLETE_WAITLIST:"completeWaitList",STEP_DELAYED_SOLDOUT:"delayedsoldout",STEP_WAITLIST_ATTENDEE:"waitlistattendee",PATH_NEW:"/new",PATH_CHECKOUT:"/checkout",PATH_REGISTRANT:"/registrant",PATH_PAYMENT:"/payment",PATH_ATTENDEES:"/attendees",PATH_FEES:"/fees",PATH_WAITLIST:"/waitlist",PATH_WAITREGISTRANT:"/waitregistrant",PATH_COMPLETE:"/complete"});angular.module("eventRegistrationApp.controllers",["ngCookies","eventRegistrationApp.constants","eventRegistrationApp.services","eventRegistrationApp.factories"]).controller("EventRegistrationController",["$scope","$q","$sce","$window","$location","$timeout","Enum","loader","step","Utils","Context","SessionService","ApiService","ModalService","RegistrationService","FeeService","AttendeeFeeService","AttendeeService","AlertManager",function(n,t,i,r,u,f,e,o,s,h,c,l,a,v,y,p,w,b,k){function nt(t){return function(i){return n.event&&n.event.Sponsors.length>0?!1:i&&i.enabled&&i.position==t}}function g(n,i,r,u){return o.addMessage(i),n.then(function(n){return o.removeMessage(i),o.percent(o.percent()+r),n})["catch"](u?function(){return t.reject(u)}:angular.noop)}var d;n.trustAsHtml=function(n){return i.trustAsHtml(n)};o.loading(!0);o.setMessage(e.MSG_LOAD_EVENT);o.percent(20);n.Enum=e;n.step=s;n.title="Event Registration";n.associationName=c.Customer;n.imageUrl=c.ImageUrl;n.sponsorAds=c.Sponsor;n.layout=c.Layout;n.alerts=new k;n.enableAdsTop=nt(e.BANNER_TOP);n.enableAdsHeader=nt(e.BANNER_HEADER);n.enableAdsBottom=nt(e.BANNER_BOTTOM);n.cancel=function(n){c.ReturnUrl?s.redirect(c.ReturnUrl,n):s.close(n)};s.addCallback(function(){n.alerts.removeAll();f(function(){r.scrollTo(0,0)})});r.validateMember=function(){n.$apply(function(){s(e.STEP_LOGIN);l.setLastUser()})};var ut=c.Account||l.getDefaultUser(),tt=t.when(c.Registration?a.getRegistration(c.Registration,ut.AuthToken).then(h.dataFromRequest):y.create()),it=a.getEvent().then(h.dataFromRequest),rt=t.when(ut);rt=g(rt,e.MSG_LOAD_ACCOUNT,2);tt=g(tt,e.MSG_LOAD_REGISTRATION,8,e.ALERT_REGISTRATION_NOTFOUND);it=g(it,e.MSG_LOAD_EVENT,20,e.ALERT_REG_NOTFOUND).then(function(t){return n.title=t.Name+" - Event Registration",n.event=t,t});d=u.path().match(/\/[^/?&]+/g)||[];t.all({event:it,registration:tt,account:rt,options:{showAutoLogin:!0}}).then(function(n){var f;if(!y.isBrowserSupported())return t.reject(e.MSG_BROWSER_UNSUPPORTED);var r=n.event,c=n.registration,i=n.account,u=t.when(),o=t.when([]),s=t.when([]),l=r.NonMemberTransactionType==2,v=!h.isNullOrWhitespace(r.NonMemberBillAssignment)&&r.NonMemberBillAssignment!=0;return i.IsAdmin?i.MemberId&&(u=a.getAccountContact(i.MemberId,i.RepresentativeId,r.DefaultStaffCompany,i.AuthToken).then(h.dataFromRequest)):(f=y.allowMembers(r),f&&y.allowAuthMemberList(r)&&(o=a.getMemberList().then(h.dataFromRequest).then(h.getter("Members"))),i.NonMember&&i.MemberStatusType!=e.MEMBERTYPE_NONMEMBER||c.Id||(u=a.getAccountContact(i.MemberId,i.RepresentativeId,null,i.AuthToken).then(h.dataFromRequest),f||(y.downgradeAccount(i),u=u.then(function(n){return b.unlinkMember(n),n})))),l&&v&&!isNaN(r.NonMemberBillAssignment)?(s=a.getMember(r.NonMemberBillAssignment,null,i.AuthToken).then(h.dataFromRequest).then(function(n){if(n.Error)throw e.ALERT_REG_BILLMEMBER;return n}),n.billMember=g(s,e.MSG_LOAD_BILL_MEMBER,5,e.ALERT_REG_BILLMEMBER)):n.billMember=null,n.memberList=g(o,e.MSG_LOAD_MEMLIST,5,e.ALERT_REG_ERRMEMLIST),n.contact=g(u,e.MSG_LOAD_ACCOUNT,10),n.account=i,t.all(n)}).then(function(n){var r=t.when(n.registration),i=n.account,f=n.contact,o,s,u;return f&&f.IsRegistered&&!i.IsAdmin&&d[0]!=e.PATH_CHECKOUT?(o=a.getHistory(i.AuthToken).then(h.dataFromRequest),s=n.registration,r=g(o,e.MSG_LOAD_HISTORY,10).then(function(t){return(t=h.where(t,function(n){return n.IsOwner}),!t.length)?s:v.chooseRegistration(t,!!c.ReturnUrl,i).then(function(t){return n.options.showAutoLogin=!1,t=="login"&&(n.options.forceLogin=!0),angular.isObject(t)?a.getRegistration(t.Token,i.AuthToken).then(h.dataFromRequest):y.create()})})):(u=h.find(i.History,function(n){return n.InviteStatus==e.INVITE_DECLINED}),u&&(r=a.getRegistration(u.Token,i.AuthToken).then(h.dataFromRequest))),n.registration=g(r,e.MSG_LOAD_REGISTRATION,10,e.ALERT_REG_CANCELED),t.all(n)}).then(function(n){return n.options.forceLogin&&(l.setLastUser(),n.account=l.getDefaultUser(),n.contact=null),t.all(n)}).then(function(n){var r=n.registration,u=n.account,i=n.event,f=t.when();if(!angular.isNumber(r.Id)&&!u.IsAdmin){if(y.isClosed(i,new Date)||!y.isEventApproved(i))return t.reject(i.Terminology.RegistrationClosed||e.ALERT_REG_CLOSED);if(!y.allowMembers(i)&&!y.allowNonMembers(i))return t.reject(e.ALERT_REG_NONREGISTRABLE)}return f=a.getUses(u.MemberId,r.Token).then(h.dataFromRequest),n.uses=g(f,e.MSG_LOAD_USES,5,e.ALERT_REG_ERRUSES),t.all(n)}).then(function(t){var r=t.registration,f=t.event,u=t.account,v=t.contact,a=t.uses,k=!1,nt,tt,it,g,rt;l.setRegistration(r);l.setEvent(f);l.setUser(u);l.setUses(a);l.setMemberList(t.memberList);n.billMember=t.billMember;u.IsAdmin?(!r.Id&&v&&y.setRegistrant(r,v,!u.Verified),s(e.STEP_FEES),r.Id?d[0]==e.PATH_CHECKOUT?(l.setUserKey(c.UserKey),l.setEncryptedUserKey(c.EncryptedUserKey),s(e.STEP_CHECKOUT),k=!0):d[0]==e.PATH_PAYMENT?s(e.STEP_PAYMENT):d[0]==e.PATH_COMPLETE?s(e.STEP_COMPLETE):d[0]==e.PATH_ATTENDEES&&d[1]?s(e.STEP_ATTENDEE):d[0]==e.PATH_FEES&&d[1]&&s(e.STEP_FEE):d[0]==e.PATH_WAITLIST?s(e.STEP_WAITLIST_ATTENDEE):(d[0]==e.PATH_WAITREGISTRANT&&y.setRegistrant(r,u.Contact,!u.Verified),s.action("addAttendee"))):(nt=y.allowMembers(f),s(nt?e.STEP_LOGIN:e.STEP_FEES),!r.Id&&v&&y.setRegistrant(r,v,!u.Verified),(!u.NonMember||u.MemberStatusType==e.MEMBERTYPE_NONMEMBER||r.Id||v)&&(s(e.STEP_FEES),r.AttendeeFees.length||(tt=b.createFromRegistrant(r.Registrant),y.canInlineAttendee(tt,f,u)&&(it=p.getBaseFees(f,u),g=p.getAvailable(it,[],a),(g[0]||p.hasFreeSpots(f,[],a))&&p.getRemaining(g[0],it,[],a)>1&&(rt=w.create(g[0]),rt.Attendees.push(tt),r.AttendeeFees.push(rt))))),nt&&(!u.NonMember||u.MemberStatusType==e.MEMBERTYPE_NONMEMBER)&&t.options.showAutoLogin&&n.alerts.addWarning(i.trustAsHtml(e.ALERT_REG_AUTOLOGIN),e.ALERT_CLOSABLE,{representative:[u.FirstName,u.LastName].join(" ").trim(),member:u.MemberName,login:function(){s(e.STEP_LOGIN);l.setLastUser()}}),d[0]==e.PATH_CHECKOUT?(l.setUserKey(c.UserKey),l.setEncryptedUserKey(c.EncryptedUserKey),s(e.STEP_CHECKOUT),k=!0):d[0]==e.PATH_COMPLETE?(s(e.STEP_COMPLETE),k=!0,n.resendConfirmation=!0):r.InProcess&&(s.instructions(!0),k=!0,(y.isSoldOut(f,null,a)||y.isSoldOut(f,u,a)&&s()!=e.STEP_LOGIN)&&s(e.STEP_SOLDOUT)),r.InviteStatus!=e.INVITE_REGISTERED&&r.InviteStatus!=e.INVITE_SPONSORONLY||k||(n.alerts.addSuccess(i.trustAsHtml(e.ALERT_REG_REGISTERED),e.ALERT_CLOSABLE,{event:f.Name,date:r.RegistrationDate}),r.Id&&!y.isLocked(r,f,u)&&n.alerts.addWarning(h.format(e.ALERT_REG_EDITABLE,{association:f.CustomerName}),e.ALERT_CLOSABLE)),r.Id&&y.isLocked(r,f,u)&&n.alerts.addWarning(h.format(e.ALERT_REG_READONLY,{association:f.CustomerName}),e.ALERT_CLOSABLE));o.setMessage(e.MSG_LOAD_SUCCESS);o.percent(100)})["catch"](function(t){o.setMessage(e.MSG_LOAD_FAIL);s(e.STEP_BLANK);t==e.ALERT_REG_CANCELED?(n.alerts.addWarning(t,e.ALERT_NOCLOSE),n.cancel()):n.alerts.addError(t,e.ALERT_NOCLOSE)})["finally"](function(){o.loading(!1)})}]).controller("LoginStepController",["$scope","$q","$filter","$sce","$location","step","Enum","Utils","SessionService","RegistrationService","ApiService","ModalService","AttendeeFeeService","FeeService","AttendeeService","AlertManager",function(n,t,i,r,u,f,e,o,s,h,c,l,a,v,y,p){function b(n){var i=n.registration&&n.registration.Token,r=n.account&&n.account.MemberId;return n.uses=c.getUses(r,i).then(o.dataFromRequest),t.all(n).then(k)}function k(t){var u=t.account,k=t.contact,i=t.registration,d=!i,c=t.uses,p,w,l,b;d&&(i=h.create(),k&&h.setRegistrant(i,k,!u.Verified),i.AttendeeFees.length||(p=y.createFromRegistrant(i.Registrant),h.canInlineAttendee(p,n.event,u)&&(w=v.getBaseFees(n.event,u),l=v.getAvailable(w,[],c),(l[0]||v.hasFreeSpots(n.event,[],c))&&v.getRemaining(l[0],w,[],c)>1&&(b=a.create(l[0]),b.Attendees.push(p),i.AttendeeFees.push(b)))));s.setRegistration(i);s.setUser(u);s.setLastUser(u);s.setUses(c);f(e.STEP_FEES);d&&!i.AttendeeFees.length&&f.action("addAttendee");u.NonMember&&n.$parent.alerts.addWarning(r.trustAsHtml(o.format(e.ALERT_REG_LOGINFORMAT,{terminology:n.event.Terminology}),e.ALERT_CLOSABLE));h.isSoldOut(n.event,u,c)&&f(e.STEP_SOLDOUT)}var w=[];angular.forEach(s.getMemberList(),function(n){w.push({Id:n.MemberId,Value:n.Name})});n.Enum=e;n.event=s.getEvent();n.user=s.getUser();n.memberList=i("orderBy")(w,"Value");n.alerts=new p;n.allowMembers=h.allowMembers;n.allowNonMembers=h.allowNonMembers;n.allowAuthCredentials=h.allowAuthCredentials;n.allowAuthEmail=h.allowAuthEmail;n.allowAuthMemberList=h.allowAuthMemberList;n.sponsors=h.groupSponsors(n.event);n.resetPassword=l.passwordReset;f.instructions(!0);n.login=function(i){var r=i.type==e.AUTH_CREDENTIALS?c.loginByCredentials(i.username,i.password).then(o.dataFromRequest):i.type==e.AUTH_EMAIL?c.loginByEmail(i.email).then(o.dataFromRequest):i.type==e.AUTH_MEMBER_LIST?c.loginByMember(i.memberId,i.password).then(o.dataFromRequest):t.reject(e.ALERT_AUTH_ERROR);n.alerts.closeKey(e.ALERT_AUTH);n.processing=i.type;n.locked=!0;r["catch"](function(){return t.reject(e.ALERT_AUTH_INVALID)}).then(function(i){if(n.processing=!1,!angular.isObject(i))return t.reject(e.ALERT_AUTH_ERROR);var r=i.Accounts;return r.length<1?t.reject(e.ALERT_AUTH_INVALID):(h.allowNonMembers(n.event)||(r=o.where(r,h.isMemberAccount)),r.length<1)?t.reject(e.ALERT_AUTH_MEMONLY):r.length>1?l.chooseAccount(r):r[0]}).then(function(n){var i=c.getAccountContact(n.MemberId,n.RepresentativeId,null,n.AuthToken).then(o.dataFromRequest);return i["catch"](function(){return t.reject(e.ALERT_AUTH_BADREP)}).then(function(t){return t.IsRegistered?c.getHistory(n.AuthToken).then(o.dataFromRequest).then(function(i){return(i=o.where(i,function(n){return n.IsOwner}),!i.length)?{account:n,contact:t}:l.chooseRegistration(i,!0,!1).then(function(i){return i?c.getRegistration(i.Token,n.AuthToken).then(o.dataFromRequest).then(function(t){return{account:n,registration:t}}):{account:n,contact:t}})}):{account:n,contact:t}})}).then(b)["catch"](function(t){t!="cancel"&&t!="backdrop click"&&n.alerts.addError(t,e.ALERT_AUTH)})["finally"](function(){n.processing=!1;n.locked=!1})};n.loginAsNonMember=function(){b({account:s.getDefaultUser()})}}]).controller("SoldOutController",["$scope","$sce","Enum","Utils","SessionService","AttendeeService","ModalService","ApiService","RegistrationService","step",function(n,t,i,r,u,f,e,o,s,h){n.event=u.getEvent();n.user=u.getUser();n.registration=u.getRegistration();var a=u.getWaitList(),l=u.getIsDelayedSoldOut(),c;l?(c=i.ALERT_DELAYED_SOLDOUT_DEFAULT,n.event.WaitingListEnabled&&(c=i.ALERT_DELAYED_SOLDOUT_WAITING_LIST)):(c=i.ALERT_SOLDOUT_DEFAULT,n.event.WaitingListEnabled&&(c=i.ALERT_SOLDOUT_WAITING_LIST));n.attendee=l?f.createFromContact(n.registration.PrimaryContact):f.createFromRegistrant(n.registration.Registrant);n.options={waitListCnt:n.registration.AttendeeFees.length>0?n.registration.AttendeeFees.length:null};n.alerts.addError(t.trustAsHtml(r.format(c,{event:n.event.Name})),i.ALERT_NOCLOSE,{openWaitingList:function(){n.user&&(n.user.Verified||a||l)?e.waitingListEntry(n.attendee,n.event.MaxRegAttendees,n.options):(u.setWaitList(!0),h(i.STEP_LOGIN))},saveWaitList:function(){var u=f.createFromContact(n.registration.PrimaryContact),t="",c=u.waitListId||0,e=0;s.forEachAttendee(n.registration,function(n){t=t.concat(r.format(" Attendee: {{FirstName}} {{LastName}} {{Comment}} ",{FirstName:n.FirstName,LastName:n.LastName,Comment:n.Comments}));e++});t=t.concat(r.format(n.registration.Comments?" Registration Comment: {{RegComment}}":"",{RegComment:n.registration.Comments}));u.Comments=t;o.saveWaitingListEntry(u,e,c,n.user.AuthToken).then(r.dataFromRequest).then(function(){h(i.STEP_COMPLETE_WAITLIST)})["catch"](function(n){angular.isString(n)||(n=i.ALERT_WAITING_LIST_UNKNOWN);alerts.addError(n,i.ALERT_WAITING_LIST)})}});a&&e.waitingListEntry(n.attendee,n.event.MaxRegAttendees,n.options)}]).controller("WaitListAttendeeController",["$scope","Context","SessionService","ModalService","AttendeeService","Enum","AlertManager","RegistrationService","step","ApiService","Utils","select",function(n,t,i,r,u,f,e,o,s,h,c,l){function p(){n.form.$invalid?v.addError(f.ALERT_VALIDATION_ATTENDEE,f.ALERT_VALIDATION):h.saveWaitingListEntry(n.attendee,n.options.waitListCnt,y,a.AuthToken).then(c.dataFromRequest).then(function(){s.close(!0)})["catch"](function(n){angular.isString(n)||(n=f.ALERT_WAITING_LIST_UNKNOWN);v.addError(n,f.ALERT_WAITING_LIST)})}var a=i.getUser(),v=new e,y;({}).alerts=v;n.event=i.getEvent();n.registration=i.getRegistration();n.attendee=u.createFromContact(a.Contact);n.options={waitListCnt:a.Contact.waitListAttendeeCnt};n.header=f.HEADER_WAIT_LIST;n.contactRequirements=o.getAttendeeRequirements(n.event,null);n.fieldStyles=o.getFieldStyles(n.event);n.terminology=n.event.Terminology;n.ok=p;y=n.attendee.waitListId||0;l("waitListCnt")}]).controller("ModalWaitingListController",["$scope","$modalInstance","ApiService","SessionService","Utils","Enum","AlertManager","model","select","step",function(n,t,i,r,u,f,e,o,s,h){function y(){if(n.form.$invalid)a.addError(f.ALERT_VALIDATION_ATTENDEE,f.ALERT_VALIDATION);else{var r=o.attendee.waitListId||0;i.saveWaitingListEntry(o.attendee,l.waitListCnt,r,v.AuthToken).then(u.dataFromRequest).then(function(){t.close(o);h(f.STEP_COMPLETE_WAITLIST)})["catch"](function(n){angular.isString(n)||(n=f.ALERT_WAITING_LIST_UNKNOWN);a.addError(n,f.ALERT_WAITING_LIST)})}}function p(){t.dismiss("cancel")}var v=r.getUser(),l=o.options||{},a=new e,c={};c.alerts=a;c.model=o;c.editing=l.editing;c.readOnly=l.readOnly;n.vm=c;n.ok=y;n.cancel=p;s("waitListCnt")}]).controller("FeesStepController",["$rootScope","$scope","$q","$sce","$location","step","Utils","Enum","Context","SessionService","RegistrationService","FeeService","DiscountService","AttendeeService","ModalService","ApiService","ContactService",function(n,t,i,r,u,f,e,o,s,h,c,l,a,v,y,p,w){function ut(){var n=c.getFirstAttendee(t.registration);return c.getParticipantLink(n)}var d=!1,rt=s.Account||h.getDefaultUser(),g,b,k,nt,tt,it;t.event=h.getEvent();t.uses=h.getUses();t.registration=h.getRegistration();t.user=h.getUser();t.baseFeeOptions=l.getBaseFees(t.event,t.user);t.hasFeeOptions=l.hasExplicit(t.baseFeeOptions)||t.user.IsAdmin;t.allotment=l.getAllotment;t.feeName=function(n){var i=l.getById(t.event,n.FeeId);if(i)return i.Name};t.isFreeEvent=function(){return t.event.Fees.length==0};t.isValidFee=function(n){return n&&l.getById(t.event,n.FeeId)};t.inline=t.user.IsAdmin&&!t.event.AttendeeRequirements.EnforceForStaff||!c.getCustomFields(t.event,t.user,!0).length;t.showWaitListComments=t.registration.Registrant.waitListId>0&&t.registration.Registrant.Comments;t.discount=a.getById;t.discountName=a.getNameById;t.volumeDiscountId=a.volumeDiscountId;t.hasPrevious=c.allowMembers(t.event)&&!t.registration.Id&&!t.user.IsAdmin;t.inviteOptions=c.getInviteStatusOptions(t.event,t.registration);t.paymentTypeOptions=c.getPaymentTypeOptions(t.event);t.paymentStatusOptions=c.getPaymentStatusOptions();t.isNoCharge=function(){return t.registration.PaymentType==o.PAYMENT_NOCHARGE};t.isEmpty=e.isEmpty;t.canContinue=function(){return c.isValid(t.registration,t.event,t.user)};t.hasValidAdditionalFees=function(n){var u=t.registration.AdditionalFees,r,i,f;if(u)for(r=0;r<u.length;r++)if(i=u[r],f=e.find(n.Fees,function(n){if(i.FeeId==n.Id)return i.Available=n.RemainingForEvent==null?n.QuantityLimit:n.RemainingForEvent,i.IsLimited&&i.Quantity>i.Available}),f)return d=!0,!1;return!0};t.next=function(){t.canContinue()&&!form.$invalid?(c.forEachAttendee(t.registration,function(n){v.ensureNameOrPlaceholder(n)}),f(o.STEP_SUMMARY)):t.registration.AttendeeFees.length?t.alerts.addError(o.ALERT_VALIDATION_ATTENDEES,o.ALERT_VALIDATION):t.alerts.addError(o.ALERT_VALIDATION_NOATTENDEE,o.ALERT_VALIDATION)};t.previous=function(){f(o.STEP_LOGIN);h.setLastUser()};t.save=function(){p.getUses(rt.MemberId,t.registration.Token).then(e.dataFromRequest).then(function(n){t.canContinue()&&!form.$invalid&&t.hasValidAdditionalFees(n)?t.finalizeSave():t.registration.AttendeeFees.length?d?(t.alerts.removeAll(),t.alerts.addError(o.ALERT_FEES_ADDITIONALQTYEXCEEDED,o.ALERT_NOCLOSE)):t.alerts.addError(o.ALERT_VALIDATION_ATTENDEES,o.ALERT_VALIDATION):t.alerts.addError(o.ALERT_VALIDATION_NOATTENDEE,o.ALERT_VALIDATION)})};t.finalizeSave=function(){var u,s,h;t.locked=!0;t.processing=!0;var i=c.requiresPurchase(t.registration),r=c.getPaymentMethodOptions(t.event,t.user),n=!1;!i||t.user&&t.user.IsAdmin||(u=!1,n=!0,angular.forEach(r,function(i){i.Id==o.PAYMENT_CREDIT_CARD&&(n=!1);i.Id==t.registration.PaymentType&&(u=!0)}),n&&(i=!1,u||(t.registration.PaymentType=r[0]&&r[0].Id||o.PAYMENT_UNKNOWN)));s=t.registration.Registrant||{};s.FirstName==null&&s.LastName==null&&(t.registration.Registrant=t.registration.PrimaryContact);h=w.updatePrimaryContact(t.event,t.registration,t.user,n,i);t.vm=h;t.registration.PrimaryContact=h.primaryContact.contact;p.saveRegistration(t.registration,null,null,t.user.AuthToken,o.CMD_SAVEONLY).then(e.dataFromRequest).then(function(n){if(c.notifyOpener(n.RegistrationId),!n.Success)throw o.ALERT_REGISTRATION_INVALID;f.close(!0)})["catch"](function(n){t.locked=!1;angular.isString(n)||(n=o.ALERT_REGISTRATION_UNKNOWN);t.alerts.addError(n,o.ALERT_REGISTRATION)})["finally"](function(){t.processing=!1})};t.remove=function(){var n=o.ALERT_BACKOFFICE_DELETETITLE;t.locked=!0;y.confirmBox(r.trustAsHtml(o.ALERT_BACKOFFICE_DELETEMSG),o.ALERT_BACKOFFICE_DELETETITLE,{okText:"Confirm",okClass:"btn-danger",size:"sm"}).then(function(){return t.processing=!0,p.deleteRegistration(t.registration.Id,t.user.AuthToken).then(e.dataFromRequest)["finally"](function(){t.processing=!1}).then(function(n){if(n.Success)return t.cancel(!0);switch(n.ErrorType){case"AccessDenied":return i.reject(o.ALERT_BACKOFFICE_DELETEDENIED);case"Invalid":return i.reject(e.format(o.ALERT_BACKOFFICE_DELETEINVALID,{invoices:n.Invoices,receipt:n.Receipt}));default:return i.reject()}})["catch"](function(n){return y.messageBox(r.trustAsHtml(n||o.ALERT_BACKOFFICE_DELETEERROR),o.ALERT_BACKOFFICE_DELETETITLE)["finally"](i.reject)})})["catch"](function(){t.locked=!1})};t.changeSponsorEnroll=function(){t.registration.InviteStatus=t.registration.EnrollAsSponsor?o.INVITE_REGISTERED:o.INVITE_SPONSORONLY};t.enrollAsSponsor=u.search().type=="sponsor";t.registration.hasOwnProperty("InviteStatus")&&t.registration.InviteStatus==o.INVITE_SPONSORONLY?t.registration.EnrollAsSponsor=!1:t.enrollAsSponsor&&(t.registration.EnrollAsSponsor=!0);t.isSponsorReg=function(){return t.enrollAsSponsor||t.registration.EnrollAsSponsor||t.registration.InviteStatus==o.INVITE_SPONSORONLY?!0:!1};t.sponsorAddNonAttendee=function(){var n=t.uses.AttendeesRemaining==null?1:t.uses.AttendeesRemaining-t.registration.AttendeeFees.length;return t.isSponsorReg()&&n<=0?(t.registration.InviteStatus=t.registration.EnrollAsSponsor?o.INVITE_REGISTERED:o.INVITE_SPONSORONLY,t.registration.EnrollAsSponsor=!1,!0):!1};t.$watch("registration",function(){c.updateTotals(t.registration,t.event,t.user,t.uses);c.updateReservedAllotment(t.registration)},!0);t.$watchCollection(ut,function(n,r){function s(n){var r=p.getParticipantAccount(t.user.AuthToken,n.AttendeeId,n.RepresentativeId,n.MemberId).then(e.dataFromRequest),u=p.getUses(n.MemberId,t.registration.Token).then(e.dataFromRequest);return i.all({participant:r,uses:u}).then(function(i){var r,u;return angular.copy(i.uses,t.uses),r=i.participant,t.user.RepresentativeId=r.RepresentativeId,t.user.MemberId=r.MemberId,t.user.MembershipTypeId=r.MembershipTypeId,t.user.MemberName=r.MemberName,t.user.Eligibility=r.Eligibility,t.user.TaxExempt=r.TaxExempt,t.user.UserKey=r.UserKey,t.user.EncryptedUserKey=r.EncryptedUserKey,c.setRegistrant(t.registration,n,!0),t.baseFeeOptions=l.getBaseFees(t.event,t.user),t.hasFeeOptions=l.hasExplicit(t.baseFeeOptions)||t.user.IsAdmin,u=e.map(t.baseFeeOptions,e.getter("Id")),angular.forEach(t.registration.AttendeeFees,function(n){if(!n.Fixed&&u.indexOf(n.FeeId)<0){var i=c.getFeeOptions(t.registration,t.event,t.user,t.uses)[0];n.FeeId=i&&i.Id;n.UnitPriceOverride=!1;n.Fixed=!1}}),c.updateGroupings(t.registration,t.event,t.user,t.uses),r})}var u,f,o;angular.equals(n,r)||t.user.IsAdmin&&(u=!t.registration.Id||!n.MemberId,u||(f=c.getParticipantLink(t.user),(angular.equals(f,r)||!f.MemberId)&&(u=!0)),u&&(o=c.getFirstAttendee(t.registration)||v.create(),s(o)))});g=c.createPrimaryContact(t.registration.PrimaryContact);angular.forEach(t.registration.AttendeeFees,function(n){angular.forEach(n.Attendees,function(n){!b&&angular.equals(g,c.createPrimaryContact(n))&&(b=n)})});t.registration.AttendeeContact=b;t.user&&(t.registration.InvoiceId||t.registration.ReceiptId)&&t.alerts.addWarning(r.trustAsHtml(e.format(o.ALERT_FEES_INVOICERECEIPT,{invoiceId:t.registration.InvoiceId,receiptId:t.registration.ReceiptId}),o.ALERT_CLOSABLE));!t.user||t.user.IsAdmin||t.user.NonMember||(k=c.getHiddenAttendeeRequirements(t.event,t.user),nt=!angular.equals({},k),nt&&c.hasAuthentication(t.event)&&(f.action()=="addAttendee"&&f.action(null),t.alerts.addWarning(r.trustAsHtml(o.ALERT_UNVERIFIED_LOGIN),o.ALERT_UNVERIFIED,{fields:k,login:function(){y.login().then(function(n){h.setUser(n);h.setLastUser(n);t.user=n;t.alerts.addSuccess(o.ALERT_UNVERIFIED_SUCCESS,o.ALERT_UNVERIFIED)})}})));t.user&&t.user.IsAdmin&&(t.user.Eligibility!=o.ELIGIBILITY_NONMEMBER||t.registration.AttendeeFees.length||(tt=c.getFeeOptions(t.registration,t.event,t.user,t.uses,null,!0),it=c.getFeeOptions(t.registration,t.event,t.user,t.uses,null,!1),tt.length&&!it.length&&(t.alerts.addWarning(o.ALERT_BACKOFFICE_ATTENDEENONONOPTS,o.ALERT_BACKOFFICE_ATTENDEE),f.action()=="addAttendee"&&f.action(null))));t.user.IsAdmin||c.allowMembers(t.event)||!t.event.AlwaysFullAttendee&&t.canInlineAttendee||t.registration.AttendeeFees.length||f.action("addAttendee")}]).controller("SummaryStepController",["$scope","$sce","$filter","step","Enum","Context","Utils","SessionService","ApiService","RegistrationService","FeeService","DiscountService","ModalService","ContactService",function(n,t,i,r,u,f,e,o,s,h,c,l,a,v){function st(n){return h.validatePrimaryContact(y.PrimaryContact,w,p)?!b.processing&&!n.$invalid:!1}function ct(){return!et&&d&&nt}function lt(){return!et&&!(d&&nt&&tt)}function at(){return p.IsAdmin&&y.Id}function vt(){return h.validatePrimaryContactAddress(y.PrimaryContact,w,p)}function ht(t){var u=n.registration.AdditionalFees,r,i,f;if(u)for(r=0;r<u.length;r++)if(i=u[r],f=e.find(t.Fees,function(n){if(i.FeeId==n.Id)return i.Available=n.RemainingForEvent==null?n.QuantityLimit:n.RemainingForEvent,i.IsLimited&&i.Quantity>i.Available}),f)return ot=!0,!1;return!0}function ut(t,i,f){s.getUses(ft.MemberId,n.registration.Token).then(e.dataFromRequest).then(function(e){n.registration.InviteStatus!=u.INVITE_SPONSORONLY&&h.isSoldOut(n.event,ft,e)?(o.setIsDelayedSoldOut(!0),r(u.STEP_SOLDOUT)):st(t)&&ht(e)?yt(i,f):ot?(r(u.STEP_FEES),n.alerts.removeAll(),n.alerts.addError(u.ALERT_FEES_ADDITIONALQTYEXCEEDED,u.ALERT_NOCLOSE)):n.alerts.addError(u.ALERT_VALIDATION_CONTACT,u.ALERT_VALIDATION)})}function yt(n,t){var i,c,a,l;b.processing=!0;y.PrimaryContact=b.primaryContact.contact;i=t?f.UserKey||f.UniqueUserKey:f.UniqueUserKey;c=t?f.EncryptedUserKey||f.EncryptedUniqueUserKey:f.EncryptedUniqueUserKey;p.UserKey&&tt&&(i=p.UserKey,c=p.EncryptedUserKey);a=i==f.UniqueUserKey;o.setUserKey(i);o.setEncryptedUserKey(c);l=y.Registrant||{};l.FirstName==null&&l.LastName==null&&(y.Registrant=y.PrimaryContact,(y.Registrant.MemberId==null||y.Registrant.MemberId==0)&&y.MemberId!=null&&y.MemberId!=0?(y.Registrant.MemberId=y.MemberId,y.PrimaryContact.MemberId=y.MemberId):(y.Registrant.MemberId==null||y.Registrant.MemberId==0)&&(y.MemberId==null||y.MemberId==0)&&y.AttendeeFees.length>0&&(y.Registrant.MemberId=y.AttendeeFees[0].Attendees[0].MemberId,y.PrimaryContact.MemberId=y.AttendeeFees[0].Attendees[0].MemberId));s.saveRegistration(y,i,a,p.AuthToken,n).then(e.dataFromRequest).then(function(i){if(h.notifyOpener(i.RegistrationId),i.RegistrationId&&(y.Id=i.RegistrationId),i.RegistrationToken&&(y.Token=i.RegistrationToken),!i.Success)if(i.ErrorType=="AddToCart")throw u.ALERT_REGISTRATION_ERRADDCART;else if(i.ErrorType=="NoAttendee"){r(u.STEP_FEES);throw u.ALERT_REGISTRATION_ERRNOATTENDEE;}else throw u.ALERT_REGISTRATION_INVALID;n==u.CMD_SAVEONLY?r.close(!0):i.Complete?(r(u.STEP_COMPLETE),f.Mode==u.MODE_NEW&&k.addSuccess(u.ALERT_REGISTRATION_COMPLETE,u.ALERT_REGISTRATION)):t?(k.addSuccess(u.ALERT_REGISTRATION_ADDEDTOCART,u.ALERT_NOCLOSE),f.CartUrl?r.redirect(f.CartUrl,!0):r(u.STEP_CART)):(k.addSuccess(u.ALERT_REGISTRATION_CHECKOUT,u.ALERT_NOCLOSE),p.IsAdmin&&tt?r(u.STEP_CART):r(u.STEP_CHECKOUT))})["catch"](function(n){angular.isString(n)||(n=u.ALERT_REGISTRATION_UNKNOWN);k.addError(n,u.ALERT_REGISTRATION)})["finally"](function(){b.processing=!1});y.Registrant.waitListId>0&&s.deleteWaitingListEntry(y.Registrant.waitListId,p.AuthToken)}function pt(n){ut(n,u.CMD_SAVEONLY)}function wt(n,t){var i=g?u.CMD_PROCESSNOCARD:u.CMD_PROCESS;ut(n,i,t)}function bt(){r(u.STEP_FEES)}var w=o.getEvent(),y=o.getRegistration(),p=o.getUser(),k=n.alerts,ft=f.Account||o.getDefaultUser(),et=h.isLocked(y,w,p),nt=!!(f.UserKey&&f.CartUrl),d=h.requiresPurchase(y),tt=h.paymentProfilesEnabled(w),it=h.getPaymentMethodOptions(w,p),g=!1,ot=!1,rt,b;!d||p&&p.IsAdmin||(rt=!1,g=!0,angular.forEach(it,function(n){n.Id==u.PAYMENT_CREDIT_CARD&&(g=!1);n.Id==y.PaymentType&&(rt=!0)}),g&&(d=!1,rt||(y.PaymentType=it[0]&&it[0].Id||u.PAYMENT_UNKNOWN)));!d||p.AllowStoredCard||p.IsAdmin||h.hasAuthentication(w)&&h.paymentProfilesEnabled(w)&&k.addWarning(t.trustAsHtml(u.ALERT_CIM_LOGIN),u.ALERT_CIM,{event:w.Name,login:function(){a.login().then(function(n){o.setUser(n);o.setLastUser(n);p=n;nt=!0;k.addSuccess(u.ALERT_CIM_SUCCESS,u.ALERT_CIM)})}});n.registration=o.getRegistration();b=v.updatePrimaryContact(w,y,p,g,d);n.vm=b;n.validateContactAddress=vt;n.hasValidAdditionalFees=ht;n.canContinue=st;n.canIndirect=ct;n.canDirect=lt;n.canSaveClose=at;n.complete=ut;n.save=pt;n.finish=wt;n.previous=bt;y.PrimaryContact=b.primaryContact.contact}]).controller("PaymentStepController",["$scope","$sce","$filter","step","Enum","Context","Utils","AlertManager","SessionService","ApiService","RegistrationService","FeeService","DiscountService","ModalService",function(n,t,i,r,u,f,e,o,s,h,c){function st(n){switch(n.PaymentType){case u.PAYMENT_CHECK:return n.CheckNumber;case u.PAYMENT_NOCHARGE:return n.PaymentComment;default:return n.ReferenceNumber}}function g(n){return{PaymentType:n.PaymentType,BillingStatus:n.BillingStatus,ReferenceNumber:st(n)}}function ht(){switch(l.PaymentType){case u.PAYMENT_CREDIT_CARD:return"creditcard";case u.PAYMENT_CHECK:return"check";case u.PAYMENT_INVOICE:return"invoice";case u.PAYMENT_NOCHARGE:return"nocharge"}}function nt(){return!angular.equals(tt,g(l))}function w(n){var t,i,v,o;a.processing=!0;a.locked=!0;t=f.UniqueUserKey;i=f.EncryptedUniqueUserKey;y.UserKey&&b&&(t=y.UserKey,i=y.EncryptedUserKey);v=t==f.UniqueUserKey;s.setUserKey(t);s.setEncryptedUserKey(i);o=l.Registrant||{};o.FirstName==null&&o.LastName==null&&(l.Registrant=l.PrimaryContact);h.saveRegistration(l,t,v,y.AuthToken,n).then(e.dataFromRequest).then(function(t){if(c.notifyOpener(t.RegistrationId),t.RegistrationId&&(l.Id=t.RegistrationId),t.RegistrationToken&&(l.Token=t.RegistrationToken),!t.Success)if(t.ErrorType=="AddToCart")throw u.ALERT_REGISTRATION_ERRADDCART;else if(t.ErrorType=="RecordPayment")throw u.ALERT_REGISTRATION_ERRRECORDPMT;else if(t.ErrorType=="CreateReceipt")throw u.ALERT_REGISTRATION_ERRRECEIPT;else throw u.ALERT_REGISTRATION_INVALID;t.PaymentUrl?r.redirect(t.PaymentUrl,!0):t.ReceiptUrl?r.redirect(t.ReceiptUrl,!0):n==u.CMD_SAVEONLY?r.close(!0):t.Complete?r(u.STEP_COMPLETE):(p.addSuccess(u.ALERT_REGISTRATION_CHECKOUT,u.ALERT_NOCLOSE),y.IsAdmin&&b?r(u.STEP_CART):r(u.STEP_CHECKOUT))})["catch"](function(n){a.locked=!1;angular.isString(n)||(n=u.ALERT_REGISTRATION_UNKNOWN);p.addError(n,u.ALERT_REGISTRATION)})["finally"](function(){a.processing=!1})}function ct(){w(u.CMD_SAVEONLY)}function lt(){w(u.CMD_CAPTUREPAYMENT)}function at(){w(u.CMD_RECORDPAYMENT)}function vt(){w(u.CMD_CREATERECEIPT)}function yt(){r.close(!nt())}var v=s.getEvent(),y=s.getUser(),l=s.getRegistration(),b=c.paymentProfilesEnabled(v),tt=g(l),p=new o,k=l.MemberId&&l.MemberId!=0,it=v.NonMemberTransactionType==2,rt=!e.isNullOrWhitespace(v.NonMemberBillAssignment)&&v.NonMemberBillAssignment!=0,ut=n.billMember!=null&&n.billMember.MemberStatusType==u.MEMBERTYPE_DELETED,ft=!k&&it&&!rt||ut&&!k,et=l.PaymentType==u.PAYMENT_CREDIT_CARD&&l.BillingStatus==u.BILLING_STATUS_PAID,d=l.CreditCardPurchase!=null?l.CreditCardPurchase.ResultCode:null,ot=d!=null?d.toUpperCase()==="SUCCESS":!1,a;(l.InvoiceId||l.ReceiptId)&&p.addWarning(u.ALERT_FEES_INVOICERECEIPT,u.ALERT_CLOSABLE,{invoiceId:l.InvoiceId,receiptId:l.ReceiptId});a={};a.paymentTypeOptions=c.getPaymentTypeOptions(v);a.paymentStatusOptions=c.getPaymentStatusOptions();a.registration=l;a.nativeBilling=v.BillingSolution==u.BILLING_SOLUTION_NATIVE;a.disablePaymentButton=ft;a.isRegPaid=et;a.isCCSuccess=ot;n.vm=a;n.alerts=p;n.paymentType=ht;n.changed=nt;n.save=ct;n.capturePayment=lt;n.recordPayment=at;n.createReceipt=vt;n.cancel=yt}]).controller("AttendeeController",["$q","$sce","$scope","$timeout","step","Utils","Enum","SessionService","RegistrationService","FeeService","ModalService","AttendeeService","AttendeeFeeService",function(n,t,i,r,u,f,e,o,s,h,c,l,a){function v(){var n;return angular.forEach(i.registration.AttendeeFees,function(t){angular.forEach(t.Attendees,function(t){n=t})}),n}function w(){var n=0;return angular.forEach(i.registration.AttendeeFees,function(t){angular.forEach(t.Attendees,function(){n++})}),n}function y(n){for(var u=i.remainingAttendees(n),r=v(),t;u>0&&i.canAddAttendee();)t=l.create(),t.FirstName="Additional",t.LastName="Attendee",t.MemberId=r.MemberId,t.MembershipTypeId=r.MembershipTypeId,t.Company=r.Company,t.LinkedMemberName=r.LinkedMemberName,n.Attendees.push(t),u--;return!u}function b(n,t,r){for(var s=h.isAllotmentReserved(n)?n.AttendeesIncluded:1,e=v(),o=i.registration.Registrant.waitListAttendeeCnt-w(),f,u;o>0&&i.canAddAttendee();)f=a.create(n),angular.isDefined(t)&&a.setPromo(f,t,r),i.registration.AttendeeFees.push(f),u=l.create(),u.FirstName="Additional",u.LastName="Attendee",u.MemberId=e.MemberId,u.MembershipTypeId=e.MembershipTypeId,u.Company=e.Company,u.LinkedMemberName=e.LinkedMemberName,f.Attendees.push(u),h.isAllotmentReserved(n)&&y(f),o=o-s}function p(){var t=i.registration.AttendeeFees,n=t[t.length-1];if(n&&i.remainingAttendees(n)>0)return n}i.event=o.getEvent();i.uses=o.getUses();i.registration=o.getRegistration();i.user=o.getUser();i.readOnly=s.isLocked(i.registration,i.event,i.user);i.options=function(n,t){return s.getFeeOptions(i.registration,i.event,i.user,i.uses,n,t,i.isSponsorReg())};i.updateSubtotal=function(n){n.UnitPriceOverride=!0;n.Fixed=!1};i.changeFee=function(n,t){n.Attendees&&n.Attendees.length>1&&(n.Attendees=[n.Attendees[0]]);n.FeeId=t.Id;n.UnitPriceOverride=!1;n.Fixed=!1;h.isAllotmentReserved(t)&&y(n);i.updateGroupings()};i.add=function(){var f,t,r,u,e,o;if(!i.canAddAttendee(!0))return i.warn();r=p();u=v();r?(f=[],t=l.create(),t.FirstName="Additional",t.LastName="Attendee"):(f=i.options(),t=i.registration.AttendeeFees.length?l.create():l.createFromRegistrant(i.registration.Registrant));u&&(t.MemberId=u.MemberId,t.Company=u.Company,t.LinkedMemberName=u.LinkedMemberName,t.MembershipTypeId=u.MembershipTypeId);e=i.isSponsorReg();o=s.canInlineAttendee(t,i.event,i.user)&&i.canAddAttendee()?n.when({attendee:t,fee:f[0]}):c.editAttendee(t,{feeOptions:f,allowPromoDiscounts:!r,allowBenefitDiscounts:!0,parent:r},e);o.then(function(n){var t,u,f;r||(t=n.fee,!t&&i.isSponsorReg()&&(i.uses.AttendeesRemaining=1,u=h.getBaseFees(i.event,i.user),f=h.getAvailable(u,[],i.uses),t=f[0]),r=a.create(t),angular.isDefined(n.discount)&&a.setPromo(r,n.discount,n.promoCode),angular.isDefined(n.benefitItemDiscount)&&a.setBenefit(r,n.benefitItemDiscount),i.registration.AttendeeFees.push(r));r.Attendees.push(n.attendee);h.isAllotmentReserved(n.fee)&&y(r);i.registration.Registrant.waitListAttendeeCnt>1&&b(n.fee,n.discount,n.promoCode)});i.warn()};i.addMultiple=function(){if(!i.canAddAttendee())return i.warn();c.inputMultiple().then(function(n){for(var u=v(),s=n.quantity,h=0,r,o,y;i.canAddAttendee()&&s-->0;)r=l.create(),o=p(),u&&(r.FirstName="Additional",r.LastName="Attendee",r.MemberId=u.MemberId,r.MembershipTypeId=u.MembershipTypeId,r.Company=u.Company,r.LinkedMemberName=u.LinkedMemberName),o||(y=i.options(),o=a.create(y[0]),i.registration.AttendeeFees.push(o)),o.Attendees.push(r),h++;s>0&&c.messageBox(t.trustAsHtml(f.format(e.ALERT_BACKOFFICE_ATTENDEEMULTIPLE,{total:n.quantity,created:h})),e.ALERT_BACKOFFICE_ATTENDEEMULTIPLETITLE)})};i.hasAttendee=function(){return!!v()};i.edit=function(n,t){var r=h.getById(i.event,t.FeeId),u=n===t.Attendees[0]?null:t,f=i.user.IsAdmin||i.registration.InProcess,e={readOnly:i.readOnly,editing:!0,feeOptions:r?[r]:[],allowPromoDiscounts:!0,allowBenefitDiscounts:f,parent:u,promoDiscountId:t.PromoDiscountId,benefitDiscountId:t.BenefitDiscountId},o=i.isSponsorReg();c.editAttendee(angular.copy(n),e,o).then(function(i){angular.extend(n,i.attendee);angular.isDefined(i.discount)&&a.setPromo(t,i.discount,i.promoCode);angular.isDefined(i.benefitItemDiscount)&&a.setBenefit(t,i.benefitItemDiscount)})};i.remove=function(t,r){var o=i.registration.InvoiceId,s=i.registration.ReceiptId,u=i.uses,h=n.when(),l;(o||s)&&(l=f.format(e.ALERT_FEES_DELETEATTENDEEMSG,{invoiceId:o,receiptId:s}),h=c.confirmBox(l,e.ALERT_FEES_DELETEATTENDEETITLE,{okText:"Confirm",okClass:"btn-danger",size:"sm"}));h.then(function(){if(r.Fixed&&(angular.forEach(r.Discounts,function(n){for(var r,f,e,i=0;i<u.Discounts.length;i++)r=u.Discounts[i].Id,f=u.Discounts[i].MemID,n.discount.Id==r&&t.MemberId==f&&(e=u.Discounts[i].RemainingForMember+1,u.Discounts[i].RemainingForMember=e)}),r.VolumeDiscount>0)){var e=r.VolumeDiscount,n,o=f.find(i.event.Discounts,function(n){return n.FeeId==r.FeeId});n=o?f.find(i.registration.AttendeeFees,function(n){return n.VolumeDiscount==0&&n.FeeId==r.FeeId}):f.find(i.registration.AttendeeFees,function(n){return n.VolumeDiscount==0||n.VolumeDiscount<e});n&&(n.VolumeDiscount=e)}f.remove(r.Attendees,t);r.Attendees.length||f.remove(i.registration.AttendeeFees,r);i.updateGroupings()})};i.valid=function(n,t){var r=t?h.getById(i.event,t.FeeId):null;return t&&!r?!1:s.validateAttendee(n,i.event,i.user,!1,r)};i.placeholder=function(n){return s.isPlaceholder(n)};i.allotment=function(n){var t=h.getById(i.event,n.FeeId);return h.getAllotment(t)};i.remainingAttendees=function(n){return Math.max(i.allotment(n)-n.Attendees.length,0)};i.updateGroupings=function(){s.updateGroupings(i.registration,i.event,i.user,i.uses)};i.canAddAttendee=function(n){var c=i.isSponsorReg(),u=i.uses.AttendeesRemaining==null?1:i.uses.AttendeesRemaining-i.registration.AttendeeFees.length,t=0,f=!1,l=!1,v=null,a=h.getBaseFees(i.event,i.user,!1,!1),r,o,y;if(p())return!0;if(!i.user.IsAdmin&&!s.allowMultipleAttendees(i.event)&&i.registration.AttendeeFees.length)return!1;if(h.hasFreeSpots(i.event,i.registration.AttendeeFees,i.uses))return!0;for(i.uses.Fees.length==0&&(l=!0,t=1),r=0;r<i.uses.Fees.length;r++)for(o=0;o<a.length;o++)if(a[o].Id==i.uses.Fees[r].Id)if(i.uses.Fees[r].RemainingForEvent==null){t=1;l=!0;break}else t+=i.uses.Fees[r].RemainingForEvent;return(l||(t=t-(i.registration.AttendeeFees.length||0)),t>0&&(f=!0),(f&&!u||!i.event.Fees.length&&a[0].Name==e.STEP_NOFEE_EVENT&&!u)&&i.event.MaxAttendees>0&&!c)?!1:(f&&c||!i.event.Fees.length&&!u)&&i.event.MaxAttendees>0?(i.isSponsorReg()&&u<0&&(i.registration.InviteStatus=i.registration.EnrollAsSponsor?e.INVITE_REGISTERED:e.INVITE_SPONSORONLY,i.registration.EnrollAsSponsor=!1),!0):c&&i.enrollAsSponsor&&f?!0:(y=n&&i.user.IsAdmin&&!i.registration.AttendeeFees.length,v=i.options(null,y),!v.length)?!1:!0};i.warn=function(){for(var u=h.getBaseFees(i.event),o=i.isSponsorReg(),l=!i.registration.AttendeeFees.length,n=i.uses.AttendeesRemaining==null?1:i.uses.AttendeesRemaining-i.registration.AttendeeFees.length,t=!1,r=0;r<i.uses.Fees.length;r++)if(t=angular.isDefined(i.uses.Fees[r].RemainingForEvent)&&(i.uses.Fees[r].RemainingForEvent>0||i.uses.Fees[r].QuantityLimit==null),t)break;i.user.IsAdmin||s.allowMultipleAttendees(i.event)||!i.registration.AttendeeFees.length||c.messageBox(e.ALERT_BACKOFFICE_ATTENDEESINGLE,e.ALERT_BACKOFFICE_ATTENDEETITLE);(t&&!n||!i.event.Fees.length&&u[0].Name==e.STEP_NOFEE_EVENT&&!n)&&i.event.MaxAttendees>0&&!o&&c.messageBox(f.format(e.ALERT_BACKOFFICE_ATTENDEELIMITREACHEDNONSPONSOR,{association:i.associationName}),e.ALERT_BACKOFFICE_ATTENDEETITLE);(t&&!n||!i.event.Fees.length&&u[0].Name==e.STEP_NOFEE_EVENT&&!n)&&i.event.MaxAttendees>0&&o&&c.sponsorMessageBox(e.ALERT_BACKOFFICE_ATTENDEELIMITREACHED,e.ALERT_BACKOFFICE_ATTENDEETITLE);(!t||!i.canAddAttendee(!0))&&u[0].Name!=e.STEP_NOFEE_EVENT&&n&&l&&c.closeWindowMessageBox(e.ALERT_BACKOFFICE_NOFEESREMAINING,e.ALERT_BACKOFFICE_ATTENDEETITLE);t&&i.canAddAttendee(!0)||u[0].Name==e.STEP_NOFEE_EVENT||!n||l||c.messageBox(e.ALERT_BACKOFFICE_NOFEESREMAINING,e.ALERT_BACKOFFICE_ATTENDEETITLE);!i.event.Fees.length||t||n||c.closeWindowMessageBox(e.ALERT_BACKOFFICE_ATTENDEENOOPTS,e.ALERT_BACKOFFICE_ATTENDEETITLE)};i.canChangeFee=function(n){return i.user.IsAdmin?!0:!i.readOnly&&(i.registration.InProcess||!n.Id)};i.canRemoveAttendee=function(n){return i.user.IsAdmin?!0:!i.readOnly&&(i.registration.InProcess||!n.Id)};i.openPricing=function(){c.pricingDetails()};u.action()=="addAttendee"&&r(function(){i.add()})}]).controller("ModalAccountController",["$scope","$modalInstance","Utils","model",function(n,t,i,r){n.accounts=r.accounts;n.registeredByBySelf=function(n){return i.find(n.History,function(n){return n.IsOwner&&!n.InProcess})};n.registeredByAnother=function(n){return i.find(n.History,function(n){return!n.IsOwner&&!n.InProcess})};n.inProcess=function(n){return i.find(n.History,function(n){return n.IsOwner&&n.InProcess})};n.select=function(t){n.selected=t};n.ok=function(){t.close(n.selected)};n.cancel=function(){t.dismiss("cancel")}}]).controller("ModalRegistrationController",["$scope","$modalInstance","$sce","Enum","SessionService","AlertManager","model",function(n,t,i,r,u,f,e){var o=e.account;n.event=u.getEvent();n.alerts=new f;n.cancelable=e.cancelable;n.registrations=e.registrations.filter(function(n){return n.InviteStatus!=r.INVITE_SPONSORONLY});n.select=function(t){n.selected=t};n.ok=function(){t.close(n.selected)};n.cancel=function(){t.dismiss("cancel")};o&&n.alerts.addWarning(i.trustAsHtml(r.ALERT_REG_AUTOLOGIN),r.ALERT_CLOSABLE,{representative:[o.FirstName,o.LastName].join(" ").trim(),member:o.MemberName,login:function(){t.close("login")}})}]).controller("ModalAdvancedAttendeeController",["$q","$scope","$modalInstance","Enum","SessionService","ApiService","RegistrationService","model","select",function(n,t,i,r,u,f,e,o,s){var l=u.getUser(),v=u.getRegistration(),y=u.getEvent(),c=v.Registrant,a,h={query:o.query||"",options:[],shown:0,total:0,memberNameField:o.memberNameField||0,nameField:o.reverse?2:3,filterPart:0,onlyActive:!0,copyType:"useRegRep",currentAttendee:o.currentAttendee};c&&c.MemberId&&(h.memberId=c.MemberId,h.memberName=c.LinkedMemberName||c.MemberName,h.sameMember=!0,l.IsAdmin||y.RepresentativeVisibility!=r.REPRESENTATIVEVISIBILITY_MEMBER||(h.sameMemberLocked=!0));t.vm=h;t.getClass=function(n){var t={active:n==h.selected},i=e.getRepresentativeStatusClass(n);return i&&(t[i]=!0),t};t.select=function(n){h.processing||(h.selected=n,a=f.getRepresentative(n.Id,o.memberNameField,l.AuthToken).success(function(n){h.details=n}))};t.ok=function(){h.processing=!0;h.locked=!0;n.when(a).then(function(n){n.data.copy=h.copyType=="useSearchRep";i.close(n.data)})["catch"](function(){h.locked=!1})["finally"](function(){h.processing=!1})};t.cancel=function(){i.dismiss("cancel")};t.updateResults=function(){var n=h.sameMember?h.memberId:null;f.getRepresentatives(h.query,n,h.memberNameField,h.nameField,h.filterPart,h.onlyActive,l.AuthToken).success(function(n){h.options=n.Results;h.shown=n.Results.length;h.total=n.Total;h.options.indexOf(h.selected)<0&&(h.selected=null,h.details=null,a=null)})};t.updateResults();s("modalQuery")}]).controller("ModalMemberController",["$q","$scope","$modalInstance","SessionService","ApiService","RegistrationService","model","select",function(n,t,i,r,u,f,e,o){var c=r.getUser(),l=r.getRegistration(),a=l.Registrant,h,s={query:e.query||"",options:[],shown:0,total:0,memberNameField:e.memberNameField||0,filterPart:0,onlyActive:!0,copyType:"useRegMem",currentAttendee:e.currentAttendee};t.vm=s;t.getClass=function(n){var t={active:n==s.selected},i=f.getMemberStatusClass(n);return i&&(t[i]=!0),t};t.select=function(n){s.processing||(s.selected=n,h=u.getMember(n.Id,e.memberNameField,c.AuthToken).success(function(n){s.details=n}))};t.ok=function(){s.processing=!0;s.locked=!0;n.when(h).then(function(n){n.data.copy=s.copyType=="useSearchMem";i.close(n.data)})["catch"](function(){s.locked=!1})["finally"](function(){s.processing=!1})};t.cancel=function(){i.dismiss("cancel")};t.updateResults=function(){u.getMembers(s.query,s.memberNameField,s.searchNameField,s.filterPart,s.onlyActive,c.AuthToken).success(function(n){s.options=n.Results;s.shown=n.Results.length;s.total=n.Total;s.options.indexOf(s.selected)<0&&(s.selected=null,s.details=null,h=null)})};t.updateResults();o("modalQuery")}]).controller("ModalAttendeeController",["$scope","$modalInstance","SessionService","DiscountService","Enum","AlertManager","model","select",function(n,t,i,r,u,f,e,o){function l(){var o,c;if(n.form.$invalid)h.addError(u.ALERT_VALIDATION_ATTENDEE,u.ALERT_VALIDATION);else if(!e.user||e.fee||e.isSponsor){var f=e.options.benefitDiscountId==null?0:e.options.benefitDiscountId,l=e.benefitItemDiscount==null?0:e.benefitItemDiscount.Id,s=n.SessionService.getUses();f>0&&f!=l&&(c=r.getById(i.getEvent(),f),r.setMemberUse(s,c,e.attendee.MemberId,-1));e.benefitItemDiscount&&r.setMemberUse(s,e.benefitItemDiscount,e.attendee.MemberId,1);t.close(e)}else o=e.user.Eligibility!=u.ELIGIBILITY_MEMBER?"non-member":"member",h.addError(u.ALERT_VALIDATION_ATTENDEEFEE,u.ALERT_VALIDATION,{eligibility:o})}function a(){t.dismiss("cancel")}var c=e.options||{},h=new f,s={};s.alerts=h;s.model=e;s.editing=c.editing;s.readOnly=c.readOnly;s.header="Enter information";n.SessionService=i;n.DiscountService=r;n.vm=s;n.ok=l;n.cancel=a;o("contactFirstName")}]).controller("AdditionalFeeController",["$scope","Utils","SessionService","RegistrationService","ModalService","DiscountService","FeeService","AdditionalFeeService",function(n,t,i,r,u,f,e,o){function s(i){return t.find(n.registration.AdditionalFees,function(n){return n.FeeId==i.Id})}n.event=i.getEvent();n.registration=i.getRegistration();n.user=i.getUser();n.uses=i.getUses();n.readOnly=r.isLocked(n.registration,n.event,n.user);n.additionalFeeOptions=e.getAdditionalFees(n.event,n.user,n.uses);n.hasPromoDiscounts=f.hasPromoDiscounts;n.hasBenefitDiscounts=f.hasBenefitDiscounts;n.fee=s;n.feeOrDefault=function(n){return s(n)||{UnitPrice:n.Amount}};n.updateSubtotal=function(n){n.UnitPriceOverride=!0;n.Fixed=!1};n.add=function(t){var i=o.create(),r={title:t.Name,subTitle:t.Description};return o.setFee(i,t),u.editAdditionalFee(i,r).then(function(t){n.registration.AdditionalFees.push(t)})};n.edit=function(t){var i=s(t),r={readOnly:n.readOnly,editing:!0,title:t.Name,subTitle:t.Description};return o.setFee(i,t),u.editAdditionalFee(angular.copy(i),r).then(function(n){angular.extend(i,n)})};n.remove=function(i){t.remove(n.registration.AdditionalFees,s(i))};n.canAddFee=function(){return n.user.IsAdmin?!0:!n.readOnly&&n.registration.InProcess};n.canRemoveFee=function(t){return n.user.IsAdmin?!0:!n.readOnly&&(n.registration.InProcess||!s(t).Id)};n.$watch(i.getUser,function(t){n.additionalFeeOptions=e.getAdditionalFees(n.event,t,n.uses)},!0)}]).controller("AttendeeStepController",["$scope","$location","Enum","Utils","SessionService","ApiService","Context","RegistrationService","FeeService","ModalService",function(n,t,i,r,u,f,e,o,s){function w(){n.registeredBy=null;n.registrant=null;n.primaryContact=null;c.RegisteredBy&&c.RegisteredBy.RepresentativeId?n.registeredBy=c.RegisteredBy:h&&h.RepresentativeId?n.registrant=h:c.PrimaryContact&&(n.primaryContact=c.PrimaryContact)}var b=u.getEvent(),c=u.getRegistration(),y=u.getUser(),v=t.path().match(/\/[^/]+\/(-?\d+)/),p=v&&+v[1],h=c.Registrant||{},l,a;h.FirstName==null&&h.LastName==null&&(h=c.PrimaryContact);n.editing=!!p;n.model={options:{editing:n.editing,allowPromoDiscounts:!1,allowBenefitDiscounts:!1}};n.ok=function(){n.form.$invalid?n.alerts.addError(i.ALERT_VALIDATION_ATTENDEE,i.ALERT_VALIDATION):(n.processing=!0,f.saveAttendee(c.Id,n.model.attendee,h,y.AuthToken).then(r.dataFromRequest).then(function(){n.cancel()})["catch"](function(t){angular.isString(t)||(t=i.ALERT_REGISTRATION_UNKNOWN);n.alerts.addError(t,i.ALERT_REGISTRATION)})["finally"](function(){n.processing=!1}))};v&&(l=o.getAttendeeById(c,p),a=o.getAttendeeFee(c,l),l&&(n.model.attendee=l,n.model.fee=s.getById(n.event,a.FeeId),n.model.options.parent=a.Attendees[0]!==l?a:null,l==o.getFirstAttendee(c)&&n.$watchCollection(function(){return o.getParticipantLink(l)},function(n,t){var i,u;angular.equals(n,t)||(i=!n.MemberId,i||(u=o.getParticipantLink(h),(angular.equals(u,t)||!u.MemberId)&&(i=!0)),i&&f.getParticipantAccount(y.AuthToken,l.AttendeeId,l.RepresentativeId,l.MemberId).then(r.dataFromRequest).then(function(n){h.RepresentativeId=n.RepresentativeId;h.MemberId=n.MemberId;h.LinkedName=[n.FirstName,n.LastName].join(" ").trim();h.LinkedMemberName=n.MemberName;w()}))})));w()}]).controller("ModalAdditionalFeeController",["$scope","$modalInstance","Enum","AlertManager","model","SessionService",function(n,t,i,r,u,f){function c(){n.form.$invalid?s.addError(i.ALERT_VALIDATION_ADDITIONAL,i.ALERT_VALIDATION):u.fee.IsLimited&&u.fee.Quantity>u.fee.Available?s.addError(i.ALERT_VALIDATION_ADDITIONAL_LIMIT,i.ALERT_VALIDATION,{available:u.fee.Available}):u.fee.Quantity===0||u.fee.Quantity<1&&!h.IsAdmin?(a(u.fee.FeeId),t.dismiss("cancel")):t.close(u.fee)}function l(){t.dismiss("cancel")}function a(t){n.registration.AdditionalFees=n.registration.AdditionalFees.filter(function(n){return n.FeeId!==t})}var o=u.options||{},s=new r,h=u.user||f.getUser(),e={};e.alerts=s;e.model=u;e.title=o.title;e.subTitle=o.subTitle;e.editing=o.editing;e.readOnly=o.readOnly;n.vm=e;n.ok=c;n.cancel=l;n.registration=f.getRegistration()}]).controller("ModalPricingController",["$scope","$modalInstance","Enum","SessionService","model",function(n,t,i,r,u){function o(){if(f&&f.IsAdmin)return f.Eligibility!=i.ELIGIBILITY_MEMBER?i.MSG_ADMIN_PRICENONMEMBER:i.MSG_ADMIN_PRICEMEMBER}var f=u.user||r.getUser(),e={};e.user=u.user;n.vm=e;n.clarification=o;n.ok=t.close}]).controller("ModalMultipleController",["$scope","$modalInstance",function(n,t){function r(){i.locked=!0;t.close({quantity:i.quantity})}function u(){t.dismiss("cancel")}var i={};i.quantity=1;n.vm=i;n.ok=r;n.cancel=u}]).controller("AdditionalFeeStepController",["$scope","$location","Enum","Utils","SessionService","ApiService",function(n,t,i,r,u,f){var e=t.path().match(/\/[^/]+\/(-?\d+)/),o=e&&+e[1];n.registration=u.getRegistration();n.user=u.getUser();n.editing=!!o;n.model={options:{editing:n.editing}};n.ok=function(){n.form.$invalid?n.alerts.addError(i.ALERT_VALIDATION_ADDITIONAL,i.ALERT_VALIDATION):(n.processing=!0,f.saveRegistration(n.registration,null,!0,n.user.AuthToken,i.CMD_PROCESS).then(r.dataFromRequest).then(function(){n.cancel()})["catch"](function(t){angular.isString(t)||(t=i.ALERT_REGISTRATION_UNKNOWN);n.alerts.addError(t,i.ALERT_REGISTRATION)})["finally"](function(){n.processing=!1}))};e&&(n.model.fee=r.find(n.registration.AdditionalFees,function(n){return n.Id==o}))}]).controller("ModalPasswordResetController",["$scope","$q","$sce","$modalInstance","Enum","Utils","AlertManager","ModalService","ApiService",function(n,t,i,r,u,f,e,o,s){n.processing=!1;n.alerts=new e;n.closeAlert=function(){n.alert=null};n.ok=function(e){n.processing=!0;s.resetPassword(e).then(f.dataFromRequest).then(function(n){if(!n.Success)return t.reject();r.close();o.messageBox(i.trustAsHtml(f.format(u.ALERT_RECOVERY_SUCCESS,{emailAddress:e})),"Password Recovery")})["catch"](function(){n.alerts.addError(u.ALERT_RECOVERY_ERROR,u.ALERT_RECOVERY)})["finally"](function(){n.processing=!1})};n.cancel=function(){r.dismiss("cancel")}}]).controller("ModalConfirmBoxController",["$scope","$modalInstance","model",function(n,t,i){n.title=i.title;n.message=i.message;n.opts=angular.extend({okText:"Continue",okClass:"btn-primary",cancelText:"Cancel",cancelClass:"btn-default"},i.opts);n.ok=t.close;n.cancel=function(){t.dismiss("cancel")}}]).controller("ModalMessageBoxController",["$scope","$modalInstance","model",function(n,t,i){n.title=i.title;n.message=i.message;n.ok=t.close}]).controller("ModalSponsorMessageBoxController",["$scope","step","Context","$modalStack","$modalInstance","model","SessionService","$location",function(n,t,i,r,u,f,e,o){n.title=f.title;n.message=f.message;n.ok=u.close;var s=e.getRegistration();n.isSponsor=o.search().type=="sponsor";n.cancel=function(n){i.ReturnUrl?t.redirect(i.ReturnUrl,n):t.close(n)}}]).controller("CloseWindowMessageBoxController",["$scope","step","Context","$modalStack","$modalInstance","model","SessionService","$location",function(n,t,i,r,u,f,e,o){n.title=f.title;n.message=f.message;n.ok=u.close;var s=e.getRegistration();n.isSponsor=o.search().type=="sponsor";n.cancel=function(n){i.ReturnUrl?t.redirect(i.ReturnUrl,n):t.close(n)}}]).controller("CartController",["$scope","$window","loader","step","Enum","Utils","Context","SessionService","ApiService",function(n,t,i,r,u,f,e,o,s){var h=o.getUser(),l=o.getUserKey(),v=o.getEncryptedUserKey(),a=o.getRegistration(),c=e.RegistrationUrl;c+=(c.indexOf("?")>=0?"&":"?")+"userKey="+t.encodeURIComponent(l)+"&mode="+t.encodeURIComponent(e.Mode)+"&token="+t.encodeURIComponent(a.Token);h.AuthToken&&(c+="&auth="+t.encodeURIComponent(h.AuthToken));n.userKey=l;n.encryptedUserKey=v;n.adminKey=e.AdminKey;n.checkDisclaimer=h.IsAdmin;n.responseUrl=c+"#"+u.PATH_CHECKOUT;n.completeUrl=function(){n.$apply(function(){i.loading(!0);i.percent(75);i.setMessage(u.MSG_LOAD_REGISTRATION)});s.getRegistration(a.Token,h.AuthToken).then(f.dataFromRequest).then(function(n){o.setRegistration(n);r(u.STEP_COMPLETE)})["finally"](function(){i.loading(!1)})};n.baseUrl=e.CheckoutBaseUrl}]).controller("CompleteController",["$sce","$scope","$window","$filter","step","Enum","Utils","Context","SessionService","ApiService",function(n,t,i,r,u,f,e,o,s,h){function a(n,t){e.isNullOrWhitespace(n.EmailAddress)||c.push({primary:t,name:[n.FirstName,n.LastName].join(" ").trim(),email:n.EmailAddress,value:{Email:n.EmailAddress,MemberId:n.MemberId,RepresentativeId:n.RepresentativeId,Primary:t},selected:v})}function l(){var n=[];return angular.forEach(c,function(t){t.selected&&n.push(t.value)}),n}var c=[],v=o.Mode==f.MODE_NEW;t.event=s.getEvent();t.registration=s.getRegistration();t.user=s.getUser();t.customer=o.Customer;t.publicDomain=o.PublicDomain;t.hasReturnUrl=!!o.ReturnUrl;t.isPopup=!!i.opener;t.finish=function(){o.ReturnUrl?u.redirect(o.ReturnUrl,!0):u.close(!0)};t.doContinue=function(){function f(n){return t.model.senderEmailId==n.Id}t.locked=!0;t.processing=!0;t.alerts.removeAll();var n=e.find(t.emailOptions,f),r=n&&n.Value,o=n&&n.Id,i=[];t.resendConfirmation&&(r=t.primaryEmail);(!t.showConfirmation||t.emailConfirmation)&&(i=l());h.finalize(t.registration.Id,i.length>0,r,o,i,t.model.checkReceipt,t.model.checkNumber,t.registration.ReferenceNumber,t.user.AuthToken).then(e.dataFromRequest).then(function(n){n.Success&&(n.ReceiptUrl?u.redirect(n.ReceiptUrl,!0):t.finish())})["finally"](function(){t.locked=!1;t.processing=!1})};t.model={sendConfirmation:!1,checkReceipt:!1,checkNumber:null};t.resendConfirmation||a(t.registration.PrimaryContact,!0);angular.forEach(t.registration.AttendeeFees,function(n){angular.forEach(n.Attendees,function(n){!t.user.IsAdmin&&t.registration.PrimaryContact.EmailAddress==n.EmailAddress||a(n,!1)})});c=r("unique")(c,"email");c=r("orderBy")(c,"email");t.confirmOptions=c;t.confirmSelected=function(){return l().length>0};t.confirmAllSelected=function(){return l().length==c.length};t.setConfirms=function(n){angular.forEach(c,function(t){t.selected=n});t.resendBtnText=n?"Send & Close":"Close"};t.confirmOptionChange=function(){t.resendBtnText=t.confirmSelected()?"Send & Close":"Close"};t.resendBtnText=t.confirmSelected()?"Send & Close":"Close";t.resendPanelHeadingText=t.event.QRCodeEnabled?"Resend Ticket(s)":"Resend Confirmation Email(s)";t.resendLabelText=t.event.QRCodeEnabled?"Resend ticket to:":"Resend confirmation email to:";c.length&&h.associationRepresentatives(t.user.AuthToken).then(e.dataFromRequest).then(function(n){var i=n.Representatives,u=!1;i=e.where(i,function(n){return!e.isNullOrWhitespace(n.EmailAddress)});i=e.map(i,function(t){var r=[t.FirstName,t.LastName].join(" ").trim(),i=t.EmailAddress;return e.isNullOrWhitespace(r)||(i='"'+r+'" <'+i+">"),t.RepresentativeId==n.ImpersonatorId&&(u=!0),{Id:t.RepresentativeId,Value:i}});i=r("orderBy")(i,"Value");t.emailOptions=i;t.model.senderEmailId=u?n.ImpersonatorId:null});t.user.IsAdmin?(t.isCheckPayment=t.registration.PaymentType==f.PAYMENT_CHECK,t.isNoCharge=t.registration.PaymentType==f.PAYMENT_NOCHARGE,t.showCheckNumber=t.event.BillingSolution==f.BILLING_SOLUTION_NATIVE):(t.showConfirmation=!0,t.showAttendees=c.length>0&&t.event.ConfirmEmailEnabled&&(c.length>1||c[0].email!=t.registration.PrimaryContact.EmailAddress),t.emailConfirmation=t.event.ConfirmEmailEnabled,t.primaryEmail=t.registration.PrimaryContact.EmailAddress)}]).controller("CompleteWaitListController",["$scope","$window","step",function(n,t,i){n.isPopup=!!t.opener;n.finish=function(){i.close(!0)}}]).controller("ModalLoginController",["$scope","$q","$filter","Enum","Utils","AlertManager","SessionService","RegistrationService","ModalService","ApiService","$modalInstance",function(n,t,i,r,u,f,e,o,s,h,c){var a=e.getEvent(),v=new f,y=[],l;angular.forEach(e.getMemberList(),function(n){y.push({Id:n.MemberId,Value:n.Name})});l={};l.showCredentials=o.allowAuthCredentials(a)||o.allowAuthEmail(a);l.showList=o.allowAuthMemberList(a);l.memberList=i("orderBy")(y,"Value");n.vm=l;n.alerts=v;n.resetPassword=function(){s.passwordReset()};n.ok=function(){var n=l.showCredentials?h.loginByCredentials(l.username,l.password).then(u.dataFromRequest):l.showList?h.loginByMember(l.memberId,l.password).then(u.dataFromRequest):t.reject(r.ALERT_AUTH_ERROR);v.closeKey(r.ALERT_AUTH);l.processing=!0;l.locked=!0;n["catch"](function(){return t.reject(r.ALERT_AUTH_INVALID)}).then(function(n){if(l.processing=!1,!angular.isObject(n))return t.reject(r.ALERT_AUTH_ERROR);var i=n.Accounts;return i.length<1?t.reject(r.ALERT_AUTH_INVALID):(o.allowNonMembers(a)||(i=u.where(i,o.isMemberAccount)),i.length<1)?t.reject(r.ALERT_AUTH_MEMONLY):i.length>1?s.chooseAccount(i):i[0]}).then(function(n){c.close(n)})["catch"](function(n){l.processing=!1;l.locked=!1;n!="cancel"&&n!="backdrop click"&&v.addError(n,r.ALERT_AUTH)})};n.cancel=function(){c.dismiss("cancel")}}]).controller("LoaderController",["$scope","loader",function(n,t){function r(){i.loading=t.loading();i.messages=t.messages();i.percent=t.percent()}var i={};t.addCallback(r);r();n.vm=i;n.$on("$destroy",function(){t.removeCallback(r)})}]);angular.module("eventRegistrationApp.directives",["eventRegistrationApp.services"]).directive("mniContact",function(){return{restrict:"A",templateUrl:"template/event-registration/contact.html",scope:{person:"=mniPerson",requirements:"=mniRequirements",fieldStyles:"=mniFieldStyles",ignoreRequired:"=mniIgnoreRequired",addressValidator:"=mniAddressValidator",maxlengths:"=mniMaxlengths",disabled:"=mniDisabled",showAge:"=mniShowAge",showPicker:"=mniShowPicker",showUnlinked:"=mniShowUnlinked",terminology:"=mniTerminology",fieldSwitched:"&mniFieldSwitched",companyChanged:"&mniCompanyChanged",nameChanged:"&mniNameChanged",isWaitingList:"=mniWaitingList",maxRegAttendees:"=mniMaxRegAttendees",opts:"=mniOptions"},controller:["$scope","Utils","ApiService","SessionService","RegistrationService","AttendeeService","ModalService",function(n,t,i,r,u,f,e){var o=r.getEvent();n.PhoneFormat=o.PhoneFormat;n.UsePhoneFormat=o.CultureCode=="en-US"||o.CultureCode=="en-CA";n.showAddress=n.addressValidator&&!n.addressValidator();n.user=r.getUser();n.moreAttendee=function(t){var i=f.getFullName(n.person.FirstName,n.person.LastName,t);e.chooseAdvancedAttendee(i,n.memberNameField,t).then(n.selectAttendee)};n.selectAttendee=function(r){var u=r.RepresentativeId?i.getRepresentative(r.RepresentativeId,n.memberNameField,n.user.AuthToken).then(t.dataFromRequest):i.getAttendee(r.AttendeeId,n.user.AuthToken).then(t.dataFromRequest);u.then(function(t){var i=f.createFromExisting(t,!n.user.Verified);i.Id=n.person.Id;i.CustomFields=n.person.CustomFields;i.IsRegistrant=n.user.RepresentativeId&&n.user.RepresentativeId==t.RepresentativeId;n.UsePhoneFormat&&(i.Phone=n.formatPhone(i.Phone,n.PhoneFormat));angular.copy(i,n.person);n.addressValidator&&!n.addressValidator()&&(n.showAddress=!0);n.fieldSwitched()})};n.formatPhone=f.formatPhone;n.moreCompany=function(){e.chooseMember(n.person.Company,n.memberNameField,null).then(n.selectCompany)};n.selectCompany=function(t){var i=f.createFromExisting(t,!n.user.Verified);i.Id=n.person.Id;i.FirstName=n.person.FirstName;i.LastName=n.person.LastName;i.CustomFields=n.person.CustomFields;n.UsePhoneFormat&&(i.Phone=n.formatPhone(i.Phone,n.PhoneFormat));angular.copy(i,n.person);n.fieldSwitched()};n.placeholder=function(n){return u.isPlaceholder(n)};n.nullIf=t.nullIf;n.user.IsAdmin&&(n.memberNameField=o.DefaultStaffCompany)}]}}).directive("mniCustomFields",function(){var n={required:"The field is required.",integer:"Please enter a valid whole number.",float:"Please enter a valid number.",date:"Please enter a valid date in the form of <strong>mm/dd/yyyy<\/strong>."};return{restrict:"A",templateUrl:"template/event-registration/custom-fields.html",scope:{options:"=mniOptions",ignoreRequired:"=mniIgnoreRequired",values:"=mniValues",disabled:"=mniDisabled"},controller:["$scope","Utils","FeeService",function(t,i,r){function u(n){switch(n.FieldType){case"datetime":return r.getDateFormat();case"int":return"number";case"float":return"decimal"}}function f(){t.groups=i.inGroupsOf(t.options,2)}t.messages=n;t.tip=u;t.$watch("options",f)}]}}).directive("mniFormControl",function(){return{restrict:"A",replace:!1,transclude:!0,templateUrl:"template/event-registration/form-control.html",scope:{id:"=mniId",label:"=mniLabel",required:"=mniRequired",value:"=mniValue",tip:"=mniTip",help:"=mniHelp",helpOptions:"=mniHelpOptions",invalidMessages:"=mniInvalidMessages",maxlength:"=mniMaxlength",limit:"=mniLimit"},controller:["$scope","$rootScope",function(n){var t=n.invalidMessages,i=angular.lowercase(n.label)||"field";angular.isUndefined(t)&&(t={required:"The "+i+" is required.",email:"The "+i+" is not a valid address."});n.invalid=function(){return n.form.$invalid&&(n.form.$dirty||n.value)};n.remaining=function(){return n.maxlength-(n.value||"").length};n.error=function(){var i;return t&&n.form.$error&&angular.forEach(n.form.$error,function(n,r){n&&t[r]&&(i=t[r])}),i}}]}}).directive("mniMaxlengthFix",function(){return{restrict:"A",require:"ngModel",link:function(n,t,i,r){if(r){var u=n.$eval(i.mniMaxlengthFix);r.$validators.maxlength=function(n){return r.$isEmpty(n)||!angular.isNumber(u)||n.length<=u}}}}}).directive("mniField",function(){return{restrict:"A",replace:!1,transclude:!1,templateUrl:"template/event-registration/field.html",scope:{label:"@mniLabel",placeholder:"@mniPlaceholder",required:"=mniRequired",enforceRequired:"=mniEnforceRequired",type:"@mniType",rows:"@mniRows",value:"=mniValue",change:"&mniChange",help:"@mniHelp",helpOptions:"@mniHelpOptions",tip:"@mniTip",invalidMessages:"=mniInvalidMessages",maxlength:"=mniMaxlength",options:"=mniOptions",limit:"=mniLimit",disabled:"=mniDisabled"},controller:["$scope","$filter","FeeService",function(n,t,i){function e(n){n.preventDefault();n.stopPropagation();r.opened=!0}function o(){return n.disabled?!1:n.enforceRequired==!1?!1:n.required}function s(n){return arguments.length?(f=n,r.field.value=u=t("date")(f,"yyyy-MM-dd'T'HH:mm:ss")):(n=r.field.value,n==u&&(n=f),angular.isString(n)&&(u=n,n=f=new Date(u))),n}var u,f,r={};r.id="field-"+n.$id;r.field=n;n.type==="bool"&&(r.field.value===null?r.field.value="":r.field.value===!0?r.field.value="1":r.field.value===!1&&(r.field.value="0"));n.vm=r;n.open=e;n.require=o;n.date=s;n.dateFormat=i.getDateFormat()}]}}).directive("mniPromoCode",function(){return{restrict:"A",replace:!1,transclude:!1,templateUrl:"template/event-registration/promo-code.html",scope:{promoDiscountId:"=mniPromoCode",applyPromoCode:"&mniApply"},controller:["$scope","Enum","SessionService","DiscountService",function(n,t,i,r){n.event=i.getEvent();n.user=i.getUser();n.options=r.getByType(n.event,t.DISCOUNT_PROMO);n.useDropDown=n.user.IsAdmin;n.select=function(t){var i=r.getById(n.event,t);n.applyPromoCode({discount:i})};n.submitCode=function(t){var i=r.getByPromoCode(n.event,t);n.applyPromoCode({discount:i,promoCode:t})};n.enterPressed=function(t,i){t.preventDefault();i&&i.length&&n.submitCode(i)}}]}}).directive("mniBenefitItem",function(){return{restrict:"A",replace:!1,transclude:!1,templateUrl:"template/event-registration/benefit-item.html",scope:{benefitItemId:"=mniBenefitItem",applyBenefitItem:"&mniApply"},controller:["$scope","Enum","SessionService","DiscountService","RegistrationService",function(n,t,i,r){n.event=i.getEvent();n.user=i.getUser();n.registration=i.getRegistration();n.uses=i.getUses();n.editing=n.$parent.model.options.editing||!1;n.selectedBenefitDiscountId=n.$parent.model.options.benefitDiscountId;n.options=r.getBenefitsByMemId(n.registration,n.uses,n.event,n.$parent.model.attendee.MemberId,n.$parent.model.fee.Id,n.selectedBenefitDiscountId);var u=r.getById(n.event,n.selectedBenefitDiscountId);n.selectedBenefitDesc=u?u.Description:"";n.select=function(t){var i=r.getById(n.event,t);n.selectedBenefitDesc=i?i.Description:"";n.applyBenefitItem({discount:i})};n.submitCode=function(t){var i=r.getByBenefitItemId(n.event,t);n.applyBenefitItem({discount:i})};n.enterPressed=function(t,i){t.preventDefault();i&&i.length&&n.submitCode(i)};n.$on("updateBenefitOptions",function(){n.options=r.getBenefitsByMemId(n.registration,n.uses,n.event,n.$parent.model.attendee.MemberId,n.$parent.model.fee.Id,n.selectedBenefitDiscountId)})}]}}).directive("mniAlerts",function(){return{restrict:"A",replace:!1,transclude:!1,templateUrl:"template/event-registration/alerts.html",scope:{alerts:"=mniAlerts"}}}).directive("mniLink",function(){return{restrict:"A",replace:!1,transclude:!0,template:'<a ng-if="href" ng-href="{{href}}" title="{{title}}" mni-link-transclude><\/a><span ng-if="!href" title="{{title}}" mni-link-transclude><\/span>',scope:{href:"@mniLink",title:"@mniTitle"},controller:["$transclude",function(n){this.$transclude=n}]}}).directive("mniLinkTransclude",function(){return{require:"^mniLink",link:function(n,t,i,r){r.$transclude(function(n){t.empty();t.append(n)})}}}).directive("mniCheckout",function(){return{restrict:"A",scope:{userKey:"=mniUserKey",encryptedUserKey:"=mniEncryptedUserKey",adminKey:"=mniAdminKey",skipCart:"=mniSkipCart",checkDisclaimer:"=mniCheckDisclaimer",responseUrl:"=mniResponseUrl",completeUrl:"=mniCompleteUrl",baseUrl:"=mniBaseUrl"},link:function(n,t){t.CheckoutGZPay(n.encryptedUserKey,null,n.skipCart,n.responseUrl,n.completeUrl,n.baseUrl,n.adminKey);n.checkDisclaimer&&t.find("#checkout-agreement > input[type=checkbox]").prop("checked",!0)}}}).directive("mniAttendeePicker",["$compile","$timeout",function(n,t){return{restrict:"A",scope:{condition:"=mniAttendeePicker",filter:"=mniAttendeeFilter",onMore:"&mniAttendeeMore",onSelect:"&mniAttendeeSelected"},link:function(i,r){function h(){var n=f.find(".list-group"),r=n.find("a.list-group-item.active"),t,i;r.length==1&&(t={height:n.height(),scrollPosition:n.scrollTop()},i={top:r.position().top,bottom:r.position().top+r.outerHeight(!0)},i.bottom>t.height?n.scrollTop(t.scrollPosition+i.bottom-t.height):i.top<0&&n.scrollTop(t.scrollPosition-Math.abs(i.top)))}function s(){i.$apply(function(){i.visible=!0})}var f=n('<div class="autocomplete" ng-class="{ \'autocomplete-active\': visible }"><div class="list-group" tabindex="-1"><a href="" class="list-group-item clearfix" tabindex="-1" ng-click="select(item)" ng-class="{ \'active\': item === selected, \'list-group-item-warning\': item.IsRegistered }" ng-repeat="item in options"><span class="autocomplete-icons"><span ng-if="item.RepresentativeId" title="Representative" class="glyphicon glyphicon-user pull-right"><\/span><span ng-if="item.IsRegistered" title="Already registered" class="glyphicon glyphicon-exclamation-sign pull-right"><\/span><\/span><span class="autocomplete-text"><span ng-switch="filter.reverse" class="autocomplete-name"><span ng-switch-when="true">{{item.LastName}}, {{item.FirstName}}<\/span><span ng-switch-default>{{item.FirstName}} {{item.LastName}}<\/span><\/span> <small ng-if="item.Company" class="autocomplete-company">{{item.Company}}<\/small><\/span><\/a><div class="list-group-item" ng-if="!options.length"><em ng-if="loading"><span class="spinner"><\/span> Loading&hellip;<\/em><em ng-if="!loading">No results found.<\/em><\/div><\/div><a href="" class="btn btn-block btn-primary" tabindex="-1" ng-click="moreOptions()" ng-if="onMore">Show more&hellip;<\/a><\/div>')(i),o={keydown:function(n){if(i.$apply(function(){var r=i.options.indexOf(i.selected),t=!0;n.keyCode==9?t=undefined:n.keyCode==38?i.selected=r<1?i.options[0]:i.options[r-1]:n.keyCode==40?i.selected=r==i.options.length-1?i.options[i.options.length-1]:i.options[r+1]:n.keyCode==13&&i.selected?(i.select(i.selected),t=!1):n.keyCode==27?t=!1:i.selected=null;angular.isDefined(t)&&(i.visible=t)}),n.keyCode==13&&i.selected)return!1;(n.keyCode==38||n.keyCode==40)&&h()},click:s,focus:function(){var n=i.filter.query;angular.isString(n)&&n.length>0&&s()}},e,u;r.wrap('<div class="autocomplete-wrapper"><\/div>');r.after(f);e=!1;u=!1;r.on("change",function(n){e&&(u=!0);u&&n.stopImmediatePropagation()});f.on("click focusout",function(){e=!1;u&&(u=!1,r.triggerHandler("change"))});f.on("mousedown",function(){e=!0;u=!1});r.parent().on("focusout",function(){var n=angular.element(this);t(function(){n.has(":focus").length||(i.visible=!1)},0)});i.select=function(n){i.onSelect({item:n});i.visible=!1};i.$watch("condition",function(n){if(n)r.on(o);else r.off(o),i.visible=!1})},controller:["$scope","$q","Utils","Enum","ApiService","SessionService","Context",function(n,i,r,u,f,e){var h=e.getEvent(),o=e.getUser(),s;n.options=[];n.moreOptions=function(){n.visible=!1;n.onMore()};n.$watch("[filter,visible]",function(e,c){var l=e[0],v=e[1],a;t.cancel(s);v&&(a=c[1]?250:0,n.loading=!0,s=t(function(){var t=l.memberId,e;o.IsAdmin||h.RepresentativeVisibility!=u.REPRESENTATIVEVISIBILITY_MEMBER||(t=o.MemberId);e=i.when({Candidates:[]});(o.IsAdmin||!l.memberId||t==l.memberId)&&(e=f.getCandidates(l.query,l.reverse,l.memberNameField,t,l.unlinked,o.AuthToken).then(r.dataFromRequest));e.then(function(t){n.options=t.Candidates;n.loading=!1})},a))},!0)}]}}]).directive("mniCompanyPicker",["$compile","$timeout",function(n,t){return{restrict:"A",scope:{condition:"=mniCompanyPicker",filter:"=mniCompanyFilter",onMore:"&mniCompanyMore",onSelect:"&mniCompanySelected"},link:function(i,r){function h(){var n=f.find(".list-group"),r=n.find("a.list-group-item.active"),t,i;r.length==1&&(t={height:n.height(),scrollPosition:n.scrollTop()},i={top:r.position().top,bottom:r.position().top+r.outerHeight(!0)},i.bottom>t.height?n.scrollTop(t.scrollPosition+i.bottom-t.height):i.top<0&&n.scrollTop(t.scrollPosition-Math.abs(i.top)))}function s(){i.$apply(function(){i.visible=!0})}var f=n('<div class="autocomplete" ng-class="{ \'autocomplete-active\': visible }"><div class="list-group" tabindex="-1"><a href="" class="list-group-item clearfix" tabindex="-1" ng-click="select(item)" ng-class="getClass(item)" ng-repeat="item in options"><span class="pull-left">{{item.Company}}<\/span><\/a><div class="list-group-item" ng-if="!options.length"><em ng-if="loading"><span class="spinner"><\/span> Loading&hellip;<\/em><em ng-if="!loading">No results found.<\/em><\/div><\/div><a href="" class="btn btn-block btn-primary" tabindex="-1" ng-click="moreOptions()" ng-if="onMore">Show more&hellip;<\/a><\/div>')(i),o={keydown:function(n){if(i.$apply(function(){var r=i.options.indexOf(i.selected),t=!0;n.keyCode==9?t=undefined:n.keyCode==38?i.selected=r<1?i.options[0]:i.options[r-1]:n.keyCode==40?i.selected=r==i.options.length-1?i.options[i.options.length-1]:i.options[r+1]:n.keyCode==13&&i.selected?(i.select(i.selected),t=!1):n.keyCode==27?t=!1:i.selected=null;angular.isDefined(t)&&(i.visible=t)}),n.keyCode==13&&i.selected)return!1;(n.keyCode==38||n.keyCode==40)&&h()},click:s,focus:function(){var n=i.filter.query;angular.isString(n)&&n.length>0&&s()}},e,u;r.wrap('<div class="autocomplete-wrapper"><\/div>');r.after(f);e=!1;u=!1;r.on("change",function(n){e&&(u=!0);u&&n.stopImmediatePropagation()});f.on("click focusout",function(){e=!1;u&&(u=!1,r.triggerHandler("change"))});f.on("mousedown",function(){e=!0;u=!1});r.parent().on("focusout",function(){var n=angular.element(this);t(function(){n.has(":focus").length||(i.visible=!1)},0)});i.$watch("condition",function(n){if(n)r.on(o);else r.off(o),i.visible=!1})},controller:["$scope","ApiService","SessionService","RegistrationService","Context",function(n,i,r,u){var f;n.user=r.getUser();n.options=[];n.moreOptions=function(){n.onMore();n.visible=!1};n.select=function(t){i.getMember(t.Id,n.filter.memberNameField,n.user.AuthToken).success(function(t){n.onSelect({item:t});n.visible=!1})};n.getClass=function(t){var i={active:t==n.selected},r=u.getMemberStatusClass(t);return r&&(i[r]=!0),i};n.$watch("[filter,visible]",function(r,u){var e=r[0],s=r[1],o;t.cancel(f);s&&(o=u[1]?250:0,n.loading=!0,f=t(function(){i.getMembers(e.query,e.memberNameField,null,null,null,n.user.AuthToken).success(function(t){n.options=t.Results;n.loading=!1})},o))},!0)}]}}]).directive("mniPanel",function(){return{restrict:"A",replace:!0,transclude:!0,templateUrl:"template/event-registration/panel.html",scope:{title:"@mniTitle",type:"@mniType",panel:"@mniPanel"}}}).directive("mniSponsors",function(){return{restrict:"A",replace:!1,templateUrl:"template/event-registration/sponsors.html",scope:{groups:"=mniSponsors"}}}).directive("mniSponsorAds",["$window","$timeout",function(n,t){return{restrict:"A",replace:!1,template:'<div class="mn-banner mn-banner-standard"><div id="mn-banner-{{$id}}"><\/div><\/div>',scope:{sponsorAds:"=mniSponsorAds"},link:function(i){t(function(){var u=["domain","context","category","member","duration","max","rotate","maxWidth","maxHeight"],t=n._mnisq,r=i.$id+"-"+ +new Date+".";angular.forEach(i.sponsorAds||{},function(n,i){n!=null&&u.indexOf(i)>=0&&t.push([r+i,n])});t.push([r+"create","mn-banner-"+i.$id])},0)}}}]).directive("mniAttendee",function(){return{restrict:"A",templateUrl:"template/event-registration/attendee.html",scope:{attendee:"=mniAttendee",inline:"=mniInline",disabled:"=mniDisabled"},controller:["$scope","Utils","ApiService","SessionService","RegistrationService","AttendeeService","ModalService",function(n,t,i,r,u,f,e){n.event=r.getEvent();n.user=r.getUser();n.PhoneFormat=n.event.PhoneFormat;n.UsePhoneFormat=n.event.CultureCode=="en-US"||n.event.CultureCode=="en-CA";var o=u.getAttendeeRequirements(n.event,n.user);n.requirements=function(){return u.isPlaceholder(n.attendee)?{}:o};n.maxlengths=n.event.AttendeeLengths;n.moreAttendee=function(t){var i=f.getFullName(n.attendee.FirstName,n.attendee.LastName,t);e.chooseAdvancedAttendee(i,n.memberNameField,t).then(n.selectAttendee)};n.selectAttendee=function(r){var u=r.RepresentativeId?i.getRepresentative(r.RepresentativeId,n.memberNameField,n.user.AuthToken).then(t.dataFromRequest):i.getAttendee(r.AttendeeId,n.user.AuthToken).then(t.dataFromRequest);u.then(function(t){var i=f.createFromExisting(t,!n.user.Verified);i.Id=n.attendee.Id;i.CustomFields=n.attendee.CustomFields;i.IsRegistrant=n.user.RepresentativeId&&n.user.RepresentativeId==t.RepresentativeId;n.UsePhoneFormat&&(i.Phone=n.formatPhone(i.Phone,n.PhoneFormat));angular.copy(i,n.attendee)})};n.formatPhone=f.formatPhone;n.moreCompany=function(){e.chooseMember(n.attendee.Company,n.memberNameField,null).then(n.selectCompany)};n.selectCompany=function(t){var i=f.createFromExisting(t,!n.user.Verified);i.Id=n.attendee.Id;i.FirstName=n.attendee.FirstName;i.LastName=n.attendee.LastName;i.CustomFields=n.attendee.CustomFields;n.UsePhoneFormat&&(i.Phone=n.formatPhone(i.Phone,n.PhoneFormat));angular.copy(i,n.attendee)};n.companyChanged=function(n){f.unlinkMember(n)};n.nameChanged=function(n){f.unlinkRepresentative(n)};n.placeholder=function(n){return u.isPlaceholder(n)};n.nullIf=t.nullIf;n.user.IsAdmin&&(n.memberNameField=n.event.DefaultStaffCompany)}]}}).directive("mniPricing",function(){return{restrict:"A",templateUrl:"template/event-registration/pricing.html",scope:{user:"=mniUser",inline:"=mniInline"},controller:["$scope","SessionService","FeeService",function(n,t,i){function s(){return n.user||t.getUser()}function h(){var n=i.getBaseFees(u,r,!r.IsAdmin),t={},s=r.IsAdmin?o:n,e=[];angular.forEach(n,function(n){t[n.Id]=!0});angular.forEach(s,function(n){e.push({id:n.Id,name:n.Name,description:n.Description,amount:n.Amount,allotment:i.getAllotment(n),reserved:i.isAllotmentReserved(n),available:t[n.Id]})});f.fees=e}function c(n,t){var f=i.getById(u,n.id),r=0;return angular.forEach(e.AttendeeFees,function(n){angular.forEach(n.Attendees,function(){r++})}),i.getRemaining(f,o,e.AttendeeFees,l,t,r)}var u=t.getEvent(),e=t.getRegistration(),r=s(),l=t.getUses(),o=i.getAllBaseFees(u),f={};f.fees=[];h();n.vm=f;n.remaining=function(n){return c(n)};n.soldMessage=function(n){return r.IsAdmin?c(n,!0)<1?"Item Sold Out":"Event Sold Out":"Sold Out"};n.$watch(s,h,!0)}]}}).directive("mniSummary",function(){return{restrict:"A",scope:!0,templateUrl:"template/event-registration/summary.html",controller:["$scope","SessionService","RegistrationService","FeeService","DiscountService",function(n,t,i,r,u){var o=t.getEvent(),e=t.getRegistration(),a=t.getUser(),v=t.getUses(),s=!1,h=[],c=[],l=[],f;i.updateTotals(e,o,a,v);angular.forEach(e.AttendeeFees,function(n){var t=r.getById(o,n.FeeId);h.push({fee:t,attendees:n.Attendees,quantity:n.Quantity,subTotal:n.SubTotal,total:n.Total,allotment:r.getAllotment(t)})});angular.forEach(e.AdditionalFees,function(n){var t=r.getById(o,n.FeeId);c.push({fee:t,quantity:n.Quantity,subTotal:n.SubTotal,total:n.Total})});angular.forEach(e.Discounts,function(n,t){var i=u.getById(o,t)||{};l.push({name:u.getNameById(o,t),description:i.Description,amount:n})});angular.forEach(h,function(n){n.fee&&(s=!0)});(c.length||l.length)&&(s=!0);f={};f.showNameColumn=s;f.attendeeFees=h;f.additionalFees=c;f.discounts=l;f.subTotal=e.SubTotal;f.discountTotal=e.DiscountTotal;f.taxTotal=e.TaxTotal;f.total=e.Total;n.vm=f}]}}).directive("mniAttendeeEditor",function(){return{restrict:"A",scope:{model:"=mniAttendeeEditor",alertManager:"=mniAlertManager",inline:"@mniInline",readOnly:"=mniReadOnly"},templateUrl:"template/event-registration/attendee-editor.html",controller:["$scope","$q","$timeout","Enum","Utils","SessionService","RegistrationService","FeeService","DiscountService","AttendeeFeeService","AttendeeService","AlertManager","ApiService","ModalService",function(n,t,i,r,u,f,e,o,s,h,c,l,a,v){function ot(){var n=g.parent,i=b.fee,t;return n&&(i=o.getById(k,n.FeeId)),t=angular.copy(e.getCustomFieldsForFee(k,p,i)),angular.forEach(t,function(t){t.Caption=u.trimHtmlWhitespace(t.Caption);t.FeeIds.length&&n&&t.CustomFieldBasis==r.CUSTOMFIELDBASIS_PERFEE&&(y.CustomFields[t.Id]=n.Attendees[0].CustomFields[t.Id],t.Disabled=!0);t.IsInventory&&!t.Disabled&&(t.SelectItems=u.where(t.SelectItems,function(n){return ft[n.Id]>0}))}),t}function kt(){return d.InProcess||!y.Id}function st(){w.customFields=ot();n.$broadcast("updateBenefitOptions")}function dt(){return p.IsAdmin&&!k.AttendeeRequirements.EnforceForStaff?"staff":e.isPlaceholder(y)?"additional attendees":!1}function gt(){return e.validateAttendeeAddress(y,k,p)}function ht(){w.hasIdentity||u.isNullOrWhitespace(y.FirstName)&&u.isNullOrWhitespace(y.LastName)&&u.isNullOrWhitespace(y.Company)||(w.hasIdentity=!0)}function ni(){w.showLinks||c.unlinkRepresentative(y)}function ti(){w.showLinks||c.unlinkMember(y)}function et(){return y.CreateRepresentative?"create":y.RepresentativeId?"representative":y.MemberId?"member":"none"}function ii(){var n=et(y);return n=="member"||n=="create"}function ri(n){var t=et(y);return t=="representative"||n&&t=="create"}function ui(n){n?c.unlinkMember(y):c.unlinkRepresentative(y);y.CreateRepresentative=!1}function ct(){var n=(y.Company||"").trim();return v.chooseMember(n,ut,y)}function fi(){var n=[y.FirstName,y.LastName].join(" ").trim();return v.chooseAdvancedAttendee(n,ut,null,y)}function ei(n){var t=n?ct():fi();t.then(function(t){y.CreateRepresentative=!1;y.MemberId=t.MemberId;y.RepresentativeId=t.RepresentativeId;y.LinkedName=t.LinkedName;y.LinkedMemberName=t.LinkedMemberName;var i=y.FirstName,r=y.LastName;t.copy&&angular.extend(y,t);n&&(y.FirstName=i,y.LastName=r)})}function oi(){v.createMember(y.Id).then(function(n){y.CreateRepresentative=!0;y.MemberId=n;a.getPrimaryRepresentative(n,p.AuthToken).success(function(n){y.CreateRepresentative=!1;y.RepresentativeId=n.RepresentativeId;y.LinkedName=n.LinkedName;y.LinkedMemberName=n.LinkedMemberName})})}function si(){y.CreateRepresentative?y.CreateRepresentative=!1:y.MemberId?y.CreateRepresentative=!0:ct().then(function(n){y.CreateRepresentative=!0;y.MemberId=n.MemberId;y.LinkedMemberName=n.LinkedMemberName})}function hi(){return p.IsAdmin&&!d.AttendeeFees.length?w.hasIdentity:!0}function ci(){return!n.readOnly&&(lt()||at()||vt())}function lt(){return w.feeOptions.length>1}function at(){return p.IsAdmin||d.InProcess?pt&&s.hasPromoDiscounts(k):!1}function li(n,t){!n&&u.isNullOrWhitespace(t)?(b.discount=null,b.promoCode=null,it.closeKey(r.ALERT_PROMO)):e.ensureDiscountUsage(nt,d,b.fee,n,p,h.isValidDiscount).then(function(i){b.discount=n;b.promoCode=t;f.setUses(i);it.addSuccess(r.ALERT_PROMO_SUCCESS,r.ALERT_PROMO)})["catch"](function(n){n&&it.addError(n,r.ALERT_PROMO)})}function vt(){var i=n.model.fee.Id,t=!1;return bt&&(t=b.options.benefitDiscountId||s.hasMemberBenefitDiscounts(d,nt,k,y.MemberId,i)),t}function ai(n){n?(n.MemberId=y.MemberId,b.benefitItemDiscount=n,f.setUses(nt),rt.addSuccess(r.ALERT_BENEFIT_SUCCESS,r.ALERT_BENEFIT)):(b.benefitItemDiscount=null,rt.closeKey(r.ALERT_BENEFIT))}function vi(){v.pricingDetails(p)}function yi(){if(p.IsAdmin)return p.Eligibility!=r.ELIGIBILITY_MEMBER?"Non-member":"Member"}function pi(n){return(b.fee&&b.fee.Id)==n.Id}var k=f.getEvent(),d=f.getRegistration(),p=angular.copy(f.getUser()),nt=f.getUses(),yt=n.alertManager||new l,it=new l,rt=new l,b=n.model,y=b.attendee,g=b.options||{},pt="allowPromoDiscounts"in g?g.allowPromoDiscounts:!0,wt="allowAgeDiscounts"in g?g.allowAgeDiscounts:!0,bt="allowBenefitDiscounts"in g?g.allowBenefitDiscounts:!0,tt=g.feeOptions||[],ut,ft,w;p.IsAdmin&&(ut=k.DefaultStaffCompany);ft=e.getAvailableInventory(k,d,nt.Inventory,y);b.fee||(b.fee=tt[0]);w={};w.terminology=k.Terminology;w.contactRequirements=e.getAttendeeRequirements(k,null);w.contactLengths=k.AttendeeLengths;w.fieldStyles=e.getFieldStyles(k);w.hasAgeDiscounts=wt?s.hasAgeDiscounts(k):!1;w.showPicker=!p.NonMember;w.showUnlinked=k.ShowUnlinked;w.showLinks=p.IsAdmin&&d.Id;w.feeOptions=tt;w.promoDiscountId=g.promoDiscountId;w.benefitItemId=g.benefitItemId;w.customFields=ot();n.vm=w;n.model=b;n.alerts=yt;n.promoAlerts=it;n.benefitAlerts=rt;n.canEditFee=kt;n.feeChanged=st;n.ignoreRequired=dt;n.validateContactAddress=gt;n.updateIdentity=ht;n.nameChanged=ni;n.companyChanged=ti;n.linkType=et;n.memberLink=ii;n.representativeLink=ri;n.unlink=ui;n.link=ei;n.createMember=oi;n.createRepresentative=si;n.showChoices=hi;n.showHeaders=ci;n.showFeeOptions=lt;n.showPromoCode=at;n.applyPromoCode=li;n.showBenefitItems=vt;n.applyBenefitItem=ai;n.openPricing=vi;n.pricingType=yi;p.IsAdmin&&!d.AttendeeFees.length&&(b.user=p,n.$watchGroup(["model.attendee.AttendeeId","model.attendee.RepresentativeId","model.attendee.MemberId"],function(n,i){function s(n){return[n[0]||0,n[1]||0,n[2]||0]}var r=s(n),l=s(i),h,c;angular.equals(l,r)||(h=a.getParticipantAccount(p.AuthToken,r[0],r[1],r[2]).then(u.dataFromRequest),c=a.getUses(r[2],d.Token).then(u.dataFromRequest),t.all({participant:h,uses:c}).then(function(n){var t=n.participant,i;b.user=p;p.RepresentativeId=t.RepresentativeId;p.MemberId=t.MemberId;p.MembershipTypeId=t.MembershipTypeId;p.MemberName=t.MemberName;p.Eligibility=t.Eligibility;p.TaxExempt=t.TaxExempt;nt=n.uses;f.setUses(n.uses);ft=e.getAvailableInventory(k,d,nt.Inventory,y);i=o.getBaseFees(k,p);tt=o.getAvailable(i,d.AttendeeFees,nt);u.find(tt,pi)||(b.fee=tt[0]);w.feeOptions=tt;st()}))}));ht()}]}}).directive("mniAdditionalFeeEditor",function(){return{restrict:"A",scope:{model:"=mniAdditionalFeeEditor",readOnly:"=mniReadOnly"},templateUrl:"template/event-registration/fee-editor.html",controller:["$scope","Enum","Utils","SessionService","RegistrationService","DiscountService","AdditionalFeeService","AlertManager",function(n,t,i,r,u,f,e,o){var s=angular.extend({editing:!1},n.model.options),h=r.getUses();n.event=r.getEvent();n.registration=r.getRegistration();n.user=r.getUser();n.editing=s.editing;n.hasPromoDiscounts=f.hasPromoDiscounts;n.alerts=new o;n.applyPromoCode=function(f,o){!f&&i.isNullOrWhitespace(o)?(e.setPromo(n.model.fee,null,null),n.alerts.closeKey(t.ALERT_PROMO)):u.ensureDiscountUsage(h,n.registration,n.model.fee,f,n.user,e.isValidDiscount).then(function(i){e.setPromo(n.model.fee,f,o);r.setUses(i);n.alerts.addSuccess(t.ALERT_PROMO_SUCCESS,t.ALERT_PROMO)})["catch"](function(i){i&&n.alerts.addError(i,t.ALERT_PROMO)})};n.canEdit=function(){return n.user.IsAdmin?!0:!n.readOnly&&n.registration.InProcess}}]}}).directive("mniSetFocus",function(){return{restrict:"A",link:function(n,t,i){function r(){var n=angular.element(i.mniSetFocus);n.length&&n.focus()}t.bind("click",r);n.$on("$destroy",function(){t.unbind("click",r)})}}}).directive("mniCompile",["$compile","$sce","$interpolate",function(n,t){return{restrict:"A",scope:!1,link:function(i,r,u){function e(i){var u=t.getTrustedHtml(i);r.html(u);n(r.contents())(f)}function o(n){angular.extend(f,n)}var f=i.$new(!0);i.$watch(u.mniCompile,e,!0);i.$watch(u.mniScope,o,!0)}}}]).directive("mniChanged",["$timeout",function(){function n(n,t,i){function r(){n.$eval(i.mniChanged)}t.bind("change",r);n.$on("$destroy",function(){t.unbind("change",r)})}return{restrict:"A",priority:1,link:n}}]).directive("help",["$sce","Enum","ApiService","ModalService",function(n,t,i,r){var u={};return{restrict:"A",scope:!1,link:function(n,f,e){function o(){var n=e.helpKey;return u[n]||(u[n]=i.getHelp(n))}f.bind({click:function(){o().success(function(n){r.messageBox(n,e.helpTitle,{size:"md"})}).error(function(){r.messageBox(t.MSG_HELP_ERR,t.MSG_HELP_ERRTITLE)})},mouseover:function(){o()}})}}}]).directive("integer",function(){var n=/^\s*[-+]?\d+\s*$/;return{require:"ngModel",link:function(t,i,r,u){u.$parsers.push(function(t){var i=u.$isEmpty(t);return i||n.test(t)?(u.$setValidity("integer",!0),t===""?null:i?t:parseInt(t)):(u.$setValidity("integer",!1),undefined)})}}}).directive("ngMin",function(){return{require:"ngModel",link:function(n,t,i,r){n.$watch(i.ngMin,function(){r.$setViewValue(r.$viewValue)});var u=function(t){var u=n.$eval(i.ngMin)||1,f=r.$isEmpty(t);return!f&&t<u?(r.$setValidity("ngMin",!1),undefined):(r.$setValidity("ngMin",!0),t)};r.$parsers.push(u);r.$formatters.push(u)}}}).directive("ngMax",function(){return{require:"ngModel",link:function(n,t,i,r){n.$watch(i.ngMax,function(){r.$setViewValue(r.$viewValue)});var u=function(t){var u=n.$eval(i.ngMax)||Infinity,f=r.$isEmpty(t);return!f&&t>u?(r.$setValidity("ngMax",!1),undefined):(r.$setValidity("ngMax",!0),t)};r.$parsers.push(u);r.$formatters.push(u)}}}).directive("float",function(){var n=/^\s*[-+]?(\d+(\.\d*)?|\.\d+)\s*$/;return{require:"ngModel",link:function(t,i,r,u){u.$parsers.push(function(t){var i=u.$isEmpty(t);return i||n.test(t)?(u.$setValidity("float",!0),t===""?null:i?t:parseFloat(t)):(u.$setValidity("float",!1),undefined)})}}}).directive("email",["ValidationService",function(n){return{restrict:"A",require:"?ngModel",link:function(t,i,r,u){u.$validators.email=function(t){return u.$isEmpty(t)||n.isValidEmail(t)}}}}]).directive("phoneformat",function(){"use strict";function n(n,t,i,r){var u=n.formatPhone,f=n.PhoneFormat,e=n.UsePhoneFormat;t.bind("blur",function(){var n=r.$modelValue;angular.isDefined(n)&&e&&(r.$viewValue=u(n,f),r.$render())})}return{restrict:"A",require:"ngModel",link:n}}).directive("money",function(){"use strict";function t(t,i,r,u){function v(n){var t=Math.pow(10,f);return Math.round(n*t)/t}function c(n){return parseFloat(n).toFixed(f)}function l(n){return u.$isEmpty(n)?"":""+n}var h=parseFloat(r.min||0),f=parseFloat(r.precision||2),e,o,a,s;u.$parsers.push(function(t){angular.isUndefined(t)&&(t="");t.indexOf(".")===0&&(t="0"+t);t.indexOf("-")===0&&(h>=0?(t=null,u.$setViewValue(""),u.$render()):t==="-"&&(t=""));var i=u.$isEmpty(t);return i||n.test(t)?e=t===""?null:i?t:parseFloat(t):(u.$setViewValue(l(e)),u.$render()),u.$setValidity("number",!0),e});u.$formatters.push(l);o=function(n){return!u.$isEmpty(n)&&n<h?(u.$setValidity("min",!1),undefined):(u.$setValidity("min",!0),n)};u.$parsers.push(o);u.$formatters.push(o);r.max&&(a=parseFloat(r.max),s=function(n){return!u.$isEmpty(n)&&n>a?(u.$setValidity("max",!1),undefined):(u.$setValidity("max",!0),n)},u.$parsers.push(s),u.$formatters.push(s));f>-1&&(u.$parsers.push(function(n){return angular.isDefined(n)?v(n):n}),u.$formatters.push(function(n){return angular.isDefined(n)?c(n):n}));i.bind("blur",function(){var n=u.$modelValue;angular.isDefined(n)&&(u.$viewValue=c(n),u.$render())})}var n=/^\s*(\-|\+)?(\d+|(\d*(\.\d*)))\s*$/;return{restrict:"A",require:"ngModel",link:t}}).directive("selectOn",function(){function n(n,t,i){n.$on("selectOn",function(n,r){r===i.selectOn&&t[0].select()})}return{restrict:"A",link:n}}).directive("modalBackdrop",function(){return{restrict:"EA",link:function(n,t){t.attr({id:"mn-eventregistration"})}}}).directive("modalWindow",function(){return{restrict:"EA",link:function(n,t){t.attr({id:"mn-eventregistration"})}}});angular.module("eventRegistrationApp.factories",[]).factory("step",["$window","Enum","SessionService","RegistrationService",function(n,t,i,r){function l(){angular.forEach(e,function(n){n()})}function h(n){return angular.isDefined(n)&&(n in u||(n=t.STEP_UNKNOWN),n!==f&&(s=null,l()),f=n),f}function a(){var f=o,n,u;return o=!1,h.confirmClose()&&!f&&(n=i.getOriginalRegistration(),u=i.getRegistration(),r.hasChanged(n,u))?t.ALERT_REG_UNSAVED:void 0}function v(n){if(n.which==8){var t=n.srcElement||n.target,i=(t.tagName||"").toUpperCase();return(i==="TEXTAREA"||i==="INPUT"&&["TEXT","PASSWORD","FILE","EMAIL","SEARCH","DATE"].indexOf((t.type||"").toUpperCase())>=0)&&!t.readOnly&&!t.disabled?void 0:!1}}var u={},f=t.STEP_UNKNOWN,c=t.STEP_LOGIN,s=null,e=[],o=!1;return u[t.STEP_BLANK]={template:"template/event-registration/step-blank.html"},u[t.STEP_LOGIN]={template:"template/event-registration/step-registrant.html",ads:!0},u[t.STEP_SOLDOUT]={template:"template/event-registration/step-soldout.html"},u[t.STEP_FEES]={template:"template/event-registration/step-fees.html",confirmClose:!0},u[t.STEP_SUMMARY]={template:"template/event-registration/step-summary.html",confirmClose:!0},u[t.STEP_CART]={template:"template/event-registration/step-cart.html"},u[t.STEP_CHECKOUT]={template:"template/event-registration/step-checkout.html"},u[t.STEP_COMPLETE]={template:"template/event-registration/step-complete.html"},u[t.STEP_PAYMENT]={template:"template/event-registration/step-payment.html",confirmClose:!0},u[t.STEP_ATTENDEE]={template:"template/event-registration/step-attendee.html"},u[t.STEP_FEE]={template:"template/event-registration/step-additional-fee.html"},u[t.STEP_COMPLETE_WAITLIST]={template:"template/event-registration/step-complete-waitlist.html"},u[t.STEP_WAITLIST_ATTENDEE]={template:"template/event-registration/step-waitlist-attendee.html"},angular.extend(h,{template:function(){var n=u[f];return n&&n.template},ads:function(){var n=u[f];return n&&n.ads},confirmClose:function(){var n=u[f];return n&&n.confirmClose},instructions:function(n){return angular.isDefined(n)&&(c=n?f:null),c===f},action:function(n){return angular.isDefined(n)&&(s=n),s},redirect:function(t,i){o=!!i;n.location.href=t},close:function(t){o=!!t;n.close()},addCallback:function(n){angular.isFunction(n)&&e.push(n)},removeCallback:function(n){for(var t;(t=e.indexOf(n))>=0;)e.splice(t,1)}}),angular.element(n).bind({beforeunload:a,keydown:v}),h}]).factory("loader",function(){function i(){angular.forEach(t,function(n){n()})}var r=!1,n=[],u=0,t=[];return{loading:function(n){if(angular.isUndefined(n))return r;r=!!n;i()},messages:function(t){if(angular.isUndefined(t))return n;angular.isArray(t)||(t=[]);n=t;i()},addMessage:function(t){n.unshift(t)},setMessage:function(t){n.length=0;n.unshift(t)},removeMessage:function(t){for(var i;(i=n.indexOf(t))>=0;)n.splice(i,1)},removeAllMessages:function(){n.length=0},percent:function(n){if(angular.isUndefined(n))return u;angular.isNumber(n)?n<0?n=0:n>100&&(n=100):n=0;u=n;i()},addCallback:function(n){angular.isFunction(n)&&t.push(n)},removeCallback:function(n){for(var i;(i=t.indexOf(n))>=0;)t.splice(i,1)}}}).factory("select",["$rootScope","$timeout",function(n,t){return function(i){t(function(){n.$broadcast("selectOn",i)},100)}}]).factory("AlertManager",function(){function n(){this.length=0}return angular.extend(n.prototype,{keys:{},closeKey:function(n){this.closeAlert(this.keys[n])},closeAlert:function(n){var t=this,i=Array.prototype.indexOf.call(t,n);angular.forEach(t.keys,function(i,r){i===n&&delete t.keys[r]});i>=0&&Array.prototype.splice.call(t,i,1)},removeAll:function(){this.keys={};this.length=0},add:function(n,t,i,r){var u=this,f={type:n,message:t,scope:r};return i=angular.extend({closable:!0},i),(angular.isDefined(i.closable)?i.closable:!0)&&(f.close=angular.bind(u,u.closeAlert,f)),i.key&&(u.closeKey(i.key),u.keys[i.key]=f),Array.prototype.push.call(u,f),f},addSuccess:function(n,t,i){return this.add("success",n,t,i)},addWarning:function(n,t,i){return this.add("warning",n,t,i)},addError:function(n,t,i){return this.add("danger",n,t,i)}}),n});angular.module("eventRegistrationApp.filters",["mni.utils","eventRegistrationApp.services"]).filter("advancedSearch",["Utils",function(n){function t(n,t){return t.score-n.score}function i(t){var i=(""+t).toLowerCase().match(/\S+/g);return function(t){for(var u,f=0,r=0;r<i.length;r++)if(u=!1,angular.forEach(t,function(t){var o=(""+t).toLowerCase(),e=o.indexOf(i[r]);e>=0&&(u=!0,f+=1+(e==0?2:0)+(n.isNullOrWhitespace(o[e-1])?1:0))}),!u)return 0;return f}}return function(r,u){if(n.isNullOrEmpty(u))return r;var f=[],e=i(u);return angular.forEach(r,function(n){var t=e(n);t>0&&f.push({score:t,item:n})}),f.sort(t),n.map(f,function(n){return n.item})}}]).filter("eventDateRange",["$filter","$sce","Utils",function(n,t,i){return function(r){if(r){var u=n("date"),e=i.toLocalDate(r.StartDate.Local),o=i.toLocalDate(r.EndDate.Local),f=u(e,"longDate");return+i.startOfDay(e)!=+i.startOfDay(o)?f+=" - "+u(o,"longDate"):!r.IsAllDay&&r.Version>=2&&(f+=" @ "+u(e,"shortTime")+" - "+u(o,"shortTime"),r.StartDate.TimeZoneAbbr&&(f+=r.StartDate.TimeZoneName?' (<abbr title="'+r.StartDate.TimeZoneName+'">'+r.StartDate.TimeZoneAbbr+"<\/abbr>)":" ("+r.StartDate.TimeZoneAbbr+")")),t.trustAsHtml(f)}}}]).filter("eventCurrency",["$filter","$sce","SessionService",function(n,t,i){return function(r){var u=i.getEvent(),e=u&&u.Terminology.CurrencySymbol,s=u&&u.Terminology.CurrencyPattern,f=2,o="";return u&&u.Terminology.CurrencyPattern.indexOf(":N0")>=0&&(f=0),o=u&&u.Terminology.CurrencySymbolPlacement=="Suffix"?n("number")(r,f)+" "+e:e+n("number")(r,f),t.trustAsHtml(o)}}]).filter("personName",function(){return function(n){var t=[n.FirstName,n.LastName].join(" ").trim();return t.length||(t=null),t}}).filter("attendeeName",["Utils",function(n){return function(t){var i=[t.FirstName,t.LastName].join(" ").trim();return n.isNullOrWhitespace(i)&&(i=t.IsRegistrant?"Registrant":"Additional Attendee"),i}}]).filter("representativeContact",["$sanitize","$sce","Utils",function(n,t,i){return function(r){return t.trustAsHtml(i.concatWithSeperators([n(r.Title),"<br />",n(r.Company),"<br />",n(r.EmailAddress),"<br />",n(r.Phone)]))}}]).filter("representativeAddress",["$sanitize","$sce","Utils",function(n,t,i){return function(r){return t.trustAsHtml(i.concatWithSeperators([n(r.Line1),"<br />",n(r.Line2),"<br />",i.concatWithSeperators([n(r.City),", ",n(r.Region)," ",n(r.PostalCode)]),"<br />",n(r.Country)]))}}]).filter("memberContact",["$sanitize","$sce","Utils",function(n,t,i){return function(r){return t.trustAsHtml(i.concatWithSeperators([n(r.EmailAddress),"<br />",n(r.Phone)]))}}]).filter("memberAddress",["$sanitize","$sce","Utils",function(n,t,i){return function(r){return t.trustAsHtml(i.concatWithSeperators([n(r.Line1),"<br />",n(r.Line2),"<br />",i.concatWithSeperators([n(r.City),", ",n(r.Region)," ",n(r.PostalCode)]),"<br />",n(r.Country)]))}}]).filter("memberStatus",["RegistrationService",function(n){return function(t){return n.getMemberStatusName(t)}}]).filter("feeDescription",function(){return function(n){return n?n.Description?n.Name+": "+n.Description:n.Name:"N/A"}}).filter("feeAmount",["$filter","FeeService",function(n,t){return function(i){var r=n("feeDescription")(i),u=t.getAllotment(i);return u>1&&(r+=" – Includes "+u),r+(" ("+n("currency")(i.Amount)+")")}}]);angular.module("eventRegistrationApp.providers",[]).provider("Context",function(){angular.extend(this,{$get:function(){return{Mode:this.mode,Layout:this.layout,AssociationId:this.associationId,EventId:this.eventId,RegistrationUrl:this.registrationUrl,CheckoutBaseUrl:this.checkoutBaseUrl,UserKey:this.userKey,EncryptedUserKey:this.encryptedUserKey,AdminKey:this.adminKey,UniqueUserKey:this.uniqueUserKey,EncryptedUniqueUserKey:this.encryptedUniqueUserKey,BaseUrl:this.baseUrl,CartUrl:this.cartUrl,ReturnUrl:this.returnUrl,Customer:this.customer,ImageUrl:this.imageUrl,PublicDomain:this.publicDomain,Account:this.account,Registration:this.registration,Sponsor:angular.copy(this.sponsor),DateFormat:this.DateFormat}},setMode:function(n){this.mode=n},setLayout:function(n){this.layout=n},setAssociation:function(n){this.associationId=n},setEvent:function(n){this.eventId=n},setRegistrationUrl:function(n){this.registrationUrl=n},setCheckoutBaseUrl:function(n){this.checkoutBaseUrl=n},setUserKey:function(n){this.userKey=n},setEncryptedUserKey:function(n){this.encryptedUserKey=n},setAdminKey:function(n){this.adminKey=n},setUniqueUserKey:function(n){this.uniqueUserKey=n},setEncryptedUniqueUserKey:function(n){this.encryptedUniqueUserKey=n},setBaseUrl:function(n){this.baseUrl=n},setCartUrl:function(n){this.cartUrl=n},setReturnUrl:function(n){this.returnUrl=n},setCustomer:function(n){this.customer=n},setImage:function(n){this.imageUrl=n},setPublicDomain:function(n){this.publicDomain=n},setAccount:function(n){this.account=n},setRegistration:function(n){this.registration=n},setSponsor:function(n){this.sponsor=n},setDateFormat:function(n){this.DateFormat=n}})});angular.module("eventRegistrationApp.services",["angular-md5","eventRegistrationApp.constants","eventRegistrationApp.factories"]).service("SessionService",["Enum","$cookies",function(n,t){function r(){return{NonMember:!0,Verified:!1,Eligibility:n.ELIGIBILITY_NONMEMBER}}var i={};return{getEvent:function(){return i.event},setEvent:function(n){i.event=n},getUses:function(){return i.uses},setUses:function(n){i.uses=n},getMemberList:function(){return i.memberList},setMemberList:function(n){i.memberList=n},getRegistration:function(){return i.registration},setRegistration:function(n){i.registration=n;i.original=angular.copy(n)},getOriginalRegistration:function(){return i.original},getUser:function(){return i.user},setUser:function(n){i.user=n},setDefaultUser:function(){i.user=r()},getDefaultUser:r,setLastUser:function(i){i&&i.AuthToken?t[n.COOKIE_AUTHTOKEN]=i.AuthToken:delete t[n.COOKIE_AUTHTOKEN]},getUserKey:function(){return i.userKey},setUserKey:function(n){i.userKey=n},getEncryptedUserKey:function(){return i.encryptedUserKey},setEncryptedUserKey:function(n){i.encryptedUserKey=n},getWaitList:function(){return i.waitList},setWaitList:function(n){i.waitList=n},getIsDelayedSoldOut:function(){return i.IsDelayedSoldOut},setIsDelayedSoldOut:function(n){i.IsDelayedSoldOut=n}}}]).service("RegistrationService",["$window","$q","Enum","Utils","ApiService","FeeService","DiscountService","AttendeeFeeService","AttendeeService","AdditionalFeeService","ValidationService",function(n,t,i,r,u,f,e,o,s,h,c){function v(n,t,i){tt[n]={name:t,css:"member-"+i}}function ct(n){return n&&tt[n.MemberStatusType]}function y(n,t,i){return t=t||{},i=i||{},angular.forEach(n.split(","),function(n){i[n]=t[n]}),i}function it(n){function t(n,t){return y("MemberId,RepresentativeId,FirstName,LastName,Title,Company,Line1,Line2,City,Region,PostalCode,Country,Phone,Fax,EmailAddress",n,t)}function i(n){return y("DiscountId,Amount",n)}function u(n){return t(n,y("Id,IsRegistrant,Age,Comments,CustomFields,CreateRepresentative",n))}function f(n){n=n||{};var t=y("Id,FeeId,PromoCode,PromoDiscountId,Quantity,UnitPrice,SubTotal,PromoDiscount,BenefitDiscount,AgeDiscount,VolumeDiscount,EarlyRegDiscount,Tax",n);return t.MemberTypeDiscounts=r.map(n.MemberTypeDiscounts,i),t.Attendees=r.map(n.Attendees,u),t}function e(n){n=n||{};var t=y("Id,FeeId,PromoCode,PromoDiscountId,Comment,Quantity,UnitPrice,SubTotal,PromoDiscount,BenefitDiscount,VolumeDiscount,EarlyRegDiscount,Tax,Total",n);return t.MemberTypeDiscounts=r.map(n.MemberTypeDiscounts,i),t}function o(n){n=n||{};var i=y("Id,InProcess,Comments,InviteStatus,BillingStatus,PaymentType,ReferenceNumber,EnrollAsSponsor,CheckNumber",n);return i.Registrant=t(n.Registrant),i.PrimaryContact=t(n.PrimaryContact),i.AttendeeFees=r.map(n.AttendeeFees,f),i.AdditionalFees=r.map(n.AdditionalFees,e),i}return o(angular.copy(n))}function ni(n,t){function i(n){if(!n.UnitPriceOverride&&!n.Fixed){var i=f.getById(t,n.FeeId);n.UnitPrice=i?i.Amount:0}n.SubTotal=l(n.UnitPrice*n.Quantity);n.Discount=0;n.Total=l(n.SubTotal-n.Discount)}angular.forEach(n.AttendeeFees,i);angular.forEach(n.AdditionalFees,i)}function lt(n,t,i,u,e,o,s){var h=f.getBaseFees(t,i,!1,o),l,c;return i.IsAdmin||n.InProcess||e&&e.Id||(h=f.getFree(h)),h=f.getAvailable(h,n.AttendeeFees,u,e,s),e&&e.FeeId&&(l=r.find(h,function(n){return n.Id==e.FeeId}),l||(c=f.getById(t,e.FeeId),c&&h.push(c))),h}function ti(n,t,i,u){function c(n){var i=f.getById(t,n.FeeId);return f.getAllotment(i)}var s=n.AttendeeFees,e=[],l=[];for(angular.forEach(s,function(n){angular.forEach(n.Attendees,function(n){e.push(n)});n.Id=0;n.Attendees.length=0}),angular.forEach(s,function(n){for(var t=c(n);e.length&&t--;)n.Attendees.push(e.shift());n.Attendees.length||l.push(n)}),angular.forEach(l,function(n){r.remove(s,n)});e.length;){var a=lt(n,t,i,u),h=o.create(a[0]),v=c(h);for(s.push(h);e.length&&v--;)h.Attendees.push(e.shift())}}function ii(n,t,u,f){function y(n,t){var i=a[v.indexOf(n)];i||(a[v.push(n)-1]=i=[]);i.push(t)}function p(n){function t(n,t,r){if(r){var u;r=l(r);n.Discount=l(n.Discount+r);n.Discounts.push({amount:r,discount:{Id:t}});t==-i.DISCOUNT_VOLUME&&(u=n.FeeId,s[u]=s[u]||0,s[u]++,u=0,s[u]=s[u]||0,s[u]++)}}n.Discount=0;n.Discounts=[];n.Fixed?(t(n,n.PromoDiscountId,n.PromoDiscount),t(n,n.BenefitDiscountId,n.BenefitDiscount),t(n,-i.DISCOUNT_AGE,n.AgeDiscount),t(n,-i.DISCOUNT_VOLUME,n.VolumeDiscount),t(n,-i.DISCOUNT_EARLY,n.EarlyRegDiscount),angular.forEach(n.MemberTypeDiscounts,function(i){t(n,i.DiscountId,i.Amount)})):(n.PromoDiscount=0,n.BenefitDiscount=0,n.AgeDiscount=0,n.VolumeDiscount=0,n.EarlyRegDiscount=0,n.MemberTypeDiscounts=[])}var w=new Date,a={},v=[],c={},s={};angular.forEach(n.AttendeeFees,p);angular.forEach(n.AdditionalFees,p);angular.forEach(e.getAll(t),function(r){angular.forEach(n.AttendeeFees,function(n){if(!n.Fixed&&o.canUseDiscount(t,n,r)){var u=jQuery.extend(!0,{},r);u.DiscountClass==i.DISCOUNT_MEMBERSHIP&&(u.MemberId=n.Attendees[0].MemberId,u.MembershipTypeId=n.Attendees[0].MembershipTypeId);u.DiscountClass==i.DISCOUNT_PROMO&&u.LimitPerMember>0&&(u.MemberId=-1);y(n,u)}});angular.forEach(n.AdditionalFees,function(i){!i.Fixed&&h.canUseDiscount(t,i,r)&&(r.MemberId=n.Registrant.MemberId,r.MembershipTypeId=n.Registrant.MembershipTypeId,y(i,r))})});angular.forEach(a,function(n,u){for(var a,b,e=v[u],y=l(e.UnitPrice),k=l(e.SubTotal),h={},p={},w=0,o=0;o<e.Quantity;o++)h[o]={amount:y},p[o]=[];for(angular.forEach(n,function(n){var o,w=n.FeeId,a,b,v,u,d;for(s[w]=s[w]||0,o=n.DiscountClass==i.DISCOUNT_MEMBERSHIP&&n.MembershipTypes.indexOf(n.MembershipTypeId)>=0?n.Id+"_"+n.MemberId:n.Id,c[o]=c[o]||0,a=0;a<e.Quantity;a++)if((c[o]++,n.DiscountClass!=i.DISCOUNT_VOLUME||(b=s[w]+c[o],!(b<n.Floor)&&!(b>n.Ceiling)))&&(n.DiscountClass!=i.DISCOUNT_EARLY||(v=new Date(t.StartDate.Utc),v.setDate(v.getDate()-n.Floor),!(new Date>v)))&&(n.DiscountClass!=i.DISCOUNT_MEMBERSHIP||!(n.MembershipTypes.indexOf(n.MembershipTypeId)<0))){var tt=n.LimitPerRegistration>0,g=n.LimitPerEvent>0,nt=n.LimitPerMember>0,k=c[o];if(!tt||!(k>n.LimitPerRegistration)){if(g||nt){if(u=r.find(f.Discounts,function(t){return t.Id==n.Id&&t.MemID==n.MemberId}),u||(u=r.find(f.Discounts,function(t){return t.Id==n.Id}),u.MemID=n.MemberId,u.RemainingForMember=n.LimitPerMember),g&&k>u.RemainingForEvent)continue;if(nt&&u.MemID==n.MemberId&&k>u.RemainingForMember)continue}n.DiscountType==i.DISCOUNT_FLAT?n.FlatAmount<h[a].amount&&(h[a]={amount:l(n.FlatAmount),discount:n}):(n.DiscountType==i.DISCOUNT_AMOUNT||n.DiscountType==i.DISCOUNT_PERCENT)&&(d=n.DiscountType==i.DISCOUNT_AMOUNT?n.AdjustedAmount:n.DiscountType==i.DISCOUNT_PERCENT?n.AdjustedPercent*y/100:0,d&&p[a].push({amount:l(d),discount:n}))}}}),o=0;o<e.Quantity;o++)a=Math.max(h[o].amount,0),b=l(y-a),h[o].discount&&b>0&&e.Discounts.push({amount:b,discount:h[o].discount}),angular.forEach(p[o],function(n){var t=l(Math.min(n.amount,a));t>0&&(e.Discounts.push({amount:t,discount:n.discount}),a=l(a-t))});angular.forEach(e.Discounts,function(n){switch(n.discount.DiscountClass){case i.DISCOUNT_AGE:e.AgeDiscount=l(e.AgeDiscount+n.amount);break;case i.DISCOUNT_VOLUME:e.VolumeDiscount=l(e.VolumeDiscount+n.amount);break;case i.DISCOUNT_EARLY:e.EarlyRegDiscount=l(e.EarlyRegDiscount+n.amount);break;case i.DISCOUNT_MEMBERSHIP:e.MemberTypeDiscounts.push({DiscountId:n.discount.Id,Amount:n.amount});break;case i.DISCOUNT_PROMO:e.PromoDiscount=l(e.PromoDiscount+n.amount);break;case i.DISCOUNT_BENEFIT:e.BenefitDiscount=l(e.BenefitDiscount+n.amount)}w=l(w+n.amount)});e.Discount=Math.min(k,w)})}function ri(n,t,i){function r(n){var r,u,e;n.Fixed||(r=0,i.TaxExempt||(u=f.getById(t,n.FeeId),e=n.UnitPrice*n.Quantity,u&&(r=l(u.TaxRate*(e-n.Discount)/100))),n.Tax=r);n.UnitPrice=l(n.UnitPrice)}angular.forEach(n.AttendeeFees,r);angular.forEach(n.AdditionalFees,r)}function at(n,t,i){var r=0;return angular.forEach(n.AttendeeFees,function(n){n.PromoDiscountId==t.Id&&n!=i&&r++}),angular.forEach(n.AdditionalFees,function(n){n.PromoDiscountId==t.Id&&n!=i&&r++}),r}function a(n,t){return angular.isString(n)&&n.length>t?!1:!0}function rt(n,t,i){var r=[];return angular.forEach(n.CustomFields,function(n){(!i||n.IsRequired)&&(n.IsPublic||t&&t.IsAdmin)&&r.push(n)}),r}function vt(n,t,i){var r=[];return angular.forEach(rt(n,t,!1),function(n){n.FeeIds.length&&(!i||n.FeeIds.indexOf(i.Id)<0)||r.push(n)}),r}function yt(n,t){return n.RequireAddress&&(n.RequireAddress=b[t.CultureCode]||b["default"]),n}function ut(n,t){var i=n.RegistrantRequirements;return t&&t.IsAdmin&&!i.EnforceForStaff&&(i={}),yt(i,n),i}function d(n,t){var i=n.AttendeeRequirements;return t&&t.IsAdmin&&!i.EnforceForStaff&&(i={}),yt(i,n),i}function ui(n,t){var r=d(n,t),i={};return t&&t.Verified||(r.RequirePhone&&(i.Phone=!0),r.RequireAddress&&(i.Address=!0)),i}function g(n,t,i){var r=i.RequireAddress;return r&&(!n.Line1&&r.Line1(n)||!n.City&&r.City(n)||!n.Region&&r.Region(n)||!n.PostalCode&&r.PostalCode(n))?!1:a(n.Line1,t.Addr1)&&a(n.Line2,t.Addr2)&&a(n.City,t.City)&&a(n.Region,t.State)&&a(n.PostalCode,t.PostalCode)&&a(n.Country,t.Country)}function fi(n,t,i){var f=ut(t,i),u=t.RegistrantLengths;return f.RequireLastName&&!n.LastName?!1:f.RequireFirstName&&!n.FirstName?!1:f.RequireCompany&&!n.Company?!1:f.RequireEmail&&!n.EmailAddress?!1:f.RequirePhone&&!n.Phone?!1:!a(n.FirstName,u.FirstName)||!a(n.LastName,u.LastName)||!a(n.Company,u.CompanyName)||!a(n.Title,u.Title)||!a(n.EmailAddress,u.Email)||!a(n.Phone,u.Phone)?!1:!r.isNullOrWhitespace(n.EmailAddress)&&!c.isValidEmail(n.EmailAddress)?!1:g(n,u,f)?!0:!1}function pt(n){return!!(n&&n.FirstName=="Additional"&&n.LastName=="Attendee")}function ft(n,t,i,u,f){function h(r){var u=n.CustomFields&&n.CustomFields[r.Id];return i&&i.IsAdmin&&!t.AttendeeRequirements.EnforceForStaff?!1:r.IsRequired&&(u==null||angular.isString(u)&&!u.length)?!0:void 0}var s=pt(n),o=s?{}:d(t,i),e=t.AttendeeLengths;return!s&&r.find(vt(t,i,f),h)?!1:!u&&(o.RequireLastName&&!n.LastName||o.RequireFirstName&&!n.FirstName||o.RequireCompany&&!n.Company||o.RequireEmail&&!n.EmailAddress||!a(n.FirstName,e.FirstName)||!a(n.LastName,e.LastName)||!a(n.Company,e.Company)||!a(n.EmailAddress,e.Email))?!1:o.RequirePhone&&!n.Phone?!1:!a(n.Title,e.Title)||!a(n.Phone,e.Phone)?!1:!r.isNullOrWhitespace(n.EmailAddress)&&!c.isValidEmail(n.EmailAddress)?!1:g(n,e,o)?!0:!1}function wt(n,t){return n.CutoffDate&&n.CutoffDate.Utc?new Date(n.CutoffDate.Utc)<t:n.EndDate&&n.EndDate.Utc?new Date(n.EndDate.Utc)<t:!1}function ei(n){return n.Status==i.EVENTSTATUS_APPROVED}function nt(n){return n.MembersBillMethod>0}function oi(n){return(n.MembersBillMethod&i.BILL_ACTIVECOURTESY_ONLY)>0}function bt(n){return n.NonMembersBillMethod>0}function et(n){return n.AuthenticationMethod==i.AUTH_CREDENTIALS||n.AuthenticationMethod==i.AUTH_DUAL}function kt(n){return n.AuthenticationMethod==i.AUTH_EMAIL||n.AuthenticationMethod==i.AUTH_DUAL}function ot(n){return n.AuthenticationMethod==i.AUTH_MEMBER_LIST}function si(n){return nt(n)&&(et(n)||kt(n)||ot(n))}function hi(n){return nt(n)&&(et(n)||ot(n))}function st(n,t){angular.forEach(n.AttendeeFees,function(n){angular.forEach(n.Attendees,function(n){t(n)})})}function ci(n){var t;return st(n,function(n){t||(t=n)}),t}function li(n,t){var i;return st(n,function(n){i||n.Id!==t||(i=n)}),i}function ai(n,t){var i;return angular.forEach(n.AttendeeFees,function(n){angular.forEach(n.Attendees,function(r){i||t!=r||(i=n)})}),i}function vi(n){return n=n||{},{AttendeeId:n.AttendeeId||0,RepresentativeId:n.RepresentativeId||0,MemberId:n.MemberId||0}}function dt(n,t){return{Id:n.Id,RemainingForEvent:n.LimitPerEvent,RemainingForMember:n.LimitPerMember,MemID:t}}var l=r.currency,w={},tt,k;w["default"]={City:"col-sm-5",Region:"col-sm-3",PostalCode:"col-sm-4"};w["en-IE"]={};var p=function(){return!0},gt=function(){return!1},ht=function(n){return!(n.City||n.Region)},b={};return b["default"]={Line1:p,City:p,Region:p,PostalCode:p},b["en-IE"]={Line1:p,City:ht,Region:ht,PostalCode:gt},tt={},v(i.MEMBERTYPE_PROSPECTIVE,"Prospective","prospective"),v(i.MEMBERTYPE_ACTIVE,"Active","active"),v(i.MEMBERTYPE_COURTESY,"Courtesy","courtesy"),v(i.MEMBERTYPE_NONMEMBER,"Non-Member","nonmember"),v(i.MEMBERTYPE_INACTIVE,"Dropped/Inactive","inactive"),v(i.MEMBERTYPE_DELETED,"Deleted","deleted"),k={},k[i.REPSTATUS_ACTIVE]="representative-active",k[i.REPSTATUS_INACTIVE]="representative-inactive",{getSnapshot:it,hasChanged:function(n,t){return!angular.equals(it(n),it(t))},isBrowserSupported:function(){var n=function(){for(var i,n=3,t=angular.element("<div>")[0],r=t.getElementsByTagName("i");t.innerHTML="<!--[if gt IE "+ ++n+"]><i><\/i><![endif]-->",r[0];);return n>4?n:i}();return!(n<9)},isClosed:wt,isEventApproved:ei,isSoldOut:function(n,t,i){var r=f.getBaseFees(n,t),u=f.getAvailable(r,[],i);return!(u[0]||f.hasFreeSpots(n,[],i))},isLocked:function(n,t,i){if(i&&i.IsAdmin)return!1;if(wt(t,new Date))return!0;if(!n||!n.Id)return!1;var r=n&&n.Registrant&&n.Registrant.MemberId;return r?!nt(t):!bt(t)},isValid:function(n,t,i){var u=n.AttendeeFees,e;return u.length?(e=r.find(u,function(n){var u=f.getById(t,n.FeeId);return u?r.find(n.Attendees,function(n,r){return!ft(n,t,i,!1,r==0?u:null)}):!0}),e)?!1:!0:!1},allowMembers:nt,allowNonMembers:bt,allowAuthCredentials:et,allowAuthEmail:kt,allowAuthMemberList:ot,hasAuthentication:si,hasVerifiableAuth:hi,enforceActiveCourtesy:oi,allowMultipleAttendees:function(n){return n.MultipleAttendees},downgradeAccount:function(n){return n.NonMember=!0,n.Verified=!1,n.AllowStoredCard=!1,n.Eligibility=i.ELIGIBILITY_NONMEMBER,n.RepresentativeId=null,n.MemberId=null,n.MembershipTypeId=null,n.TaxExempt=null,n},create:function(){return{InProcess:!0,Registrant:{},PrimaryContact:{},AttendeeFees:[],AdditionalFees:[],SubTotal:0,DiscountTotal:0,TaxTotal:0,Total:0}},setRegistrant:function(n,t,i){var r=angular.extend({},angular.copy(t));r.locked=!!i;n.Registrant=r},getFeeOptions:lt,updateGroupings:ti,updateTotals:function(n,t,i,r){function s(n){angular.forEach(n.Discounts,function(n){var t=n.discount&&n.discount.Id;o[t]=l((o[t]||0)+n.amount)})}var u=0,f=0,o={},e=0;ni(n,t);ii(n,t,i,r);ri(n,t,i);angular.forEach(n.AttendeeFees,function(n){n.Total=l(n.SubTotal-n.Discount);u=l(u+n.SubTotal);f=l(f+n.Discount);e=l(e+n.Tax);s(n)});angular.forEach(n.AdditionalFees,function(n){n.Total=l(n.SubTotal-n.Discount);u=l(u+n.SubTotal);f=l(f+n.Discount);e=l(e+n.Tax);s(n)});n.SubTotal=u;n.DiscountTotal=f;n.Discounts=o;n.TaxTotal=e;n.Total=l(l(u-f)+e)},updateReservedAllotment:function(n){angular.forEach(n.AttendeeFees,function(n){if(f.isAllotmentReserved(n)){var t=n.Attendees[0];t.FirstName&&angular.forEach(n.Attendees,function(n){angular.equals(t,n)||n.Company!=null||(n.Company=t.Company)})}})},getPromoUsages:at,createMemberDiscount:dt,ensureDiscountUsage:function(n,u,f,e,o,s){var h;if(!e)return t.reject(i.ALERT_PROMO_INVALID);if(s&&!s(f,e))return t.reject(i.ALERT_PROMO_WRONG);if(e.LimitPerMember>0&&o.Eligibility!=i.ELIGIBILITY_MEMBER)return t.reject(i.ALERT_PROMO_NOQUALIFY);var v=e.LimitPerRegistration>0,c=e.LimitPerEvent>0,l=e.LimitPerMember>0,a=at(u,e,f);if(v&&a>=e.LimitPerRegistration)return t.reject(i.ALERT_PROMO_LIMITREG);if(c){if(h=r.find(n.Discounts,function(n){return n.Id==e.Id}),!h)return t.reject(i.ALERT_PROMO_ERRUSES);if(c&&a>=h.RemainingForEvent)return t.reject(i.ALERT_PROMO_LIMITEVENT)}if(l){if(h=r.find(n.Discounts,function(n){return n.Id==e.Id&&n.MemID==o.MemberId}),h||(h=dt(e,o.MemberId)),l&&h.RemainingForMember<=0)return t.reject(r.format(i.ALERT_PROMO_LIMITMEM,{member:o.MemberName,memberId:o.MemberId}));h.RemainingForMember=h.RemainingForMember-1;n.Discounts.push(h)}return t.when(n)},getCustomFields:rt,getCustomFieldsForFee:vt,validatePrimaryContactAddress:function(n,t,i){return g(n,t.RegistrantLengths,ut(t,i))},validatePrimaryContact:fi,validateAttendeeAddress:function(n,t,i){return g(n,t.AttendeeLengths,d(t,i))},getPrimaryContactRequirements:ut,getAttendeeRequirements:d,getHiddenAttendeeRequirements:ui,validateAttendee:ft,isPlaceholder:pt,canInlineAttendee:function(n,t,i){return ft(n,t,null,!0,null)?e.hasAgeDiscounts(t)?!1:e.hasPromoDiscounts(t)?!1:e.hasBenefitDiscounts(t)?!1:rt(t,i).length?!1:t.AlwaysFullAttendee?!1:!0:!1},getFieldStyles:function(n){return w[n.CultureCode]||w["default"]},getInviteStatusOptions:function(n,t){var r=[],u=t&&t.InviteStatus,f;return u==i.INVITE_UNKNOWN&&r.push({Id:i.INVITE_UNKNOWN,Value:"Invitation Not Yet Sent"}),u==i.INVITE_INVITED&&r.push({Id:i.INVITE_INVITED,Value:"Invitation Sent - No Response"}),(u==i.INVITE_ACCEPTED||n.Version<2)&&r.push({Id:i.INVITE_ACCEPTED,Value:"Invitation Accepted"}),(u==i.INVITE_ROSTERONLY||n.Version<2)&&r.push({Id:i.INVITE_ROSTERONLY,Value:"Roster Only"}),r.push({Id:i.INVITE_DECLINED,Value:"Invitation Declined"}),r.push({Id:i.INVITE_REGISTERED,Value:"Registered"}),r.push({Id:i.INVITE_REGISTERED_CANCELLED,Value:"Canceled"}),r.push({Id:i.INVITE_SPONSORONLY,Value:"Sponsor Only - Not Attending"}),t&&t.InProcess&&(f=i.INVITE_INCOMPLETE+t.InviteStatus,r.push({Id:f,Value:"Incomplete"})),r},getPaymentTypeOptions:function(n){var t=[];return n.AllowCreditCardProcessing&&t.push({Id:i.PAYMENT_CREDIT_CARD,Value:"Credit Card"}),t.push({Id:i.PAYMENT_INVOICE,Value:"Invoice"}),t.push({Id:i.PAYMENT_CHECK,Value:"Cash or Check"}),t.push({Id:i.PAYMENT_NOCHARGE,Value:"No Charge"}),t},getPaymentStatusOptions:function(){return[{Id:i.BILLING_STATUS_PAID,Value:"Paid"},{Id:i.BILLING_STATUS_UNPAID,Value:"Unpaid"},]},getPaymentMethodOptions:function(n,t){var u=n.Terminology,e=t.hasOwnProperty("NonMember")?!t.NonMember:t.Eligibility!=i.ELIGIBILITY_NONMEMBER,f=t&&e?n.MembersBillMethod:n.NonMembersBillMethod,r=[],o=t.MembershipTypeId;return f&i.BILL_INVOICE&&r.push({Id:i.PAYMENT_INVOICE,Value:u.PaymentInvoice}),f&i.BILL_CHECK&&r.push({Id:i.PAYMENT_CHECK,Value:u.PaymentCheck}),f&i.BILL_CREDITCARD&&n.AllowCreditCardProcessing&&r.push({Id:i.PAYMENT_CREDIT_CARD,Value:u.PaymentCreditCard}),r},requiresPurchase:function(n){return n.Total>0&&n.InProcess?!0:!1},paymentProfilesEnabled:function(n){return!!n.CIMEnabled},isMemberAccount:function(n){return n&&n.Eligibility==i.ELIGIBILITY_MEMBER},groupSponsors:function(n){var t=r.toLookup(n.Sponsors,function(n){return n.Placement});return angular.forEach(t,function(n,i){var u={},f=r.groupBy(n,function(n){return u[n.GroupId]||(u[n.GroupId]={id:n.GroupId,priority:n.GroupPriority})});t[i]=f}),t},getMemberStatusClass:function(n){var t=ct(n);return t&&t.css},getMemberStatusName:function(n){var t=ct(n);return t&&t.name},getRepresentativeStatusClass:function(n){return n&&k[n.Status]},createPrimaryContact:function(n){function t(n){return r.isNullOrEmpty(n)?null:n}return n=n||{},{RepresentativeId:n.RepresentativeId,MemberId:n.MemberId,FirstName:t(n.FirstName),LastName:t(n.LastName),Title:t(n.Title),Company:t(n.Company),EmailAddress:t(n.EmailAddress),Country:t(n.Country),Line2:t(n.Line2),Line1:t(n.Line1),City:t(n.City),Region:t(n.Region),PostalCode:t(n.PostalCode),Phone:t(n.Phone)}},getAvailableInventory:function(n,t,i,r){var u={},f={};return angular.forEach(i,function(n){u[n.Id]=n.Remaining;f[n.CustomFieldId]=!0}),angular.forEach(t.AttendeeFees,function(n){angular.forEach(n.Attendees,function(n){angular.forEach(n.CustomFields,function(n,t){f[t]&&u[n]>0&&u[n]--})})}),r&&angular.forEach(r.CustomFields,function(n,t){f[t]&&n in u&&u[n]++}),u},forEachAttendee:st,getFirstAttendee:ci,getAttendeeById:li,getAttendeeFee:ai,getParticipantLink:vi,notifyOpener:function(t){try{n.opener.dlgrtn_RegID=t;n.opener.dlgrtn_RC=angular.isNumber(t)?1:0}catch(i){}}}}]).service("AttendeeFeeService",["Enum","FeeService",function(n,t){function i(n,t){return n!=null&&t!=null&&(t.FeeId==0||t.FeeId==n.Id)}function r(n,t){n.UnitPrice=t?t.Amount:0;n.FeeId=t?t.Id:0;n.ReserveAllAttendees=t.ReserveAllAttendees}var u={Quantity:1,FeeId:0,UnitPrice:0,SubTotal:0,Discount:0,Total:0,ReserveAllAttendees:!1,Attendees:[]};return{create:function(n){var t=angular.copy(u);return r(t,n),t},setFee:r,setPromo:function(n,t,i){t?(n.PromoDiscountId=t.Id,n.PromoCode=i):(n.PromoDiscountId=null,n.PromoCode=null);n.Fixed=!1},setBenefit:function(n,t){t?(n.BenefitDiscountId=t.Id,n.BenefitItemId=t.BenefitItemId):(n.BenefitDiscountId=null,n.BenefitItemId=null);n.Fixed=!1},isValidDiscount:i,canUseDiscount:function(r,u,f){var e=t.getById(r,u.FeeId);if(!i(e,f))return!1;switch(f.DiscountClass){case n.DISCOUNT_AGE:return t.getAllotment(e)==1&&angular.isNumber(u.Attendees[0].Age)&&u.Attendees[0].Age>=f.Floor&&u.Attendees[0].Age<=f.Ceiling;case n.DISCOUNT_VOLUME:return!0;case n.DISCOUNT_EARLY:return!0;case n.DISCOUNT_MEMBERSHIP:return!0;case n.DISCOUNT_PROMO:return u.PromoDiscountId==f.Id;case n.DISCOUNT_BENEFIT:return u.BenefitDiscountId==f.Id}return!1}}}]).service("AttendeeService",[function(){function n(){return angular.copy(r)}function t(n,t,i){return n=="Additional"&&(n=""),t=="Attendee"&&(t=""),i?[t,n].join(", ").trim().replace(/\s*,\s*$/,""):[n,t].join(" ").trim()}function u(n){var i=t(n.FirstName,n.LastName);i.length||(n.FirstName="Additional",n.LastName="Attendee")}function f(n,t){var r="",f="",e=!1,u;if(!n)return f;for(u=0;u<n.length;u++)if(n.substr(u,1)!="-"&&n.substr(u,1)!="."&&i(n.substr(u,1),!1,!0))r+=n.substr(u,1);else if(n.substr(u,1)>="A"&&n.substr(u,1)<="Z"||n.substr(u,1)>="a"&&n.substr(u,1)<="z"){e=!0;break}if(e)f=n;else switch(t){case 1:f=r.length==7?r.substr(0,3)+"."+r.substr(3):r.length==10?r.substr(0,3)+"."+r.substr(3,3)+"."+r.substr(6):r.length==11?r.substr(0,1)+"."+r.substr(1,3)+"."+r.substr(4,3)+"."+r.substr(7):n;break;case 2:f=r.length==7?r.substr(0,3)+"-"+r.substr(3):r.length==10?r.substr(0,3)+"-"+r.substr(3,3)+"-"+r.substr(6):r.length==11?r.substr(0,1)+"-"+r.substr(1,3)+"-"+r.substr(4,3)+"-"+r.substr(7):n;break;case 99:f=n;break;default:f=r.length===7?r.substr(0,3)+"-"+r.substr(3):r.length===10?"("+r.substr(0,3)+") "+r.substr(3,3)+"-"+r.substr(6):r.length===11?r.substr(0,1)+"-"+r.substr(1,3)+"-"+r.substr(4,3)+"-"+r.substr(7):n}return f}function i(n,t,i){for(var u=!0,r=0;r<n.length;r++)if(u=n.charAt(r)>="0"&&n.charAt(r)<="9"?!0:t&&n.charAt(r)=="."?!0:n.charAt(r)=="-"&&r==0?!0:!1,!u)return i||alert("The value "+n+" is not numeric."),!1;return!0}var r={IsRegistrant:!1,CustomFields:{}};return{create:n,createFromRegistrant:function(t){var i=n();return angular.extend(i,angular.copy(t)),i.IsRegistrant=!0,i},createFromContact:function(t){var i=n();return angular.extend(i,angular.copy(t)),i.IsRegistrant=!1,i},createFromExisting:function(t,i){var r=n();return angular.extend(r,angular.copy(t)),r.AttendeeId=t.Id,r.locked=!!i,r},getFullName:t,ensureNameOrPlaceholder:u,unlinkMember:function(n){var t=n.MemberId||n.RepresentativeId;return n.MemberId=undefined,n.MembershipTypeId=undefined,n.RepresentativeId=undefined,!!t},unlinkRepresentative:function(n){var t=n.RepresentativeId;return n.RepresentativeId=undefined,!!t},formatPhone:f,isNumeric:i}}]).service("AdditionalFeeService",["Enum","SessionService",function(n,t){function i(n,t){return t!=null&&(t.FeeId==0||t.FeeId==n.FeeId)}return{create:function(){return{Quantity:1,IsLimited:!1,Available:0,UnitPrice:0,SubTotal:0,Discount:0,Total:0}},setFee:function(n,i){for(var u=t.getUses(),r=0;r<u.Fees.length;r++)if(u.Fees[r].Id==i.Id&&u.Fees[r].QuantityLimit>0){n.Available=u.Fees[r].RemainingForEvent||u.Fees[r].QuantityLimit;n.IsLimited=!0;break}n.FeeId=i.Id;n.UnitPrice=i.Amount},setPromo:function(n,t,i){t?(n.PromoDiscountId=t.Id,n.PromoCode=i):(n.PromoDiscountId=null,n.PromoCode=null);n.Fixed=!1},isValidDiscount:i,canUseDiscount:function(t,r,u){if(!i(r,u))return!1;switch(u.DiscountClass){case n.DISCOUNT_VOLUME:return!0;case n.DISCOUNT_EARLY:return!0;case n.DISCOUNT_MEMBERSHIP:return!0;case n.DISCOUNT_PROMO:return r.PromoDiscountId==u.Id}return!1}}}]).service("FeeService",["Enum","Utils","Context",function(n,t,i){function o(t,i,r){return t.Eligibility!=n.ELIGIBILITY_ANY&&t.Eligibility!=i?!1:t.IsMemberTypeFee&&t.MembershipTypes.indexOf(r)<0?!1:!0}function c(n,t){return t&&(!angular.isNumber(t.RemainingForEvent)||t.RemainingForEvent-n.length>0)?!0:!1}function u(n){return n&&n.AttendeesIncluded||1}function f(n,i,r){var u=r.AttendeesRemaining,f;return angular.isNumber(u)&&(f=t.toDictionary(n,function(n){return n.Id}),angular.forEach(i,function(n){u-=n.Attendees.length})),u}function l(n){return!t.find(n.Fees,function(n){return n.IsRegisterable})}function e(n,t){var i={Description:"No "+t+" fee assigned on Fees tab",Eligibility:n};r[n]=angular.extend({},angular.copy(s),i)}function h(i){var o=t.where(i.Fees,function(n){return n.IsRegisterable}),f,e,u;return angular.forEach(o,function(t){if(t.IsPublic)switch(t.Eligibility){case n.ELIGIBILITY_ANY:f=e=!0;break;case n.ELIGIBILITY_MEMBER:f=!0;break;case n.ELIGIBILITY_NONMEMBER:e=!0}}),f||e?f?e||(u=r[n.ELIGIBILITY_NONMEMBER]):u=r[n.ELIGIBILITY_MEMBER]:u=r[n.ELIGIBILITY_ANY],u&&o.push(u),o}var s={Id:0,Name:n.STEP_NOFEE_EVENT,IsRegisterable:!0,IsPublic:!0,Amount:0,TaxRate:0},r={};return e(n.ELIGIBILITY_ANY,""),e(n.ELIGIBILITY_MEMBER,"member"),e(n.ELIGIBILITY_NONMEMBER,"non-member"),{getById:function(n,t){if(t===0)return s;for(var i=0,r=n.Fees;i<r.length;i++)if(r[i].Id==t)return r[i]},getAllBaseFees:h,getBaseFees:function(n,i,r,u){var f=r?n.Fees:h(n);return t.where(f,function(n){return n.IsRegisterable?!n.IsPublic&&!(i&&i.IsAdmin)?!1:!u&&i&&!o(n,i.Eligibility,i.MembershipTypeId)?!1:!0:!1})},hasExplicit:function(n){return!!t.find(n,function(n){return!!n.Id})},getAdditionalFees:function(n,i,r){var u=t.where(n.Fees,function(n){return n.IsRegisterable?!1:!n.IsPublic&&!(i&&i.IsAdmin)?!1:i&&!o(n,i.Eligibility,i.MembershipTypeId)?!1:!0});return this.getAvailable(u,[],r)},hasFreeSpots:function(n,t,i){if(!l(n))return!1;var r=f([],t,i);return angular.isNumber(r)&&r<1?!1:!0},getAllotment:u,isAllotmentReserved:function(n){return!!(n&&n.ReserveAllAttendees)},getFree:function(n){return t.where(n,function(n){return!n.Amount})},getRemaining:function(n,i,r,e,o,s){s||(s=0);var c=f(i,r,e),a=t.where(r,function(t){return t.FeeId==n.Id}),l=t.find(e.Fees,function(t){return t.Id==n.Id}),h=Number.MAX_VALUE;return angular.isNumber(c)&&!o&&(c=c+s,h=Math.min(h,Math.floor(c/u(n)))),l&&angular.isNumber(l.RemainingForEvent)&&(h=Math.min(h,l.RemainingForEvent)),h},getAvailable:function(n,i,r,e,o){var s=f(n,i,r),h=t.toLookup(i,function(n){return n.FeeId}),l=t.toDictionary(r.Fees,function(n){return n.Id});return t.where(n,function(n){var r=h[n.Id]||[],t=l[n.Id],i;return e&&e.FeeId&&e.FeeId==n.Id?!0:angular.isDefined(t)&&!c(r,t)?!1:o?!0:angular.isNumber(s)&&(i=s,e&&(i+=e.Attendees.length),i<u(n)||angular.isDefined(t)&&t.RemainingForEvent<=0&&n.QuantityLimit!=0)?!1:!0})},getDateFormat:function(){return i.DateFormat}}}]).service("DiscountService",["md5","Enum","Utils",function(n,t,i){function r(n){return n.Discounts}function u(n,t){for(var i=0,u=r(n);i<u.length;i++)if(u[i].DiscountClass==t)return!0;return!1}function e(n,t){return i.find(r(n),function(n){return n.Id==t})}function f(n,t){for(var f=[],i=0,u=r(n);i<u.length;i++)u[i].DiscountClass==t&&f.push(u[i]);return f}return{hasType:u,hasAgeDiscounts:function(n){return u(n,t.DISCOUNT_AGE)},hasPromoDiscounts:function(n){return u(n,t.DISCOUNT_PROMO)},hasBenefitDiscounts:function(n){return u(n,t.DISCOUNT_BENEFIT)},hasMemberBenefitDiscounts:function(n,i,r,u,e){var l=!1,o,s,h,c;if(this.hasBenefitDiscounts)for(o=0,s=f(r,t.DISCOUNT_BENEFIT);o<s.length;o++)if(h=s[o].FeeId,c=!1,i.MembersBenefitDiscounts!==null&&(c=i.MembersBenefitDiscounts.some(function(n){return n.ItemId===s[o].BenefitItemId&&n.QuantityAvailable>0&&n.MemId===u})),c&&(h===e||h===0)&&this.isAvailableBenefit(i,n,s[o],u)){l=!0;break}return l},getBenefitsByMemId:function(n,i,u,f,e,o){for(var c,l,v,a=[],s=0,h=r(u);s<h.length;s++)h[s].DiscountClass===t.DISCOUNT_BENEFIT&&(c=!1,i.MembersBenefitDiscounts!==null&&(c=i.MembersBenefitDiscounts.some(function(n){return n.ItemId===h[s].BenefitItemId&&n.MemId===f})),l=h[s].FeeId,v=o===h[s].Id,c&&(l===e||l===0)&&(this.isAvailableBenefit(i,n,h[s],f)||v)&&a.push(h[s]));return a},getBenefitUsages:function(n,t){var i=0;return angular.forEach(n.AttendeeFees,function(n){n.BenefitDiscountId===t.Id&&i++}),angular.forEach(n.AdditionalFees,function(n){n.benefitItemId===t.Id&&i++}),i},getMemberBenefitAvailable:function(n,t){var r=i.find(n.MembersBenefitDiscounts,function(n){return angular.equals(t.BenefitItemId,n.ItemId)});return r.QuantityAvailable},isAvailableBenefit:function(n,t,r,u){var o=r.LimitPerRegistration>0,s=r.LimitPerEvent>0,h=r.LimitPerMember>0,e=this.getBenefitUsages(t,r),c=this.getMemberBenefitAvailable(n,r),f;return c<=0?!1:o&&e>=r.LimitPerRegistration?!1:s&&(f=i.find(n.Discounts,function(n){return n.Id===r.Id}),!f||e>=f.RemainingForEvent)?!1:h&&(f=i.find(n.Discounts,function(n){return n.Id===r.Id&&n.MemID===u}),f||(f=this.createMemberDiscount(r,u),n.Discounts.push(f)),f.RemainingForMember<=0)?!1:!0},createMemberDiscount:function(n,t){return{Id:n.Id,RemainingForEvent:n.LimitPerEvent,RemainingForMember:n.LimitPerMember,MemID:t}},setMemberUse:function(n,t,r,u){var f,e;t.LimitPerMember>0&&(f=i.find(n.Discounts,function(n){return n.Id===t.Id&&n.MemID===r}),f&&(f.RemainingForMember=f.RemainingForMember-u));e=i.find(n.MembersBenefitDiscounts,function(n){return n.ItemId===t.BenefitItemId&&n.MemId===r});e&&(e.QuantityAvailable=e.QuantityAvailable-u)},getAll:r,getById:e,getByType:f,getByPromoCode:function(i,r){for(var o=(r||"").toString().trim().toLowerCase(),s=o.length?n.createHash(o):null,u=0,e=f(i,t.DISCOUNT_PROMO);u<e.length;u++)if(e[u].PromoCodeMD5==s)return e[u]},getByBenefitItemId:function(n,i){for(var r=0,u=f(n,t.DISCOUNT_BENEFIT);r<u.length;r++)if(u[r].benefitItemId===i)return u[r]},getNameById:function(n,i){switch(-i){case t.DISCOUNT_AGE:return"Age Discount";case t.DISCOUNT_VOLUME:return"Volume Discount";case t.DISCOUNT_EARLY:return"Early Registration Discount";case t.DISCOUNT_MEMBERSHIP:return"Membership Discount";case t.DISCOUNT_PROMO:return"Promotional Discount";case t.DISCOUNT_BENEFIT:return"Benefit Item Discount"}var r=e(n,i);return r&&r.Name||"Unknown Discount"},volumeDiscountId:function(){return t.DISCOUNT_VOLUME}}}]).service("ApiService",["$http","Enum","Context",function(n,t,i){function r(t,r,u){return n({url:i.BaseUrl+"/eventregistration/member/"+t,params:{associationId:i.AssociationId,eventId:i.EventId,memberNameField:r,authToken:u,_:+new Date}})}function u(t,r,u){return n({url:i.BaseUrl+"/eventregistration/representative/"+t,params:{associationId:i.AssociationId,eventId:i.EventId,memberNameField:r,authToken:u,_:+new Date}})}return{getEvent:function(){return n({url:i.BaseUrl+"/API/services/Events/GetRegistrationMetadata",params:{associationId:i.AssociationId,eventId:i.EventId,_:+new Date}})},getRegistration:function(t,r){return n({url:i.BaseUrl+"/eventregistration/registration",params:{associationId:i.AssociationId,token:t,authToken:r,_:+new Date}}).then(function(n){var i=n.data;return i.Token=t,i.OriginalTotal=i.Total,n})},getMember:r,getPrimaryRepresentative:function(t,r){return n({url:i.BaseUrl+"/eventregistration/primaryrepresentative/"+t,params:{associationId:i.AssociationId,eventId:i.EventId,authToken:r,_:+new Date}})},getRepresentative:u,getAccountContact:function(n,t,i,f){return t?u(t,i,f):r(n,i,f)},getRepresentatives:function(t,r,u,f,e,o,s){return n({url:i.BaseUrl+"/eventregistration/representatives",params:{query:t,memberId:r,memberNameField:u,nameField:f,filterPart:e,onlyActive:o,associationId:i.AssociationId,eventId:i.EventId,authToken:s}})},getHistory:function(t){return n({url:i.BaseUrl+"/eventregistration/history/"+i.EventId,params:{associationId:i.AssociationId,authToken:t}})},getAttendee:function(t,r){return n({url:i.BaseUrl+"/eventregistration/attendee/"+t,params:{associationId:i.AssociationId,authToken:r}})},getMemberList:function(){return n({url:i.BaseUrl+"/eventregistration/memberlist",params:{associationId:i.AssociationId,_:+new Date}})},getCandidates:function(t,r,u,f,e,o){return n({url:i.BaseUrl+"/eventregistration/attendeecandidates",params:{query:t,reverse:r,memberNameField:u,memberId:f,unlinked:e,eventId:i.EventId,associationId:i.AssociationId,authToken:o},cache:!0,timeout:6e4})},getMembers:function(t,r,u,f,e,o){return n({url:i.BaseUrl+"/eventregistration/members",params:{query:t,memberNameField:r,searchNameField:u,filterPart:f,onlyActive:e,associationId:i.AssociationId,authToken:o},cache:!0})},getParticipantAccount:function(t,r,u,f){return n({method:"POST",url:i.BaseUrl+"/eventregistration/participantaccount",data:{associationId:i.AssociationId,eventId:i.EventId,attendeeId:r,representativeId:u,memberId:f,authToken:t}})},getUses:function(t,r){return n({url:i.BaseUrl+"/eventregistration/uses/"+i.EventId,params:{associationId:i.AssociationId,token:r,memberId:t,_:+new Date},cache:!0})},saveRegistration:function(r,u,f,e,o){var s=angular.copy(r);return!s.Id||s.InvoiceId||s.ReceiptId||(s.OriginalTotal==0&&s.Total>0?(s.PaymentType=t.PAYMENT_INVOICE,s.BillingStatus=t.BILLING_STATUS_UNPAID):s.OriginalTotal>=0&&s.Total==0&&(s.PaymentType=t.PAYMENT_NOCHARGE,s.BillingStatus=t.BILLING_STATUS_PAID)),n({method:"POST",url:i.BaseUrl+"/eventregistration/save",params:{associationId:i.AssociationId,eventId:i.EventId,userKey:u,isTemporaryKey:f,authToken:e,command:o},data:s}).then(function(n){return n.PaymentType=s.PaymentType,n.BillingStatus=s.BillingStatus,n})},saveAttendee:function(t,r,u,f){return n({method:"POST",url:i.BaseUrl+"/eventregistration/attendee",params:{associationId:i.AssociationId,authToken:f},data:{registrationId:t,attendee:r,registrant:u}})},saveWaitingListEntry:function(t,r,u,f){return n({method:"POST",url:i.BaseUrl+"/eventregistration/savewaiting",params:{eventId:i.EventId,associationId:i.AssociationId,waitListCnt:r,waitListId:u,authToken:f},data:{attendee:t}})},deleteWaitingListEntry:function(t,r){return n({method:"Post",url:i.BaseUrl+"/eventregistration/deletewaiting",params:{waitListId:t,associationId:i.AssociationId,authToken:r}})},deleteRegistration:function(t,r){return n({method:"DELETE",url:i.BaseUrl+"/eventregistration/delete",params:{registrationId:t,associationId:i.AssociationId,eventId:i.EventId,authToken:r}})},associationRepresentatives:function(t){return n({url:i.BaseUrl+"/eventregistration/associationrepresentatives",params:{associationId:i.AssociationId,authToken:t},cache:!0})},finalize:function(t,r,u,f,e,o,s,h,c){return n({method:"POST",url:i.BaseUrl+"/eventregistration/finalize/"+t,params:{associationId:i.AssociationId,eventId:i.EventId,authToken:c},data:{sendConfirmation:r,senderEmail:u,senderId:f,confirmations:e,checkReceipt:o,checkNumber:s,referenceNumber:h}})},loginByCredentials:function(t,r){return n({method:"POST",url:i.BaseUrl+"/eventregistration/loginbycredentials",data:{username:t,password:r,associationId:i.AssociationId,eventId:i.EventId}})},loginByEmail:function(t){return n({method:"POST",url:i.BaseUrl+"/eventregistration/loginbyemail",data:{email:t,associationId:i.AssociationId,eventId:i.EventId}})},loginByMember:function(t,r){return n({method:"POST",url:i.BaseUrl+"/eventregistration/loginbymember",data:{memberId:t,password:r,associationId:i.AssociationId,eventId:i.EventId}})},getHelp:function(t){return n({url:i.BaseUrl+"/api/help",params:{key:t},cache:!0})},resetPassword:function(t){return n({method:"POST",url:i.BaseUrl+"/eventregistration/resetpassword",data:{email:t,associationId:i.AssociationId}})}}}]).service("ValidationService",function(){var n=/^[a-z0-9!#$%&'*+\/=?^_`{|}~.-]+@[a-z0-9]([a-z0-9-]*[a-z0-9])?(\.[a-z0-9]([a-z0-9-]*[a-z0-9])?)*$/i;return{isValidEmail:function(t){return n.test(t)}}}).service("ModalService",["$modal","$window","$q","$interval","Enum","Context",function(n,t,i,r,u,f){function e(t,i,r){return n.open({templateUrl:"template/event-registration/modal-confirm-box.html",controller:"ModalConfirmBoxController",backdrop:"static",size:r&&r.size||"md",resolve:{model:function(){return{message:t,title:i,opts:r}}}}).result}return{login:function(){return n.open({templateUrl:"template/event-registration/modal-login.html",controller:"ModalLoginController",size:"md"}).result},chooseAccount:function(t){return n.open({templateUrl:"template/event-registration/modal-account.html",controller:"ModalAccountController",resolve:{model:function(){return{accounts:t}}}}).result},chooseRegistration:function(t,i,r){return n.open({templateUrl:"template/event-registration/modal-registration.html",controller:"ModalRegistrationController",backdrop:i?!0:"static",resolve:{model:function(){return{cancelable:i,registrations:t,account:r}}}}).result},chooseAdvancedAttendee:function(t,i,r,u){return n.open({templateUrl:"template/event-registration/modal-advanced-attendee.html",controller:"ModalAdvancedAttendeeController",resolve:{model:function(){return{query:t,memberNameField:i,reverse:r,currentAttendee:u}}}}).result},chooseMember:function(t,i,r){return n.open({templateUrl:"template/event-registration/modal-member.html",controller:"ModalMemberController",resolve:{model:function(){return{query:t,memberNameField:i,currentAttendee:r}}}}).result},createMember:function(n){function h(){if(e&&e.closed){r.cancel(s);var n=t.dlgrtn_MemID;n?u.resolve(n):u.reject()}}var u=i.defer(),o=f.BaseUrl+"/directory/jsp/members/dlg/AddMember.jsp",e,s;return n&&(o+="?command=initFromAttendeeID&attendeeid="+n),t.dlgrtn_MemID=null,e=t.open(o,"AddMember","toolbar=0,location=0,width=680,height=540,resizable=1,scrollbars=1,menubar=no"),s=r(h,100),u.promise},editAttendee:function(t,i,r){return n.open({templateUrl:"template/event-registration/modal-attendee.html",controller:"ModalAttendeeController",size:"lg",resolve:{model:function(){return{attendee:t,options:i,isSponsor:r,header:u.HEADER_EDIT_ATTENDEE}}}}).result},waitingListEntry:function(t,i,r){return n.open({templateUrl:"template/event-registration/modal-attendee.html",controller:"ModalWaitingListController",size:"lg",resolve:{model:function(){return{attendee:t,header:u.HEADER_WAIT_LIST,headermsg:u.HEADER_WAIT_LIST_MSG,isWaitingList:!0,maxRegAttendees:i,options:r}}}}).result},editAdditionalFee:function(t,i){return n.open({templateUrl:"template/event-registration/modal-additional-fee.html",controller:"ModalAdditionalFeeController",size:"md",resolve:{model:function(){return{fee:t,options:i}}}}).result},pricingDetails:function(t){return n.open({templateUrl:"template/event-registration/modal-pricing.html",controller:"ModalPricingController",size:"md",resolve:{model:function(){return{user:t}}}}).result},inputMultiple:function(){return n.open({templateUrl:"template/event-registration/modal-multiple.html",controller:"ModalMultipleController",size:"sm"}).result},passwordReset:function(){return n.open({templateUrl:"template/event-registration/modal-password-reset.html",controller:"ModalPasswordResetController"}).result},confirmBox:e,confirmRegistrantChange:function(){return e(u.ALERT_REGISTRANT_CONFIRMMSG,u.ALERT_REGISTRANT_CONFIRMTITLE,{okText:"Update",cancelText:"Ignore",size:"sm"})},messageBox:function(t,i,r){return n.open({templateUrl:"template/event-registration/modal-message-box.html",controller:"ModalMessageBoxController",size:r&&r.size||"sm",resolve:{model:function(){return{message:t,title:i,opts:r}}}}).result},sponsorMessageBox:function(t,i,r){return n.open({templateUrl:"template/event-registration/modal-sponsor-message-box.html",controller:"ModalSponsorMessageBoxController",size:r&&r.size||"sm",resolve:{model:function(){return{message:t,title:i,opts:r}}}}).result},closeWindowMessageBox:function(t,i,r){return n.open({templateUrl:"template/event-registration/modal-close-parent-message-box.html",controller:"CloseWindowMessageBoxController",size:r&&r.size||"sm",resolve:{model:function(){return{message:t,title:i,opts:r}}}}).result}}}]).service("ContactService",["$q","RegistrationService","Utils",function(n,t,i){function e(n){return n&&[n.FirstName,n.LastName].join(" ").trim()}function u(n,i){return{Id:{contact:t.createPrimaryContact(i),editing:!1},Value:n}}function f(n){return i.find(r,function(t){return angular.equals(n.Id.contact,t.Id.contact)})}var r=[];return{updatePrimaryContact:function(n,o,s,h,c){var g=o.Registrant,nt=e(g),p=u(nt,g),rt=o.PrimaryContact,tt="Other Primary Contact",v=u(tt,rt),w=o.AttendeeContact,b,k,y,ut=t.getPaymentMethodOptions(n,s),ft=t.isLocked(o,n,s),d,a,l,it;return angular.forEach(o.AttendeeFees,function(n){angular.forEach(n.Attendees,function(n){k=e(n);y=u(k,n);w===n&&(b=y);k&&!f(y)&&r.push(y)})}),d=f(p),d?p=d:nt&&r.unshift(p),a=f(v),angular.forEach(r,function(i){i.Id.editing=!t.validatePrimaryContact(i.Id.contact,n,s)}),a?v=u(tt,{}):o.Id||(a=i.find(r,function(n){return!n.Id.editing})||r[0]),v.Id.editing=!0,r.push(v),a||(a=v),l={},l.readOnly=ft,l.registration=o,l.terminology=n.Terminology,l.paymentMethods=ut,l.selectMethod=h,l.purchaseRequired=c,l.contacts=r,l.primaryContact=a.Id,l.contactRequirements=t.getPrimaryContactRequirements(n),l.ignoreRequired=s.IsAdmin&&!n.AttendeeRequirements.EnforceForStaff,l.contactLengths=n.RegistrantLengths,l.fieldStyles=t.getFieldStyles(n),w&&b&&(it=t.createPrimaryContact(w),angular.equals(it,a.Id.contact)||(a=v,l.primaryContact=b.Id)),r=[],l}}}])