diff --git a/UI/WebServerResources/js/Mailer.services.js b/UI/WebServerResources/js/Mailer.services.js index 818b35a80..ed2720169 100644 --- a/UI/WebServerResources/js/Mailer.services.js +++ b/UI/WebServerResources/js/Mailer.services.js @@ -1,2 +1,2 @@ -!function(){"use strict";function e(t){"function"!=typeof t.then&&(angular.extend(this,t),_.forEach(this.identities,function(e){e.fullName?e.full=e.fullName+" <"+e.email+">":e.full="<"+e.email+">"}),e.$log.debug("Account: "+JSON.stringify(t,void 0,2)))}e.$factory=["$q","$timeout","$log","sgSettings","Resource","Preferences","Mailbox","Message",function(t,n,s,i,o,a,r,l){return angular.extend(e,{$q:t,$timeout:n,$log:s,$$resource:new o(i.activeUser("folderURL")+"Mail",i.activeUser()),$Preferences:a,$Mailbox:r,$Message:l}),e}];try{angular.module("SOGo.MailerUI")}catch(e){angular.module("SOGo.MailerUI",["SOGo.Common"])}angular.module("SOGo.MailerUI").factory("Account",e.$factory),e.$findAll=function(t){return t?e.$unwrapCollection(t):e.$$resource.fetch("","mailAccounts").then(function(t){return e.$unwrapCollection(t)})},e.$unwrapCollection=function(t){var n=[];return angular.forEach(t,function(t,s){t.id=s,n[s]=new e(t)}),e.$accounts=n,n},e.prototype.getLength=function(){return this.$flattenMailboxes().length},e.prototype.getItemAtIndex=function(e){var t;return t=this.$flattenMailboxes(),e>=0&&e=0,e.children&&e.children.length>0&&i(e.children)})};if(e.$Preferences.settings.Mail.ExpandedFolders){if(angular.isString(e.$Preferences.settings.Mail.ExpandedFolders))try{s=angular.fromJson(e.$Preferences.settings.Mail.ExpandedFolders)}catch(t){e.$log.warn("Can't parse list of expanded folders. String was: "+e.$Preferences.settings.Mail.ExpandedFolders),s=[]}else s=e.$Preferences.settings.Mail.ExpandedFolders;n.$expanded=s.indexOf("/"+n.id)>=0,s.length>0&&i(n.$mailboxes)}return e.$accounts&&(n.$expanded|=1==e.$accounts.length),n.$flattenMailboxes({reload:!0}),n.$mailboxes}):e.$q.when(this.$mailboxes)},e.prototype.$flattenMailboxes=function(t){var n=[],s=[],i=function(e){_.forEach(e,function(e){n.push(e),(t&&t.all||e.$expanded)&&e.children&&e.children.length>0&&i(e.children)})};return!this.$$flattenMailboxes||t&&(t.reload||t.all)?(i(this.$mailboxes),t&&t.all||(this.$$flattenMailboxes=n,t&&t.saveState&&(_.forEach(e.$accounts,function(e){e.$expanded&&s.push("/"+e.id),_.reduce(e.$$flattenMailboxes,function(e,t){return t.$expanded&&e.push("/"+t.id),e},s)}),e.$$resource.post(null,"saveFoldersState",s)))):n=this.$$flattenMailboxes,n},e.prototype.$getMailboxByType=function(e){var t=function(n){var s=_.find(n,function(t){return t.type==e});return s||angular.forEach(n,function(e){!s&&e.children&&e.children.length>0&&(s=t(e.children))}),s};return t(this.$mailboxes)},e.prototype.$getMailboxByPath=function(e){var t=function(n){var s=_.find(n,function(t){return t.path==e});return s||angular.forEach(n,function(e){!s&&e.children&&e.children.length>0&&(s=t(e.children))}),s};return t(this.$mailboxes)},e.prototype.$newMailbox=function(t,n){var s=this;return e.$$resource.post(t.toString(),"createFolder",{name:n}).then(function(){s.$getMailboxes({reload:!0})})},e.prototype.$certificate=function(){var t=this;return this.security&&this.security.hasCertificate?this.$$certificate?e.$q.when(this.$$certificate):e.$$resource.fetch(this.id.toString(),"certificate").then(function(e){return t.$$certificate=e,e}):e.$q.reject()},e.prototype.$removeCertificate=function(){var t=this;return e.$$resource.fetch(this.id.toString(),"removeCertificate").then(function(){t.security.hasCertificate=!1})},e.prototype.updateQuota=function(e){var t,n;t=Math.round(1e4*e.usedSpace/e.maxQuota)/100,n=l("quotasFormat").formatted(t,Math.round(e.maxQuota/10.24)/100),this.$quota={percent:t,description:n}},e.prototype.$newMessage=function(t){var n=this;return e.$$resource.fetch(this.id.toString(),"compose").then(function(t){e.$log.debug("New message (compose): "+JSON.stringify(t,void 0,2));return new e.$Message(t.accountId,n.$getMailboxByPath(t.mailboxPath),t)}).then(function(s){return e.$$resource.fetch(s.$absolutePath({asDraft:!0}),"edit").then(function(i){var o=e.$Preferences.defaults.AuxiliaryMailAccounts[n.id];return o.security&&(o.security.alwaysSign&&(i.sign=!0),o.security.alwaysEncrypt&&(i.encrypt=!0)),e.$log.debug("New message (edit): "+JSON.stringify(i,void 0,2)),angular.extend(s.editable,i),s.isNew=!0,t&&t.mailto&&(angular.isObject(t.mailto)?angular.extend(s.editable,t.mailto):s.$parseMailto(t.mailto)),s})})},e.prototype.$addDelegate=function(t){var n=this,s=e.$q.defer(),i={uid:t.uid};return!t.uid||_.indexOf(_.map(this.delegates,"uid"),t.uid)>-1?s.resolve():e.$$resource.fetch(this.id.toString(),"addDelegate",i).then(function(){n.delegates.push(t),s.resolve(n.users)},function(e,t){s.reject(l("An error occured please try again."))}),s.promise},e.prototype.$removeDelegate=function(t){var n=this,s={uid:t};return e.$$resource.fetch(this.id.toString(),"removeDelegate",s).then(function(){var e=_.indexOf(_.map(n.delegates,"uid"),t);e>=0&&n.delegates.splice(e,1)})}}(),function(){"use strict";function e(t,n){if(this.$account=t,"function"!=typeof n.then){if(this.init(n),this.name&&!this.path){var s=e.$$resource.create("createFolder",this.name);this.$unwrap(s)}}else this.$unwrap(n)}e.$factory=["$q","$timeout","$log","sgSettings","Resource","Message","Acl","Preferences","sgMailbox_PRELOAD",function(t,n,s,i,o,a,r,l,c){return angular.extend(e,{$q:t,$timeout:n,$log:s,$$resource:new o(i.activeUser("folderURL")+"Mail",i.activeUser()),$Message:a,$$Acl:r,$Preferences:l,$query:{sort:"arrival",asc:0},selectedFolder:null,$refreshTimeout:null,$virtualMode:!1,$virtualPath:!1,PRELOAD:c}),l.settings.Mail.SortingState&&(e.$query.sort=l.settings.Mail.SortingState[0],e.$query.asc=parseInt(l.settings.Mail.SortingState[1])),e}];try{angular.module("SOGo.MailerUI")}catch(e){angular.module("SOGo.MailerUI",["SOGo.Common"])}angular.module("SOGo.MailerUI").constant("sgMailbox_PRELOAD",{LOOKAHEAD:50,SIZE:100}).factory("Mailbox",e.$factory),e.$find=function(t,n){var s;return s=n&&n.all?this.$$resource.fetch(t.id.toString(),"viewAll"):this.$$resource.fetch(t.id.toString(),"view"),e.$unwrapCollection(t,s)},e.$unwrapCollection=function(t,n){var s=[],i=function(n,s){for(var o=0;o=0&&e=0},e.prototype.isNoSelect=function(){return this.flags.indexOf("noselect")>=0},e.prototype.getClassName=function(e){return!1},e.prototype.$rename=function(){var t,n,s,i,o=this;return this.name==this.$shadowData.name?e.$q.when():(n=(t=function(e,n){var s=null;return _.find(n,function(e){return e.path==o.path})?s=e:angular.forEach(n,function(e){!s&&e.children&&e.children.length>0&&(s=t(e,e.children))}),s})(null,this.$account.$mailboxes),s=null===n?this.$account.$mailboxes:n.children,i=_.indexOf(_.map(s,"id"),this.id),this.$save().then(function(e){var t,n=o.path;o.init(e),s.splice(i,1),t=_.find(s,function(e){return"folder"==e.type&&e.name.localeCompare(o.name)>0}),i=t?_.indexOf(_.map(s,"id"),t.id):s.length,s.splice(i,0,o);var a=new RegExp("^"+n),r=function(e){_.forEach(e.children,function(e){e.path=e.path.replace(a,o.path),e.id=e.$id(),r(e)})};r(o)}))},e.prototype.$compact=function(){var t=this;return e.$$resource.post(this.id,"expunge").then(function(e){e.quotas&&t.$account.updateQuota(e.quotas)})},e.prototype.$canFolderAs=function(){return"folder"==this.type&&0===this.level},e.prototype.$setFolderAs=function(t){return e.$$resource.post(this.id,"setAs"+t+"Folder")},e.prototype.$emptyTrash=function(){var t=this;return e.$$resource.post(this.id,"emptyTrash").then(function(e){t.$messages=[],t.uidsMap={},t.unseenCount=0,angular.isDefined(t.children)&&t.children.length&&t.$account.$getMailboxes({reload:!0}),e.quotas&&t.$account.updateQuota(e.quotas)})},e.prototype.$markAsRead=function(){var t=this;return e.$$resource.post(this.id,"markRead").then(function(){t.unseenCount=0,_.forEach(t.$messages,function(e){e.isread=!0})})},e.prototype.$flagMessages=function(t,n,s){var i={msgUIDs:_.map(t,"uid"),flags:n,operation:s};return e.$$resource.post(this.id,"addOrRemoveLabel",i).then(function(){return t})},e.prototype.saveSelectedMessages=function(){var t,n;return t=_.filter(this.$messages,function(e){return e.selected}),{uids:n=_.map(t,"uid")},{filename:l("Saved Messages.zip")},e.$$resource.download(this.id,"saveMessages",{uids:n})},e.prototype.exportFolder=function(){var t;return t={filename:this.name+".zip"},e.$$resource.download(this.id,"exportFolder",null,t)},e.prototype.$delete=function(t){var n=this;return e.$$resource.post(this.id,"delete",t).then(function(){return n.$account.$getMailboxes({reload:!0}),!0})},e.prototype.$_deleteMessages=function(e,t){var n,s=this,i=this.$messages.length;return n=_.filter(t,function(e,t){return!e.isread}),this.unseenCount-=n.length,_.forEachRight(this.$messages,function(t,n){var o=_.findIndex(e,function(e){return t.uid==e});o>-1?(e.splice(o,1),delete s.uidsMap[t.uid],t.uid==s.selectedMessage&&delete s.selectedMessage,s.$messages.splice(n,1),nt.uids.length-1)&&(n.$topIndex=0),n.init(t),n.uids&&(e.$log.debug("unwrapping "+n.uids.length+" messages"),a=_.invokeMap(n.headers[0],"toLowerCase"),n.headers.splice(0,1),n.threaded&&(o=n.uids[0],n.uids.splice(0,1)),_.reduce(n.uids,function(t,s,a){var r,l;return r=n.threaded?_.zipObject(o,s):{uid:s.toString()},n.uidsMap[r.uid]=a,(l=new e.$Message(n.$account.id,n,r,!0)).selected=i.indexOf(l.uid)>-1,t.push(l),t},n.$messages),_.forEach(n.headers,function(e){var t=_.zipObject(a,e),s=n.uidsMap[t.uid.toString()];_.extend(n.$messages[s],t)})),e.$log.debug("mailbox "+n.id+" ready"),n.$isLoading=!1,s.resolve(n.$messages)})},function(e){angular.extend(n,e),n.isError=!0,n.$isLoading=!1,s.reject()}),s.promise},e.prototype.$unwrapHeaders=function(t){var n=this;t.then(function(t){e.$timeout(function(){var e,s;t.length>0&&(e=_.invokeMap(t[0],"toLowerCase"),t.splice(0,1),_.forEach(t,function(t){t=_.zipObject(e,t),s=n.uidsMap[t.uid.toString()],angular.isDefined(s)&&_.extend(n.$messages[s],t)}))})})},e.prototype.$updateSubscribe=function(){var t=this.subscribed?"subscribe":"unsubscribe";e.$$resource.post(this.id,t)}}(),function(){"use strict";function e(e,t,n,s){this.accountId=e,this.$mailbox=t,this.$hasUnsafeContent=!1,this.$loadUnsafeContent=!1,this.editable={to:[],cc:[],bcc:[]},this.selected=!1,"function"!=typeof n.then?(!angular.isUndefined(s)&&s||(angular.extend(this,n),this.$formatFullAddresses()),this.uid=parseInt(n.uid)):this.$unwrap(n)}e.$factory=["$q","$timeout","$log","sgSettings","sgMessage_STATUS","Resource","Preferences",function(t,n,s,i,o,a,r){return angular.extend(e,{STATUS:o,$q:t,$timeout:n,$log:s,$$resource:new a(i.activeUser("folderURL")+"Mail",i.activeUser()),$Preferences:r,$avatar:angular.bind(r,r.avatar)}),r.defaults.SOGoMailLabelsColors&&(e.$tags=r.defaults.SOGoMailLabelsColors),r.defaults.SOGoMailDisplayRemoteInlineImages&&"always"==r.defaults.SOGoMailDisplayRemoteInlineImages&&(e.$displayRemoteInlineImages=!0),e}];try{angular.module("SOGo.MailerUI")}catch(e){angular.module("SOGo.MailerUI",["SOGo.Common"])}angular.module("SOGo.MailerUI").constant("sgMessage_STATUS",{NOT_LOADED:0,DELAYED_LOADING:1,LOADING:2,LOADED:3,DELAYED_MS:300}).factory("Message",e.$factory),e.filterTags=function(t,n){var s=new RegExp(t,"i"),i=[];return _.forEach(_.keys(e.$tags),function(t){var o=e.$tags[t];-1!=o[0].search(s)&&(_.includes(n,t)||i.push({name:t,description:o[0],color:o[1]}))}),i},e.prototype.$absolutePath=function(t){var n=this,s=this.id;function i(){var e;return(e=_.map(n.$mailbox.path.split("/"),function(e){return"folder"+e.asCSSIdentifier()})).splice(0,0,n.accountId),e.join("/")}return(angular.isUndefined(this.id)||t&&t.nocache)&&(this.id=i()+"/"+this.uid,s=this.id),t&&t.asDraft&&this.draftId&&(s=i()+"/"+this.draftId),t&&t.withResourcePath&&(s=e.$$resource.path(s)),s},e.prototype.$setUID=function(e){var t,n=this.uid||-1,s=this;n!=parseInt(e)&&(this.uid=parseInt(e),this.$absolutePath({nocache:!0}),n>-1?(n=n.toString(),angular.isDefined(this.$mailbox.uidsMap[n])&&(t=this.$mailbox.uidsMap[n],this.$mailbox.uidsMap[e]=t,delete this.$mailbox.uidsMap[n],_.forEach(["from","to","subject"],function(e){s.$mailbox.$messages[t][e]=s[e]}))):this.$mailbox.constructor.selectedFolder&&"draft"==this.$mailbox.constructor.selectedFolder.type&&this.$mailbox.constructor.selectedFolder.$filter())},e.prototype.$formatFullAddresses=function(){var t=this,n=_.map(t.$mailbox.$account.identities,"email");_.forEach(["from","to","cc","bcc","reply-to"],function(s){_.forEach(t[s],function(t){t.name&&t.name!=t.email?(t.full=t.name+" <"+t.email+">",t.name.length<10?t.shortname=t.name:t.name.split(" ").length&&(t.shortname=_.first(_.last(t.name.split(/, */)).split(/ +/)).replace("'",""))):t.email&&(t.full="<"+t.email+">",t.shortname=t.email.split("@")[0]),t.image=e.$avatar(t.email,32),_.indexOf(n,t.email)>=0&&(t.shortname=l("me"))})})},e.prototype.$shortRecipients=function(e){var t=this,n=[],s=0,i=0;return _.forEach(["to","cc","bcc"],function(o){i+=t[o]?t[o].length:0,_.forEach(t[o],function(t,i){se&&n.push(l("and %{0} more...",i-e)),n.join(", ")},e.prototype.$shortAddress=function(e){var t="";return this[e]&&this[e].length>0&&(t=this[e][0].name||this[e][0].email||""),t},e.prototype.allowReplyAll=function(){var e=0;return e=_.reduce(["to","cc"],_.bind(function(e,t){return this[t]?e+this[t].length:e},this),e),!this.isDraft&&e>1},e.prototype.loadUnsafeContent=function(){this.$loadUnsafeContent=!0,delete this.$parts},e.prototype.$content=function(){var t=this,n=[],s=function(i){i.msgclass="msg-attachment-other","UIxMailPartAlternativeViewer"==i.type?s(_.find(i.content,function(e){return i.preferredPart==e.contentType})):angular.isArray(i.content)?("UIxMailPartSignedViewer"==i.type&&1===i["supports-smime"]?t.signed={valid:i.valid,certificate:i.certificates[i.certificates.length-1],message:i.message}:"UIxMailPartEncryptedViewer"==i.type&&(t.encrypted={valid:i.valid},i.valid?t.encrypted.message=l("This message is encrypted"):t.encrypted.message=l("This message can't be decrypted. Please make sure you have uploaded your S/MIME certificate from the mail preferences module.")),_.forEach(i.content,function(e){s(e)})):(angular.isUndefined(i.safeContent)&&(i.safeContent=i.content,t.$hasUnsafeContent|=i.safeContent.indexOf(" unsafe-")>-1),"UIxMailPartHTMLViewer"==i.type?(i.html=!0,t.$loadUnsafeContent||e.$displayRemoteInlineImages?(angular.isUndefined(i.unsafeContent)&&(i.unsafeContent=document.createElement("div"),i.unsafeContent.innerHTML=i.safeContent,angular.forEach(["src","data","classid","background","style"],function(e){var t,n,s,o=i.unsafeContent.querySelectorAll("[unsafe-"+e+"]");for(s=0;s"}),n={to:t},_.forEach(["subject","body"],function(t){var i=new RegExp(t+"=([^&]+)");t="body"==t?"text":t,(s=i.exec(e))&&(n[t]=decodeURIComponent(s[1]))}),_.forEach(["cc","bcc"],function(t){var i=new RegExp(t+"=([^&]+)");(s=i.exec(e))&&(n[t]=_.map(decodeURIComponent(s[1]).split(","),function(e){return"<"+e.trim()+">"}))}),angular.extend(this.editable,n))},e.prototype.$reply=function(){return this.$newDraft("reply")},e.prototype.$replyAll=function(){return this.$newDraft("replyall")},e.prototype.$forward=function(){return this.$newDraft("forward")},e.prototype.$newDraft=function(t){var n=this;return e.$$resource.fetch(this.$absolutePath(),t).then(function(s){var i,o;return e.$log.debug("New "+t+": "+JSON.stringify(s,void 0,2)),i=n.$mailbox.$account.$getMailboxByPath(s.mailboxPath),o=new e(s.accountId,i,s),e.$$resource.fetch(o.$absolutePath({asDraft:!0}),"edit").then(function(s){e.$log.debug("New "+t+": "+JSON.stringify(s,void 0,2)+" original UID: "+n.uid);var i=e.$Preferences.defaults.AuxiliaryMailAccounts[n.$mailbox.$account.id];return i.security&&(i.security.alwaysSign&&(s.sign=!0),i.security.alwaysEncrypt&&(s.encrypt=!0)),angular.extend(o.editable,s),o.origin={message:n,action:t},o})})},e.prototype.$save=function(){var t=this,n=this.editable;return e.$log.debug("save = "+JSON.stringify(n,void 0,2)),e.$$resource.save(this.$absolutePath({asDraft:!0}),n).then(function(n){e.$log.debug("save = "+JSON.stringify(n,void 0,2)),t.$setUID(n.uid),t.$reload(),t.isNew=!1})},e.prototype.$send=function(){var t=this,n=angular.copy(this.editable);return e.$log.debug("send = "+JSON.stringify(n,void 0,2)),e.$$resource.post(this.$absolutePath({asDraft:!0}),"send",n).then(function(n){return"success"==n.status?(angular.isDefined(t.origin)&&(t.origin.action.startsWith("reply")?t.origin.message.isanswered=!0:"forward"==t.origin.action&&(t.origin.message.isforwarded=!0)),n):e.$q.reject(n.data)})},e.prototype.$unwrap=function(t){var n=this;return this.$loaded=e.STATUS.DELAYED_LOADING,e.$timeout(function(){n.$loaded!=e.STATUS.LOADED&&(n.$loaded=e.STATUS.LOADING)},e.STATUS.DELAYED_MS),this.$futureMessageData=t.then(function(t){return 0===n.isread&&(n.isread=!0,n.$mailbox.unseenCount--),e.$timeout(function(){return angular.extend(n,t),n.$formatFullAddresses(),n.$loadUnsafeContent=!1,n.$loaded=e.STATUS.LOADED,n})}),this.$futureMessageData},e.prototype.$omit=function(e){var t={},n=e&&e.privateAttributes;return angular.forEach(this,function(e,s){("constructor"!=s&&"$"!=s[0]||n)&&(t[s]=e)}),t},e.prototype.download=function(){var t,n;return t={uids:[this.uid]},n={filename:this.subject+".zip"},e.$$resource.download(this.$mailbox.id,"saveMessages",t,n)},e.prototype.downloadAttachments=function(){var t;return t={filename:l("attachments")+"-"+this.uid+".zip"},e.$$resource.download(this.$absolutePath(),"archiveAttachments",null,t)}}(),function(){"use strict";function e(){this.show=!1,this.message=null,this.elements=[]}e.$factory=["$document","$timeout","$mdPanel","sgHotkeys",function(t,n,s,i){return angular.extend(e,{$document:t,$timeout:n,$mdPanel:s,sgHotkeys:i}),new e}],e.prototype.setMessage=function(e){this.message=e},e.prototype.registerImage=function(e){this.elements.push(e)},e.prototype.registerHotkeys=function(t){this.keys=[e.sgHotkeys.createHotkey({key:"left",description:l("View previous item"),callback:angular.bind(t,t.previousImage)}),e.sgHotkeys.createHotkey({key:"right",description:l("View next item"),callback:angular.bind(t,t.nextImage)})],_.forEach(this.keys,function(t){e.sgHotkeys.registerHotkey(t)})},e.prototype.showGallery=function(t,n){var s=this,i=e.$mdPanel,o=angular.element(this.message.parts.content[n].content).find("img")[0].src,a=_.filter(this.message.attachmentAttrs,function(e){return 0===e.mimetype.indexOf("image/")}),r=_.findIndex(a,function(e){return e.url.indexOf(o)>=0});angular.element(e.$document[0].body).addClass("sg-image-gallery-backdrop");var c=i.newPanelPosition().absolute(),u=i.newPanelAnimation().openFrom(t.target).duration(100).withAnimation(i.animation.FADE),d={attachTo:angular.element(document.body),locals:{lastIndex:a.length-1,images:a,selectedIndex:r,selectedImage:a[r]},bindToController:!0,controller:h,controllerAs:"$panelCtrl",position:c,animation:u,targetEvent:t,fullscreen:!0,hasBackdrop:!0,template:['','
',' '," arrow_back"," ",' image','
',' '," file_download"," ","
",'
',' '," navigate_before"," ",' ',' '," navigate_next"," ","
",'
','
',' ',"
","
","
"].join(""),trapFocus:!0,clickOutsideToClose:!0,escapeToClose:!0,focusOnOpen:!0,onOpenComplete:function(){s.show=!0,_.forEach(e.$document.find("sg-image-gallery")[0].getElementsByClassName("sg-image-thumbnail"),function(t){var n=t.children[0];angular.element(n).one("load",function(){n.naturalWidth0&&this.selectImage(this.selectedIndex-1)}}},angular.module("SOGo.MailerUI").factory("ImageGallery",e.$factory)}(),function(){"use strict";function e(e){this.$account=e}e.$factory=["$q","$timeout","$log","sgSettings","Resource","Message","Mailbox","sgMailbox_PRELOAD",function(t,n,s,i,o,a,r,l){return angular.extend(e,{$q:t,$timeout:n,$log:s,$$resource:new o(i.activeUser("folderURL")+"Mail",i.activeUser()),$Message:r,selectedFolder:null,PRELOAD:l}),e}];try{angular.module("SOGo.MailerUI")}catch(e){angular.module("SOGo.MailerUI",["SOGo.Common"])}angular.module("SOGo.MailerUI").constant("sgMailbox_PRELOAD",{LOOKAHEAD:50,SIZE:100}).factory("VirtualMailbox",e.$factory),e.$absolutePath=function(e){return[e,"virtual"].join("/")},e.prototype.init=function(e){this.$isLoading=!1,this.$mailboxes=[],this.uidsMap={},angular.extend(this,e),this.id=this.$id()},e.prototype.setMailboxes=function(e){this.$mailboxes=e,_.forEach(this.$mailboxes,function(e){e.$messages=[],e.uidsMap={}})},e.prototype.startSearch=function(t,n){var s=this,i=e.$q.when();this.$isLoading=!0,_.forEach(this.$mailboxes,function(o){i=i.then(function(){if(s.$isLoading)return e.$log.debug("searching mailbox "+o.path),o.$filter({sort:"date",asc:!1,match:t},n)})}),i.finally(function(){s.$isLoading=!1})},e.prototype.stopSearch=function(){e.$log.debug("stopping search..."),this.$isLoading=!1},e.prototype.selectFolder=function(){},e.prototype.resetSelectedMessage=function(){_.forEach(this.$mailboxes,function(e){delete e.selectedMessage})},e.prototype.hasSelectedMessage=function(){return angular.isDefined(_.find(this.$mailboxes,function(e){return angular.isDefined(e.selectedMessage)}))},e.prototype.isSelectedMessage=function(e,t){return angular.isDefined(_.find(this.$mailboxes,function(n){return n.path==t&&n.selectedMessage==e}))},e.prototype.getLength=function(){var e=0;return angular.isDefined(this.$mailboxes)?(_.forEach(this.$mailboxes,function(t){e+=t.$messages.length}),e):e},e.prototype.getItemAtIndex=function(e){var t,n,s,i,o;if(angular.isDefined(this.$mailboxes)&&e>=0)for(t=0,n=0;n0){var s=_.map(t,"uid");o.push(t);var r=e.$$resource.post(n,"addOrRemoveLabel",_.assign(i,{msgUIDs:s}));a.push(r)}}),e.$q.all(a).then(function(){return _.flatten(o)})},e.prototype.$deleteMessages=function(t){var n=[];return _.forEach(t,function(e,t){if(e.length>0){var s=e[0].$mailbox.$deleteMessages(e);n.push(s)}}),e.$q.all(n)},e.prototype.$markOrUnMarkMessagesAsJunk=function(t){var n=[];return _.forEach(t,function(e,t){if(e.length>0){var s=e[0].$mailbox.$markOrUnMarkMessagesAsJunk(e);n.push(s)}}),e.$q.all(n)},e.prototype.$copyMessages=function(t,n){var s=[];return _.forEach(t,function(e,t){if(e.length>0){var i=e[0].$mailbox.$copyMessages(e,n);s.push(i)}}),e.$q.all(s)},e.prototype.$moveMessages=function(t,n){var s=[];return _.forEach(t,function(e,t){if(e.length>0){var i=e[0].$mailbox.$moveMessages(e,n);s.push(i)}}),e.$q.all(s)}}(),function(){"use strict";e.$inject=["$window","$scope","$timeout","$q","$state","$mdDialog","$mdToast","stateAccounts","stateAccount","stateMailbox","sgHotkeys","encodeUriFilter","sgSettings","sgFocus","Dialog","Preferences","Account","Mailbox"];function e(e,t,n,s,i,o,a,r,c,u,d,h,g,f,m,p,$,b){var v=this,y=angular.element(e.document).find("title").attr("sg-default")||"SOGo",M=[];this.$onInit=function(){e.$mailboxController=v,this.service=b,this.accounts=r,this.account=c,this.selectedFolder=u,this.messageDialog=null,this.mode={search:!1,multiple:0},(n=M).push(d.createHotkey({key:l("hotkey_search"),description:l("Search"),callback:v.searchMode})),n.push(d.createHotkey({key:l("hotkey_compose"),description:l("Write a new message"),callback:function(e){null===v.messageDialog&&v.newMessage(e)}})),n.push(d.createHotkey({key:l("hotkey_junk"),description:l("Mark the selected messages as junk"),callback:v.markOrUnMarkMessagesAsJunk})),n.push(d.createHotkey({key:"space",description:l("Toggle item"),callback:v.toggleMessageSelection})),n.push(d.createHotkey({key:"shift+space",description:l("Toggle range of items"),callback:v.toggleMessageSelection})),n.push(d.createHotkey({key:"up",description:l("View next item"),callback:C,preventInClass:["sg-mail-part"]})),n.push(d.createHotkey({key:"down",description:l("View previous item"),callback:w,preventInClass:["sg-mail-part"]})),n.push(d.createHotkey({key:"shift+up",description:l("Add next item to selection"),callback:I,preventInClass:["sg-mail-part"]})),n.push(d.createHotkey({key:"shift+down",description:l("Add previous item to selection"),callback:E,preventInClass:["sg-mail-part"]})),_.forEach(["backspace","delete"],function(e){n.push(d.createHotkey({key:e,description:l("Delete selected message or folder"),callback:v.confirmDeleteSelectedMessages}))}),_.forEach(n,function(e){d.registerHotkey(e)});var n;angular.element(e).on("beforeunload",x),t.$on("$destroy",function(){angular.element(e).off("beforeunload",x),_.forEach(M,function(e){d.deregisterHotkey(e)})}),t.$watch(function(){return v.selectedFolder.unseenCount},function(t){var n=y+" - ";t&&(n+="("+t+") "),n+=v.selectedFolder.$displayName,e.document.title=n})};function x(e){return v.selectedFolder.$compact()}this.centerIsClose=function(e){return this.selectedFolder.hasSelectedMessage()&&!!e},this.sort=function(e){v.selectedFolder.$filter({sort:e})},this.sortedBy=function(e){return b.$query.sort==e},this.searchMode=function(){v.mode.search=!0,f("search")},this.cancelSearch=function(){v.mode.search=!1,v.selectedFolder.$filter().then(function(){v.selectedFolder.selectedMessage&&n(function(){v.selectedFolder.$topIndex=v.selectedFolder.uidsMap[v.selectedFolder.selectedMessage]})})},this.composeWindowEnabled=function(){return p.defaults.SOGoMailComposeWindowEnabled},this.newMessage=function(t,n){var s;null===v.messageDialog&&(n||"popup"==p.defaults.SOGoMailComposeWindow?function(){var t=[g.baseURL(),"UIxMailPopupView#!/Mail",v.account.id,h(h(v.selectedFolder.path)),"new"].join("/"),n=v.selectedFolder.$id()+"/"+Math.random(0,1e3);console.debug(t),e.open(t,n,["width=680","height=520","resizable=1","scrollbars=1","toolbar=0","location=0","directories=0","status=0","menubar=0","copyhistory=0"].join(","))}():(s=v.account.$newMessage(),v.messageDialog=o.show({parent:angular.element(document.body),targetEvent:t,clickOutsideToClose:!1,escapeToClose:!1,templateUrl:"UIxMailEditor",controller:"MessageEditorController",controllerAs:"editor",locals:{stateAccount:v.account,stateMessage:s}}).catch(_.noop).finally(function(){v.messageDialog=null})))};function C(e){var t=v.selectedFolder.$selectedMessageIndex();return angular.isDefined(t)?(t--,v.selectedFolder.$topIndex>0&&v.selectedFolder.$topIndex--):(t=v.selectedFolder.getLength()-1,v.selectedFolder.$topIndex=v.selectedFolder.getLength()),t>-1&&v.selectMessage(v.selectedFolder.$messages[t]),e.preventDefault(),t}function w(e){var t=v.selectedFolder.$selectedMessageIndex();return angular.isDefined(t)?(t++,v.selectedFolder.$topIndex=0&&v.toggleMessageSelection(e,v.selectedFolder.$messages[t])}function E(e){var t;v.selectedFolder.hasSelectedMessage()&&(t=w(e))>=0&&v.toggleMessageSelection(e,v.selectedFolder.$messages[t])}this.selectMessage=function(e){b.$virtualMode?i.go("mail.account.virtualMailbox.message",{mailboxId:h(e.$mailbox.path),messageId:e.uid}):i.go("mail.account.mailbox.message",{messageId:e.uid})},this.toggleMessageSelection=function(e,t){var n,s,i,o=v.selectedFolder;if(t||(t=o.$selectedMessage()),!t)return!0;if(t.selected=!t.selected,v.mode.multiple+=t.selected?1:-1,e.shiftKey&&o.$selectedCount()>1){for(s=(n=o.uidsMap[t.uid])-2;s>=0&&!o.$messages[s].selected;)s--;if(s<0)for(s=n+2;s=0&&s0&&(a-=1,s=v.selectedFolder.$messages[a]),t0&&(v.messageDialog=m.confirm(l("Confirmation"),l("Are you sure you want to delete the selected messages?"),{ok:l("Delete")}).then(function(){var e=v.selectedFolder.hasSelectedMessage();v.selectedFolder.$deleteMessages(t).then(function(t){b.$virtualMode?e&&i.go("mail.account.virtualMailbox"):A(e,t)},function(n){v.messageDialog=m.confirm(l("Warning"),l("The messages could not be moved to the trash folder. Would you like to delete them immediately?"),{ok:l("Delete")}).then(function(){v.selectedFolder.$deleteMessages(t,{withoutTrash:!0}).then(function(t){b.$virtualMode?e&&i.go("mail.account.virtualMailbox"):A(e,t)})})})}).finally(function(){v.messageDialog=null})),e.preventDefault()},this.markOrUnMarkMessagesAsJunk=function(){var e=v.selectedFolder.hasSelectedMessage(),t=v.selectedFolder.$selectedMessages();0===_.size(t)&&e&&(t=[v.selectedFolder.$selectedMessage()]),_.size(t)>0&&v.selectedFolder.$markOrUnMarkMessagesAsJunk(t).then(function(){var n="/"+v.account.id+"/folderINBOX";"junk"!=v.selectedFolder.type&&(n="/"+v.account.$getMailboxByType("junk").id),v.selectedFolder.$moveMessages(t,n).then(function(t){b.$virtualMode?e&&i.go("mail.account.virtualMailbox"):A(e,t)})})},this.copySelectedMessages=function(e){var t=v.selectedFolder.$selectedMessages();_.size(t)>0&&v.selectedFolder.$copyMessages(t,"/"+e).then(function(){a.show(a.simple().content(l("%{0} message(s) copied",v.selectedFolder.$selectedCount())).position("top right").hideDelay(2e3))})},this.moveSelectedMessages=function(e){var t=v.selectedFolder.hasSelectedMessage(),n=v.selectedFolder.$selectedMessages(),s=v.selectedFolder.$selectedCount();_.size(n)>0&&v.selectedFolder.$moveMessages(n,"/"+e).then(function(e){a.show(a.simple().content(l("%{0} message(s) moved",s)).position("top right").hideDelay(2e3)),b.$virtualMode?t&&i.go("mail.account.virtualMailbox"):A(t,e)})},this.selectAll=function(){var e=0;_.forEach(S(),function(t){for(var n=0,s=t.$messages.length;n0&&v.selectedFolder.$flagMessages(e,"\\Flagged","add").then(function(e){_.forEach(e,function(e){e.isflagged=!0})})},this.markSelectedMessagesAsUnread=function(){var e=v.selectedFolder.$selectedMessages();_.size(e)>0&&v.selectedFolder.$flagMessages(e,"seen","remove").then(function(e){_.forEach(e,function(e){e.isread&&e.$mailbox.unseenCount++,e.isread=!1})})},this.markSelectedMessagesAsRead=function(){var e=v.selectedFolder.$selectedMessages();_.size(e)>0&&v.selectedFolder.$flagMessages(e,"seen","add").then(function(e){_.forEach(e,function(e){e.isread||e.$mailbox.unseenCount--,e.isread=!0})})}}angular.module("SOGo.MailerUI").controller("MailboxController",e),t.$inject=["$delegate"];function t(e){return e[0].controller.prototype.resetScroll=function(){"messagesList"==this.$element.parent().attr("id")?this.updateSize():this.scrollTo(0)},e}angular.module("material.components.virtualRepeat").decorator("mdVirtualRepeatContainerDirective",t)}(),function(){"use strict";e.$inject=["$scope","$state","$transitions","$timeout","$window","$mdDialog","$mdToast","sgFocus","encodeUriFilter","Dialog","sgSettings","sgHotkeys","Account","Mailbox","VirtualMailbox","User","Preferences","stateAccounts"];function e(e,t,n,s,i,o,a,r,c,u,d,h,g,f,m,p,$,b){var v,y,M=this,x=[];this.$onInit=function(){this.service=f,this.accounts=b,this.currentSearchParam="",this.search={options:{"":"",subject:l("Enter Subject"),from:l("Enter From"),to:l("Enter To"),cc:l("Enter Cc"),body:l("Enter Body")},subfolders:1,match:"AND",params:[]},this.showSubscribedOnly=$.defaults.SOGoMailShowSubscribedFoldersOnly,this.refreshUnseenCount(),t=x,_.forEach(["backspace","delete"],function(e){t.push(h.createHotkey({key:e,description:l("Delete selected message or folder"),callback:function(){f.selectedFolderController&&f.selectedFolder&&!f.selectedFolder.hasSelectedMessage()&&f.selectedFolderController.confirmDelete(f.selectedFolder)}}))}),_.forEach(t,function(e){h.registerHotkey(e)});var t;e.$on("$destroy",function(){_.forEach(x,function(e){h.deregisterHotkey(e)})})};this.hideAdvancedSearch=function(){M.service.$virtualPath=!1,M.service.$virtualMode=!1,v=M.accounts[0],y=M.searchPreviousMailbox,t.go("mail.account.mailbox",{accountId:v.id,mailboxId:c(y.path)})},this.toggleAdvancedSearch=function(){if(f.selectedFolder.$isLoading)M.virtualMailbox.stopSearch();else{var e,n=[],s=function(e){_.forEach(e,function(e){n.push(e),e.children&&e.children.length>0&&s(e.children)})};M.virtualMailbox=new m(M.accounts[0]),f.$virtualMode||(M.searchPreviousMailbox=f.selectedFolder),f.selectedFolder=M.virtualMailbox,f.$virtualMode=!0,angular.isDefined(f.$virtualPath)?(e=M.accounts[0].$getMailboxByPath(f.$virtualPath),n.push(e),M.search.subfolders&&e.children.length&&s(e.children)):n=M.accounts[0].$flattenMailboxes(),M.virtualMailbox.setMailboxes(n),M.virtualMailbox.startSearch(M.search.match,M.search.params),"mail.account.virtualMailbox"!=t.$current.name&&t.go("mail.account.virtualMailbox",{accountId:M.accounts[0].id})}},this.addSearchParam=function(e){return M.currentSearchParam=e,r("advancedSearch"),!1},this.newSearchParam=function(e){if(e.length&&M.currentSearchParam.length){var t=0,n=M.currentSearchParam;return e.startsWith("!")&&(t=1,e=e.substring(1).trim()),M.currentSearchParam="",{searchBy:n,searchInput:e,negative:t}}},this.toggleAccountState=function(e){e.$expanded=!e.$expanded,e.$flattenMailboxes({reload:!0,saveState:!0}),s(function(){angular.element(i).triggerHandler("resize")},150)},this.subscribe=function(e){o.show({templateUrl:e.id+"/subscribe",controller:t,controllerAs:"subscriptions",clickOutsideToClose:!0,escapeToClose:!0,locals:{srcAccount:e}}).finally(function(){e.$getMailboxes({reload:!0})}),t.$inject=["$scope","$mdDialog","srcAccount"];function t(e,t,n){var s=this;s.loading=!0,s.filter={name:""},s.account=new g({id:n.id,name:n.name}),s.close=function(){t.hide()},s.account.$getMailboxes({reload:!0,all:!0}).then(function(){s.loading=!1})}},this.newFolder=function(e){u.prompt(l("New Folder..."),l("Enter the new name of your folder")).then(function(t){e.$newMailbox(e.id,t).then(function(){},function(e,n){u.alert(l('An error occured while creating the mailbox "%{0}".',t),l(e.error))})})},this.delegate=function(e){o.show({templateUrl:e.id+"/delegation",controller:t,controllerAs:"delegate",clickOutsideToClose:!0,escapeToClose:!0,locals:{User:p,account:e}}),t.$inject=["$scope","$mdDialog","User","account"];function t(e,t,n,s){var i=this;i.users=s.delegates,i.account=s,i.userToAdd="",i.searchText="",i.userFilter=function(e){return n.$filter(e,s.delegates)},i.closeModal=function(){t.hide()},i.removeUser=function(e){s.$removeDelegate(e.uid).catch(function(e,t){u.alert(l("Warning"),l("An error occured please try again."))})},i.addUser=function(e){e&&s.$addDelegate(e).then(function(){i.userToAdd="",i.searchText=""},function(e){u.alert(l("Warning"),e)})}}},this.refreshUnseenCount=function(){var e,t=i.unseenCountFolders;_.forEach(M.accounts,function(e){_.includes(t,e.id+"/folderINBOX")||t.push(e.id+"/folderINBOX"),_.forEach(e.$$flattenMailboxes,function(e){angular.isDefined(e.unseenCount)&&!_.includes(t,e.id)&&t.push(e.id)})}),g.$$resource.post("","unseenCount",{mailboxes:t}).then(function(e){_.forEach(M.accounts,function(t){_.forEach(t.$$flattenMailboxes,function(t){e[t.id]&&(t.unseenCount=e[t.id])})})}),(e=$.defaults.SOGoRefreshViewCheck)&&"manually"!=e&&s(M.refreshUnseenCount,1e3*e.timeInterval())},this.isDroppableFolder=function(e,t){return t.id!=e.id&&!t.isNoSelect()},this.dragSelectedMessages=function(e,n,s){var i,o,r,c,u,d;i="/"+n.id,0===(o=e.$selectedMessages()).length&&(o=[e.$selectedMessage()]),r=_.map(o,"uid"),c=e.selectedMessage&&r.indexOf(e.selectedMessage)>=0,"copy"==s?(u=e.$copyMessages(o,i),d=l("%{0} message(s) copied",o.length)):(u=e.$moveMessages(o,i),d=l("%{0} message(s) moved",o.length)),u.then(function(){c&&t.go("mail.account.mailbox"),a.show(a.simple().content(d).position("top right").hideDelay(2e3))})}}angular.module("SOGo.MailerUI").controller("MailboxesController",e)}(),function(){"use strict";e.$inject=["$window","$scope","$state","$mdMedia","$mdDialog","sgConstant","stateAccounts","stateAccount","stateMailbox","stateMessage","sgHotkeys","encodeUriFilter","sgSettings","ImageGallery","sgFocus","Dialog","Preferences","Calendar","Component","Account","Mailbox","Message"];function e(e,t,n,s,i,o,a,r,c,u,d,h,g,f,m,p,$,b,v,y,M,x){var C=this,w=[];this.$onInit=function(){e.$messageController=C,f.setMessage(u),this.$state=n,this.accounts=a,this.account=r,this.mailbox=c,this.message=u,this.service=x,this.tags={searchText:"",selected:""},this.showFlags=u.flags&&u.flags.length>0,this.$showDetailedRecipients=!1,C.showRawSource=!1,(s=w).push(d.createHotkey({key:l("hotkey_reply"),description:l("Reply to the message"),callback:E(angular.bind(C,C.reply))})),s.push(d.createHotkey({key:l("hotkey_replyall"),description:l("Reply to sender and all recipients"),callback:E(angular.bind(C,C.replyAll))})),s.push(d.createHotkey({key:l("hotkey_forward"),description:l("Forward selected message"),callback:E(angular.bind(C,C.forward))})),s.push(d.createHotkey({key:l("hotkey_flag"),description:l("Flagged"),callback:E(angular.bind(u,u.toggleFlag))})),_.forEach(["backspace","delete"],function(e){s.push(d.createHotkey({key:e,callback:E(function(e){0===C.mailbox.$selectedCount()&&C.deleteMessage(),e.preventDefault()})}))}),_.forEach(s,function(e){d.registerHotkey(e)});var s;e.opener?(t.$watchCollection(function(){return C.message.flags},function(e,t){var n;(e||t)&&(n=S()).messageCtrl&&n.messageCtrl.service.$timeout(function(){n.messageCtrl.showFlags=!0,n.messageCtrl.message.flags=e})}),t.$watch(function(){return C.message.isflagged},function(e,t){var n=S();n.mailboxCtrl&&n.mailboxCtrl.service.$timeout(function(){_.find(n.mailboxCtrl.selectedFolder.$messages,{uid:C.message.uid}).isflagged=e})})):t.$watchCollection(function(){return C.message.flags},function(e,t){var n,s,i;(e||t)&&(n=e||[],s=t||[],_.forEach(n,function(e,t){angular.isObject(e)&&(n[t]=e.name)}),n.length>s.length?(i=_.difference(n,s),_.forEach(i,function(e){C.message.addTag(e)})):n.length0&&(t.mailbox.messageDialog=arguments[0]),t.mailbox.messageDialog):null}function E(e){return function(){if(null===I())return e.apply(C,arguments)}}function S(){var t,n,s={};return e.opener&&e.opener.$mailboxController&&e.opener.$mailboxController.selectedFolder.$id()==c.$id()&&(n=e.opener.$mailboxController,s.mailboxCtrl=n,e.opener.$messageController&&e.opener.$messageController.message.uid==u.uid&&(t=e.opener.$messageController,s.messageCtrl=t)),s}this.addFlags=function(e){this.showFlags=!0,m("flags")},this.toggleDetailedRecipients=function(e){this.$showDetailedRecipients=!this.$showDetailedRecipients,e.stopPropagation(),e.preventDefault()},this.filterMailtoLinks=function(e){var t;"A"==e.target.tagName&&"href"in e.target.attributes&&(t=e.target.attributes.href.value,/^mailto:([^\?]+)/.exec(t)&&(delete e.target.attributes.target,this.newMessage(e,t)))},this.deleteMessage=function(){var e,t,i,a,r,l=S();l.messageCtrl?(e=l.mailboxCtrl.selectedFolder,t=l.messageCtrl.message,i=l.messageCtrl.$state):(e=c,t=u,i=n),e.$deleteMessages([t]).then(function(n){var l=n;if(t=null,angular.isDefined(i)){n>0&&(l-=1,a=e.$messages[l]),ne.$lastVisibleIndex&&(e.$topIndex=l-(e.$lastVisibleIndex-e.$topIndex))):i.go("mail.account.mailbox").then(function(){t=null,delete e.selectedMessage})}catch(e){}}C.closePopup()})};function A(e,t){null===I()&&I(i.show({parent:angular.element(document.body),targetEvent:e,clickOutsideToClose:!1,escapeToClose:!1,templateUrl:"UIxMailEditor",controller:"MessageEditorController",controllerAs:"editor",locals:{stateAccount:C.account,stateMessage:t}}).catch(_.noop).finally(function(){I(null),C.closePopup()}))}this._showMailEditorInPopup=function(e){return!g.isPopup&&"popup"==$.defaults.SOGoMailComposeWindow&&(this.openInPopup(e),!0)},this.close=function(){n.go("mail.account.mailbox").then(function(){C.message=null,delete c.selectedMessage})},this.reply=function(e){this._showMailEditorInPopup("reply")||A(e,this.message.$reply())},this.replyAll=function(e){this._showMailEditorInPopup("replyall")||A(e,this.message.$replyAll())},this.forward=function(e){this._showMailEditorInPopup("forward")||A(e,this.message.$forward())},this.edit=function(e){this._showMailEditorInPopup("edit")||this.message.$editableContent().then(function(){A(e,C.message)})},this.openInPopup=function(t){var n=[g.baseURL(),"UIxMailPopupView#!/Mail",this.message.accountId,h(h(this.message.$mailbox.path)),this.message.uid].join("/"),s=this.message.$absolutePath();t&&(n+="/"+t),e.open(n,s,["width=680","height=520","resizable=1","scrollbars=1","toolbar=0","location=0","directories=0","status=0","menubar=0","copyhistory=0"].join(","))},this.closePopup=function(){e.document.body.classList.contains("popup")&&e.close()},this.newMessage=function(e,t){e.stopPropagation(),e.preventDefault(),this.account.$newMessage({mailto:t}).then(function(t){A(e,t)})},this.toggleRawSource=function(e){this.showRawSource||this.message.$rawSource?this.showRawSource=!this.showRawSource:x.$$resource.post(this.message.id,"viewsource").then(function(e){C.message.$rawSource=e,C.showRawSource=!0})},this.print=function(t){e.print()},this.convertToEvent=function(e){return F(e,"appointment")},this.convertToTask=function(e){return F(e,"task")};function F(e,t){C.message.$plainContent().then(function(n){var s={pid:b.$defaultCalendar(),type:t,summary:n.subject,comment:n.content},o=new v(s),a=[g.activeUser("folderURL"),"Calendar","UIx"+t.capitalize()+"EditorTemplate"].join("/");return i.show({parent:angular.element(document.body),targetEvent:e,clickOutsideToClose:!0,escapeToClose:!0,templateUrl:a,controller:"ComponentEditorController",controllerAs:"editor",locals:{stateComponent:o}})})}}angular.module("SOGo.MailerUI").controller("MessageController",e)}(),function(){"use strict";e.$inject=["$scope","$window","$stateParams","$mdConstant","$mdUtil","$mdDialog","$mdToast","FileUploader","stateAccount","stateMessage","encodeUriFilter","$timeout","Dialog","AddressBook","Card","Preferences"];function e(e,t,n,s,i,o,a,r,c,u,d,h,g,f,m,p){var $=this;this.$onInit=function(){$.addRecipient=S,$.autocomplete={to:{},cc:{},bcc:{}},$.autosave=null,$.autosaveDrafts=A,$.cancel=x,$.contactFilter=E,$.isFullscreen=!1,$.hideBcc=0===u.editable.bcc.length,$.hideCc=0===u.editable.cc.length,$.identities=_.uniq(_.map(c.identities,"full")),$.message=u,$.recipientSeparatorKeys=[s.KEY_CODE.ENTER,s.KEY_CODE.TAB,s.KEY_CODE.COMMA,s.KEY_CODE.SEMICOLON],$.removeAttachment=M,$.save=C,$.send=w,$.sendState=!1,$.toggleFullscreen=I,$.uploader=new r({url:$.message.$absolutePath({asDraft:!0,withResourcePath:!0})+"/save",autoUpload:!0,alias:"attachments",removeAfterUpload:!1,onSuccessItem:function(e,t,n,s){$.message.$setUID(t.uid),$.message.$reload({asDraft:!1}),e.inlineUrl=t.lastAttachmentAttrs[0].url},onCancelItem:function(e,t,n,s){$.message.$deleteAttachment(e.file.name),this.removeFromQueue(e)},onErrorItem:function(e,t,n,s){a.show(a.simple().content(l('Error while uploading the file "%{0}":',e.file.name)+" "+(t.message?l(t.message):"")).position("top right").action(l("OK")).hideDelay(!1)),this.removeFromQueue(e)}}),p.defaults.SOGoMailAutoSave&&($.autosave=h($.autosaveDrafts,1e3*p.defaults.SOGoMailAutoSave*60)),$.localeCode=p.defaults.LocaleCode,e.$on("$destroy",function(){$.uploader.destroy()}),"reply"==n.actionName?u.$reply().then(function(e){$.message=e,$.hideCc=!e.editable.cc||0===e.editable.cc.length,$.hideBcc=!e.editable.bcc||0===e.editable.bcc.length,v()}):"replyall"==n.actionName?u.$replyAll().then(function(e){$.message=e,$.hideCc=!e.editable.cc||0===e.editable.cc.length,$.hideBcc=!e.editable.bcc||0===e.editable.bcc.length,v()}):"forward"==n.actionName?u.$forward().then(function(e){$.message=e,v(),y()}):angular.isDefined(u)&&($.message=u,v(),y())};function b(){var e,n={};try{t.opener&&"$mailboxController"in t.opener&&"selectedFolder"in t.opener.$mailboxController&&("draft"==t.opener.$mailboxController.selectedFolder.type?(n.draftMailboxCtrl=t.opener.$mailboxController,"$messageController"in t.opener&&t.opener.$messageController.message.uid==u.uid&&(n.draftMessageCtrl=t.opener.$messageController)):u.origin&&(e=u.origin.message,t.opener.$mailboxController.selectedFolder.$id()==e.$mailbox.$id()&&(n.originMailboxCtrl=t.opener.$mailboxController)))}catch(e){}return n}function v(){$.uploader.url=$.message.$absolutePath({asDraft:!0,withResourcePath:!0})+"/save"}function y(){var e,t,n,s=$.message.editable.attachmentAttrs;if(s)for(e=0;e',' '," {{$ctrl.mailbox.$icon}}"," ",'

',' ',' ',"

",' ',' '," ",' more_vert'].join(""),controller:"sgMailboxListItemController",controllerAs:"$ctrl"}})}(),function(){e.$inject=["$scope","$element","Mailbox"];function e(e,t,n){var s=this;this.$onInit=function(){var t=["uid","isread","isflagged","flags","subject"];this.MailboxService=n,"draft"==n.selectedFolder.type&&t.push("subject"),e.$watch(function(){return s.message?[_.pick(s.message,t)]:null},function(e,t){s.message&&s.onUpdate()},!0)},this.onUpdate=function(){this.message.isread?t.removeClass("unread"):t.addClass("unread"),n.selectedFolder.isSelectedMessage(this.message.uid,this.message.$mailbox.path)?t.addClass("md-default-theme md-accent md-bg md-hue-2"):t.removeClass("md-default-theme md-accent md-bg md-hue-2")},this.setVisibility=function(e,t){t?e.classList.remove("ng-hide"):e.classList.add("ng-hide")}}angular.module("SOGo.MailerUI").controller("sgMessageListItemController",e).directive("sgMessageListItem",function(){return{restrict:"C",scope:{},bindToController:{message:"=sgMessage"},controller:"sgMessageListItemController"}})}(),function(){e.$inject=["$scope","$element","$parse","$state","$mdUtil","$mdToast","Mailbox","Message","encodeUriFilter"];function e(e,t,n,s,i,o,a,r,l){var c=this;this.$postLink=function(){var n,s,o,l;this.parentController=e.parentController,o=this.parentController.onUpdate,l=this.parentController.setVisibility,_.forEach(t.find("div"),function(e){e.classList.contains("sg-tile-content")?n=angular.element(e):e.classList.contains("sg-tile-icons")&&(s=angular.element(e))}),this.priorityIconElement=n.find("md-icon")[0],a.$virtualMode&&(this.mailboxNameElement=n.find("span")[0],this.mailboxNameElement.classList.remove("ng-hide")),this.senderElement=n.find("span")[1],_.forEach(n.find("div"),function(e){e.classList.contains("sg-tile-subject")?c.subjectElement=e:e.classList.contains("sg-tile-size")?c.sizeElement=e:e.classList.contains("sg-tile-date")&&(c.dateElement=e)}),_.forEach(s.find("md-icon"),function(e){"star"==e.textContent?c.flagIconElement=e:"reply"==e.textContent?c.answerIconElement=e:"forward"==e.textContent?c.forwardIconElement=e:"attach_file"==e.textContent&&(c.attachmentIconElement=e)}),this.parentController.onUpdate=function(){var e;c.message=c.parentController.message;var n=i.nodesToArray(t[0].querySelectorAll(".sg-category"));for(_.forEach(n,function(e){t[0].removeChild(e)}),e=0;e');a.css("left",3*e+"px"),a.css("background-color",c.service.$tags[s][1]),t.prepend(a)}}c.mailboxNameElement&&(c.mailboxNameElement.innerHTML=c.message.$mailbox.$displayName),"sent"==c.MailboxService.selectedFolder.type?c.senderElement.innerHTML=c.message.$shortAddress("to").encodeEntities():c.senderElement.innerHTML=c.message.$shortAddress("from").encodeEntities(),c.message.priority&&c.message.priority.level<3?(c.priorityIconElement.classList.remove("ng-hide"),c.message.priority.level<2?c.priorityIconElement.classList.add("md-warn"):c.priorityIconElement.classList.remove("md-warn")):c.priorityIconElement.classList.add("ng-hide"),c.subjectElement.innerHTML=c.message.subject.encodeEntities(),c.sizeElement.innerHTML=c.message.size,c.dateElement.innerHTML=c.message.relativedate,l(c.flagIconElement,c.message.isflagged),l(c.answerIconElement,c.message.isanswered),l(c.forwardIconElement,c.message.isforwarded),l(c.attachmentIconElement,c.message.hasattachment),angular.bind(c.parentController,o)()},this.service=r,this.MailboxService=a}}angular.module("SOGo.MailerUI").controller("sgMessageListItemMainController",e).directive("sgMessageListItemMain",function(){return{restrict:"C",require:"^^sgMessageListItem",scope:{},template:['
','
',"
",' \x3c!-- mailbox --\x3e',' error'," \x3c!-- sender or recipient --\x3e","
",'
\x3c!-- date --\x3e
',"
",'
','
\x3c!-- subject --\x3e
','
\x3c!-- size --\x3e
',"
","
",'
',' star',' reply',' forward',' attach_file',"
",'
',' \x3c!-- message loading progress --\x3e',"
"].join(""),link:function(e,t,n,s){e.parentController=s},controller:"sgMessageListItemMainController",controllerAs:"$ctrl"}})}(),function(){"use strict";e.$inject=["$element","ImageGallery"];function e(e,t){var n=this;this.$postLink=function(){t.registerImage(e),e.on("click",this.showImage)},this.showImage=function(e){"IMG"==e.target.tagName&&t.showGallery(e,n.partIndex)}}angular.module("SOGo.MailerUI").directive("sgZoomableImage",function(){return{restrict:"A",bindToController:{partIndex:"=sgZoomableImage"},controller:e}})}(); +!function(){"use strict";function e(t){"function"!=typeof t.then&&(angular.extend(this,t),_.forEach(this.identities,function(e){e.fullName?e.full=e.fullName+" <"+e.email+">":e.full="<"+e.email+">"}),e.$log.debug("Account: "+JSON.stringify(t,void 0,2)))}e.$factory=["$q","$timeout","$log","sgSettings","Resource","Preferences","Mailbox","Message",function(t,n,s,i,o,a,r,l){return angular.extend(e,{$q:t,$timeout:n,$log:s,$$resource:new o(i.activeUser("folderURL")+"Mail",i.activeUser()),$Preferences:a,$Mailbox:r,$Message:l}),e}];try{angular.module("SOGo.MailerUI")}catch(e){angular.module("SOGo.MailerUI",["SOGo.Common"])}angular.module("SOGo.MailerUI").factory("Account",e.$factory),e.$findAll=function(t){return t?e.$unwrapCollection(t):e.$$resource.fetch("","mailAccounts").then(function(t){return e.$unwrapCollection(t)})},e.$unwrapCollection=function(t){var n=[];return angular.forEach(t,function(t,s){t.id=s,n[s]=new e(t)}),e.$accounts=n,n},e.prototype.getLength=function(){return this.$flattenMailboxes().length},e.prototype.getItemAtIndex=function(e){var t;return t=this.$flattenMailboxes(),e>=0&&e=0,e.children&&e.children.length>0&&i(e.children)})};if(e.$Preferences.settings.Mail.ExpandedFolders){if(angular.isString(e.$Preferences.settings.Mail.ExpandedFolders))try{s=angular.fromJson(e.$Preferences.settings.Mail.ExpandedFolders)}catch(t){e.$log.warn("Can't parse list of expanded folders. String was: "+e.$Preferences.settings.Mail.ExpandedFolders),s=[]}else s=e.$Preferences.settings.Mail.ExpandedFolders;n.$expanded=s.indexOf("/"+n.id)>=0,s.length>0&&i(n.$mailboxes)}return e.$accounts&&(n.$expanded|=1==e.$accounts.length),n.$flattenMailboxes({reload:!0}),n.$mailboxes}):e.$q.when(this.$mailboxes)},e.prototype.$flattenMailboxes=function(t){var n=[],s=[],i=function(e){_.forEach(e,function(e){n.push(e),(t&&t.all||e.$expanded)&&e.children&&e.children.length>0&&i(e.children)})};return!this.$$flattenMailboxes||t&&(t.reload||t.all)?(i(this.$mailboxes),t&&t.all||(this.$$flattenMailboxes=n,t&&t.saveState&&(_.forEach(e.$accounts,function(e){e.$expanded&&s.push("/"+e.id),_.reduce(e.$$flattenMailboxes,function(e,t){return t.$expanded&&e.push("/"+t.id),e},s)}),e.$$resource.post(null,"saveFoldersState",s)))):n=this.$$flattenMailboxes,n},e.prototype.$getMailboxByType=function(e){var t=function(n){var s=_.find(n,function(t){return t.type==e});return s||angular.forEach(n,function(e){!s&&e.children&&e.children.length>0&&(s=t(e.children))}),s};return t(this.$mailboxes)},e.prototype.$getMailboxByPath=function(e){var t=function(n){var s=_.find(n,function(t){return t.path==e});return s||angular.forEach(n,function(e){!s&&e.children&&e.children.length>0&&(s=t(e.children))}),s};return t(this.$mailboxes)},e.prototype.$newMailbox=function(t,n){var s=this;return e.$$resource.post(t.toString(),"createFolder",{name:n}).then(function(){s.$getMailboxes({reload:!0})})},e.prototype.$certificate=function(){var t=this;return this.security&&this.security.hasCertificate?this.$$certificate?e.$q.when(this.$$certificate):e.$$resource.fetch(this.id.toString(),"certificate").then(function(e){return t.$$certificate=e,e}):e.$q.reject()},e.prototype.$removeCertificate=function(){var t=this;return e.$$resource.fetch(this.id.toString(),"removeCertificate").then(function(){t.security.hasCertificate=!1})},e.prototype.updateQuota=function(e){var t,n;t=Math.round(1e4*e.usedSpace/e.maxQuota)/100,n=l("quotasFormat").formatted(t,Math.round(e.maxQuota/10.24)/100),this.$quota={percent:t,description:n}},e.prototype.$newMessage=function(t){var n=this;return e.$$resource.fetch(this.id.toString(),"compose").then(function(t){e.$log.debug("New message (compose): "+JSON.stringify(t,void 0,2));return new e.$Message(t.accountId,n.$getMailboxByPath(t.mailboxPath),t)}).then(function(s){return e.$$resource.fetch(s.$absolutePath({asDraft:!0}),"edit").then(function(i){var o=e.$Preferences.defaults.AuxiliaryMailAccounts[n.id];return o.security&&(o.security.alwaysSign&&(i.sign=!0),o.security.alwaysEncrypt&&(i.encrypt=!0)),e.$log.debug("New message (edit): "+JSON.stringify(i,void 0,2)),angular.extend(s.editable,i),s.isNew=!0,t&&t.mailto&&(angular.isObject(t.mailto)?angular.extend(s.editable,t.mailto):s.$parseMailto(t.mailto)),s})})},e.prototype.$addDelegate=function(t){var n=this,s=e.$q.defer(),i={uid:t.uid};return!t.uid||_.indexOf(_.map(this.delegates,"uid"),t.uid)>-1?s.resolve():e.$$resource.fetch(this.id.toString(),"addDelegate",i).then(function(){n.delegates.push(t),s.resolve(n.users)},function(e,t){s.reject(l("An error occured please try again."))}),s.promise},e.prototype.$removeDelegate=function(t){var n=this,s={uid:t};return e.$$resource.fetch(this.id.toString(),"removeDelegate",s).then(function(){var e=_.indexOf(_.map(n.delegates,"uid"),t);e>=0&&n.delegates.splice(e,1)})}}(),function(){"use strict";function e(t,n){if(this.$account=t,"function"!=typeof n.then){if(this.init(n),this.name&&!this.path){var s=e.$$resource.create("createFolder",this.name);this.$unwrap(s)}}else this.$unwrap(n)}e.$factory=["$q","$timeout","$log","sgSettings","Resource","Message","Acl","Preferences","sgMailbox_PRELOAD",function(t,n,s,i,o,a,r,l,c){return angular.extend(e,{$q:t,$timeout:n,$log:s,$$resource:new o(i.activeUser("folderURL")+"Mail",i.activeUser()),$Message:a,$$Acl:r,$Preferences:l,$query:{sort:"arrival",asc:0},selectedFolder:null,$refreshTimeout:null,$virtualMode:!1,$virtualPath:!1,PRELOAD:c}),l.settings.Mail.SortingState&&(e.$query.sort=l.settings.Mail.SortingState[0],e.$query.asc=parseInt(l.settings.Mail.SortingState[1])),e}];try{angular.module("SOGo.MailerUI")}catch(e){angular.module("SOGo.MailerUI",["SOGo.Common"])}angular.module("SOGo.MailerUI").constant("sgMailbox_PRELOAD",{LOOKAHEAD:50,SIZE:100}).factory("Mailbox",e.$factory),e.$find=function(t,n){var s;return s=n&&n.all?this.$$resource.fetch(t.id.toString(),"viewAll"):this.$$resource.fetch(t.id.toString(),"view"),e.$unwrapCollection(t,s)},e.$unwrapCollection=function(t,n){var s=[],i=function(n,s){for(var o=0;o=0&&e=0},e.prototype.isNoSelect=function(){return this.flags.indexOf("noselect")>=0},e.prototype.getClassName=function(e){return!1},e.prototype.$rename=function(){var t,n,s,i,o=this;return this.name==this.$shadowData.name?e.$q.when():(n=(t=function(e,n){var s=null;return _.find(n,function(e){return e.path==o.path})?s=e:angular.forEach(n,function(e){!s&&e.children&&e.children.length>0&&(s=t(e,e.children))}),s})(null,this.$account.$mailboxes),s=null===n?this.$account.$mailboxes:n.children,i=_.indexOf(_.map(s,"id"),this.id),this.$save().then(function(e){var t,n=o.path;o.init(e),s.splice(i,1),t=_.find(s,function(e){return"folder"==e.type&&e.name.localeCompare(o.name)>0}),i=t?_.indexOf(_.map(s,"id"),t.id):s.length,s.splice(i,0,o);var a=new RegExp("^"+n),r=function(e){_.forEach(e.children,function(e){e.path=e.path.replace(a,o.path),e.id=e.$id(),r(e)})};r(o)}))},e.prototype.$compact=function(){var t=this;return e.$$resource.post(this.id,"expunge").then(function(e){e.quotas&&t.$account.updateQuota(e.quotas)})},e.prototype.$canFolderAs=function(){return"folder"==this.type&&0===this.level},e.prototype.$setFolderAs=function(t){return e.$$resource.post(this.id,"setAs"+t+"Folder")},e.prototype.$emptyTrash=function(){var t=this;return e.$$resource.post(this.id,"emptyTrash").then(function(e){t.$messages=[],t.uidsMap={},t.unseenCount=0,angular.isDefined(t.children)&&t.children.length&&t.$account.$getMailboxes({reload:!0}),e.quotas&&t.$account.updateQuota(e.quotas)})},e.prototype.$markAsRead=function(){var t=this;return e.$$resource.post(this.id,"markRead").then(function(){t.unseenCount=0,_.forEach(t.$messages,function(e){e.isread=!0})})},e.prototype.$flagMessages=function(t,n,s){var i={msgUIDs:_.map(t,"uid"),flags:n,operation:s};return e.$$resource.post(this.id,"addOrRemoveLabel",i).then(function(){return t})},e.prototype.saveSelectedMessages=function(){var t,n;return t=_.filter(this.$messages,function(e){return e.selected}),{uids:n=_.map(t,"uid")},{filename:l("Saved Messages.zip")},e.$$resource.download(this.id,"saveMessages",{uids:n})},e.prototype.exportFolder=function(){var t;return t={filename:this.name+".zip"},e.$$resource.download(this.id,"exportFolder",null,t)},e.prototype.$delete=function(t){var n=this;return e.$$resource.post(this.id,"delete",t).then(function(){return n.$account.$getMailboxes({reload:!0}),!0})},e.prototype.$_deleteMessages=function(e,t){var n,s=this,i=this.$messages.length;return n=_.filter(t,function(e,t){return!e.isread}),this.unseenCount-=n.length,_.forEachRight(this.$messages,function(t,n){var o=_.findIndex(e,function(e){return t.uid==e});o>-1?(e.splice(o,1),delete s.uidsMap[t.uid],t.uid==s.selectedMessage&&delete s.selectedMessage,s.$messages.splice(n,1),nt.uids.length-1)&&(n.$topIndex=0),n.init(t),n.uids&&(e.$log.debug("unwrapping "+n.uids.length+" messages"),a=_.invokeMap(n.headers[0],"toLowerCase"),n.headers.splice(0,1),n.threaded&&(o=n.uids[0],n.uids.splice(0,1)),_.reduce(n.uids,function(t,s,a){var r,l;return r=n.threaded?_.zipObject(o,s):{uid:s.toString()},n.uidsMap[r.uid]=a,(l=new e.$Message(n.$account.id,n,r,!0)).selected=i.indexOf(l.uid)>-1,t.push(l),t},n.$messages),_.forEach(n.headers,function(e){var t=_.zipObject(a,e),s=n.uidsMap[t.uid.toString()];_.extend(n.$messages[s],t)})),e.$log.debug("mailbox "+n.id+" ready"),n.$isLoading=!1,s.resolve(n.$messages)})},function(e){angular.extend(n,e),n.isError=!0,n.$isLoading=!1,s.reject()}),s.promise},e.prototype.$unwrapHeaders=function(t){var n=this;t.then(function(t){e.$timeout(function(){var e,s;t.length>0&&(e=_.invokeMap(t[0],"toLowerCase"),t.splice(0,1),_.forEach(t,function(t){t=_.zipObject(e,t),s=n.uidsMap[t.uid.toString()],angular.isDefined(s)&&_.extend(n.$messages[s],t)}))})})},e.prototype.$updateSubscribe=function(){var t=this.subscribed?"subscribe":"unsubscribe";e.$$resource.post(this.id,t)}}(),function(){"use strict";function e(e,t,n,s){this.accountId=e,this.$mailbox=t,this.$hasUnsafeContent=!1,this.$loadUnsafeContent=!1,this.editable={to:[],cc:[],bcc:[]},this.selected=!1,"function"!=typeof n.then?(!angular.isUndefined(s)&&s||(angular.extend(this,n),this.$formatFullAddresses()),this.uid=parseInt(n.uid)):this.$unwrap(n)}e.$factory=["$q","$timeout","$log","sgSettings","sgMessage_STATUS","Resource","Preferences",function(t,n,s,i,o,a,r){return angular.extend(e,{STATUS:o,$q:t,$timeout:n,$log:s,$$resource:new a(i.activeUser("folderURL")+"Mail",i.activeUser()),$Preferences:r,$avatar:angular.bind(r,r.avatar)}),r.defaults.SOGoMailLabelsColors&&(e.$tags=r.defaults.SOGoMailLabelsColors),r.defaults.SOGoMailDisplayRemoteInlineImages&&"always"==r.defaults.SOGoMailDisplayRemoteInlineImages&&(e.$displayRemoteInlineImages=!0),e}];try{angular.module("SOGo.MailerUI")}catch(e){angular.module("SOGo.MailerUI",["SOGo.Common"])}angular.module("SOGo.MailerUI").constant("sgMessage_STATUS",{NOT_LOADED:0,DELAYED_LOADING:1,LOADING:2,LOADED:3,DELAYED_MS:300}).factory("Message",e.$factory),e.filterTags=function(t,n){var s=new RegExp(t,"i"),i=[];return _.forEach(_.keys(e.$tags),function(t){var o=e.$tags[t];-1!=o[0].search(s)&&(_.includes(n,t)||i.push({name:t,description:o[0],color:o[1]}))}),i},e.prototype.$absolutePath=function(t){var n=this,s=this.id;function i(){var e;return(e=_.map(n.$mailbox.path.split("/"),function(e){return"folder"+e.asCSSIdentifier()})).splice(0,0,n.accountId),e.join("/")}return(angular.isUndefined(this.id)||t&&t.nocache)&&(this.id=i()+"/"+this.uid,s=this.id),t&&t.asDraft&&this.draftId&&(s=i()+"/"+this.draftId),t&&t.withResourcePath&&(s=e.$$resource.path(s)),s},e.prototype.$setUID=function(e){var t,n=this.uid||-1,s=this;n!=parseInt(e)&&(this.uid=parseInt(e),this.$absolutePath({nocache:!0}),n>-1?(n=n.toString(),angular.isDefined(this.$mailbox.uidsMap[n])&&(t=this.$mailbox.uidsMap[n],this.$mailbox.uidsMap[e]=t,delete this.$mailbox.uidsMap[n],_.forEach(["from","to","subject"],function(e){s.$mailbox.$messages[t][e]=s[e]}))):this.$mailbox.constructor.selectedFolder&&"draft"==this.$mailbox.constructor.selectedFolder.type&&this.$mailbox.constructor.selectedFolder.$filter())},e.prototype.$formatFullAddresses=function(){var t=this,n=_.map(t.$mailbox.$account.identities,"email");_.forEach(["from","to","cc","bcc","reply-to"],function(s){_.forEach(t[s],function(t){t.name&&t.name!=t.email?(t.full=t.name+" <"+t.email+">",t.name.length<10?t.shortname=t.name:t.name.split(" ").length&&(t.shortname=_.first(_.last(t.name.split(/, */)).split(/ +/)).replace("'",""))):t.email&&(t.full="<"+t.email+">",t.shortname=t.email.split("@")[0]),t.image=e.$avatar(t.email,32),_.indexOf(n,t.email)>=0&&(t.shortname=l("me"))})})},e.prototype.$shortRecipients=function(e){var t=this,n=[],s=0,i=0;return _.forEach(["to","cc","bcc"],function(o){i+=t[o]?t[o].length:0,_.forEach(t[o],function(t,i){se&&n.push(l("and %{0} more...",i-e)),n.join(", ")},e.prototype.$shortAddress=function(e){var t="";return this[e]&&this[e].length>0&&(t=this[e][0].name||this[e][0].email||""),t},e.prototype.allowReplyAll=function(){var e=0;return e=_.reduce(["to","cc"],_.bind(function(e,t){return this[t]?e+this[t].length:e},this),e),!this.isDraft&&e>1},e.prototype.loadUnsafeContent=function(){this.$loadUnsafeContent=!0,delete this.$parts},e.prototype.$content=function(){var t=this,n=[],s=function(i){i.msgclass="msg-attachment-other","UIxMailPartAlternativeViewer"==i.type?s(_.find(i.content,function(e){return i.preferredPart==e.contentType})):angular.isArray(i.content)?("UIxMailPartSignedViewer"==i.type&&1===i["supports-smime"]?t.signed={valid:i.valid,certificate:i.certificates[i.certificates.length-1],message:i.message}:"UIxMailPartEncryptedViewer"==i.type&&(t.encrypted={valid:i.valid},i.valid?t.encrypted.message=l("This message is encrypted"):t.encrypted.message=l("This message can't be decrypted. Please make sure you have uploaded your S/MIME certificate from the mail preferences module.")),_.forEach(i.content,function(e){s(e)})):(angular.isUndefined(i.safeContent)&&(i.safeContent=i.content,t.$hasUnsafeContent|=i.safeContent.indexOf(" unsafe-")>-1),"UIxMailPartHTMLViewer"==i.type?(i.html=!0,t.$loadUnsafeContent||e.$displayRemoteInlineImages?(angular.isUndefined(i.unsafeContent)&&(i.unsafeContent=document.createElement("div"),i.unsafeContent.innerHTML=i.safeContent,angular.forEach(["src","data","classid","background","style"],function(e){var t,n,s,o=i.unsafeContent.querySelectorAll("[unsafe-"+e+"]");for(s=0;s"}),n={to:t},_.forEach(["subject","body"],function(t){var i=new RegExp(t+"=([^&]+)");t="body"==t?"text":t,(s=i.exec(e))&&(n[t]=decodeURIComponent(s[1]))}),_.forEach(["cc","bcc"],function(t){var i=new RegExp(t+"=([^&]+)");(s=i.exec(e))&&(n[t]=_.map(decodeURIComponent(s[1]).split(","),function(e){return"<"+e.trim()+">"}))}),angular.extend(this.editable,n))},e.prototype.$reply=function(){return this.$newDraft("reply")},e.prototype.$replyAll=function(){return this.$newDraft("replyall")},e.prototype.$forward=function(){return this.$newDraft("forward")},e.prototype.$newDraft=function(t){var n=this;return e.$$resource.fetch(this.$absolutePath(),t).then(function(s){var i,o;return e.$log.debug("New "+t+": "+JSON.stringify(s,void 0,2)),i=n.$mailbox.$account.$getMailboxByPath(s.mailboxPath),o=new e(s.accountId,i,s),e.$$resource.fetch(o.$absolutePath({asDraft:!0}),"edit").then(function(s){e.$log.debug("New "+t+": "+JSON.stringify(s,void 0,2)+" original UID: "+n.uid);var i=e.$Preferences.defaults.AuxiliaryMailAccounts[n.$mailbox.$account.id];return i.security&&(i.security.alwaysSign&&(s.sign=!0),i.security.alwaysEncrypt&&(s.encrypt=!0)),angular.extend(o.editable,s),o.origin={message:n,action:t},o})})},e.prototype.$save=function(){var t=this,n=this.editable;return e.$log.debug("save = "+JSON.stringify(n,void 0,2)),e.$$resource.save(this.$absolutePath({asDraft:!0}),n).then(function(n){e.$log.debug("save = "+JSON.stringify(n,void 0,2)),t.$setUID(n.uid),t.$reload(),t.isNew=!1})},e.prototype.$send=function(){var t=this,n=angular.copy(this.editable);return e.$log.debug("send = "+JSON.stringify(n,void 0,2)),e.$$resource.post(this.$absolutePath({asDraft:!0}),"send",n).then(function(n){return"success"==n.status?(angular.isDefined(t.origin)&&(t.origin.action.startsWith("reply")?t.origin.message.isanswered=!0:"forward"==t.origin.action&&(t.origin.message.isforwarded=!0)),n):e.$q.reject(n.data)})},e.prototype.$unwrap=function(t){var n=this;return this.$loaded=e.STATUS.DELAYED_LOADING,e.$timeout(function(){n.$loaded!=e.STATUS.LOADED&&(n.$loaded=e.STATUS.LOADING)},e.STATUS.DELAYED_MS),this.$futureMessageData=t.then(function(t){return 0===n.isread&&(n.isread=!0,n.$mailbox.unseenCount--),e.$timeout(function(){return angular.extend(n,t),n.$formatFullAddresses(),n.$loadUnsafeContent=!1,n.$loaded=e.STATUS.LOADED,n})}),this.$futureMessageData},e.prototype.$omit=function(e){var t={},n=e&&e.privateAttributes;return angular.forEach(this,function(e,s){("constructor"!=s&&"$"!=s[0]||n)&&(t[s]=e)}),t},e.prototype.download=function(){var t,n;return t={uids:[this.uid]},n={filename:this.subject+".zip"},e.$$resource.download(this.$mailbox.id,"saveMessages",t,n)},e.prototype.downloadAttachments=function(){var t;return t={filename:l("attachments")+"-"+this.uid+".zip"},e.$$resource.download(this.$absolutePath(),"archiveAttachments",null,t)}}(),function(){"use strict";function e(){this.show=!1,this.message=null,this.elements=[]}e.$factory=["$document","$timeout","$mdPanel","sgHotkeys",function(t,n,s,i){return angular.extend(e,{$document:t,$timeout:n,$mdPanel:s,sgHotkeys:i}),new e}],e.prototype.setMessage=function(e){this.message=e},e.prototype.registerImage=function(e){this.elements.push(e)},e.prototype.registerHotkeys=function(t){this.keys=[e.sgHotkeys.createHotkey({key:"left",description:l("View previous item"),callback:angular.bind(t,t.previousImage)}),e.sgHotkeys.createHotkey({key:"right",description:l("View next item"),callback:angular.bind(t,t.nextImage)})],_.forEach(this.keys,function(t){e.sgHotkeys.registerHotkey(t)})},e.prototype.showGallery=function(t,n){var s=this,i=e.$mdPanel,o=angular.element(this.message.$content()[n].content).find("img")[0].src,a=_.filter(this.message.attachmentAttrs,function(e){return 0===e.mimetype.indexOf("image/")}),r=_.findIndex(a,function(e){return e.url.indexOf(o)>=0});angular.element(e.$document[0].body).addClass("sg-image-gallery-backdrop");var c=i.newPanelPosition().absolute(),u=i.newPanelAnimation().openFrom(t.target).duration(100).withAnimation(i.animation.FADE),d={attachTo:angular.element(document.body),locals:{lastIndex:a.length-1,images:a,selectedIndex:r,selectedImage:a[r]},bindToController:!0,controller:h,controllerAs:"$panelCtrl",position:c,animation:u,targetEvent:t,fullscreen:!0,hasBackdrop:!0,template:['','
',' '," arrow_back"," ",' image','
',' '," file_download"," ","
",'
',' '," navigate_before"," ",' ',' '," navigate_next"," ","
",'
','
',' ',"
","
","
"].join(""),trapFocus:!0,clickOutsideToClose:!0,escapeToClose:!0,focusOnOpen:!0,onOpenComplete:function(){s.show=!0,_.forEach(e.$document.find("sg-image-gallery")[0].getElementsByClassName("sg-image-thumbnail"),function(t){var n=t.children[0];angular.element(n).one("load",function(){n.naturalWidth0&&this.selectImage(this.selectedIndex-1)}}},angular.module("SOGo.MailerUI").factory("ImageGallery",e.$factory)}(),function(){"use strict";function e(e){this.$account=e}e.$factory=["$q","$timeout","$log","sgSettings","Resource","Message","Mailbox","sgMailbox_PRELOAD",function(t,n,s,i,o,a,r,l){return angular.extend(e,{$q:t,$timeout:n,$log:s,$$resource:new o(i.activeUser("folderURL")+"Mail",i.activeUser()),$Message:r,selectedFolder:null,PRELOAD:l}),e}];try{angular.module("SOGo.MailerUI")}catch(e){angular.module("SOGo.MailerUI",["SOGo.Common"])}angular.module("SOGo.MailerUI").constant("sgMailbox_PRELOAD",{LOOKAHEAD:50,SIZE:100}).factory("VirtualMailbox",e.$factory),e.$absolutePath=function(e){return[e,"virtual"].join("/")},e.prototype.init=function(e){this.$isLoading=!1,this.$mailboxes=[],this.uidsMap={},angular.extend(this,e),this.id=this.$id()},e.prototype.setMailboxes=function(e){this.$mailboxes=e,_.forEach(this.$mailboxes,function(e){e.$messages=[],e.uidsMap={}})},e.prototype.startSearch=function(t,n){var s=this,i=e.$q.when();this.$isLoading=!0,_.forEach(this.$mailboxes,function(o){i=i.then(function(){if(s.$isLoading)return e.$log.debug("searching mailbox "+o.path),o.$filter({sort:"date",asc:!1,match:t},n)})}),i.finally(function(){s.$isLoading=!1})},e.prototype.stopSearch=function(){e.$log.debug("stopping search..."),this.$isLoading=!1},e.prototype.selectFolder=function(){},e.prototype.resetSelectedMessage=function(){_.forEach(this.$mailboxes,function(e){delete e.selectedMessage})},e.prototype.hasSelectedMessage=function(){return angular.isDefined(_.find(this.$mailboxes,function(e){return angular.isDefined(e.selectedMessage)}))},e.prototype.isSelectedMessage=function(e,t){return angular.isDefined(_.find(this.$mailboxes,function(n){return n.path==t&&n.selectedMessage==e}))},e.prototype.getLength=function(){var e=0;return angular.isDefined(this.$mailboxes)?(_.forEach(this.$mailboxes,function(t){e+=t.$messages.length}),e):e},e.prototype.getItemAtIndex=function(e){var t,n,s,i,o;if(angular.isDefined(this.$mailboxes)&&e>=0)for(t=0,n=0;n0){var s=_.map(t,"uid");o.push(t);var r=e.$$resource.post(n,"addOrRemoveLabel",_.assign(i,{msgUIDs:s}));a.push(r)}}),e.$q.all(a).then(function(){return _.flatten(o)})},e.prototype.$deleteMessages=function(t){var n=[];return _.forEach(t,function(e,t){if(e.length>0){var s=e[0].$mailbox.$deleteMessages(e);n.push(s)}}),e.$q.all(n)},e.prototype.$markOrUnMarkMessagesAsJunk=function(t){var n=[];return _.forEach(t,function(e,t){if(e.length>0){var s=e[0].$mailbox.$markOrUnMarkMessagesAsJunk(e);n.push(s)}}),e.$q.all(n)},e.prototype.$copyMessages=function(t,n){var s=[];return _.forEach(t,function(e,t){if(e.length>0){var i=e[0].$mailbox.$copyMessages(e,n);s.push(i)}}),e.$q.all(s)},e.prototype.$moveMessages=function(t,n){var s=[];return _.forEach(t,function(e,t){if(e.length>0){var i=e[0].$mailbox.$moveMessages(e,n);s.push(i)}}),e.$q.all(s)}}(),function(){"use strict";e.$inject=["$window","$scope","$timeout","$q","$state","$mdDialog","$mdToast","stateAccounts","stateAccount","stateMailbox","sgHotkeys","encodeUriFilter","sgSettings","sgFocus","Dialog","Preferences","Account","Mailbox"];function e(e,t,n,s,i,o,a,r,c,u,d,h,g,f,m,p,$,b){var v=this,y=angular.element(e.document).find("title").attr("sg-default")||"SOGo",M=[];this.$onInit=function(){e.$mailboxController=v,this.service=b,this.accounts=r,this.account=c,this.selectedFolder=u,this.messageDialog=null,this.mode={search:!1,multiple:0},(n=M).push(d.createHotkey({key:l("hotkey_search"),description:l("Search"),callback:v.searchMode})),n.push(d.createHotkey({key:l("hotkey_compose"),description:l("Write a new message"),callback:function(e){null===v.messageDialog&&v.newMessage(e)}})),n.push(d.createHotkey({key:l("hotkey_junk"),description:l("Mark the selected messages as junk"),callback:v.markOrUnMarkMessagesAsJunk})),n.push(d.createHotkey({key:"space",description:l("Toggle item"),callback:v.toggleMessageSelection})),n.push(d.createHotkey({key:"shift+space",description:l("Toggle range of items"),callback:v.toggleMessageSelection})),n.push(d.createHotkey({key:"up",description:l("View next item"),callback:C,preventInClass:["sg-mail-part"]})),n.push(d.createHotkey({key:"down",description:l("View previous item"),callback:w,preventInClass:["sg-mail-part"]})),n.push(d.createHotkey({key:"shift+up",description:l("Add next item to selection"),callback:I,preventInClass:["sg-mail-part"]})),n.push(d.createHotkey({key:"shift+down",description:l("Add previous item to selection"),callback:E,preventInClass:["sg-mail-part"]})),_.forEach(["backspace","delete"],function(e){n.push(d.createHotkey({key:e,description:l("Delete selected message or folder"),callback:v.confirmDeleteSelectedMessages}))}),_.forEach(n,function(e){d.registerHotkey(e)});var n;angular.element(e).on("beforeunload",x),t.$on("$destroy",function(){angular.element(e).off("beforeunload",x),_.forEach(M,function(e){d.deregisterHotkey(e)})}),t.$watch(function(){return v.selectedFolder.unseenCount},function(t){var n=y+" - ";t&&(n+="("+t+") "),n+=v.selectedFolder.$displayName,e.document.title=n})};function x(e){return v.selectedFolder.$compact()}this.centerIsClose=function(e){return this.selectedFolder.hasSelectedMessage()&&!!e},this.sort=function(e){v.selectedFolder.$filter({sort:e})},this.sortedBy=function(e){return b.$query.sort==e},this.searchMode=function(){v.mode.search=!0,f("search")},this.cancelSearch=function(){v.mode.search=!1,v.selectedFolder.$filter().then(function(){v.selectedFolder.selectedMessage&&n(function(){v.selectedFolder.$topIndex=v.selectedFolder.uidsMap[v.selectedFolder.selectedMessage]})})},this.composeWindowEnabled=function(){return p.defaults.SOGoMailComposeWindowEnabled},this.newMessage=function(t,n){var s;null===v.messageDialog&&(n||"popup"==p.defaults.SOGoMailComposeWindow?function(){var t=[g.baseURL(),"UIxMailPopupView#!/Mail",v.account.id,h(h(v.selectedFolder.path)),"new"].join("/"),n=v.selectedFolder.$id()+"/"+Math.random(0,1e3);console.debug(t),e.open(t,n,["width=680","height=520","resizable=1","scrollbars=1","toolbar=0","location=0","directories=0","status=0","menubar=0","copyhistory=0"].join(","))}():(s=v.account.$newMessage(),v.messageDialog=o.show({parent:angular.element(document.body),targetEvent:t,clickOutsideToClose:!1,escapeToClose:!1,templateUrl:"UIxMailEditor",controller:"MessageEditorController",controllerAs:"editor",locals:{stateAccount:v.account,stateMessage:s}}).catch(_.noop).finally(function(){v.messageDialog=null})))};function C(e){var t=v.selectedFolder.$selectedMessageIndex();return angular.isDefined(t)?(t--,v.selectedFolder.$topIndex>0&&v.selectedFolder.$topIndex--):(t=v.selectedFolder.getLength()-1,v.selectedFolder.$topIndex=v.selectedFolder.getLength()),t>-1&&v.selectMessage(v.selectedFolder.$messages[t]),e.preventDefault(),t}function w(e){var t=v.selectedFolder.$selectedMessageIndex();return angular.isDefined(t)?(t++,v.selectedFolder.$topIndex=0&&v.toggleMessageSelection(e,v.selectedFolder.$messages[t])}function E(e){var t;v.selectedFolder.hasSelectedMessage()&&(t=w(e))>=0&&v.toggleMessageSelection(e,v.selectedFolder.$messages[t])}this.selectMessage=function(e){b.$virtualMode?i.go("mail.account.virtualMailbox.message",{mailboxId:h(e.$mailbox.path),messageId:e.uid}):i.go("mail.account.mailbox.message",{messageId:e.uid})},this.toggleMessageSelection=function(e,t){var n,s,i,o=v.selectedFolder;if(t||(t=o.$selectedMessage()),!t)return!0;if(t.selected=!t.selected,v.mode.multiple+=t.selected?1:-1,e.shiftKey&&o.$selectedCount()>1){for(s=(n=o.uidsMap[t.uid])-2;s>=0&&!o.$messages[s].selected;)s--;if(s<0)for(s=n+2;s=0&&s0&&(a-=1,s=v.selectedFolder.$messages[a]),t0&&(v.messageDialog=m.confirm(l("Confirmation"),l("Are you sure you want to delete the selected messages?"),{ok:l("Delete")}).then(function(){var e=v.selectedFolder.hasSelectedMessage();v.selectedFolder.$deleteMessages(t).then(function(t){b.$virtualMode?e&&i.go("mail.account.virtualMailbox"):A(e,t)},function(n){v.messageDialog=m.confirm(l("Warning"),l("The messages could not be moved to the trash folder. Would you like to delete them immediately?"),{ok:l("Delete")}).then(function(){v.selectedFolder.$deleteMessages(t,{withoutTrash:!0}).then(function(t){b.$virtualMode?e&&i.go("mail.account.virtualMailbox"):A(e,t)})})})}).finally(function(){v.messageDialog=null})),e.preventDefault()},this.markOrUnMarkMessagesAsJunk=function(){var e=v.selectedFolder.hasSelectedMessage(),t=v.selectedFolder.$selectedMessages();0===_.size(t)&&e&&(t=[v.selectedFolder.$selectedMessage()]),_.size(t)>0&&v.selectedFolder.$markOrUnMarkMessagesAsJunk(t).then(function(){var n="/"+v.account.id+"/folderINBOX";"junk"!=v.selectedFolder.type&&(n="/"+v.account.$getMailboxByType("junk").id),v.selectedFolder.$moveMessages(t,n).then(function(t){b.$virtualMode?e&&i.go("mail.account.virtualMailbox"):A(e,t)})})},this.copySelectedMessages=function(e){var t=v.selectedFolder.$selectedMessages();_.size(t)>0&&v.selectedFolder.$copyMessages(t,"/"+e).then(function(){a.show(a.simple().content(l("%{0} message(s) copied",v.selectedFolder.$selectedCount())).position("top right").hideDelay(2e3))})},this.moveSelectedMessages=function(e){var t=v.selectedFolder.hasSelectedMessage(),n=v.selectedFolder.$selectedMessages(),s=v.selectedFolder.$selectedCount();_.size(n)>0&&v.selectedFolder.$moveMessages(n,"/"+e).then(function(e){a.show(a.simple().content(l("%{0} message(s) moved",s)).position("top right").hideDelay(2e3)),b.$virtualMode?t&&i.go("mail.account.virtualMailbox"):A(t,e)})},this.selectAll=function(){var e=0;_.forEach(S(),function(t){for(var n=0,s=t.$messages.length;n0&&v.selectedFolder.$flagMessages(e,"\\Flagged","add").then(function(e){_.forEach(e,function(e){e.isflagged=!0})})},this.markSelectedMessagesAsUnread=function(){var e=v.selectedFolder.$selectedMessages();_.size(e)>0&&v.selectedFolder.$flagMessages(e,"seen","remove").then(function(e){_.forEach(e,function(e){e.isread&&e.$mailbox.unseenCount++,e.isread=!1})})},this.markSelectedMessagesAsRead=function(){var e=v.selectedFolder.$selectedMessages();_.size(e)>0&&v.selectedFolder.$flagMessages(e,"seen","add").then(function(e){_.forEach(e,function(e){e.isread||e.$mailbox.unseenCount--,e.isread=!0})})}}angular.module("SOGo.MailerUI").controller("MailboxController",e),t.$inject=["$delegate"];function t(e){return e[0].controller.prototype.resetScroll=function(){"messagesList"==this.$element.parent().attr("id")?this.updateSize():this.scrollTo(0)},e}angular.module("material.components.virtualRepeat").decorator("mdVirtualRepeatContainerDirective",t)}(),function(){"use strict";e.$inject=["$scope","$state","$transitions","$timeout","$window","$mdDialog","$mdToast","sgFocus","encodeUriFilter","Dialog","sgSettings","sgHotkeys","Account","Mailbox","VirtualMailbox","User","Preferences","stateAccounts"];function e(e,t,n,s,i,o,a,r,c,u,d,h,g,f,m,p,$,b){var v,y,M=this,x=[];this.$onInit=function(){this.service=f,this.accounts=b,this.currentSearchParam="",this.search={options:{"":"",subject:l("Enter Subject"),from:l("Enter From"),to:l("Enter To"),cc:l("Enter Cc"),body:l("Enter Body")},subfolders:1,match:"AND",params:[]},this.showSubscribedOnly=$.defaults.SOGoMailShowSubscribedFoldersOnly,this.refreshUnseenCount(),t=x,_.forEach(["backspace","delete"],function(e){t.push(h.createHotkey({key:e,description:l("Delete selected message or folder"),callback:function(){f.selectedFolderController&&f.selectedFolder&&!f.selectedFolder.hasSelectedMessage()&&f.selectedFolderController.confirmDelete(f.selectedFolder)}}))}),_.forEach(t,function(e){h.registerHotkey(e)});var t;e.$on("$destroy",function(){_.forEach(x,function(e){h.deregisterHotkey(e)})})};this.hideAdvancedSearch=function(){M.service.$virtualPath=!1,M.service.$virtualMode=!1,v=M.accounts[0],y=M.searchPreviousMailbox,t.go("mail.account.mailbox",{accountId:v.id,mailboxId:c(y.path)})},this.toggleAdvancedSearch=function(){if(f.selectedFolder.$isLoading)M.virtualMailbox.stopSearch();else{var e,n=[],s=function(e){_.forEach(e,function(e){n.push(e),e.children&&e.children.length>0&&s(e.children)})};M.virtualMailbox=new m(M.accounts[0]),f.$virtualMode||(M.searchPreviousMailbox=f.selectedFolder),f.selectedFolder=M.virtualMailbox,f.$virtualMode=!0,angular.isDefined(f.$virtualPath)?(e=M.accounts[0].$getMailboxByPath(f.$virtualPath),n.push(e),M.search.subfolders&&e.children.length&&s(e.children)):n=M.accounts[0].$flattenMailboxes(),M.virtualMailbox.setMailboxes(n),M.virtualMailbox.startSearch(M.search.match,M.search.params),"mail.account.virtualMailbox"!=t.$current.name&&t.go("mail.account.virtualMailbox",{accountId:M.accounts[0].id})}},this.addSearchParam=function(e){return M.currentSearchParam=e,r("advancedSearch"),!1},this.newSearchParam=function(e){if(e.length&&M.currentSearchParam.length){var t=0,n=M.currentSearchParam;return e.startsWith("!")&&(t=1,e=e.substring(1).trim()),M.currentSearchParam="",{searchBy:n,searchInput:e,negative:t}}},this.toggleAccountState=function(e){e.$expanded=!e.$expanded,e.$flattenMailboxes({reload:!0,saveState:!0}),s(function(){angular.element(i).triggerHandler("resize")},150)},this.subscribe=function(e){o.show({templateUrl:e.id+"/subscribe",controller:t,controllerAs:"subscriptions",clickOutsideToClose:!0,escapeToClose:!0,locals:{srcAccount:e}}).finally(function(){e.$getMailboxes({reload:!0})}),t.$inject=["$scope","$mdDialog","srcAccount"];function t(e,t,n){var s=this;s.loading=!0,s.filter={name:""},s.account=new g({id:n.id,name:n.name}),s.close=function(){t.hide()},s.account.$getMailboxes({reload:!0,all:!0}).then(function(){s.loading=!1})}},this.newFolder=function(e){u.prompt(l("New Folder..."),l("Enter the new name of your folder")).then(function(t){e.$newMailbox(e.id,t).then(function(){},function(e,n){u.alert(l('An error occured while creating the mailbox "%{0}".',t),l(e.error))})})},this.delegate=function(e){o.show({templateUrl:e.id+"/delegation",controller:t,controllerAs:"delegate",clickOutsideToClose:!0,escapeToClose:!0,locals:{User:p,account:e}}),t.$inject=["$scope","$mdDialog","User","account"];function t(e,t,n,s){var i=this;i.users=s.delegates,i.account=s,i.userToAdd="",i.searchText="",i.userFilter=function(e){return n.$filter(e,s.delegates)},i.closeModal=function(){t.hide()},i.removeUser=function(e){s.$removeDelegate(e.uid).catch(function(e,t){u.alert(l("Warning"),l("An error occured please try again."))})},i.addUser=function(e){e&&s.$addDelegate(e).then(function(){i.userToAdd="",i.searchText=""},function(e){u.alert(l("Warning"),e)})}}},this.refreshUnseenCount=function(){var e,t=i.unseenCountFolders;_.forEach(M.accounts,function(e){_.includes(t,e.id+"/folderINBOX")||t.push(e.id+"/folderINBOX"),_.forEach(e.$$flattenMailboxes,function(e){angular.isDefined(e.unseenCount)&&!_.includes(t,e.id)&&t.push(e.id)})}),g.$$resource.post("","unseenCount",{mailboxes:t}).then(function(e){_.forEach(M.accounts,function(t){_.forEach(t.$$flattenMailboxes,function(t){e[t.id]&&(t.unseenCount=e[t.id])})})}),(e=$.defaults.SOGoRefreshViewCheck)&&"manually"!=e&&s(M.refreshUnseenCount,1e3*e.timeInterval())},this.isDroppableFolder=function(e,t){return t.id!=e.id&&!t.isNoSelect()},this.dragSelectedMessages=function(e,n,s){var i,o,r,c,u,d;i="/"+n.id,0===(o=e.$selectedMessages()).length&&(o=[e.$selectedMessage()]),r=_.map(o,"uid"),c=e.selectedMessage&&r.indexOf(e.selectedMessage)>=0,"copy"==s?(u=e.$copyMessages(o,i),d=l("%{0} message(s) copied",o.length)):(u=e.$moveMessages(o,i),d=l("%{0} message(s) moved",o.length)),u.then(function(){c&&t.go("mail.account.mailbox"),a.show(a.simple().content(d).position("top right").hideDelay(2e3))})}}angular.module("SOGo.MailerUI").controller("MailboxesController",e)}(),function(){"use strict";e.$inject=["$window","$scope","$state","$mdMedia","$mdDialog","sgConstant","stateAccounts","stateAccount","stateMailbox","stateMessage","sgHotkeys","encodeUriFilter","sgSettings","ImageGallery","sgFocus","Dialog","Preferences","Calendar","Component","Account","Mailbox","Message"];function e(e,t,n,s,i,o,a,r,c,u,d,h,g,f,m,p,$,b,v,y,M,x){var C=this,w=[];this.$onInit=function(){e.$messageController=C,f.setMessage(u),this.$state=n,this.accounts=a,this.account=r,this.mailbox=c,this.message=u,this.service=x,this.tags={searchText:"",selected:""},this.showFlags=u.flags&&u.flags.length>0,this.$showDetailedRecipients=!1,C.showRawSource=!1,(s=w).push(d.createHotkey({key:l("hotkey_reply"),description:l("Reply to the message"),callback:E(angular.bind(C,C.reply))})),s.push(d.createHotkey({key:l("hotkey_replyall"),description:l("Reply to sender and all recipients"),callback:E(angular.bind(C,C.replyAll))})),s.push(d.createHotkey({key:l("hotkey_forward"),description:l("Forward selected message"),callback:E(angular.bind(C,C.forward))})),s.push(d.createHotkey({key:l("hotkey_flag"),description:l("Flagged"),callback:E(angular.bind(u,u.toggleFlag))})),_.forEach(["backspace","delete"],function(e){s.push(d.createHotkey({key:e,callback:E(function(e){0===C.mailbox.$selectedCount()&&C.deleteMessage(),e.preventDefault()})}))}),_.forEach(s,function(e){d.registerHotkey(e)});var s;e.opener?(t.$watchCollection(function(){return C.message.flags},function(e,t){var n;(e||t)&&(n=S()).messageCtrl&&n.messageCtrl.service.$timeout(function(){n.messageCtrl.showFlags=!0,n.messageCtrl.message.flags=e})}),t.$watch(function(){return C.message.isflagged},function(e,t){var n=S();n.mailboxCtrl&&n.mailboxCtrl.service.$timeout(function(){_.find(n.mailboxCtrl.selectedFolder.$messages,{uid:C.message.uid}).isflagged=e})})):t.$watchCollection(function(){return C.message.flags},function(e,t){var n,s,i;(e||t)&&(n=e||[],s=t||[],_.forEach(n,function(e,t){angular.isObject(e)&&(n[t]=e.name)}),n.length>s.length?(i=_.difference(n,s),_.forEach(i,function(e){C.message.addTag(e)})):n.length0&&(t.mailbox.messageDialog=arguments[0]),t.mailbox.messageDialog):null}function E(e){return function(){if(null===I())return e.apply(C,arguments)}}function S(){var t,n,s={};return e.opener&&e.opener.$mailboxController&&e.opener.$mailboxController.selectedFolder.$id()==c.$id()&&(n=e.opener.$mailboxController,s.mailboxCtrl=n,e.opener.$messageController&&e.opener.$messageController.message.uid==u.uid&&(t=e.opener.$messageController,s.messageCtrl=t)),s}this.addFlags=function(e){this.showFlags=!0,m("flags")},this.toggleDetailedRecipients=function(e){this.$showDetailedRecipients=!this.$showDetailedRecipients,e.stopPropagation(),e.preventDefault()},this.filterMailtoLinks=function(e){var t;"A"==e.target.tagName&&"href"in e.target.attributes&&(t=e.target.attributes.href.value,/^mailto:([^\?]+)/.exec(t)&&(delete e.target.attributes.target,this.newMessage(e,t)))},this.deleteMessage=function(){var e,t,i,a,r,l=S();l.messageCtrl?(e=l.mailboxCtrl.selectedFolder,t=l.messageCtrl.message,i=l.messageCtrl.$state):(e=c,t=u,i=n),e.$deleteMessages([t]).then(function(n){var l=n;if(t=null,angular.isDefined(i)){n>0&&(l-=1,a=e.$messages[l]),ne.$lastVisibleIndex&&(e.$topIndex=l-(e.$lastVisibleIndex-e.$topIndex))):i.go("mail.account.mailbox").then(function(){t=null,delete e.selectedMessage})}catch(e){}}C.closePopup()})};function A(e,t){null===I()&&I(i.show({parent:angular.element(document.body),targetEvent:e,clickOutsideToClose:!1,escapeToClose:!1,templateUrl:"UIxMailEditor",controller:"MessageEditorController",controllerAs:"editor",locals:{stateAccount:C.account,stateMessage:t}}).catch(_.noop).finally(function(){I(null),C.closePopup()}))}this._showMailEditorInPopup=function(e){return!g.isPopup&&"popup"==$.defaults.SOGoMailComposeWindow&&(this.openInPopup(e),!0)},this.close=function(){n.go("mail.account.mailbox").then(function(){C.message=null,delete c.selectedMessage})},this.reply=function(e){this._showMailEditorInPopup("reply")||A(e,this.message.$reply())},this.replyAll=function(e){this._showMailEditorInPopup("replyall")||A(e,this.message.$replyAll())},this.forward=function(e){this._showMailEditorInPopup("forward")||A(e,this.message.$forward())},this.edit=function(e){this._showMailEditorInPopup("edit")||this.message.$editableContent().then(function(){A(e,C.message)})},this.openInPopup=function(t){var n=[g.baseURL(),"UIxMailPopupView#!/Mail",this.message.accountId,h(h(this.message.$mailbox.path)),this.message.uid].join("/"),s=this.message.$absolutePath();t&&(n+="/"+t),e.open(n,s,["width=680","height=520","resizable=1","scrollbars=1","toolbar=0","location=0","directories=0","status=0","menubar=0","copyhistory=0"].join(","))},this.closePopup=function(){e.document.body.classList.contains("popup")&&e.close()},this.newMessage=function(e,t){e.stopPropagation(),e.preventDefault(),this.account.$newMessage({mailto:t}).then(function(t){A(e,t)})},this.toggleRawSource=function(e){this.showRawSource||this.message.$rawSource?this.showRawSource=!this.showRawSource:x.$$resource.post(this.message.id,"viewsource").then(function(e){C.message.$rawSource=e,C.showRawSource=!0})},this.print=function(t){e.print()},this.convertToEvent=function(e){return F(e,"appointment")},this.convertToTask=function(e){return F(e,"task")};function F(e,t){C.message.$plainContent().then(function(n){var s={pid:b.$defaultCalendar(),type:t,summary:n.subject,comment:n.content},o=new v(s),a=[g.activeUser("folderURL"),"Calendar","UIx"+t.capitalize()+"EditorTemplate"].join("/");return i.show({parent:angular.element(document.body),targetEvent:e,clickOutsideToClose:!0,escapeToClose:!0,templateUrl:a,controller:"ComponentEditorController",controllerAs:"editor",locals:{stateComponent:o}})})}}angular.module("SOGo.MailerUI").controller("MessageController",e)}(),function(){"use strict";e.$inject=["$scope","$window","$stateParams","$mdConstant","$mdUtil","$mdDialog","$mdToast","FileUploader","stateAccount","stateMessage","encodeUriFilter","$timeout","Dialog","AddressBook","Card","Preferences"];function e(e,t,n,s,i,o,a,r,c,u,d,h,g,f,m,p){var $=this;this.$onInit=function(){$.addRecipient=S,$.autocomplete={to:{},cc:{},bcc:{}},$.autosave=null,$.autosaveDrafts=A,$.cancel=x,$.contactFilter=E,$.isFullscreen=!1,$.hideBcc=0===u.editable.bcc.length,$.hideCc=0===u.editable.cc.length,$.identities=_.uniq(_.map(c.identities,"full")),$.message=u,$.recipientSeparatorKeys=[s.KEY_CODE.ENTER,s.KEY_CODE.TAB,s.KEY_CODE.COMMA,s.KEY_CODE.SEMICOLON],$.removeAttachment=M,$.save=C,$.send=w,$.sendState=!1,$.toggleFullscreen=I,$.uploader=new r({url:$.message.$absolutePath({asDraft:!0,withResourcePath:!0})+"/save",autoUpload:!0,alias:"attachments",removeAfterUpload:!1,onSuccessItem:function(e,t,n,s){$.message.$setUID(t.uid),$.message.$reload({asDraft:!1}),e.inlineUrl=t.lastAttachmentAttrs[0].url},onCancelItem:function(e,t,n,s){$.message.$deleteAttachment(e.file.name),this.removeFromQueue(e)},onErrorItem:function(e,t,n,s){a.show(a.simple().content(l('Error while uploading the file "%{0}":',e.file.name)+" "+(t.message?l(t.message):"")).position("top right").action(l("OK")).hideDelay(!1)),this.removeFromQueue(e)}}),p.defaults.SOGoMailAutoSave&&($.autosave=h($.autosaveDrafts,1e3*p.defaults.SOGoMailAutoSave*60)),$.localeCode=p.defaults.LocaleCode,e.$on("$destroy",function(){$.uploader.destroy()}),"reply"==n.actionName?u.$reply().then(function(e){$.message=e,$.hideCc=!e.editable.cc||0===e.editable.cc.length,$.hideBcc=!e.editable.bcc||0===e.editable.bcc.length,v()}):"replyall"==n.actionName?u.$replyAll().then(function(e){$.message=e,$.hideCc=!e.editable.cc||0===e.editable.cc.length,$.hideBcc=!e.editable.bcc||0===e.editable.bcc.length,v()}):"forward"==n.actionName?u.$forward().then(function(e){$.message=e,v(),y()}):angular.isDefined(u)&&($.message=u,v(),y())};function b(){var e,n={};try{t.opener&&"$mailboxController"in t.opener&&"selectedFolder"in t.opener.$mailboxController&&("draft"==t.opener.$mailboxController.selectedFolder.type?(n.draftMailboxCtrl=t.opener.$mailboxController,"$messageController"in t.opener&&t.opener.$messageController.message.uid==u.uid&&(n.draftMessageCtrl=t.opener.$messageController)):u.origin&&(e=u.origin.message,t.opener.$mailboxController.selectedFolder.$id()==e.$mailbox.$id()&&(n.originMailboxCtrl=t.opener.$mailboxController)))}catch(e){}return n}function v(){$.uploader.url=$.message.$absolutePath({asDraft:!0,withResourcePath:!0})+"/save"}function y(){var e,t,n,s=$.message.editable.attachmentAttrs;if(s)for(e=0;e',' '," {{$ctrl.mailbox.$icon}}"," ",'

',' ',' ',"

",' ',' '," ",' more_vert'].join(""),controller:"sgMailboxListItemController",controllerAs:"$ctrl"}})}(),function(){e.$inject=["$scope","$element","Mailbox"];function e(e,t,n){var s=this;this.$onInit=function(){var t=["uid","isread","isflagged","flags","subject"];this.MailboxService=n,"draft"==n.selectedFolder.type&&t.push("subject"),e.$watch(function(){return s.message?[_.pick(s.message,t)]:null},function(e,t){s.message&&s.onUpdate()},!0)},this.onUpdate=function(){this.message.isread?t.removeClass("unread"):t.addClass("unread"),n.selectedFolder.isSelectedMessage(this.message.uid,this.message.$mailbox.path)?t.addClass("md-default-theme md-accent md-bg md-hue-2"):t.removeClass("md-default-theme md-accent md-bg md-hue-2")},this.setVisibility=function(e,t){t?e.classList.remove("ng-hide"):e.classList.add("ng-hide")}}angular.module("SOGo.MailerUI").controller("sgMessageListItemController",e).directive("sgMessageListItem",function(){return{restrict:"C",scope:{},bindToController:{message:"=sgMessage"},controller:"sgMessageListItemController"}})}(),function(){e.$inject=["$scope","$element","$parse","$state","$mdUtil","$mdToast","Mailbox","Message","encodeUriFilter"];function e(e,t,n,s,i,o,a,r,l){var c=this;this.$postLink=function(){var n,s,o,l;this.parentController=e.parentController,o=this.parentController.onUpdate,l=this.parentController.setVisibility,_.forEach(t.find("div"),function(e){e.classList.contains("sg-tile-content")?n=angular.element(e):e.classList.contains("sg-tile-icons")&&(s=angular.element(e))}),this.priorityIconElement=n.find("md-icon")[0],a.$virtualMode&&(this.mailboxNameElement=n.find("span")[0],this.mailboxNameElement.classList.remove("ng-hide")),this.senderElement=n.find("span")[1],_.forEach(n.find("div"),function(e){e.classList.contains("sg-tile-subject")?c.subjectElement=e:e.classList.contains("sg-tile-size")?c.sizeElement=e:e.classList.contains("sg-tile-date")&&(c.dateElement=e)}),_.forEach(s.find("md-icon"),function(e){"star"==e.textContent?c.flagIconElement=e:"reply"==e.textContent?c.answerIconElement=e:"forward"==e.textContent?c.forwardIconElement=e:"attach_file"==e.textContent&&(c.attachmentIconElement=e)}),this.parentController.onUpdate=function(){var e;c.message=c.parentController.message;var n=i.nodesToArray(t[0].querySelectorAll(".sg-category"));for(_.forEach(n,function(e){t[0].removeChild(e)}),e=0;e');a.css("left",3*e+"px"),a.css("background-color",c.service.$tags[s][1]),t.prepend(a)}}c.mailboxNameElement&&(c.mailboxNameElement.innerHTML=c.message.$mailbox.$displayName),"sent"==c.MailboxService.selectedFolder.type?c.senderElement.innerHTML=c.message.$shortAddress("to").encodeEntities():c.senderElement.innerHTML=c.message.$shortAddress("from").encodeEntities(),c.message.priority&&c.message.priority.level<3?(c.priorityIconElement.classList.remove("ng-hide"),c.message.priority.level<2?c.priorityIconElement.classList.add("md-warn"):c.priorityIconElement.classList.remove("md-warn")):c.priorityIconElement.classList.add("ng-hide"),c.subjectElement.innerHTML=c.message.subject.encodeEntities(),c.sizeElement.innerHTML=c.message.size,c.dateElement.innerHTML=c.message.relativedate,l(c.flagIconElement,c.message.isflagged),l(c.answerIconElement,c.message.isanswered),l(c.forwardIconElement,c.message.isforwarded),l(c.attachmentIconElement,c.message.hasattachment),angular.bind(c.parentController,o)()},this.service=r,this.MailboxService=a}}angular.module("SOGo.MailerUI").controller("sgMessageListItemMainController",e).directive("sgMessageListItemMain",function(){return{restrict:"C",require:"^^sgMessageListItem",scope:{},template:['
','
',"
",' \x3c!-- mailbox --\x3e',' error'," \x3c!-- sender or recipient --\x3e","
",'
\x3c!-- date --\x3e
',"
",'
','
\x3c!-- subject --\x3e
','
\x3c!-- size --\x3e
',"
","
",'
',' star',' reply',' forward',' attach_file',"
",'
',' \x3c!-- message loading progress --\x3e',"
"].join(""),link:function(e,t,n,s){e.parentController=s},controller:"sgMessageListItemMainController",controllerAs:"$ctrl"}})}(),function(){"use strict";e.$inject=["$element","ImageGallery"];function e(e,t){var n=this;this.$postLink=function(){t.registerImage(e),e.on("click",this.showImage)},this.showImage=function(e){"IMG"==e.target.tagName&&t.showGallery(e,n.partIndex)}}angular.module("SOGo.MailerUI").directive("sgZoomableImage",function(){return{restrict:"A",bindToController:{partIndex:"=sgZoomableImage"},controller:e}})}(); //# sourceMappingURL=Mailer.services.js.map \ No newline at end of file diff --git a/UI/WebServerResources/js/Mailer.services.js.map b/UI/WebServerResources/js/Mailer.services.js.map index bdcdb5a43..c373c307c 100644 --- a/UI/WebServerResources/js/Mailer.services.js.map +++ b/UI/WebServerResources/js/Mailer.services.js.map @@ -1 +1 @@ -{"version":3,"sources":["Mailer/Account.service.js","Mailer/Mailbox.service.js","Mailer/Message.service.js","Mailer/sgImageGallery.service.js","Mailer/VirtualMailbox.service.js","Mailer/MailboxController.js","Mailer/MailboxesController.js","Mailer/MessageController.js","Mailer/MessageEditorController.js","Mailer/sgAccountSection.directive.js","Mailer/sgIMIP.directive.js","Mailer/sgMailboxListItem.directive.js","Mailer/sgMessageListItem.directive.js","Mailer/sgMessageListItemMain.directive.js","Mailer/sgZoomableImage.directive.js"],"names":["Account","futureAccountData","then","angular","extend","this","_","forEach","identities","identity","fullName","full","email","$log","debug","JSON","stringify","undefined","$factory","$q","$timeout","Settings","Resource","Preferences","Mailbox","Message","$$resource","activeUser","$Preferences","$Mailbox","$Message","module","e","factory","$findAll","data","$unwrapCollection","fetch","o","collection","i","id","$accounts","prototype","getLength","$flattenMailboxes","length","getItemAtIndex","index","expandedMailboxes","$getMailboxes","options","_this","$mailboxes","reload","$find","$expanded","expandedFolders","_visit","mailboxes","indexOf","children","settings","Mail","ExpandedFolders","isString","fromJson","warn","when","allMailboxes","push","all","$$flattenMailboxes","saveState","account","reduce","mailbox","post","$getMailboxByType","type","_find","find","$getMailboxByPath","path","$newMailbox","name","toString","$certificate","security","hasCertificate","$$certificate","reject","$removeCertificate","updateQuota","percent","description","Math","round","usedSpace","maxQuota","l","formatted","$quota","$newMessage","accountId","mailboxPath","message","$absolutePath","asDraft","accountDefaults","defaults","AuxiliaryMailAccounts","alwaysSign","sign","alwaysEncrypt","encrypt","editable","isNew","mailto","isObject","$parseMailto","$addDelegate","user","deferred","defer","param","uid","map","delegates","resolve","users","status","promise","$removeDelegate","splice","futureMailboxData","$account","init","newMailboxData","create","$unwrap","Acl","PRELOAD","$$Acl","$query","sort","asc","selectedFolder","$refreshTimeout","$virtualMode","$virtualPath","SortingState","parseInt","constant","LOOKAHEAD","SIZE","createMailboxes","level","quotas","split","component","asCSSIdentifier","join","isUndefined","uidsMap","headers","$isLoading","$messages","$id","$acl","$displayName","$isEditable","isEditable","$isSpecial","$icon","$isNoInferiors","isNoInferiors","$shadowData","$omit","selectFolder","$lastVisibleIndex","max","$loadMessage","$selectedMessages","filter","selected","$selectedCount","isSelectedMessage","messageId","selectedMessage","$selectedMessage","$selectedMessageIndex","hasSelectedMessage","isDefined","$filter","sortingAttributes","filters","unseenCount","cancel","searchInput","secondFilter","match","searchBy","copy","refreshViewCheck","SOGoRefreshViewCheck","f","bind","timeInterval","endIndex","uids","futureHeadersData","startIndex","loaded","subject","min","loading","$unwrapHeaders","flags","isNoSelect","getClassName","base","$rename","findParent","parent","parentMailbox","$save","sibling","oldPath","localeCompare","pathRE","RegExp","_updateChildren","child","replace","$compact","$canFolderAs","$setFolderAs","$emptyTrash","$markAsRead","isread","$flagMessages","messages","operation","msgUIDs","saveSelectedMessages","selectedMessages","selectedUIDs","filename","download","exportFolder","$delete","$_deleteMessages","unseen","firstIndex","forEachRight","selectedIndex","findIndex","$deleteMessages","$markOrUnMarkMessagesAsJunk","method","$copyMessages","folder","$moveMessages","$reset","value","key","save","response","error","$futureMailboxData","$topIndex","invokeMap","threaded","msgs","msg","msgObject","zipObject","isError","j","messageHeaders","$updateSubscribe","action","subscribed","futureMessageData","lazy","$mailbox","$hasUnsafeContent","$loadUnsafeContent","to","cc","bcc","$formatFullAddresses","Message_STATUS","STATUS","$avatar","avatar","SOGoMailLabelsColors","$tags","SOGoMailDisplayRemoteInlineImages","$displayRemoteInlineImages","NOT_LOADED","DELAYED_LOADING","LOADING","LOADED","DELAYED_MS","filterTags","query","excludedTags","re","results","keys","tag","pair","search","includes","color","buildPath","nocache","draftId","withResourcePath","$setUID","oldUID","attr","constructor","shortname","first","last","image","$shortRecipients","result","count","total","$shortAddress","address","allowReplyAll","recipientsCount","isDraft","loadUnsafeContent","$parts","$content","parts","part","msgclass","content","alternatePart","preferredPart","contentType","isArray","signed","valid","certificate","certificates","encrypted","mixedPart","safeContent","html","unsafeContent","document","createElement","innerHTML","suffix","element","elements","querySelectorAll","removeAttr","compile","$editableContent","from","toLowerCase","text","$plainContent","addTag","$addOrRemoveTag","removeTag","$imipAction","$reload","$sendMDN","shouldAskReceipt","$deleteAttachment","attachmentAttrs","attachment","toggleFlag","isflagged","$loaded","useCache","$futureMessageData","exec","decodeURIComponent","trim","$reply","$newDraft","$replyAll","$forward","origin","$send","startsWith","isanswered","isforwarded","privateAttributes","downloadAttachments","ImageGallery","show","$document","$mdPanel","sgHotkeys","setMessage","registerImage","registerHotkeys","$ctrl","createHotkey","callback","previousImage","nextImage","registerHotkey","showGallery","$event","partIndex","partSrc","src","images","attrs","mimetype","url","body","addClass","panelPosition","newPanelPosition","absolute","panelAnimation","newPanelAnimation","openFrom","target","duration","withAnimation","animation","FADE","config","attachTo","locals","lastIndex","selectedImage","bindToController","controller","PanelController","controllerAs","position","targetEvent","fullscreen","hasBackdrop","template","trapFocus","clickOutsideToClose","escapeToClose","focusOnOpen","onOpenComplete","getElementsByClassName","imgContainer","imgEl","one","naturalWidth","naturalHeight","classList","add","remove","onDomRemoved","removeClass","hotkeys","deregisterHotkey","open","mdPanelRef","$inject","close","selectImage","VirtualMailbox","setMailboxes","startSearch","params","finally","stopSearch","resetSelectedMessage","len","k","transform","messagesMap","sum","allMessages","promises","assign","flatten","MailboxController","$window","$scope","$state","$mdDialog","$mdToast","stateAccounts","stateAccount","stateMailbox","encodeUriFilter","sgSettings","focus","Dialog","vm","defaultWindowTitle","$onInit","$mailboxController","service","accounts","messageDialog","mode","multiple","searchMode","newMessage","markOrUnMarkMessagesAsJunk","toggleMessageSelection","_nextMessage","preventInClass","_previousMessage","_addNextMessageToSelection","_addPreviousMessageToSelection","hotkey","confirmDeleteSelectedMessages","on","_compactBeforeUnload","$on","off","$watch","title","event","centerIsClose","navController_centerIsClose","field","sortedBy","cancelSearch","composeWindowEnabled","SOGoMailComposeWindowEnabled","inPopup","SOGoMailComposeWindow","baseURL","wId","random","console","_newMessageInPopup","templateUrl","stateMessage","catch","noop","selectMessage","preventDefault","go","mailboxId","nextSelectedIndex","shiftKey","stopPropagation","_currentMailboxes","_unselectMessage","nextMessage","previousMessage","nextIndex","size","confirm","ok","deleteSelectedMessage","withoutTrash","moveSelectedMessage","dstFolder","copySelectedMessages","simple","hideDelay","moveSelectedMessages","selectAll","unselectMessages","markSelectedMessagesAsFlagged","markSelectedMessagesAsUnread","markSelectedMessagesAsRead","mdVirtualRepeatContainerDirectiveDecorator","$delegate","resetScroll","$element","updateSize","scrollTo","decorator","MailboxesController","$transitions","User","currentSearchParam","","subfolders","showSubscribedOnly","SOGoMailShowSubscribedFoldersOnly","refreshUnseenCount","selectedFolderController","confirmDelete","hideAdvancedSearch","searchPreviousMailbox","toggleAdvancedSearch","virtualMailbox","root","folders","$current","addSearchParam","v","newSearchParam","pattern","n","searchParam","substring","negative","toggleAccountState","triggerHandler","subscribe","SubscriptionsDialogController","srcAccount","hide","newFolder","parentFolder","prompt","alert","delegate","MailboxDelegationController","userToAdd","searchText","userFilter","closeModal","removeUser","addUser","unseenCountFolders","isDroppableFolder","srcFolder","dragSelectedMessages","dstId","clearMessageView","success","MessageController","$mdMedia","sgConstant","Calendar","Component","$messageController","tags","showFlags","$showDetailedRecipients","showRawSource","_unlessInDialog","reply","replyAll","forward","deleteMessage","opener","$watchCollection","newTags","oldTags","ctrls","$parentControllers","messageCtrl","wasflagged","mailboxCtrl","_newTags","_oldTags","difference","_messageDialog","arguments","apply","addFlags","toggleDetailedRecipients","filterMailtoLinks","href","tagName","attributes","state","parentCtrls","closePopup","_showMailEditor","_showMailEditorInPopup","isPopup","openInPopup","edit","contains","toggleRawSource","$rawSource","print","convertToEvent","_convertToComponent","convertToTask","componentData","pid","$defaultCalendar","summary","comment","capitalize","stateComponent","MessageEditorController","$stateParams","$mdConstant","$mdUtil","FileUploader","AddressBook","Card","addRecipient","autocomplete","autosave","autosaveDrafts","contactFilter","isFullscreen","hideBcc","hideCc","uniq","recipientSeparatorKeys","KEY_CODE","ENTER","TAB","COMMA","SEMICOLON","removeAttachment","send","sendState","toggleFullscreen","uploader","autoUpload","alias","removeAfterUpload","onSuccessItem","item","inlineUrl","lastAttachmentAttrs","onCancelItem","file","removeFromQueue","onErrorItem","SOGoMailAutoSave","localeCode","LocaleCode","destroy","actionName","_updateFileUploader","_addAttachments","originMessage","draftMailboxCtrl","draftMessageCtrl","originMailboxCtrl","fileItem","FileItem","progress","isUploaded","isSuccess","queue","isUploading","cancelItem","getElementById","prop","errorMessage","statusText","$filterAll","cards","explodedCards","manyCards","card","uniqBy","$$fullname","$$email","contact","recipients","recipient","list","emailRE","charCodeAt","test","charAt","$isList","expandable","refs","ref","$shortFormat","container","c_name","listId","SendMessageToastController","closeToast","sgAccountController","$mdSidenav","$postLink","quotaElement","div","addMailboxController","mailboxController","selectedMailboxCtrl","ctrl","unselectFolder","directive","restrict","scope","sgImipController","delegateInvitation","delegatedTo","iCalendarAction","receiveUpdates","c_email","viewer","pathToAttachment","link","iElement","sgImipPath","sgMailboxListItemController","editMode","accountController","selectableElement","clickableElement","inputContainer","inputElement","moreOptionsButton","childLevel","editFolder","select","saveFolder","disabled","revertEditing","showMenu","relativeTo","addPanelPosition","xPosition","ALIGN_START","yPosition","ALIGN_TOPS","itemCtrl","MenuController","panelRef","panelEl","$menuCtrl","markFolderRead","compactFolder","emptyTrashFolder","showAdvancedSearch","share","$users","usersWithACL","setFolderAs","require","sgMessageListItemController","watchedAttrs","MailboxService","pick","newId","oldId","onUpdate","setVisibility","visible","sgMessageListItemMainController","$parse","contentDivElement","iconsDivElement","parentControllerOnUpdate","parentController","priorityIconElement","mailboxNameElement","senderElement","subjectElement","sizeElement","dateElement","textContent","flagIconElement","answerIconElement","forwardIconElement","attachmentIconElement","flagElements","nodesToArray","flagElement","removeChild","css","prepend","encodeEntities","priority","relativedate","hasattachment","sgZoomableImageController","showImage"],"mappings":"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","file":"Mailer.services.js"} \ No newline at end of file +{"version":3,"sources":["Mailer/Account.service.js","Mailer/Mailbox.service.js","Mailer/Message.service.js","Mailer/sgImageGallery.service.js","Mailer/VirtualMailbox.service.js","Mailer/MailboxController.js","Mailer/MailboxesController.js","Mailer/MessageController.js","Mailer/MessageEditorController.js","Mailer/sgAccountSection.directive.js","Mailer/sgIMIP.directive.js","Mailer/sgMailboxListItem.directive.js","Mailer/sgMessageListItem.directive.js","Mailer/sgMessageListItemMain.directive.js","Mailer/sgZoomableImage.directive.js"],"names":["Account","futureAccountData","then","angular","extend","this","_","forEach","identities","identity","fullName","full","email","$log","debug","JSON","stringify","undefined","$factory","$q","$timeout","Settings","Resource","Preferences","Mailbox","Message","$$resource","activeUser","$Preferences","$Mailbox","$Message","module","e","factory","$findAll","data","$unwrapCollection","fetch","o","collection","i","id","$accounts","prototype","getLength","$flattenMailboxes","length","getItemAtIndex","index","expandedMailboxes","$getMailboxes","options","_this","$mailboxes","reload","$find","$expanded","expandedFolders","_visit","mailboxes","indexOf","children","settings","Mail","ExpandedFolders","isString","fromJson","warn","when","allMailboxes","push","all","$$flattenMailboxes","saveState","account","reduce","mailbox","post","$getMailboxByType","type","_find","find","$getMailboxByPath","path","$newMailbox","name","toString","$certificate","security","hasCertificate","$$certificate","reject","$removeCertificate","updateQuota","percent","description","Math","round","usedSpace","maxQuota","l","formatted","$quota","$newMessage","accountId","mailboxPath","message","$absolutePath","asDraft","accountDefaults","defaults","AuxiliaryMailAccounts","alwaysSign","sign","alwaysEncrypt","encrypt","editable","isNew","mailto","isObject","$parseMailto","$addDelegate","user","deferred","defer","param","uid","map","delegates","resolve","users","status","promise","$removeDelegate","splice","futureMailboxData","$account","init","newMailboxData","create","$unwrap","Acl","PRELOAD","$$Acl","$query","sort","asc","selectedFolder","$refreshTimeout","$virtualMode","$virtualPath","SortingState","parseInt","constant","LOOKAHEAD","SIZE","createMailboxes","level","quotas","split","component","asCSSIdentifier","join","isUndefined","uidsMap","headers","$isLoading","$messages","$id","$acl","$displayName","$isEditable","isEditable","$isSpecial","$icon","$isNoInferiors","isNoInferiors","$shadowData","$omit","selectFolder","$lastVisibleIndex","max","$loadMessage","$selectedMessages","filter","selected","$selectedCount","isSelectedMessage","messageId","selectedMessage","$selectedMessage","$selectedMessageIndex","hasSelectedMessage","isDefined","$filter","sortingAttributes","filters","unseenCount","cancel","searchInput","secondFilter","match","searchBy","copy","refreshViewCheck","SOGoRefreshViewCheck","f","bind","timeInterval","endIndex","uids","futureHeadersData","startIndex","loaded","subject","min","loading","$unwrapHeaders","flags","isNoSelect","getClassName","base","$rename","findParent","parent","parentMailbox","$save","sibling","oldPath","localeCompare","pathRE","RegExp","_updateChildren","child","replace","$compact","$canFolderAs","$setFolderAs","$emptyTrash","$markAsRead","isread","$flagMessages","messages","operation","msgUIDs","saveSelectedMessages","selectedMessages","selectedUIDs","filename","download","exportFolder","$delete","$_deleteMessages","unseen","firstIndex","forEachRight","selectedIndex","findIndex","$deleteMessages","$markOrUnMarkMessagesAsJunk","method","$copyMessages","folder","$moveMessages","$reset","value","key","save","response","error","$futureMailboxData","$topIndex","invokeMap","threaded","msgs","msg","msgObject","zipObject","isError","j","messageHeaders","$updateSubscribe","action","subscribed","futureMessageData","lazy","$mailbox","$hasUnsafeContent","$loadUnsafeContent","to","cc","bcc","$formatFullAddresses","Message_STATUS","STATUS","$avatar","avatar","SOGoMailLabelsColors","$tags","SOGoMailDisplayRemoteInlineImages","$displayRemoteInlineImages","NOT_LOADED","DELAYED_LOADING","LOADING","LOADED","DELAYED_MS","filterTags","query","excludedTags","re","results","keys","tag","pair","search","includes","color","buildPath","nocache","draftId","withResourcePath","$setUID","oldUID","attr","constructor","shortname","first","last","image","$shortRecipients","result","count","total","$shortAddress","address","allowReplyAll","recipientsCount","isDraft","loadUnsafeContent","$parts","$content","parts","part","msgclass","content","alternatePart","preferredPart","contentType","isArray","signed","valid","certificate","certificates","encrypted","mixedPart","safeContent","html","unsafeContent","document","createElement","innerHTML","suffix","element","elements","querySelectorAll","removeAttr","compile","$editableContent","from","toLowerCase","text","$plainContent","addTag","$addOrRemoveTag","removeTag","$imipAction","$reload","$sendMDN","shouldAskReceipt","$deleteAttachment","attachmentAttrs","attachment","toggleFlag","isflagged","$loaded","useCache","$futureMessageData","exec","decodeURIComponent","trim","$reply","$newDraft","$replyAll","$forward","origin","$send","startsWith","isanswered","isforwarded","privateAttributes","downloadAttachments","ImageGallery","show","$document","$mdPanel","sgHotkeys","setMessage","registerImage","registerHotkeys","$ctrl","createHotkey","callback","previousImage","nextImage","registerHotkey","showGallery","$event","partIndex","partSrc","src","images","attrs","mimetype","url","body","addClass","panelPosition","newPanelPosition","absolute","panelAnimation","newPanelAnimation","openFrom","target","duration","withAnimation","animation","FADE","config","attachTo","locals","lastIndex","selectedImage","bindToController","controller","PanelController","controllerAs","position","targetEvent","fullscreen","hasBackdrop","template","trapFocus","clickOutsideToClose","escapeToClose","focusOnOpen","onOpenComplete","getElementsByClassName","imgContainer","imgEl","one","naturalWidth","naturalHeight","classList","add","remove","onDomRemoved","removeClass","hotkeys","deregisterHotkey","open","mdPanelRef","$inject","close","selectImage","VirtualMailbox","setMailboxes","startSearch","params","finally","stopSearch","resetSelectedMessage","len","k","transform","messagesMap","sum","allMessages","promises","assign","flatten","MailboxController","$window","$scope","$state","$mdDialog","$mdToast","stateAccounts","stateAccount","stateMailbox","encodeUriFilter","sgSettings","focus","Dialog","vm","defaultWindowTitle","$onInit","$mailboxController","service","accounts","messageDialog","mode","multiple","searchMode","newMessage","markOrUnMarkMessagesAsJunk","toggleMessageSelection","_nextMessage","preventInClass","_previousMessage","_addNextMessageToSelection","_addPreviousMessageToSelection","hotkey","confirmDeleteSelectedMessages","on","_compactBeforeUnload","$on","off","$watch","title","event","centerIsClose","navController_centerIsClose","field","sortedBy","cancelSearch","composeWindowEnabled","SOGoMailComposeWindowEnabled","inPopup","SOGoMailComposeWindow","baseURL","wId","random","console","_newMessageInPopup","templateUrl","stateMessage","catch","noop","selectMessage","preventDefault","go","mailboxId","nextSelectedIndex","shiftKey","stopPropagation","_currentMailboxes","_unselectMessage","nextMessage","previousMessage","nextIndex","size","confirm","ok","deleteSelectedMessage","withoutTrash","moveSelectedMessage","dstFolder","copySelectedMessages","simple","hideDelay","moveSelectedMessages","selectAll","unselectMessages","markSelectedMessagesAsFlagged","markSelectedMessagesAsUnread","markSelectedMessagesAsRead","mdVirtualRepeatContainerDirectiveDecorator","$delegate","resetScroll","$element","updateSize","scrollTo","decorator","MailboxesController","$transitions","User","currentSearchParam","","subfolders","showSubscribedOnly","SOGoMailShowSubscribedFoldersOnly","refreshUnseenCount","selectedFolderController","confirmDelete","hideAdvancedSearch","searchPreviousMailbox","toggleAdvancedSearch","virtualMailbox","root","folders","$current","addSearchParam","v","newSearchParam","pattern","n","searchParam","substring","negative","toggleAccountState","triggerHandler","subscribe","SubscriptionsDialogController","srcAccount","hide","newFolder","parentFolder","prompt","alert","delegate","MailboxDelegationController","userToAdd","searchText","userFilter","closeModal","removeUser","addUser","unseenCountFolders","isDroppableFolder","srcFolder","dragSelectedMessages","dstId","clearMessageView","success","MessageController","$mdMedia","sgConstant","Calendar","Component","$messageController","tags","showFlags","$showDetailedRecipients","showRawSource","_unlessInDialog","reply","replyAll","forward","deleteMessage","opener","$watchCollection","newTags","oldTags","ctrls","$parentControllers","messageCtrl","wasflagged","mailboxCtrl","_newTags","_oldTags","difference","_messageDialog","arguments","apply","addFlags","toggleDetailedRecipients","filterMailtoLinks","href","tagName","attributes","state","parentCtrls","closePopup","_showMailEditor","_showMailEditorInPopup","isPopup","openInPopup","edit","contains","toggleRawSource","$rawSource","print","convertToEvent","_convertToComponent","convertToTask","componentData","pid","$defaultCalendar","summary","comment","capitalize","stateComponent","MessageEditorController","$stateParams","$mdConstant","$mdUtil","FileUploader","AddressBook","Card","addRecipient","autocomplete","autosave","autosaveDrafts","contactFilter","isFullscreen","hideBcc","hideCc","uniq","recipientSeparatorKeys","KEY_CODE","ENTER","TAB","COMMA","SEMICOLON","removeAttachment","send","sendState","toggleFullscreen","uploader","autoUpload","alias","removeAfterUpload","onSuccessItem","item","inlineUrl","lastAttachmentAttrs","onCancelItem","file","removeFromQueue","onErrorItem","SOGoMailAutoSave","localeCode","LocaleCode","destroy","actionName","_updateFileUploader","_addAttachments","originMessage","draftMailboxCtrl","draftMessageCtrl","originMailboxCtrl","fileItem","FileItem","progress","isUploaded","isSuccess","queue","isUploading","cancelItem","getElementById","prop","errorMessage","statusText","$filterAll","cards","explodedCards","manyCards","card","uniqBy","$$fullname","$$email","contact","recipients","recipient","list","emailRE","charCodeAt","test","charAt","$isList","expandable","refs","ref","$shortFormat","container","c_name","listId","SendMessageToastController","closeToast","sgAccountController","$mdSidenav","$postLink","quotaElement","div","addMailboxController","mailboxController","selectedMailboxCtrl","ctrl","unselectFolder","directive","restrict","scope","sgImipController","delegateInvitation","delegatedTo","iCalendarAction","receiveUpdates","c_email","viewer","pathToAttachment","link","iElement","sgImipPath","sgMailboxListItemController","editMode","accountController","selectableElement","clickableElement","inputContainer","inputElement","moreOptionsButton","childLevel","editFolder","select","saveFolder","disabled","revertEditing","showMenu","relativeTo","addPanelPosition","xPosition","ALIGN_START","yPosition","ALIGN_TOPS","itemCtrl","MenuController","panelRef","panelEl","$menuCtrl","markFolderRead","compactFolder","emptyTrashFolder","showAdvancedSearch","share","$users","usersWithACL","setFolderAs","require","sgMessageListItemController","watchedAttrs","MailboxService","pick","newId","oldId","onUpdate","setVisibility","visible","sgMessageListItemMainController","$parse","contentDivElement","iconsDivElement","parentControllerOnUpdate","parentController","priorityIconElement","mailboxNameElement","senderElement","subjectElement","sizeElement","dateElement","textContent","flagIconElement","answerIconElement","forwardIconElement","attachmentIconElement","flagElements","nodesToArray","flagElement","removeChild","css","prepend","encodeEntities","priority","relativedate","hasattachment","sgZoomableImageController","showImage"],"mappings":"CAEA,WACE,aAOE,SAASA,EAAQC,GAEqB,mBAA3BA,EAAkBC,OAC3BC,QAAQC,OAAOC,KAAMJ,GACrBK,EAAEC,QAAQF,KAAKG,WAAY,SAASC,GAC9BA,EAASC,SACXD,EAASE,KAAOF,EAASC,SAAW,KAAOD,EAASG,MAAQ,IAE5DH,EAASE,KAAO,IAAMF,EAASG,MAAQ,MAE3CZ,EAAQa,KAAKC,MAAM,YAAcC,KAAKC,UAAUf,OAAmBgB,EAAW,KAalFjB,EAAQkB,UAAY,KAAM,WAAY,OAAQ,aAAc,WAAY,cAAe,UAAW,UAAW,SAASC,EAAIC,EAAUP,EAAMQ,EAAUC,EAAUC,EAAaC,EAASC,GAWlL,OAVAtB,QAAQC,OAAOJ,GACbmB,GAAIA,EACJC,SAAUA,EACVP,KAAMA,EACNa,WAAY,IAAIJ,EAASD,EAASM,WAAW,aAAe,OAAQN,EAASM,cAC7EC,aAAcL,EACdM,SAAUL,EACVM,SAAUL,IAGLzB,IAOT,IACEG,QAAQ4B,OAAO,iBAEjB,MAAMC,GACJ7B,QAAQ4B,OAAO,iBAAkB,gBAEnC5B,QAAQ4B,OAAO,iBACZE,QAAQ,UAAWjC,EAAQkB,UAQ9BlB,EAAQkC,SAAW,SAASC,GAC1B,OAAKA,EAKEnC,EAAQoC,kBAAkBD,GAJxBnC,EAAQ0B,WAAWW,MAAM,GAAI,gBAAgBnC,KAAK,SAASoC,GAChE,OAAOtC,EAAQoC,kBAAkBE,MAYvCtC,EAAQoC,kBAAoB,SAASD,GACnC,IAAII,KAQJ,OANApC,QAAQI,QAAQ4B,EAAM,SAASG,EAAGE,GAChCF,EAAEG,GAAKD,EACPD,EAAWC,GAAK,IAAIxC,EAAQsC,KAE9BtC,EAAQ0C,UAAYH,EAEbA,GASTvC,EAAQ2C,UAAUC,UAAY,WAC5B,OAAOvC,KAAKwC,oBAAoBC,QASlC9C,EAAQ2C,UAAUI,eAAiB,SAASC,GAC1C,IAAIC,EAGJ,OADAA,EAAoB5C,KAAKwC,oBACrBG,GAAS,GAAKA,EAAQC,EAAkBH,OACnCG,EAAkBD,GAEpB,MAUThD,EAAQ2C,UAAUO,cAAgB,SAASC,GACzC,IAAIC,EAAQ/C,KAEZ,OAAIA,KAAKgD,YAAgBF,GAAWA,EAAQG,OAInCtD,EAAQ6B,SAAS0B,MAAMlD,KAAM8C,GAASjD,KAAK,SAASiC,GACzDiB,EAAMC,WAAalB,EACnBiB,EAAMI,WAAY,EAGlB,IAAIC,EACAC,EAAS,SAASC,GAChBrD,EAAEC,QAAQoD,EAAW,SAASrB,GAC5BA,EAAEkB,UAAaC,EAAgBG,QAAQ,IAAMtB,EAAEG,KAAO,EAClDH,EAAEuB,UAAYvB,EAAEuB,SAASf,OAAS,GACpCY,EAAOpB,EAAEuB,aAInB,GAAI7D,EAAQ4B,aAAakC,SAASC,KAAKC,gBAAiB,CACtD,GAAI7D,QAAQ8D,SAASjE,EAAQ4B,aAAakC,SAASC,KAAKC,iBAEtD,IACEP,EAAkBtD,QAAQ+D,SAASlE,EAAQ4B,aAAakC,SAASC,KAAKC,iBAExE,MAAOhC,GACLhC,EAAQa,KAAKsD,KAAK,qDACAnE,EAAQ4B,aAAakC,SAASC,KAAKC,iBACrDP,UAIFA,EAAkBzD,EAAQ4B,aAAakC,SAASC,KAAKC,gBAEvDZ,EAAMI,UAAaC,EAAgBG,QAAQ,IAAMR,EAAMX,KAAO,EAC1DgB,EAAgBX,OAAS,GAC3BY,EAAON,EAAMC,YAOjB,OAJIrD,EAAQ0C,YACVU,EAAMI,WAA0C,GAA5BxD,EAAQ0C,UAAUI,QACxCM,EAAMP,mBAAmBS,QAAQ,IAE1BF,EAAMC,aAzCRrD,EAAQmB,GAAGiD,KAAK/D,KAAKgD,aAwDhCrD,EAAQ2C,UAAUE,kBAAoB,SAASM,GAC7C,IACIkB,KACApB,KACAS,EAAS,SAASC,GAChBrD,EAAEC,QAAQoD,EAAW,SAASrB,GAC5B+B,EAAaC,KAAKhC,IACba,GAAWA,EAAQoB,KAAOjC,EAAEkB,YAAclB,EAAEuB,UAAYvB,EAAEuB,SAASf,OAAS,GAC/EY,EAAOpB,EAAEuB,aA8BnB,OAzBIxD,KAAKmE,oBAAwBrB,IAAYA,EAAQG,QAAUH,EAAQoB,MAIrEb,EAAOrD,KAAKgD,YACPF,GAAYA,EAAQoB,MAjBflE,KAkBFmE,mBAAqBH,EACvBlB,GAAWA,EAAQsB,YAErBnE,EAAEC,QAAQP,EAAQ0C,UAAW,SAASgC,GAChCA,EAAQlB,WACVP,EAAkBqB,KAAK,IAAMI,EAAQjC,IAEvCnC,EAAEqE,OAAOD,EAAQF,mBAAoB,SAASf,EAAiBmB,GAI7D,OAHIA,EAAQpB,WACVC,EAAgBa,KAAK,IAAMM,EAAQnC,IAE9BgB,GACNR,KAELjD,EAAQ0B,WAAWmD,KAAK,KAAM,mBAAoB5B,MAnBtDoB,EAAehE,KAAKmE,mBAwBfH,GAGTrE,EAAQ2C,UAAUmC,kBAAoB,SAASC,GAC7C,IAEIC,EAAQ,SAASrB,GACf,IAAIiB,EAAUtE,EAAE2E,KAAKtB,EAAW,SAASrB,GACvC,OAAOA,EAAEyC,MAAQA,IASnB,OAPKH,GACHzE,QAAQI,QAAQoD,EAAW,SAASrB,IAC7BsC,GAAWtC,EAAEuB,UAAYvB,EAAEuB,SAASf,OAAS,IAChD8B,EAAUI,EAAM1C,EAAEuB,aAIjBe,GAIb,OAFUI,EAAM3E,KAAKgD,aAWvBrD,EAAQ2C,UAAUuC,kBAAoB,SAASC,GAC7C,IAEIH,EAAQ,SAASrB,GACf,IAAIiB,EAAUtE,EAAE2E,KAAKtB,EAAW,SAASrB,GACvC,OAAOA,EAAE6C,MAAQA,IASnB,OAPKP,GACHzE,QAAQI,QAAQoD,EAAW,SAASrB,IAC7BsC,GAAWtC,EAAEuB,UAAYvB,EAAEuB,SAASf,OAAS,IAChD8B,EAAUI,EAAM1C,EAAEuB,aAIjBe,GAIb,OAFUI,EAAM3E,KAAKgD,aAWvBrD,EAAQ2C,UAAUyC,YAAc,SAASD,EAAME,GAC7C,IAAIjC,EAAQ/C,KAEZ,OAAOL,EAAQ0B,WAAWmD,KAAKM,EAAKG,WAAY,gBAAiBD,KAAMA,IAAOnF,KAAK,WACjFkD,EAAMF,eAAeI,QAAQ,OAUjCtD,EAAQ2C,UAAU4C,aAAe,WAC/B,IAAInC,EAAQ/C,KAEZ,OAAIA,KAAKmF,UAAYnF,KAAKmF,SAASC,eAC7BpF,KAAKqF,cACA1F,EAAQmB,GAAGiD,KAAK/D,KAAKqF,eAErB1F,EAAQ0B,WAAWW,MAAMhC,KAAKoC,GAAG6C,WAAY,eAAepF,KAAK,SAASiC,GAE/E,OADAiB,EAAMsC,cAAgBvD,EACfA,IAKJnC,EAAQmB,GAAGwE,UAUtB3F,EAAQ2C,UAAUiD,mBAAqB,WACrC,IAAIxC,EAAQ/C,KAEZ,OAAOL,EAAQ0B,WAAWW,MAAMhC,KAAKoC,GAAG6C,WAAY,qBAAqBpF,KAAK,WAC5EkD,EAAMoC,SAASC,gBAAiB,KAUpCzF,EAAQ2C,UAAUkD,YAAc,SAAS1D,GACvC,IAAI2D,EAAiBC,EAErBD,EAAWE,KAAKC,MAAuB,IAAjB9D,EAAK+D,UAAoB/D,EAAKgE,UAAY,IAEhEJ,EADSK,EAAE,gBACUC,UAAUP,EAASE,KAAKC,MAAM9D,EAAKgE,SAAS,OAAO,KAExE9F,KAAKiG,QAAWR,QAASA,EAASC,YAAaA,IASjD/F,EAAQ2C,UAAU4D,YAAc,SAASpD,GACvC,IAAIC,EAAQ/C,KAGZ,OAAOL,EAAQ0B,WAAWW,MAAMhC,KAAKoC,GAAG6C,WAAY,WAAWpF,KAAK,SAASiC,GAC3EnC,EAAQa,KAAKC,MAAM,0BAA4BC,KAAKC,UAAUmB,OAAMlB,EAAW,IAE/E,OADc,IAAIjB,EAAQ8B,SAASK,EAAKqE,UAAWpD,EAAM8B,kBAAkB/C,EAAKsE,aAActE,KAE7FjC,KAAK,SAASwG,GAEf,OAAO1G,EAAQ0B,WAAWW,MAAMqE,EAAQC,eAAeC,SAAS,IAAQ,QAAQ1G,KAAK,SAASiC,GAC5F,IAAI0E,EAAkB7G,EAAQ4B,aAAakF,SAASC,sBAAsB3D,EAAMX,IAgBhF,OAfIoE,EAAgBrB,WACdqB,EAAgBrB,SAASwB,aAC3B7E,EAAK8E,MAAO,GACVJ,EAAgBrB,SAAS0B,gBAC3B/E,EAAKgF,SAAU,IAEnBnH,EAAQa,KAAKC,MAAM,uBAAyBC,KAAKC,UAAUmB,OAAMlB,EAAW,IAC5Ed,QAAQC,OAAOsG,EAAQU,SAAUjF,GACjCuE,EAAQW,OAAQ,EACZlE,GAAWA,EAAQmE,SACjBnH,QAAQoH,SAASpE,EAAQmE,QAC3BnH,QAAQC,OAAOsG,EAAQU,SAAUjE,EAAQmE,QAEzCZ,EAAQc,aAAarE,EAAQmE,SAE1BZ,OAYb1G,EAAQ2C,UAAU8E,aAAe,SAASC,GACxC,IAAItE,EAAQ/C,KACRsH,EAAW3H,EAAQmB,GAAGyG,QACtBC,GAASC,IAAKJ,EAAKI,KAavB,OAZKJ,EAAKI,KAAOxH,EAAEsD,QAAQtD,EAAEyH,IAAI1H,KAAK2H,UAAW,OAAQN,EAAKI,MAAQ,EAEpEH,EAASM,UAGTjI,EAAQ0B,WAAWW,MAAMhC,KAAKoC,GAAG6C,WAAY,cAAeuC,GAAO3H,KAAK,WACtEkD,EAAM4E,UAAU1D,KAAKoD,GACrBC,EAASM,QAAQ7E,EAAM8E,QACtB,SAAS/F,EAAMgG,GAChBR,EAAShC,OAAOS,EAAE,yCAGfuB,EAASS,SAUlBpI,EAAQ2C,UAAU0F,gBAAkB,SAASP,GAC3C,IAAI1E,EAAQ/C,KACRwH,GAASC,IAAKA,GAClB,OAAO9H,EAAQ0B,WAAWW,MAAMhC,KAAKoC,GAAG6C,WAAY,iBAAkBuC,GAAO3H,KAAK,WAChF,IAAIsC,EAAIlC,EAAEsD,QAAQtD,EAAEyH,IAAI3E,EAAM4E,UAAW,OAAQF,GAC7CtF,GAAK,GACPY,EAAM4E,UAAUM,OAAO9F,EAAG,MAlalC,GCAA,WACE,aAOA,SAAShB,EAAQkD,EAAS6D,GAGxB,GAFAlI,KAAKmI,SAAW9D,EAEsB,mBAA3B6D,EAAkBrI,MAE3B,GADAG,KAAKoI,KAAKF,GACNlI,KAAKgF,OAAShF,KAAK8E,KAAM,CAE3B,IAAIuD,EAAiBlH,EAAQE,WAAWiH,OAAO,eAAgBtI,KAAKgF,MACpEhF,KAAKuI,QAAQF,SAMfrI,KAAKuI,QAAQL,GASjB/G,EAAQN,UAAY,KAAM,WAAY,OAAQ,aAAc,WAAY,UAAW,MAAO,cAAe,oBAAqB,SAASC,EAAIC,EAAUP,EAAMQ,EAAUC,EAAUG,EAASoH,EAAKtH,EAAauH,GAsBxM,OArBA3I,QAAQC,OAAOoB,GACbL,GAAIA,EACJC,SAAUA,EACVP,KAAMA,EACNa,WAAY,IAAIJ,EAASD,EAASM,WAAW,aAAe,OAAQN,EAASM,cAC7EG,SAAUL,EACVsH,MAAOF,EACPjH,aAAcL,EACdyH,QAAUC,KAAM,UAAWC,IAAK,GAChCC,eAAgB,KAChBC,gBAAiB,KACjBC,cAAc,EACdC,cAAc,EACdR,QAASA,IAGPvH,EAAYuC,SAASC,KAAKwF,eAC5B/H,EAAQwH,OAAOC,KAAO1H,EAAYuC,SAASC,KAAKwF,aAAa,GAC7D/H,EAAQwH,OAAOE,IAAMM,SAASjI,EAAYuC,SAASC,KAAKwF,aAAa,KAGhE/H,IAOT,IACErB,QAAQ4B,OAAO,iBAEjB,MAAMC,GACJ7B,QAAQ4B,OAAO,iBAAkB,gBAEnC5B,QAAQ4B,OAAO,iBACZ0H,SAAS,qBACRC,UAAW,GACXC,KAAM,MAEP1H,QAAQ,UAAWT,EAAQN,UAS9BM,EAAQ+B,MAAQ,SAASmB,EAASvB,GAChC,IAAUoF,EAOV,OAJEA,EADEpF,GAAWA,EAAQoB,IACDlE,KAAKqB,WAAWW,MAAMqC,EAAQjC,GAAG6C,WAAY,WAE7CjF,KAAKqB,WAAWW,MAAMqC,EAAQjC,GAAG6C,WAAY,QAE5D9D,EAAQY,kBAAkBsC,EAAS6D,IAU5C/G,EAAQY,kBAAoB,SAASsC,EAAS6D,GAC5C,IAAIhG,KAEAqH,EAAkB,SAASC,EAAOjF,GAChC,IAAK,IAAIpC,EAAI,EAAGA,EAAIoC,EAAQf,SAASf,OAAQN,IAC3CoC,EAAQf,SAASrB,GAAGqH,MAAQA,EAC5BjF,EAAQf,SAASrB,GAAK,IAAIhB,EAAQkD,EAASE,EAAQf,SAASrB,IAC5DoH,EAAgBC,EAAM,EAAGjF,EAAQf,SAASrB,KAKlD,OAAO+F,EAAkBrI,KAAK,SAASiC,GACrC,OAAOX,EAAQJ,SAAS,WAWtB,OATAjB,QAAQI,QAAQ4B,EAAKwB,UAAW,SAASxB,EAAMa,GAC7Cb,EAAK0H,MAAQ,EACb,IAAIjF,EAAU,IAAIpD,EAAQkD,EAASvC,GACnCyH,EAAgB,EAAGhF,GACnBrC,EAAW+B,KAAKM,KAGdzC,EAAK2H,QACPpF,EAAQmB,YAAY1D,EAAK2H,QACpBvH,OAYbf,EAAQmF,cAAgB,SAASH,EAAWC,GAC1C,IAAItB,KAUJ,OARIsB,IACFtB,EAAO7E,EAAEyH,IAAItB,EAAYsD,MAAM,KAAM,SAASC,GAC5C,MAAO,SAAWA,EAAUC,qBAIhC9E,EAAKmD,OAAO,EAAG,EAAG9B,GAEXrB,EAAK+E,KAAK,MASnB1I,EAAQmB,UAAU8F,KAAO,SAAStG,IAE5BhC,QAAQgK,YAAY9J,KAAK+J,UAAYjI,EAAKkI,WAC5ChK,KAAKiK,YAAa,EAClBjK,KAAKkK,aACLlK,KAAK+J,YAEPjK,QAAQC,OAAOC,KAAM8B,GACjB9B,KAAK8E,OACP9E,KAAKoC,GAAKpC,KAAKmK,MACfnK,KAAKoK,KAAO,IAAIjJ,EAAQuH,MAAM,QAAU1I,KAAKoC,KAE/CpC,KAAKqK,aAAerK,KAAKgF,KACrBhF,KAAK0E,OACP1E,KAAKsK,YAActK,KAAKuK,aACxBvK,KAAKwK,YAAa,EACD,SAAbxK,KAAK0E,MACP1E,KAAKqK,aAAetE,EAAE,mBACtB/F,KAAKyK,MAAQ,SAEO,SAAbzK,KAAK0E,MACZ1E,KAAKqK,aAAetE,EAAE,oBACtB/F,KAAKyK,MAAQ,UAEO,QAAbzK,KAAK0E,MACZ1E,KAAKqK,aAAetE,EAAE,kBACtB/F,KAAKyK,MAAQ,QAEO,SAAbzK,KAAK0E,MACZ1E,KAAKqK,aAAetE,EAAE,mBACtB/F,KAAKyK,MAAQ,UAEO,QAAbzK,KAAK0E,MACZ1E,KAAKqK,aAAetE,EAAE,kBACtB/F,KAAKyK,MAAQ,cAEO,cAAbzK,KAAK0E,KACZ1E,KAAKyK,MAAQ,iBAGbzK,KAAKwK,YAAa,EAClBxK,KAAKyK,MAAQ,gBAGjBzK,KAAK0K,eAAiB1K,KAAK2K,gBACvB7K,QAAQgK,YAAY9J,KAAK4K,eAE3B5K,KAAK4K,YAAc5K,KAAK6K,UAS5B1J,EAAQmB,UAAUwI,aAAe,WAC1B3J,EAAQ6H,eACX7H,EAAQ2H,eAAiB9I,OAS7BmB,EAAQmB,UAAUC,UAAY,WAC5B,OAAOvC,KAAKkK,UAAUzH,QASxBtB,EAAQmB,UAAUI,eAAiB,SAASC,GAC1C,IAAI0D,EAEJ,OAAI1D,GAAS,GAAKA,EAAQ3C,KAAKkK,UAAUzH,SACvC4D,EAAUrG,KAAKkK,UAAUvH,GACzB3C,KAAK+K,kBAAoBpF,KAAKqF,IAAI,EAAGrI,EAAQ,GAEzC3C,KAAKiL,aAAa5E,EAAQoB,MACrBpB,EAEJ,MASTlF,EAAQmB,UAAU6H,IAAM,WACtB,OAAOhJ,EAAQmF,cAActG,KAAKmI,SAAS/F,GAAIpC,KAAK8E,OAStD3D,EAAQmB,UAAU4I,kBAAoB,WACpC,OAAOjL,EAAEkL,OAAOnL,KAAKkK,UAAW,SAAS7D,GAAW,OAAOA,EAAQ+E,YASrEjK,EAAQmB,UAAU+I,eAAiB,WACjC,OAAOrL,KAAKkL,oBAAoBzI,QAUlCtB,EAAQmB,UAAUgJ,kBAAoB,SAASC,GAC7C,OAAOvL,KAAKwL,iBAAmBD,GASjCpK,EAAQmB,UAAUmJ,iBAAmB,WACnC,IAAI1I,EAAQ/C,KAEZ,OAAOC,EAAE2E,KAAK5E,KAAKkK,UAAW,SAAS7D,GAAW,OAAOA,EAAQoB,KAAO1E,EAAMyI,mBAShFrK,EAAQmB,UAAUoJ,sBAAwB,WACxC,OAAO1L,KAAK+J,QAAQ/J,KAAKwL,kBAS3BrK,EAAQmB,UAAUqJ,mBAAqB,WACrC,OAAO7L,QAAQ8L,UAAU5L,KAAKwL,kBAiBhCrK,EAAQmB,UAAUuJ,QAAU,SAASC,EAAmBC,GACtD,IAAIhJ,EAAQ/C,KAAM8C,KAoClB,GAlCKhD,QAAQ8L,UAAU5L,KAAKgM,eAC1BhM,KAAKgM,YAAc,GAErB7K,EAAQJ,SAAS,WACfgC,EAAMkH,YAAa,IAGjB9I,EAAQ4H,iBACV5H,EAAQJ,SAASkL,OAAO9K,EAAQ4H,iBAE9B+C,GAEFhM,QAAQC,OAAOoB,EAAQwH,OAAQmD,GAEjChM,QAAQC,OAAO+C,GAAWgJ,kBAAmB3K,EAAQwH,SACjD7I,QAAQ8L,UAAUG,KACpBjJ,EAAQiJ,QAAU9L,EAAEqF,OAAOyG,EAAS,SAASZ,GAC3C,OAAQA,EAAOe,aAA6C,IAA9Bf,EAAOe,YAAYzJ,SAGnDxC,EAAEC,QAAQ4C,EAAQiJ,QAAS,SAASZ,GAClC,IAAIgB,EACAC,EAAQjB,EAAOkB,SAASD,MAAM,kBAC9BA,IACFtJ,EAAQgJ,kBAAkBM,MAAQ,KAClCjB,EAAOkB,SAAWD,EAAM,IACxBD,EAAerM,QAAQwM,KAAKnB,IACfkB,SAAWD,EAAM,GAC9BtJ,EAAQiJ,QAAQ9H,KAAKkI,QAMtBhL,EAAQ6H,aAAc,CACzB,IAAIuD,EAAmBpL,EAAQI,aAAakF,SAAS+F,qBACrD,GAAID,GAAwC,YAApBA,EAAgC,CACtD,IAAIE,EAAI3M,QAAQ4M,KAAK1M,KAAMmB,EAAQmB,UAAUuJ,QAAS,KAAME,GAC5D5K,EAAQ4H,gBAAkB5H,EAAQJ,SAAS0L,EAAmC,IAAhCF,EAAiBI,iBAInE,IAAIzE,EAAoB/G,EAAQE,WAAWmD,KAAKxE,KAAKoC,GAAI,OAAQU,GACjE,OAAO9C,KAAKuI,QAAQL,IAStB/G,EAAQmB,UAAU2I,aAAe,SAASM,GACxC,IACIqB,EACAjK,EAGAkK,EACAC,EANAC,EAAa/M,KAAK+J,QAAQwB,GAG1BP,EAAMhL,KAAKkK,UAAUzH,OACrBuK,GAAS,EAGb,GAAIlN,QAAQ8L,UAAU5L,KAAK+J,QAAQwB,KAAewB,EAAa/M,KAAKkK,UAAUzH,SAExE3C,QAAQ8L,UAAU5L,KAAKkK,UAAU6C,GAAYE,WAE/CD,GAAS,GAIXJ,EAAWjH,KAAKuH,IAAIH,EAAa5L,EAAQsH,QAAQY,UAAW2B,EAAM,GAC9DlL,QAAQ8L,UAAU5L,KAAKkK,UAAU0C,GAAUK,UAC3CnN,QAAQ8L,UAAU5L,KAAKkK,UAAU0C,GAAUO,UAC7CxK,EAAQgD,KAAKqF,IAAI+B,EAAa5L,EAAQsH,QAAQY,UAAW,GACpDvJ,QAAQ8L,UAAU5L,KAAKkK,UAAUvH,GAAOsK,UACxCnN,QAAQ8L,UAAU5L,KAAKkK,UAAUvH,GAAOwK,WAE3CP,EAAWG,EACXA,EAAapH,KAAKqF,IAAI+B,EAAa5L,EAAQsH,QAAQa,KAAM,KAK3DsD,EAAWjH,KAAKuH,IAAIH,EAAa5L,EAAQsH,QAAQa,KAAM0B,EAAM,IAE1DlL,QAAQ8L,UAAU5L,KAAKkK,UAAU6C,GAAYE,WAC7CnN,QAAQ8L,UAAU5L,KAAKkK,UAAU6C,GAAYI,WAC7CrN,QAAQ8L,UAAU5L,KAAKkK,UAAU0C,GAAUK,WAC3CnN,QAAQ8L,UAAU5L,KAAKkK,UAAU0C,GAAUO,UAAU,CAExD,IAAKN,KAAWE,EAAaH,GAAYG,EAAa/B,EAAK+B,IACrDjN,QAAQ8L,UAAU5L,KAAKkK,UAAU6C,GAAYE,UAAYjN,KAAKkK,UAAU6C,GAAYI,QAEtFP,KAIAC,EAAK5I,KAAKjE,KAAKkK,UAAU6C,GAAYtF,KACrCzH,KAAKkK,UAAU6C,GAAYI,SAAU,GAIzChM,EAAQX,KAAKC,MAAM,gBAAkBoM,EAAKhD,KAAK,MAC/CiD,EAAoB3L,EAAQE,WAAWmD,KAAKxE,KAAKoC,GAAI,WAAYyK,KAAMA,IACvE7M,KAAKoN,eAAeN,GAGxB,OAAOE,GAST7L,EAAQmB,UAAUiI,WAAa,WAC7B,MAAoB,UAAbvK,KAAK0E,MASdvD,EAAQmB,UAAUqI,cAAgB,WAChC,OAAO3K,KAAKqN,MAAM9J,QAAQ,gBAAkB,GAS9CpC,EAAQmB,UAAUgL,WAAa,WAC7B,OAAOtN,KAAKqN,MAAM9J,QAAQ,aAAe,GAS3CpC,EAAQmB,UAAUiL,aAAe,SAASC,GACxC,OAAO,GAUTrM,EAAQmB,UAAUmL,QAAU,WAC1B,IACIC,EACAC,EACAnK,EACArB,EAJAY,EAAQ/C,KAMZ,OAAIA,KAAKgF,MAAQhF,KAAK4K,YAAY5F,KAEzB7D,EAAQL,GAAGiD,QAuBpB4J,GAnBAD,EAAa,SAASC,EAAQnK,GAC5B,IAAIoK,EAAgB,KAcpB,OAbc3N,EAAE2E,KAAKpB,EAAU,SAASvB,GAClC,OAAOA,EAAE6C,MAAQ/B,EAAM+B,OAG3B8I,EAAgBD,EAGhB7N,QAAQI,QAAQsD,EAAU,SAASvB,IAC5B2L,GAAiB3L,EAAEuB,UAAYvB,EAAEuB,SAASf,OAAS,IACtDmL,EAAgBF,EAAWzL,EAAGA,EAAEuB,aAI/BoK,IAIW,KAAM5N,KAAKmI,SAASnF,YAEtCQ,EADa,OAAXmK,EACS3N,KAAKmI,SAASnF,WAEd2K,EAAOnK,SAGpBrB,EAAIlC,EAAEsD,QAAQtD,EAAEyH,IAAIlE,EAAU,MAAOxD,KAAKoC,IAEnCpC,KAAK6N,QAAQhO,KAAK,SAASiC,GAChC,IAAIgM,EAASC,EAAUhL,EAAM+B,KAC7B/B,EAAMqF,KAAKtG,GAGX0B,EAASyE,OAAO9F,EAAG,GACnB2L,EAAU7N,EAAE2E,KAAKpB,EAAU,SAASvB,GAClC,MAAkB,UAAVA,EAAEyC,MAAoBzC,EAAE+C,KAAKgJ,cAAcjL,EAAMiC,MAAQ,IAGjE7C,EADE2L,EACE7N,EAAEsD,QAAQtD,EAAEyH,IAAIlE,EAAU,MAAOsK,EAAQ1L,IAGzCoB,EAASf,OAEfe,EAASyE,OAAO9F,EAAG,EAAGY,GAGtB,IAAIkL,EAAS,IAAIC,OAAO,IAAMH,GAC1BI,EAAkB,SAAS5J,GAC7BtE,EAAEC,QAAQqE,EAAQf,SAAU,SAAS4K,GACnCA,EAAMtJ,KAAOsJ,EAAMtJ,KAAKuJ,QAAQJ,EAAQlL,EAAM+B,MAC9CsJ,EAAMhM,GAAKgM,EAAMjE,MACjBgE,EAAgBC,MAGpBD,EAAgBpL,OAUpB5B,EAAQmB,UAAUgM,SAAW,WAC3B,IAAIvL,EAAQ/C,KACZ,OAAOmB,EAAQE,WAAWmD,KAAKxE,KAAKoC,GAAI,WACrCvC,KAAK,SAASiC,GAETA,EAAK2H,QACP1G,EAAMoF,SAAS3C,YAAY1D,EAAK2H,WAUxCtI,EAAQmB,UAAUiM,aAAe,WAC/B,MAAoB,UAAbvO,KAAK0E,MAAmC,IAAf1E,KAAKwJ,OASvCrI,EAAQmB,UAAUkM,aAAe,SAAS9J,GACxC,OAAOvD,EAAQE,WAAWmD,KAAKxE,KAAKoC,GAAI,QAAUsC,EAAO,WAS3DvD,EAAQmB,UAAUmM,YAAc,WAC9B,IAAI1L,EAAQ/C,KAEZ,OAAOmB,EAAQE,WAAWmD,KAAKxE,KAAKoC,GAAI,cAAcvC,KAAK,SAASiC,GAElEiB,EAAMmH,aACNnH,EAAMgH,WACNhH,EAAMiJ,YAAc,EAGhBlM,QAAQ8L,UAAU7I,EAAMS,WAAaT,EAAMS,SAASf,QACtDM,EAAMoF,SAAStF,eAAeI,QAAQ,IAGpCnB,EAAK2H,QACP1G,EAAMoF,SAAS3C,YAAY1D,EAAK2H,WAUtCtI,EAAQmB,UAAUoM,YAAc,WAC9B,IAAI3L,EAAQ/C,KAEZ,OAAOmB,EAAQE,WAAWmD,KAAKxE,KAAKoC,GAAI,YAAYvC,KAAK,WACvDkD,EAAMiJ,YAAc,EACpB/L,EAAEC,QAAQ6C,EAAMmH,UAAW,SAAS7D,GAClCA,EAAQsI,QAAS,OAWvBxN,EAAQmB,UAAUsM,cAAgB,SAASC,EAAUxB,EAAOyB,GAC1D,IAAIhN,GAAQiN,QAAS9O,EAAEyH,IAAImH,EAAU,OACzBxB,MAAOA,EACPyB,UAAWA,GAEvB,OAAO3N,EAAQE,WAAWmD,KAAKxE,KAAKoC,GAAI,mBAAoBN,GAAMjC,KAAK,WACrE,OAAOgP,KAUX1N,EAAQmB,UAAU0M,qBAAuB,WACvC,IAAmBC,EAAkBC,EAOrC,OALAD,EAAmBhP,EAAEkL,OAAOnL,KAAKkK,UAAW,SAAS7D,GAAW,OAAOA,EAAQ+E,YAEtEyB,KADTqC,EAAejP,EAAEyH,IAAIuH,EAAkB,SAE3BE,SAAUpJ,EAAE,uBAEjB5E,EAAQE,WAAW+N,SAASpP,KAAKoC,GAAI,gBAAiByK,KAAMqC,KASrE/N,EAAQmB,UAAU+M,aAAe,WAC/B,IAAIvM,EAIJ,OAFAA,GAAYqM,SAAUnP,KAAKgF,KAAO,QAE3B7D,EAAQE,WAAW+N,SAASpP,KAAKoC,GAAI,eAAgB,KAAMU,IAUpE3B,EAAQmB,UAAUgN,QAAU,SAASxM,GACnC,IAAIC,EAAQ/C,KAEZ,OAAOmB,EAAQE,WAAWmD,KAAKxE,KAAKoC,GAAI,SAAUU,GAC/CjD,KAAK,WAEJ,OADAkD,EAAMoF,SAAStF,eAAeI,QAAQ,KAC/B,KAYb9B,EAAQmB,UAAUiN,iBAAmB,SAAS1C,EAAMgC,GAClD,IAA4CW,EAAxCzM,EAAQ/C,KAAwCyP,EAAazP,KAAKkK,UAAUzH,OA0BhF,OAvBA+M,EAASvP,EAAEkL,OAAO0D,EAAU,SAASxI,EAASlE,GAAK,OAAQkE,EAAQsI,SACnE3O,KAAKgM,aAAewD,EAAO/M,OAG3BxC,EAAEyP,aAAa1P,KAAKkK,UAAW,SAAS7D,EAAS1D,GAC/C,IAAIgN,EAAgB1P,EAAE2P,UAAU/C,EAAM,SAASpF,GAC7C,OAAOpB,EAAQoB,KAAOA,IAEpBkI,GAAiB,GACnB9C,EAAK5E,OAAO0H,EAAe,UACpB5M,EAAMgH,QAAQ1D,EAAQoB,KACzBpB,EAAQoB,KAAO1E,EAAMyI,wBAChBzI,EAAMyI,gBACfzI,EAAMmH,UAAUjC,OAAOtF,EAAO,GAC1BA,EAAQ8M,IACVA,EAAa9M,IAGfI,EAAMgH,QAAQ1D,EAAQoB,MAAQoF,EAAKpK,SAKhCgN,GAUTtO,EAAQmB,UAAUuN,gBAAkB,SAAShB,EAAU/L,GACrD,IAAkB+J,EAAM/K,EAApBiB,EAAQ/C,KAMZ,OAHA8B,GAAS+K,KADTA,EAAO5M,EAAEyH,IAAImH,EAAU,QAEnB/L,GAAShD,QAAQC,OAAO+B,EAAMgB,GAE3B3B,EAAQE,WAAWmD,KAAKxE,KAAKoC,GAAI,cAAeN,GACpDjC,KAAK,SAASiC,GAKb,OAHIA,EAAK2H,QACP1G,EAAMoF,SAAS3C,YAAY1D,EAAK2H,QAE3B1G,EAAMwM,iBAAiB1C,EAAMgC,MAU1C1N,EAAQmB,UAAUwN,4BAA8B,SAASjB,GACvD,IACIhC,EAAO5M,EAAEyH,IAAImH,EAAU,OACvBkB,EAAuB,QAAb/P,KAAK0E,KAAiB,wBAA0B,qBAE9D,OAAOvD,EAAQE,WAAWmD,KAAKxE,KAAKoC,GAAI2N,GAASlD,KAAMA,KASzD1L,EAAQmB,UAAU0N,cAAgB,SAASnB,EAAUoB,GACnD,IAAIlN,EAAQ/C,KACR6M,EAAO5M,EAAEyH,IAAImH,EAAU,OAE3B,OAAO1N,EAAQE,WAAWmD,KAAKxE,KAAKoC,GAAI,gBAAiByK,KAAMA,EAAMoD,OAAQA,IAC1EpQ,KAAK,SAASiC,GAETA,EAAK2H,QACP1G,EAAMoF,SAAS3C,YAAY1D,EAAK2H,WAUxCtI,EAAQmB,UAAU4N,cAAgB,SAASrB,EAAUoB,GACnD,IAAkBpD,EAAd9J,EAAQ/C,KAGZ,OADA6M,EAAO5M,EAAEyH,IAAImH,EAAU,OAChB1N,EAAQE,WAAWmD,KAAKxE,KAAKoC,GAAI,gBAAiByK,KAAMA,EAAMoD,OAAQA,IAC1EpQ,KAAK,WACJ,OAAOkD,EAAMwM,iBAAiB1C,EAAMgC,MAS1C1N,EAAQmB,UAAU6N,OAAS,WACzB,IAAIpN,EAAQ/C,KACZF,QAAQI,QAAQF,KAAK4K,YAAa,SAASwF,EAAOC,UACzCtN,EAAMsN,KAEfvQ,QAAQC,OAAOC,KAAMA,KAAK4K,aAC1B5K,KAAK4K,YAAc5K,KAAK6K,SAS1B1J,EAAQmB,UAAUuL,MAAQ,WACxB,IAAI9K,EAAQ/C,KAEZ,OAAOmB,EAAQE,WAAWiP,KAAKtQ,KAAKoC,GAAIpC,KAAK6K,SAAShL,KAAK,SAASiC,GAIlE,OAFAiB,EAAM6H,YAAc7H,EAAM8H,QAC1B1J,EAAQX,KAAKC,MAAMC,KAAKC,UAAUmB,OAAMlB,EAAW,IAC5CkB,GACN,SAASyO,GAIV,OAHApP,EAAQX,KAAKgQ,MAAM9P,KAAKC,UAAU4P,EAASzO,UAAMlB,EAAW,IAE5DmC,EAAMoN,SACCI,EAASzO,QAUpBX,EAAQmB,UAAUyC,YAAc,SAASD,EAAME,GAC7C,OAAOhF,KAAKmI,SAASpD,YAAYD,EAAME,IASzC7D,EAAQmB,UAAUuI,MAAQ,WACxB,IAAItG,KAWJ,OAVAzE,QAAQI,QAAQF,KAAM,SAASoQ,EAAOC,GACzB,eAAPA,GACO,YAAPA,GACO,WAAPA,GACO,QAAPA,GACO,WAAPA,GACU,KAAVA,EAAI,KACN9L,EAAQ8L,GAAOD,KAGZ7L,GAUTpD,EAAQmB,UAAUiG,QAAU,SAASL,GACnC,IAAInF,EAAQ/C,KACRsH,EAAWnG,EAAQL,GAAGyG,QAiE1B,OA/DAvH,KAAKyQ,mBAAqBvI,EAC1BlI,KAAKyQ,mBAAmB5Q,KAAK,SAASiC,GACpC,IAAImN,EAAmBhP,EAAEyH,IAAI3E,EAAMmI,oBAAqB,OACxD/J,EAAQJ,SAAS,WACf,IAAI8L,EAAM7C,IAELlI,EAAK+K,MAAQ9J,EAAM2N,UAAY5O,EAAK+K,KAAKpK,OAAS,KACrDM,EAAM2N,UAAY,GAEpB3N,EAAMqF,KAAKtG,GAEPiB,EAAM8J,OACR1L,EAAQX,KAAKC,MAAM,cAAgBsC,EAAM8J,KAAKpK,OAAS,aAGvDuH,EAAU/J,EAAE0Q,UAAU5N,EAAMiH,QAAQ,GAAI,eACxCjH,EAAMiH,QAAQ/B,OAAO,EAAG,GAGpBlF,EAAM6N,WACR/D,EAAO9J,EAAM8J,KAAK,GAClB9J,EAAM8J,KAAK5E,OAAO,EAAG,IAIvBhI,EAAEqE,OAAOvB,EAAM8J,KAAM,SAASgE,EAAMC,EAAK3O,GACvC,IAAIL,EAAMiP,EAgBV,OAdEjP,EADEiB,EAAM6N,SACD3Q,EAAE+Q,UAAUnE,EAAMiE,IAEjBrJ,IAAKqJ,EAAI7L,YAGnBlC,EAAMgH,QAAQjI,EAAK2F,KAAOtF,GAE1B4O,EAAY,IAAI5P,EAAQM,SAASsB,EAAMoF,SAAS/F,GAAIW,EAAOjB,GAAM,IAGvDsJ,SAAW6D,EAAiB1L,QAAQwN,EAAUtJ,MAAQ,EAEhEoJ,EAAK5M,KAAK8M,GAEHF,GACN9N,EAAMmH,WAGTjK,EAAEC,QAAQ6C,EAAMiH,QAAS,SAASlI,GAChC,IAAIgP,EAAM7Q,EAAE+Q,UAAUhH,EAASlI,GAC3BK,EAAIY,EAAMgH,QAAQ+G,EAAIrJ,IAAIxC,YAC9BhF,EAAEF,OAAOgD,EAAMmH,UAAU/H,GAAI2O,MAGjC3P,EAAQX,KAAKC,MAAM,WAAasC,EAAMX,GAAK,UAC3CW,EAAMkH,YAAa,EACnB3C,EAASM,QAAQ7E,EAAMmH,cAExB,SAASpI,GACVhC,QAAQC,OAAOgD,EAAOjB,GACtBiB,EAAMkO,SAAU,EAChBlO,EAAMkH,YAAa,EACnB3C,EAAShC,WAGJgC,EAASS,SASlB5G,EAAQmB,UAAU8K,eAAiB,SAASN,GAC1C,IAAI/J,EAAQ/C,KAEZ8M,EAAkBjN,KAAK,SAASiC,GAC9BX,EAAQJ,SAAS,WACf,IAAIiJ,EAASkH,EACTpP,EAAKW,OAAS,IAEhBuH,EAAU/J,EAAE0Q,UAAU7O,EAAK,GAAI,eAC/BA,EAAKmG,OAAO,EAAG,GACfhI,EAAEC,QAAQ4B,EAAM,SAASqP,GACvBA,EAAiBlR,EAAE+Q,UAAUhH,EAASmH,GACtCD,EAAInO,EAAMgH,QAAQoH,EAAe1J,IAAIxC,YACjCnF,QAAQ8L,UAAUsF,IACpBjR,EAAEF,OAAOgD,EAAMmH,UAAUgH,GAAIC,WAazChQ,EAAQmB,UAAU8O,iBAAmB,WACnC,IAAIC,EAASrR,KAAKsR,WAAY,YAAc,cAE5CnQ,EAAQE,WAAWmD,KAAKxE,KAAKoC,GAAIiP,IAh+BrC,GCAA,WACE,aAUA,SAASjQ,EAAQ+E,EAAW5B,EAASgN,EAAmBC,GACtDxR,KAAKmG,UAAYA,EACjBnG,KAAKyR,SAAWlN,EAChBvE,KAAK0R,mBAAoB,EACzB1R,KAAK2R,oBAAqB,EAC1B3R,KAAK+G,UAAY6K,MAAQC,MAAQC,QACjC9R,KAAKoL,UAAW,EAGsB,mBAA3BmG,EAAkB1R,OAEvBC,QAAQgK,YAAY0H,IAAUA,IAChC1R,QAAQC,OAAOC,KAAMuR,GACrBvR,KAAK+R,wBAEP/R,KAAKyH,IAAM0B,SAASoI,EAAkB9J,MAItCzH,KAAKuI,QAAQgJ,GASjBnQ,EAAQP,UAAY,KAAM,WAAY,OAAQ,aAAc,mBAAoB,WAAY,cAAe,SAASC,EAAIC,EAAUP,EAAMQ,EAAUgR,EAAgB/Q,EAAUC,GAoB1K,OAnBApB,QAAQC,OAAOqB,GACb6Q,OAAQD,EACRlR,GAAIA,EACJC,SAAUA,EACVP,KAAMA,EACNa,WAAY,IAAIJ,EAASD,EAASM,WAAW,aAAe,OAAQN,EAASM,cAC7EC,aAAcL,EACdgR,QAASpS,QAAQ4M,KAAKxL,EAAaA,EAAYiR,UAI7CjR,EAAYuF,SAAS2L,uBACvBhR,EAAQiR,MAAQnR,EAAYuF,SAAS2L,sBAEnClR,EAAYuF,SAAS6L,mCACqC,UAA1DpR,EAAYuF,SAAS6L,oCACvBlR,EAAQmR,4BAA6B,GAGhCnR,IAOT,IACEtB,QAAQ4B,OAAO,iBAEjB,MAAMC,GACJ7B,QAAQ4B,OAAO,iBAAkB,gBAEnC5B,QAAQ4B,OAAO,iBACZ0H,SAAS,oBACRoJ,WAAiB,EACjBC,gBAAiB,EACjBC,QAAiB,EACjBC,OAAiB,EACjBC,WAAiB,MAElBhR,QAAQ,UAAWR,EAAQP,UAS9BO,EAAQyR,WAAa,SAASC,EAAOC,GACnC,IAAIC,EAAK,IAAI9E,OAAO4E,EAAO,KACvBG,KAUJ,OARAhT,EAAEC,QAAQD,EAAEiT,KAAK9R,EAAQiR,OAAQ,SAASc,GACxC,IAAIC,EAAOhS,EAAQiR,MAAMc,IACE,GAAvBC,EAAK,GAAGC,OAAOL,KACZ/S,EAAEqT,SAASP,EAAcI,IAC5BF,EAAQhP,MAAOe,KAAMmO,EAAKzN,YAAa0N,EAAK,GAAIG,MAAOH,EAAK,QAI3DH,GAST7R,EAAQkB,UAAUgE,cAAgB,SAASxD,GACzC,IAAIC,EAAQ/C,KAAMoC,EAAKpC,KAAKoC,GAE5B,SAASoR,IACP,IAAI1O,EAKJ,OAJAA,EAAO7E,EAAEyH,IAAI3E,EAAM0O,SAAS3M,KAAK4E,MAAM,KAAM,SAASC,GACpD,MAAO,SAAWA,EAAUC,qBAEzB3B,OAAO,EAAG,EAAGlF,EAAMoD,WACjBrB,EAAK+E,KAAK,KAcnB,OAXI/J,QAAQgK,YAAY9J,KAAKoC,KAAOU,GAAWA,EAAQ2Q,WACrDzT,KAAKoC,GAAKoR,IAAc,IAAMxT,KAAKyH,IACnCrF,EAAKpC,KAAKoC,IAERU,GAAWA,EAAQyD,SAAWvG,KAAK0T,UACrCtR,EAAKoR,IAAc,IAAMxT,KAAK0T,SAE5B5Q,GAAWA,EAAQ6Q,mBACrBvR,EAAKhB,EAAQC,WAAWyD,KAAK1C,IAGxBA,GASThB,EAAQkB,UAAUsR,QAAU,SAASnM,GACnC,IAA6C9E,EAAzCkR,EAAU7T,KAAKyH,MAAQ,EAAI1E,EAAQ/C,KAEnC6T,GAAU1K,SAAS1B,KACrBzH,KAAKyH,IAAM0B,SAAS1B,GACpBzH,KAAKsG,eAAemN,SAAS,IACzBI,GAAU,GACZA,EAASA,EAAO5O,WACZnF,QAAQ8L,UAAU5L,KAAKyR,SAAS1H,QAAQ8J,MAC1ClR,EAAQ3C,KAAKyR,SAAS1H,QAAQ8J,GAC9B7T,KAAKyR,SAAS1H,QAAQtC,GAAO9E,SACtB3C,KAAKyR,SAAS1H,QAAQ8J,GAG7B5T,EAAEC,SAAS,OAAQ,KAAM,WAAY,SAAS4T,GAC5C/Q,EAAM0O,SAASvH,UAAUvH,GAAOmR,GAAQ/Q,EAAM+Q,OAM9C9T,KAAKyR,SAASsC,YAAYjL,gBACuB,SAAjD9I,KAAKyR,SAASsC,YAAYjL,eAAepE,MAC3C1E,KAAKyR,SAASsC,YAAYjL,eAAe+C,YAYjDzK,EAAQkB,UAAUyP,qBAAuB,WACvC,IAAIhP,EAAQ/C,KACRG,EAAaF,EAAEyH,IAAI3E,EAAM0O,SAAStJ,SAAShI,WAAY,SAG3DF,EAAEC,SAAS,OAAQ,KAAM,KAAM,MAAO,YAAa,SAASwE,GAC1DzE,EAAEC,QAAQ6C,EAAM2B,GAAO,SAAS5C,GAC1BA,EAAKkD,MAAQlD,EAAKkD,MAAQlD,EAAKvB,OACjCuB,EAAKxB,KAAOwB,EAAKkD,KAAO,KAAOlD,EAAKvB,MAAQ,IAExCuB,EAAKkD,KAAKvC,OAAS,GAErBX,EAAKkS,UAAYlS,EAAKkD,KACflD,EAAKkD,KAAK0E,MAAM,KAAKjH,SAE5BX,EAAKkS,UAAY/T,EAAEgU,MAAMhU,EAAEiU,KAAKpS,EAAKkD,KAAK0E,MAAM,QAAQA,MAAM,OAAO2E,QAAQ,IAAK,MAE7EvM,EAAKvB,QACZuB,EAAKxB,KAAO,IAAMwB,EAAKvB,MAAQ,IAC/BuB,EAAKkS,UAAYlS,EAAKvB,MAAMmJ,MAAM,KAAK,IAGzC5H,EAAKqS,MAAQ/S,EAAQ8Q,QAAQpQ,EAAKvB,MAAO,IAIrCN,EAAEsD,QAAQpD,EAAY2B,EAAKvB,QAAU,IACvCuB,EAAKkS,UAAYjO,EAAE,YAW3B3E,EAAQkB,UAAU8R,iBAAmB,SAASpJ,GAC5C,IAAIjI,EAAQ/C,KAAMqU,KAAaC,EAAQ,EAAGC,EAAQ,EAelD,OAZAtU,EAAEC,SAAS,KAAM,KAAM,OAAQ,SAASwE,GACtC6P,GAASxR,EAAM2B,GAAO3B,EAAM2B,GAAMjC,OAAS,EAC3CxC,EAAEC,QAAQ6C,EAAM2B,GAAO,SAAS5C,EAAMK,GAChCmS,EAAQtJ,GACVqJ,EAAOpQ,KAAKnC,EAAKkS,WACnBM,QAIAC,EAAQvJ,GACVqJ,EAAOpQ,KAAK8B,EAAE,mBAAqBwO,EAAQvJ,IAEtCqJ,EAAOxK,KAAK,OASrBzI,EAAQkB,UAAUkS,cAAgB,SAAS9P,GACzC,IAAI+P,EAAU,GAKd,OAJIzU,KAAK0E,IAAS1E,KAAK0E,GAAMjC,OAAS,IACpCgS,EAAUzU,KAAK0E,GAAM,GAAGM,MAAQhF,KAAK0E,GAAM,GAAGnE,OAAS,IAGlDkU,GASTrT,EAAQkB,UAAUoS,cAAgB,WAChC,IAAIC,EAAkB,EAQtB,OAPAA,EAAkB1U,EAAEqE,QAAQ,KAAM,MAAOrE,EAAEyM,KAAK,SAAS4H,EAAO5P,GAC9D,OAAI1E,KAAK0E,GACA4P,EAAQtU,KAAK0E,GAAMjC,OAEnB6R,GACRtU,MAAO2U,IAEF3U,KAAK4U,SAAWD,EAAkB,GAQ5CvT,EAAQkB,UAAUuS,kBAAoB,WACpC7U,KAAK2R,oBAAqB,SACnB3R,KAAK8U,QASd1T,EAAQkB,UAAUyS,SAAW,WAC3B,IAAIhS,EAAQ/C,KACRgV,KACA3R,EAAS,SAAS4R,GAChBA,EAAKC,SAAW,uBACC,gCAAbD,EAAKvQ,KACPrB,EAAOpD,EAAE2E,KAAKqQ,EAAKE,QAAS,SAASC,GACnC,OAAOH,EAAKI,eAAiBD,EAAcE,eAItCxV,QAAQyV,QAAQN,EAAKE,UACX,2BAAbF,EAAKvQ,MAAgE,IAA3BuQ,EAAK,kBACjDlS,EAAMyS,QACJC,MAAOR,EAAKQ,MACZC,YAAaT,EAAKU,aAAaV,EAAKU,aAAalT,OAAS,GAC1D4D,QAAS4O,EAAK5O,SAGI,8BAAb4O,EAAKvQ,OACZ3B,EAAM6S,WACJH,MAAOR,EAAKQ,OAEVR,EAAKQ,MACP1S,EAAM6S,UAAUvP,QAAUN,EAAE,6BAE5BhD,EAAM6S,UAAUvP,QAAUN,EAAE,kIAEhC9F,EAAEC,QAAQ+U,EAAKE,QAAS,SAASU,GAC/BxS,EAAOwS,OAIL/V,QAAQgK,YAAYmL,EAAKa,eAE3Bb,EAAKa,YAAcb,EAAKE,QACxBpS,EAAM2O,mBAAsBuD,EAAKa,YAAYvS,QAAQ,aAAe,GAErD,yBAAb0R,EAAKvQ,MACPuQ,EAAKc,MAAO,EACRhT,EAAM4O,oBAAsBvQ,EAAQmR,4BAClCzS,QAAQgK,YAAYmL,EAAKe,iBAC3Bf,EAAKe,cAAgBC,SAASC,cAAc,OAC5CjB,EAAKe,cAAcG,UAAYlB,EAAKa,YACpChW,QAAQI,SAAS,MAAO,OAAQ,UAAW,aAAc,SAAU,SAASkW,GAC1E,IACIC,EACAjG,EACAjO,EAHAmU,EAAWrB,EAAKe,cAAcO,iBAAiB,WAAaH,EAAS,KAIzE,IAAKjU,EAAI,EAAGA,EAAImU,EAAS7T,OAAQN,IAE/BiO,GADAiG,EAAUvW,QAAQuW,QAAQC,EAASnU,KACnB2R,KAAK,UAAYsC,GACjCC,EAAQvC,KAAKsC,EAAQhG,GACrBiG,EAAQG,WAAW,UAAYJ,KAGnCrT,EAAM2O,mBAAoB,GAE5BuD,EAAKE,QAAUF,EAAKe,cAAcG,WAGlClB,EAAKE,QAAUF,EAAKa,YAEtBd,EAAM/Q,KAAKgR,IAES,yBAAbA,EAAKvQ,MACQ,0BAAbuQ,EAAKvQ,MACQ,yBAAbuQ,EAAKvQ,MAEK,0BAAbuQ,EAAKvQ,KACPuQ,EAAKC,SAAW,uBACI,yBAAbD,EAAKvQ,OACZuQ,EAAKC,SAAW,uBAGlBD,EAAKwB,SAAU,EACfzB,EAAM/Q,KAAKgR,KAGXA,EAAKc,MAAO,EACZd,EAAKE,QAAUF,EAAKa,YACpBd,EAAM/Q,KAAKgR,MAKrB,OAAIjV,KAAK8U,OAEA9U,KAAK8U,QAEL9U,KAAKgV,OACZ3R,EAAOrD,KAAKgV,OAGdhV,KAAK8U,OAASE,EAEPA,IAUT5T,EAAQkB,UAAUoU,iBAAmB,WACnC,IAAI3T,EAAQ/C,KAEZ,OAAOoB,EAAQC,WAAWW,MAAMhC,KAAKsG,gBAAiB,QAAQzG,KAAK,SAASiC,GAE1E,OADAhC,QAAQC,OAAOgD,EAAOjB,GACfV,EAAQC,WAAWW,MAAMe,EAAMuD,eAAeC,SAAS,IAAQ,QAAQ1G,KAAK,SAASiC,GAE1F,IAAI1B,EAAWH,EAAE2E,KAAK7B,EAAM0O,SAAStJ,SAAShI,WAAY,SAASC,GACjE,OAA4D,IAArD0B,EAAK6U,KAAKC,cAAcrT,QAAQnD,EAASG,SAE9CH,IACF0B,EAAK6U,KAAOvW,EAASE,MACvB,IAAIkG,EAAkBpF,EAAQG,aAAakF,SAASC,sBAAsB3D,EAAM0O,SAAStJ,SAAS/F,IASlG,OARIoE,EAAgBrB,WACdqB,EAAgBrB,SAASwB,aAC3B7E,EAAK8E,MAAO,GACVJ,EAAgBrB,SAAS0B,gBAC3B/E,EAAKgF,SAAU,IAEnB1F,EAAQZ,KAAKC,MAAM,cAAgBC,KAAKC,UAAUmB,OAAMlB,EAAW,IACnEd,QAAQC,OAAOgD,EAAMgE,SAAUjF,GACxBA,EAAK+U,UAUlBzV,EAAQkB,UAAUwU,cAAgB,WAChC,OAAO1V,EAAQC,WAAWW,MAAMhC,KAAKsG,gBAAiB,cAUxDlF,EAAQkB,UAAUyU,OAAS,SAAS5D,GAClC,OAAOnT,KAAKgX,gBAAgB,MAAO7D,IAUrC/R,EAAQkB,UAAU2U,UAAY,SAAS9D,GACrC,OAAOnT,KAAKgX,gBAAgB,SAAU7D,IAWxC/R,EAAQkB,UAAU0U,gBAAkB,SAASlI,EAAWqE,GACtD,IAAIrR,GACFgN,UAAWA,EACXC,SAAU/O,KAAKyH,KACf4F,MAAO8F,GAGT,GAAIA,EACF,OAAO/R,EAAQC,WAAWmD,KAAKxE,KAAKyR,SAAStH,MAAO,mBAAoBrI,IAW5EV,EAAQkB,UAAU4U,YAAc,SAASpS,EAAMuM,EAAQvP,GACrD,IAAIiB,EAAQ/C,KACZoB,EAAQC,WAAWmD,MAAMxE,KAAKsG,gBAAiBxB,GAAM+E,KAAK,KAAMwH,EAAQvP,GAAMjC,KAAK,SAASiC,GAC1FV,EAAQL,SAAS,WACfgC,EAAMoU,eAUZ/V,EAAQkB,UAAU8U,SAAW,WAE3B,OADApX,KAAKqX,iBAAmB,EACjBjW,EAAQC,WAAWmD,KAAKxE,KAAKsG,gBAAiB,YASvDlF,EAAQkB,UAAUgV,kBAAoB,SAASnI,GAC7C,IAAIrN,GAASqN,SAAYA,GACrBpM,EAAQ/C,KACZoB,EAAQC,WAAWW,MAAMhC,KAAKsG,eAAeC,SAAS,IAAQ,mBAAoBzE,GAAMjC,KAAK,SAASiC,GACpGV,EAAQL,SAAS,WACfgC,EAAMgE,SAASwQ,gBAAkBtX,EAAEkL,OAAOpI,EAAMgE,SAASwQ,gBAAiB,SAASC,GACjF,OAAOA,EAAWrI,UAAYA,SAYtC/N,EAAQkB,UAAUmV,WAAa,WAC7B,IAAI1U,EAAQ/C,KACRqR,EAAS,qBAKb,OAHIrR,KAAK0X,YACPrG,EAAS,wBAEJjQ,EAAQC,WAAWmD,KAAKxE,KAAKsG,gBAAiB+K,GAAQxR,KAAK,SAASiC,GACzEV,EAAQL,SAAS,WACfgC,EAAM2U,WAAa3U,EAAM2U,eAW/BtW,EAAQkB,UAAU2H,WAAa,WAC7B,OAAOjK,KAAK2X,SAAWvW,EAAQ6Q,OAAOS,SAUxCtR,EAAQkB,UAAU6U,QAAU,SAASrU,GACnC,IAAkByO,EAAdxO,EAAQ/C,KAEZ,OAAI8C,GAAWA,EAAQ8U,UAAY5X,KAAK6X,oBACjC7X,KAAK2O,QACRvN,EAAQC,WAAWW,MAAMhC,KAAKsG,gBAAiB,mBAAmBzG,KAAK,WACrEuB,EAAQL,SAAS,WACfgC,EAAM4L,QAAS,EACf5L,EAAM0O,SAASzF,kBAIdhM,OAGTuR,EAAoBnQ,EAAQC,WAAWW,MAAMhC,KAAKsG,cAAcxD,GAAU,QAEnE9C,KAAKuI,QAAQgJ,KAStBnQ,EAAQkB,UAAU6E,aAAe,SAASF,GACxC,IAAI2K,EAAI9P,EAAMsK,EAAQ,mBAAmB0L,KAAK7Q,GAC1CmF,IAEFwF,EAAK3R,EAAEyH,IAAIqQ,mBAAmB3L,EAAM,IAAI1C,MAAM,KAAM,SAASnJ,GAC3D,MAAO,IAAMA,EAAMyX,OAAS,MAE9BlW,GAAS8P,GAAIA,GAEb3R,EAAEC,SAAS,UAAW,QAAS,SAASsH,GACtC,IAAIwL,EAAK,IAAI9E,OAAO1G,EAAQ,YAC5BA,EAAkB,QAATA,EAAkB,OAASA,GACpC4E,EAAQ4G,EAAG8E,KAAK7Q,MAEdnF,EAAK0F,GAASuQ,mBAAmB3L,EAAM,OAG3CnM,EAAEC,SAAS,KAAM,OAAQ,SAASsH,GAChC,IAAIwL,EAAK,IAAI9E,OAAO1G,EAAQ,aAC5B4E,EAAQ4G,EAAG8E,KAAK7Q,MAEdnF,EAAK0F,GAASvH,EAAEyH,IAAIqQ,mBAAmB3L,EAAM,IAAI1C,MAAM,KAAM,SAASnJ,GACpE,MAAO,IAAMA,EAAMyX,OAAS,SAGlClY,QAAQC,OAAOC,KAAK+G,SAAUjF,KAUlCV,EAAQkB,UAAU2V,OAAS,WACzB,OAAOjY,KAAKkY,UAAU,UASxB9W,EAAQkB,UAAU6V,UAAY,WAC5B,OAAOnY,KAAKkY,UAAU,aASxB9W,EAAQkB,UAAU8V,SAAW,WAC3B,OAAOpY,KAAKkY,UAAU,YAgBxB9W,EAAQkB,UAAU4V,UAAY,SAAS7G,GACrC,IAAItO,EAAQ/C,KAGZ,OAAOoB,EAAQC,WAAWW,MAAMhC,KAAKsG,gBAAiB+K,GAAQxR,KAAK,SAASiC,GAC1E,IAAIyC,EAAS8B,EAKb,OAJAjF,EAAQZ,KAAKC,MAAM,OAAS4Q,EAAS,KAAO3Q,KAAKC,UAAUmB,OAAMlB,EAAW,IAC5E2D,EAAUxB,EAAM0O,SAAStJ,SAAStD,kBAAkB/C,EAAKsE,aACzDC,EAAU,IAAIjF,EAAQU,EAAKqE,UAAW5B,EAASzC,GAExCV,EAAQC,WAAWW,MAAMqE,EAAQC,eAAeC,SAAS,IAAQ,QAAQ1G,KAAK,SAASiC,GAC5FV,EAAQZ,KAAKC,MAAM,OAAS4Q,EAAS,KAAO3Q,KAAKC,UAAUmB,OAAMlB,EAAW,GAAK,kBAAoBmC,EAAM0E,KAC3G,IAAIjB,EAAkBpF,EAAQG,aAAakF,SAASC,sBAAsB3D,EAAM0O,SAAStJ,SAAS/F,IAWlG,OAVIoE,EAAgBrB,WACdqB,EAAgBrB,SAASwB,aAC3B7E,EAAK8E,MAAO,GACVJ,EAAgBrB,SAAS0B,gBAC3B/E,EAAKgF,SAAU,IAEnBhH,QAAQC,OAAOsG,EAAQU,SAAUjF,GAGjCuE,EAAQgS,QAAUhS,QAAStD,EAAOsO,OAAQA,GACnChL,OAWbjF,EAAQkB,UAAUuL,MAAQ,WACxB,IAAI9K,EAAQ/C,KACR8B,EAAO9B,KAAK+G,SAIhB,OAFA3F,EAAQZ,KAAKC,MAAM,UAAYC,KAAKC,UAAUmB,OAAMlB,EAAW,IAExDQ,EAAQC,WAAWiP,KAAKtQ,KAAKsG,eAAeC,SAAS,IAAQzE,GAAMjC,KAAK,SAAS0Q,GACtFnP,EAAQZ,KAAKC,MAAM,UAAYC,KAAKC,UAAU4P,OAAU3P,EAAW,IACnEmC,EAAM6Q,QAAQrD,EAAS9I,KACvB1E,EAAMoU,UACNpU,EAAMiE,OAAQ,KAUlB5F,EAAQkB,UAAUgW,MAAQ,WACxB,IAAIvV,EAAQ/C,KACR8B,EAAOhC,QAAQwM,KAAKtM,KAAK+G,UAI7B,OAFA3F,EAAQZ,KAAKC,MAAM,UAAYC,KAAKC,UAAUmB,OAAMlB,EAAW,IAExDQ,EAAQC,WAAWmD,KAAKxE,KAAKsG,eAAeC,SAAS,IAAQ,OAAQzE,GAAMjC,KAAK,SAAS0Q,GAC9F,MAAuB,WAAnBA,EAASzI,QACPhI,QAAQ8L,UAAU7I,EAAMsV,UACtBtV,EAAMsV,OAAOhH,OAAOkH,WAAW,SACjCxV,EAAMsV,OAAOhS,QAAQmS,YAAa,EACJ,WAAvBzV,EAAMsV,OAAOhH,SACpBtO,EAAMsV,OAAOhS,QAAQoS,aAAc,IAEhClI,GAGAnP,EAAQN,GAAGwE,OAAOiL,EAASzO,SAWxCV,EAAQkB,UAAUiG,QAAU,SAASgJ,GACnC,IAAIxO,EAAQ/C,KAyBZ,OAtBAA,KAAK2X,QAAUvW,EAAQ6Q,OAAOQ,gBAC9BrR,EAAQL,SAAS,WACXgC,EAAM4U,SAAWvW,EAAQ6Q,OAAOU,SAClC5P,EAAM4U,QAAUvW,EAAQ6Q,OAAOS,UAChCtR,EAAQ6Q,OAAOW,YAGlB5S,KAAK6X,mBAAqBtG,EAAkB1R,KAAK,SAASiC,GAMxD,OAJqB,IAAjBiB,EAAM4L,SACR5L,EAAM4L,QAAS,EACf5L,EAAM0O,SAASzF,eAEV5K,EAAQL,SAAS,WAKtB,OAJAjB,QAAQC,OAAOgD,EAAOjB,GACtBiB,EAAMgP,uBACNhP,EAAM4O,oBAAqB,EAC3B5O,EAAM4U,QAAUvW,EAAQ6Q,OAAOU,OACxB5P,MAIJ/C,KAAK6X,oBASdzW,EAAQkB,UAAUuI,MAAQ,SAAS/H,GACjC,IAAIuD,KACAqS,EAAoB5V,GAAWA,EAAQ4V,kBAO3C,OANA5Y,QAAQI,QAAQF,KAAM,SAASoQ,EAAOC,IACzB,eAAPA,GAAkC,KAAVA,EAAI,IAAaqI,KAC3CrS,EAAQgK,GAAOD,KAIZ/J,GASTjF,EAAQkB,UAAU8M,SAAW,WAC3B,IAAItN,EAAMgB,EAKV,OAHAhB,GAAS+K,MAAO7M,KAAKyH,MACrB3E,GAAYqM,SAAUnP,KAAKiN,QAAU,QAE9B7L,EAAQC,WAAW+N,SAASpP,KAAKyR,SAASrP,GAAI,eAAgBN,EAAMgB,IAS7E1B,EAAQkB,UAAUqW,oBAAsB,WACtC,IAAI7V,EAIJ,OAFAA,GAAYqM,SAAUpJ,EAAE,eAAiB,IAAM/F,KAAKyH,IAAM,QAEnDrG,EAAQC,WAAW+N,SAASpP,KAAKsG,gBAAiB,qBAAsB,KAAMxD,IAhyBzF,GCAA,WACE,aAMA,SAAS8V,IACP5Y,KAAK6Y,MAAO,EACZ7Y,KAAKqG,QAAU,KACfrG,KAAKsW,YAQPsC,EAAa/X,UAAY,YAAa,WAAY,WAAY,YAAa,SAASiY,EAAW/X,EAAUgY,EAAUC,GAQjH,OAPAlZ,QAAQC,OAAO6Y,GACbE,UAAWA,EACX/X,SAAUA,EACVgY,SAAUA,EACVC,UAAWA,IAGN,IAAIJ,IAQbA,EAAatW,UAAU2W,WAAa,SAAS5S,GAC3CrG,KAAKqG,QAAUA,GAQjBuS,EAAatW,UAAU4W,cAAgB,SAAS7C,GAC9CrW,KAAKsW,SAASrS,KAAKoS,IAQrBuC,EAAatW,UAAU6W,gBAAkB,SAASC,GAChDpZ,KAAKkT,MACH0F,EAAaI,UAAUK,cACrBhJ,IAAK,OACL3K,YAAaK,EAAE,sBACfuT,SAAUxZ,QAAQ4M,KAAK0M,EAAOA,EAAMG,iBAEtCX,EAAaI,UAAUK,cACrBhJ,IAAK,QACL3K,YAAaK,EAAE,kBACfuT,SAAUxZ,QAAQ4M,KAAK0M,EAAOA,EAAMI,cAGxCvZ,EAAEC,QAAQF,KAAKkT,KAAM,SAAS7C,GAC5BuI,EAAaI,UAAUS,eAAepJ,MAS1CuI,EAAatW,UAAUoX,YAAc,SAASC,EAAQC,GACpD,IAAI7W,EAAQ/C,KACR+Y,EAAWH,EAAaG,SACxBc,EAAU/Z,QAAQuW,QAAQrW,KAAKqG,QAAQ0O,WAAW6E,GAAWzE,SAASvQ,KAAK,OAAO,GAAGkV,IAErFC,EAAS9Z,EAAEkL,OAAOnL,KAAKqG,QAAQkR,gBAAiB,SAASyC,GAC3D,OAA4C,IAArCA,EAAMC,SAAS1W,QAAQ,YAG5BoM,EAAgB1P,EAAE2P,UAAUmK,EAAQ,SAAS5F,GAC/C,OAAOA,EAAM+F,IAAI3W,QAAQsW,IAAY,IAIvC/Z,QAAQuW,QAAQuC,EAAaE,UAAU,GAAGqB,MAAMC,SAAS,6BAGzD,IAAIC,EAAgBtB,EAASuB,mBACxBC,WAEDC,EAAiBzB,EAAS0B,oBACzBC,SAASf,EAAOgB,QAChBC,SAAS,KACTC,cAAc9B,EAAS+B,UAAUC,MAElCC,GACFC,SAAUnb,QAAQuW,QAAQJ,SAASkE,MACnCe,QACEC,UAAWpB,EAAOtX,OAAQ,EAC1BsX,OAAQA,EACRpK,cAAeA,EACfyL,cAAerB,EAAOpK,IAExB0L,kBAAkB,EAClBC,WAAYC,EACZC,aAAc,aACdC,SAAUpB,EACVS,UAAWN,EACXkB,YAAa/B,EACbgC,YAAY,EACZC,aAAa,EACbC,UACE,qCACA,oFACA,wCACA,+BAAiC9V,EAAE,SAAW,IAC9C,iDACA,sCACA,mBACA,kDACA,0FACA,wCACA,+BAAiCA,EAAE,mBAAqB,IACxD,0EACA,yCACA,mBACA,WACA,2EACA,gFACA,gEACA,6CACA,qBACA,yEACA,4EACA,mFACA,2CACA,qBACA,WACA,wCACA,kFACA,mGACA,eACA,aACA,uBACA8D,KAAK,IACPiS,WAAW,EACXC,qBAAqB,EACrBC,eAAe,EACfC,aAAa,EACbC,eAAgB,WACdnZ,EAAM8V,MAAO,EACb5Y,EAAEC,QAAQ0Y,EAAaE,UAAUlU,KAAK,oBAAoB,GAAGuX,uBAAuB,sBAC1E,SAASC,GACP,IAAIC,EAAQD,EAAa5Y,SAAS,GAClC1D,QAAQuW,QAAQgG,GAAOC,IAAI,OAAQ,WAC7BD,EAAME,aAAeF,EAAMG,eAC7BH,EAAMI,UAAUC,IAAI,cAGxB9D,EAAa7X,SAAS,WACpBsb,EAAMI,UAAUE,OAAO,YACtB,QAGjBC,aAAc,WACZ9c,QAAQuW,QAAQuC,EAAaE,UAAU,GAAGqB,MAAM0C,YAAY,6BAC5D9Z,EAAM8V,MAAO,EAEb5Y,EAAEC,QAAQ6C,EAAM+Z,QAAS,SAASzM,GAChCuI,EAAaI,UAAU+D,iBAAiB1M,OAK9C0I,EAASiE,KAAKhC,GAAQnb,KAAK,SAASod,GAClCla,EAAMoW,gBAAgB8D,EAAW7D,SAGnCmC,EAAgB2B,SAAW,cAC3B,SAAS3B,EAAgB0B,GAGvBA,EAAW7D,MAAQpZ,KAEnBA,KAAKmd,MAAQ,WACXF,EAAWE,SAGbnd,KAAKod,YAAc,SAASza,GAC1B3C,KAAK2P,cAAgBhN,EACrB3C,KAAKob,cAAgBpb,KAAK+Z,OAAOpX,IAGnC3C,KAAKwZ,UAAY,WACXxZ,KAAK2P,eAAiB3P,KAAKmb,WAC7Bnb,KAAKod,YAAYpd,KAAK2P,cAAgB,IAG1C3P,KAAKuZ,cAAgB,WACfvZ,KAAK2P,cAAgB,GACvB3P,KAAKod,YAAYpd,KAAK2P,cAAgB,MAQ9C7P,QAAQ4B,OAAO,iBACZE,QAAQ,eAAgBgX,EAAa/X,UAtN1C,GCAA,WACE,aAOA,SAASwc,EAAehZ,GACtBrE,KAAKmI,SAAW9D,EAQlBgZ,EAAexc,UAAY,KAAM,WAAY,OAAQ,aAAc,WAAY,UAAW,UAAW,oBAAqB,SAASC,EAAIC,EAAUP,EAAMQ,EAAUC,EAAUE,EAASC,EAASqH,GAW3L,OAVA3I,QAAQC,OAAOsd,GACbvc,GAAIA,EACJC,SAAUA,EACVP,KAAMA,EACNa,WAAY,IAAIJ,EAASD,EAASM,WAAW,aAAe,OAAQN,EAASM,cAC7EG,SAAUL,EACV0H,eAAgB,KAChBL,QAASA,IAGJ4U,IAOT,IACEvd,QAAQ4B,OAAO,iBAEjB,MAAMC,GACJ7B,QAAQ4B,OAAO,iBAAkB,gBAEnC5B,QAAQ4B,OAAO,iBACZ0H,SAAS,qBACRC,UAAW,GACXC,KAAM,MAEP1H,QAAQ,iBAAkByb,EAAexc,UAQ5Cwc,EAAe/W,cAAgB,SAASH,GACtC,OAAQA,EAAW,WAAW0D,KAAK,MASrCwT,EAAe/a,UAAU8F,KAAO,SAAStG,GACvC9B,KAAKiK,YAAa,EAClBjK,KAAKgD,cACLhD,KAAK+J,WACLjK,QAAQC,OAAOC,KAAM8B,GACrB9B,KAAKoC,GAAKpC,KAAKmK,OAGjBkT,EAAe/a,UAAUgb,aAAe,SAASxb,GAC/C9B,KAAKgD,WAAalB,EAElB7B,EAAEC,QAAQF,KAAKgD,WAAY,SAASuB,GAClCA,EAAQ2F,aACR3F,EAAQwF,cAIZsT,EAAe/a,UAAUib,YAAc,SAASnR,EAAOoR,GACrD,IAAIza,EAAQ/C,KACRqT,EAASgK,EAAevc,GAAGiD,OAE/B/D,KAAKiK,YAAa,EAElBhK,EAAEC,QAAQF,KAAKgD,WAAY,SAASuB,GAClC8O,EAASA,EAAOxT,KAAK,WACnB,GAAIkD,EAAMkH,WAER,OADAoT,EAAe7c,KAAKC,MAAM,qBAAuB8D,EAAQO,MAClDP,EAAQsH,SAAUjD,KAAM,OAAQC,KAAK,EAAOuD,MAAOA,GAAQoR,OAKxEnK,EAAOoK,QAAQ,WACb1a,EAAMkH,YAAa,KAIvBoT,EAAe/a,UAAUob,WAAa,WACpCL,EAAe7c,KAAKC,MAAM,sBAC1BT,KAAKiK,YAAa,GAQpBoT,EAAe/a,UAAUwI,aAAe,aASxCuS,EAAe/a,UAAUqb,qBAAuB,WAC9C1d,EAAEC,QAAQF,KAAKgD,WAAY,SAASuB,UAC3BA,EAAQiH,mBAUnB6R,EAAe/a,UAAUqJ,mBAAqB,WAC5C,OAAO7L,QAAQ8L,UAAU3L,EAAE2E,KAAK5E,KAAKgD,WAAY,SAASuB,GACxD,OAAOzE,QAAQ8L,UAAUrH,EAAQiH,qBAYrC6R,EAAe/a,UAAUgJ,kBAAoB,SAASC,EAAWnF,GAC/D,OAAOtG,QAAQ8L,UAAU3L,EAAE2E,KAAK5E,KAAKgD,WAAY,SAASuB,GACxD,OAAOA,EAAQO,MAAQsB,GAAe7B,EAAQiH,iBAAmBD,MAUrE8R,EAAe/a,UAAUC,UAAY,WACnC,IAAIqb,EAAM,EAEV,OAAK9d,QAAQ8L,UAAU5L,KAAKgD,aAG5B/C,EAAEC,QAAQF,KAAKgD,WAAY,SAASuB,GAClCqZ,GAAOrZ,EAAQ2F,UAAUzH,SAGpBmb,GANEA,GAeXP,EAAe/a,UAAUI,eAAiB,SAASC,GACjD,IAAIR,EAAG+O,EAAG2M,EAAGtZ,EAAS8B,EAEtB,GAAIvG,QAAQ8L,UAAU5L,KAAKgD,aAAeL,GAAS,EAEjD,IADAR,EAAI,EACC+O,EAAI,EAAGA,EAAIlR,KAAKgD,WAAWP,OAAQyO,IAEtC,IADA3M,EAAUvE,KAAKgD,WAAWkO,GACrB2M,EAAI,EAAGA,EAAItZ,EAAQ2F,UAAUzH,OAAQN,IAAK0b,IAE7C,GADAxX,EAAU9B,EAAQ2F,UAAU2T,GACxB1b,GAAKQ,GACH4B,EAAQ0G,aAAa5E,EAAQoB,KAC/B,OAAOpB,EAMjB,OAAO,MASTgX,EAAe/a,UAAU6H,IAAM,WAC7B,OAAOkT,EAAe/W,cAActG,KAAKmI,SAAS/F,KASpDib,EAAe/a,UAAU4I,kBAAoB,WAE3C,OAAOjL,EAAE6d,UAAU9d,KAAKgD,WAAY,SAAS+a,EAAaxZ,GACxDwZ,EAAYxZ,EAAQnC,IAAMmC,EAAQ2G,0BAUtCmS,EAAe/a,UAAU+I,eAAiB,WACxC,OAAOpL,EAAE+d,IAAI/d,EAAE0Q,UAAU3Q,KAAKgD,WAAY,oBAY5Cqa,EAAe/a,UAAUsM,cAAgB,SAASmP,EAAa1Q,EAAOyB,GACpE,IAAIhN,GACFuL,MAAOA,EACPyB,UAAWA,GAETmP,KACAC,KAWJ,OATAje,EAAEC,QAAQ6d,EAAa,SAASlP,EAAUzM,GACxC,GAAIyM,EAASpM,OAAS,EAAG,CACvB,IAAIoK,EAAO5M,EAAEyH,IAAImH,EAAU,OAC3BoP,EAAYha,KAAK4K,GACjB,IAAI9G,EAAUsV,EAAehc,WAAWmD,KAAKpC,EAAI,mBAAoBnC,EAAEke,OAAOrc,GAAOiN,QAASlC,KAC9FqR,EAASja,KAAK8D,MAIXsV,EAAevc,GAAGoD,IAAIga,GAAUre,KAAK,WAC1C,OAAOI,EAAEme,QAAQH,MAWrBZ,EAAe/a,UAAUuN,gBAAkB,SAASkO,GAClD,IAAIG,KAUJ,OARAje,EAAEC,QAAQ6d,EAAa,SAASlP,EAAUzM,GACxC,GAAIyM,EAASpM,OAAS,EAAG,CACvB,IACIsF,EADU8G,EAAS,GAAG4C,SACJ5B,gBAAgBhB,GACtCqP,EAASja,KAAK8D,MAIXsV,EAAevc,GAAGoD,IAAIga,IAU/Bb,EAAe/a,UAAUwN,4BAA8B,SAASiO,GAC9D,IAAIG,KAUJ,OARAje,EAAEC,QAAQ6d,EAAa,SAASlP,EAAUzM,GACxC,GAAIyM,EAASpM,OAAS,EAAG,CACvB,IACIsF,EADU8G,EAAS,GAAG4C,SACJ3B,4BAA4BjB,GAClDqP,EAASja,KAAK8D,MAIXsV,EAAevc,GAAGoD,IAAIga,IAW/Bb,EAAe/a,UAAU0N,cAAgB,SAAS+N,EAAa9N,GAC7D,IAAIiO,KAUJ,OARAje,EAAEC,QAAQ6d,EAAa,SAASlP,EAAUzM,GACxC,GAAIyM,EAASpM,OAAS,EAAG,CACvB,IACIsF,EADU8G,EAAS,GAAG4C,SACJzB,cAAcnB,EAAUoB,GAC9CiO,EAASja,KAAK8D,MAIXsV,EAAevc,GAAGoD,IAAIga,IAW/Bb,EAAe/a,UAAU4N,cAAgB,SAAS6N,EAAa9N,GAC7D,IAAIiO,KAUJ,OARAje,EAAEC,QAAQ6d,EAAa,SAASlP,EAAUzM,GACxC,GAAIyM,EAASpM,OAAS,EAAG,CACvB,IACIsF,EADU8G,EAAS,GAAG4C,SACJvB,cAAcrB,EAAUoB,GAC9CiO,EAASja,KAAK8D,MAIXsV,EAAevc,GAAGoD,IAAIga,IAxVjC,GCAA,WACE,aAKAG,EAAkBnB,SAAW,UAAW,SAAU,WAAY,KAAM,SAAU,YAAa,WAAY,gBAAiB,eAAgB,eAAgB,YAAa,kBAAmB,aAAc,UAAW,SAAU,cAAe,UAAW,WACrP,SAASmB,EAAkBC,EAASC,EAAQxd,EAAUD,EAAI0d,EAAQC,EAAWC,EAAUC,EAAeC,EAAcC,EAAc7F,EAAW8F,EAAiBC,EAAYC,EAAOC,EAAQ/d,EAAavB,EAASwB,GAC7M,IAAI+d,EAAKlf,KACLmf,EAAqBrf,QAAQuW,QAAQiI,EAAQrI,UAAUrR,KAAK,SAASkP,KAAK,eAAiB,OAC3FgJ,KAEJ9c,KAAKof,QAAU,WAEbd,EAAQe,mBAAqBH,EAE7Blf,KAAKsf,QAAUne,EACfnB,KAAKuf,SAAWZ,EAChB3e,KAAKqE,QAAUua,EACf5e,KAAK8I,eAAiB+V,EACtB7e,KAAKwf,cAAgB,KACrBxf,KAAKyf,MAASpM,QAAQ,EAAOqM,SAAU,IAyBfxM,EAvBP4J,GAwBZ7Y,KAAK+U,EAAUK,cAClBhJ,IAAKtK,EAAE,iBACPL,YAAaK,EAAE,UACfuT,SAAU4F,EAAGS,cAEfzM,EAAKjP,KAAK+U,EAAUK,cAClBhJ,IAAKtK,EAAE,kBACPL,YAAaK,EAAE,uBACfuT,SAAU,SAASK,GACQ,OAArBuF,EAAGM,eACLN,EAAGU,WAAWjG,OAGpBzG,EAAKjP,KAAK+U,EAAUK,cAClBhJ,IAAKtK,EAAE,eACPL,YAAaK,EAAE,sCACfuT,SAAU4F,EAAGW,8BAEf3M,EAAKjP,KAAK+U,EAAUK,cAClBhJ,IAAK,QACL3K,YAAaK,EAAE,eACfuT,SAAU4F,EAAGY,0BAEf5M,EAAKjP,KAAK+U,EAAUK,cAClBhJ,IAAK,cACL3K,YAAaK,EAAE,yBACfuT,SAAU4F,EAAGY,0BAEf5M,EAAKjP,KAAK+U,EAAUK,cAClBhJ,IAAK,KACL3K,YAAaK,EAAE,kBACfuT,SAAUyG,EACVC,gBAAiB,mBAEnB9M,EAAKjP,KAAK+U,EAAUK,cAClBhJ,IAAK,OACL3K,YAAaK,EAAE,sBACfuT,SAAU2G,EACVD,gBAAiB,mBAEnB9M,EAAKjP,KAAK+U,EAAUK,cAClBhJ,IAAK,WACL3K,YAAaK,EAAE,8BACfuT,SAAU4G,EACVF,gBAAiB,mBAEnB9M,EAAKjP,KAAK+U,EAAUK,cAClBhJ,IAAK,aACL3K,YAAaK,EAAE,kCACfuT,SAAU6G,EACVH,gBAAiB,mBAEnB/f,EAAEC,SAAS,YAAa,UAAW,SAASkgB,GAC1ClN,EAAKjP,KAAK+U,EAAUK,cAClBhJ,IAAK+P,EACL1a,YAAaK,EAAE,qCACfuT,SAAU4F,EAAGmB,mCAKjBpgB,EAAEC,QAAQgT,EAAM,SAAS7C,GACvB2I,EAAUS,eAAepJ,KA/D7B,IAA0B6C,EApBxBpT,QAAQuW,QAAQiI,GAASgC,GAAG,eAAgBC,GAC5ChC,EAAOiC,IAAI,WAAY,WACrB1gB,QAAQuW,QAAQiI,GAASmC,IAAI,eAAgBF,GAE7CtgB,EAAEC,QAAQ4c,EAAS,SAASzM,GAC1B2I,EAAU+D,iBAAiB1M,OAK/BkO,EAAOmC,OAAO,WAAa,OAAOxB,EAAGpW,eAAekD,aAAgB,SAASA,GAC3E,IAAI2U,EAAQxB,EAAqB,MAC7BnT,IACF2U,GAAS,IAAM3U,EAAc,MAC/B2U,GAASzB,EAAGpW,eAAeuB,aAC3BiU,EAAQrI,SAAS0K,MAAQA,KAwE7B,SAASJ,EAAqBK,GAC5B,OAAO1B,EAAGpW,eAAewF,WAG3BtO,KAAK6gB,cAAgB,SAASC,GAE5B,OAAO9gB,KAAK8I,eAAe6C,wBAA0BmV,GAGvD9gB,KAAK4I,KAAO,SAASmY,GACnB7B,EAAGpW,eAAe+C,SAAUjD,KAAMmY,KAGpC/gB,KAAKghB,SAAW,SAASD,GACvB,OAAO5f,EAAQwH,OAAOC,MAAQmY,GAGhC/gB,KAAK2f,WAAa,WAChBT,EAAGO,KAAKpM,QAAS,EACjB2L,EAAM,WAGRhf,KAAKihB,aAAe,WAClB/B,EAAGO,KAAKpM,QAAS,EACjB6L,EAAGpW,eAAe+C,UAAUhM,KAAK,WAC3Bqf,EAAGpW,eAAe0C,iBACpBzK,EAAS,WACPme,EAAGpW,eAAe4H,UAAYwO,EAAGpW,eAAeiB,QAAQmV,EAAGpW,eAAe0C,sBAMlFxL,KAAKkhB,qBAAuB,WAC1B,OAAOhgB,EAAYuF,SAAS0a,8BAG9BnhB,KAAK4f,WAAa,SAASjG,EAAQyH,GACjC,IAAI/a,EAEqB,OAArB6Y,EAAGM,gBACD4B,GAAyD,SAA9ClgB,EAAYuF,SAAS4a,sBA0BxC,WACE,IAAInH,GAAO6E,EAAWuC,UACX,0BACApC,EAAG7a,QAAQjC,GAEX0c,EAAgBA,EAAgBI,EAAGpW,eAAehE,OAClD,OACN+E,KAAK,KACN0X,EAAMrC,EAAGpW,eAAeqB,MAAQ,IAAMxE,KAAK6b,OAAO,EAAG,KACzDC,QAAQhhB,MAAMyZ,GACdoE,EAAQtB,KAAK9C,EAAKqH,GACJ,YACA,aACA,cACA,eACA,YACA,aACA,gBACA,WACA,YACA,iBACA1X,KAAK,MA9Cf6X,IAEArb,EAAU6Y,EAAG7a,QAAQ6B,cACrBgZ,EAAGM,cAAgBf,EAChB5F,MACClL,OAAQ7N,QAAQuW,QAAQJ,SAASkE,MACjCuB,YAAa/B,EACboC,qBAAqB,EACrBC,eAAe,EACf2F,YAAa,gBACbrG,WAAY,0BACZE,aAAc,SACdN,QACE0D,aAAcM,EAAG7a,QACjBud,aAAcvb,KAGjBwb,MAAM5hB,EAAE6hB,MACRrE,QAAQ,WACPyB,EAAGM,cAAgB,UAiC7B,SAASO,EAAapG,GACpB,IAAIhX,EAAQuc,EAAGpW,eAAe4C,wBAkB9B,OAhBI5L,QAAQ8L,UAAUjJ,IACpBA,IACIuc,EAAGpW,eAAe4H,UAAY,GAChCwO,EAAGpW,eAAe4H,cAIpB/N,EAAQuc,EAAGpW,eAAevG,YAAc,EACxC2c,EAAGpW,eAAe4H,UAAYwO,EAAGpW,eAAevG,aAG9CI,GAAS,GACXuc,EAAG6C,cAAc7C,EAAGpW,eAAeoB,UAAUvH,IAE/CgX,EAAOqI,iBAEArf,EAMT,SAASsd,EAAiBtG,GACxB,IAAIhX,EAAQuc,EAAGpW,eAAe4C,wBAkB9B,OAhBI5L,QAAQ8L,UAAUjJ,IACpBA,IACIuc,EAAGpW,eAAe4H,UAAYwO,EAAGpW,eAAevG,aAClD2c,EAAGpW,eAAe4H,aAIpB/N,EAAQ,EAENA,EAAQuc,EAAGpW,eAAevG,YAC5B2c,EAAG6C,cAAc7C,EAAGpW,eAAeoB,UAAUvH,IAE7CA,GAAS,EAEXgX,EAAOqI,iBAEArf,EAGT,SAASud,EAA2BvG,GAClC,IAAIhX,EAEAuc,EAAGpW,eAAe6C,uBACpBhJ,EAAQod,EAAapG,KACR,GACXuF,EAAGY,uBAAuBnG,EAAQuF,EAAGpW,eAAeoB,UAAUvH,IAIpE,SAASwd,EAA+BxG,GACtC,IAAIhX,EAEAuc,EAAGpW,eAAe6C,uBACpBhJ,EAAQsd,EAAiBtG,KACZ,GACXuF,EAAGY,uBAAuBnG,EAAQuF,EAAGpW,eAAeoB,UAAUvH,IAIpE3C,KAAK+hB,cAAgB,SAAS1b,GACxBlF,EAAQ6H,aACVwV,EAAOyD,GAAG,uCAAwCC,UAAWpD,EAAgBzY,EAAQoL,SAAS3M,MAAOyG,UAAWlF,EAAQoB,MAExH+W,EAAOyD,GAAG,gCAAiC1W,UAAWlF,EAAQoB,OAGlEzH,KAAK8f,uBAAyB,SAASnG,EAAQtT,GAC7C,IACIsJ,EAAewS,EAAmBhgB,EADlC8N,EAASiP,EAAGpW,eAKhB,GAFKzC,IACHA,EAAU4J,EAAOxE,qBACdpF,EACH,OAAO,EAKT,GAJAA,EAAQ+E,UAAY/E,EAAQ+E,SAC5B8T,EAAGO,KAAKC,UAAYrZ,EAAQ+E,SAAU,GAAK,EAGvCuO,EAAOyI,UAAYnS,EAAO5E,iBAAmB,EAAG,CAIlD,IADA8W,GAFAxS,EAAgBM,EAAOlG,QAAQ1D,EAAQoB,MAEH,EAC7B0a,GAAqB,IACpBlS,EAAO/F,UAAUiY,GAAmB/W,UAC1C+W,IACF,GAAIA,EAAoB,EAGtB,IADAA,EAAoBxS,EAAgB,EAC7BwS,EAAoBlS,EAAO1N,cAC1B0N,EAAO/F,UAAUiY,GAAmB/W,UAC1C+W,IAEJ,GAAIA,GAAqB,GAAKA,EAAoBlS,EAAO1N,YACvD,IAAKJ,EAAIwD,KAAKuH,IAAIyC,EAAewS,GAC5BhgB,GAAKwD,KAAKqF,IAAI2E,EAAewS,GAC7BhgB,IACH8N,EAAO/F,UAAU/H,GAAGiJ,UAAW,EAIrCuO,EAAOqI,iBACPrI,EAAO0I,mBAOT,SAASC,IACP,OAAInhB,EAAQ6H,aACHkW,EAAGpW,eAAe9F,YAEjBkc,EAAGpW,gBAKf,SAASyZ,EAAiBlc,EAAS1D,GACjC,IAAI6f,EAAaC,EAAiBC,EAAY/f,EAC9Cuc,EAAGO,KAAKC,SAAWR,EAAGpW,eAAeuC,iBACjChF,GAEE1D,EAAQ,IACV+f,GAAa,EACbF,EAActD,EAAGpW,eAAeoB,UAAUwY,IAExC/f,EAAQuc,EAAGpW,eAAeoB,UAAUzH,SACtCggB,EAAkBvD,EAAGpW,eAAeoB,UAAUvH,IAC5C6f,EACEA,EAAY7T,QAAU8T,IAAoBA,EAAgB9T,SAC5D+T,EAAY/f,EACZ6f,EAAcC,GAGTA,IACPC,EAAY/f,EACZ6f,EAAcC,GAEZD,GACFtD,EAAGpW,eAAe4H,UAAYgS,EAC9BlE,EAAOyD,GAAG,gCAAkC1W,UAAWiX,EAAY/a,OAGnE+W,EAAOyD,GAAG,yBAIZlhB,EAAS,WACP0gB,QAAQ3d,KAAK,iBACb0a,EAAOyD,GAAG,0BAKhBjiB,KAAKqgB,8BAAgC,SAAS1G,GAC5C,IAAI1K,EAAmBiQ,EAAGpW,eAAeoC,oBAEhB,OAArBgU,EAAGM,eAA0Bvf,EAAE0iB,KAAK1T,GAAoB,IAC1DiQ,EAAGM,cAAgBP,EAAO2D,QAAQ7c,EAAE,gBACLA,EAAE,2DACA8c,GAAI9c,EAAE,YACtClG,KAAK,WACJ,IAAIijB,EAAwB5D,EAAGpW,eAAe6C,qBAC9CuT,EAAGpW,eAAe+G,gBAAgBZ,GAAkBpP,KAAK,SAAS8C,GAC5DxB,EAAQ6H,aAGN8Z,GACFtE,EAAOyD,GAAG,+BAIZM,EAAiBO,EAAuBngB,IAEzC,SAAS4N,GACV2O,EAAGM,cAAgBP,EAAO2D,QAAQ7c,EAAE,WACLA,EAAE,oGACA8c,GAAI9c,EAAE,YACpClG,KAAK,WACJqf,EAAGpW,eAAe+G,gBAAgBZ,GAAoB8T,cAAc,IAAQljB,KAAK,SAAS8C,GACpFxB,EAAQ6H,aAGN8Z,GACFtE,EAAOyD,GAAG,+BAIZM,EAAiBO,EAAuBngB,WAMnD8a,QAAQ,WACPyB,EAAGM,cAAgB,QAGvB7F,EAAOqI,kBAGThiB,KAAK6f,2BAA6B,WAChC,IAAImD,EAAsB9D,EAAGpW,eAAe6C,qBACxCsD,EAAmBiQ,EAAGpW,eAAeoC,oBACR,IAA7BjL,EAAE0iB,KAAK1T,IAA2B+T,IACpC/T,GAAoBiQ,EAAGpW,eAAe2C,qBACpCxL,EAAE0iB,KAAK1T,GAAoB,GAC7BiQ,EAAGpW,eAAegH,4BAA4Bb,GAAkBpP,KAAK,WACnE,IAAIojB,EAAY,IAAM/D,EAAG7a,QAAQjC,GAAK,eACR,QAA1B8c,EAAGpW,eAAepE,OACpBue,EAAY,IAAM/D,EAAG7a,QAAQI,kBAAkB,QAAQrC,IAEzD8c,EAAGpW,eAAeoH,cAAcjB,EAAkBgU,GAAWpjB,KAAK,SAAS8C,GACrExB,EAAQ6H,aAGNga,GACFxE,EAAOyD,GAAG,+BAIZM,EAAiBS,EAAqBrgB,QAMhD3C,KAAKkjB,qBAAuB,SAASD,GACnC,IAAIhU,EAAmBiQ,EAAGpW,eAAeoC,oBACrCjL,EAAE0iB,KAAK1T,GAAoB,GAC7BiQ,EAAGpW,eAAekH,cAAcf,EAAkB,IAAMgU,GAAWpjB,KAAK,WACtE6e,EAAS7F,KACP6F,EAASyE,SACNhO,QAAQpP,EAAE,yBAA0BmZ,EAAGpW,eAAeuC,mBACtDoQ,SAAS,aACT2H,UAAU,SAIrBpjB,KAAKqjB,qBAAuB,SAASJ,GACnC,IAAID,EAAsB9D,EAAGpW,eAAe6C,qBACxCsD,EAAmBiQ,EAAGpW,eAAeoC,oBACrCoJ,EAAQ4K,EAAGpW,eAAeuC,iBAC1BpL,EAAE0iB,KAAK1T,GAAoB,GAC7BiQ,EAAGpW,eAAeoH,cAAcjB,EAAkB,IAAMgU,GAAWpjB,KAAK,SAAS8C,GAC/E+b,EAAS7F,KACP6F,EAASyE,SACNhO,QAAQpP,EAAE,wBAAyBuO,IACnCmH,SAAS,aACT2H,UAAU,MACXjiB,EAAQ6H,aAGNga,GACFxE,EAAOyD,GAAG,+BAIZM,EAAiBS,EAAqBrgB,MAK9C3C,KAAKsjB,UAAY,WACf,IAAIhP,EAAQ,EACZrU,EAAEC,QAAQoiB,IAAqB,SAASrS,GAEtC,IADA,IAAI9N,EAAI,EAAGM,EAASwN,EAAO/F,UAAUzH,OAC9BN,EAAIM,EAAQN,IACjB8N,EAAO/F,UAAU/H,GAAGiJ,UAAW,EACjCkJ,GAAS7R,IAEXyc,EAAGO,KAAKC,SAAWpL,GAGrBtU,KAAKujB,iBAAmB,WACtBtjB,EAAEC,QAAQoiB,IAAqB,SAASrS,GACtChQ,EAAEC,QAAQ+P,EAAO/F,UAAW,SAAS7D,GACnCA,EAAQ+E,UAAW,MAGvB8T,EAAGO,KAAKC,SAAW,GAGrB1f,KAAKwjB,8BAAgC,WACnC,IAAIvU,EAAmBiQ,EAAGpW,eAAeoC,oBACrCjL,EAAE0iB,KAAK1T,GAAoB,GAC7BiQ,EAAGpW,eAAe8F,cAAcK,EAAkB,YAAa,OAAOpP,KAAK,SAASgP,GAClF5O,EAAEC,QAAQ2O,EAAU,SAASxI,GAC3BA,EAAQqR,WAAY,OAK5B1X,KAAKyjB,6BAA+B,WAClC,IAAIxU,EAAmBiQ,EAAGpW,eAAeoC,oBACrCjL,EAAE0iB,KAAK1T,GAAoB,GAC7BiQ,EAAGpW,eAAe8F,cAAcK,EAAkB,OAAQ,UAAUpP,KAAK,SAASgP,GAChF5O,EAAEC,QAAQ2O,EAAU,SAASxI,GACvBA,EAAQsI,QACVtI,EAAQoL,SAASzF,cACnB3F,EAAQsI,QAAS,OAMzB3O,KAAK0jB,2BAA6B,WAChC,IAAIzU,EAAmBiQ,EAAGpW,eAAeoC,oBACrCjL,EAAE0iB,KAAK1T,GAAoB,GAC7BiQ,EAAGpW,eAAe8F,cAAcK,EAAkB,OAAQ,OAAOpP,KAAK,SAASgP,GAC7E5O,EAAEC,QAAQ2O,EAAU,SAASxI,GACtBA,EAAQsI,QACXtI,EAAQoL,SAASzF,cACnB3F,EAAQsI,QAAS,OAQ3B7O,QACG4B,OAAO,iBACP4Z,WAAW,oBAAqB+C,GAKnCsF,EAA2CzG,SAAW,aACtD,SAASyG,EAA2CC,GASlD,OARAA,EAAU,GAAGtI,WAAWhZ,UAAUuhB,YAAc,WAGL,gBAArC7jB,KAAK8jB,SAASnW,SAASmG,KAAK,MAC9B9T,KAAK+jB,aAEL/jB,KAAKgkB,SAAS,IAEXJ,EAGT9jB,QACG4B,OAAO,qCACPuiB,UAAU,oCAAqCN,GA9iBpD,GCAA,WACE,aAKAO,EAAoBhH,SAAW,SAAU,SAAU,eAAgB,WAAY,UAAW,YAAa,WAAY,UAAW,kBAAmB,SAAU,aAAc,YAAa,UAAW,UAAW,iBAAkB,OAAQ,cAAe,iBACrP,SAASgH,EAAoB3F,EAAQC,EAAQ2F,EAAcpjB,EAAUud,EAASG,EAAWC,EAAUM,EAAOF,EAAiBG,EAAQje,EAAUgY,EAAWrZ,EAASwB,EAASkc,EAAgB+G,EAAMljB,EAAayd,GAC3M,IACIta,EACAE,EAFA2a,EAAKlf,KAGL8c,KAEJ9c,KAAKof,QAAU,WACbpf,KAAKsf,QAAUne,EACfnB,KAAKuf,SAAWZ,EAGhB3e,KAAKqkB,mBAAqB,GAC1BrkB,KAAKqT,QACHvQ,SAAUwhB,GAAI,GACJrX,QAASlH,EAAE,iBACX4Q,KAAS5Q,EAAE,cACX6L,GAAS7L,EAAE,YACX8L,GAAS9L,EAAE,YACXoU,KAASpU,EAAE,eAErBwe,WAAY,EACZnY,MAAO,MACPoR,WAGFxd,KAAKwkB,mBAAqBtjB,EAAYuF,SAASge,kCAE/CzkB,KAAK0kB,qBAamBxR,EAXP4J,EAYjB7c,EAAEC,SAAS,YAAa,UAAW,SAASkgB,GAC1ClN,EAAKjP,KAAK+U,EAAUK,cAClBhJ,IAAK+P,EACL1a,YAAaK,EAAE,qCACfuT,SAAU,WACJnY,EAAQwjB,0BAA4BxjB,EAAQ2H,iBAAmB3H,EAAQ2H,eAAe6C,sBACxFxK,EAAQwjB,yBAAyBC,cAAczjB,EAAQ2H,sBAM/D7I,EAAEC,QAAQgT,EAAM,SAAS7C,GACvB2I,EAAUS,eAAepJ,KAd7B,IAA0B6C,EATxBqL,EAAOiC,IAAI,WAAY,WAErBvgB,EAAEC,QAAQ4c,EAAS,SAASzM,GAC1B2I,EAAU+D,iBAAiB1M,QAwBjCrQ,KAAK6kB,mBAAqB,WACxB3F,EAAGI,QAAQrW,cAAe,EAC1BiW,EAAGI,QAAQtW,cAAe,EAE1B3E,EAAU6a,EAAGK,SAAS,GACtBhb,EAAU2a,EAAG4F,sBACbtG,EAAOyD,GAAG,wBAA0B9b,UAAW9B,EAAQjC,GAAI8f,UAAWpD,EAAgBva,EAAQO,SAGhG9E,KAAK+kB,qBAAuB,WAC1B,GAAI5jB,EAAQ2H,eAAemB,WAEzBiV,EAAG8F,eAAetH,iBAEf,CAEH,IAAIuH,EAAM3hB,KACND,EAAS,SAAS6hB,GAChBjlB,EAAEC,QAAQglB,EAAS,SAASjjB,GAC1BqB,EAAUW,KAAKhC,GACXA,EAAEuB,UAAYvB,EAAEuB,SAASf,OAAS,GACpCY,EAAOpB,EAAEuB,aAKnB0b,EAAG8F,eAAiB,IAAI3H,EAAe6B,EAAGK,SAAS,IAK9Cpe,EAAQ6H,eACXkW,EAAG4F,sBAAwB3jB,EAAQ2H,gBAErC3H,EAAQ2H,eAAiBoW,EAAG8F,eAC5B7jB,EAAQ6H,cAAe,EAEnBlJ,QAAQ8L,UAAUzK,EAAQ8H,eAC5Bgc,EAAO/F,EAAGK,SAAS,GAAG1a,kBAAkB1D,EAAQ8H,cAChD3F,EAAUW,KAAKghB,GACX/F,EAAG7L,OAAOkR,YAAcU,EAAKzhB,SAASf,QACxCY,EAAO4hB,EAAKzhB,WAGdF,EAAY4b,EAAGK,SAAS,GAAG/c,oBAG7B0c,EAAG8F,eAAe1H,aAAaha,GAC/B4b,EAAG8F,eAAezH,YAAY2B,EAAG7L,OAAOjH,MAAO8S,EAAG7L,OAAOmK,QAC7B,+BAAxBgB,EAAO2G,SAASngB,MAClBwZ,EAAOyD,GAAG,+BAAiC9b,UAAW+Y,EAAGK,SAAS,GAAGnd,OAI3EpC,KAAKolB,eAAiB,SAASC,GAG7B,OAFAnG,EAAGmF,mBAAqBgB,EACxBrG,EAAM,mBACC,GAGThf,KAAKslB,eAAiB,SAASC,GAC7B,GAAIA,EAAQ9iB,QAAUyc,EAAGmF,mBAAmB5hB,OAAQ,CAClD,IAAI+iB,EAAI,EAAGC,EAAcvG,EAAGmF,mBAM5B,OALIkB,EAAQhN,WAAW,OACrBiN,EAAI,EACJD,EAAUA,EAAQG,UAAU,GAAG1N,QAEjCkH,EAAGmF,mBAAqB,IACfhY,SAAUoZ,EAAavZ,YAAaqZ,EAASI,SAAUH,KAIpExlB,KAAK4lB,mBAAqB,SAAUvhB,GAClCA,EAAQlB,WAAakB,EAAQlB,UAC7BkB,EAAQ7B,mBAAoBS,QAAQ,EAAMmB,WAAW,IAIrDrD,EAAS,WACPjB,QAAQuW,QAAQiI,GAASuH,eAAe,WACvC,MAGL7lB,KAAK8lB,UAAY,SAASzhB,GACxBoa,EAAU5F,MACR8I,YAAatd,EAAQjC,GAAK,aAC1BkZ,WAAYyK,EACZvK,aAAc,gBACdO,qBAAqB,EACrBC,eAAe,EACfd,QACE8K,WAAY3hB,KAEboZ,QAAQ,WACPpZ,EAAQxB,eAAeI,QAAQ,MAMnC8iB,EAA8B7I,SAAW,SAAU,YAAa,cAChE,SAAS6I,EAA8BxH,EAAQE,EAAWuH,GACxD,IAAI9G,EAAKlf,KAETkf,EAAG/R,SAAU,EACb+R,EAAG/T,QAAWnG,KAAM,IACpBka,EAAG7a,QAAU,IAAI1E,GACfyC,GAAI4jB,EAAW5jB,GACf4C,KAAMghB,EAAWhhB,OAEnBka,EAAG/B,MAMH,WACEsB,EAAUwH,QALZ/G,EAAG7a,QAAQxB,eAAgBI,QAAQ,EAAMiB,KAAK,IAAQrE,KAAK,WACzDqf,EAAG/R,SAAU,MASnBnN,KAAKkmB,UAAY,SAASC,GACxBlH,EAAOmH,OAAOrgB,EAAE,iBACFA,EAAE,sCACblG,KAAK,SAASmF,GACbmhB,EAAaphB,YAAYohB,EAAa/jB,GAAI4C,GACvCnF,KAAK,aAEH,SAASiC,EAAMgG,GAChBmX,EAAOoH,MAAMtgB,EAAE,sDAAuDf,GACzDe,EAAEjE,EAAK0O,aAK9BxQ,KAAKsmB,SAAW,SAASjiB,GACvBoa,EAAU5F,MACR8I,YAAatd,EAAQjC,GAAK,cAC1BkZ,WAAYiL,EACZ/K,aAAc,WACdO,qBAAqB,EACrBC,eAAe,EACfd,QACEkJ,KAAMA,EACN/f,QAASA,KAObkiB,EAA4BrJ,SAAW,SAAU,YAAa,OAAQ,WACtE,SAASqJ,EAA4BhI,EAAQE,EAAW2F,EAAM/f,GAC5D,IAAI6a,EAAKlf,KAETkf,EAAGrX,MAAQxD,EAAQsD,UACnBuX,EAAG7a,QAAUA,EACb6a,EAAGsH,UAAY,GACftH,EAAGuH,WAAa,GAChBvH,EAAGwH,WAKH,SAAoB/d,GAClB,OAAOyb,EAAKvY,QAAQlD,EAAQtE,EAAQsD,YALtCuX,EAAGyH,WAQH,WACElI,EAAUwH,QARZ/G,EAAG0H,WAWH,SAAoBvf,GAClBhD,EAAQ2D,gBAAgBX,EAAKI,KAAKoa,MAAM,SAAS/f,EAAMgG,GACrDmX,EAAOoH,MAAMtgB,EAAE,WAAYA,EAAE,0CAZjCmZ,EAAG2H,QAgBH,SAAiB/kB,GACXA,GACFuC,EAAQ+C,aAAatF,GAAMjC,KAAK,WAC9Bqf,EAAGsH,UAAY,GACftH,EAAGuH,WAAa,IACf,SAASjW,GACVyO,EAAOoH,MAAMtgB,EAAE,WAAYyK,QAOrCxQ,KAAK0kB,mBAAqB,WACxB,IAAqDnY,EAAjDua,EAAqBxI,EAAQwI,mBAEjC7mB,EAAEC,QAAQgf,EAAGK,SAAU,SAASlb,GAGzBpE,EAAEqT,SAASwT,EAAoBziB,EAAQjC,GAAK,iBAC/C0kB,EAAmB7iB,KAAKI,EAAQjC,GAAK,gBAEvCnC,EAAEC,QAAQmE,EAAQF,mBAAoB,SAASI,GACzCzE,QAAQ8L,UAAUrH,EAAQyH,eACzB/L,EAAEqT,SAASwT,EAAoBviB,EAAQnC,KAC1C0kB,EAAmB7iB,KAAKM,EAAQnC,QAItCzC,EAAQ0B,WAAWmD,KAAK,GAAI,eAAgBlB,UAAWwjB,IAAqBjnB,KAAK,SAASiC,GACxF7B,EAAEC,QAAQgf,EAAGK,SAAU,SAASlb,GAC9BpE,EAAEC,QAAQmE,EAAQF,mBAAoB,SAASI,GACzCzC,EAAKyC,EAAQnC,MACfmC,EAAQyH,YAAclK,EAAKyC,EAAQnC,YAK3CmK,EAAmBrL,EAAYuF,SAAS+F,uBACI,YAApBD,GACtBxL,EAASme,EAAGwF,mBAAoD,IAAhCnY,EAAiBI,iBAGrD3M,KAAK+mB,kBAAoB,SAASC,EAAW/D,GAC3C,OAAQA,EAAU7gB,IAAM4kB,EAAU5kB,KAAQ6gB,EAAU3V,cAGtDtN,KAAKinB,qBAAuB,SAASD,EAAW/D,EAAWxD,GACzD,IAAIyH,EAAOrY,EAAUhC,EAAMsa,EAAkBpf,EAASqf,EAEtDF,EAAQ,IAAMjE,EAAU7gB,GAEA,KADxByM,EAAWmY,EAAU9b,qBACRzI,SACXoM,GAAYmY,EAAUvb,qBACxBoB,EAAO5M,EAAEyH,IAAImH,EAAU,OACvBsY,EAAoBH,EAAUxb,iBAAmBqB,EAAKtJ,QAAQyjB,EAAUxb,kBAAoB,EAEhF,QAARiU,GACF1X,EAAUif,EAAUhX,cAAcnB,EAAUqY,GAC5CE,EAAUrhB,EAAE,yBAA0B8I,EAASpM,UAG/CsF,EAAUif,EAAU9W,cAAcrB,EAAUqY,GAC5CE,EAAUrhB,EAAE,wBAAyB8I,EAASpM,SAGhDsF,EAAQlI,KAAK,WACPsnB,GACF3I,EAAOyD,GAAG,wBACZvD,EAAS7F,KACP6F,EAASyE,SACNhO,QAAQiS,GACR3L,SAAS,aACT2H,UAAU,SAMrBtjB,QACG4B,OAAO,iBACP4Z,WAAW,sBAAuB4I,GArUvC,GCAA,WACE,aAKAmD,EAAkBnK,SAAW,UAAW,SAAU,SAAU,WAAY,YAAa,aAAc,gBAAiB,eAAgB,eAAgB,eAAgB,YAAa,kBAAmB,aAAc,eAAgB,UAAW,SAAU,cAAe,WAAY,YAAa,UAAW,UAAW,WACrT,SAASmK,EAAkB/I,EAASC,EAAQC,EAAQ8I,EAAU7I,EAAW8I,EAAY5I,EAAeC,EAAcC,EAAc+C,EAAc5I,EAAW8F,EAAiBC,EAAYnG,EAAcoG,EAAOC,EAAQ/d,EAAasmB,EAAUC,EAAW9nB,EAASwB,EAASC,GACrQ,IAAI8d,EAAKlf,KAA0B8c,KAEnC9c,KAAKof,QAAU,WAEbd,EAAQoJ,mBAAqBxI,EAG7BtG,EAAaK,WAAW2I,GAExB5hB,KAAKwe,OAASA,EACdxe,KAAKuf,SAAWZ,EAChB3e,KAAKqE,QAAUua,EACf5e,KAAKuE,QAAUsa,EACf7e,KAAKqG,QAAUub,EACf5hB,KAAKsf,QAAUle,EACfpB,KAAK2nB,MAASlB,WAAY,GAAIrb,SAAU,IACxCpL,KAAK4nB,UAAYhG,EAAavU,OAASuU,EAAavU,MAAM5K,OAAS,EACnEzC,KAAK6nB,yBAA0B,EAE/B3I,EAAG4I,eAAgB,GAwFK5U,EAtFP4J,GAuFZ7Y,KAAK+U,EAAUK,cAClBhJ,IAAKtK,EAAE,gBACPL,YAAaK,EAAE,wBACfuT,SAAUyO,EAAgBjoB,QAAQ4M,KAAKwS,EAAIA,EAAG8I,WAEhD9U,EAAKjP,KAAK+U,EAAUK,cAClBhJ,IAAKtK,EAAE,mBACPL,YAAaK,EAAE,sCACfuT,SAAUyO,EAAgBjoB,QAAQ4M,KAAKwS,EAAIA,EAAG+I,cAEhD/U,EAAKjP,KAAK+U,EAAUK,cAClBhJ,IAAKtK,EAAE,kBACPL,YAAaK,EAAE,4BACfuT,SAAUyO,EAAgBjoB,QAAQ4M,KAAKwS,EAAIA,EAAGgJ,aAEhDhV,EAAKjP,KAAK+U,EAAUK,cAClBhJ,IAAKtK,EAAE,eACPL,YAAaK,EAAE,WACfuT,SAAUyO,EAAgBjoB,QAAQ4M,KAAKkV,EAAcA,EAAanK,gBAEpExX,EAAEC,SAAS,YAAa,UAAW,SAASkgB,GAC1ClN,EAAKjP,KAAK+U,EAAUK,cAClBhJ,IAAK+P,EACL9G,SAAUyO,EAAgB,SAASpO,GACG,IAAhCuF,EAAG3a,QAAQ8G,kBACb6T,EAAGiJ,gBACLxO,EAAOqI,wBAMb/hB,EAAEC,QAAQgT,EAAM,SAAS7C,GACvB2I,EAAUS,eAAepJ,KAlC7B,IAA0B6C,EAnFpBoL,EAAQ8J,QAEV7J,EAAO8J,iBAAiB,WAAa,OAAOnJ,EAAG7Y,QAAQgH,OAAU,SAASib,EAASC,GACjF,IAAIC,GACAF,GAAWC,KACbC,EAAQC,KACEC,aACRF,EAAME,YAAYpJ,QAAQve,SAAS,WACjCynB,EAAME,YAAYd,WAAY,EAC9BY,EAAME,YAAYriB,QAAQgH,MAAQib,MAM1C/J,EAAOmC,OAAO,WAAa,OAAOxB,EAAG7Y,QAAQqR,WAAc,SAASA,EAAWiR,GAC7E,IAAIH,EAAQC,IACRD,EAAMI,aACRJ,EAAMI,YAAYtJ,QAAQve,SAAS,WACnBd,EAAE2E,KAAK4jB,EAAMI,YAAY9f,eAAeoB,WAAazC,IAAKyX,EAAG7Y,QAAQoB,MAC3EiQ,UAAYA,OAQ1B6G,EAAO8J,iBAAiB,WAAa,OAAOnJ,EAAG7Y,QAAQgH,OAAU,SAASwb,EAAUC,GAClF,IAAIR,EAASC,EAASZ,GAClBkB,GAAYC,KACdR,EAAUO,MACVN,EAAUO,MACV7oB,EAAEC,QAAQooB,EAAS,SAASnV,EAAKhR,GAC3BrC,QAAQoH,SAASiM,KACnBmV,EAAQnmB,GAAKgR,EAAInO,QAEjBsjB,EAAQ7lB,OAAS8lB,EAAQ9lB,QAC3BklB,EAAO1nB,EAAE8oB,WAAWT,EAASC,GAC7BtoB,EAAEC,QAAQynB,EAAM,SAASxU,GACvB+L,EAAG7Y,QAAQ0Q,OAAO5D,MAGbmV,EAAQ7lB,OAAS8lB,EAAQ9lB,SAChCklB,EAAO1nB,EAAE8oB,WAAWR,EAASD,GAC7BroB,EAAEC,QAAQynB,EAAM,SAASxU,GACvB+L,EAAG7Y,QAAQ4Q,UAAU9D,SAO/BoL,EAAOiC,IAAI,WAAY,WAErBvgB,EAAEC,QAAQ4c,EAAS,SAASzM,GAC1B2I,EAAU+D,iBAAiB1M,QAUjC,SAAS2Y,IACP,OAAIzK,EAAOha,SACL0kB,UAAUxmB,OAAS,IACrB8b,EAAOha,QAAQib,cAAgByJ,UAAU,IACpC1K,EAAOha,QAAQib,eAEjB,KAGT,SAASuI,EAAgBzO,GACvB,OAAO,WAEL,GAAyB,OAArB0P,IACF,OAAO1P,EAAS4P,MAAMhK,EAAI+J,YA6ChC,SAASR,IACP,IAAIpiB,EAAS9B,EAASikB,KAgBtB,OAfIlK,EAAQ8J,QAEN9J,EAAQ8J,OAAO/I,oBACff,EAAQ8J,OAAO/I,mBAAmBvW,eAAeqB,OAAS0U,EAAa1U,QAEvE5F,EAAU+Z,EAAQ8J,OAAO/I,mBACzBmJ,EAAMI,YAAcrkB,EAChB+Z,EAAQ8J,OAAOV,oBACfpJ,EAAQ8J,OAAOV,mBAAmBrhB,QAAQoB,KAAOma,EAAana,MAEhEpB,EAAUiY,EAAQ8J,OAAOV,mBACzBc,EAAME,YAAcriB,IAIrBmiB,EAGTxoB,KAAKmpB,SAAW,SAASxP,GACvB3Z,KAAK4nB,WAAY,EACjB5I,EAAM,UAGRhf,KAAKopB,yBAA2B,SAASzP,GACvC3Z,KAAK6nB,yBAA2B7nB,KAAK6nB,wBACrClO,EAAO0I,kBACP1I,EAAOqI,kBAGThiB,KAAKqpB,kBAAoB,SAAS1P,GAChC,IAAI2P,EACyB,KAAzB3P,EAAOgB,OAAO4O,SAAkB,SAAU5P,EAAOgB,OAAO6O,aAC1DF,EAAO3P,EAAOgB,OAAO6O,WAAWF,KAAKlZ,MAC7B,mBAAmB0H,KAAKwR,YAEvB3P,EAAOgB,OAAO6O,WAAW7O,OAChC3a,KAAK4f,WAAWjG,EAAQ2P,MAK9BtpB,KAAKmoB,cAAgB,WACnB,IAAI5jB,EAAS8B,EAASojB,EAAOjH,EAAaC,EACtCiH,EAAcjB,IAEdiB,EAAYhB,aACdnkB,EAAUmlB,EAAYd,YAAY9f,eAClCzC,EAAUqjB,EAAYhB,YAAYriB,QAClCojB,EAAQC,EAAYhB,YAAYlK,SAGhCja,EAAUsa,EACVxY,EAAUub,EACV6H,EAAQjL,GAGVja,EAAQsL,iBAAiBxJ,IAAUxG,KAAK,SAAS8C,GAC/C,IAAI+f,EAAY/f,EAGhB,GADA0D,EAAU,KACNvG,QAAQ8L,UAAU6d,GAAQ,CAExB9mB,EAAQ,IACV+f,GAAa,EACbF,EAAcje,EAAQ2F,UAAUwY,IAE9B/f,EAAQ4B,EAAQ2F,UAAUzH,SAC5BggB,EAAkBle,EAAQ2F,UAAUvH,IAElC6f,EACEA,EAAY7T,QAAU8T,IAAoBA,EAAgB9T,SAC5D+T,EAAY/f,EACZ6f,EAAcC,GAGTA,IACPC,EAAY/f,EACZ6f,EAAcC,GAGhB,IACMD,GAAe8E,EAASC,EAAW,WACrCkC,EAAMxH,GAAG,gCAAkC1W,UAAWiX,EAAY/a,MAC9Dib,EAAYne,EAAQmM,UACtBnM,EAAQmM,UAAYgS,EACbA,EAAYne,EAAQwG,oBAC3BxG,EAAQmM,UAAYgS,GAAane,EAAQwG,kBAAoBxG,EAAQmM,aAGvE+Y,EAAMxH,GAAG,wBAAwBpiB,KAAK,WACpCwG,EAAU,YACH9B,EAAQiH,kBAIrB,MAAOgF,KAET0O,EAAGyK,gBAIP,SAASC,EAAgBjQ,EAAQtT,GACN,OAArB2iB,KACFA,EACEvK,EACG5F,MACClL,OAAQ7N,QAAQuW,QAAQJ,SAASkE,MACjCuB,YAAa/B,EACboC,qBAAqB,EACrBC,eAAe,EACf2F,YAAa,gBACbrG,WAAY,0BACZE,aAAc,SACdN,QACE0D,aAAcM,EAAG7a,QACjBud,aAAcvb,KAGjBwb,MAAM5hB,EAAE6hB,MACRrE,QAAQ,WACPuL,EAAe,MACf9J,EAAGyK,gBAMb3pB,KAAK6pB,uBAAyB,SAASxY,GACrC,OAAK0N,EAAW+K,SACkC,SAA9C5oB,EAAYuF,SAAS4a,wBACvBrhB,KAAK+pB,YAAY1Y,IACV,IAKXrR,KAAKmd,MAAQ,WACXqB,EAAOyD,GAAG,wBAAwBpiB,KAAK,WACrCqf,EAAG7Y,QAAU,YACNwY,EAAarT,mBAIxBxL,KAAKgoB,MAAQ,SAASrO,GACf3Z,KAAK6pB,uBAAuB,UAC/BD,EAAgBjQ,EAAQ3Z,KAAKqG,QAAQ4R,WAIzCjY,KAAKioB,SAAW,SAAStO,GAClB3Z,KAAK6pB,uBAAuB,aAC/BD,EAAgBjQ,EAAQ3Z,KAAKqG,QAAQ8R,cAIzCnY,KAAKkoB,QAAU,SAASvO,GACjB3Z,KAAK6pB,uBAAuB,YAC/BD,EAAgBjQ,EAAQ3Z,KAAKqG,QAAQ+R,aAIzCpY,KAAKgqB,KAAO,SAASrQ,GACd3Z,KAAK6pB,uBAAuB,SAC/B7pB,KAAKqG,QAAQqQ,mBAAmB7W,KAAK,WACnC+pB,EAAgBjQ,EAAQuF,EAAG7Y,YAKjCrG,KAAK+pB,YAAc,SAAS1Y,GAC1B,IAAI6I,GAAO6E,EAAWuC,UACX,0BACAthB,KAAKqG,QAAQF,UAEb2Y,EAAgBA,EAAgB9e,KAAKqG,QAAQoL,SAAS3M,OACtD9E,KAAKqG,QAAQoB,KACnBoC,KAAK,KACN0X,EAAMvhB,KAAKqG,QAAQC,gBACnB+K,IAAQ6I,GAAO,IAAM7I,GACXiN,EAAQtB,KAAK9C,EAAKqH,GACJ,YACA,aACA,cACA,eACA,YACA,aACA,gBACA,WACA,YACA,iBACA1X,KAAK,OAGnC7J,KAAK2pB,WAAa,WACZrL,EAAQrI,SAASkE,KAAKsC,UAAUwN,SAAS,UAC3C3L,EAAQnB,SAGZnd,KAAK4f,WAAa,SAASjG,EAAQ1S,GACjC0S,EAAO0I,kBACP1I,EAAOqI,iBACPhiB,KAAKqE,QAAQ6B,aAAce,OAAQA,IAAUpH,KAAK,SAASwG,GACzDujB,EAAgBjQ,EAAQtT,MAI5BrG,KAAKkqB,gBAAkB,SAASvQ,GACzB3Z,KAAK8nB,eAAkB9nB,KAAKqG,QAAQ8jB,WAOvCnqB,KAAK8nB,eAAiB9nB,KAAK8nB,cAN3B1mB,EAAQC,WAAWmD,KAAKxE,KAAKqG,QAAQjE,GAAI,cAAcvC,KAAK,SAASiC,GACnEod,EAAG7Y,QAAQ8jB,WAAaroB,EACxBod,EAAG4I,eAAgB,KAQzB9nB,KAAKoqB,MAAQ,SAASzQ,GACpB2E,EAAQ8L,SAGVpqB,KAAKqqB,eAAiB,SAAS1Q,GAC7B,OAAO2Q,EAAoB3Q,EAAQ,gBAGrC3Z,KAAKuqB,cAAgB,SAAS5Q,GAC5B,OAAO2Q,EAAoB3Q,EAAQ,SAGrC,SAAS2Q,EAAoB3Q,EAAQjV,GACnCwa,EAAG7Y,QAAQyQ,gBAAgBjX,KAAK,SAASiC,GACvC,IAAI0oB,GACFC,IAAKjD,EAASkD,mBACdhmB,KAAMA,EACNimB,QAAS7oB,EAAKmL,QACd2d,QAAS9oB,EAAKqT,SAEZxL,EAAY,IAAI8d,EAAU+C,GAG1B7I,GACF5C,EAAWzd,WAAW,aACtB,WACA,MAAQoD,EAAKmmB,aAAe,kBAC5BhhB,KAAK,KACP,OAAO4U,EAAU5F,MACflL,OAAQ7N,QAAQuW,QAAQJ,SAASkE,MACjCuB,YAAa/B,EACboC,qBAAqB,EACrBC,eAAe,EACf2F,YAAaA,EACbrG,WAAY,4BACZE,aAAc,SACdN,QACE4P,eAAgBnhB,QAO1B7J,QACG4B,OAAO,iBACP4Z,WAAW,oBAAqB+L,GAtarC,GCAA,WACE,aAKA0D,EAAwB7N,SAAW,SAAU,UAAW,eAAgB,cAAe,UAAW,YAAa,WAAY,eAAgB,eAAgB,eAAgB,kBAAmB,WAAY,SAAU,cAAe,OAAQ,eAC3O,SAAS6N,EAAwBxM,EAAQD,EAAS0M,EAAcC,EAAaC,EAASzM,EAAWC,EAAUyM,EAAcvM,EAAcgD,EAAc9C,EAAiB/d,EAAUke,EAAQmM,EAAaC,EAAMnqB,GACzM,IAAIge,EAAKlf,KAETA,KAAKof,QAAU,WACbF,EAAGoM,aAAeA,EAClBpM,EAAGqM,cAAgB3Z,MAAQC,MAAQC,QACnCoN,EAAGsM,SAAW,KACdtM,EAAGuM,eAAiBA,EACpBvM,EAAGjT,OAASA,EACZiT,EAAGwM,cAAgBA,EACnBxM,EAAGyM,cAAe,EAClBzM,EAAG0M,QAAgD,IAArChK,EAAa7a,SAAS+K,IAAIrP,OACxCyc,EAAG2M,OAA8C,IAApCjK,EAAa7a,SAAS8K,GAAGpP,OACtCyc,EAAG/e,WAAaF,EAAE6rB,KAAK7rB,EAAEyH,IAAIkX,EAAaze,WAAY,SACtD+e,EAAG7Y,QAAUub,EACb1C,EAAG6M,wBACDd,EAAYe,SAASC,MACrBhB,EAAYe,SAASE,IACrBjB,EAAYe,SAASG,MACrBlB,EAAYe,SAASI,WAEvBlN,EAAGmN,iBAAmBA,EACtBnN,EAAG5O,KAAOA,EACV4O,EAAGoN,KAAOA,EACVpN,EAAGqN,WAAY,EACfrN,EAAGsN,iBAAmBA,EA8EtBtN,EAAGuN,SAAW,IAAItB,GAChBjR,IAAKgF,EAAG7Y,QAAQC,eAAeC,SAAS,EAAMoN,kBAAkB,IAAS,QACzE+Y,YAAY,EACZC,MAAO,cACPC,mBAAmB,EAInBC,cAAe,SAASC,EAAMvc,EAAUzI,EAAQkC,GAC9CkV,EAAG7Y,QAAQuN,QAAQrD,EAAS9I,KAC5ByX,EAAG7Y,QAAQ8Q,SAAS5Q,SAAS,IAC7BumB,EAAKC,UAAYxc,EAASyc,oBAAoB,GAAG9S,KAGnD+S,aAAc,SAASH,EAAMvc,EAAUzI,EAAQkC,GAG7CkV,EAAG7Y,QAAQiR,kBAAkBwV,EAAKI,KAAKloB,MACvChF,KAAKmtB,gBAAgBL,IAEvBM,YAAa,SAASN,EAAMvc,EAAUzI,EAAQkC,GAC5C0U,EAAS7F,KACP6F,EAASyE,SACNhO,QAAQpP,EAAE,yCAA4C+mB,EAAKI,KAAKloB,MACxD,KAAOuL,EAASlK,QAASN,EAAEwK,EAASlK,SAAW,KACvDoV,SAAS,aACTpK,OAAOtL,EAAE,OACTqd,WAAU,IACfpjB,KAAKmtB,gBAAgBL,MArGrB5rB,EAAYuF,SAAS4mB,mBAEvBnO,EAAGsM,SAAWzqB,EAASme,EAAGuM,eAAsD,IAAtCvqB,EAAYuF,SAAS4mB,iBAAsB,KAEvFnO,EAAGoO,WAAapsB,EAAYuF,SAAS8mB,WAGrChP,EAAOiC,IAAI,WAAY,WAAatB,EAAGuN,SAASe,YAEjB,SAA3BxC,EAAayC,WACf7L,EAAa3J,SAASpY,KAAK,SAASkR,GAClCmO,EAAG7Y,QAAU0K,EACbmO,EAAG2M,QAAW9a,EAAUhK,SAAS8K,IAAuC,IAAjCd,EAAUhK,SAAS8K,GAAGpP,OAC7Dyc,EAAG0M,SAAY7a,EAAUhK,SAAS+K,KAAyC,IAAlCf,EAAUhK,SAAS+K,IAAIrP,OAChEirB,MAGgC,YAA3B1C,EAAayC,WACpB7L,EAAazJ,YAAYtY,KAAK,SAASkR,GACrCmO,EAAG7Y,QAAU0K,EACbmO,EAAG2M,QAAW9a,EAAUhK,SAAS8K,IAAuC,IAAjCd,EAAUhK,SAAS8K,GAAGpP,OAC7Dyc,EAAG0M,SAAY7a,EAAUhK,SAAS+K,KAAyC,IAAlCf,EAAUhK,SAAS+K,IAAIrP,OAChEirB,MAGgC,WAA3B1C,EAAayC,WACpB7L,EAAaxJ,WAAWvY,KAAK,SAASkR,GACpCmO,EAAG7Y,QAAU0K,EACb2c,IACAC,MAGK7tB,QAAQ8L,UAAUgW,KACzB1C,EAAG7Y,QAAUub,EACb8L,IACAC,MAOJ,SAASlF,IACP,IAAImF,EAAepF,KAEnB,IACMlK,EAAQ8J,QACN,uBAAwB9J,EAAQ8J,QAChC,mBAAoB9J,EAAQ8J,OAAO/I,qBACwB,SAAzDf,EAAQ8J,OAAO/I,mBAAmBvW,eAAepE,MACnD8jB,EAAMqF,iBAAmBvP,EAAQ8J,OAAO/I,mBACpC,uBAAwBf,EAAQ8J,QAChC9J,EAAQ8J,OAAOV,mBAAmBrhB,QAAQoB,KAAOma,EAAana,MAEhE+gB,EAAMsF,iBAAmBxP,EAAQ8J,OAAOV,qBAGnC9F,EAAavJ,SACpBuV,EAAgBhM,EAAavJ,OAAOhS,QAChCiY,EAAQ8J,OAAO/I,mBAAmBvW,eAAeqB,OAASyjB,EAAcnc,SAAStH,QAEnFqe,EAAMuF,kBAAoBzP,EAAQ8J,OAAO/I,sBAMnD,MAAO1d,IAEP,OAAO6mB,EAsCT,SAASkF,IACPxO,EAAGuN,SAASvS,IAAMgF,EAAG7Y,QAAQC,eAAeC,SAAS,EAAMoN,kBAAkB,IAAS,QAGxF,SAASga,IAEP,IAAIxrB,EAAGL,EAAMksB,EAAUhU,EAAQkF,EAAG7Y,QAAQU,SAASwQ,gBACnD,GAAIyC,EACF,IAAK7X,EAAI,EAAGA,EAAI6X,EAAMvX,OAAQN,IAC5BL,GACEkD,KAAMgV,EAAM7X,GAAGgN,SACfzK,KAAMsV,EAAM7X,GAAG8X,SACf0I,KAAMxZ,SAAS6Q,EAAM7X,GAAGwgB,QAE1BqL,EAAW,IAAI7C,EAAa8C,SAAS/O,EAAGuN,SAAU3qB,IACzCosB,SAAW,IACpBF,EAASG,YAAa,EACtBH,EAASI,WAAY,EACrBJ,EAASjB,UAAY/S,EAAM7X,GAAG+X,IAC9BgF,EAAGuN,SAAS4B,MAAMpqB,KAAK+pB,GAI7B,SAAS3B,EAAiBS,EAAM1qB,GAC1B0qB,EAAKwB,YACPpP,EAAGuN,SAAS8B,WAAWzB,IAEvB5N,EAAG7Y,QAAQiR,kBAAkBwV,EAAKI,KAAKloB,MACvC8nB,EAAKnQ,UAIP,IAAItG,EAAUiI,EAAQrI,SAASuY,eAAepsB,GAC1CiU,GACFvW,QAAQuW,QAAQA,GAASoY,KAAK,QAAS,MAG3C,SAASxiB,IACHiT,EAAGsM,UACLzqB,EAASkL,OAAOiT,EAAGsM,UAEjBtM,EAAG7Y,QAAQW,OAASkY,EAAG7Y,QAAQkR,iBACjC2H,EAAG7Y,QAAQoL,SAAS5B,iBAAiBqP,EAAG7Y,UAE1CoY,EAAUxS,SAGZ,SAASqE,IACP,IAAIkY,EAAQC,IACZvJ,EAAG7Y,QAAQwH,QAAQhO,KAAK,SAASiC,GAC/Bod,EAAG7Y,QAAQ8jB,WAAa,KACpB3B,EAAMqF,kBAGRrF,EAAMqF,iBAAiB/kB,eAAe+C,UAAUhM,KAAK,WAC/C2oB,EAAMsF,kBAERtF,EAAMsF,iBAAiBtP,OAAOyD,GAAG,gCAAkC1W,UAAW2T,EAAG7Y,QAAQoB,QAI/FiX,EAAS7F,KACP6F,EAASyE,SACNhO,QAAQpP,EAAE,8BACV0V,SAAS,aACT2H,UAAU,QAInB,SAASkJ,IACPpN,EAAGqN,UAAY,UACXrN,EAAGsM,UACLzqB,EAASkL,OAAOiT,EAAGsM,UAErBtM,EAAG7Y,QAAQiS,QAAQzY,KAAK,SAASiC,GAC/B,IAAI0mB,EAAQC,IACZvJ,EAAGqN,UAAY,OACX/D,EAAMqF,kBAGRrF,EAAMqF,iBAAiB/kB,eAAe+C,UAAUhM,KAAK,WAC/C2oB,EAAMsF,kBAERtF,EAAMsF,iBAAiB3Q,UAIzBqL,EAAMuF,mBAGRvF,EAAMuF,kBAAkBjlB,eAAe+C,UAEzC6S,EAAS7F,KACP6F,EAASyE,SACNhO,QAAQpP,EAAE,6BACV0V,SAAS,aACT2H,UAAU,MAGfriB,EAAS0d,EAAUwH,KAAM,MACxB,SAAS1V,GACVxP,EAAS,WACPme,EAAGqN,UAAY,QACfrN,EAAGwP,aAAene,EAASzO,KAAMyO,EAASzO,KAAKuE,QAAUkK,EAASoe,eAKxE,SAASnC,IACPtN,EAAGyM,cAAgBzM,EAAGyM,aAGxB,SAASD,EAAc/iB,GACrB,OAAOyiB,EAAYwD,WAAWjmB,GAAQ9I,KAAK,SAASgvB,GAGlD,IAAIC,KAOJ,OANA7uB,EAAEC,QAAQD,EAAE0Q,UAAUke,EAAO,WAAY,SAASE,GAChD9uB,EAAEC,QAAQ6uB,EAAW,SAASC,GAC5BF,EAAc7qB,KAAK+qB,OAIhB/uB,EAAEgvB,OAAOH,EAAe,SAASE,GACtC,OAAOA,EAAKE,WAAa,IAAMF,EAAKG,YAK1C,SAAS7D,EAAa8D,EAASrO,GAC7B,IAAIsO,EAAYC,EAAWC,EAAMptB,EAAGsS,EAChC+a,EAAU,4LAId,GAFAH,EAAanQ,EAAG7Y,QAAQU,SAASga,GAE7BjhB,QAAQ8D,SAASwrB,GAAU,CAM7B,IADA3a,EAAU,GACLtS,EAAI,EAAGA,EAAIitB,EAAQ3sB,OAAQN,IACC,GAA1BitB,EAAQK,WAAWttB,IACM,IAAzBitB,EAAQK,WAAWttB,IACM,IAAzBitB,EAAQK,WAAWttB,IACM,IAAzBitB,EAAQK,WAAWttB,KACpBqtB,EAAQE,KAAKjb,GAKfA,GAAW2a,EAAQO,OAAOxtB,IAJ1BktB,EAAWprB,KAAKwQ,GAChBA,EAAU,IAQd,OAFIA,GACF4a,EAAWprB,KAAKwQ,GACX,KAyBT,OAtBI2a,EAAQQ,SAASC,YAAY,IAE3B/vB,QAAQ8L,UAAUwjB,EAAQU,OAASV,EAAQU,KAAKrtB,OAClDxC,EAAEC,QAAQkvB,EAAQU,KAAM,SAASC,GAC3BA,EAAIxvB,MAAMkC,QACZ4sB,EAAWprB,KAAK8rB,EAAIC,mBAIxBT,EAAOlE,EAAKnoB,MAAMksB,EAAQa,UAAWb,EAAQc,SACxC/lB,MAAMtK,KAAK,SAASswB,GACvBlwB,EAAEC,QAAQqvB,EAAKO,KAAM,SAASC,GACxBA,EAAIxvB,MAAMkC,QACZ4sB,EAAWprB,KAAK8rB,EAAIC,oBAM5BV,EAAYF,EAAQY,eAGlBV,GAGK,KAIX,SAAS7D,IACPvM,EAAG7Y,QAAQwH,QACP3M,EAAYuF,SAAS4mB,mBACvBnO,EAAGsM,SAAWzqB,EAASme,EAAGuM,eAAsD,IAAtCvqB,EAAYuF,SAAS4mB,iBAAsB,MAK3F+C,EAA2BlT,SAAW,SAAU,YAChD,SAASkT,EAA2B7R,EAAQG,GAC1CH,EAAO8R,WAAa,WAClB3R,EAASuH,QAIbnmB,QACG4B,OAAO,iBACP4Z,WAAW,6BAA8B8U,GACzC9U,WAAW,0BAA2ByP,GA9V3C,GCAA,WAiBEuF,EAAoBpT,SAAW,WAAY,eAAgB,SAAU,WAAY,aAAc,aAAc,UAAW,mBACxH,SAASoT,EAAoBxM,EAAUK,EAAc3F,EAAQ8I,EAAUiJ,EAAYhJ,EAAYpmB,EAAS2d,GACtG,IAAkBxb,KAGlBtD,KAAKwwB,UAAY,WACfxwB,KAAKywB,aAAexwB,EAAE2E,KAAKkf,EAASlf,KAAK,OAAQ,SAAS8rB,GACxD,OAAOA,EAAIjU,UAAUwN,SAAS,eAMlCjqB,KAAK2wB,qBAAuB,SAAUC,GACpCttB,EAAUW,KAAK2sB,IAKjB5wB,KAAK8K,aAAe,SAAU8lB,GAE5B,GADAzvB,EAAQwjB,yBAA2BiM,EACJ,OAA3BzvB,EAAQ2H,eAAyB,CACnC,IAAI+nB,EAAsB5wB,EAAE2E,KAAKtB,EAAW,SAASwtB,GACnD,OAAOA,EAAKvsB,QAAQnC,IAAMjB,EAAQ2H,eAAe1G,KAE/CyuB,GACFA,EAAoBE,iBAGnBzJ,EAASC,EAAW,WACvBgJ,EAAW,QAAQpT,SAKzBrd,QACG4B,OAAO,iBACP4Z,WAAW,sBAAuBgV,GAClCU,UAAU,mBAjDb,WACE,OACEC,SAAU,IACVC,SACA5V,WAAY,yBAVlB,GCAA,WAEE,aAuBA6V,EAAiBjU,SAAW,SAAU,QACtC,SAASiU,EAAiB5S,EAAQ6F,GAChC,IAAIlF,EAAKlf,KAETue,EAAO6S,oBAAqB,EAC5B7S,EAAO8S,YAAc,GACrB9S,EAAOkI,WAAa,GAEpBlI,EAAOmI,WAAa,SAAS/d,GAC3B,OAAOyb,EAAKvY,QAAQlD,IAGtB4V,EAAO+S,gBAAkB,SAASjgB,GAChC,IAAIvP,EAEU,YAAVuP,IACFvP,GACEyvB,gBAAgB,EAChBF,YAAa9S,EAAO8S,YAAYG,UAIpCjT,EAAOkT,OAAOprB,QAAQ6Q,YAAYgI,EAAGwS,iBAAkBrgB,EAAQvP,IAInEhC,QACG4B,OAAO,iBACP4Z,WAAW,mBAAoB6V,GAC/BH,UAAU,SA5Cb,WACE,OACEC,SAAU,IACVU,KAIF,SAAcT,EAAOU,EAAU5X,EAAO8W,GACpCA,EAAKY,iBAAmB1X,EAAM6X,YAJ9BvW,WAAY,sBAdlB,GCAA,WAoDEwW,EAA4B5U,SAAW,SAAU,WAAY,SAAU,WAAY,WAAY,WAAY,aAAc,aAAc,SAAU,UAAW,mBAC5J,SAAS4U,EAA4BvT,EAAQuF,EAAUtF,EAAQE,EAAU3F,EAAUuO,EAAUiJ,EAAYhJ,EAAYtI,EAAQ9d,EAAS2d,GACpI,IAAI1F,EAAQpZ,KAGZA,KAAKof,QAAU,WACbpf,KAAK8jB,SAAWA,EAChB9jB,KAAK+xB,UAAW,EAChB/xB,KAAKgyB,kBAAkBrB,qBAAqB3wB,OAI9CA,KAAKwwB,UAAY,WACfxwB,KAAKiyB,kBAAoBnO,EAASlf,KAAK,OAAO,GAC9C5E,KAAKkyB,iBAAmBpO,EAASlf,KAAK,KAAK,GAC3C5E,KAAKmyB,eAAiBrO,EAASlf,KAAK,sBAAsB,GAC1D5E,KAAKoyB,aAAetO,EAASlf,KAAK,SAAS,GAC3C5E,KAAKqyB,kBAAoBpyB,EAAEiU,KAAK4P,EAASlf,KAAK,YAGf,OAA3BzD,EAAQ2H,gBAA2B3H,EAAQ2H,eAAe1G,IAAMpC,KAAKuE,QAAQnC,IAC/EpC,KAAKgyB,kBAAkBlnB,aAAa9K,OAIxCA,KAAKsyB,WAAa,WAChB,MAAO,kBAAoBtyB,KAAKuE,QAAQiF,OAI1CxJ,KAAK8K,aAAe,SAAS6O,GACvB3Z,KAAK+xB,UAAY/xB,KAAKuE,SAAWpD,EAAQ2H,gBAAkB9I,KAAKuE,QAAQ+I,eAE5EnM,EAAQ8H,cAAe,EACvB9H,EAAQ6H,cAAe,EACvBhJ,KAAKgyB,kBAAkBlnB,aAAa9K,MAChC2Z,IACF6E,EAAOyD,GAAG,wBACR9b,UAAWnG,KAAKuE,QAAQ4D,SAAS/F,GACjC8f,UAAWpD,EAAgB9e,KAAKuE,QAAQO,QAE1C6U,EAAO0I,kBACP1I,EAAOqI,oBAKXhiB,KAAK+wB,eAAiB,WACpBjN,EAAS,GAAGrH,UAAUE,OAAO,UAI/B3c,KAAKuyB,WAAa,SAAS5Y,GACzB3Z,KAAK+xB,UAAW,EAChB/xB,KAAKoyB,aAAahiB,MAAQpQ,KAAKuE,QAAQS,KACvChF,KAAKkyB,iBAAiBzV,UAAUC,IAAI,WACpC1c,KAAKmyB,eAAe1V,UAAUE,OAAO,WACrC3c,KAAKoyB,aAAapT,QAClBhf,KAAKoyB,aAAaI,SACd7Y,IACFA,EAAO0I,kBACP1I,EAAOqI,mBAKXhiB,KAAKyyB,WAAa,SAAS9Y,GACrB3Z,KAAKoyB,aAAaM,WAGtB1yB,KAAKuE,QAAQS,KAAOhF,KAAKoyB,aAAahiB,MACtCpQ,KAAKoyB,aAAaM,UAAW,EAC7B1yB,KAAKuE,QAAQkJ,UACV5N,KAAK,SAASiC,GACbsX,EAAM2Y,UAAW,EACjB3Y,EAAM+Y,eAAe1V,UAAUC,IAAI,WACnCtD,EAAM8Y,iBAAiBzV,UAAUE,OAAO,aAEzCc,QAAQ,WACPrE,EAAMgZ,aAAaM,UAAW,MAKpC1yB,KAAK2yB,cAAgB,WACnB3yB,KAAK+xB,UAAW,EAChB/xB,KAAKkyB,iBAAiBzV,UAAUE,OAAO,WACvC3c,KAAKmyB,eAAe1V,UAAUC,IAAI,WAClC1c,KAAKoyB,aAAahiB,MAAQpQ,KAAKuE,QAAQS,MAIzChF,KAAK4kB,cAAgB,WACnB3F,EAAO2D,QAAQ7c,EAAE,WACFA,EAAE,4DACA8c,GAAI9c,EAAE,YACpBlG,KAAK,WACJuZ,EAAM7U,QAAQ+K,UACXzP,KAAK,WACJ2e,EAAOyD,GAAG,uBACT,SAAS1R,GACV0O,EAAO2D,QAAQ7c,EAAE,WACFA,EAAE,iGACA8c,GAAI9c,EAAE,YACpBlG,KAAK,WACJuZ,EAAM7U,QAAQ+K,SAAUyT,cAAc,IACnCljB,KAAK,WACJ2e,EAAOyD,GAAG,uBACT,SAAS1R,GACV0O,EAAOoH,MAAMtgB,EAAE,sDAAuDqT,EAAM7U,QAAQS,MACvEe,EAAEwK,EAASC,iBAQ1CxQ,KAAK4yB,SAAW,SAASjZ,GACvB,IAAIU,EAAgBtB,EAASuB,mBACxBuY,WAAW7yB,KAAKqyB,mBAChBS,iBACC/Z,EAASga,UAAUC,YACnBja,EAASka,UAAUC,YAGrB1Y,EAAiBzB,EAAS0B,oBACzBC,SAAS1a,KAAKqyB,mBACdzX,SAAS,KACTC,cAAc9B,EAAS+B,UAAUC,MAElCC,GACFC,SAAUnb,QAAQuW,QAAQJ,SAASkE,MACnCe,QACEiY,SAAUnzB,KACViQ,OAAQjQ,KAAKuE,QACbqgB,cAAe5kB,KAAK4kB,eAEtBvJ,kBAAkB,EAClBC,WAAY8X,EACZ5X,aAAc,YACdC,SAAUpB,EACVS,UAAWN,EACXkB,YAAa/B,EACbgI,YAAa,oBACb7F,WAAW,EACXC,qBAAqB,EACrBC,eAAe,EACfC,aAAa,GAGflD,EAASiE,KAAKhC,GACXnb,KAAK,SAASwzB,GAEbA,EAASC,QAAQhX,IAAI,QAAS,WAC5B+W,EAASlW,YAIfiW,EAAelW,SAAW,aAAc,SAAU,YAAa,QAC/D,SAASkW,EAAenW,EAAYuB,EAAQC,EAAW2F,GACrD,IAAImP,EAAYvzB,KAEhBA,KAAKwzB,eAAiB,WACpBxzB,KAAKiQ,OAAOvB,eAGd1O,KAAKkmB,UAAY,WACfjH,EAAOmH,OAAOrgB,EAAE,iBACFA,EAAE,sCACblG,KAAK,SAASmF,GACbuuB,EAAUtjB,OAAOlL,YAAYwuB,EAAUtjB,OAAO7N,GAAI4C,GAC/CnF,KAAK,aAEH,SAASiC,EAAMgG,GAChBmX,EAAOoH,MAAMtgB,EAAE,sDAAuDf,GACzDe,EAAEjE,EAAK0O,aAK9BxQ,KAAKuyB,WAAa,WAChBvyB,KAAKmzB,SAASZ,cAGhBvyB,KAAKyzB,cAAgB,WACnBzzB,KAAKiQ,OAAO3B,WAAWzO,KAAK,WAC1B6e,EAAS7F,KACP6F,EAASyE,SACNhO,QAAQpP,EAAE,qBACV0V,SAAS,aACT2H,UAAU,SAInBpjB,KAAK0zB,iBAAmB,WACtB1zB,KAAKiQ,OAAOxB,cAAc5O,KAAK,WAC7B6e,EAAS7F,KACP6F,EAASyE,SACNhO,QAAQpP,EAAE,kBACV0V,SAAS,aACT2H,UAAU,SAInBpjB,KAAK2zB,mBAAqB,WACxBxyB,EAAQ8H,aAAejJ,KAAKiQ,OAAOnL,KAE9BwiB,EAASC,EAAW,WACvBgJ,EAAW,QAAQpT,SAGvBnd,KAAK4zB,MAAQ,WAEX5zB,KAAKiQ,OAAO7F,KAAKypB,SAASh0B,KAAK,WAE7B4e,EAAU5F,MACR8I,YAAa4R,EAAUtjB,OAAO7N,GAAK,gBACnCkZ,WAAY,gBACZE,aAAc,MACdO,qBAAqB,EACrBC,eAAe,EACfd,QACE4Y,aAAcP,EAAUtjB,OAAO7F,KAAKvC,MACpCuc,KAAMA,EACNnU,OAAQsjB,EAAUtjB,aAM1BjQ,KAAK+zB,YAAc,SAASrvB,GAC1B1E,KAAKiQ,OAAOzB,aAAa9J,GAAM7E,KAAK,WAClC0zB,EAAUtjB,OAAO9H,SAAStF,eAAeI,QAAQ,SAW3DnD,QACG4B,OAAO,iBACP4Z,WAAW,8BAA+BwW,GAC1Cd,UAAU,oBArSb,WACE,OACEC,SAAU,IACV+C,SACEhC,kBAAmB,sBAErBd,SACA7V,kBACE9W,QAAS,cAEXsX,UACE,kCACA,wCACA,qCACA,kDACA,gCAAkC9V,EAAE,YAAc,IAClD,sDACA,oEACA,4GACA,+DACA,WACA,4BACA,4CACA,8CACA,yDACA,6CACA,gDACA,wDACA,SACA,iDACA,8CACA,0BAA4BA,EAAE,qCAAuC,IACrE,gDACA,iDACA,kDACA,0BACA,4EAA8EA,EAAE,WAAa,yBAC7F8D,KAAK,IACPyR,WAAY,8BACZE,aAAc,WA7CpB,GCAA,WAsBEyY,EAA4B/W,SAAW,SAAU,WAAY,WAC7D,SAAS+W,EAA4B1V,EAAQuF,EAAU3iB,GACrD,IAAIiY,EAAQpZ,KAGZA,KAAKof,QAAU,WACb,IAAI8U,GAAgB,MAAO,SAAU,YAAa,QAAS,WAG3Dl0B,KAAKm0B,eAAiBhzB,EAEa,SAA/BA,EAAQ2H,eAAepE,MACzBwvB,EAAajwB,KAAK,WAEpBsa,EAAOmC,OACL,WACE,OAAOtH,EAAM/S,SAAWpG,EAAEm0B,KAAKhb,EAAM/S,QAAS6tB,IAAkB,MAElE,SAASG,EAAOC,GACVlb,EAAM/S,SAER+S,EAAMmb,aAGV,IAKJv0B,KAAKu0B,SAAW,WAEVv0B,KAAKqG,QAAQsI,OACfmV,EAASjH,YAAY,UAErBiH,EAAS1J,SAAS,UAEhBjZ,EAAQ2H,eAAewC,kBAAkBtL,KAAKqG,QAAQoB,IAAKzH,KAAKqG,QAAQoL,SAAS3M,MACnFgf,EAAS1J,SAAS,6CAElB0J,EAASjH,YAAY,8CAIzB7c,KAAKw0B,cAAgB,SAAUne,EAASoe,GAClCA,EACFpe,EAAQoG,UAAUE,OAAO,WAEzBtG,EAAQoG,UAAUC,IAAI,YAM5B5c,QACG4B,OAAO,iBACP4Z,WAAW,8BAA+B2Y,GAC1CjD,UAAU,oBAtEb,WACE,OACEC,SAAU,IACVC,SACA7V,kBACEhV,QAAS,cAEXiV,WAAY,iCAflB,GCAA,WAsDEoZ,EAAgCxX,SAAW,SAAU,WAAY,SAAU,SAAU,UAAW,WAAY,UAAW,UAAW,mBAClI,SAASwX,EAAgCnW,EAAQuF,EAAU6Q,EAAQnW,EAAQ0M,EAASxM,EAAUvd,EAASC,EAAS0d,GAC9G,IAAI1F,EAAQpZ,KAEZA,KAAKwwB,UAAY,WACf,IAAIoE,EAAmBC,EACnBC,EAA0BN,EAE9Bx0B,KAAK+0B,iBAAmBxW,EAAOwW,iBAE/BD,EAA2B90B,KAAK+0B,iBAAiBR,SACjDC,EAAgBx0B,KAAK+0B,iBAAiBP,cAEtCv0B,EAAEC,QAAQ4jB,EAASlf,KAAK,OAAQ,SAAS8rB,GACnCA,EAAIjU,UAAUwN,SAAS,mBACzB2K,EAAoB90B,QAAQuW,QAAQqa,GAC7BA,EAAIjU,UAAUwN,SAAS,mBAC9B4K,EAAkB/0B,QAAQuW,QAAQqa,MAGtC1wB,KAAKg1B,oBAAsBJ,EAAkBhwB,KAAK,WAAW,GAEzDzD,EAAQ6H,eAEVhJ,KAAKi1B,mBAAqBL,EAAkBhwB,KAAK,QAAQ,GACzD5E,KAAKi1B,mBAAmBxY,UAAUE,OAAO,YAG3C3c,KAAKk1B,cAAgBN,EAAkBhwB,KAAK,QAAQ,GAEpD3E,EAAEC,QAAQ00B,EAAkBhwB,KAAK,OAAQ,SAAS8rB,GAC5CA,EAAIjU,UAAUwN,SAAS,mBACzB7Q,EAAM+b,eAAiBzE,EAChBA,EAAIjU,UAAUwN,SAAS,gBAC9B7Q,EAAMgc,YAAc1E,EACbA,EAAIjU,UAAUwN,SAAS,kBAC9B7Q,EAAMic,YAAc3E,KAGxBzwB,EAAEC,QAAQ20B,EAAgBjwB,KAAK,WAAY,SAAS8rB,GAC3B,QAAnBA,EAAI4E,YACNlc,EAAMmc,gBAAkB7E,EACE,SAAnBA,EAAI4E,YACXlc,EAAMoc,kBAAoB9E,EACA,WAAnBA,EAAI4E,YACXlc,EAAMqc,mBAAqB/E,EACD,eAAnBA,EAAI4E,cACXlc,EAAMsc,sBAAwBhF,KAMlC1wB,KAAK+0B,iBAAiBR,SAAW,WAC/B,IAAIpyB,EACJiX,EAAM/S,QAAU+S,EAAM2b,iBAAiB1uB,QAGvC,IAAIsvB,EAAezK,EAAQ0K,aAAa9R,EAAS,GAAGvN,iBAAiB,iBAIrE,IAHAtW,EAAEC,QAAQy1B,EAAc,SAASE,GAC/B/R,EAAS,GAAGgS,YAAYD,KAErB1zB,EAAI,EAAGA,EAAIiX,EAAM/S,QAAQgH,MAAM5K,QAAUN,EAAI,EAAGA,IAAK,CACxD,IAAIgR,EAAMiG,EAAM/S,QAAQgH,MAAMlL,GAC9B,GAAIiX,EAAMkG,QAAQjN,MAAMc,GAAM,CAC5B,IAAI0iB,EAAc/1B,QAAQuW,QAAQ,mCAClCwf,EAAYE,IAAI,OAAW,EAAF5zB,EAAO,MAChC0zB,EAAYE,IAAI,mBAAoB3c,EAAMkG,QAAQjN,MAAMc,GAAK,IAC7D2Q,EAASkS,QAAQH,IAKjBzc,EAAM6b,qBACR7b,EAAM6b,mBAAmB9e,UAAYiD,EAAM/S,QAAQoL,SAASpH,cAGd,QAA5C+O,EAAM+a,eAAerrB,eAAepE,KACtC0U,EAAM8b,cAAc/e,UAAYiD,EAAM/S,QAAQmO,cAAc,MAAMyhB,iBAElE7c,EAAM8b,cAAc/e,UAAYiD,EAAM/S,QAAQmO,cAAc,QAAQyhB,iBAGlE7c,EAAM/S,QAAQ6vB,UAAY9c,EAAM/S,QAAQ6vB,SAAS1sB,MAAQ,GAC3D4P,EAAM4b,oBAAoBvY,UAAUE,OAAO,WACvCvD,EAAM/S,QAAQ6vB,SAAS1sB,MAAQ,EACjC4P,EAAM4b,oBAAoBvY,UAAUC,IAAI,WAExCtD,EAAM4b,oBAAoBvY,UAAUE,OAAO,YAG7CvD,EAAM4b,oBAAoBvY,UAAUC,IAAI,WAG1CtD,EAAM+b,eAAehf,UAAYiD,EAAM/S,QAAQ4G,QAAQgpB,iBAGvD7c,EAAMgc,YAAYjf,UAAYiD,EAAM/S,QAAQsc,KAG5CvJ,EAAMic,YAAYlf,UAAYiD,EAAM/S,QAAQ8vB,aAE5C3B,EAAcpb,EAAMmc,gBACLnc,EAAM/S,QAAQqR,WAC7B8c,EAAcpb,EAAMoc,kBACLpc,EAAM/S,QAAQmS,YAC7Bgc,EAAcpb,EAAMqc,mBACLrc,EAAM/S,QAAQoS,aAC7B+b,EAAcpb,EAAMsc,sBACLtc,EAAM/S,QAAQ+vB,eAG7Bt2B,QAAQ4M,KAAK0M,EAAM2b,iBAAkBD,EAArCh1B,IAGFE,KAAKsf,QAAUle,EACfpB,KAAKm0B,eAAiBhzB,GAM1BrB,QACG4B,OAAO,iBACP4Z,WAAW,kCAAmCoZ,GAC9C1D,UAAU,wBA3Kb,WACE,OACEC,SAAU,IACV+C,QAAS,sBACT9C,SACArV,UACE,gCACA,gCACA,YACA,6EACA,iDACA,wDACA,aACA,0DACA,WACA,6BACA,gEACA,0DACA,WACA,SACA,8BACA,4CACA,6CACA,+CACA,mDACA,SACA,0CACA,0CACA,gDACA,+HACA,UACAhS,KAAK,IACP8nB,KAKF,SAAkBT,EAAO7a,EAAS2D,EAAO+a,GACvC7D,EAAM6D,iBAAmBA,GALzBzZ,WAAY,kCACZE,aAAc,WA1CpB,GCAA,WAEE,aAkDA6a,EAA0BnZ,SAAW,WAAY,gBACjD,SAASmZ,EAA0BvS,EAAUlL,GAC3C,IAAIQ,EAAQpZ,KAEZA,KAAKwwB,UAAY,WACf5X,EAAaM,cAAc4K,GAC3BA,EAASxD,GAAG,QAAStgB,KAAKs2B,YAG5Bt2B,KAAKs2B,UAAY,SAAS3c,GACK,OAAzBA,EAAOgB,OAAO4O,SAChB3Q,EAAac,YAAYC,EAAQP,EAAMQ,YAI7C9Z,QACG4B,OAAO,iBACPsvB,UAAU,kBApDb,WACE,OACEC,SAAU,IACV5V,kBACEzB,UAAW,oBAEb0B,WAAY+a,KAvBlB","file":"Mailer.services.js"} \ No newline at end of file diff --git a/UI/WebServerResources/js/vendor/angular-material.js b/UI/WebServerResources/js/vendor/angular-material.js index 0237bbe21..3854dbaf3 100644 --- a/UI/WebServerResources/js/vendor/angular-material.js +++ b/UI/WebServerResources/js/vendor/angular-material.js @@ -2,7 +2,7 @@ * AngularJS Material Design * https://github.com/angular/material * @license MIT - * v1.1.6 + * v1.1.7 */ (function( window, angular, undefined ){ "use strict"; @@ -10,7 +10,7 @@ (function(){ "use strict"; -angular.module('ngMaterial', ["ng","ngAnimate","ngAria","material.core","material.core.interaction","material.core.gestures","material.core.layout","material.core.meta","material.core.theming.palette","material.core.theming","material.core.animate","material.components.autocomplete","material.components.bottomSheet","material.components.backdrop","material.components.button","material.components.card","material.components.checkbox","material.components.chips","material.components.colors","material.components.content","material.components.datepicker","material.components.dialog","material.components.divider","material.components.fabActions","material.components.fabShared","material.components.fabSpeedDial","material.components.fabToolbar","material.components.gridList","material.components.icon","material.components.input","material.components.list","material.components.menu","material.components.menuBar","material.components.navBar","material.components.panel","material.components.progressCircular","material.components.progressLinear","material.components.radioButton","material.components.select","material.components.showHide","material.components.sidenav","material.components.slider","material.components.sticky","material.components.subheader","material.components.switch","material.components.swipe","material.components.tabs","material.components.toast","material.components.toolbar","material.components.truncate","material.components.tooltip","material.components.virtualRepeat","material.components.whiteframe"]); +angular.module('ngMaterial', ["ng","ngAnimate","ngAria","material.core","material.core.interaction","material.core.gestures","material.core.layout","material.core.meta","material.core.theming.palette","material.core.theming","material.core.animate","material.components.autocomplete","material.components.backdrop","material.components.button","material.components.bottomSheet","material.components.card","material.components.checkbox","material.components.chips","material.components.colors","material.components.content","material.components.dialog","material.components.datepicker","material.components.divider","material.components.fabActions","material.components.fabShared","material.components.fabSpeedDial","material.components.fabToolbar","material.components.gridList","material.components.icon","material.components.input","material.components.list","material.components.menu","material.components.menuBar","material.components.navBar","material.components.panel","material.components.progressCircular","material.components.progressLinear","material.components.radioButton","material.components.showHide","material.components.select","material.components.sidenav","material.components.slider","material.components.sticky","material.components.subheader","material.components.swipe","material.components.switch","material.components.tabs","material.components.toast","material.components.toolbar","material.components.tooltip","material.components.truncate","material.components.virtualRepeat","material.components.whiteframe"]); })(); (function(){ "use strict"; @@ -1928,457 +1928,6 @@ angular.element.prototype.blur = angular.element.prototype.blur || function() { return this; }; -})(); -(function(){ -"use strict"; - -/** - * @ngdoc module - * @name material.core.compiler - * @description - * AngularJS Material template and element compiler. - */ -angular - .module('material.core') - .provider('$mdCompiler', MdCompilerProvider); - -/** - * @ngdoc service - * @name $mdCompiler - * @module material.core.compiler - * @description - * The $mdCompiler service is an abstraction of AngularJS's compiler, that allows developers - * to easily compile an element with options like in a Directive Definition Object. - * - * > The compiler powers a lot of components inside of AngularJS Material. - * > Like the `$mdPanel` or `$mdDialog`. - * - * @usage - * - * Basic Usage with a template - * - * - * $mdCompiler.compile({ - * templateUrl: 'modal.html', - * controller: 'ModalCtrl', - * locals: { - * modal: myModalInstance; - * } - * }).then(function (compileData) { - * compileData.element; // Compiled DOM element - * compileData.link(myScope); // Instantiate controller and link element to scope. - * }); - * - * - * Example with a content element - * - * - * - * // Create a virtual element and link it manually. - * // The compiler doesn't need to recompile the element each time. - * var myElement = $compile('Test')(myScope); - * - * $mdCompiler.compile({ - * contentElement: myElement - * }).then(function (compileData) { - * compileData.element // Content Element (same as above) - * compileData.link // This does nothing when using a contentElement. - * }); - * - * - * > Content Element is a significant performance improvement when the developer already knows that the - * > compiled element will be always the same and the scope will not change either. - * - * The `contentElement` option also supports DOM elements which will be temporary removed and restored - * at its old position. - * - * - * var domElement = document.querySelector('#myElement'); - * - * $mdCompiler.compile({ - * contentElement: myElement - * }).then(function (compileData) { - * compileData.element // Content Element (same as above) - * compileData.link // This does nothing when using a contentElement. - * }); - * - * - * The `$mdCompiler` can also query for the element in the DOM itself. - * - * - * $mdCompiler.compile({ - * contentElement: '#myElement' - * }).then(function (compileData) { - * compileData.element // Content Element (same as above) - * compileData.link // This does nothing when using a contentElement. - * }); - * - * - */ -MdCompilerProvider.$inject = ['$compileProvider']; -function MdCompilerProvider($compileProvider) { - - var provider = this; - - /** - * @name $mdCompilerProvider#respectPreAssignBindingsEnabled - * - * @param {boolean=} respected update the respectPreAssignBindingsEnabled state if provided, otherwise just return - * the current Material preAssignBindingsEnabled state - * @returns {*} current value if used as getter or itself (chaining) if used as setter - * - * @description - * Call this method to enable/disable whether Material-specific (dialogs/toasts) controllers respect the AngularJS - * `$compile.preAssignBindingsEnabled` flag. Note that this doesn't affect directives/components created via - * regular AngularJS methods which constitute most Material & user-created components. - * - * @see [AngularJS documentation for `$compile.preAssignBindingsEnabled` - * ](https://code.angularjs.org/1.6.4/docs/api/ng/provider/$compileProvider#preAssignBindingsEnabled) - * for more information. - * - * If disabled (false), the compiler assigns the value of each of the bindings to the - * properties of the controller object before the constructor of this object is called. - * - * If enabled (true) the behavior depends on the AngularJS version used: - * - * - `<1.5.10` - bindings are pre-assigned - * - `>=1.5.10 <1.7` - behaves like set to whatever `$compileProvider.preAssignBindingsEnabled()` reports; if - * the `$compileProvider` flag wasn't set manually, it defaults to pre-assigning bindings - * with AngularJS `1.5.x` & to calling the constructor first with AngularJS `1.6.x`. - * - `>=1.7` - the compiler calls the constructor first before assigning bindings - * - * The default value is `false` but will change to `true` in AngularJS Material 1.2. - * - * It is recommended to set this flag to `true` in AngularJS Material 1.1.x; the only reason it's not set that way - * by default is backwards compatibility. Not setting the flag to `true` when - * `$compileProvider.preAssignBindingsEnabled()` is set to `false` (i.e. default behavior in AngularJS 1.6.0 or newer) - * makes it hard to unit test Material Dialog/Toast controllers using the `$controller` helper as it always follows - * the `$compileProvider.preAssignBindingsEnabled()` value. - */ - // TODO change it to `true` in Material 1.2. - var respectPreAssignBindingsEnabled = false; - this.respectPreAssignBindingsEnabled = function(respected) { - if (angular.isDefined(respected)) { - respectPreAssignBindingsEnabled = respected; - return this; - } - - return respectPreAssignBindingsEnabled; - }; - - /** - * @description - * This function returns `true` if Material-specific (dialogs/toasts) controllers have bindings pre-assigned in - * controller constructors and `false` otherwise. - * - * Note that this doesn't affect directives/components created via regular AngularJS methods which constitute most - * Material & user-created components; their behavior can be checked via `$compileProvider.preAssignBindingsEnabled()` - * in AngularJS `>=1.5.10 <1.7.0`. - * - * @returns {*} current preAssignBindingsEnabled state - */ - function getPreAssignBindingsEnabled() { - if (!respectPreAssignBindingsEnabled) { - // respectPreAssignBindingsEnabled === false - // We're ignoring the AngularJS `$compileProvider.preAssignBindingsEnabled()` value in this case. - return true; - } - - // respectPreAssignBindingsEnabled === true - - if (typeof $compileProvider.preAssignBindingsEnabled === 'function') { - return $compileProvider.preAssignBindingsEnabled(); - } - - // Flag respected but not present => apply logic based on AngularJS version used. - if (angular.version.major === 1 && angular.version.minor < 6) { - // AngularJS <1.5.10 - return true; - } - - // AngularJS >=1.7.0 - return false; - } - - this.$get = ["$q", "$templateRequest", "$injector", "$compile", "$controller", - function($q, $templateRequest, $injector, $compile, $controller) { - return new MdCompilerService($q, $templateRequest, $injector, $compile, $controller); - }]; - - function MdCompilerService($q, $templateRequest, $injector, $compile, $controller) { - - /** @private @const {!angular.$q} */ - this.$q = $q; - - /** @private @const {!angular.$templateRequest} */ - this.$templateRequest = $templateRequest; - - /** @private @const {!angular.$injector} */ - this.$injector = $injector; - - /** @private @const {!angular.$compile} */ - this.$compile = $compile; - - /** @private @const {!angular.$controller} */ - this.$controller = $controller; - } - - /** - * @ngdoc method - * @name $mdCompiler#compile - * @description - * - * A method to compile a HTML template with the AngularJS compiler. - * The `$mdCompiler` is wrapper around the AngularJS compiler and provides extra functionality - * like controller instantiation or async resolves. - * - * @param {!Object} options An options object, with the following properties: - * - * - `controller` - `{string|Function}` Controller fn that should be associated with - * newly created scope or the name of a registered controller if passed as a string. - * - `controllerAs` - `{string=}` A controller alias name. If present the controller will be - * published to scope under the `controllerAs` name. - * - `contentElement` - `{string|Element}`: Instead of using a template, which will be - * compiled each time, you can also use a DOM element.
- * - `template` - `{string=}` An html template as a string. - * - `templateUrl` - `{string=}` A path to an html template. - * - `transformTemplate` - `{function(template)=}` A function which transforms the template after - * it is loaded. It will be given the template string as a parameter, and should - * return a a new string representing the transformed template. - * - `resolve` - `{Object.=}` - An optional map of dependencies which should - * be injected into the controller. If any of these dependencies are promises, the compiler - * will wait for them all to be resolved, or if one is rejected before the controller is - * instantiated `compile()` will fail.. - * * `key` - `{string}`: a name of a dependency to be injected into the controller. - * * `factory` - `{string|function}`: If `string` then it is an alias for a service. - * Otherwise if function, then it is injected and the return value is treated as the - * dependency. If the result is a promise, it is resolved before its value is - * injected into the controller. - * - * @returns {Object} promise A promise, which will be resolved with a `compileData` object. - * `compileData` has the following properties: - * - * - `element` - `{element}`: an uncompiled element matching the provided template. - * - `link` - `{function(scope)}`: A link function, which, when called, will compile - * the element and instantiate the provided controller (if given). - * - `locals` - `{object}`: The locals which will be passed into the controller once `link` is - * called. If `bindToController` is true, they will be coppied to the ctrl instead - * - */ - MdCompilerService.prototype.compile = function(options) { - - if (options.contentElement) { - return this._prepareContentElement(options); - } else { - return this._compileTemplate(options); - } - - }; - - /** - * Instead of compiling any template, the compiler just fetches an existing HTML element from the DOM and - * provides a restore function to put the element back it old DOM position. - * @param {!Object} options Options to be used for the compiler. - */ - MdCompilerService.prototype._prepareContentElement = function(options) { - - var contentElement = this._fetchContentElement(options); - - return this.$q.resolve({ - element: contentElement.element, - cleanup: contentElement.restore, - locals: {}, - link: function() { - return contentElement.element; - } - }); - - }; - - /** - * Compiles a template by considering all options and waiting for all resolves to be ready. - * @param {!Object} options Compile options - * @returns {!Object} Compile data with link function. - */ - MdCompilerService.prototype._compileTemplate = function(options) { - - var self = this; - var templateUrl = options.templateUrl; - var template = options.template || ''; - var resolve = angular.extend({}, options.resolve); - var locals = angular.extend({}, options.locals); - var transformTemplate = options.transformTemplate || angular.identity; - - // Take resolve values and invoke them. - // Resolves can either be a string (value: 'MyRegisteredAngularConst'), - // or an invokable 'factory' of sorts: (value: function ValueGetter($dependency) {}) - angular.forEach(resolve, function(value, key) { - if (angular.isString(value)) { - resolve[key] = self.$injector.get(value); - } else { - resolve[key] = self.$injector.invoke(value); - } - }); - - // Add the locals, which are just straight values to inject - // eg locals: { three: 3 }, will inject three into the controller - angular.extend(resolve, locals); - - if (templateUrl) { - resolve.$$ngTemplate = this.$templateRequest(templateUrl); - } else { - resolve.$$ngTemplate = this.$q.when(template); - } - - - // Wait for all the resolves to finish if they are promises - return this.$q.all(resolve).then(function(locals) { - - var template = transformTemplate(locals.$$ngTemplate, options); - var element = options.element || angular.element('
').html(template.trim()).contents(); - - return self._compileElement(locals, element, options); - }); - - }; - - /** - * Method to compile an element with the given options. - * @param {!Object} locals Locals to be injected to the controller if present - * @param {!JQLite} element Element to be compiled and linked - * @param {!Object} options Options to be used for linking. - * @returns {!Object} Compile data with link function. - */ - MdCompilerService.prototype._compileElement = function(locals, element, options) { - var self = this; - var ngLinkFn = this.$compile(element); - - var compileData = { - element: element, - cleanup: element.remove.bind(element), - locals: locals, - link: linkFn - }; - - function linkFn(scope) { - locals.$scope = scope; - - // Instantiate controller if the developer provided one. - if (options.controller) { - - var injectLocals = angular.extend({}, locals, { - $element: element - }); - - // Create the specified controller instance. - var ctrl = self._createController(options, injectLocals, locals); - - // Unique identifier for AngularJS Route ngView controllers. - element.data('$ngControllerController', ctrl); - element.children().data('$ngControllerController', ctrl); - - // Expose the instantiated controller to the compile data - compileData.controller = ctrl; - } - - // Invoke the AngularJS $compile link function. - return ngLinkFn(scope); - } - - return compileData; - - }; - - /** - * Creates and instantiates a new controller with the specified options. - * @param {!Object} options Options that include the controller - * @param {!Object} injectLocals Locals to to be provided in the controller DI. - * @param {!Object} locals Locals to be injected to the controller. - * @returns {!Object} Created controller instance. - */ - MdCompilerService.prototype._createController = function(options, injectLocals, locals) { - // The third and fourth arguments to $controller are considered private and are undocumented: - // https://github.com/angular/angular.js/blob/master/src/ng/controller.js#L86 - // Passing `true` as the third argument causes `$controller` to return a function that - // gets the controller instance instead returning of the instance directly. When the - // controller is defined as a function, `invokeCtrl.instance` is the *same instance* as - // `invokeCtrl()`. However, then the controller is an ES6 class, `invokeCtrl.instance` is a - // *different instance* from `invokeCtrl()`. - var invokeCtrl = this.$controller(options.controller, injectLocals, true, options.controllerAs); - - if (getPreAssignBindingsEnabled() && options.bindToController) { - angular.extend(invokeCtrl.instance, locals); - } - - // Instantiate and initialize the specified controller. - var ctrl = invokeCtrl(); - - if (!getPreAssignBindingsEnabled() && options.bindToController) { - angular.extend(ctrl, locals); - } - - // Call the $onInit hook if it's present on the controller. - angular.isFunction(ctrl.$onInit) && ctrl.$onInit(); - - return ctrl; - }; - - /** - * Fetches an element removing it from the DOM and using it temporary for the compiler. - * Elements which were fetched will be restored after use. - * @param {!Object} options Options to be used for the compilation. - * @returns {{element: !JQLite, restore: !Function}} - */ - MdCompilerService.prototype._fetchContentElement = function(options) { - - var contentEl = options.contentElement; - var restoreFn = null; - - if (angular.isString(contentEl)) { - contentEl = document.querySelector(contentEl); - restoreFn = createRestoreFn(contentEl); - } else { - contentEl = contentEl[0] || contentEl; - - // When the element is visible in the DOM, then we restore it at close of the dialog. - // Otherwise it will be removed from the DOM after close. - if (document.contains(contentEl)) { - restoreFn = createRestoreFn(contentEl); - } else { - restoreFn = function() { - if (contentEl.parentNode) { - contentEl.parentNode.removeChild(contentEl); - } - } - } - } - - return { - element: angular.element(contentEl), - restore: restoreFn - }; - - function createRestoreFn(element) { - var parent = element.parentNode; - var nextSibling = element.nextElementSibling; - - return function() { - if (!nextSibling) { - // When the element didn't had any sibling, then it can be simply appended to the - // parent, because it plays no role, which index it had before. - parent.appendChild(element); - } else { - // When the element had a sibling, which marks the previous position of the element - // in the DOM, we insert it correctly before the sibling, to have the same index as - // before. - parent.insertBefore(element, nextSibling); - } - } - } - }; -} - - })(); (function(){ "use strict"; @@ -3628,6 +3177,457 @@ function canFocus(element) { ); } +})(); +(function(){ +"use strict"; + +/** + * @ngdoc module + * @name material.core.compiler + * @description + * AngularJS Material template and element compiler. + */ +angular + .module('material.core') + .provider('$mdCompiler', MdCompilerProvider); + +/** + * @ngdoc service + * @name $mdCompiler + * @module material.core.compiler + * @description + * The $mdCompiler service is an abstraction of AngularJS's compiler, that allows developers + * to easily compile an element with options like in a Directive Definition Object. + * + * > The compiler powers a lot of components inside of AngularJS Material. + * > Like the `$mdPanel` or `$mdDialog`. + * + * @usage + * + * Basic Usage with a template + * + * + * $mdCompiler.compile({ + * templateUrl: 'modal.html', + * controller: 'ModalCtrl', + * locals: { + * modal: myModalInstance; + * } + * }).then(function (compileData) { + * compileData.element; // Compiled DOM element + * compileData.link(myScope); // Instantiate controller and link element to scope. + * }); + * + * + * Example with a content element + * + * + * + * // Create a virtual element and link it manually. + * // The compiler doesn't need to recompile the element each time. + * var myElement = $compile('Test')(myScope); + * + * $mdCompiler.compile({ + * contentElement: myElement + * }).then(function (compileData) { + * compileData.element // Content Element (same as above) + * compileData.link // This does nothing when using a contentElement. + * }); + * + * + * > Content Element is a significant performance improvement when the developer already knows that the + * > compiled element will be always the same and the scope will not change either. + * + * The `contentElement` option also supports DOM elements which will be temporary removed and restored + * at its old position. + * + * + * var domElement = document.querySelector('#myElement'); + * + * $mdCompiler.compile({ + * contentElement: myElement + * }).then(function (compileData) { + * compileData.element // Content Element (same as above) + * compileData.link // This does nothing when using a contentElement. + * }); + * + * + * The `$mdCompiler` can also query for the element in the DOM itself. + * + * + * $mdCompiler.compile({ + * contentElement: '#myElement' + * }).then(function (compileData) { + * compileData.element // Content Element (same as above) + * compileData.link // This does nothing when using a contentElement. + * }); + * + * + */ +MdCompilerProvider.$inject = ['$compileProvider']; +function MdCompilerProvider($compileProvider) { + + var provider = this; + + /** + * @name $mdCompilerProvider#respectPreAssignBindingsEnabled + * + * @param {boolean=} respected update the respectPreAssignBindingsEnabled state if provided, otherwise just return + * the current Material preAssignBindingsEnabled state + * @returns {*} current value if used as getter or itself (chaining) if used as setter + * + * @description + * Call this method to enable/disable whether Material-specific (dialogs/toasts) controllers respect the AngularJS + * `$compile.preAssignBindingsEnabled` flag. Note that this doesn't affect directives/components created via + * regular AngularJS methods which constitute most Material & user-created components. + * + * @see [AngularJS documentation for `$compile.preAssignBindingsEnabled` + * ](https://code.angularjs.org/1.6.4/docs/api/ng/provider/$compileProvider#preAssignBindingsEnabled) + * for more information. + * + * If disabled (false), the compiler assigns the value of each of the bindings to the + * properties of the controller object before the constructor of this object is called. + * + * If enabled (true) the behavior depends on the AngularJS version used: + * + * - `<1.5.10` - bindings are pre-assigned + * - `>=1.5.10 <1.7` - behaves like set to whatever `$compileProvider.preAssignBindingsEnabled()` reports; if + * the `$compileProvider` flag wasn't set manually, it defaults to pre-assigning bindings + * with AngularJS `1.5.x` & to calling the constructor first with AngularJS `1.6.x`. + * - `>=1.7` - the compiler calls the constructor first before assigning bindings + * + * The default value is `false` but will change to `true` in AngularJS Material 1.2. + * + * It is recommended to set this flag to `true` in AngularJS Material 1.1.x; the only reason it's not set that way + * by default is backwards compatibility. Not setting the flag to `true` when + * `$compileProvider.preAssignBindingsEnabled()` is set to `false` (i.e. default behavior in AngularJS 1.6.0 or newer) + * makes it hard to unit test Material Dialog/Toast controllers using the `$controller` helper as it always follows + * the `$compileProvider.preAssignBindingsEnabled()` value. + */ + // TODO change it to `true` in Material 1.2. + var respectPreAssignBindingsEnabled = false; + this.respectPreAssignBindingsEnabled = function(respected) { + if (angular.isDefined(respected)) { + respectPreAssignBindingsEnabled = respected; + return this; + } + + return respectPreAssignBindingsEnabled; + }; + + /** + * @description + * This function returns `true` if Material-specific (dialogs/toasts) controllers have bindings pre-assigned in + * controller constructors and `false` otherwise. + * + * Note that this doesn't affect directives/components created via regular AngularJS methods which constitute most + * Material & user-created components; their behavior can be checked via `$compileProvider.preAssignBindingsEnabled()` + * in AngularJS `>=1.5.10 <1.7.0`. + * + * @returns {*} current preAssignBindingsEnabled state + */ + function getPreAssignBindingsEnabled() { + if (!respectPreAssignBindingsEnabled) { + // respectPreAssignBindingsEnabled === false + // We're ignoring the AngularJS `$compileProvider.preAssignBindingsEnabled()` value in this case. + return true; + } + + // respectPreAssignBindingsEnabled === true + + if (typeof $compileProvider.preAssignBindingsEnabled === 'function') { + return $compileProvider.preAssignBindingsEnabled(); + } + + // Flag respected but not present => apply logic based on AngularJS version used. + if (angular.version.major === 1 && angular.version.minor < 6) { + // AngularJS <1.5.10 + return true; + } + + // AngularJS >=1.7.0 + return false; + } + + this.$get = ["$q", "$templateRequest", "$injector", "$compile", "$controller", + function($q, $templateRequest, $injector, $compile, $controller) { + return new MdCompilerService($q, $templateRequest, $injector, $compile, $controller); + }]; + + function MdCompilerService($q, $templateRequest, $injector, $compile, $controller) { + + /** @private @const {!angular.$q} */ + this.$q = $q; + + /** @private @const {!angular.$templateRequest} */ + this.$templateRequest = $templateRequest; + + /** @private @const {!angular.$injector} */ + this.$injector = $injector; + + /** @private @const {!angular.$compile} */ + this.$compile = $compile; + + /** @private @const {!angular.$controller} */ + this.$controller = $controller; + } + + /** + * @ngdoc method + * @name $mdCompiler#compile + * @description + * + * A method to compile a HTML template with the AngularJS compiler. + * The `$mdCompiler` is wrapper around the AngularJS compiler and provides extra functionality + * like controller instantiation or async resolves. + * + * @param {!Object} options An options object, with the following properties: + * + * - `controller` - `{string|Function}` Controller fn that should be associated with + * newly created scope or the name of a registered controller if passed as a string. + * - `controllerAs` - `{string=}` A controller alias name. If present the controller will be + * published to scope under the `controllerAs` name. + * - `contentElement` - `{string|Element}`: Instead of using a template, which will be + * compiled each time, you can also use a DOM element.
+ * - `template` - `{string=}` An html template as a string. + * - `templateUrl` - `{string=}` A path to an html template. + * - `transformTemplate` - `{function(template)=}` A function which transforms the template after + * it is loaded. It will be given the template string as a parameter, and should + * return a a new string representing the transformed template. + * - `resolve` - `{Object.=}` - An optional map of dependencies which should + * be injected into the controller. If any of these dependencies are promises, the compiler + * will wait for them all to be resolved, or if one is rejected before the controller is + * instantiated `compile()` will fail.. + * * `key` - `{string}`: a name of a dependency to be injected into the controller. + * * `factory` - `{string|function}`: If `string` then it is an alias for a service. + * Otherwise if function, then it is injected and the return value is treated as the + * dependency. If the result is a promise, it is resolved before its value is + * injected into the controller. + * + * @returns {Object} promise A promise, which will be resolved with a `compileData` object. + * `compileData` has the following properties: + * + * - `element` - `{element}`: an uncompiled element matching the provided template. + * - `link` - `{function(scope)}`: A link function, which, when called, will compile + * the element and instantiate the provided controller (if given). + * - `locals` - `{object}`: The locals which will be passed into the controller once `link` is + * called. If `bindToController` is true, they will be coppied to the ctrl instead + * + */ + MdCompilerService.prototype.compile = function(options) { + + if (options.contentElement) { + return this._prepareContentElement(options); + } else { + return this._compileTemplate(options); + } + + }; + + /** + * Instead of compiling any template, the compiler just fetches an existing HTML element from the DOM and + * provides a restore function to put the element back it old DOM position. + * @param {!Object} options Options to be used for the compiler. + */ + MdCompilerService.prototype._prepareContentElement = function(options) { + + var contentElement = this._fetchContentElement(options); + + return this.$q.resolve({ + element: contentElement.element, + cleanup: contentElement.restore, + locals: {}, + link: function() { + return contentElement.element; + } + }); + + }; + + /** + * Compiles a template by considering all options and waiting for all resolves to be ready. + * @param {!Object} options Compile options + * @returns {!Object} Compile data with link function. + */ + MdCompilerService.prototype._compileTemplate = function(options) { + + var self = this; + var templateUrl = options.templateUrl; + var template = options.template || ''; + var resolve = angular.extend({}, options.resolve); + var locals = angular.extend({}, options.locals); + var transformTemplate = options.transformTemplate || angular.identity; + + // Take resolve values and invoke them. + // Resolves can either be a string (value: 'MyRegisteredAngularConst'), + // or an invokable 'factory' of sorts: (value: function ValueGetter($dependency) {}) + angular.forEach(resolve, function(value, key) { + if (angular.isString(value)) { + resolve[key] = self.$injector.get(value); + } else { + resolve[key] = self.$injector.invoke(value); + } + }); + + // Add the locals, which are just straight values to inject + // eg locals: { three: 3 }, will inject three into the controller + angular.extend(resolve, locals); + + if (templateUrl) { + resolve.$$ngTemplate = this.$templateRequest(templateUrl); + } else { + resolve.$$ngTemplate = this.$q.when(template); + } + + + // Wait for all the resolves to finish if they are promises + return this.$q.all(resolve).then(function(locals) { + + var template = transformTemplate(locals.$$ngTemplate, options); + var element = options.element || angular.element('
').html(template.trim()).contents(); + + return self._compileElement(locals, element, options); + }); + + }; + + /** + * Method to compile an element with the given options. + * @param {!Object} locals Locals to be injected to the controller if present + * @param {!JQLite} element Element to be compiled and linked + * @param {!Object} options Options to be used for linking. + * @returns {!Object} Compile data with link function. + */ + MdCompilerService.prototype._compileElement = function(locals, element, options) { + var self = this; + var ngLinkFn = this.$compile(element); + + var compileData = { + element: element, + cleanup: element.remove.bind(element), + locals: locals, + link: linkFn + }; + + function linkFn(scope) { + locals.$scope = scope; + + // Instantiate controller if the developer provided one. + if (options.controller) { + + var injectLocals = angular.extend({}, locals, { + $element: element + }); + + // Create the specified controller instance. + var ctrl = self._createController(options, injectLocals, locals); + + // Unique identifier for AngularJS Route ngView controllers. + element.data('$ngControllerController', ctrl); + element.children().data('$ngControllerController', ctrl); + + // Expose the instantiated controller to the compile data + compileData.controller = ctrl; + } + + // Invoke the AngularJS $compile link function. + return ngLinkFn(scope); + } + + return compileData; + + }; + + /** + * Creates and instantiates a new controller with the specified options. + * @param {!Object} options Options that include the controller + * @param {!Object} injectLocals Locals to to be provided in the controller DI. + * @param {!Object} locals Locals to be injected to the controller. + * @returns {!Object} Created controller instance. + */ + MdCompilerService.prototype._createController = function(options, injectLocals, locals) { + // The third and fourth arguments to $controller are considered private and are undocumented: + // https://github.com/angular/angular.js/blob/master/src/ng/controller.js#L86 + // Passing `true` as the third argument causes `$controller` to return a function that + // gets the controller instance instead returning of the instance directly. When the + // controller is defined as a function, `invokeCtrl.instance` is the *same instance* as + // `invokeCtrl()`. However, then the controller is an ES6 class, `invokeCtrl.instance` is a + // *different instance* from `invokeCtrl()`. + var invokeCtrl = this.$controller(options.controller, injectLocals, true, options.controllerAs); + + if (getPreAssignBindingsEnabled() && options.bindToController) { + angular.extend(invokeCtrl.instance, locals); + } + + // Instantiate and initialize the specified controller. + var ctrl = invokeCtrl(); + + if (!getPreAssignBindingsEnabled() && options.bindToController) { + angular.extend(ctrl, locals); + } + + // Call the $onInit hook if it's present on the controller. + angular.isFunction(ctrl.$onInit) && ctrl.$onInit(); + + return ctrl; + }; + + /** + * Fetches an element removing it from the DOM and using it temporary for the compiler. + * Elements which were fetched will be restored after use. + * @param {!Object} options Options to be used for the compilation. + * @returns {{element: !JQLite, restore: !Function}} + */ + MdCompilerService.prototype._fetchContentElement = function(options) { + + var contentEl = options.contentElement; + var restoreFn = null; + + if (angular.isString(contentEl)) { + contentEl = document.querySelector(contentEl); + restoreFn = createRestoreFn(contentEl); + } else { + contentEl = contentEl[0] || contentEl; + + // When the element is visible in the DOM, then we restore it at close of the dialog. + // Otherwise it will be removed from the DOM after close. + if (document.contains(contentEl)) { + restoreFn = createRestoreFn(contentEl); + } else { + restoreFn = function() { + if (contentEl.parentNode) { + contentEl.parentNode.removeChild(contentEl); + } + } + } + } + + return { + element: angular.element(contentEl), + restore: restoreFn + }; + + function createRestoreFn(element) { + var parent = element.parentNode; + var nextSibling = element.nextElementSibling; + + return function() { + if (!nextSibling) { + // When the element didn't had any sibling, then it can be simply appended to the + // parent, because it plays no role, which index it had before. + parent.appendChild(element); + } else { + // When the element had a sibling, which marks the previous position of the element + // in the DOM, we insert it correctly before the sibling, to have the same index as + // before. + parent.insertBefore(element, nextSibling); + } + } + } + }; +} + + })(); (function(){ "use strict"; @@ -5271,6 +5271,643 @@ angular.module('material.core.meta', []) (function(){ "use strict"; +(function() { + 'use strict'; + + /** + * @ngdoc service + * @name $mdButtonInkRipple + * @module material.core + * + * @description + * Provides ripple effects for md-button. See $mdInkRipple service for all possible configuration options. + * + * @param {object=} scope Scope within the current context + * @param {object=} element The element the ripple effect should be applied to + * @param {object=} options (Optional) Configuration options to override the default ripple configuration + */ + + MdButtonInkRipple.$inject = ["$mdInkRipple"]; + angular.module('material.core') + .factory('$mdButtonInkRipple', MdButtonInkRipple); + + function MdButtonInkRipple($mdInkRipple) { + return { + attach: function attachRipple(scope, element, options) { + options = angular.extend(optionsForElement(element), options); + + return $mdInkRipple.attach(scope, element, options); + } + }; + + function optionsForElement(element) { + if (element.hasClass('md-icon-button')) { + return { + isMenuItem: element.hasClass('md-menu-item'), + fitRipple: true, + center: true + }; + } else { + return { + isMenuItem: element.hasClass('md-menu-item'), + dimBackground: true + }; + } + } + } +})(); + +})(); +(function(){ +"use strict"; + +(function() { + 'use strict'; + + /** + * @ngdoc service + * @name $mdCheckboxInkRipple + * @module material.core + * + * @description + * Provides ripple effects for md-checkbox. See $mdInkRipple service for all possible configuration options. + * + * @param {object=} scope Scope within the current context + * @param {object=} element The element the ripple effect should be applied to + * @param {object=} options (Optional) Configuration options to override the defaultripple configuration + */ + + MdCheckboxInkRipple.$inject = ["$mdInkRipple"]; + angular.module('material.core') + .factory('$mdCheckboxInkRipple', MdCheckboxInkRipple); + + function MdCheckboxInkRipple($mdInkRipple) { + return { + attach: attach + }; + + function attach(scope, element, options) { + return $mdInkRipple.attach(scope, element, angular.extend({ + center: true, + dimBackground: false, + fitRipple: true + }, options)); + } + } +})(); + +})(); +(function(){ +"use strict"; + +(function() { + 'use strict'; + + /** + * @ngdoc service + * @name $mdListInkRipple + * @module material.core + * + * @description + * Provides ripple effects for md-list. See $mdInkRipple service for all possible configuration options. + * + * @param {object=} scope Scope within the current context + * @param {object=} element The element the ripple effect should be applied to + * @param {object=} options (Optional) Configuration options to override the defaultripple configuration + */ + + MdListInkRipple.$inject = ["$mdInkRipple"]; + angular.module('material.core') + .factory('$mdListInkRipple', MdListInkRipple); + + function MdListInkRipple($mdInkRipple) { + return { + attach: attach + }; + + function attach(scope, element, options) { + return $mdInkRipple.attach(scope, element, angular.extend({ + center: false, + dimBackground: true, + outline: false, + rippleSize: 'full' + }, options)); + } + } +})(); + +})(); +(function(){ +"use strict"; + +/** + * @ngdoc module + * @name material.core.ripple + * @description + * Ripple + */ +InkRippleCtrl.$inject = ["$scope", "$element", "rippleOptions", "$window", "$timeout", "$mdUtil", "$mdColorUtil"]; +InkRippleDirective.$inject = ["$mdButtonInkRipple", "$mdCheckboxInkRipple"]; +angular.module('material.core') + .provider('$mdInkRipple', InkRippleProvider) + .directive('mdInkRipple', InkRippleDirective) + .directive('mdNoInk', attrNoDirective) + .directive('mdNoBar', attrNoDirective) + .directive('mdNoStretch', attrNoDirective); + +var DURATION = 450; + +/** + * @ngdoc directive + * @name mdInkRipple + * @module material.core.ripple + * + * @description + * The `md-ink-ripple` directive allows you to specify the ripple color or if a ripple is allowed. + * + * @param {string|boolean} md-ink-ripple A color string `#FF0000` or boolean (`false` or `0`) for preventing ripple + * + * @usage + * ### String values + * + * + * Ripples in red + * + * + * + * Not rippling + * + * + * + * ### Interpolated values + * + * + * Ripples with the return value of 'randomColor' function + * + * + * + * Ripples if 'canRipple' function return value is not 'false' or '0' + * + * + */ +function InkRippleDirective ($mdButtonInkRipple, $mdCheckboxInkRipple) { + return { + controller: angular.noop, + link: function (scope, element, attr) { + attr.hasOwnProperty('mdInkRippleCheckbox') + ? $mdCheckboxInkRipple.attach(scope, element) + : $mdButtonInkRipple.attach(scope, element); + } + }; +} + +/** + * @ngdoc service + * @name $mdInkRipple + * @module material.core.ripple + * + * @description + * `$mdInkRipple` is a service for adding ripples to any element + * + * @usage + * + * app.factory('$myElementInkRipple', function($mdInkRipple) { + * return { + * attach: function (scope, element, options) { + * return $mdInkRipple.attach(scope, element, angular.extend({ + * center: false, + * dimBackground: true + * }, options)); + * } + * }; + * }); + * + * app.controller('myController', function ($scope, $element, $myElementInkRipple) { + * $scope.onClick = function (ev) { + * $myElementInkRipple.attach($scope, angular.element(ev.target), { center: true }); + * } + * }); + * + * + * ### Disabling ripples globally + * If you want to disable ink ripples globally, for all components, you can call the + * `disableInkRipple` method in your app's config. + * + * + * app.config(function ($mdInkRippleProvider) { + * $mdInkRippleProvider.disableInkRipple(); + * }); + */ + +function InkRippleProvider () { + var isDisabledGlobally = false; + + return { + disableInkRipple: disableInkRipple, + $get: ["$injector", function($injector) { + return { attach: attach }; + + /** + * @ngdoc method + * @name $mdInkRipple#attach + * + * @description + * Attaching given scope, element and options to inkRipple controller + * + * @param {object=} scope Scope within the current context + * @param {object=} element The element the ripple effect should be applied to + * @param {object=} options (Optional) Configuration options to override the defaultRipple configuration + * * `center` - Whether the ripple should start from the center of the container element + * * `dimBackground` - Whether the background should be dimmed with the ripple color + * * `colorElement` - The element the ripple should take its color from, defined by css property `color` + * * `fitRipple` - Whether the ripple should fill the element + */ + function attach (scope, element, options) { + if (isDisabledGlobally || element.controller('mdNoInk')) return angular.noop; + return $injector.instantiate(InkRippleCtrl, { + $scope: scope, + $element: element, + rippleOptions: options + }); + } + }] + }; + + /** + * @ngdoc method + * @name $mdInkRipple#disableInkRipple + * + * @description + * A config-time method that, when called, disables ripples globally. + */ + function disableInkRipple () { + isDisabledGlobally = true; + } +} + +/** + * Controller used by the ripple service in order to apply ripples + * @ngInject + */ +function InkRippleCtrl ($scope, $element, rippleOptions, $window, $timeout, $mdUtil, $mdColorUtil) { + this.$window = $window; + this.$timeout = $timeout; + this.$mdUtil = $mdUtil; + this.$mdColorUtil = $mdColorUtil; + this.$scope = $scope; + this.$element = $element; + this.options = rippleOptions; + this.mousedown = false; + this.ripples = []; + this.timeout = null; // Stores a reference to the most-recent ripple timeout + this.lastRipple = null; + + $mdUtil.valueOnUse(this, 'container', this.createContainer); + + this.$element.addClass('md-ink-ripple'); + + // attach method for unit tests + ($element.controller('mdInkRipple') || {}).createRipple = angular.bind(this, this.createRipple); + ($element.controller('mdInkRipple') || {}).setColor = angular.bind(this, this.color); + + this.bindEvents(); +} + + +/** + * Either remove or unlock any remaining ripples when the user mouses off of the element (either by + * mouseup or mouseleave event) + */ +function autoCleanup (self, cleanupFn) { + + if ( self.mousedown || self.lastRipple ) { + self.mousedown = false; + self.$mdUtil.nextTick( angular.bind(self, cleanupFn), false); + } + +} + + +/** + * Returns the color that the ripple should be (either based on CSS or hard-coded) + * @returns {string} + */ +InkRippleCtrl.prototype.color = function (value) { + var self = this; + + // If assigning a color value, apply it to background and the ripple color + if (angular.isDefined(value)) { + self._color = self._parseColor(value); + } + + // If color lookup, use assigned, defined, or inherited + return self._color || self._parseColor( self.inkRipple() ) || self._parseColor( getElementColor() ); + + /** + * Finds the color element and returns its text color for use as default ripple color + * @returns {string} + */ + function getElementColor () { + var items = self.options && self.options.colorElement ? self.options.colorElement : []; + var elem = items.length ? items[ 0 ] : self.$element[ 0 ]; + + return elem ? self.$window.getComputedStyle(elem).color : 'rgb(0,0,0)'; + } +}; + +/** + * Updating the ripple colors based on the current inkRipple value + * or the element's computed style color + */ +InkRippleCtrl.prototype.calculateColor = function () { + return this.color(); +}; + + +/** + * Takes a string color and converts it to RGBA format + * @param color {string} + * @param [multiplier] {int} + * @returns {string} + */ + +InkRippleCtrl.prototype._parseColor = function parseColor (color, multiplier) { + multiplier = multiplier || 1; + var colorUtil = this.$mdColorUtil; + + if (!color) return; + if (color.indexOf('rgba') === 0) return color.replace(/\d?\.?\d*\s*\)\s*$/, (0.1 * multiplier).toString() + ')'); + if (color.indexOf('rgb') === 0) return colorUtil.rgbToRgba(color); + if (color.indexOf('#') === 0) return colorUtil.hexToRgba(color); + +}; + +/** + * Binds events to the root element for + */ +InkRippleCtrl.prototype.bindEvents = function () { + this.$element.on('mousedown', angular.bind(this, this.handleMousedown)); + this.$element.on('mouseup touchend', angular.bind(this, this.handleMouseup)); + this.$element.on('mouseleave', angular.bind(this, this.handleMouseup)); + this.$element.on('touchmove', angular.bind(this, this.handleTouchmove)); +}; + +/** + * Create a new ripple on every mousedown event from the root element + * @param event {MouseEvent} + */ +InkRippleCtrl.prototype.handleMousedown = function (event) { + if ( this.mousedown ) return; + + // When jQuery is loaded, we have to get the original event + if (event.hasOwnProperty('originalEvent')) event = event.originalEvent; + this.mousedown = true; + if (this.options.center) { + this.createRipple(this.container.prop('clientWidth') / 2, this.container.prop('clientWidth') / 2); + } else { + + // We need to calculate the relative coordinates if the target is a sublayer of the ripple element + if (event.srcElement !== this.$element[0]) { + var layerRect = this.$element[0].getBoundingClientRect(); + var layerX = event.clientX - layerRect.left; + var layerY = event.clientY - layerRect.top; + + this.createRipple(layerX, layerY); + } else { + this.createRipple(event.offsetX, event.offsetY); + } + } +}; + +/** + * Either remove or unlock any remaining ripples when the user mouses off of the element (either by + * mouseup, touchend or mouseleave event) + */ +InkRippleCtrl.prototype.handleMouseup = function () { + autoCleanup(this, this.clearRipples); +}; + +/** + * Either remove or unlock any remaining ripples when the user mouses off of the element (by + * touchmove) + */ +InkRippleCtrl.prototype.handleTouchmove = function () { + autoCleanup(this, this.deleteRipples); +}; + +/** + * Cycles through all ripples and attempts to remove them. + */ +InkRippleCtrl.prototype.deleteRipples = function () { + for (var i = 0; i < this.ripples.length; i++) { + this.ripples[ i ].remove(); + } +}; + +/** + * Cycles through all ripples and attempts to remove them with fade. + * Depending on logic within `fadeInComplete`, some removals will be postponed. + */ +InkRippleCtrl.prototype.clearRipples = function () { + for (var i = 0; i < this.ripples.length; i++) { + this.fadeInComplete(this.ripples[ i ]); + } +}; + +/** + * Creates the ripple container element + * @returns {*} + */ +InkRippleCtrl.prototype.createContainer = function () { + var container = angular.element('
'); + this.$element.append(container); + return container; +}; + +InkRippleCtrl.prototype.clearTimeout = function () { + if (this.timeout) { + this.$timeout.cancel(this.timeout); + this.timeout = null; + } +}; + +InkRippleCtrl.prototype.isRippleAllowed = function () { + var element = this.$element[0]; + do { + if (!element.tagName || element.tagName === 'BODY') break; + + if (element && angular.isFunction(element.hasAttribute)) { + if (element.hasAttribute('disabled')) return false; + if (this.inkRipple() === 'false' || this.inkRipple() === '0') return false; + } + + } while (element = element.parentNode); + return true; +}; + +/** + * The attribute `md-ink-ripple` may be a static or interpolated + * color value OR a boolean indicator (used to disable ripples) + */ +InkRippleCtrl.prototype.inkRipple = function () { + return this.$element.attr('md-ink-ripple'); +}; + +/** + * Creates a new ripple and adds it to the container. Also tracks ripple in `this.ripples`. + * @param left + * @param top + */ +InkRippleCtrl.prototype.createRipple = function (left, top) { + if (!this.isRippleAllowed()) return; + + var ctrl = this; + var colorUtil = ctrl.$mdColorUtil; + var ripple = angular.element('
'); + var width = this.$element.prop('clientWidth'); + var height = this.$element.prop('clientHeight'); + var x = Math.max(Math.abs(width - left), left) * 2; + var y = Math.max(Math.abs(height - top), top) * 2; + var size = getSize(this.options.fitRipple, x, y); + var color = this.calculateColor(); + + ripple.css({ + left: left + 'px', + top: top + 'px', + background: 'black', + width: size + 'px', + height: size + 'px', + backgroundColor: colorUtil.rgbaToRgb(color), + borderColor: colorUtil.rgbaToRgb(color) + }); + this.lastRipple = ripple; + + // we only want one timeout to be running at a time + this.clearTimeout(); + this.timeout = this.$timeout(function () { + ctrl.clearTimeout(); + if (!ctrl.mousedown) ctrl.fadeInComplete(ripple); + }, DURATION * 0.35, false); + + if (this.options.dimBackground) this.container.css({ backgroundColor: color }); + this.container.append(ripple); + this.ripples.push(ripple); + ripple.addClass('md-ripple-placed'); + + this.$mdUtil.nextTick(function () { + + ripple.addClass('md-ripple-scaled md-ripple-active'); + ctrl.$timeout(function () { + ctrl.clearRipples(); + }, DURATION, false); + + }, false); + + function getSize (fit, x, y) { + return fit + ? Math.max(x, y) + : Math.sqrt(Math.pow(x, 2) + Math.pow(y, 2)); + } +}; + + + +/** + * After fadeIn finishes, either kicks off the fade-out animation or queues the element for removal on mouseup + * @param ripple + */ +InkRippleCtrl.prototype.fadeInComplete = function (ripple) { + if (this.lastRipple === ripple) { + if (!this.timeout && !this.mousedown) { + this.removeRipple(ripple); + } + } else { + this.removeRipple(ripple); + } +}; + +/** + * Kicks off the animation for removing a ripple + * @param ripple {Element} + */ +InkRippleCtrl.prototype.removeRipple = function (ripple) { + var ctrl = this; + var index = this.ripples.indexOf(ripple); + if (index < 0) return; + this.ripples.splice(this.ripples.indexOf(ripple), 1); + ripple.removeClass('md-ripple-active'); + ripple.addClass('md-ripple-remove'); + if (this.ripples.length === 0) this.container.css({ backgroundColor: '' }); + // use a 2-second timeout in order to allow for the animation to finish + // we don't actually care how long the animation takes + this.$timeout(function () { + ctrl.fadeOutComplete(ripple); + }, DURATION, false); +}; + +/** + * Removes the provided ripple from the DOM + * @param ripple + */ +InkRippleCtrl.prototype.fadeOutComplete = function (ripple) { + ripple.remove(); + this.lastRipple = null; +}; + +/** + * Used to create an empty directive. This is used to track flag-directives whose children may have + * functionality based on them. + * + * Example: `md-no-ink` will potentially be used by all child directives. + */ +function attrNoDirective () { + return { controller: angular.noop }; +} + +})(); +(function(){ +"use strict"; + +(function() { + 'use strict'; + + /** + * @ngdoc service + * @name $mdTabInkRipple + * @module material.core + * + * @description + * Provides ripple effects for md-tabs. See $mdInkRipple service for all possible configuration options. + * + * @param {object=} scope Scope within the current context + * @param {object=} element The element the ripple effect should be applied to + * @param {object=} options (Optional) Configuration options to override the defaultripple configuration + */ + + MdTabInkRipple.$inject = ["$mdInkRipple"]; + angular.module('material.core') + .factory('$mdTabInkRipple', MdTabInkRipple); + + function MdTabInkRipple($mdInkRipple) { + return { + attach: attach + }; + + function attach(scope, element, options) { + return $mdInkRipple.attach(scope, element, angular.extend({ + center: false, + dimBackground: true, + outline: false, + rippleSize: 'full' + }, options)); + } + } +})(); + +})(); +(function(){ +"use strict"; + angular.module('material.core.theming.palette', []) .constant('$mdColorPalette', { 'red': { @@ -6785,643 +7422,6 @@ function rgba(rgbArray, opacity) { (function(){ "use strict"; -(function() { - 'use strict'; - - /** - * @ngdoc service - * @name $mdButtonInkRipple - * @module material.core - * - * @description - * Provides ripple effects for md-button. See $mdInkRipple service for all possible configuration options. - * - * @param {object=} scope Scope within the current context - * @param {object=} element The element the ripple effect should be applied to - * @param {object=} options (Optional) Configuration options to override the default ripple configuration - */ - - MdButtonInkRipple.$inject = ["$mdInkRipple"]; - angular.module('material.core') - .factory('$mdButtonInkRipple', MdButtonInkRipple); - - function MdButtonInkRipple($mdInkRipple) { - return { - attach: function attachRipple(scope, element, options) { - options = angular.extend(optionsForElement(element), options); - - return $mdInkRipple.attach(scope, element, options); - } - }; - - function optionsForElement(element) { - if (element.hasClass('md-icon-button')) { - return { - isMenuItem: element.hasClass('md-menu-item'), - fitRipple: true, - center: true - }; - } else { - return { - isMenuItem: element.hasClass('md-menu-item'), - dimBackground: true - }; - } - } - } -})(); - -})(); -(function(){ -"use strict"; - -(function() { - 'use strict'; - - /** - * @ngdoc service - * @name $mdCheckboxInkRipple - * @module material.core - * - * @description - * Provides ripple effects for md-checkbox. See $mdInkRipple service for all possible configuration options. - * - * @param {object=} scope Scope within the current context - * @param {object=} element The element the ripple effect should be applied to - * @param {object=} options (Optional) Configuration options to override the defaultripple configuration - */ - - MdCheckboxInkRipple.$inject = ["$mdInkRipple"]; - angular.module('material.core') - .factory('$mdCheckboxInkRipple', MdCheckboxInkRipple); - - function MdCheckboxInkRipple($mdInkRipple) { - return { - attach: attach - }; - - function attach(scope, element, options) { - return $mdInkRipple.attach(scope, element, angular.extend({ - center: true, - dimBackground: false, - fitRipple: true - }, options)); - } - } -})(); - -})(); -(function(){ -"use strict"; - -(function() { - 'use strict'; - - /** - * @ngdoc service - * @name $mdListInkRipple - * @module material.core - * - * @description - * Provides ripple effects for md-list. See $mdInkRipple service for all possible configuration options. - * - * @param {object=} scope Scope within the current context - * @param {object=} element The element the ripple effect should be applied to - * @param {object=} options (Optional) Configuration options to override the defaultripple configuration - */ - - MdListInkRipple.$inject = ["$mdInkRipple"]; - angular.module('material.core') - .factory('$mdListInkRipple', MdListInkRipple); - - function MdListInkRipple($mdInkRipple) { - return { - attach: attach - }; - - function attach(scope, element, options) { - return $mdInkRipple.attach(scope, element, angular.extend({ - center: false, - dimBackground: true, - outline: false, - rippleSize: 'full' - }, options)); - } - } -})(); - -})(); -(function(){ -"use strict"; - -/** - * @ngdoc module - * @name material.core.ripple - * @description - * Ripple - */ -InkRippleCtrl.$inject = ["$scope", "$element", "rippleOptions", "$window", "$timeout", "$mdUtil", "$mdColorUtil"]; -InkRippleDirective.$inject = ["$mdButtonInkRipple", "$mdCheckboxInkRipple"]; -angular.module('material.core') - .provider('$mdInkRipple', InkRippleProvider) - .directive('mdInkRipple', InkRippleDirective) - .directive('mdNoInk', attrNoDirective) - .directive('mdNoBar', attrNoDirective) - .directive('mdNoStretch', attrNoDirective); - -var DURATION = 450; - -/** - * @ngdoc directive - * @name mdInkRipple - * @module material.core.ripple - * - * @description - * The `md-ink-ripple` directive allows you to specify the ripple color or if a ripple is allowed. - * - * @param {string|boolean} md-ink-ripple A color string `#FF0000` or boolean (`false` or `0`) for preventing ripple - * - * @usage - * ### String values - * - * - * Ripples in red - * - * - * - * Not rippling - * - * - * - * ### Interpolated values - * - * - * Ripples with the return value of 'randomColor' function - * - * - * - * Ripples if 'canRipple' function return value is not 'false' or '0' - * - * - */ -function InkRippleDirective ($mdButtonInkRipple, $mdCheckboxInkRipple) { - return { - controller: angular.noop, - link: function (scope, element, attr) { - attr.hasOwnProperty('mdInkRippleCheckbox') - ? $mdCheckboxInkRipple.attach(scope, element) - : $mdButtonInkRipple.attach(scope, element); - } - }; -} - -/** - * @ngdoc service - * @name $mdInkRipple - * @module material.core.ripple - * - * @description - * `$mdInkRipple` is a service for adding ripples to any element - * - * @usage - * - * app.factory('$myElementInkRipple', function($mdInkRipple) { - * return { - * attach: function (scope, element, options) { - * return $mdInkRipple.attach(scope, element, angular.extend({ - * center: false, - * dimBackground: true - * }, options)); - * } - * }; - * }); - * - * app.controller('myController', function ($scope, $element, $myElementInkRipple) { - * $scope.onClick = function (ev) { - * $myElementInkRipple.attach($scope, angular.element(ev.target), { center: true }); - * } - * }); - * - * - * ### Disabling ripples globally - * If you want to disable ink ripples globally, for all components, you can call the - * `disableInkRipple` method in your app's config. - * - * - * app.config(function ($mdInkRippleProvider) { - * $mdInkRippleProvider.disableInkRipple(); - * }); - */ - -function InkRippleProvider () { - var isDisabledGlobally = false; - - return { - disableInkRipple: disableInkRipple, - $get: ["$injector", function($injector) { - return { attach: attach }; - - /** - * @ngdoc method - * @name $mdInkRipple#attach - * - * @description - * Attaching given scope, element and options to inkRipple controller - * - * @param {object=} scope Scope within the current context - * @param {object=} element The element the ripple effect should be applied to - * @param {object=} options (Optional) Configuration options to override the defaultRipple configuration - * * `center` - Whether the ripple should start from the center of the container element - * * `dimBackground` - Whether the background should be dimmed with the ripple color - * * `colorElement` - The element the ripple should take its color from, defined by css property `color` - * * `fitRipple` - Whether the ripple should fill the element - */ - function attach (scope, element, options) { - if (isDisabledGlobally || element.controller('mdNoInk')) return angular.noop; - return $injector.instantiate(InkRippleCtrl, { - $scope: scope, - $element: element, - rippleOptions: options - }); - } - }] - }; - - /** - * @ngdoc method - * @name $mdInkRipple#disableInkRipple - * - * @description - * A config-time method that, when called, disables ripples globally. - */ - function disableInkRipple () { - isDisabledGlobally = true; - } -} - -/** - * Controller used by the ripple service in order to apply ripples - * @ngInject - */ -function InkRippleCtrl ($scope, $element, rippleOptions, $window, $timeout, $mdUtil, $mdColorUtil) { - this.$window = $window; - this.$timeout = $timeout; - this.$mdUtil = $mdUtil; - this.$mdColorUtil = $mdColorUtil; - this.$scope = $scope; - this.$element = $element; - this.options = rippleOptions; - this.mousedown = false; - this.ripples = []; - this.timeout = null; // Stores a reference to the most-recent ripple timeout - this.lastRipple = null; - - $mdUtil.valueOnUse(this, 'container', this.createContainer); - - this.$element.addClass('md-ink-ripple'); - - // attach method for unit tests - ($element.controller('mdInkRipple') || {}).createRipple = angular.bind(this, this.createRipple); - ($element.controller('mdInkRipple') || {}).setColor = angular.bind(this, this.color); - - this.bindEvents(); -} - - -/** - * Either remove or unlock any remaining ripples when the user mouses off of the element (either by - * mouseup or mouseleave event) - */ -function autoCleanup (self, cleanupFn) { - - if ( self.mousedown || self.lastRipple ) { - self.mousedown = false; - self.$mdUtil.nextTick( angular.bind(self, cleanupFn), false); - } - -} - - -/** - * Returns the color that the ripple should be (either based on CSS or hard-coded) - * @returns {string} - */ -InkRippleCtrl.prototype.color = function (value) { - var self = this; - - // If assigning a color value, apply it to background and the ripple color - if (angular.isDefined(value)) { - self._color = self._parseColor(value); - } - - // If color lookup, use assigned, defined, or inherited - return self._color || self._parseColor( self.inkRipple() ) || self._parseColor( getElementColor() ); - - /** - * Finds the color element and returns its text color for use as default ripple color - * @returns {string} - */ - function getElementColor () { - var items = self.options && self.options.colorElement ? self.options.colorElement : []; - var elem = items.length ? items[ 0 ] : self.$element[ 0 ]; - - return elem ? self.$window.getComputedStyle(elem).color : 'rgb(0,0,0)'; - } -}; - -/** - * Updating the ripple colors based on the current inkRipple value - * or the element's computed style color - */ -InkRippleCtrl.prototype.calculateColor = function () { - return this.color(); -}; - - -/** - * Takes a string color and converts it to RGBA format - * @param color {string} - * @param [multiplier] {int} - * @returns {string} - */ - -InkRippleCtrl.prototype._parseColor = function parseColor (color, multiplier) { - multiplier = multiplier || 1; - var colorUtil = this.$mdColorUtil; - - if (!color) return; - if (color.indexOf('rgba') === 0) return color.replace(/\d?\.?\d*\s*\)\s*$/, (0.1 * multiplier).toString() + ')'); - if (color.indexOf('rgb') === 0) return colorUtil.rgbToRgba(color); - if (color.indexOf('#') === 0) return colorUtil.hexToRgba(color); - -}; - -/** - * Binds events to the root element for - */ -InkRippleCtrl.prototype.bindEvents = function () { - this.$element.on('mousedown', angular.bind(this, this.handleMousedown)); - this.$element.on('mouseup touchend', angular.bind(this, this.handleMouseup)); - this.$element.on('mouseleave', angular.bind(this, this.handleMouseup)); - this.$element.on('touchmove', angular.bind(this, this.handleTouchmove)); -}; - -/** - * Create a new ripple on every mousedown event from the root element - * @param event {MouseEvent} - */ -InkRippleCtrl.prototype.handleMousedown = function (event) { - if ( this.mousedown ) return; - - // When jQuery is loaded, we have to get the original event - if (event.hasOwnProperty('originalEvent')) event = event.originalEvent; - this.mousedown = true; - if (this.options.center) { - this.createRipple(this.container.prop('clientWidth') / 2, this.container.prop('clientWidth') / 2); - } else { - - // We need to calculate the relative coordinates if the target is a sublayer of the ripple element - if (event.srcElement !== this.$element[0]) { - var layerRect = this.$element[0].getBoundingClientRect(); - var layerX = event.clientX - layerRect.left; - var layerY = event.clientY - layerRect.top; - - this.createRipple(layerX, layerY); - } else { - this.createRipple(event.offsetX, event.offsetY); - } - } -}; - -/** - * Either remove or unlock any remaining ripples when the user mouses off of the element (either by - * mouseup, touchend or mouseleave event) - */ -InkRippleCtrl.prototype.handleMouseup = function () { - autoCleanup(this, this.clearRipples); -}; - -/** - * Either remove or unlock any remaining ripples when the user mouses off of the element (by - * touchmove) - */ -InkRippleCtrl.prototype.handleTouchmove = function () { - autoCleanup(this, this.deleteRipples); -}; - -/** - * Cycles through all ripples and attempts to remove them. - */ -InkRippleCtrl.prototype.deleteRipples = function () { - for (var i = 0; i < this.ripples.length; i++) { - this.ripples[ i ].remove(); - } -}; - -/** - * Cycles through all ripples and attempts to remove them with fade. - * Depending on logic within `fadeInComplete`, some removals will be postponed. - */ -InkRippleCtrl.prototype.clearRipples = function () { - for (var i = 0; i < this.ripples.length; i++) { - this.fadeInComplete(this.ripples[ i ]); - } -}; - -/** - * Creates the ripple container element - * @returns {*} - */ -InkRippleCtrl.prototype.createContainer = function () { - var container = angular.element('
'); - this.$element.append(container); - return container; -}; - -InkRippleCtrl.prototype.clearTimeout = function () { - if (this.timeout) { - this.$timeout.cancel(this.timeout); - this.timeout = null; - } -}; - -InkRippleCtrl.prototype.isRippleAllowed = function () { - var element = this.$element[0]; - do { - if (!element.tagName || element.tagName === 'BODY') break; - - if (element && angular.isFunction(element.hasAttribute)) { - if (element.hasAttribute('disabled')) return false; - if (this.inkRipple() === 'false' || this.inkRipple() === '0') return false; - } - - } while (element = element.parentNode); - return true; -}; - -/** - * The attribute `md-ink-ripple` may be a static or interpolated - * color value OR a boolean indicator (used to disable ripples) - */ -InkRippleCtrl.prototype.inkRipple = function () { - return this.$element.attr('md-ink-ripple'); -}; - -/** - * Creates a new ripple and adds it to the container. Also tracks ripple in `this.ripples`. - * @param left - * @param top - */ -InkRippleCtrl.prototype.createRipple = function (left, top) { - if (!this.isRippleAllowed()) return; - - var ctrl = this; - var colorUtil = ctrl.$mdColorUtil; - var ripple = angular.element('
'); - var width = this.$element.prop('clientWidth'); - var height = this.$element.prop('clientHeight'); - var x = Math.max(Math.abs(width - left), left) * 2; - var y = Math.max(Math.abs(height - top), top) * 2; - var size = getSize(this.options.fitRipple, x, y); - var color = this.calculateColor(); - - ripple.css({ - left: left + 'px', - top: top + 'px', - background: 'black', - width: size + 'px', - height: size + 'px', - backgroundColor: colorUtil.rgbaToRgb(color), - borderColor: colorUtil.rgbaToRgb(color) - }); - this.lastRipple = ripple; - - // we only want one timeout to be running at a time - this.clearTimeout(); - this.timeout = this.$timeout(function () { - ctrl.clearTimeout(); - if (!ctrl.mousedown) ctrl.fadeInComplete(ripple); - }, DURATION * 0.35, false); - - if (this.options.dimBackground) this.container.css({ backgroundColor: color }); - this.container.append(ripple); - this.ripples.push(ripple); - ripple.addClass('md-ripple-placed'); - - this.$mdUtil.nextTick(function () { - - ripple.addClass('md-ripple-scaled md-ripple-active'); - ctrl.$timeout(function () { - ctrl.clearRipples(); - }, DURATION, false); - - }, false); - - function getSize (fit, x, y) { - return fit - ? Math.max(x, y) - : Math.sqrt(Math.pow(x, 2) + Math.pow(y, 2)); - } -}; - - - -/** - * After fadeIn finishes, either kicks off the fade-out animation or queues the element for removal on mouseup - * @param ripple - */ -InkRippleCtrl.prototype.fadeInComplete = function (ripple) { - if (this.lastRipple === ripple) { - if (!this.timeout && !this.mousedown) { - this.removeRipple(ripple); - } - } else { - this.removeRipple(ripple); - } -}; - -/** - * Kicks off the animation for removing a ripple - * @param ripple {Element} - */ -InkRippleCtrl.prototype.removeRipple = function (ripple) { - var ctrl = this; - var index = this.ripples.indexOf(ripple); - if (index < 0) return; - this.ripples.splice(this.ripples.indexOf(ripple), 1); - ripple.removeClass('md-ripple-active'); - ripple.addClass('md-ripple-remove'); - if (this.ripples.length === 0) this.container.css({ backgroundColor: '' }); - // use a 2-second timeout in order to allow for the animation to finish - // we don't actually care how long the animation takes - this.$timeout(function () { - ctrl.fadeOutComplete(ripple); - }, DURATION, false); -}; - -/** - * Removes the provided ripple from the DOM - * @param ripple - */ -InkRippleCtrl.prototype.fadeOutComplete = function (ripple) { - ripple.remove(); - this.lastRipple = null; -}; - -/** - * Used to create an empty directive. This is used to track flag-directives whose children may have - * functionality based on them. - * - * Example: `md-no-ink` will potentially be used by all child directives. - */ -function attrNoDirective () { - return { controller: angular.noop }; -} - -})(); -(function(){ -"use strict"; - -(function() { - 'use strict'; - - /** - * @ngdoc service - * @name $mdTabInkRipple - * @module material.core - * - * @description - * Provides ripple effects for md-tabs. See $mdInkRipple service for all possible configuration options. - * - * @param {object=} scope Scope within the current context - * @param {object=} element The element the ripple effect should be applied to - * @param {object=} options (Optional) Configuration options to override the defaultripple configuration - */ - - MdTabInkRipple.$inject = ["$mdInkRipple"]; - angular.module('material.core') - .factory('$mdTabInkRipple', MdTabInkRipple); - - function MdTabInkRipple($mdInkRipple) { - return { - attach: attach - }; - - function attach(scope, element, options) { - return $mdInkRipple.attach(scope, element, angular.extend({ - center: false, - dimBackground: true, - outline: false, - rippleSize: 'full' - }, options)); - } - } -})(); - -})(); -(function(){ -"use strict"; - // Polyfill angular < 1.4 (provide $animateCss) angular .module('material.core') @@ -8134,6 +8134,283 @@ angular.module('material.components.autocomplete', [ (function(){ "use strict"; +/* + * @ngdoc module + * @name material.components.backdrop + * @description Backdrop + */ + +/** + * @ngdoc directive + * @name mdBackdrop + * @module material.components.backdrop + * + * @restrict E + * + * @description + * `` is a backdrop element used by other components, such as dialog and bottom sheet. + * Apply class `opaque` to make the backdrop use the theme backdrop color. + * + */ + +angular + .module('material.components.backdrop', ['material.core']) + .directive('mdBackdrop', ["$mdTheming", "$mdUtil", "$animate", "$rootElement", "$window", "$log", "$$rAF", "$document", function BackdropDirective($mdTheming, $mdUtil, $animate, $rootElement, $window, $log, $$rAF, $document) { + var ERROR_CSS_POSITION = ' may not work properly in a scrolled, static-positioned parent container.'; + + return { + restrict: 'E', + link: postLink + }; + + function postLink(scope, element, attrs) { + // backdrop may be outside the $rootElement, tell ngAnimate to animate regardless + if ($animate.pin) $animate.pin(element, $rootElement); + + var bodyStyles; + + $$rAF(function() { + // If body scrolling has been disabled using mdUtil.disableBodyScroll(), + // adjust the 'backdrop' height to account for the fixed 'body' top offset. + // Note that this can be pretty expensive and is better done inside the $$rAF. + bodyStyles = $window.getComputedStyle($document[0].body); + + if (bodyStyles.position === 'fixed') { + var resizeHandler = $mdUtil.debounce(function(){ + bodyStyles = $window.getComputedStyle($document[0].body); + resize(); + }, 60, null, false); + + resize(); + angular.element($window).on('resize', resizeHandler); + + scope.$on('$destroy', function() { + angular.element($window).off('resize', resizeHandler); + }); + } + + // Often $animate.enter() is used to append the backDrop element + // so let's wait until $animate is done... + var parent = element.parent(); + + if (parent.length) { + if (parent[0].nodeName === 'BODY') { + element.css('position', 'fixed'); + } + + var styles = $window.getComputedStyle(parent[0]); + + if (styles.position === 'static') { + // backdrop uses position:absolute and will not work properly with parent position:static (default) + $log.warn(ERROR_CSS_POSITION); + } + + // Only inherit the parent if the backdrop has a parent. + $mdTheming.inherit(element, parent); + } + }); + + function resize() { + var viewportHeight = parseInt(bodyStyles.height, 10) + Math.abs(parseInt(bodyStyles.top, 10)); + element.css('height', viewportHeight + 'px'); + } + } + + }]); + +})(); +(function(){ +"use strict"; + +/** + * @ngdoc module + * @name material.components.button + * @description + * + * Button + */ +MdButtonDirective.$inject = ["$mdButtonInkRipple", "$mdTheming", "$mdAria", "$mdInteraction"]; +MdAnchorDirective.$inject = ["$mdTheming"]; +angular + .module('material.components.button', [ 'material.core' ]) + .directive('mdButton', MdButtonDirective) + .directive('a', MdAnchorDirective); + + +/** + * @private + * @restrict E + * + * @description + * `a` is an anchor directive used to inherit theme colors for md-primary, md-accent, etc. + * + * @usage + * + * + * + * + * + * + */ +function MdAnchorDirective($mdTheming) { + return { + restrict : 'E', + link : function postLink(scope, element) { + // Make sure to inherit theme so stand-alone anchors + // support theme colors for md-primary, md-accent, etc. + $mdTheming(element); + } + }; +} + + +/** + * @ngdoc directive + * @name mdButton + * @module material.components.button + * + * @restrict E + * + * @description + * `` is a button directive with optional ink ripples (default enabled). + * + * If you supply a `href` or `ng-href` attribute, it will become an `` element. Otherwise, it + * will become a `'; + } + } + + function postLink(scope, element, attr) { + $mdTheming(element); + $mdButtonInkRipple.attach(scope, element); + + // Use async expect to support possible bindings in the button label + $mdAria.expectWithoutText(element, 'aria-label'); + + // For anchor elements, we have to set tabindex manually when the + // element is disabled + if (isAnchor(attr) && angular.isDefined(attr.ngDisabled) ) { + scope.$watch(attr.ngDisabled, function(isDisabled) { + element.attr('tabindex', isDisabled ? -1 : 0); + }); + } + + // disabling click event when disabled is true + element.on('click', function(e){ + if (attr.disabled === true) { + e.preventDefault(); + e.stopImmediatePropagation(); + } + }); + + if (!element.hasClass('md-no-focus')) { + + element.on('focus', function() { + + // Only show the focus effect when being focused through keyboard interaction or programmatically + if (!$mdInteraction.isUserInvoked() || $mdInteraction.getLastInteractionType() === 'keyboard') { + element.addClass('md-focused'); + } + + }); + + element.on('blur', function() { + element.removeClass('md-focused'); + }); + } + + } + +} + +})(); +(function(){ +"use strict"; + /** * @ngdoc module * @name material.components.bottomSheet @@ -8460,283 +8737,6 @@ function MdBottomSheetProvider($$interimElementProvider) { (function(){ "use strict"; -/* - * @ngdoc module - * @name material.components.backdrop - * @description Backdrop - */ - -/** - * @ngdoc directive - * @name mdBackdrop - * @module material.components.backdrop - * - * @restrict E - * - * @description - * `` is a backdrop element used by other components, such as dialog and bottom sheet. - * Apply class `opaque` to make the backdrop use the theme backdrop color. - * - */ - -angular - .module('material.components.backdrop', ['material.core']) - .directive('mdBackdrop', ["$mdTheming", "$mdUtil", "$animate", "$rootElement", "$window", "$log", "$$rAF", "$document", function BackdropDirective($mdTheming, $mdUtil, $animate, $rootElement, $window, $log, $$rAF, $document) { - var ERROR_CSS_POSITION = ' may not work properly in a scrolled, static-positioned parent container.'; - - return { - restrict: 'E', - link: postLink - }; - - function postLink(scope, element, attrs) { - // backdrop may be outside the $rootElement, tell ngAnimate to animate regardless - if ($animate.pin) $animate.pin(element, $rootElement); - - var bodyStyles; - - $$rAF(function() { - // If body scrolling has been disabled using mdUtil.disableBodyScroll(), - // adjust the 'backdrop' height to account for the fixed 'body' top offset. - // Note that this can be pretty expensive and is better done inside the $$rAF. - bodyStyles = $window.getComputedStyle($document[0].body); - - if (bodyStyles.position === 'fixed') { - var resizeHandler = $mdUtil.debounce(function(){ - bodyStyles = $window.getComputedStyle($document[0].body); - resize(); - }, 60, null, false); - - resize(); - angular.element($window).on('resize', resizeHandler); - - scope.$on('$destroy', function() { - angular.element($window).off('resize', resizeHandler); - }); - } - - // Often $animate.enter() is used to append the backDrop element - // so let's wait until $animate is done... - var parent = element.parent(); - - if (parent.length) { - if (parent[0].nodeName === 'BODY') { - element.css('position', 'fixed'); - } - - var styles = $window.getComputedStyle(parent[0]); - - if (styles.position === 'static') { - // backdrop uses position:absolute and will not work properly with parent position:static (default) - $log.warn(ERROR_CSS_POSITION); - } - - // Only inherit the parent if the backdrop has a parent. - $mdTheming.inherit(element, parent); - } - }); - - function resize() { - var viewportHeight = parseInt(bodyStyles.height, 10) + Math.abs(parseInt(bodyStyles.top, 10)); - element.css('height', viewportHeight + 'px'); - } - } - - }]); - -})(); -(function(){ -"use strict"; - -/** - * @ngdoc module - * @name material.components.button - * @description - * - * Button - */ -MdButtonDirective.$inject = ["$mdButtonInkRipple", "$mdTheming", "$mdAria", "$mdInteraction"]; -MdAnchorDirective.$inject = ["$mdTheming"]; -angular - .module('material.components.button', [ 'material.core' ]) - .directive('mdButton', MdButtonDirective) - .directive('a', MdAnchorDirective); - - -/** - * @private - * @restrict E - * - * @description - * `a` is an anchor directive used to inherit theme colors for md-primary, md-accent, etc. - * - * @usage - * - * - * - * - * - * - */ -function MdAnchorDirective($mdTheming) { - return { - restrict : 'E', - link : function postLink(scope, element) { - // Make sure to inherit theme so stand-alone anchors - // support theme colors for md-primary, md-accent, etc. - $mdTheming(element); - } - }; -} - - -/** - * @ngdoc directive - * @name mdButton - * @module material.components.button - * - * @restrict E - * - * @description - * `` is a button directive with optional ink ripples (default enabled). - * - * If you supply a `href` or `ng-href` attribute, it will become an `` element. Otherwise, it - * will become a `'; - } - } - - function postLink(scope, element, attr) { - $mdTheming(element); - $mdButtonInkRipple.attach(scope, element); - - // Use async expect to support possible bindings in the button label - $mdAria.expectWithoutText(element, 'aria-label'); - - // For anchor elements, we have to set tabindex manually when the - // element is disabled - if (isAnchor(attr) && angular.isDefined(attr.ngDisabled) ) { - scope.$watch(attr.ngDisabled, function(isDisabled) { - element.attr('tabindex', isDisabled ? -1 : 0); - }); - } - - // disabling click event when disabled is true - element.on('click', function(e){ - if (attr.disabled === true) { - e.preventDefault(); - e.stopImmediatePropagation(); - } - }); - - if (!element.hasClass('md-no-focus')) { - - element.on('focus', function() { - - // Only show the focus effect when being focused through keyboard interaction or programmatically - if (!$mdInteraction.isUserInvoked() || $mdInteraction.getLastInteractionType() === 'keyboard') { - element.addClass('md-focused'); - } - - }); - - element.on('blur', function() { - element.removeClass('md-focused'); - }); - } - - } - -} - -})(); -(function(){ -"use strict"; - /** * @ngdoc module * @name material.components.card @@ -9606,22 +9606,6 @@ function iosScrollFix(node) { (function(){ "use strict"; -/** - * @ngdoc module - * @name material.components.datepicker - * @description Module for the datepicker component. - */ - -angular.module('material.components.datepicker', [ - 'material.core', - 'material.components.icon', - 'material.components.virtualRepeat' -]); - -})(); -(function(){ -"use strict"; - /** * @ngdoc module * @name material.components.dialog @@ -10921,6 +10905,22 @@ function MdDialogProvider($$interimElementProvider) { (function(){ "use strict"; +/** + * @ngdoc module + * @name material.components.datepicker + * @description Module for the datepicker component. + */ + +angular.module('material.components.datepicker', [ + 'material.core', + 'material.components.icon', + 'material.components.virtualRepeat' +]); + +})(); +(function(){ +"use strict"; + /** * @ngdoc module * @name material.components.divider @@ -17990,8 +17990,8 @@ MdPanelPosition.prototype._bidi = function(position) { MdPanelPosition.prototype._calculatePanelPosition = function(panelEl, position) { var panelBounds = panelEl[0].getBoundingClientRect(); - var panelWidth = panelBounds.width; - var panelHeight = panelBounds.height; + var panelWidth = Math.max(panelBounds.width, panelEl[0].clientWidth); + var panelHeight = Math.max(panelBounds.height, panelEl[0].clientHeight); var targetBounds = this._relativeToEl[0].getBoundingClientRect(); @@ -19006,6 +19006,59 @@ function mdRadioButtonDirective($mdAria, $mdUtil, $mdTheming) { (function(){ "use strict"; +/** + * @ngdoc module + * @name material.components.showHide + */ + +// Add additional handlers to ng-show and ng-hide that notify directives +// contained within that they should recompute their size. +// These run in addition to AngularJS's built-in ng-hide and ng-show directives. +angular.module('material.components.showHide', [ + 'material.core' +]) + .directive('ngShow', createDirective('ngShow', true)) + .directive('ngHide', createDirective('ngHide', false)); + + +function createDirective(name, targetValue) { + return ['$mdUtil', '$window', function($mdUtil, $window) { + return { + restrict: 'A', + multiElement: true, + link: function($scope, $element, $attr) { + var unregister = $scope.$on('$md-resize-enable', function() { + unregister(); + + var node = $element[0]; + var cachedTransitionStyles = node.nodeType === $window.Node.ELEMENT_NODE ? + $window.getComputedStyle(node) : {}; + + $scope.$watch($attr[name], function(value) { + if (!!value === targetValue) { + $mdUtil.nextTick(function() { + $scope.$broadcast('$md-resize'); + }); + + var opts = { + cachedTransitionStyles: cachedTransitionStyles + }; + + $mdUtil.dom.animator.waitTransitionEnd($element, opts).then(function() { + $scope.$broadcast('$md-resize'); + }); + } + }); + }); + } + }; + }]; +} + +})(); +(function(){ +"use strict"; + /** * @ngdoc module * @name material.components.select @@ -20726,59 +20779,6 @@ function shouldHandleKey(ev, $mdConstant) { (function(){ "use strict"; -/** - * @ngdoc module - * @name material.components.showHide - */ - -// Add additional handlers to ng-show and ng-hide that notify directives -// contained within that they should recompute their size. -// These run in addition to AngularJS's built-in ng-hide and ng-show directives. -angular.module('material.components.showHide', [ - 'material.core' -]) - .directive('ngShow', createDirective('ngShow', true)) - .directive('ngHide', createDirective('ngHide', false)); - - -function createDirective(name, targetValue) { - return ['$mdUtil', '$window', function($mdUtil, $window) { - return { - restrict: 'A', - multiElement: true, - link: function($scope, $element, $attr) { - var unregister = $scope.$on('$md-resize-enable', function() { - unregister(); - - var node = $element[0]; - var cachedTransitionStyles = node.nodeType === $window.Node.ELEMENT_NODE ? - $window.getComputedStyle(node) : {}; - - $scope.$watch($attr[name], function(value) { - if (!!value === targetValue) { - $mdUtil.nextTick(function() { - $scope.$broadcast('$md-resize'); - }); - - var opts = { - cachedTransitionStyles: cachedTransitionStyles - }; - - $mdUtil.dom.animator.waitTransitionEnd($element, opts).then(function() { - $scope.$broadcast('$md-resize'); - }); - } - }); - }); - } - }; - }]; -} - -})(); -(function(){ -"use strict"; - /** * @ngdoc module * @name material.components.sidenav @@ -22414,6 +22414,132 @@ function MdSubheaderDirective($mdSticky, $compile, $mdTheming, $mdUtil, $mdAria) }; } +})(); +(function(){ +"use strict"; + +/** + * @ngdoc module + * @name material.components.swipe + * @description Swipe module! + */ +/** + * @ngdoc directive + * @module material.components.swipe + * @name mdSwipeLeft + * + * @restrict A + * + * @description + * The md-swipe-left directive allows you to specify custom behavior when an element is swiped + * left. + * + * ### Notes + * - The `$event.currentTarget` of the swiped element will be `null`, but you can get a + * reference to the element that actually holds the `md-swipe-left` directive by using `$target.current` + * + * > You can see this in action on the demo page (Look at the Developer Tools console while swiping). + * + * @usage + * + *
Swipe me left!
+ *
+ */ +/** + * @ngdoc directive + * @module material.components.swipe + * @name mdSwipeRight + * + * @restrict A + * + * @description + * The md-swipe-right directive allows you to specify custom behavior when an element is swiped + * right. + * + * ### Notes + * - The `$event.currentTarget` of the swiped element will be `null`, but you can get a + * reference to the element that actually holds the `md-swipe-right` directive by using `$target.current` + * + * > You can see this in action on the demo page (Look at the Developer Tools console while swiping). + * + * @usage + * + *
Swipe me right!
+ *
+ */ +/** + * @ngdoc directive + * @module material.components.swipe + * @name mdSwipeUp + * + * @restrict A + * + * @description + * The md-swipe-up directive allows you to specify custom behavior when an element is swiped + * up. + * + * ### Notes + * - The `$event.currentTarget` of the swiped element will be `null`, but you can get a + * reference to the element that actually holds the `md-swipe-up` directive by using `$target.current` + * + * > You can see this in action on the demo page (Look at the Developer Tools console while swiping). + * + * @usage + * + *
Swipe me up!
+ *
+ */ +/** + * @ngdoc directive + * @module material.components.swipe + * @name mdSwipeDown + * + * @restrict A + * + * @description + * The md-swipe-down directive allows you to specify custom behavior when an element is swiped + * down. + * + * ### Notes + * - The `$event.currentTarget` of the swiped element will be `null`, but you can get a + * reference to the element that actually holds the `md-swipe-down` directive by using `$target.current` + * + * > You can see this in action on the demo page (Look at the Developer Tools console while swiping). + * + * @usage + * + *
Swipe me down!
+ *
+ */ + +angular.module('material.components.swipe', ['material.core']) + .directive('mdSwipeLeft', getDirective('SwipeLeft')) + .directive('mdSwipeRight', getDirective('SwipeRight')) + .directive('mdSwipeUp', getDirective('SwipeUp')) + .directive('mdSwipeDown', getDirective('SwipeDown')); + +function getDirective(name) { + DirectiveFactory.$inject = ["$parse"]; + var directiveName = 'md' + name; + var eventName = '$md.' + name.toLowerCase(); + + return DirectiveFactory; + + /* @ngInject */ + function DirectiveFactory($parse) { + return { restrict: 'A', link: postLink }; + function postLink(scope, element, attr) { + var fn = $parse(attr[directiveName]); + element.on(eventName, function(ev) { + var currentTarget = ev.currentTarget; + scope.$applyAsync(function() { fn(scope, { $event: ev, $target: { current: currentTarget } }); }); + }); + } + } +} + + + })(); (function(){ "use strict"; @@ -22598,107 +22724,6 @@ function MdSwitch(mdCheckboxDirective, $mdUtil, $mdConstant, $parse, $$rAF, $mdG } -})(); -(function(){ -"use strict"; - -/** - * @ngdoc module - * @name material.components.swipe - * @description Swipe module! - */ -/** - * @ngdoc directive - * @module material.components.swipe - * @name mdSwipeLeft - * - * @restrict A - * - * @description - * The md-swipe-left directive allows you to specify custom behavior when an element is swiped - * left. - * - * @usage - * - *
Swipe me left!
- *
- */ -/** - * @ngdoc directive - * @module material.components.swipe - * @name mdSwipeRight - * - * @restrict A - * - * @description - * The md-swipe-right directive allows you to specify custom behavior when an element is swiped - * right. - * - * @usage - * - *
Swipe me right!
- *
- */ -/** - * @ngdoc directive - * @module material.components.swipe - * @name mdSwipeUp - * - * @restrict A - * - * @description - * The md-swipe-up directive allows you to specify custom behavior when an element is swiped - * up. - * - * @usage - * - *
Swipe me up!
- *
- */ -/** - * @ngdoc directive - * @module material.components.swipe - * @name mdSwipeDown - * - * @restrict A - * - * @description - * The md-swipe-down directive allows you to specify custom behavior when an element is swiped - * down. - * - * @usage - * - *
Swipe me down!
- *
- */ - -angular.module('material.components.swipe', ['material.core']) - .directive('mdSwipeLeft', getDirective('SwipeLeft')) - .directive('mdSwipeRight', getDirective('SwipeRight')) - .directive('mdSwipeUp', getDirective('SwipeUp')) - .directive('mdSwipeDown', getDirective('SwipeDown')); - -function getDirective(name) { - DirectiveFactory.$inject = ["$parse"]; - var directiveName = 'md' + name; - var eventName = '$md.' + name.toLowerCase(); - - return DirectiveFactory; - - /* @ngInject */ - function DirectiveFactory($parse) { - return { restrict: 'A', link: postLink }; - function postLink(scope, element, attr) { - var fn = $parse(attr[directiveName]); - element.on(eventName, function(ev) { - scope.$applyAsync(function() { fn(scope, { $event: ev }); }); - }); - } - } -} - - - })(); (function(){ "use strict"; @@ -23611,96 +23636,6 @@ function mdToolbarDirective($$rAF, $mdConstant, $mdUtil, $mdTheming, $animate) { (function(){ "use strict"; -/** - * @ngdoc module - * @name material.components.truncate - */ -MdTruncateController.$inject = ["$element"]; -angular.module('material.components.truncate', ['material.core']) - .directive('mdTruncate', MdTruncateDirective); - -/** - * @ngdoc directive - * @name mdTruncate - * @module material.components.truncate - * @restrict AE - * @description - * - * The `md-truncate` component displays a label that will automatically clip text which is wider - * than the component. By default, it displays an ellipsis, but you may apply the `md-clip` CSS - * class to override this default and use a standard "clipping" approach. - * - * Note: The `md-truncate` component does not automatically adjust it's width. You must - * provide the `flex` attribute, or some other CSS-based width management. See the - * demos for examples. - * - * @usage - * - * ### As an Element - * - * - *
- * Back - * - * Chapter 1 - The Way of the Old West - * - * Forward - *
- *
- * - * ### As an Attribute - * - * - *

Some Title With a Lot of Text

- *
- * - * ## CSS & Styles - * - * `` provides two CSS classes that you may use to control the type of clipping. - * - * Note: The `md-truncate` also applies a setting of `width: 0;` when used with the `flex` - * attribute to fix an issue with the flex element not shrinking properly. - * - *
- * - * - * - * Assigns the "ellipsis" behavior (default) which will cut off mid-word and append an ellipsis - * (…) to the end of the text. - * - * - * - * Assigns the "clipping" behavior which will simply chop off the text. This may happen - * mid-word or even mid-character. - * - * - * - *
- */ -function MdTruncateDirective() { - return { - restrict: 'AE', - - controller: MdTruncateController - } -} - -/** - * Controller for the component. - * - * @param $element The md-truncate element. - * - * @constructor - * @ngInject - */ -function MdTruncateController($element) { - $element.addClass('md-truncate'); -} - -})(); -(function(){ -"use strict"; - /** * @ngdoc module * @name material.components.tooltip @@ -24091,11 +24026,14 @@ function MdTooltipDirective($timeout, $window, $$rAF, $document, $interpolate, attachTo: attachTo, contentElement: element, propagateContainerEvents: true, - panelClass: 'md-tooltip ' + origin, + panelClass: 'md-tooltip', animation: panelAnimation, position: panelPosition, zIndex: scope.mdZIndex, - focusOnOpen: false + focusOnOpen: false, + onDomAdded: function() { + panelRef.panelEl.addClass(origin); + } }; panelRef = $mdPanel.create(panelConfig); @@ -24187,6 +24125,96 @@ function MdTooltipRegistry() { (function(){ "use strict"; +/** + * @ngdoc module + * @name material.components.truncate + */ +MdTruncateController.$inject = ["$element"]; +angular.module('material.components.truncate', ['material.core']) + .directive('mdTruncate', MdTruncateDirective); + +/** + * @ngdoc directive + * @name mdTruncate + * @module material.components.truncate + * @restrict AE + * @description + * + * The `md-truncate` component displays a label that will automatically clip text which is wider + * than the component. By default, it displays an ellipsis, but you may apply the `md-clip` CSS + * class to override this default and use a standard "clipping" approach. + * + * Note: The `md-truncate` component does not automatically adjust it's width. You must + * provide the `flex` attribute, or some other CSS-based width management. See the + * demos for examples. + * + * @usage + * + * ### As an Element + * + * + *
+ * Back + * + * Chapter 1 - The Way of the Old West + * + * Forward + *
+ *
+ * + * ### As an Attribute + * + * + *

Some Title With a Lot of Text

+ *
+ * + * ## CSS & Styles + * + * `` provides two CSS classes that you may use to control the type of clipping. + * + * Note: The `md-truncate` also applies a setting of `width: 0;` when used with the `flex` + * attribute to fix an issue with the flex element not shrinking properly. + * + *
+ * + * + * + * Assigns the "ellipsis" behavior (default) which will cut off mid-word and append an ellipsis + * (…) to the end of the text. + * + * + * + * Assigns the "clipping" behavior which will simply chop off the text. This may happen + * mid-word or even mid-character. + * + * + * + *
+ */ +function MdTruncateDirective() { + return { + restrict: 'AE', + + controller: MdTruncateController + } +} + +/** + * Controller for the component. + * + * @param $element The md-truncate element. + * + * @constructor + * @ngInject + */ +function MdTruncateController($element) { + $element.addClass('md-truncate'); +} + +})(); +(function(){ +"use strict"; + /** * @ngdoc module * @name material.components.virtualRepeat @@ -31427,18 +31455,22 @@ function MdContactChips($mdTheming, $mdUtil) { // Responds to external changes to the model value. self.ngModelCtrl.$formatters.push(function(value) { - var parsedValue = angular.isDefined(value) ? Date.parse(value) : null; + var parsedValue = angular.isDefined(value) ? value : null; - // `parsedValue` is the time since epoch if valid or `NaN` if invalid. - if (!isNaN(parsedValue) && angular.isNumber(parsedValue)) { - value = new Date(parsedValue); - } + if (!(value instanceof Date)) { + parsedValue = Date.parse(value); - if (value && !(value instanceof Date)) { - throw Error( - 'The ng-model for md-datepicker must be a Date instance or a value ' + - 'that can be parsed into a date. Currently the model is of type: ' + typeof value - ); + // `parsedValue` is the time since epoch if valid or `NaN` if invalid. + if (!isNaN(parsedValue) && angular.isNumber(parsedValue)) { + value = new Date(parsedValue); + } + + if (value && !(value instanceof Date)) { + throw Error( + 'The ng-model for md-datepicker must be a Date instance or a value ' + + 'that can be parsed into a date. Currently the model is of type: ' + typeof value + ); + } } self.onExternalChange(value); @@ -36421,8 +36453,8 @@ function MdTabsTemplate ($compile, $mdUtil) { })(); (function(){ -angular.module("material.core").constant("$MD_THEME_CSS", "md-autocomplete.md-THEME_NAME-theme{background:\"{{background-A100}}\"}md-autocomplete.md-THEME_NAME-theme[disabled]:not([md-floating-label]){background:\"{{background-100}}\"}md-autocomplete.md-THEME_NAME-theme button md-icon path{fill:\"{{background-600}}\"}md-autocomplete.md-THEME_NAME-theme button:after{background:\"{{background-600-0.3}}\"}.md-autocomplete-suggestions-container.md-THEME_NAME-theme{background:\"{{background-A100}}\"}.md-autocomplete-suggestions-container.md-THEME_NAME-theme li{color:\"{{background-900}}\"}.md-autocomplete-suggestions-container.md-THEME_NAME-theme li .highlight{color:\"{{background-600}}\"}.md-autocomplete-suggestions-container.md-THEME_NAME-theme li.selected,.md-autocomplete-suggestions-container.md-THEME_NAME-theme li:hover{background:\"{{background-200}}\"}md-bottom-sheet.md-THEME_NAME-theme{background-color:\"{{background-50}}\";border-top-color:\"{{background-300}}\"}md-bottom-sheet.md-THEME_NAME-theme.md-list md-list-item{color:\"{{foreground-1}}\"}md-bottom-sheet.md-THEME_NAME-theme .md-subheader{background-color:\"{{background-50}}\";color:\"{{foreground-1}}\"}md-backdrop{background-color:\"{{background-900-0.0}}\"}md-backdrop.md-opaque.md-THEME_NAME-theme{background-color:\"{{background-900-1.0}}\"}.md-button.md-THEME_NAME-theme:not([disabled]).md-focused,.md-button.md-THEME_NAME-theme:not([disabled]):hover{background-color:\"{{background-500-0.2}}\"}.md-button.md-THEME_NAME-theme:not([disabled]).md-icon-button:hover{background-color:transparent}.md-button.md-THEME_NAME-theme.md-fab md-icon{color:\"{{accent-contrast}}\"}.md-button.md-THEME_NAME-theme.md-primary{color:\"{{primary-color}}\"}.md-button.md-THEME_NAME-theme.md-primary.md-fab,.md-button.md-THEME_NAME-theme.md-primary.md-raised{color:\"{{primary-contrast}}\";background-color:\"{{primary-color}}\"}.md-button.md-THEME_NAME-theme.md-primary.md-fab:not([disabled]) md-icon,.md-button.md-THEME_NAME-theme.md-primary.md-raised:not([disabled]) md-icon{color:\"{{primary-contrast}}\"}.md-button.md-THEME_NAME-theme.md-primary.md-fab:not([disabled]).md-focused,.md-button.md-THEME_NAME-theme.md-primary.md-fab:not([disabled]):hover,.md-button.md-THEME_NAME-theme.md-primary.md-raised:not([disabled]).md-focused,.md-button.md-THEME_NAME-theme.md-primary.md-raised:not([disabled]):hover{background-color:\"{{primary-600}}\"}.md-button.md-THEME_NAME-theme.md-primary:not([disabled]) md-icon{color:\"{{primary-color}}\"}.md-button.md-THEME_NAME-theme.md-fab{background-color:\"{{accent-color}}\";color:\"{{accent-contrast}}\"}.md-button.md-THEME_NAME-theme.md-fab:not([disabled]) .md-icon{color:\"{{accent-contrast}}\"}.md-button.md-THEME_NAME-theme.md-fab:not([disabled]).md-focused,.md-button.md-THEME_NAME-theme.md-fab:not([disabled]):hover{background-color:\"{{accent-A700}}\"}.md-button.md-THEME_NAME-theme.md-raised{color:\"{{background-900}}\";background-color:\"{{background-50}}\"}.md-button.md-THEME_NAME-theme.md-raised:not([disabled]) md-icon{color:\"{{background-900}}\"}.md-button.md-THEME_NAME-theme.md-raised:not([disabled]):hover{background-color:\"{{background-50}}\"}.md-button.md-THEME_NAME-theme.md-raised:not([disabled]).md-focused{background-color:\"{{background-200}}\"}.md-button.md-THEME_NAME-theme.md-warn{color:\"{{warn-color}}\"}.md-button.md-THEME_NAME-theme.md-warn.md-fab,.md-button.md-THEME_NAME-theme.md-warn.md-raised{color:\"{{warn-contrast}}\";background-color:\"{{warn-color}}\"}.md-button.md-THEME_NAME-theme.md-warn.md-fab:not([disabled]) md-icon,.md-button.md-THEME_NAME-theme.md-warn.md-raised:not([disabled]) md-icon{color:\"{{warn-contrast}}\"}.md-button.md-THEME_NAME-theme.md-warn.md-fab:not([disabled]).md-focused,.md-button.md-THEME_NAME-theme.md-warn.md-fab:not([disabled]):hover,.md-button.md-THEME_NAME-theme.md-warn.md-raised:not([disabled]).md-focused,.md-button.md-THEME_NAME-theme.md-warn.md-raised:not([disabled]):hover{background-color:\"{{warn-600}}\"}.md-button.md-THEME_NAME-theme.md-warn:not([disabled]) md-icon{color:\"{{warn-color}}\"}.md-button.md-THEME_NAME-theme.md-accent{color:\"{{accent-color}}\"}.md-button.md-THEME_NAME-theme.md-accent.md-fab,.md-button.md-THEME_NAME-theme.md-accent.md-raised{color:\"{{accent-contrast}}\";background-color:\"{{accent-color}}\"}.md-button.md-THEME_NAME-theme.md-accent.md-fab:not([disabled]) md-icon,.md-button.md-THEME_NAME-theme.md-accent.md-raised:not([disabled]) md-icon{color:\"{{accent-contrast}}\"}.md-button.md-THEME_NAME-theme.md-accent.md-fab:not([disabled]).md-focused,.md-button.md-THEME_NAME-theme.md-accent.md-fab:not([disabled]):hover,.md-button.md-THEME_NAME-theme.md-accent.md-raised:not([disabled]).md-focused,.md-button.md-THEME_NAME-theme.md-accent.md-raised:not([disabled]):hover{background-color:\"{{accent-A700}}\"}.md-button.md-THEME_NAME-theme.md-accent:not([disabled]) md-icon{color:\"{{accent-color}}\"}.md-button.md-THEME_NAME-theme.md-accent[disabled],.md-button.md-THEME_NAME-theme.md-fab[disabled],.md-button.md-THEME_NAME-theme.md-raised[disabled],.md-button.md-THEME_NAME-theme.md-warn[disabled],.md-button.md-THEME_NAME-theme[disabled]{color:\"{{foreground-3}}\";cursor:default}.md-button.md-THEME_NAME-theme.md-accent[disabled] md-icon,.md-button.md-THEME_NAME-theme.md-fab[disabled] md-icon,.md-button.md-THEME_NAME-theme.md-raised[disabled] md-icon,.md-button.md-THEME_NAME-theme.md-warn[disabled] md-icon,.md-button.md-THEME_NAME-theme[disabled] md-icon{color:\"{{foreground-3}}\"}.md-button.md-THEME_NAME-theme.md-fab[disabled],.md-button.md-THEME_NAME-theme.md-raised[disabled]{background-color:\"{{foreground-4}}\"}.md-button.md-THEME_NAME-theme[disabled]{background-color:transparent}._md a.md-THEME_NAME-theme:not(.md-button).md-primary{color:\"{{primary-color}}\"}._md a.md-THEME_NAME-theme:not(.md-button).md-primary:hover{color:\"{{primary-700}}\"}._md a.md-THEME_NAME-theme:not(.md-button).md-accent{color:\"{{accent-color}}\"}._md a.md-THEME_NAME-theme:not(.md-button).md-accent:hover{color:\"{{accent-A700}}\"}._md a.md-THEME_NAME-theme:not(.md-button).md-warn{color:\"{{warn-color}}\"}._md a.md-THEME_NAME-theme:not(.md-button).md-warn:hover{color:\"{{warn-700}}\"}md-card.md-THEME_NAME-theme{color:\"{{foreground-1}}\";background-color:\"{{background-hue-1}}\";border-radius:2px}md-card.md-THEME_NAME-theme .md-card-image{border-radius:2px 2px 0 0}md-card.md-THEME_NAME-theme md-card-header md-card-avatar md-icon{color:\"{{background-color}}\";background-color:\"{{foreground-3}}\"}md-card.md-THEME_NAME-theme md-card-header md-card-header-text .md-subhead,md-card.md-THEME_NAME-theme md-card-title md-card-title-text:not(:only-child) .md-subhead{color:\"{{foreground-2}}\"}md-checkbox.md-THEME_NAME-theme .md-ripple{color:\"{{accent-A700}}\"}md-checkbox.md-THEME_NAME-theme.md-checked .md-ripple{color:\"{{background-600}}\"}md-checkbox.md-THEME_NAME-theme.md-checked.md-focused .md-container:before{background-color:\"{{accent-color-0.26}}\"}md-checkbox.md-THEME_NAME-theme .md-ink-ripple{color:\"{{foreground-2}}\"}md-checkbox.md-THEME_NAME-theme.md-checked .md-ink-ripple{color:\"{{accent-color-0.87}}\"}md-checkbox.md-THEME_NAME-theme:not(.md-checked) .md-icon{border-color:\"{{foreground-2}}\"}md-checkbox.md-THEME_NAME-theme.md-checked .md-icon{background-color:\"{{accent-color-0.87}}\"}md-checkbox.md-THEME_NAME-theme.md-checked .md-icon:after{border-color:\"{{accent-contrast-0.87}}\"}md-checkbox.md-THEME_NAME-theme:not([disabled]).md-primary .md-ripple{color:\"{{primary-600}}\"}md-checkbox.md-THEME_NAME-theme:not([disabled]).md-primary.md-checked .md-ripple{color:\"{{background-600}}\"}md-checkbox.md-THEME_NAME-theme:not([disabled]).md-primary .md-ink-ripple{color:\"{{foreground-2}}\"}md-checkbox.md-THEME_NAME-theme:not([disabled]).md-primary.md-checked .md-ink-ripple{color:\"{{primary-color-0.87}}\"}md-checkbox.md-THEME_NAME-theme:not([disabled]).md-primary:not(.md-checked) .md-icon{border-color:\"{{foreground-2}}\"}md-checkbox.md-THEME_NAME-theme:not([disabled]).md-primary.md-checked .md-icon{background-color:\"{{primary-color-0.87}}\"}md-checkbox.md-THEME_NAME-theme:not([disabled]).md-primary.md-checked.md-focused .md-container:before{background-color:\"{{primary-color-0.26}}\"}md-checkbox.md-THEME_NAME-theme:not([disabled]).md-primary.md-checked .md-icon:after{border-color:\"{{primary-contrast-0.87}}\"}md-checkbox.md-THEME_NAME-theme:not([disabled]).md-primary .md-indeterminate[disabled] .md-container{color:\"{{foreground-3}}\"}md-checkbox.md-THEME_NAME-theme:not([disabled]).md-warn .md-ripple{color:\"{{warn-600}}\"}md-checkbox.md-THEME_NAME-theme:not([disabled]).md-warn .md-ink-ripple{color:\"{{foreground-2}}\"}md-checkbox.md-THEME_NAME-theme:not([disabled]).md-warn.md-checked .md-ink-ripple{color:\"{{warn-color-0.87}}\"}md-checkbox.md-THEME_NAME-theme:not([disabled]).md-warn:not(.md-checked) .md-icon{border-color:\"{{foreground-2}}\"}md-checkbox.md-THEME_NAME-theme:not([disabled]).md-warn.md-checked .md-icon{background-color:\"{{warn-color-0.87}}\"}md-checkbox.md-THEME_NAME-theme:not([disabled]).md-warn.md-checked.md-focused:not([disabled]) .md-container:before{background-color:\"{{warn-color-0.26}}\"}md-checkbox.md-THEME_NAME-theme:not([disabled]).md-warn.md-checked .md-icon:after{border-color:\"{{background-200}}\"}md-checkbox.md-THEME_NAME-theme[disabled]:not(.md-checked) .md-icon{border-color:\"{{foreground-3}}\"}md-checkbox.md-THEME_NAME-theme[disabled].md-checked .md-icon{background-color:\"{{foreground-3}}\"}md-checkbox.md-THEME_NAME-theme[disabled].md-checked .md-icon:after{border-color:\"{{background-200}}\"}md-checkbox.md-THEME_NAME-theme[disabled] .md-icon:after{border-color:\"{{foreground-3}}\"}md-checkbox.md-THEME_NAME-theme[disabled] .md-label{color:\"{{foreground-3}}\"}md-chips.md-THEME_NAME-theme .md-chips{box-shadow:0 1px \"{{foreground-4}}\"}md-chips.md-THEME_NAME-theme .md-chips.md-focused{box-shadow:0 2px \"{{primary-color}}\"}md-chips.md-THEME_NAME-theme .md-chips .md-chip-input-container input{color:\"{{foreground-1}}\"}md-chips.md-THEME_NAME-theme .md-chips .md-chip-input-container input:-moz-placeholder,md-chips.md-THEME_NAME-theme .md-chips .md-chip-input-container input::-moz-placeholder{color:\"{{foreground-3}}\"}md-chips.md-THEME_NAME-theme .md-chips .md-chip-input-container input:-ms-input-placeholder{color:\"{{foreground-3}}\"}md-chips.md-THEME_NAME-theme .md-chips .md-chip-input-container input::-webkit-input-placeholder{color:\"{{foreground-3}}\"}md-chips.md-THEME_NAME-theme md-chip{background:\"{{background-300}}\";color:\"{{background-800}}\"}md-chips.md-THEME_NAME-theme md-chip md-icon{color:\"{{background-700}}\"}md-chips.md-THEME_NAME-theme md-chip.md-focused{background:\"{{primary-color}}\";color:\"{{primary-contrast}}\"}md-chips.md-THEME_NAME-theme md-chip.md-focused md-icon{color:\"{{primary-contrast}}\"}md-chips.md-THEME_NAME-theme md-chip._md-chip-editing{background:transparent;color:\"{{background-800}}\"}md-chips.md-THEME_NAME-theme md-chip-remove .md-button md-icon path{fill:\"{{background-500}}\"}.md-contact-suggestion span.md-contact-email{color:\"{{background-400}}\"}md-content.md-THEME_NAME-theme{color:\"{{foreground-1}}\";background-color:\"{{background-default}}\"}.md-calendar.md-THEME_NAME-theme{background:\"{{background-A100}}\";color:\"{{background-A200-0.87}}\"}.md-calendar.md-THEME_NAME-theme tr:last-child td{border-bottom-color:\"{{background-200}}\"}.md-THEME_NAME-theme .md-calendar-day-header{background:\"{{background-300}}\";color:\"{{background-A200-0.87}}\"}.md-THEME_NAME-theme .md-calendar-date.md-calendar-date-today .md-calendar-date-selection-indicator{border:1px solid \"{{primary-500}}\"}.md-THEME_NAME-theme .md-calendar-date.md-calendar-date-today.md-calendar-date-disabled{color:\"{{primary-500-0.6}}\"}.md-calendar-date.md-focus .md-THEME_NAME-theme .md-calendar-date-selection-indicator,.md-THEME_NAME-theme .md-calendar-date-selection-indicator:hover{background:\"{{background-300}}\"}.md-THEME_NAME-theme .md-calendar-date.md-calendar-selected-date .md-calendar-date-selection-indicator,.md-THEME_NAME-theme .md-calendar-date.md-focus.md-calendar-selected-date .md-calendar-date-selection-indicator{background:\"{{primary-500}}\";color:\"{{primary-500-contrast}}\";border-color:transparent}.md-THEME_NAME-theme .md-calendar-date-disabled,.md-THEME_NAME-theme .md-calendar-month-label-disabled{color:\"{{background-A200-0.435}}\"}.md-THEME_NAME-theme .md-datepicker-input{color:\"{{foreground-1}}\"}.md-THEME_NAME-theme .md-datepicker-input:-moz-placeholder,.md-THEME_NAME-theme .md-datepicker-input::-moz-placeholder{color:\"{{foreground-3}}\"}.md-THEME_NAME-theme .md-datepicker-input:-ms-input-placeholder{color:\"{{foreground-3}}\"}.md-THEME_NAME-theme .md-datepicker-input::-webkit-input-placeholder{color:\"{{foreground-3}}\"}.md-THEME_NAME-theme .md-datepicker-input-container{border-bottom-color:\"{{foreground-4}}\"}.md-THEME_NAME-theme .md-datepicker-input-container.md-datepicker-focused{border-bottom-color:\"{{primary-color}}\"}.md-accent .md-THEME_NAME-theme .md-datepicker-input-container.md-datepicker-focused{border-bottom-color:\"{{accent-color}}\"}.md-THEME_NAME-theme .md-datepicker-input-container.md-datepicker-invalid,.md-warn .md-THEME_NAME-theme .md-datepicker-input-container.md-datepicker-focused{border-bottom-color:\"{{warn-A700}}\"}.md-THEME_NAME-theme .md-datepicker-calendar-pane{border-color:\"{{background-hue-1}}\"}.md-THEME_NAME-theme .md-datepicker-triangle-button .md-datepicker-expand-triangle{border-top-color:\"{{foreground-2}}\"}.md-THEME_NAME-theme .md-datepicker-open .md-datepicker-calendar-icon{color:\"{{primary-color}}\"}.md-accent .md-THEME_NAME-theme .md-datepicker-open .md-datepicker-calendar-icon,.md-THEME_NAME-theme .md-datepicker-open.md-accent .md-datepicker-calendar-icon{color:\"{{accent-color}}\"}.md-THEME_NAME-theme .md-datepicker-open.md-warn .md-datepicker-calendar-icon,.md-warn .md-THEME_NAME-theme .md-datepicker-open .md-datepicker-calendar-icon{color:\"{{warn-A700}}\"}.md-THEME_NAME-theme .md-datepicker-calendar{background:\"{{background-A100}}\"}.md-THEME_NAME-theme .md-datepicker-input-mask-opaque{box-shadow:0 0 0 9999px \"{{background-hue-1}}\"}.md-THEME_NAME-theme .md-datepicker-open .md-datepicker-input-container{background:\"{{background-hue-1}}\"}md-dialog.md-THEME_NAME-theme{border-radius:4px;background-color:\"{{background-hue-1}}\";color:\"{{foreground-1}}\"}md-dialog.md-THEME_NAME-theme.md-content-overflow .md-actions,md-dialog.md-THEME_NAME-theme.md-content-overflow md-dialog-actions,md-divider.md-THEME_NAME-theme{border-top-color:\"{{foreground-4}}\"}.layout-gt-lg-row>md-divider.md-THEME_NAME-theme,.layout-gt-md-row>md-divider.md-THEME_NAME-theme,.layout-gt-sm-row>md-divider.md-THEME_NAME-theme,.layout-gt-xs-row>md-divider.md-THEME_NAME-theme,.layout-lg-row>md-divider.md-THEME_NAME-theme,.layout-md-row>md-divider.md-THEME_NAME-theme,.layout-row>md-divider.md-THEME_NAME-theme,.layout-sm-row>md-divider.md-THEME_NAME-theme,.layout-xl-row>md-divider.md-THEME_NAME-theme,.layout-xs-row>md-divider.md-THEME_NAME-theme{border-right-color:\"{{foreground-4}}\"}md-icon.md-THEME_NAME-theme{color:\"{{foreground-2}}\"}md-icon.md-THEME_NAME-theme.md-primary{color:\"{{primary-color}}\"}md-icon.md-THEME_NAME-theme.md-accent{color:\"{{accent-color}}\"}md-icon.md-THEME_NAME-theme.md-warn{color:\"{{warn-color}}\"}md-input-container.md-THEME_NAME-theme .md-input{color:\"{{foreground-1}}\";border-color:\"{{foreground-4}}\"}md-input-container.md-THEME_NAME-theme .md-input:-moz-placeholder,md-input-container.md-THEME_NAME-theme .md-input::-moz-placeholder{color:\"{{foreground-3}}\"}md-input-container.md-THEME_NAME-theme .md-input:-ms-input-placeholder{color:\"{{foreground-3}}\"}md-input-container.md-THEME_NAME-theme .md-input::-webkit-input-placeholder{color:\"{{foreground-3}}\"}md-input-container.md-THEME_NAME-theme>md-icon{color:\"{{foreground-1}}\"}md-input-container.md-THEME_NAME-theme .md-placeholder,md-input-container.md-THEME_NAME-theme label{color:\"{{foreground-3}}\"}md-input-container.md-THEME_NAME-theme label.md-required:after{color:\"{{warn-A700}}\"}md-input-container.md-THEME_NAME-theme:not(.md-input-focused):not(.md-input-invalid) label.md-required:after{color:\"{{foreground-2}}\"}md-input-container.md-THEME_NAME-theme .md-input-message-animation,md-input-container.md-THEME_NAME-theme .md-input-messages-animation{color:\"{{warn-A700}}\"}md-input-container.md-THEME_NAME-theme .md-input-message-animation .md-char-counter,md-input-container.md-THEME_NAME-theme .md-input-messages-animation .md-char-counter{color:\"{{foreground-1}}\"}md-input-container.md-THEME_NAME-theme.md-input-focused .md-input:-moz-placeholder,md-input-container.md-THEME_NAME-theme.md-input-focused .md-input::-moz-placeholder{color:\"{{foreground-2}}\"}md-input-container.md-THEME_NAME-theme.md-input-focused .md-input:-ms-input-placeholder{color:\"{{foreground-2}}\"}md-input-container.md-THEME_NAME-theme.md-input-focused .md-input::-webkit-input-placeholder{color:\"{{foreground-2}}\"}md-input-container.md-THEME_NAME-theme:not(.md-input-invalid).md-input-has-value label{color:\"{{foreground-2}}\"}md-input-container.md-THEME_NAME-theme:not(.md-input-invalid).md-input-focused .md-input,md-input-container.md-THEME_NAME-theme:not(.md-input-invalid).md-input-resized .md-input{border-color:\"{{primary-color}}\"}md-input-container.md-THEME_NAME-theme:not(.md-input-invalid).md-input-focused label,md-input-container.md-THEME_NAME-theme:not(.md-input-invalid).md-input-focused md-icon{color:\"{{primary-color}}\"}md-input-container.md-THEME_NAME-theme:not(.md-input-invalid).md-input-focused.md-accent .md-input{border-color:\"{{accent-color}}\"}md-input-container.md-THEME_NAME-theme:not(.md-input-invalid).md-input-focused.md-accent label,md-input-container.md-THEME_NAME-theme:not(.md-input-invalid).md-input-focused.md-accent md-icon{color:\"{{accent-color}}\"}md-input-container.md-THEME_NAME-theme:not(.md-input-invalid).md-input-focused.md-warn .md-input{border-color:\"{{warn-A700}}\"}md-input-container.md-THEME_NAME-theme:not(.md-input-invalid).md-input-focused.md-warn label,md-input-container.md-THEME_NAME-theme:not(.md-input-invalid).md-input-focused.md-warn md-icon{color:\"{{warn-A700}}\"}md-input-container.md-THEME_NAME-theme.md-input-invalid .md-input{border-color:\"{{warn-A700}}\"}md-input-container.md-THEME_NAME-theme.md-input-invalid .md-char-counter,md-input-container.md-THEME_NAME-theme.md-input-invalid .md-input-message-animation,md-input-container.md-THEME_NAME-theme.md-input-invalid label{color:\"{{warn-A700}}\"}[disabled] md-input-container.md-THEME_NAME-theme .md-input,md-input-container.md-THEME_NAME-theme .md-input[disabled]{border-bottom-color:transparent;color:\"{{foreground-3}}\";background-image:linear-gradient(90deg,\"{{foreground-3}}\" 0,\"{{foreground-3}}\" 33%,transparent 0);background-image:-ms-linear-gradient(left,transparent 0,\"{{foreground-3}}\" 100%)}md-list.md-THEME_NAME-theme md-list-item.md-2-line .md-list-item-text h3,md-list.md-THEME_NAME-theme md-list-item.md-2-line .md-list-item-text h4,md-list.md-THEME_NAME-theme md-list-item.md-3-line .md-list-item-text h3,md-list.md-THEME_NAME-theme md-list-item.md-3-line .md-list-item-text h4{color:\"{{foreground-1}}\"}md-list.md-THEME_NAME-theme md-list-item.md-2-line .md-list-item-text p,md-list.md-THEME_NAME-theme md-list-item.md-3-line .md-list-item-text p{color:\"{{foreground-2}}\"}md-list.md-THEME_NAME-theme .md-proxy-focus.md-focused div.md-no-style{background-color:\"{{background-100}}\"}md-list.md-THEME_NAME-theme md-list-item .md-avatar-icon{background-color:\"{{foreground-3}}\";color:\"{{background-color}}\"}md-list.md-THEME_NAME-theme md-list-item>md-icon{color:\"{{foreground-2}}\"}md-list.md-THEME_NAME-theme md-list-item>md-icon.md-highlight{color:\"{{primary-color}}\"}md-list.md-THEME_NAME-theme md-list-item>md-icon.md-highlight.md-accent{color:\"{{accent-color}}\"}md-menu-content.md-THEME_NAME-theme{background-color:\"{{background-A100}}\"}md-menu-content.md-THEME_NAME-theme md-menu-item{color:\"{{background-A200-0.87}}\"}md-menu-content.md-THEME_NAME-theme md-menu-item md-icon{color:\"{{background-A200-0.54}}\"}md-menu-content.md-THEME_NAME-theme md-menu-item .md-button[disabled],md-menu-content.md-THEME_NAME-theme md-menu-item .md-button[disabled] md-icon{color:\"{{background-A200-0.25}}\"}md-menu-content.md-THEME_NAME-theme md-menu-divider{background-color:\"{{background-A200-0.11}}\"}md-menu-bar.md-THEME_NAME-theme>button.md-button{color:\"{{foreground-2}}\";border-radius:2px}md-menu-bar.md-THEME_NAME-theme md-menu.md-open>button,md-menu-bar.md-THEME_NAME-theme md-menu>button:focus{outline:none;background:\"{{background-200}}\"}md-menu-bar.md-THEME_NAME-theme.md-open:not(.md-keyboard-mode) md-menu:hover>button{background-color:\"{{ background-500-0.2}}\"}md-menu-bar.md-THEME_NAME-theme:not(.md-keyboard-mode):not(.md-open) md-menu button:focus,md-menu-bar.md-THEME_NAME-theme:not(.md-keyboard-mode):not(.md-open) md-menu button:hover{background:transparent}md-menu-content.md-THEME_NAME-theme .md-menu>.md-button:after{color:\"{{background-A200-0.54}}\"}md-menu-content.md-THEME_NAME-theme .md-menu.md-open>.md-button{background-color:\"{{ background-500-0.2}}\"}md-toolbar.md-THEME_NAME-theme.md-menu-toolbar{background-color:\"{{background-A100}}\";color:\"{{background-A200}}\"}md-toolbar.md-THEME_NAME-theme.md-menu-toolbar md-toolbar-filler{background-color:\"{{primary-color}}\";color:\"{{background-A100-0.87}}\"}md-toolbar.md-THEME_NAME-theme.md-menu-toolbar md-toolbar-filler md-icon{color:\"{{background-A100-0.87}}\"}md-nav-bar.md-THEME_NAME-theme .md-nav-bar{background-color:transparent;border-color:\"{{foreground-4}}\"}md-nav-bar.md-THEME_NAME-theme .md-button._md-nav-button.md-unselected{color:\"{{foreground-2}}\"}md-nav-bar.md-THEME_NAME-theme md-nav-ink-bar{color:\"{{accent-color}}\";background:\"{{accent-color}}\"}md-nav-bar.md-THEME_NAME-theme.md-accent>.md-nav-bar{background-color:\"{{accent-color}}\"}md-nav-bar.md-THEME_NAME-theme.md-accent>.md-nav-bar .md-button._md-nav-button{color:\"{{accent-A100}}\"}md-nav-bar.md-THEME_NAME-theme.md-accent>.md-nav-bar .md-button._md-nav-button.md-active,md-nav-bar.md-THEME_NAME-theme.md-accent>.md-nav-bar .md-button._md-nav-button.md-focused{color:\"{{accent-contrast}}\"}md-nav-bar.md-THEME_NAME-theme.md-accent>.md-nav-bar .md-button._md-nav-button.md-focused{background:\"{{accent-contrast-0.1}}\"}md-nav-bar.md-THEME_NAME-theme.md-accent>.md-nav-bar md-nav-ink-bar{color:\"{{primary-600-1}}\";background:\"{{primary-600-1}}\"}md-nav-bar.md-THEME_NAME-theme.md-warn>.md-nav-bar{background-color:\"{{warn-color}}\"}md-nav-bar.md-THEME_NAME-theme.md-warn>.md-nav-bar .md-button._md-nav-button{color:\"{{warn-100}}\"}md-nav-bar.md-THEME_NAME-theme.md-warn>.md-nav-bar .md-button._md-nav-button.md-active,md-nav-bar.md-THEME_NAME-theme.md-warn>.md-nav-bar .md-button._md-nav-button.md-focused{color:\"{{warn-contrast}}\"}md-nav-bar.md-THEME_NAME-theme.md-warn>.md-nav-bar .md-button._md-nav-button.md-focused{background:\"{{warn-contrast-0.1}}\"}md-nav-bar.md-THEME_NAME-theme.md-primary>.md-nav-bar{background-color:\"{{primary-color}}\"}md-nav-bar.md-THEME_NAME-theme.md-primary>.md-nav-bar .md-button._md-nav-button{color:\"{{primary-100}}\"}md-nav-bar.md-THEME_NAME-theme.md-primary>.md-nav-bar .md-button._md-nav-button.md-active,md-nav-bar.md-THEME_NAME-theme.md-primary>.md-nav-bar .md-button._md-nav-button.md-focused{color:\"{{primary-contrast}}\"}md-nav-bar.md-THEME_NAME-theme.md-primary>.md-nav-bar .md-button._md-nav-button.md-focused{background:\"{{primary-contrast-0.1}}\"}md-toolbar>md-nav-bar.md-THEME_NAME-theme>.md-nav-bar{background-color:\"{{primary-color}}\"}md-toolbar>md-nav-bar.md-THEME_NAME-theme>.md-nav-bar .md-button._md-nav-button{color:\"{{primary-100}}\"}md-toolbar>md-nav-bar.md-THEME_NAME-theme>.md-nav-bar .md-button._md-nav-button.md-active,md-toolbar>md-nav-bar.md-THEME_NAME-theme>.md-nav-bar .md-button._md-nav-button.md-focused{color:\"{{primary-contrast}}\"}md-toolbar>md-nav-bar.md-THEME_NAME-theme>.md-nav-bar .md-button._md-nav-button.md-focused{background:\"{{primary-contrast-0.1}}\"}md-toolbar.md-accent>md-nav-bar.md-THEME_NAME-theme>.md-nav-bar{background-color:\"{{accent-color}}\"}md-toolbar.md-accent>md-nav-bar.md-THEME_NAME-theme>.md-nav-bar .md-button._md-nav-button{color:\"{{accent-A100}}\"}md-toolbar.md-accent>md-nav-bar.md-THEME_NAME-theme>.md-nav-bar .md-button._md-nav-button.md-active,md-toolbar.md-accent>md-nav-bar.md-THEME_NAME-theme>.md-nav-bar .md-button._md-nav-button.md-focused{color:\"{{accent-contrast}}\"}md-toolbar.md-accent>md-nav-bar.md-THEME_NAME-theme>.md-nav-bar .md-button._md-nav-button.md-focused{background:\"{{accent-contrast-0.1}}\"}md-toolbar.md-accent>md-nav-bar.md-THEME_NAME-theme>.md-nav-bar md-nav-ink-bar{color:\"{{primary-600-1}}\";background:\"{{primary-600-1}}\"}md-toolbar.md-warn>md-nav-bar.md-THEME_NAME-theme>.md-nav-bar{background-color:\"{{warn-color}}\"}md-toolbar.md-warn>md-nav-bar.md-THEME_NAME-theme>.md-nav-bar .md-button._md-nav-button{color:\"{{warn-100}}\"}md-toolbar.md-warn>md-nav-bar.md-THEME_NAME-theme>.md-nav-bar .md-button._md-nav-button.md-active,md-toolbar.md-warn>md-nav-bar.md-THEME_NAME-theme>.md-nav-bar .md-button._md-nav-button.md-focused{color:\"{{warn-contrast}}\"}md-toolbar.md-warn>md-nav-bar.md-THEME_NAME-theme>.md-nav-bar .md-button._md-nav-button.md-focused{background:\"{{warn-contrast-0.1}}\"}._md-panel-backdrop.md-THEME_NAME-theme{background-color:\"{{background-900-1.0}}\"}md-progress-circular.md-THEME_NAME-theme path{stroke:\"{{primary-color}}\"}md-progress-circular.md-THEME_NAME-theme.md-warn path{stroke:\"{{warn-color}}\"}md-progress-circular.md-THEME_NAME-theme.md-accent path{stroke:\"{{accent-color}}\"}md-progress-linear.md-THEME_NAME-theme .md-container{background-color:\"{{primary-100}}\"}md-progress-linear.md-THEME_NAME-theme .md-bar{background-color:\"{{primary-color}}\"}md-progress-linear.md-THEME_NAME-theme.md-warn .md-container{background-color:\"{{warn-100}}\"}md-progress-linear.md-THEME_NAME-theme.md-warn .md-bar{background-color:\"{{warn-color}}\"}md-progress-linear.md-THEME_NAME-theme.md-accent .md-container{background-color:\"{{accent-100}}\"}md-progress-linear.md-THEME_NAME-theme.md-accent .md-bar{background-color:\"{{accent-color}}\"}md-progress-linear.md-THEME_NAME-theme[md-mode=buffer].md-primary .md-bar1{background-color:\"{{primary-100}}\"}md-progress-linear.md-THEME_NAME-theme[md-mode=buffer].md-primary .md-dashed:before{background:radial-gradient(\"{{primary-100}}\" 0,\"{{primary-100}}\" 16%,transparent 42%)}md-progress-linear.md-THEME_NAME-theme[md-mode=buffer].md-warn .md-bar1{background-color:\"{{warn-100}}\"}md-progress-linear.md-THEME_NAME-theme[md-mode=buffer].md-warn .md-dashed:before{background:radial-gradient(\"{{warn-100}}\" 0,\"{{warn-100}}\" 16%,transparent 42%)}md-progress-linear.md-THEME_NAME-theme[md-mode=buffer].md-accent .md-bar1{background-color:\"{{accent-100}}\"}md-progress-linear.md-THEME_NAME-theme[md-mode=buffer].md-accent .md-dashed:before{background:radial-gradient(\"{{accent-100}}\" 0,\"{{accent-100}}\" 16%,transparent 42%)}md-radio-button.md-THEME_NAME-theme .md-off{border-color:\"{{foreground-2}}\"}md-radio-button.md-THEME_NAME-theme .md-on{background-color:\"{{accent-color-0.87}}\"}md-radio-button.md-THEME_NAME-theme.md-checked .md-off{border-color:\"{{accent-color-0.87}}\"}md-radio-button.md-THEME_NAME-theme.md-checked .md-ink-ripple{color:\"{{accent-color-0.87}}\"}md-radio-button.md-THEME_NAME-theme .md-container .md-ripple{color:\"{{accent-A700}}\"}md-radio-button.md-THEME_NAME-theme:not([disabled]).md-primary .md-on,md-radio-button.md-THEME_NAME-theme:not([disabled]) .md-primary .md-on,md-radio-group.md-THEME_NAME-theme:not([disabled]).md-primary .md-on,md-radio-group.md-THEME_NAME-theme:not([disabled]) .md-primary .md-on{background-color:\"{{primary-color-0.87}}\"}md-radio-button.md-THEME_NAME-theme:not([disabled]).md-primary.md-checked .md-off,md-radio-button.md-THEME_NAME-theme:not([disabled]) .md-primary.md-checked .md-off,md-radio-button.md-THEME_NAME-theme:not([disabled]).md-primary .md-checked .md-off,md-radio-button.md-THEME_NAME-theme:not([disabled]) .md-primary .md-checked .md-off,md-radio-group.md-THEME_NAME-theme:not([disabled]).md-primary.md-checked .md-off,md-radio-group.md-THEME_NAME-theme:not([disabled]) .md-primary.md-checked .md-off,md-radio-group.md-THEME_NAME-theme:not([disabled]).md-primary .md-checked .md-off,md-radio-group.md-THEME_NAME-theme:not([disabled]) .md-primary .md-checked .md-off{border-color:\"{{primary-color-0.87}}\"}md-radio-button.md-THEME_NAME-theme:not([disabled]).md-primary.md-checked .md-ink-ripple,md-radio-button.md-THEME_NAME-theme:not([disabled]) .md-primary.md-checked .md-ink-ripple,md-radio-button.md-THEME_NAME-theme:not([disabled]).md-primary .md-checked .md-ink-ripple,md-radio-button.md-THEME_NAME-theme:not([disabled]) .md-primary .md-checked .md-ink-ripple,md-radio-group.md-THEME_NAME-theme:not([disabled]).md-primary.md-checked .md-ink-ripple,md-radio-group.md-THEME_NAME-theme:not([disabled]) .md-primary.md-checked .md-ink-ripple,md-radio-group.md-THEME_NAME-theme:not([disabled]).md-primary .md-checked .md-ink-ripple,md-radio-group.md-THEME_NAME-theme:not([disabled]) .md-primary .md-checked .md-ink-ripple{color:\"{{primary-color-0.87}}\"}md-radio-button.md-THEME_NAME-theme:not([disabled]).md-primary .md-container .md-ripple,md-radio-button.md-THEME_NAME-theme:not([disabled]) .md-primary .md-container .md-ripple,md-radio-group.md-THEME_NAME-theme:not([disabled]).md-primary .md-container .md-ripple,md-radio-group.md-THEME_NAME-theme:not([disabled]) .md-primary .md-container .md-ripple{color:\"{{primary-600}}\"}md-radio-button.md-THEME_NAME-theme:not([disabled]).md-warn .md-on,md-radio-button.md-THEME_NAME-theme:not([disabled]) .md-warn .md-on,md-radio-group.md-THEME_NAME-theme:not([disabled]).md-warn .md-on,md-radio-group.md-THEME_NAME-theme:not([disabled]) .md-warn .md-on{background-color:\"{{warn-color-0.87}}\"}md-radio-button.md-THEME_NAME-theme:not([disabled]).md-warn.md-checked .md-off,md-radio-button.md-THEME_NAME-theme:not([disabled]) .md-warn.md-checked .md-off,md-radio-button.md-THEME_NAME-theme:not([disabled]).md-warn .md-checked .md-off,md-radio-button.md-THEME_NAME-theme:not([disabled]) .md-warn .md-checked .md-off,md-radio-group.md-THEME_NAME-theme:not([disabled]).md-warn.md-checked .md-off,md-radio-group.md-THEME_NAME-theme:not([disabled]) .md-warn.md-checked .md-off,md-radio-group.md-THEME_NAME-theme:not([disabled]).md-warn .md-checked .md-off,md-radio-group.md-THEME_NAME-theme:not([disabled]) .md-warn .md-checked .md-off{border-color:\"{{warn-color-0.87}}\"}md-radio-button.md-THEME_NAME-theme:not([disabled]).md-warn.md-checked .md-ink-ripple,md-radio-button.md-THEME_NAME-theme:not([disabled]) .md-warn.md-checked .md-ink-ripple,md-radio-button.md-THEME_NAME-theme:not([disabled]).md-warn .md-checked .md-ink-ripple,md-radio-button.md-THEME_NAME-theme:not([disabled]) .md-warn .md-checked .md-ink-ripple,md-radio-group.md-THEME_NAME-theme:not([disabled]).md-warn.md-checked .md-ink-ripple,md-radio-group.md-THEME_NAME-theme:not([disabled]) .md-warn.md-checked .md-ink-ripple,md-radio-group.md-THEME_NAME-theme:not([disabled]).md-warn .md-checked .md-ink-ripple,md-radio-group.md-THEME_NAME-theme:not([disabled]) .md-warn .md-checked .md-ink-ripple{color:\"{{warn-color-0.87}}\"}md-radio-button.md-THEME_NAME-theme:not([disabled]).md-warn .md-container .md-ripple,md-radio-button.md-THEME_NAME-theme:not([disabled]) .md-warn .md-container .md-ripple,md-radio-group.md-THEME_NAME-theme:not([disabled]).md-warn .md-container .md-ripple,md-radio-group.md-THEME_NAME-theme:not([disabled]) .md-warn .md-container .md-ripple{color:\"{{warn-600}}\"}md-radio-button.md-THEME_NAME-theme[disabled],md-radio-group.md-THEME_NAME-theme[disabled]{color:\"{{foreground-3}}\"}md-radio-button.md-THEME_NAME-theme[disabled] .md-container .md-off,md-radio-button.md-THEME_NAME-theme[disabled] .md-container .md-on,md-radio-group.md-THEME_NAME-theme[disabled] .md-container .md-off,md-radio-group.md-THEME_NAME-theme[disabled] .md-container .md-on{border-color:\"{{foreground-3}}\"}md-radio-group.md-THEME_NAME-theme .md-checked .md-ink-ripple{color:\"{{accent-color-0.26}}\"}md-radio-group.md-THEME_NAME-theme .md-checked:not([disabled]).md-primary .md-ink-ripple,md-radio-group.md-THEME_NAME-theme.md-primary .md-checked:not([disabled]) .md-ink-ripple{color:\"{{primary-color-0.26}}\"}md-radio-group.md-THEME_NAME-theme.md-focused:not(:empty) .md-checked .md-container:before{background-color:\"{{accent-color-0.26}}\"}md-radio-group.md-THEME_NAME-theme.md-focused:not(:empty) .md-checked.md-primary .md-container:before,md-radio-group.md-THEME_NAME-theme.md-focused:not(:empty).md-primary .md-checked .md-container:before{background-color:\"{{primary-color-0.26}}\"}md-radio-group.md-THEME_NAME-theme.md-focused:not(:empty) .md-checked.md-warn .md-container:before,md-radio-group.md-THEME_NAME-theme.md-focused:not(:empty).md-warn .md-checked .md-container:before{background-color:\"{{warn-color-0.26}}\"}md-input-container md-select.md-THEME_NAME-theme .md-select-value span:first-child:after{color:\"{{warn-A700}}\"}md-input-container:not(.md-input-focused):not(.md-input-invalid) md-select.md-THEME_NAME-theme .md-select-value span:first-child:after{color:\"{{foreground-3}}\"}md-input-container.md-input-focused:not(.md-input-has-value) md-select.md-THEME_NAME-theme .md-select-value,md-input-container.md-input-focused:not(.md-input-has-value) md-select.md-THEME_NAME-theme .md-select-value.md-select-placeholder{color:\"{{primary-color}}\"}md-input-container.md-input-invalid md-select.md-THEME_NAME-theme .md-select-value{color:\"{{warn-A700}}\"!important;border-bottom-color:\"{{warn-A700}}\"!important}md-input-container.md-input-invalid md-select.md-THEME_NAME-theme.md-no-underline .md-select-value{border-bottom-color:transparent!important}md-select.md-THEME_NAME-theme[disabled] .md-select-value{border-bottom-color:transparent;background-image:linear-gradient(90deg,\"{{foreground-3}}\" 0,\"{{foreground-3}}\" 33%,transparent 0);background-image:-ms-linear-gradient(left,transparent 0,\"{{foreground-3}}\" 100%)}md-select.md-THEME_NAME-theme .md-select-value{border-bottom-color:\"{{foreground-4}}\"}md-select.md-THEME_NAME-theme .md-select-value.md-select-placeholder{color:\"{{foreground-3}}\"}md-select.md-THEME_NAME-theme .md-select-value span:first-child:after{color:\"{{warn-A700}}\"}md-select.md-THEME_NAME-theme.md-no-underline .md-select-value{border-bottom-color:transparent!important}md-select.md-THEME_NAME-theme.ng-invalid.ng-touched .md-select-value{color:\"{{warn-A700}}\"!important;border-bottom-color:\"{{warn-A700}}\"!important}md-select.md-THEME_NAME-theme.ng-invalid.ng-touched.md-no-underline .md-select-value{border-bottom-color:transparent!important}md-select.md-THEME_NAME-theme:not([disabled]):focus .md-select-value{border-bottom-color:\"{{primary-color}}\";color:\"{{ foreground-1 }}\"}md-select.md-THEME_NAME-theme:not([disabled]):focus .md-select-value.md-select-placeholder{color:\"{{ foreground-1 }}\"}md-select.md-THEME_NAME-theme:not([disabled]):focus.md-no-underline .md-select-value{border-bottom-color:transparent!important}md-select.md-THEME_NAME-theme:not([disabled]):focus.md-accent .md-select-value{border-bottom-color:\"{{accent-color}}\"}md-select.md-THEME_NAME-theme:not([disabled]):focus.md-warn .md-select-value{border-bottom-color:\"{{warn-color}}\"}md-select.md-THEME_NAME-theme[disabled] .md-select-icon,md-select.md-THEME_NAME-theme[disabled] .md-select-value,md-select.md-THEME_NAME-theme[disabled] .md-select-value.md-select-placeholder{color:\"{{foreground-3}}\"}md-select.md-THEME_NAME-theme .md-select-icon{color:\"{{foreground-2}}\"}md-select-menu.md-THEME_NAME-theme md-content{background:\"{{background-A100}}\"}md-select-menu.md-THEME_NAME-theme md-content md-optgroup{color:\"{{background-600-0.87}}\"}md-select-menu.md-THEME_NAME-theme md-content md-option{color:\"{{background-900-0.87}}\"}md-select-menu.md-THEME_NAME-theme md-content md-option[disabled] .md-text{color:\"{{background-400-0.87}}\"}md-select-menu.md-THEME_NAME-theme md-content md-option:not([disabled]):focus,md-select-menu.md-THEME_NAME-theme md-content md-option:not([disabled]):hover{background:\"{{background-200}}\"}md-select-menu.md-THEME_NAME-theme md-content md-option[selected]{color:\"{{primary-500}}\"}md-select-menu.md-THEME_NAME-theme md-content md-option[selected]:focus{color:\"{{primary-600}}\"}md-select-menu.md-THEME_NAME-theme md-content md-option[selected].md-accent{color:\"{{accent-color}}\"}md-select-menu.md-THEME_NAME-theme md-content md-option[selected].md-accent:focus{color:\"{{accent-A700}}\"}.md-checkbox-enabled.md-THEME_NAME-theme .md-ripple{color:\"{{primary-600}}\"}.md-checkbox-enabled.md-THEME_NAME-theme[selected] .md-ripple{color:\"{{background-600}}\"}.md-checkbox-enabled.md-THEME_NAME-theme .md-ink-ripple{color:\"{{foreground-2}}\"}.md-checkbox-enabled.md-THEME_NAME-theme[selected] .md-ink-ripple{color:\"{{primary-color-0.87}}\"}.md-checkbox-enabled.md-THEME_NAME-theme:not(.md-checked) .md-icon{border-color:\"{{foreground-2}}\"}.md-checkbox-enabled.md-THEME_NAME-theme[selected] .md-icon{background-color:\"{{primary-color-0.87}}\"}.md-checkbox-enabled.md-THEME_NAME-theme[selected].md-focused .md-container:before{background-color:\"{{primary-color-0.26}}\"}.md-checkbox-enabled.md-THEME_NAME-theme[selected] .md-icon:after{border-color:\"{{primary-contrast-0.87}}\"}.md-checkbox-enabled.md-THEME_NAME-theme .md-indeterminate[disabled] .md-container{color:\"{{foreground-3}}\"}.md-checkbox-enabled.md-THEME_NAME-theme md-option .md-text{color:\"{{background-900-0.87}}\"}md-sidenav.md-THEME_NAME-theme,md-sidenav.md-THEME_NAME-theme md-content{background-color:\"{{background-hue-1}}\"}md-slider.md-THEME_NAME-theme .md-track{background-color:\"{{foreground-3}}\"}md-slider.md-THEME_NAME-theme .md-track-ticks{color:\"{{background-contrast}}\"}md-slider.md-THEME_NAME-theme .md-focus-ring{background-color:\"{{accent-A200-0.2}}\"}md-slider.md-THEME_NAME-theme .md-disabled-thumb{border-color:\"{{background-color}}\";background-color:\"{{background-color}}\"}md-slider.md-THEME_NAME-theme.md-min .md-thumb:after{background-color:\"{{background-color}}\";border-color:\"{{foreground-3}}\"}md-slider.md-THEME_NAME-theme.md-min .md-focus-ring{background-color:\"{{foreground-3-0.38}}\"}md-slider.md-THEME_NAME-theme.md-min[md-discrete] .md-thumb:after{background-color:\"{{background-contrast}}\";border-color:transparent}md-slider.md-THEME_NAME-theme.md-min[md-discrete] .md-sign{background-color:\"{{background-400}}\"}md-slider.md-THEME_NAME-theme.md-min[md-discrete] .md-sign:after{border-top-color:\"{{background-400}}\"}md-slider.md-THEME_NAME-theme.md-min[md-discrete][md-vertical] .md-sign:after{border-top-color:transparent;border-left-color:\"{{background-400}}\"}md-slider.md-THEME_NAME-theme .md-track.md-track-fill{background-color:\"{{accent-color}}\"}md-slider.md-THEME_NAME-theme .md-thumb:after{border-color:\"{{accent-color}}\";background-color:\"{{accent-color}}\"}md-slider.md-THEME_NAME-theme .md-sign{background-color:\"{{accent-color}}\"}md-slider.md-THEME_NAME-theme .md-sign:after{border-top-color:\"{{accent-color}}\"}md-slider.md-THEME_NAME-theme[md-vertical] .md-sign:after{border-top-color:transparent;border-left-color:\"{{accent-color}}\"}md-slider.md-THEME_NAME-theme .md-thumb-text{color:\"{{accent-contrast}}\"}md-slider.md-THEME_NAME-theme.md-warn .md-focus-ring{background-color:\"{{warn-200-0.38}}\"}md-slider.md-THEME_NAME-theme.md-warn .md-track.md-track-fill{background-color:\"{{warn-color}}\"}md-slider.md-THEME_NAME-theme.md-warn .md-thumb:after{border-color:\"{{warn-color}}\";background-color:\"{{warn-color}}\"}md-slider.md-THEME_NAME-theme.md-warn .md-sign{background-color:\"{{warn-color}}\"}md-slider.md-THEME_NAME-theme.md-warn .md-sign:after{border-top-color:\"{{warn-color}}\"}md-slider.md-THEME_NAME-theme.md-warn[md-vertical] .md-sign:after{border-top-color:transparent;border-left-color:\"{{warn-color}}\"}md-slider.md-THEME_NAME-theme.md-warn .md-thumb-text{color:\"{{warn-contrast}}\"}md-slider.md-THEME_NAME-theme.md-primary .md-focus-ring{background-color:\"{{primary-200-0.38}}\"}md-slider.md-THEME_NAME-theme.md-primary .md-track.md-track-fill{background-color:\"{{primary-color}}\"}md-slider.md-THEME_NAME-theme.md-primary .md-thumb:after{border-color:\"{{primary-color}}\";background-color:\"{{primary-color}}\"}md-slider.md-THEME_NAME-theme.md-primary .md-sign{background-color:\"{{primary-color}}\"}md-slider.md-THEME_NAME-theme.md-primary .md-sign:after{border-top-color:\"{{primary-color}}\"}md-slider.md-THEME_NAME-theme.md-primary[md-vertical] .md-sign:after{border-top-color:transparent;border-left-color:\"{{primary-color}}\"}md-slider.md-THEME_NAME-theme.md-primary .md-thumb-text{color:\"{{primary-contrast}}\"}md-slider.md-THEME_NAME-theme[disabled] .md-thumb:after{border-color:transparent}md-slider.md-THEME_NAME-theme[disabled]:not(.md-min) .md-thumb:after,md-slider.md-THEME_NAME-theme[disabled][md-discrete] .md-thumb:after{background-color:\"{{foreground-3}}\";border-color:transparent}md-slider.md-THEME_NAME-theme[disabled][readonly] .md-sign{background-color:\"{{background-400}}\"}md-slider.md-THEME_NAME-theme[disabled][readonly] .md-sign:after{border-top-color:\"{{background-400}}\"}md-slider.md-THEME_NAME-theme[disabled][readonly][md-vertical] .md-sign:after{border-top-color:transparent;border-left-color:\"{{background-400}}\"}md-slider.md-THEME_NAME-theme[disabled][readonly] .md-disabled-thumb{border-color:transparent;background-color:transparent}md-slider-container[disabled]>:first-child:not(md-slider),md-slider-container[disabled]>:last-child:not(md-slider){color:\"{{foreground-3}}\"}.md-subheader.md-THEME_NAME-theme{color:\"{{ foreground-2-0.23 }}\";background-color:\"{{background-default}}\"}.md-subheader.md-THEME_NAME-theme.md-primary{color:\"{{primary-color}}\"}.md-subheader.md-THEME_NAME-theme.md-accent{color:\"{{accent-color}}\"}.md-subheader.md-THEME_NAME-theme.md-warn{color:\"{{warn-color}}\"}md-switch.md-THEME_NAME-theme .md-ink-ripple{color:\"{{background-500}}\"}md-switch.md-THEME_NAME-theme .md-thumb{background-color:\"{{background-50}}\"}md-switch.md-THEME_NAME-theme .md-bar{background-color:\"{{background-500}}\"}md-switch.md-THEME_NAME-theme.md-checked .md-ink-ripple{color:\"{{accent-color}}\"}md-switch.md-THEME_NAME-theme.md-checked .md-thumb{background-color:\"{{accent-color}}\"}md-switch.md-THEME_NAME-theme.md-checked .md-bar{background-color:\"{{accent-color-0.5}}\"}md-switch.md-THEME_NAME-theme.md-checked.md-focused .md-thumb:before{background-color:\"{{accent-color-0.26}}\"}md-switch.md-THEME_NAME-theme.md-checked.md-primary .md-ink-ripple{color:\"{{primary-color}}\"}md-switch.md-THEME_NAME-theme.md-checked.md-primary .md-thumb{background-color:\"{{primary-color}}\"}md-switch.md-THEME_NAME-theme.md-checked.md-primary .md-bar{background-color:\"{{primary-color-0.5}}\"}md-switch.md-THEME_NAME-theme.md-checked.md-primary.md-focused .md-thumb:before{background-color:\"{{primary-color-0.26}}\"}md-switch.md-THEME_NAME-theme.md-checked.md-warn .md-ink-ripple{color:\"{{warn-color}}\"}md-switch.md-THEME_NAME-theme.md-checked.md-warn .md-thumb{background-color:\"{{warn-color}}\"}md-switch.md-THEME_NAME-theme.md-checked.md-warn .md-bar{background-color:\"{{warn-color-0.5}}\"}md-switch.md-THEME_NAME-theme.md-checked.md-warn.md-focused .md-thumb:before{background-color:\"{{warn-color-0.26}}\"}md-switch.md-THEME_NAME-theme[disabled] .md-thumb{background-color:\"{{background-400}}\"}md-switch.md-THEME_NAME-theme[disabled] .md-bar{background-color:\"{{foreground-4}}\"}md-tabs.md-THEME_NAME-theme md-tabs-wrapper{background-color:transparent;border-color:\"{{foreground-4}}\"}md-tabs.md-THEME_NAME-theme .md-paginator md-icon{color:\"{{primary-color}}\"}md-tabs.md-THEME_NAME-theme md-ink-bar{color:\"{{accent-color}}\";background:\"{{accent-color}}\"}md-tabs.md-THEME_NAME-theme .md-tab{color:\"{{foreground-2}}\"}md-tabs.md-THEME_NAME-theme .md-tab[disabled],md-tabs.md-THEME_NAME-theme .md-tab[disabled] md-icon{color:\"{{foreground-3}}\"}md-tabs.md-THEME_NAME-theme .md-tab.md-active,md-tabs.md-THEME_NAME-theme .md-tab.md-active md-icon,md-tabs.md-THEME_NAME-theme .md-tab.md-focused,md-tabs.md-THEME_NAME-theme .md-tab.md-focused md-icon{color:\"{{primary-color}}\"}md-tabs.md-THEME_NAME-theme .md-tab.md-focused{background:\"{{primary-color-0.1}}\"}md-tabs.md-THEME_NAME-theme .md-tab .md-ripple-container{color:\"{{accent-A100}}\"}md-tabs.md-THEME_NAME-theme.md-accent>md-tabs-wrapper{background-color:\"{{accent-color}}\"}md-tabs.md-THEME_NAME-theme.md-accent>md-tabs-wrapper>md-tabs-canvas>md-pagination-wrapper>md-tab-item:not([disabled]),md-tabs.md-THEME_NAME-theme.md-accent>md-tabs-wrapper>md-tabs-canvas>md-pagination-wrapper>md-tab-item:not([disabled]) md-icon{color:\"{{accent-A100}}\"}md-tabs.md-THEME_NAME-theme.md-accent>md-tabs-wrapper>md-tabs-canvas>md-pagination-wrapper>md-tab-item:not([disabled]).md-active,md-tabs.md-THEME_NAME-theme.md-accent>md-tabs-wrapper>md-tabs-canvas>md-pagination-wrapper>md-tab-item:not([disabled]).md-active md-icon,md-tabs.md-THEME_NAME-theme.md-accent>md-tabs-wrapper>md-tabs-canvas>md-pagination-wrapper>md-tab-item:not([disabled]).md-focused,md-tabs.md-THEME_NAME-theme.md-accent>md-tabs-wrapper>md-tabs-canvas>md-pagination-wrapper>md-tab-item:not([disabled]).md-focused md-icon{color:\"{{accent-contrast}}\"}md-tabs.md-THEME_NAME-theme.md-accent>md-tabs-wrapper>md-tabs-canvas>md-pagination-wrapper>md-tab-item:not([disabled]).md-focused{background:\"{{accent-contrast-0.1}}\"}md-tabs.md-THEME_NAME-theme.md-accent>md-tabs-wrapper>md-tabs-canvas>md-pagination-wrapper>md-ink-bar{color:\"{{primary-600-1}}\";background:\"{{primary-600-1}}\"}md-tabs.md-THEME_NAME-theme.md-primary>md-tabs-wrapper{background-color:\"{{primary-color}}\"}md-tabs.md-THEME_NAME-theme.md-primary>md-tabs-wrapper>md-tabs-canvas>md-pagination-wrapper>md-tab-item:not([disabled]),md-tabs.md-THEME_NAME-theme.md-primary>md-tabs-wrapper>md-tabs-canvas>md-pagination-wrapper>md-tab-item:not([disabled]) md-icon{color:\"{{primary-100}}\"}md-tabs.md-THEME_NAME-theme.md-primary>md-tabs-wrapper>md-tabs-canvas>md-pagination-wrapper>md-tab-item:not([disabled]).md-active,md-tabs.md-THEME_NAME-theme.md-primary>md-tabs-wrapper>md-tabs-canvas>md-pagination-wrapper>md-tab-item:not([disabled]).md-active md-icon,md-tabs.md-THEME_NAME-theme.md-primary>md-tabs-wrapper>md-tabs-canvas>md-pagination-wrapper>md-tab-item:not([disabled]).md-focused,md-tabs.md-THEME_NAME-theme.md-primary>md-tabs-wrapper>md-tabs-canvas>md-pagination-wrapper>md-tab-item:not([disabled]).md-focused md-icon{color:\"{{primary-contrast}}\"}md-tabs.md-THEME_NAME-theme.md-primary>md-tabs-wrapper>md-tabs-canvas>md-pagination-wrapper>md-tab-item:not([disabled]).md-focused{background:\"{{primary-contrast-0.1}}\"}md-tabs.md-THEME_NAME-theme.md-warn>md-tabs-wrapper{background-color:\"{{warn-color}}\"}md-tabs.md-THEME_NAME-theme.md-warn>md-tabs-wrapper>md-tabs-canvas>md-pagination-wrapper>md-tab-item:not([disabled]),md-tabs.md-THEME_NAME-theme.md-warn>md-tabs-wrapper>md-tabs-canvas>md-pagination-wrapper>md-tab-item:not([disabled]) md-icon{color:\"{{warn-100}}\"}md-tabs.md-THEME_NAME-theme.md-warn>md-tabs-wrapper>md-tabs-canvas>md-pagination-wrapper>md-tab-item:not([disabled]).md-active,md-tabs.md-THEME_NAME-theme.md-warn>md-tabs-wrapper>md-tabs-canvas>md-pagination-wrapper>md-tab-item:not([disabled]).md-active md-icon,md-tabs.md-THEME_NAME-theme.md-warn>md-tabs-wrapper>md-tabs-canvas>md-pagination-wrapper>md-tab-item:not([disabled]).md-focused,md-tabs.md-THEME_NAME-theme.md-warn>md-tabs-wrapper>md-tabs-canvas>md-pagination-wrapper>md-tab-item:not([disabled]).md-focused md-icon{color:\"{{warn-contrast}}\"}md-tabs.md-THEME_NAME-theme.md-warn>md-tabs-wrapper>md-tabs-canvas>md-pagination-wrapper>md-tab-item:not([disabled]).md-focused{background:\"{{warn-contrast-0.1}}\"}md-toolbar>md-tabs.md-THEME_NAME-theme>md-tabs-wrapper{background-color:\"{{primary-color}}\"}md-toolbar>md-tabs.md-THEME_NAME-theme>md-tabs-wrapper>md-tabs-canvas>md-pagination-wrapper>md-tab-item:not([disabled]),md-toolbar>md-tabs.md-THEME_NAME-theme>md-tabs-wrapper>md-tabs-canvas>md-pagination-wrapper>md-tab-item:not([disabled]) md-icon{color:\"{{primary-100}}\"}md-toolbar>md-tabs.md-THEME_NAME-theme>md-tabs-wrapper>md-tabs-canvas>md-pagination-wrapper>md-tab-item:not([disabled]).md-active,md-toolbar>md-tabs.md-THEME_NAME-theme>md-tabs-wrapper>md-tabs-canvas>md-pagination-wrapper>md-tab-item:not([disabled]).md-active md-icon,md-toolbar>md-tabs.md-THEME_NAME-theme>md-tabs-wrapper>md-tabs-canvas>md-pagination-wrapper>md-tab-item:not([disabled]).md-focused,md-toolbar>md-tabs.md-THEME_NAME-theme>md-tabs-wrapper>md-tabs-canvas>md-pagination-wrapper>md-tab-item:not([disabled]).md-focused md-icon{color:\"{{primary-contrast}}\"}md-toolbar>md-tabs.md-THEME_NAME-theme>md-tabs-wrapper>md-tabs-canvas>md-pagination-wrapper>md-tab-item:not([disabled]).md-focused{background:\"{{primary-contrast-0.1}}\"}md-toolbar.md-accent>md-tabs.md-THEME_NAME-theme>md-tabs-wrapper{background-color:\"{{accent-color}}\"}md-toolbar.md-accent>md-tabs.md-THEME_NAME-theme>md-tabs-wrapper>md-tabs-canvas>md-pagination-wrapper>md-tab-item:not([disabled]),md-toolbar.md-accent>md-tabs.md-THEME_NAME-theme>md-tabs-wrapper>md-tabs-canvas>md-pagination-wrapper>md-tab-item:not([disabled]) md-icon{color:\"{{accent-A100}}\"}md-toolbar.md-accent>md-tabs.md-THEME_NAME-theme>md-tabs-wrapper>md-tabs-canvas>md-pagination-wrapper>md-tab-item:not([disabled]).md-active,md-toolbar.md-accent>md-tabs.md-THEME_NAME-theme>md-tabs-wrapper>md-tabs-canvas>md-pagination-wrapper>md-tab-item:not([disabled]).md-active md-icon,md-toolbar.md-accent>md-tabs.md-THEME_NAME-theme>md-tabs-wrapper>md-tabs-canvas>md-pagination-wrapper>md-tab-item:not([disabled]).md-focused,md-toolbar.md-accent>md-tabs.md-THEME_NAME-theme>md-tabs-wrapper>md-tabs-canvas>md-pagination-wrapper>md-tab-item:not([disabled]).md-focused md-icon{color:\"{{accent-contrast}}\"}md-toolbar.md-accent>md-tabs.md-THEME_NAME-theme>md-tabs-wrapper>md-tabs-canvas>md-pagination-wrapper>md-tab-item:not([disabled]).md-focused{background:\"{{accent-contrast-0.1}}\"}md-toolbar.md-accent>md-tabs.md-THEME_NAME-theme>md-tabs-wrapper>md-tabs-canvas>md-pagination-wrapper>md-ink-bar{color:\"{{primary-600-1}}\";background:\"{{primary-600-1}}\"}md-toolbar.md-warn>md-tabs.md-THEME_NAME-theme>md-tabs-wrapper{background-color:\"{{warn-color}}\"}md-toolbar.md-warn>md-tabs.md-THEME_NAME-theme>md-tabs-wrapper>md-tabs-canvas>md-pagination-wrapper>md-tab-item:not([disabled]),md-toolbar.md-warn>md-tabs.md-THEME_NAME-theme>md-tabs-wrapper>md-tabs-canvas>md-pagination-wrapper>md-tab-item:not([disabled]) md-icon{color:\"{{warn-100}}\"}md-toolbar.md-warn>md-tabs.md-THEME_NAME-theme>md-tabs-wrapper>md-tabs-canvas>md-pagination-wrapper>md-tab-item:not([disabled]).md-active,md-toolbar.md-warn>md-tabs.md-THEME_NAME-theme>md-tabs-wrapper>md-tabs-canvas>md-pagination-wrapper>md-tab-item:not([disabled]).md-active md-icon,md-toolbar.md-warn>md-tabs.md-THEME_NAME-theme>md-tabs-wrapper>md-tabs-canvas>md-pagination-wrapper>md-tab-item:not([disabled]).md-focused,md-toolbar.md-warn>md-tabs.md-THEME_NAME-theme>md-tabs-wrapper>md-tabs-canvas>md-pagination-wrapper>md-tab-item:not([disabled]).md-focused md-icon{color:\"{{warn-contrast}}\"}md-toolbar.md-warn>md-tabs.md-THEME_NAME-theme>md-tabs-wrapper>md-tabs-canvas>md-pagination-wrapper>md-tab-item:not([disabled]).md-focused{background:\"{{warn-contrast-0.1}}\"}md-toast.md-THEME_NAME-theme .md-toast-content{background-color:#323232;color:\"{{background-50}}\"}md-toast.md-THEME_NAME-theme .md-toast-content .md-button{color:\"{{background-50}}\"}md-toast.md-THEME_NAME-theme .md-toast-content .md-button.md-highlight{color:\"{{accent-color}}\"}md-toast.md-THEME_NAME-theme .md-toast-content .md-button.md-highlight.md-primary{color:\"{{primary-color}}\"}md-toast.md-THEME_NAME-theme .md-toast-content .md-button.md-highlight.md-warn{color:\"{{warn-color}}\"}md-toolbar.md-THEME_NAME-theme:not(.md-menu-toolbar){background-color:\"{{primary-color}}\";color:\"{{primary-contrast}}\"}md-toolbar.md-THEME_NAME-theme:not(.md-menu-toolbar) md-icon{color:\"{{primary-contrast}}\";fill:\"{{primary-contrast}}\"}md-toolbar.md-THEME_NAME-theme:not(.md-menu-toolbar) .md-button[disabled] md-icon{color:\"{{primary-contrast-0.26}}\";fill:\"{{primary-contrast-0.26}}\"}md-toolbar.md-THEME_NAME-theme:not(.md-menu-toolbar).md-accent{background-color:\"{{accent-color}}\";color:\"{{accent-contrast}}\"}md-toolbar.md-THEME_NAME-theme:not(.md-menu-toolbar).md-accent .md-ink-ripple{color:\"{{accent-contrast}}\"}md-toolbar.md-THEME_NAME-theme:not(.md-menu-toolbar).md-accent md-icon{color:\"{{accent-contrast}}\";fill:\"{{accent-contrast}}\"}md-toolbar.md-THEME_NAME-theme:not(.md-menu-toolbar).md-accent .md-button[disabled] md-icon{color:\"{{accent-contrast-0.26}}\";fill:\"{{accent-contrast-0.26}}\"}md-toolbar.md-THEME_NAME-theme:not(.md-menu-toolbar).md-warn{background-color:\"{{warn-color}}\";color:\"{{warn-contrast}}\"}.md-panel.md-tooltip.md-THEME_NAME-theme{color:\"{{background-700-contrast}}\";background-color:\"{{background-700}}\"}body.md-THEME_NAME-theme,html.md-THEME_NAME-theme{color:\"{{foreground-1}}\";background-color:\"{{background-color}}\"}"); +angular.module("material.core").constant("$MD_THEME_CSS", "md-autocomplete.md-THEME_NAME-theme{background:\"{{background-A100}}\"}md-autocomplete.md-THEME_NAME-theme[disabled]:not([md-floating-label]){background:\"{{background-100}}\"}md-autocomplete.md-THEME_NAME-theme button md-icon path{fill:\"{{background-600}}\"}md-autocomplete.md-THEME_NAME-theme button:after{background:\"{{background-600-0.3}}\"}.md-autocomplete-suggestions-container.md-THEME_NAME-theme{background:\"{{background-A100}}\"}.md-autocomplete-suggestions-container.md-THEME_NAME-theme li{color:\"{{background-900}}\"}.md-autocomplete-suggestions-container.md-THEME_NAME-theme li .highlight{color:\"{{background-600}}\"}.md-autocomplete-suggestions-container.md-THEME_NAME-theme li.selected,.md-autocomplete-suggestions-container.md-THEME_NAME-theme li:hover{background:\"{{background-200}}\"}md-backdrop{background-color:\"{{background-900-0.0}}\"}md-backdrop.md-opaque.md-THEME_NAME-theme{background-color:\"{{background-900-1.0}}\"}.md-button.md-THEME_NAME-theme:not([disabled]).md-focused,.md-button.md-THEME_NAME-theme:not([disabled]):hover{background-color:\"{{background-500-0.2}}\"}.md-button.md-THEME_NAME-theme:not([disabled]).md-icon-button:hover{background-color:transparent}.md-button.md-THEME_NAME-theme.md-fab md-icon{color:\"{{accent-contrast}}\"}.md-button.md-THEME_NAME-theme.md-primary{color:\"{{primary-color}}\"}.md-button.md-THEME_NAME-theme.md-primary.md-fab,.md-button.md-THEME_NAME-theme.md-primary.md-raised{color:\"{{primary-contrast}}\";background-color:\"{{primary-color}}\"}.md-button.md-THEME_NAME-theme.md-primary.md-fab:not([disabled]) md-icon,.md-button.md-THEME_NAME-theme.md-primary.md-raised:not([disabled]) md-icon{color:\"{{primary-contrast}}\"}.md-button.md-THEME_NAME-theme.md-primary.md-fab:not([disabled]).md-focused,.md-button.md-THEME_NAME-theme.md-primary.md-fab:not([disabled]):hover,.md-button.md-THEME_NAME-theme.md-primary.md-raised:not([disabled]).md-focused,.md-button.md-THEME_NAME-theme.md-primary.md-raised:not([disabled]):hover{background-color:\"{{primary-600}}\"}.md-button.md-THEME_NAME-theme.md-primary:not([disabled]) md-icon{color:\"{{primary-color}}\"}.md-button.md-THEME_NAME-theme.md-fab{background-color:\"{{accent-color}}\";color:\"{{accent-contrast}}\"}.md-button.md-THEME_NAME-theme.md-fab:not([disabled]) .md-icon{color:\"{{accent-contrast}}\"}.md-button.md-THEME_NAME-theme.md-fab:not([disabled]).md-focused,.md-button.md-THEME_NAME-theme.md-fab:not([disabled]):hover{background-color:\"{{accent-A700}}\"}.md-button.md-THEME_NAME-theme.md-raised{color:\"{{background-900}}\";background-color:\"{{background-50}}\"}.md-button.md-THEME_NAME-theme.md-raised:not([disabled]) md-icon{color:\"{{background-900}}\"}.md-button.md-THEME_NAME-theme.md-raised:not([disabled]):hover{background-color:\"{{background-50}}\"}.md-button.md-THEME_NAME-theme.md-raised:not([disabled]).md-focused{background-color:\"{{background-200}}\"}.md-button.md-THEME_NAME-theme.md-warn{color:\"{{warn-color}}\"}.md-button.md-THEME_NAME-theme.md-warn.md-fab,.md-button.md-THEME_NAME-theme.md-warn.md-raised{color:\"{{warn-contrast}}\";background-color:\"{{warn-color}}\"}.md-button.md-THEME_NAME-theme.md-warn.md-fab:not([disabled]) md-icon,.md-button.md-THEME_NAME-theme.md-warn.md-raised:not([disabled]) md-icon{color:\"{{warn-contrast}}\"}.md-button.md-THEME_NAME-theme.md-warn.md-fab:not([disabled]).md-focused,.md-button.md-THEME_NAME-theme.md-warn.md-fab:not([disabled]):hover,.md-button.md-THEME_NAME-theme.md-warn.md-raised:not([disabled]).md-focused,.md-button.md-THEME_NAME-theme.md-warn.md-raised:not([disabled]):hover{background-color:\"{{warn-600}}\"}.md-button.md-THEME_NAME-theme.md-warn:not([disabled]) md-icon{color:\"{{warn-color}}\"}.md-button.md-THEME_NAME-theme.md-accent{color:\"{{accent-color}}\"}.md-button.md-THEME_NAME-theme.md-accent.md-fab,.md-button.md-THEME_NAME-theme.md-accent.md-raised{color:\"{{accent-contrast}}\";background-color:\"{{accent-color}}\"}.md-button.md-THEME_NAME-theme.md-accent.md-fab:not([disabled]) md-icon,.md-button.md-THEME_NAME-theme.md-accent.md-raised:not([disabled]) md-icon{color:\"{{accent-contrast}}\"}.md-button.md-THEME_NAME-theme.md-accent.md-fab:not([disabled]).md-focused,.md-button.md-THEME_NAME-theme.md-accent.md-fab:not([disabled]):hover,.md-button.md-THEME_NAME-theme.md-accent.md-raised:not([disabled]).md-focused,.md-button.md-THEME_NAME-theme.md-accent.md-raised:not([disabled]):hover{background-color:\"{{accent-A700}}\"}.md-button.md-THEME_NAME-theme.md-accent:not([disabled]) md-icon{color:\"{{accent-color}}\"}.md-button.md-THEME_NAME-theme.md-accent[disabled],.md-button.md-THEME_NAME-theme.md-fab[disabled],.md-button.md-THEME_NAME-theme.md-raised[disabled],.md-button.md-THEME_NAME-theme.md-warn[disabled],.md-button.md-THEME_NAME-theme[disabled]{color:\"{{foreground-3}}\";cursor:default}.md-button.md-THEME_NAME-theme.md-accent[disabled] md-icon,.md-button.md-THEME_NAME-theme.md-fab[disabled] md-icon,.md-button.md-THEME_NAME-theme.md-raised[disabled] md-icon,.md-button.md-THEME_NAME-theme.md-warn[disabled] md-icon,.md-button.md-THEME_NAME-theme[disabled] md-icon{color:\"{{foreground-3}}\"}.md-button.md-THEME_NAME-theme.md-fab[disabled],.md-button.md-THEME_NAME-theme.md-raised[disabled]{background-color:\"{{foreground-4}}\"}.md-button.md-THEME_NAME-theme[disabled]{background-color:transparent}._md a.md-THEME_NAME-theme:not(.md-button).md-primary{color:\"{{primary-color}}\"}._md a.md-THEME_NAME-theme:not(.md-button).md-primary:hover{color:\"{{primary-700}}\"}._md a.md-THEME_NAME-theme:not(.md-button).md-accent{color:\"{{accent-color}}\"}._md a.md-THEME_NAME-theme:not(.md-button).md-accent:hover{color:\"{{accent-A700}}\"}._md a.md-THEME_NAME-theme:not(.md-button).md-warn{color:\"{{warn-color}}\"}._md a.md-THEME_NAME-theme:not(.md-button).md-warn:hover{color:\"{{warn-700}}\"}md-bottom-sheet.md-THEME_NAME-theme{background-color:\"{{background-50}}\";border-top-color:\"{{background-300}}\"}md-bottom-sheet.md-THEME_NAME-theme.md-list md-list-item{color:\"{{foreground-1}}\"}md-bottom-sheet.md-THEME_NAME-theme .md-subheader{background-color:\"{{background-50}}\";color:\"{{foreground-1}}\"}md-card.md-THEME_NAME-theme{color:\"{{foreground-1}}\";background-color:\"{{background-hue-1}}\";border-radius:2px}md-card.md-THEME_NAME-theme .md-card-image{border-radius:2px 2px 0 0}md-card.md-THEME_NAME-theme md-card-header md-card-avatar md-icon{color:\"{{background-color}}\";background-color:\"{{foreground-3}}\"}md-card.md-THEME_NAME-theme md-card-header md-card-header-text .md-subhead,md-card.md-THEME_NAME-theme md-card-title md-card-title-text:not(:only-child) .md-subhead{color:\"{{foreground-2}}\"}md-checkbox.md-THEME_NAME-theme .md-ripple{color:\"{{accent-A700}}\"}md-checkbox.md-THEME_NAME-theme.md-checked .md-ripple{color:\"{{background-600}}\"}md-checkbox.md-THEME_NAME-theme.md-checked.md-focused .md-container:before{background-color:\"{{accent-color-0.26}}\"}md-checkbox.md-THEME_NAME-theme .md-ink-ripple{color:\"{{foreground-2}}\"}md-checkbox.md-THEME_NAME-theme.md-checked .md-ink-ripple{color:\"{{accent-color-0.87}}\"}md-checkbox.md-THEME_NAME-theme:not(.md-checked) .md-icon{border-color:\"{{foreground-2}}\"}md-checkbox.md-THEME_NAME-theme.md-checked .md-icon{background-color:\"{{accent-color-0.87}}\"}md-checkbox.md-THEME_NAME-theme.md-checked .md-icon:after{border-color:\"{{accent-contrast-0.87}}\"}md-checkbox.md-THEME_NAME-theme:not([disabled]).md-primary .md-ripple{color:\"{{primary-600}}\"}md-checkbox.md-THEME_NAME-theme:not([disabled]).md-primary.md-checked .md-ripple{color:\"{{background-600}}\"}md-checkbox.md-THEME_NAME-theme:not([disabled]).md-primary .md-ink-ripple{color:\"{{foreground-2}}\"}md-checkbox.md-THEME_NAME-theme:not([disabled]).md-primary.md-checked .md-ink-ripple{color:\"{{primary-color-0.87}}\"}md-checkbox.md-THEME_NAME-theme:not([disabled]).md-primary:not(.md-checked) .md-icon{border-color:\"{{foreground-2}}\"}md-checkbox.md-THEME_NAME-theme:not([disabled]).md-primary.md-checked .md-icon{background-color:\"{{primary-color-0.87}}\"}md-checkbox.md-THEME_NAME-theme:not([disabled]).md-primary.md-checked.md-focused .md-container:before{background-color:\"{{primary-color-0.26}}\"}md-checkbox.md-THEME_NAME-theme:not([disabled]).md-primary.md-checked .md-icon:after{border-color:\"{{primary-contrast-0.87}}\"}md-checkbox.md-THEME_NAME-theme:not([disabled]).md-primary .md-indeterminate[disabled] .md-container{color:\"{{foreground-3}}\"}md-checkbox.md-THEME_NAME-theme:not([disabled]).md-warn .md-ripple{color:\"{{warn-600}}\"}md-checkbox.md-THEME_NAME-theme:not([disabled]).md-warn .md-ink-ripple{color:\"{{foreground-2}}\"}md-checkbox.md-THEME_NAME-theme:not([disabled]).md-warn.md-checked .md-ink-ripple{color:\"{{warn-color-0.87}}\"}md-checkbox.md-THEME_NAME-theme:not([disabled]).md-warn:not(.md-checked) .md-icon{border-color:\"{{foreground-2}}\"}md-checkbox.md-THEME_NAME-theme:not([disabled]).md-warn.md-checked .md-icon{background-color:\"{{warn-color-0.87}}\"}md-checkbox.md-THEME_NAME-theme:not([disabled]).md-warn.md-checked.md-focused:not([disabled]) .md-container:before{background-color:\"{{warn-color-0.26}}\"}md-checkbox.md-THEME_NAME-theme:not([disabled]).md-warn.md-checked .md-icon:after{border-color:\"{{background-200}}\"}md-checkbox.md-THEME_NAME-theme[disabled]:not(.md-checked) .md-icon{border-color:\"{{foreground-3}}\"}md-checkbox.md-THEME_NAME-theme[disabled].md-checked .md-icon{background-color:\"{{foreground-3}}\"}md-checkbox.md-THEME_NAME-theme[disabled].md-checked .md-icon:after{border-color:\"{{background-200}}\"}md-checkbox.md-THEME_NAME-theme[disabled] .md-icon:after{border-color:\"{{foreground-3}}\"}md-checkbox.md-THEME_NAME-theme[disabled] .md-label{color:\"{{foreground-3}}\"}md-chips.md-THEME_NAME-theme .md-chips{box-shadow:0 1px \"{{foreground-4}}\"}md-chips.md-THEME_NAME-theme .md-chips.md-focused{box-shadow:0 2px \"{{primary-color}}\"}md-chips.md-THEME_NAME-theme .md-chips .md-chip-input-container input{color:\"{{foreground-1}}\"}md-chips.md-THEME_NAME-theme .md-chips .md-chip-input-container input:-moz-placeholder,md-chips.md-THEME_NAME-theme .md-chips .md-chip-input-container input::-moz-placeholder{color:\"{{foreground-3}}\"}md-chips.md-THEME_NAME-theme .md-chips .md-chip-input-container input:-ms-input-placeholder{color:\"{{foreground-3}}\"}md-chips.md-THEME_NAME-theme .md-chips .md-chip-input-container input::-webkit-input-placeholder{color:\"{{foreground-3}}\"}md-chips.md-THEME_NAME-theme md-chip{background:\"{{background-300}}\";color:\"{{background-800}}\"}md-chips.md-THEME_NAME-theme md-chip md-icon{color:\"{{background-700}}\"}md-chips.md-THEME_NAME-theme md-chip.md-focused{background:\"{{primary-color}}\";color:\"{{primary-contrast}}\"}md-chips.md-THEME_NAME-theme md-chip.md-focused md-icon{color:\"{{primary-contrast}}\"}md-chips.md-THEME_NAME-theme md-chip._md-chip-editing{background:transparent;color:\"{{background-800}}\"}md-chips.md-THEME_NAME-theme md-chip-remove .md-button md-icon path{fill:\"{{background-500}}\"}.md-contact-suggestion span.md-contact-email{color:\"{{background-400}}\"}md-content.md-THEME_NAME-theme{color:\"{{foreground-1}}\";background-color:\"{{background-default}}\"}md-dialog.md-THEME_NAME-theme{border-radius:4px;background-color:\"{{background-hue-1}}\";color:\"{{foreground-1}}\"}md-dialog.md-THEME_NAME-theme.md-content-overflow .md-actions,md-dialog.md-THEME_NAME-theme.md-content-overflow md-dialog-actions{border-top-color:\"{{foreground-4}}\"}.md-calendar.md-THEME_NAME-theme{background:\"{{background-A100}}\";color:\"{{background-A200-0.87}}\"}.md-calendar.md-THEME_NAME-theme tr:last-child td{border-bottom-color:\"{{background-200}}\"}.md-THEME_NAME-theme .md-calendar-day-header{background:\"{{background-300}}\";color:\"{{background-A200-0.87}}\"}.md-THEME_NAME-theme .md-calendar-date.md-calendar-date-today .md-calendar-date-selection-indicator{border:1px solid \"{{primary-500}}\"}.md-THEME_NAME-theme .md-calendar-date.md-calendar-date-today.md-calendar-date-disabled{color:\"{{primary-500-0.6}}\"}.md-calendar-date.md-focus .md-THEME_NAME-theme .md-calendar-date-selection-indicator,.md-THEME_NAME-theme .md-calendar-date-selection-indicator:hover{background:\"{{background-300}}\"}.md-THEME_NAME-theme .md-calendar-date.md-calendar-selected-date .md-calendar-date-selection-indicator,.md-THEME_NAME-theme .md-calendar-date.md-focus.md-calendar-selected-date .md-calendar-date-selection-indicator{background:\"{{primary-500}}\";color:\"{{primary-500-contrast}}\";border-color:transparent}.md-THEME_NAME-theme .md-calendar-date-disabled,.md-THEME_NAME-theme .md-calendar-month-label-disabled{color:\"{{background-A200-0.435}}\"}.md-THEME_NAME-theme .md-datepicker-input{color:\"{{foreground-1}}\"}.md-THEME_NAME-theme .md-datepicker-input:-moz-placeholder,.md-THEME_NAME-theme .md-datepicker-input::-moz-placeholder{color:\"{{foreground-3}}\"}.md-THEME_NAME-theme .md-datepicker-input:-ms-input-placeholder{color:\"{{foreground-3}}\"}.md-THEME_NAME-theme .md-datepicker-input::-webkit-input-placeholder{color:\"{{foreground-3}}\"}.md-THEME_NAME-theme .md-datepicker-input-container{border-bottom-color:\"{{foreground-4}}\"}.md-THEME_NAME-theme .md-datepicker-input-container.md-datepicker-focused{border-bottom-color:\"{{primary-color}}\"}.md-accent .md-THEME_NAME-theme .md-datepicker-input-container.md-datepicker-focused{border-bottom-color:\"{{accent-color}}\"}.md-THEME_NAME-theme .md-datepicker-input-container.md-datepicker-invalid,.md-warn .md-THEME_NAME-theme .md-datepicker-input-container.md-datepicker-focused{border-bottom-color:\"{{warn-A700}}\"}.md-THEME_NAME-theme .md-datepicker-calendar-pane{border-color:\"{{background-hue-1}}\"}.md-THEME_NAME-theme .md-datepicker-triangle-button .md-datepicker-expand-triangle{border-top-color:\"{{foreground-2}}\"}.md-THEME_NAME-theme .md-datepicker-open .md-datepicker-calendar-icon{color:\"{{primary-color}}\"}.md-accent .md-THEME_NAME-theme .md-datepicker-open .md-datepicker-calendar-icon,.md-THEME_NAME-theme .md-datepicker-open.md-accent .md-datepicker-calendar-icon{color:\"{{accent-color}}\"}.md-THEME_NAME-theme .md-datepicker-open.md-warn .md-datepicker-calendar-icon,.md-warn .md-THEME_NAME-theme .md-datepicker-open .md-datepicker-calendar-icon{color:\"{{warn-A700}}\"}.md-THEME_NAME-theme .md-datepicker-calendar{background:\"{{background-A100}}\"}.md-THEME_NAME-theme .md-datepicker-input-mask-opaque{box-shadow:0 0 0 9999px \"{{background-hue-1}}\"}.md-THEME_NAME-theme .md-datepicker-open .md-datepicker-input-container{background:\"{{background-hue-1}}\"}md-divider.md-THEME_NAME-theme{border-top-color:\"{{foreground-4}}\"}.layout-gt-lg-row>md-divider.md-THEME_NAME-theme,.layout-gt-md-row>md-divider.md-THEME_NAME-theme,.layout-gt-sm-row>md-divider.md-THEME_NAME-theme,.layout-gt-xs-row>md-divider.md-THEME_NAME-theme,.layout-lg-row>md-divider.md-THEME_NAME-theme,.layout-md-row>md-divider.md-THEME_NAME-theme,.layout-row>md-divider.md-THEME_NAME-theme,.layout-sm-row>md-divider.md-THEME_NAME-theme,.layout-xl-row>md-divider.md-THEME_NAME-theme,.layout-xs-row>md-divider.md-THEME_NAME-theme{border-right-color:\"{{foreground-4}}\"}md-icon.md-THEME_NAME-theme{color:\"{{foreground-2}}\"}md-icon.md-THEME_NAME-theme.md-primary{color:\"{{primary-color}}\"}md-icon.md-THEME_NAME-theme.md-accent{color:\"{{accent-color}}\"}md-icon.md-THEME_NAME-theme.md-warn{color:\"{{warn-color}}\"}md-input-container.md-THEME_NAME-theme .md-input{color:\"{{foreground-1}}\";border-color:\"{{foreground-4}}\"}md-input-container.md-THEME_NAME-theme .md-input:-moz-placeholder,md-input-container.md-THEME_NAME-theme .md-input::-moz-placeholder{color:\"{{foreground-3}}\"}md-input-container.md-THEME_NAME-theme .md-input:-ms-input-placeholder{color:\"{{foreground-3}}\"}md-input-container.md-THEME_NAME-theme .md-input::-webkit-input-placeholder{color:\"{{foreground-3}}\"}md-input-container.md-THEME_NAME-theme>md-icon{color:\"{{foreground-1}}\"}md-input-container.md-THEME_NAME-theme .md-placeholder,md-input-container.md-THEME_NAME-theme label{color:\"{{foreground-3}}\"}md-input-container.md-THEME_NAME-theme label.md-required:after{color:\"{{warn-A700}}\"}md-input-container.md-THEME_NAME-theme:not(.md-input-focused):not(.md-input-invalid) label.md-required:after{color:\"{{foreground-2}}\"}md-input-container.md-THEME_NAME-theme .md-input-message-animation,md-input-container.md-THEME_NAME-theme .md-input-messages-animation{color:\"{{warn-A700}}\"}md-input-container.md-THEME_NAME-theme .md-input-message-animation .md-char-counter,md-input-container.md-THEME_NAME-theme .md-input-messages-animation .md-char-counter{color:\"{{foreground-1}}\"}md-input-container.md-THEME_NAME-theme.md-input-focused .md-input:-moz-placeholder,md-input-container.md-THEME_NAME-theme.md-input-focused .md-input::-moz-placeholder{color:\"{{foreground-2}}\"}md-input-container.md-THEME_NAME-theme.md-input-focused .md-input:-ms-input-placeholder{color:\"{{foreground-2}}\"}md-input-container.md-THEME_NAME-theme.md-input-focused .md-input::-webkit-input-placeholder{color:\"{{foreground-2}}\"}md-input-container.md-THEME_NAME-theme:not(.md-input-invalid).md-input-has-value label{color:\"{{foreground-2}}\"}md-input-container.md-THEME_NAME-theme:not(.md-input-invalid).md-input-focused .md-input,md-input-container.md-THEME_NAME-theme:not(.md-input-invalid).md-input-resized .md-input{border-color:\"{{primary-color}}\"}md-input-container.md-THEME_NAME-theme:not(.md-input-invalid).md-input-focused label,md-input-container.md-THEME_NAME-theme:not(.md-input-invalid).md-input-focused md-icon{color:\"{{primary-color}}\"}md-input-container.md-THEME_NAME-theme:not(.md-input-invalid).md-input-focused.md-accent .md-input{border-color:\"{{accent-color}}\"}md-input-container.md-THEME_NAME-theme:not(.md-input-invalid).md-input-focused.md-accent label,md-input-container.md-THEME_NAME-theme:not(.md-input-invalid).md-input-focused.md-accent md-icon{color:\"{{accent-color}}\"}md-input-container.md-THEME_NAME-theme:not(.md-input-invalid).md-input-focused.md-warn .md-input{border-color:\"{{warn-A700}}\"}md-input-container.md-THEME_NAME-theme:not(.md-input-invalid).md-input-focused.md-warn label,md-input-container.md-THEME_NAME-theme:not(.md-input-invalid).md-input-focused.md-warn md-icon{color:\"{{warn-A700}}\"}md-input-container.md-THEME_NAME-theme.md-input-invalid .md-input{border-color:\"{{warn-A700}}\"}md-input-container.md-THEME_NAME-theme.md-input-invalid .md-char-counter,md-input-container.md-THEME_NAME-theme.md-input-invalid .md-input-message-animation,md-input-container.md-THEME_NAME-theme.md-input-invalid label{color:\"{{warn-A700}}\"}[disabled] md-input-container.md-THEME_NAME-theme .md-input,md-input-container.md-THEME_NAME-theme .md-input[disabled]{border-bottom-color:transparent;color:\"{{foreground-3}}\";background-image:linear-gradient(90deg,\"{{foreground-3}}\" 0,\"{{foreground-3}}\" 33%,transparent 0);background-image:-ms-linear-gradient(left,transparent 0,\"{{foreground-3}}\" 100%)}md-list.md-THEME_NAME-theme md-list-item.md-2-line .md-list-item-text h3,md-list.md-THEME_NAME-theme md-list-item.md-2-line .md-list-item-text h4,md-list.md-THEME_NAME-theme md-list-item.md-3-line .md-list-item-text h3,md-list.md-THEME_NAME-theme md-list-item.md-3-line .md-list-item-text h4{color:\"{{foreground-1}}\"}md-list.md-THEME_NAME-theme md-list-item.md-2-line .md-list-item-text p,md-list.md-THEME_NAME-theme md-list-item.md-3-line .md-list-item-text p{color:\"{{foreground-2}}\"}md-list.md-THEME_NAME-theme .md-proxy-focus.md-focused div.md-no-style{background-color:\"{{background-100}}\"}md-list.md-THEME_NAME-theme md-list-item .md-avatar-icon{background-color:\"{{foreground-3}}\";color:\"{{background-color}}\"}md-list.md-THEME_NAME-theme md-list-item>md-icon{color:\"{{foreground-2}}\"}md-list.md-THEME_NAME-theme md-list-item>md-icon.md-highlight{color:\"{{primary-color}}\"}md-list.md-THEME_NAME-theme md-list-item>md-icon.md-highlight.md-accent{color:\"{{accent-color}}\"}md-menu-content.md-THEME_NAME-theme{background-color:\"{{background-A100}}\"}md-menu-content.md-THEME_NAME-theme md-menu-item{color:\"{{background-A200-0.87}}\"}md-menu-content.md-THEME_NAME-theme md-menu-item md-icon{color:\"{{background-A200-0.54}}\"}md-menu-content.md-THEME_NAME-theme md-menu-item .md-button[disabled],md-menu-content.md-THEME_NAME-theme md-menu-item .md-button[disabled] md-icon{color:\"{{background-A200-0.25}}\"}md-menu-content.md-THEME_NAME-theme md-menu-divider{background-color:\"{{background-A200-0.11}}\"}md-menu-bar.md-THEME_NAME-theme>button.md-button{color:\"{{foreground-2}}\";border-radius:2px}md-menu-bar.md-THEME_NAME-theme md-menu.md-open>button,md-menu-bar.md-THEME_NAME-theme md-menu>button:focus{outline:none;background:\"{{background-200}}\"}md-menu-bar.md-THEME_NAME-theme.md-open:not(.md-keyboard-mode) md-menu:hover>button{background-color:\"{{ background-500-0.2}}\"}md-menu-bar.md-THEME_NAME-theme:not(.md-keyboard-mode):not(.md-open) md-menu button:focus,md-menu-bar.md-THEME_NAME-theme:not(.md-keyboard-mode):not(.md-open) md-menu button:hover{background:transparent}md-menu-content.md-THEME_NAME-theme .md-menu>.md-button:after{color:\"{{background-A200-0.54}}\"}md-menu-content.md-THEME_NAME-theme .md-menu.md-open>.md-button{background-color:\"{{ background-500-0.2}}\"}md-toolbar.md-THEME_NAME-theme.md-menu-toolbar{background-color:\"{{background-A100}}\";color:\"{{background-A200}}\"}md-toolbar.md-THEME_NAME-theme.md-menu-toolbar md-toolbar-filler{background-color:\"{{primary-color}}\";color:\"{{background-A100-0.87}}\"}md-toolbar.md-THEME_NAME-theme.md-menu-toolbar md-toolbar-filler md-icon{color:\"{{background-A100-0.87}}\"}md-nav-bar.md-THEME_NAME-theme .md-nav-bar{background-color:transparent;border-color:\"{{foreground-4}}\"}md-nav-bar.md-THEME_NAME-theme .md-button._md-nav-button.md-unselected{color:\"{{foreground-2}}\"}md-nav-bar.md-THEME_NAME-theme md-nav-ink-bar{color:\"{{accent-color}}\";background:\"{{accent-color}}\"}md-nav-bar.md-THEME_NAME-theme.md-accent>.md-nav-bar{background-color:\"{{accent-color}}\"}md-nav-bar.md-THEME_NAME-theme.md-accent>.md-nav-bar .md-button._md-nav-button{color:\"{{accent-A100}}\"}md-nav-bar.md-THEME_NAME-theme.md-accent>.md-nav-bar .md-button._md-nav-button.md-active,md-nav-bar.md-THEME_NAME-theme.md-accent>.md-nav-bar .md-button._md-nav-button.md-focused{color:\"{{accent-contrast}}\"}md-nav-bar.md-THEME_NAME-theme.md-accent>.md-nav-bar .md-button._md-nav-button.md-focused{background:\"{{accent-contrast-0.1}}\"}md-nav-bar.md-THEME_NAME-theme.md-accent>.md-nav-bar md-nav-ink-bar{color:\"{{primary-600-1}}\";background:\"{{primary-600-1}}\"}md-nav-bar.md-THEME_NAME-theme.md-warn>.md-nav-bar{background-color:\"{{warn-color}}\"}md-nav-bar.md-THEME_NAME-theme.md-warn>.md-nav-bar .md-button._md-nav-button{color:\"{{warn-100}}\"}md-nav-bar.md-THEME_NAME-theme.md-warn>.md-nav-bar .md-button._md-nav-button.md-active,md-nav-bar.md-THEME_NAME-theme.md-warn>.md-nav-bar .md-button._md-nav-button.md-focused{color:\"{{warn-contrast}}\"}md-nav-bar.md-THEME_NAME-theme.md-warn>.md-nav-bar .md-button._md-nav-button.md-focused{background:\"{{warn-contrast-0.1}}\"}md-nav-bar.md-THEME_NAME-theme.md-primary>.md-nav-bar{background-color:\"{{primary-color}}\"}md-nav-bar.md-THEME_NAME-theme.md-primary>.md-nav-bar .md-button._md-nav-button{color:\"{{primary-100}}\"}md-nav-bar.md-THEME_NAME-theme.md-primary>.md-nav-bar .md-button._md-nav-button.md-active,md-nav-bar.md-THEME_NAME-theme.md-primary>.md-nav-bar .md-button._md-nav-button.md-focused{color:\"{{primary-contrast}}\"}md-nav-bar.md-THEME_NAME-theme.md-primary>.md-nav-bar .md-button._md-nav-button.md-focused{background:\"{{primary-contrast-0.1}}\"}md-toolbar>md-nav-bar.md-THEME_NAME-theme>.md-nav-bar{background-color:\"{{primary-color}}\"}md-toolbar>md-nav-bar.md-THEME_NAME-theme>.md-nav-bar .md-button._md-nav-button{color:\"{{primary-100}}\"}md-toolbar>md-nav-bar.md-THEME_NAME-theme>.md-nav-bar .md-button._md-nav-button.md-active,md-toolbar>md-nav-bar.md-THEME_NAME-theme>.md-nav-bar .md-button._md-nav-button.md-focused{color:\"{{primary-contrast}}\"}md-toolbar>md-nav-bar.md-THEME_NAME-theme>.md-nav-bar .md-button._md-nav-button.md-focused{background:\"{{primary-contrast-0.1}}\"}md-toolbar.md-accent>md-nav-bar.md-THEME_NAME-theme>.md-nav-bar{background-color:\"{{accent-color}}\"}md-toolbar.md-accent>md-nav-bar.md-THEME_NAME-theme>.md-nav-bar .md-button._md-nav-button{color:\"{{accent-A100}}\"}md-toolbar.md-accent>md-nav-bar.md-THEME_NAME-theme>.md-nav-bar .md-button._md-nav-button.md-active,md-toolbar.md-accent>md-nav-bar.md-THEME_NAME-theme>.md-nav-bar .md-button._md-nav-button.md-focused{color:\"{{accent-contrast}}\"}md-toolbar.md-accent>md-nav-bar.md-THEME_NAME-theme>.md-nav-bar .md-button._md-nav-button.md-focused{background:\"{{accent-contrast-0.1}}\"}md-toolbar.md-accent>md-nav-bar.md-THEME_NAME-theme>.md-nav-bar md-nav-ink-bar{color:\"{{primary-600-1}}\";background:\"{{primary-600-1}}\"}md-toolbar.md-warn>md-nav-bar.md-THEME_NAME-theme>.md-nav-bar{background-color:\"{{warn-color}}\"}md-toolbar.md-warn>md-nav-bar.md-THEME_NAME-theme>.md-nav-bar .md-button._md-nav-button{color:\"{{warn-100}}\"}md-toolbar.md-warn>md-nav-bar.md-THEME_NAME-theme>.md-nav-bar .md-button._md-nav-button.md-active,md-toolbar.md-warn>md-nav-bar.md-THEME_NAME-theme>.md-nav-bar .md-button._md-nav-button.md-focused{color:\"{{warn-contrast}}\"}md-toolbar.md-warn>md-nav-bar.md-THEME_NAME-theme>.md-nav-bar .md-button._md-nav-button.md-focused{background:\"{{warn-contrast-0.1}}\"}._md-panel-backdrop.md-THEME_NAME-theme{background-color:\"{{background-900-1.0}}\"}md-progress-circular.md-THEME_NAME-theme path{stroke:\"{{primary-color}}\"}md-progress-circular.md-THEME_NAME-theme.md-warn path{stroke:\"{{warn-color}}\"}md-progress-circular.md-THEME_NAME-theme.md-accent path{stroke:\"{{accent-color}}\"}md-progress-linear.md-THEME_NAME-theme .md-container{background-color:\"{{primary-100}}\"}md-progress-linear.md-THEME_NAME-theme .md-bar{background-color:\"{{primary-color}}\"}md-progress-linear.md-THEME_NAME-theme.md-warn .md-container{background-color:\"{{warn-100}}\"}md-progress-linear.md-THEME_NAME-theme.md-warn .md-bar{background-color:\"{{warn-color}}\"}md-progress-linear.md-THEME_NAME-theme.md-accent .md-container{background-color:\"{{accent-100}}\"}md-progress-linear.md-THEME_NAME-theme.md-accent .md-bar{background-color:\"{{accent-color}}\"}md-progress-linear.md-THEME_NAME-theme[md-mode=buffer].md-primary .md-bar1{background-color:\"{{primary-100}}\"}md-progress-linear.md-THEME_NAME-theme[md-mode=buffer].md-primary .md-dashed:before{background:radial-gradient(\"{{primary-100}}\" 0,\"{{primary-100}}\" 16%,transparent 42%)}md-progress-linear.md-THEME_NAME-theme[md-mode=buffer].md-warn .md-bar1{background-color:\"{{warn-100}}\"}md-progress-linear.md-THEME_NAME-theme[md-mode=buffer].md-warn .md-dashed:before{background:radial-gradient(\"{{warn-100}}\" 0,\"{{warn-100}}\" 16%,transparent 42%)}md-progress-linear.md-THEME_NAME-theme[md-mode=buffer].md-accent .md-bar1{background-color:\"{{accent-100}}\"}md-progress-linear.md-THEME_NAME-theme[md-mode=buffer].md-accent .md-dashed:before{background:radial-gradient(\"{{accent-100}}\" 0,\"{{accent-100}}\" 16%,transparent 42%)}md-radio-button.md-THEME_NAME-theme .md-off{border-color:\"{{foreground-2}}\"}md-radio-button.md-THEME_NAME-theme .md-on{background-color:\"{{accent-color-0.87}}\"}md-radio-button.md-THEME_NAME-theme.md-checked .md-off{border-color:\"{{accent-color-0.87}}\"}md-radio-button.md-THEME_NAME-theme.md-checked .md-ink-ripple{color:\"{{accent-color-0.87}}\"}md-radio-button.md-THEME_NAME-theme .md-container .md-ripple{color:\"{{accent-A700}}\"}md-radio-button.md-THEME_NAME-theme:not([disabled]).md-primary .md-on,md-radio-button.md-THEME_NAME-theme:not([disabled]) .md-primary .md-on,md-radio-group.md-THEME_NAME-theme:not([disabled]).md-primary .md-on,md-radio-group.md-THEME_NAME-theme:not([disabled]) .md-primary .md-on{background-color:\"{{primary-color-0.87}}\"}md-radio-button.md-THEME_NAME-theme:not([disabled]).md-primary.md-checked .md-off,md-radio-button.md-THEME_NAME-theme:not([disabled]) .md-primary.md-checked .md-off,md-radio-button.md-THEME_NAME-theme:not([disabled]).md-primary .md-checked .md-off,md-radio-button.md-THEME_NAME-theme:not([disabled]) .md-primary .md-checked .md-off,md-radio-group.md-THEME_NAME-theme:not([disabled]).md-primary.md-checked .md-off,md-radio-group.md-THEME_NAME-theme:not([disabled]) .md-primary.md-checked .md-off,md-radio-group.md-THEME_NAME-theme:not([disabled]).md-primary .md-checked .md-off,md-radio-group.md-THEME_NAME-theme:not([disabled]) .md-primary .md-checked .md-off{border-color:\"{{primary-color-0.87}}\"}md-radio-button.md-THEME_NAME-theme:not([disabled]).md-primary.md-checked .md-ink-ripple,md-radio-button.md-THEME_NAME-theme:not([disabled]) .md-primary.md-checked .md-ink-ripple,md-radio-button.md-THEME_NAME-theme:not([disabled]).md-primary .md-checked .md-ink-ripple,md-radio-button.md-THEME_NAME-theme:not([disabled]) .md-primary .md-checked .md-ink-ripple,md-radio-group.md-THEME_NAME-theme:not([disabled]).md-primary.md-checked .md-ink-ripple,md-radio-group.md-THEME_NAME-theme:not([disabled]) .md-primary.md-checked .md-ink-ripple,md-radio-group.md-THEME_NAME-theme:not([disabled]).md-primary .md-checked .md-ink-ripple,md-radio-group.md-THEME_NAME-theme:not([disabled]) .md-primary .md-checked .md-ink-ripple{color:\"{{primary-color-0.87}}\"}md-radio-button.md-THEME_NAME-theme:not([disabled]).md-primary .md-container .md-ripple,md-radio-button.md-THEME_NAME-theme:not([disabled]) .md-primary .md-container .md-ripple,md-radio-group.md-THEME_NAME-theme:not([disabled]).md-primary .md-container .md-ripple,md-radio-group.md-THEME_NAME-theme:not([disabled]) .md-primary .md-container .md-ripple{color:\"{{primary-600}}\"}md-radio-button.md-THEME_NAME-theme:not([disabled]).md-warn .md-on,md-radio-button.md-THEME_NAME-theme:not([disabled]) .md-warn .md-on,md-radio-group.md-THEME_NAME-theme:not([disabled]).md-warn .md-on,md-radio-group.md-THEME_NAME-theme:not([disabled]) .md-warn .md-on{background-color:\"{{warn-color-0.87}}\"}md-radio-button.md-THEME_NAME-theme:not([disabled]).md-warn.md-checked .md-off,md-radio-button.md-THEME_NAME-theme:not([disabled]) .md-warn.md-checked .md-off,md-radio-button.md-THEME_NAME-theme:not([disabled]).md-warn .md-checked .md-off,md-radio-button.md-THEME_NAME-theme:not([disabled]) .md-warn .md-checked .md-off,md-radio-group.md-THEME_NAME-theme:not([disabled]).md-warn.md-checked .md-off,md-radio-group.md-THEME_NAME-theme:not([disabled]) .md-warn.md-checked .md-off,md-radio-group.md-THEME_NAME-theme:not([disabled]).md-warn .md-checked .md-off,md-radio-group.md-THEME_NAME-theme:not([disabled]) .md-warn .md-checked .md-off{border-color:\"{{warn-color-0.87}}\"}md-radio-button.md-THEME_NAME-theme:not([disabled]).md-warn.md-checked .md-ink-ripple,md-radio-button.md-THEME_NAME-theme:not([disabled]) .md-warn.md-checked .md-ink-ripple,md-radio-button.md-THEME_NAME-theme:not([disabled]).md-warn .md-checked .md-ink-ripple,md-radio-button.md-THEME_NAME-theme:not([disabled]) .md-warn .md-checked .md-ink-ripple,md-radio-group.md-THEME_NAME-theme:not([disabled]).md-warn.md-checked .md-ink-ripple,md-radio-group.md-THEME_NAME-theme:not([disabled]) .md-warn.md-checked .md-ink-ripple,md-radio-group.md-THEME_NAME-theme:not([disabled]).md-warn .md-checked .md-ink-ripple,md-radio-group.md-THEME_NAME-theme:not([disabled]) .md-warn .md-checked .md-ink-ripple{color:\"{{warn-color-0.87}}\"}md-radio-button.md-THEME_NAME-theme:not([disabled]).md-warn .md-container .md-ripple,md-radio-button.md-THEME_NAME-theme:not([disabled]) .md-warn .md-container .md-ripple,md-radio-group.md-THEME_NAME-theme:not([disabled]).md-warn .md-container .md-ripple,md-radio-group.md-THEME_NAME-theme:not([disabled]) .md-warn .md-container .md-ripple{color:\"{{warn-600}}\"}md-radio-button.md-THEME_NAME-theme[disabled],md-radio-group.md-THEME_NAME-theme[disabled]{color:\"{{foreground-3}}\"}md-radio-button.md-THEME_NAME-theme[disabled] .md-container .md-off,md-radio-button.md-THEME_NAME-theme[disabled] .md-container .md-on,md-radio-group.md-THEME_NAME-theme[disabled] .md-container .md-off,md-radio-group.md-THEME_NAME-theme[disabled] .md-container .md-on{border-color:\"{{foreground-3}}\"}md-radio-group.md-THEME_NAME-theme .md-checked .md-ink-ripple{color:\"{{accent-color-0.26}}\"}md-radio-group.md-THEME_NAME-theme .md-checked:not([disabled]).md-primary .md-ink-ripple,md-radio-group.md-THEME_NAME-theme.md-primary .md-checked:not([disabled]) .md-ink-ripple{color:\"{{primary-color-0.26}}\"}md-radio-group.md-THEME_NAME-theme.md-focused:not(:empty) .md-checked .md-container:before{background-color:\"{{accent-color-0.26}}\"}md-radio-group.md-THEME_NAME-theme.md-focused:not(:empty) .md-checked.md-primary .md-container:before,md-radio-group.md-THEME_NAME-theme.md-focused:not(:empty).md-primary .md-checked .md-container:before{background-color:\"{{primary-color-0.26}}\"}md-radio-group.md-THEME_NAME-theme.md-focused:not(:empty) .md-checked.md-warn .md-container:before,md-radio-group.md-THEME_NAME-theme.md-focused:not(:empty).md-warn .md-checked .md-container:before{background-color:\"{{warn-color-0.26}}\"}md-input-container md-select.md-THEME_NAME-theme .md-select-value span:first-child:after{color:\"{{warn-A700}}\"}md-input-container:not(.md-input-focused):not(.md-input-invalid) md-select.md-THEME_NAME-theme .md-select-value span:first-child:after{color:\"{{foreground-3}}\"}md-input-container.md-input-focused:not(.md-input-has-value) md-select.md-THEME_NAME-theme .md-select-value,md-input-container.md-input-focused:not(.md-input-has-value) md-select.md-THEME_NAME-theme .md-select-value.md-select-placeholder{color:\"{{primary-color}}\"}md-input-container.md-input-invalid md-select.md-THEME_NAME-theme .md-select-value{color:\"{{warn-A700}}\"!important;border-bottom-color:\"{{warn-A700}}\"!important}md-input-container.md-input-invalid md-select.md-THEME_NAME-theme.md-no-underline .md-select-value{border-bottom-color:transparent!important}md-select.md-THEME_NAME-theme[disabled] .md-select-value{border-bottom-color:transparent;background-image:linear-gradient(90deg,\"{{foreground-3}}\" 0,\"{{foreground-3}}\" 33%,transparent 0);background-image:-ms-linear-gradient(left,transparent 0,\"{{foreground-3}}\" 100%)}md-select.md-THEME_NAME-theme .md-select-value{border-bottom-color:\"{{foreground-4}}\"}md-select.md-THEME_NAME-theme .md-select-value.md-select-placeholder{color:\"{{foreground-3}}\"}md-select.md-THEME_NAME-theme .md-select-value span:first-child:after{color:\"{{warn-A700}}\"}md-select.md-THEME_NAME-theme.md-no-underline .md-select-value{border-bottom-color:transparent!important}md-select.md-THEME_NAME-theme.ng-invalid.ng-touched .md-select-value{color:\"{{warn-A700}}\"!important;border-bottom-color:\"{{warn-A700}}\"!important}md-select.md-THEME_NAME-theme.ng-invalid.ng-touched.md-no-underline .md-select-value{border-bottom-color:transparent!important}md-select.md-THEME_NAME-theme:not([disabled]):focus .md-select-value{border-bottom-color:\"{{primary-color}}\";color:\"{{ foreground-1 }}\"}md-select.md-THEME_NAME-theme:not([disabled]):focus .md-select-value.md-select-placeholder{color:\"{{ foreground-1 }}\"}md-select.md-THEME_NAME-theme:not([disabled]):focus.md-no-underline .md-select-value{border-bottom-color:transparent!important}md-select.md-THEME_NAME-theme:not([disabled]):focus.md-accent .md-select-value{border-bottom-color:\"{{accent-color}}\"}md-select.md-THEME_NAME-theme:not([disabled]):focus.md-warn .md-select-value{border-bottom-color:\"{{warn-color}}\"}md-select.md-THEME_NAME-theme[disabled] .md-select-icon,md-select.md-THEME_NAME-theme[disabled] .md-select-value,md-select.md-THEME_NAME-theme[disabled] .md-select-value.md-select-placeholder{color:\"{{foreground-3}}\"}md-select.md-THEME_NAME-theme .md-select-icon{color:\"{{foreground-2}}\"}md-select-menu.md-THEME_NAME-theme md-content{background:\"{{background-A100}}\"}md-select-menu.md-THEME_NAME-theme md-content md-optgroup{color:\"{{background-600-0.87}}\"}md-select-menu.md-THEME_NAME-theme md-content md-option{color:\"{{background-900-0.87}}\"}md-select-menu.md-THEME_NAME-theme md-content md-option[disabled] .md-text{color:\"{{background-400-0.87}}\"}md-select-menu.md-THEME_NAME-theme md-content md-option:not([disabled]):focus,md-select-menu.md-THEME_NAME-theme md-content md-option:not([disabled]):hover{background:\"{{background-200}}\"}md-select-menu.md-THEME_NAME-theme md-content md-option[selected]{color:\"{{primary-500}}\"}md-select-menu.md-THEME_NAME-theme md-content md-option[selected]:focus{color:\"{{primary-600}}\"}md-select-menu.md-THEME_NAME-theme md-content md-option[selected].md-accent{color:\"{{accent-color}}\"}md-select-menu.md-THEME_NAME-theme md-content md-option[selected].md-accent:focus{color:\"{{accent-A700}}\"}.md-checkbox-enabled.md-THEME_NAME-theme .md-ripple{color:\"{{primary-600}}\"}.md-checkbox-enabled.md-THEME_NAME-theme[selected] .md-ripple{color:\"{{background-600}}\"}.md-checkbox-enabled.md-THEME_NAME-theme .md-ink-ripple{color:\"{{foreground-2}}\"}.md-checkbox-enabled.md-THEME_NAME-theme[selected] .md-ink-ripple{color:\"{{primary-color-0.87}}\"}.md-checkbox-enabled.md-THEME_NAME-theme:not(.md-checked) .md-icon{border-color:\"{{foreground-2}}\"}.md-checkbox-enabled.md-THEME_NAME-theme[selected] .md-icon{background-color:\"{{primary-color-0.87}}\"}.md-checkbox-enabled.md-THEME_NAME-theme[selected].md-focused .md-container:before{background-color:\"{{primary-color-0.26}}\"}.md-checkbox-enabled.md-THEME_NAME-theme[selected] .md-icon:after{border-color:\"{{primary-contrast-0.87}}\"}.md-checkbox-enabled.md-THEME_NAME-theme .md-indeterminate[disabled] .md-container{color:\"{{foreground-3}}\"}.md-checkbox-enabled.md-THEME_NAME-theme md-option .md-text{color:\"{{background-900-0.87}}\"}md-sidenav.md-THEME_NAME-theme,md-sidenav.md-THEME_NAME-theme md-content{background-color:\"{{background-hue-1}}\"}md-slider.md-THEME_NAME-theme .md-track{background-color:\"{{foreground-3}}\"}md-slider.md-THEME_NAME-theme .md-track-ticks{color:\"{{background-contrast}}\"}md-slider.md-THEME_NAME-theme .md-focus-ring{background-color:\"{{accent-A200-0.2}}\"}md-slider.md-THEME_NAME-theme .md-disabled-thumb{border-color:\"{{background-color}}\";background-color:\"{{background-color}}\"}md-slider.md-THEME_NAME-theme.md-min .md-thumb:after{background-color:\"{{background-color}}\";border-color:\"{{foreground-3}}\"}md-slider.md-THEME_NAME-theme.md-min .md-focus-ring{background-color:\"{{foreground-3-0.38}}\"}md-slider.md-THEME_NAME-theme.md-min[md-discrete] .md-thumb:after{background-color:\"{{background-contrast}}\";border-color:transparent}md-slider.md-THEME_NAME-theme.md-min[md-discrete] .md-sign{background-color:\"{{background-400}}\"}md-slider.md-THEME_NAME-theme.md-min[md-discrete] .md-sign:after{border-top-color:\"{{background-400}}\"}md-slider.md-THEME_NAME-theme.md-min[md-discrete][md-vertical] .md-sign:after{border-top-color:transparent;border-left-color:\"{{background-400}}\"}md-slider.md-THEME_NAME-theme .md-track.md-track-fill{background-color:\"{{accent-color}}\"}md-slider.md-THEME_NAME-theme .md-thumb:after{border-color:\"{{accent-color}}\";background-color:\"{{accent-color}}\"}md-slider.md-THEME_NAME-theme .md-sign{background-color:\"{{accent-color}}\"}md-slider.md-THEME_NAME-theme .md-sign:after{border-top-color:\"{{accent-color}}\"}md-slider.md-THEME_NAME-theme[md-vertical] .md-sign:after{border-top-color:transparent;border-left-color:\"{{accent-color}}\"}md-slider.md-THEME_NAME-theme .md-thumb-text{color:\"{{accent-contrast}}\"}md-slider.md-THEME_NAME-theme.md-warn .md-focus-ring{background-color:\"{{warn-200-0.38}}\"}md-slider.md-THEME_NAME-theme.md-warn .md-track.md-track-fill{background-color:\"{{warn-color}}\"}md-slider.md-THEME_NAME-theme.md-warn .md-thumb:after{border-color:\"{{warn-color}}\";background-color:\"{{warn-color}}\"}md-slider.md-THEME_NAME-theme.md-warn .md-sign{background-color:\"{{warn-color}}\"}md-slider.md-THEME_NAME-theme.md-warn .md-sign:after{border-top-color:\"{{warn-color}}\"}md-slider.md-THEME_NAME-theme.md-warn[md-vertical] .md-sign:after{border-top-color:transparent;border-left-color:\"{{warn-color}}\"}md-slider.md-THEME_NAME-theme.md-warn .md-thumb-text{color:\"{{warn-contrast}}\"}md-slider.md-THEME_NAME-theme.md-primary .md-focus-ring{background-color:\"{{primary-200-0.38}}\"}md-slider.md-THEME_NAME-theme.md-primary .md-track.md-track-fill{background-color:\"{{primary-color}}\"}md-slider.md-THEME_NAME-theme.md-primary .md-thumb:after{border-color:\"{{primary-color}}\";background-color:\"{{primary-color}}\"}md-slider.md-THEME_NAME-theme.md-primary .md-sign{background-color:\"{{primary-color}}\"}md-slider.md-THEME_NAME-theme.md-primary .md-sign:after{border-top-color:\"{{primary-color}}\"}md-slider.md-THEME_NAME-theme.md-primary[md-vertical] .md-sign:after{border-top-color:transparent;border-left-color:\"{{primary-color}}\"}md-slider.md-THEME_NAME-theme.md-primary .md-thumb-text{color:\"{{primary-contrast}}\"}md-slider.md-THEME_NAME-theme[disabled] .md-thumb:after{border-color:transparent}md-slider.md-THEME_NAME-theme[disabled]:not(.md-min) .md-thumb:after,md-slider.md-THEME_NAME-theme[disabled][md-discrete] .md-thumb:after{background-color:\"{{foreground-3}}\";border-color:transparent}md-slider.md-THEME_NAME-theme[disabled][readonly] .md-sign{background-color:\"{{background-400}}\"}md-slider.md-THEME_NAME-theme[disabled][readonly] .md-sign:after{border-top-color:\"{{background-400}}\"}md-slider.md-THEME_NAME-theme[disabled][readonly][md-vertical] .md-sign:after{border-top-color:transparent;border-left-color:\"{{background-400}}\"}md-slider.md-THEME_NAME-theme[disabled][readonly] .md-disabled-thumb{border-color:transparent;background-color:transparent}md-slider-container[disabled]>:first-child:not(md-slider),md-slider-container[disabled]>:last-child:not(md-slider){color:\"{{foreground-3}}\"}.md-subheader.md-THEME_NAME-theme{color:\"{{ foreground-2-0.23 }}\";background-color:\"{{background-default}}\"}.md-subheader.md-THEME_NAME-theme.md-primary{color:\"{{primary-color}}\"}.md-subheader.md-THEME_NAME-theme.md-accent{color:\"{{accent-color}}\"}.md-subheader.md-THEME_NAME-theme.md-warn{color:\"{{warn-color}}\"}md-switch.md-THEME_NAME-theme .md-ink-ripple{color:\"{{background-500}}\"}md-switch.md-THEME_NAME-theme .md-thumb{background-color:\"{{background-50}}\"}md-switch.md-THEME_NAME-theme .md-bar{background-color:\"{{background-500}}\"}md-switch.md-THEME_NAME-theme.md-checked .md-ink-ripple{color:\"{{accent-color}}\"}md-switch.md-THEME_NAME-theme.md-checked .md-thumb{background-color:\"{{accent-color}}\"}md-switch.md-THEME_NAME-theme.md-checked .md-bar{background-color:\"{{accent-color-0.5}}\"}md-switch.md-THEME_NAME-theme.md-checked.md-focused .md-thumb:before{background-color:\"{{accent-color-0.26}}\"}md-switch.md-THEME_NAME-theme.md-checked.md-primary .md-ink-ripple{color:\"{{primary-color}}\"}md-switch.md-THEME_NAME-theme.md-checked.md-primary .md-thumb{background-color:\"{{primary-color}}\"}md-switch.md-THEME_NAME-theme.md-checked.md-primary .md-bar{background-color:\"{{primary-color-0.5}}\"}md-switch.md-THEME_NAME-theme.md-checked.md-primary.md-focused .md-thumb:before{background-color:\"{{primary-color-0.26}}\"}md-switch.md-THEME_NAME-theme.md-checked.md-warn .md-ink-ripple{color:\"{{warn-color}}\"}md-switch.md-THEME_NAME-theme.md-checked.md-warn .md-thumb{background-color:\"{{warn-color}}\"}md-switch.md-THEME_NAME-theme.md-checked.md-warn .md-bar{background-color:\"{{warn-color-0.5}}\"}md-switch.md-THEME_NAME-theme.md-checked.md-warn.md-focused .md-thumb:before{background-color:\"{{warn-color-0.26}}\"}md-switch.md-THEME_NAME-theme[disabled] .md-thumb{background-color:\"{{background-400}}\"}md-switch.md-THEME_NAME-theme[disabled] .md-bar{background-color:\"{{foreground-4}}\"}md-tabs.md-THEME_NAME-theme md-tabs-wrapper{background-color:transparent;border-color:\"{{foreground-4}}\"}md-tabs.md-THEME_NAME-theme .md-paginator md-icon{color:\"{{primary-color}}\"}md-tabs.md-THEME_NAME-theme md-ink-bar{color:\"{{accent-color}}\";background:\"{{accent-color}}\"}md-tabs.md-THEME_NAME-theme .md-tab{color:\"{{foreground-2}}\"}md-tabs.md-THEME_NAME-theme .md-tab[disabled],md-tabs.md-THEME_NAME-theme .md-tab[disabled] md-icon{color:\"{{foreground-3}}\"}md-tabs.md-THEME_NAME-theme .md-tab.md-active,md-tabs.md-THEME_NAME-theme .md-tab.md-active md-icon,md-tabs.md-THEME_NAME-theme .md-tab.md-focused,md-tabs.md-THEME_NAME-theme .md-tab.md-focused md-icon{color:\"{{primary-color}}\"}md-tabs.md-THEME_NAME-theme .md-tab.md-focused{background:\"{{primary-color-0.1}}\"}md-tabs.md-THEME_NAME-theme .md-tab .md-ripple-container{color:\"{{accent-A100}}\"}md-tabs.md-THEME_NAME-theme.md-accent>md-tabs-wrapper{background-color:\"{{accent-color}}\"}md-tabs.md-THEME_NAME-theme.md-accent>md-tabs-wrapper>md-tabs-canvas>md-pagination-wrapper>md-tab-item:not([disabled]),md-tabs.md-THEME_NAME-theme.md-accent>md-tabs-wrapper>md-tabs-canvas>md-pagination-wrapper>md-tab-item:not([disabled]) md-icon{color:\"{{accent-A100}}\"}md-tabs.md-THEME_NAME-theme.md-accent>md-tabs-wrapper>md-tabs-canvas>md-pagination-wrapper>md-tab-item:not([disabled]).md-active,md-tabs.md-THEME_NAME-theme.md-accent>md-tabs-wrapper>md-tabs-canvas>md-pagination-wrapper>md-tab-item:not([disabled]).md-active md-icon,md-tabs.md-THEME_NAME-theme.md-accent>md-tabs-wrapper>md-tabs-canvas>md-pagination-wrapper>md-tab-item:not([disabled]).md-focused,md-tabs.md-THEME_NAME-theme.md-accent>md-tabs-wrapper>md-tabs-canvas>md-pagination-wrapper>md-tab-item:not([disabled]).md-focused md-icon{color:\"{{accent-contrast}}\"}md-tabs.md-THEME_NAME-theme.md-accent>md-tabs-wrapper>md-tabs-canvas>md-pagination-wrapper>md-tab-item:not([disabled]).md-focused{background:\"{{accent-contrast-0.1}}\"}md-tabs.md-THEME_NAME-theme.md-accent>md-tabs-wrapper>md-tabs-canvas>md-pagination-wrapper>md-ink-bar{color:\"{{primary-600-1}}\";background:\"{{primary-600-1}}\"}md-tabs.md-THEME_NAME-theme.md-primary>md-tabs-wrapper{background-color:\"{{primary-color}}\"}md-tabs.md-THEME_NAME-theme.md-primary>md-tabs-wrapper>md-tabs-canvas>md-pagination-wrapper>md-tab-item:not([disabled]),md-tabs.md-THEME_NAME-theme.md-primary>md-tabs-wrapper>md-tabs-canvas>md-pagination-wrapper>md-tab-item:not([disabled]) md-icon{color:\"{{primary-100}}\"}md-tabs.md-THEME_NAME-theme.md-primary>md-tabs-wrapper>md-tabs-canvas>md-pagination-wrapper>md-tab-item:not([disabled]).md-active,md-tabs.md-THEME_NAME-theme.md-primary>md-tabs-wrapper>md-tabs-canvas>md-pagination-wrapper>md-tab-item:not([disabled]).md-active md-icon,md-tabs.md-THEME_NAME-theme.md-primary>md-tabs-wrapper>md-tabs-canvas>md-pagination-wrapper>md-tab-item:not([disabled]).md-focused,md-tabs.md-THEME_NAME-theme.md-primary>md-tabs-wrapper>md-tabs-canvas>md-pagination-wrapper>md-tab-item:not([disabled]).md-focused md-icon{color:\"{{primary-contrast}}\"}md-tabs.md-THEME_NAME-theme.md-primary>md-tabs-wrapper>md-tabs-canvas>md-pagination-wrapper>md-tab-item:not([disabled]).md-focused{background:\"{{primary-contrast-0.1}}\"}md-tabs.md-THEME_NAME-theme.md-warn>md-tabs-wrapper{background-color:\"{{warn-color}}\"}md-tabs.md-THEME_NAME-theme.md-warn>md-tabs-wrapper>md-tabs-canvas>md-pagination-wrapper>md-tab-item:not([disabled]),md-tabs.md-THEME_NAME-theme.md-warn>md-tabs-wrapper>md-tabs-canvas>md-pagination-wrapper>md-tab-item:not([disabled]) md-icon{color:\"{{warn-100}}\"}md-tabs.md-THEME_NAME-theme.md-warn>md-tabs-wrapper>md-tabs-canvas>md-pagination-wrapper>md-tab-item:not([disabled]).md-active,md-tabs.md-THEME_NAME-theme.md-warn>md-tabs-wrapper>md-tabs-canvas>md-pagination-wrapper>md-tab-item:not([disabled]).md-active md-icon,md-tabs.md-THEME_NAME-theme.md-warn>md-tabs-wrapper>md-tabs-canvas>md-pagination-wrapper>md-tab-item:not([disabled]).md-focused,md-tabs.md-THEME_NAME-theme.md-warn>md-tabs-wrapper>md-tabs-canvas>md-pagination-wrapper>md-tab-item:not([disabled]).md-focused md-icon{color:\"{{warn-contrast}}\"}md-tabs.md-THEME_NAME-theme.md-warn>md-tabs-wrapper>md-tabs-canvas>md-pagination-wrapper>md-tab-item:not([disabled]).md-focused{background:\"{{warn-contrast-0.1}}\"}md-toolbar>md-tabs.md-THEME_NAME-theme>md-tabs-wrapper{background-color:\"{{primary-color}}\"}md-toolbar>md-tabs.md-THEME_NAME-theme>md-tabs-wrapper>md-tabs-canvas>md-pagination-wrapper>md-tab-item:not([disabled]),md-toolbar>md-tabs.md-THEME_NAME-theme>md-tabs-wrapper>md-tabs-canvas>md-pagination-wrapper>md-tab-item:not([disabled]) md-icon{color:\"{{primary-100}}\"}md-toolbar>md-tabs.md-THEME_NAME-theme>md-tabs-wrapper>md-tabs-canvas>md-pagination-wrapper>md-tab-item:not([disabled]).md-active,md-toolbar>md-tabs.md-THEME_NAME-theme>md-tabs-wrapper>md-tabs-canvas>md-pagination-wrapper>md-tab-item:not([disabled]).md-active md-icon,md-toolbar>md-tabs.md-THEME_NAME-theme>md-tabs-wrapper>md-tabs-canvas>md-pagination-wrapper>md-tab-item:not([disabled]).md-focused,md-toolbar>md-tabs.md-THEME_NAME-theme>md-tabs-wrapper>md-tabs-canvas>md-pagination-wrapper>md-tab-item:not([disabled]).md-focused md-icon{color:\"{{primary-contrast}}\"}md-toolbar>md-tabs.md-THEME_NAME-theme>md-tabs-wrapper>md-tabs-canvas>md-pagination-wrapper>md-tab-item:not([disabled]).md-focused{background:\"{{primary-contrast-0.1}}\"}md-toolbar.md-accent>md-tabs.md-THEME_NAME-theme>md-tabs-wrapper{background-color:\"{{accent-color}}\"}md-toolbar.md-accent>md-tabs.md-THEME_NAME-theme>md-tabs-wrapper>md-tabs-canvas>md-pagination-wrapper>md-tab-item:not([disabled]),md-toolbar.md-accent>md-tabs.md-THEME_NAME-theme>md-tabs-wrapper>md-tabs-canvas>md-pagination-wrapper>md-tab-item:not([disabled]) md-icon{color:\"{{accent-A100}}\"}md-toolbar.md-accent>md-tabs.md-THEME_NAME-theme>md-tabs-wrapper>md-tabs-canvas>md-pagination-wrapper>md-tab-item:not([disabled]).md-active,md-toolbar.md-accent>md-tabs.md-THEME_NAME-theme>md-tabs-wrapper>md-tabs-canvas>md-pagination-wrapper>md-tab-item:not([disabled]).md-active md-icon,md-toolbar.md-accent>md-tabs.md-THEME_NAME-theme>md-tabs-wrapper>md-tabs-canvas>md-pagination-wrapper>md-tab-item:not([disabled]).md-focused,md-toolbar.md-accent>md-tabs.md-THEME_NAME-theme>md-tabs-wrapper>md-tabs-canvas>md-pagination-wrapper>md-tab-item:not([disabled]).md-focused md-icon{color:\"{{accent-contrast}}\"}md-toolbar.md-accent>md-tabs.md-THEME_NAME-theme>md-tabs-wrapper>md-tabs-canvas>md-pagination-wrapper>md-tab-item:not([disabled]).md-focused{background:\"{{accent-contrast-0.1}}\"}md-toolbar.md-accent>md-tabs.md-THEME_NAME-theme>md-tabs-wrapper>md-tabs-canvas>md-pagination-wrapper>md-ink-bar{color:\"{{primary-600-1}}\";background:\"{{primary-600-1}}\"}md-toolbar.md-warn>md-tabs.md-THEME_NAME-theme>md-tabs-wrapper{background-color:\"{{warn-color}}\"}md-toolbar.md-warn>md-tabs.md-THEME_NAME-theme>md-tabs-wrapper>md-tabs-canvas>md-pagination-wrapper>md-tab-item:not([disabled]),md-toolbar.md-warn>md-tabs.md-THEME_NAME-theme>md-tabs-wrapper>md-tabs-canvas>md-pagination-wrapper>md-tab-item:not([disabled]) md-icon{color:\"{{warn-100}}\"}md-toolbar.md-warn>md-tabs.md-THEME_NAME-theme>md-tabs-wrapper>md-tabs-canvas>md-pagination-wrapper>md-tab-item:not([disabled]).md-active,md-toolbar.md-warn>md-tabs.md-THEME_NAME-theme>md-tabs-wrapper>md-tabs-canvas>md-pagination-wrapper>md-tab-item:not([disabled]).md-active md-icon,md-toolbar.md-warn>md-tabs.md-THEME_NAME-theme>md-tabs-wrapper>md-tabs-canvas>md-pagination-wrapper>md-tab-item:not([disabled]).md-focused,md-toolbar.md-warn>md-tabs.md-THEME_NAME-theme>md-tabs-wrapper>md-tabs-canvas>md-pagination-wrapper>md-tab-item:not([disabled]).md-focused md-icon{color:\"{{warn-contrast}}\"}md-toolbar.md-warn>md-tabs.md-THEME_NAME-theme>md-tabs-wrapper>md-tabs-canvas>md-pagination-wrapper>md-tab-item:not([disabled]).md-focused{background:\"{{warn-contrast-0.1}}\"}md-toast.md-THEME_NAME-theme .md-toast-content{background-color:#323232;color:\"{{background-50}}\"}md-toast.md-THEME_NAME-theme .md-toast-content .md-button{color:\"{{background-50}}\"}md-toast.md-THEME_NAME-theme .md-toast-content .md-button.md-highlight{color:\"{{accent-color}}\"}md-toast.md-THEME_NAME-theme .md-toast-content .md-button.md-highlight.md-primary{color:\"{{primary-color}}\"}md-toast.md-THEME_NAME-theme .md-toast-content .md-button.md-highlight.md-warn{color:\"{{warn-color}}\"}md-toolbar.md-THEME_NAME-theme:not(.md-menu-toolbar){background-color:\"{{primary-color}}\";color:\"{{primary-contrast}}\"}md-toolbar.md-THEME_NAME-theme:not(.md-menu-toolbar) md-icon{color:\"{{primary-contrast}}\";fill:\"{{primary-contrast}}\"}md-toolbar.md-THEME_NAME-theme:not(.md-menu-toolbar) .md-button[disabled] md-icon{color:\"{{primary-contrast-0.26}}\";fill:\"{{primary-contrast-0.26}}\"}md-toolbar.md-THEME_NAME-theme:not(.md-menu-toolbar).md-accent{background-color:\"{{accent-color}}\";color:\"{{accent-contrast}}\"}md-toolbar.md-THEME_NAME-theme:not(.md-menu-toolbar).md-accent .md-ink-ripple{color:\"{{accent-contrast}}\"}md-toolbar.md-THEME_NAME-theme:not(.md-menu-toolbar).md-accent md-icon{color:\"{{accent-contrast}}\";fill:\"{{accent-contrast}}\"}md-toolbar.md-THEME_NAME-theme:not(.md-menu-toolbar).md-accent .md-button[disabled] md-icon{color:\"{{accent-contrast-0.26}}\";fill:\"{{accent-contrast-0.26}}\"}md-toolbar.md-THEME_NAME-theme:not(.md-menu-toolbar).md-warn{background-color:\"{{warn-color}}\";color:\"{{warn-contrast}}\"}.md-panel.md-tooltip.md-THEME_NAME-theme{color:\"{{background-700-contrast}}\";background-color:\"{{background-700}}\"}body.md-THEME_NAME-theme,html.md-THEME_NAME-theme{color:\"{{foreground-1}}\";background-color:\"{{background-color}}\"}"); })(); -})(window, window.angular);;window.ngMaterial={version:{full: "1.1.6"}}; \ No newline at end of file +})(window, window.angular);;window.ngMaterial={version:{full: "1.1.7"}}; \ No newline at end of file diff --git a/UI/WebServerResources/js/vendor/angular-material.min.js b/UI/WebServerResources/js/vendor/angular-material.min.js index 483b53ef7..8d91d57da 100644 --- a/UI/WebServerResources/js/vendor/angular-material.min.js +++ b/UI/WebServerResources/js/vendor/angular-material.min.js @@ -2,17 +2,17 @@ * AngularJS Material Design * https://github.com/angular/material * @license MIT - * v1.1.6 + * v1.1.7 */ -!function(e,t,n){"use strict";!function(){t.module("ngMaterial",["ng","ngAnimate","ngAria","material.core","material.core.interaction","material.core.gestures","material.core.layout","material.core.meta","material.core.theming.palette","material.core.theming","material.core.animate","material.components.autocomplete","material.components.bottomSheet","material.components.backdrop","material.components.button","material.components.card","material.components.checkbox","material.components.chips","material.components.colors","material.components.content","material.components.datepicker","material.components.dialog","material.components.divider","material.components.fabActions","material.components.fabShared","material.components.fabSpeedDial","material.components.fabToolbar","material.components.gridList","material.components.icon","material.components.input","material.components.list","material.components.menu","material.components.menuBar","material.components.navBar","material.components.panel","material.components.progressCircular","material.components.progressLinear","material.components.radioButton","material.components.select","material.components.showHide","material.components.sidenav","material.components.slider","material.components.sticky","material.components.subheader","material.components.switch","material.components.swipe","material.components.tabs","material.components.toast","material.components.toolbar","material.components.truncate","material.components.tooltip","material.components.virtualRepeat","material.components.whiteframe"])}(),function(){function e(e,t){if(t.has("$swipe")){var n="You are using the ngTouch module. \nAngularJS Material already has mobile click, tap, and swipe support... \nngTouch is not supported with AngularJS Material!";e.warn(n)}}function n(e,t){e.decorator("$$rAF",["$delegate",o]),e.decorator("$q",["$delegate",i]),t.theme("default").primaryPalette("indigo").accentPalette("pink").warnPalette("deep-orange").backgroundPalette("grey")}function o(e){return e.throttle=function(t){var n,o,i,r;return function(){n=arguments,r=this,i=t,o||(o=!0,e(function(){i.apply(r,Array.prototype.slice.call(n)),o=!1}))}},e}function i(e){return e.resolve||(e.resolve=e.when),e}e.$inject=["$log","$injector"],n.$inject=["$provide","$mdThemingProvider"],o.$inject=["$delegate"],i.$inject=["$delegate"],t.module("material.core",["ngAnimate","material.core.animate","material.core.layout","material.core.interaction","material.core.gestures","material.core.theming"]).config(n).run(e)}(),function(){function e(e){function n(n,o,i){function r(e){t.isUndefined(e)&&(e=!0),o.toggleClass("md-autofocus",!!e)}var a=i.mdAutoFocus||i.mdAutofocus||i.mdSidenavFocus;r(e(a)(n)),a&&n.$watch(a,r)}return{restrict:"A",link:{pre:n}}}e.$inject=["$parse"],t.module("material.core").directive("mdAutofocus",e).directive("mdAutoFocus",e).directive("mdSidenavFocus",e)}(),function(){function e(){function e(e){var t="#"===e[0]?e.substr(1):e,n=t.length/3,o=t.substr(0,n),i=t.substr(n,n),r=t.substr(2*n);return 1===n&&(o+=o,i+=i,r+=r),"rgba("+parseInt(o,16)+","+parseInt(i,16)+","+parseInt(r,16)+",0.1)"}function t(e){e=e.match(/^rgba?[\s+]?\([\s+]?(\d+)[\s+]?,[\s+]?(\d+)[\s+]?,[\s+]?(\d+)[\s+]?/i);var t=e&&4===e.length?"#"+("0"+parseInt(e[1],10).toString(16)).slice(-2)+("0"+parseInt(e[2],10).toString(16)).slice(-2)+("0"+parseInt(e[3],10).toString(16)).slice(-2):"";return t.toUpperCase()}function n(e){return e.replace(")",", 0.1)").replace("(","a(")}function o(e){return e?e.replace("rgba","rgb").replace(/,[^),]+\)/,")"):"rgb(0,0,0)"}return{rgbaToHex:t,hexToRgba:e,rgbToRgba:n,rgbaToRgb:o}}t.module("material.core").factory("$mdColorUtil",e)}(),function(){function e(){function e(e){var t=a+"-"+e,i=o(t),d=i.charAt(0).toLowerCase()+i.substring(1);return n(r,e)?e:n(r,i)?i:n(r,d)?d:e}function n(e,n){return t.isDefined(e.style[n])}function o(e){return e.replace(s,function(e,t,n,o){return o?n.toUpperCase():n})}function i(e){var t,n,o=/^(Moz|webkit|ms)(?=[A-Z])/;for(t in e.style)if(n=o.exec(t))return n[0]}var r=document.createElement("div"),a=i(r),d=/webkit/i.test(a),s=/([:\-_]+(.))/g,c={isInputKey:function(e){return e.keyCode>=31&&e.keyCode<=90},isNumPadKey:function(e){return 3===e.location&&e.keyCode>=97&&e.keyCode<=105},isMetaKey:function(e){return e.keyCode>=91&&e.keyCode<=93},isFnLockKey:function(e){return e.keyCode>=112&&e.keyCode<=145},isNavigationKey:function(e){var t=c.KEY_CODE,n=[t.SPACE,t.ENTER,t.UP_ARROW,t.DOWN_ARROW];return n.indexOf(e.keyCode)!=-1},hasModifierKey:function(e){return e.ctrlKey||e.metaKey||e.altKey},ELEMENT_MAX_PIXELS:1533917,BEFORE_NG_ARIA:210,KEY_CODE:{COMMA:188,SEMICOLON:186,ENTER:13,ESCAPE:27,SPACE:32,PAGE_UP:33,PAGE_DOWN:34,END:35,HOME:36,LEFT_ARROW:37,UP_ARROW:38,RIGHT_ARROW:39,DOWN_ARROW:40,TAB:9,BACKSPACE:8,DELETE:46},CSS:{TRANSITIONEND:"transitionend"+(d?" webkitTransitionEnd":""),ANIMATIONEND:"animationend"+(d?" webkitAnimationEnd":""),TRANSFORM:e("transform"),TRANSFORM_ORIGIN:e("transformOrigin"),TRANSITION:e("transition"),TRANSITION_DURATION:e("transitionDuration"),ANIMATION_PLAY_STATE:e("animationPlayState"),ANIMATION_DURATION:e("animationDuration"),ANIMATION_NAME:e("animationName"),ANIMATION_TIMING:e("animationTimingFunction"),ANIMATION_DIRECTION:e("animationDirection")},MEDIA:{xs:"(max-width: 599px)","gt-xs":"(min-width: 600px)",sm:"(min-width: 600px) and (max-width: 959px)","gt-sm":"(min-width: 960px)",md:"(min-width: 960px) and (max-width: 1279px)","gt-md":"(min-width: 1280px)",lg:"(min-width: 1280px) and (max-width: 1919px)","gt-lg":"(min-width: 1920px)",xl:"(min-width: 1920px)",landscape:"(orientation: landscape)",portrait:"(orientation: portrait)",print:"print"},MEDIA_PRIORITY:["xl","gt-lg","lg","gt-md","md","gt-sm","sm","gt-xs","xs","landscape","portrait","print"]};return c}t.module("material.core").factory("$mdConstant",e)}(),function(){function e(e,n){function o(){return[].concat(v)}function i(){return v.length}function r(e){return v.length&&e>-1&&e-1}function h(){return v.length?v[0]:null}function f(){return v.length?v[v.length-1]:null}function g(e,o,i,a){i=i||b;for(var d=u(o);;){if(!r(d))return null;var s=d+(e?-1:1),c=null;if(r(s)?c=v[s]:n&&(c=e?f():h(),s=u(c)),null===c||s===a)return null;if(i(c))return c;t.isUndefined(a)&&(a=s),d=s}}var b=function(){return!0};e&&!t.isArray(e)&&(e=Array.prototype.slice.call(e)),n=!!n;var v=e||[];return{items:o,count:i,inRange:r,contains:p,indexOf:u,itemAt:s,findBy:c,add:l,remove:m,first:h,last:f,next:t.bind(null,g,!1),previous:t.bind(null,g,!0),hasPrevious:d,hasNext:a}}t.module("material.core").config(["$provide",function(t){t.decorator("$mdUtil",["$delegate",function(t){return t.iterator=e,t}])}])}(),function(){function e(e,n,o){function i(e){var n=u[e];t.isUndefined(n)&&(n=u[e]=r(e));var o=h[n];return t.isUndefined(o)&&(o=a(n)),o}function r(t){return e.MEDIA[t]||("("!==t.charAt(0)?"("+t+")":t)}function a(e){var t=p[e];return t||(t=p[e]=o.matchMedia(e)),t.addListener(d),h[t.media]=!!t.matches}function d(e){n.$evalAsync(function(){h[e.media]=!!e.matches})}function s(e){return p[e]}function c(t,n){for(var o=0;o-1}function g(e){return String(e).indexOf("%")>-1}function b(e){return e[0]||e}var v=c.startSymbol(),E=c.endSymbol(),$="{{"===v&&"}}"===E,y=function(e,n,o){var i=!1;if(e&&e.length){var r=u.getComputedStyle(e[0]);i=t.isDefined(r[n])&&(!o||r[n]==o)}return i},C={dom:{},now:e.performance&&e.performance.now?t.bind(e.performance,e.performance.now):Date.now||function(){return(new Date).getTime()},getModelOption:function(e,t){if(e.$options){var n=e.$options;return n.getOption?n.getOption(t):n[t]}},bidi:function(e,n,i,r){var a=!("rtl"==o[0].dir||"rtl"==o[0].body.dir);if(0==arguments.length)return a?"ltr":"rtl";var d=t.element(e);a&&t.isDefined(i)?d.css(n,h(i)):!a&&t.isDefined(r)&&d.css(n,h(r))},bidiProperty:function(e,n,i,r){var a=!("rtl"==o[0].dir||"rtl"==o[0].body.dir),d=t.element(e);a&&t.isDefined(n)?(d.css(n,h(r)),d.css(i,"")):!a&&t.isDefined(i)&&(d.css(i,h(r)),d.css(n,""))},clientRect:function(e,t,n){var o=b(e);t=b(t||o.offsetParent||document.body);var i=o.getBoundingClientRect(),r=n?t.getBoundingClientRect():{left:0,top:0,width:0,height:0};return{left:i.left-r.left,top:i.top-r.top,width:i.width,height:i.height}},offsetRect:function(e,t){return C.clientRect(e,t,!0)},nodesToArray:function(e){e=e||[];for(var t=[],n=0;n
'),e.append(o)),o.on("wheel",n),o.on("touchmove",n),function(){o.off("wheel"),o.off("touchmove"),!i.disableScrollMask&&o[0].parentNode&&o[0].parentNode.removeChild(o[0])}}function a(){var e=o[0].documentElement,n=e.style.cssText||"",i=d.style.cssText||"",r=C.getViewportTop(),a=d.clientWidth,s=d.scrollHeight>d.clientHeight+1,c=e.scrollTop>0?e:d;return s&&t.element(d).css({position:"fixed",width:"100%",top:-r+"px"}),d.clientWidth
").css({width:"100%","z-index":-1,position:"absolute",height:"35px","overflow-y":"scroll"});e.children().css("height","60px"),o[0].body.appendChild(e[0]),this.floatingScrollbars.cached=e[0].offsetWidth==e[0].childNodes[0].offsetWidth,e.remove()}return this.floatingScrollbars.cached},forceFocus:function(t){var n=t[0]||t;document.addEventListener("click",function i(e){e.target===n&&e.$focus&&(n.focus(),e.stopImmediatePropagation(),e.preventDefault(),n.removeEventListener("click",i))},!0);var o=document.createEvent("MouseEvents");o.initMouseEvent("click",!1,!0,e,{},0,0,0,0,!1,!1,!1,!1,0,null),o.$material=!0,o.$focus=!0,n.dispatchEvent(o)},createBackdrop:function(e,t){return a(C.supplant('',[t]))(e)},supplant:function(e,t,n){return n=n||/\{([^{}]*)\}/g,e.replace(n,function(e,n){var o=n.split("."),i=t;try{for(var r in o)o.hasOwnProperty(r)&&(i=i[o[r]])}catch(a){i=e}return"string"==typeof i||"number"==typeof i?i:e})},fakeNgModel:function(){return{$fake:!0,$setTouched:t.noop,$setViewValue:function(e){this.$viewValue=e,this.$render(e),this.$viewChangeListeners.forEach(function(e){e()})},$isEmpty:function(e){return 0===(""+e).length},$parsers:[],$formatters:[],$viewChangeListeners:[],$render:t.noop}},debounce:function(e,t,o,i){var a;return function(){var d=o,s=Array.prototype.slice.call(arguments);r.cancel(a),a=r(function(){a=n,e.apply(d,s)},t||10,i)}},throttle:function(e,t){var n;return function(){var o=this,i=arguments,r=C.now();(!n||r-n>t)&&(e.apply(o,i),n=r)}},time:function(e){var t=C.now();return e(),C.now()-t},valueOnUse:function(e,t,n){var o=null,i=Array.prototype.slice.call(arguments),r=i.length>3?i.slice(3):[];Object.defineProperty(e,t,{get:function(){return null===o&&(o=n.apply(e,r)),o}})},nextUid:function(){return""+i++},disconnectScope:function(e){if(e&&e.$root!==e&&!e.$$destroyed){var t=e.$parent;e.$$disconnected=!0,t.$$childHead===e&&(t.$$childHead=e.$$nextSibling),t.$$childTail===e&&(t.$$childTail=e.$$prevSibling),e.$$prevSibling&&(e.$$prevSibling.$$nextSibling=e.$$nextSibling),e.$$nextSibling&&(e.$$nextSibling.$$prevSibling=e.$$prevSibling),e.$$nextSibling=e.$$prevSibling=null}},reconnectScope:function(e){if(e&&e.$root!==e&&e.$$disconnected){var t=e,n=t.$parent;t.$$disconnected=!1,t.$$prevSibling=n.$$childTail,n.$$childHead?(n.$$childTail.$$nextSibling=t,n.$$childTail=t):n.$$childHead=n.$$childTail=t}},getClosest:function(e,n,o){if(t.isString(n)){var i=n.toUpperCase();n=function(e){return e.nodeName.toUpperCase()===i}}if(e instanceof t.element&&(e=e[0]),o&&(e=e.parentNode),!e)return null;do if(n(e))return e;while(e=e.parentNode);return null},elementContains:function(n,o){var i=e.Node&&e.Node.prototype&&Node.prototype.contains,r=i?t.bind(n,n.contains):t.bind(n,function(e){return n===o||!!(16&this.compareDocumentPosition(e))});return r(o)},extractElementByName:function(e,n,o,i){function r(e){return a(e)||(o?d(e):null)}function a(e){if(e)for(var t=0,o=e.length;t");o[0].body.appendChild(n[0]);for(var i=["sticky","-webkit-sticky"],r=0;rt)&&p(o)}function i(){var e=n||1e3,t=C.now()-c;return r(t,a,d,e)}function r(e,t,n,o){if(e>o)return t+n;var i=(e/=o)*e,r=i*e;return t+n*(-2*r+3*i)}var a=e.scrollTop,d=t-a,s=a").html(i.trim()).contents();return n._compileElement(o,r,e)})},o.prototype._compileElement=function(e,n,o){function i(i){if(e.$scope=i,o.controller){var s=t.extend({},e,{$element:n}),c=r._createController(o,s,e);n.data("$ngControllerController",c),n.children().data("$ngControllerController",c),d.controller=c}return a(i)}var r=this,a=this.$compile(n),d={element:n,cleanup:n.remove.bind(n),locals:e,link:i};return d},o.prototype._createController=function(e,o,i){var r=this.$controller(e.controller,o,!0,e.controllerAs);n()&&e.bindToController&&t.extend(r.instance,i);var a=r();return!n()&&e.bindToController&&t.extend(a,i),t.isFunction(a.$onInit)&&a.$onInit(),a},o.prototype._fetchContentElement=function(e){function n(e){var t=e.parentNode,n=e.nextElementSibling;return function(){n?t.insertBefore(e,n):t.appendChild(e)}}var o=e.contentElement,i=null;return t.isString(o)?(o=document.querySelector(o),i=n(o)):(o=o[0]||o,i=document.contains(o)?n(o):function(){o.parentNode&&o.parentNode.removeChild(o)}),{element:t.element(o),restore:i}}}t.module("material.core").provider("$mdCompiler",e),e.$inject=["$compileProvider"]}(),function(){function e(){function e(){t.showWarnings=!1}var t={showWarnings:!0};return{disableWarnings:e,$get:["$$rAF","$log","$window","$interpolate",function(e,o,i,r){return n.apply(t,arguments)}]}}function n(e,n,o,i){function r(e,o,i){var r=t.element(e)[0]||e;!r||r.hasAttribute(o)&&0!==r.getAttribute(o).length||l(r,o)||(i=t.isString(i)?i.trim():"",i.length?e.attr(o,i):p&&n.warn('ARIA: Attribute "',o,'", required for accessibility, is missing on node:',r))}function a(t,n,o){e(function(){r(t,n,o())})}function d(e,t){var n=c(e)||"",o=n.indexOf(i.startSymbol())>-1;o?a(e,t,function(){return c(e)}):r(e,t,n)}function s(e,t){var n=c(e),o=n.indexOf(i.startSymbol())>-1;o||n||r(e,t,n)}function c(e){function t(t){for(;t.parentNode&&(t=t.parentNode)!==e;)if(t.getAttribute&&"true"===t.getAttribute("aria-hidden"))return!0}e=e[0]||e;for(var n,o=document.createTreeWalker(e,NodeFilter.SHOW_TEXT,null,!1),i="";n=o.nextNode();)t(n)||(i+=n.textContent);return i.trim()||""}function l(e,t){function n(e){var t=e.currentStyle?e.currentStyle:o.getComputedStyle(e);return"none"===t.display}var i=e.hasChildNodes(),r=!1;if(i)for(var a=e.childNodes,d=0;d=this.$mdUtil.now()-n}}(),function(){function n(){}function o(n,o,i){function r(e){return function(t,n){n.distancethis.options.maxDistance&&this.cancel()},onEnd:function(){this.onCancel()}}).handler("drag",{options:{minDistance:6,horizontal:!0,cancelMultiplier:1.5},onSetup:function(e,t){v&&(this.oldTouchAction=e[0].style[v],e[0].style[v]=t.horizontal?"pan-y":"pan-x")},onCleanup:function(e){this.oldTouchAction&&(e[0].style[v]=this.oldTouchAction)},onStart:function(e){this.state.registeredParent||this.cancel()},onMove:function(e,t){var n,o;v||"touchmove"!==e.type||e.preventDefault(),this.state.dragPointer?this.dispatchDragMove(e):(this.state.options.horizontal?(n=Math.abs(t.distanceX)>this.state.options.minDistance,o=Math.abs(t.distanceY)>this.state.options.minDistance*this.state.options.cancelMultiplier):(n=Math.abs(t.distanceY)>this.state.options.minDistance,o=Math.abs(t.distanceX)>this.state.options.minDistance*this.state.options.cancelMultiplier),n?(this.state.dragPointer=d(e),l(e,this.state.dragPointer),this.dispatchEvent(e,"$md.dragstart",this.state.dragPointer)):o&&this.cancel())},dispatchDragMove:o.throttle(function(e){this.state.isRunning&&(l(e,this.state.dragPointer),this.dispatchEvent(e,"$md.drag",this.state.dragPointer))}),onEnd:function(e,t){this.state.dragPointer&&(l(e,this.state.dragPointer),this.dispatchEvent(e,"$md.dragend",this.state.dragPointer))}}).handler("swipe",{options:{minVelocity:.65,minDistance:10},onEnd:function(e,t){var n;Math.abs(t.velocityX)>this.state.options.minVelocity&&Math.abs(t.distanceX)>this.state.options.minDistance?(n="left"==t.directionX?"$md.swipeleft":"$md.swiperight",this.dispatchEvent(e,n)):Math.abs(t.velocityY)>this.state.options.minVelocity&&Math.abs(t.distanceY)>this.state.options.minDistance&&(n="up"==t.directionY?"$md.swipeup":"$md.swipedown",this.dispatchEvent(e,n))}})}function i(e){this.name=e,this.state={}}function r(){function n(e,n,o){o=o||p;var i=new t.element.Event(n);i.$material=!0,i.pointer=o,i.srcEvent=e,t.extend(i,{clientX:o.x,clientY:o.y,screenX:o.x,screenY:o.y,pageX:o.x,pageY:o.y,ctrlKey:e.ctrlKey,altKey:e.altKey,shiftKey:e.shiftKey,metaKey:e.metaKey}),t.element(o.target).trigger(i)}function o(t,n,o){o=o||p;var i;"click"===n||"mouseup"==n||"mousedown"==n?(i=document.createEvent("MouseEvents"),i.initMouseEvent(n,!0,!0,e,t.detail,o.x,o.y,o.x,o.y,t.ctrlKey,t.altKey,t.shiftKey,t.metaKey,t.button,t.relatedTarget||null)):(i=document.createEvent("CustomEvent"),i.initCustomEvent(n,!0,!0,{})),i.$material=!0,i.pointer=o,i.srcEvent=t,o.target.dispatchEvent(i)}var r="undefined"!=typeof e.jQuery&&t.element===e.jQuery;return i.prototype={options:{},dispatchEvent:r?n:o,onSetup:t.noop,onCleanup:t.noop,onStart:t.noop,onMove:t.noop,onEnd:t.noop,onCancel:t.noop,start:function(e,n){if(!this.state.isRunning){var o=this.getNearestParent(e.target),i=o&&o.$mdGesture[this.name]||{};this.state={isRunning:!0,options:t.extend({},this.options,i),registeredParent:o},this.onStart(e,n)}},move:function(e,t){this.state.isRunning&&this.onMove(e,t)},end:function(e,t){this.state.isRunning&&(this.onEnd(e,t),this.state.isRunning=!1)},cancel:function(e,t){this.onCancel(e,t),this.state={}},getNearestParent:function(e){for(var t=e;t;){if((t.$mdGesture||{})[this.name])return t;t=t.parentNode}return null},registerElement:function(e,t){function n(){delete e[0].$mdGesture[o.name],e.off("$destroy",n),o.onCleanup(e,t||{})}var o=this;return e[0].$mdGesture=e[0].$mdGesture||{},e[0].$mdGesture[this.name]=t||{},e.on("$destroy",n),o.onSetup(e,t||{}),n}},i}function a(e,n){function o(e){var t=!e.clientX&&!e.clientY;t||e.$material||e.isIonicTap||c(e)||"mousedown"===e.type&&(u(e.target)||u(document.activeElement))||(e.preventDefault(),e.stopPropagation())}function i(e){var t=0===e.clientX&&0===e.clientY,n=e.target&&"submit"===e.target.type;t||e.$material||e.isIonicTap||c(e)||n?(v=null,"label"==e.target.tagName.toLowerCase()&&(v={x:e.x,y:e.y})):(e.preventDefault(),e.stopPropagation(),v=null)}function r(e,t){var o;for(var i in f)o=f[i],o instanceof n&&("start"===e&&o.cancel(),o[e](t,p))}function a(e){if(!p){var t=+Date.now();h&&!s(e,h)&&t-h.endTime<1500||(p=d(e),r("start",e))}}function m(e){p&&s(e,p)&&(l(e,p),r("move",e))}function g(e){p&&s(e,p)&&(l(e,p),p.endTime=+Date.now(),"pointercancel"!==e.type&&r("end",e),h=p,p=null)}document.contains||(document.contains=function(e){return document.body.contains(e)}),!E&&e.isHijackingClicks&&(document.addEventListener("click",i,!0),document.addEventListener("mouseup",o,!0),document.addEventListener("mousedown",o,!0),document.addEventListener("focus",o,!0),E=!0);var b="mousedown touchstart pointerdown",$="mousemove touchmove pointermove",y="mouseup mouseleave touchend touchcancel pointerup pointercancel";t.element(document).on(b,a).on($,m).on(y,g).on("$$mdGestureReset",function(){h=p=null})}function d(e){var t=m(e),n={startTime:+Date.now(),target:e.target,type:e.type.charAt(0)};return n.startX=n.x=t.pageX,n.startY=n.y=t.pageY,n}function s(e,t){return e&&t&&e.type.charAt(0)===t.type}function c(e){return v&&v.x==e.x&&v.y==e.y}function l(e,t){var n=m(e),o=t.x=n.pageX,i=t.y=n.pageY;t.distanceX=o-t.startX,t.distanceY=i-t.startY,t.distance=Math.sqrt(t.distanceX*t.distanceX+t.distanceY*t.distanceY),t.directionX=t.distanceX>0?"right":t.distanceX<0?"left":"",t.directionY=t.distanceY>0?"down":t.distanceY<0?"up":"",t.duration=+Date.now()-t.startTime,t.velocityX=t.distanceX/t.duration,t.velocityY=t.distanceY/t.duration}function m(e){return e=e.originalEvent||e,e.touches&&e.touches[0]||e.changedTouches&&e.changedTouches[0]||e}function u(e){return!!e&&"-1"!=e.getAttribute("tabindex")&&!e.hasAttribute("disabled")&&(e.hasAttribute("tabindex")||e.hasAttribute("href")||e.isContentEditable||["INPUT","SELECT","BUTTON","TEXTAREA","VIDEO","AUDIO"].indexOf(e.nodeName)!=-1)}o.$inject=["$$MdGestureHandler","$$rAF","$timeout"],a.$inject=["$mdGesture","$$MdGestureHandler"];var p,h,f={},g=!1,b=6,v=null,E=!1;t.module("material.core.gestures",[]).provider("$mdGesture",n).factory("$$MdGestureHandler",r).run(a), -n.prototype={skipClickHijack:function(){return g=!0},setMaxClickDistance:function(e){b=parseInt(e)},$get:["$$MdGestureHandler","$$rAF","$timeout",function(e,t,n){return new o(e,t,n)}]}}(),function(){function e(){function e(e){function n(e){return s.optionsFactory=e.options,s.methods=(e.methods||[]).concat(a),c}function o(e,t){return d[e]=t,c}function i(t,n){if(n=n||{},n.methods=n.methods||[],n.options=n.options||function(){return{}},/^cancel|hide|show$/.test(t))throw new Error("Preset '"+t+"' in "+e+" is reserved!");if(n.methods.indexOf("_options")>-1)throw new Error("Method '_options' in "+e+" is reserved!");return s.presets[t]={methods:n.methods.concat(a),optionsFactory:n.options,argOption:n.argOption},c}function r(n,o){function i(e){return e=e||{},e._options&&(e=e._options),m.show(t.extend({},l,e))}function r(e){return m.destroy(e)}function a(t,n){var i={};return i[e]=u,o.invoke(t||function(){return n},{},i)}var c,l,m=n(),u={hide:m.hide,cancel:m.cancel,show:i,destroy:r};return c=s.methods||[],l=a(s.optionsFactory,{}),t.forEach(d,function(e,t){u[t]=e}),t.forEach(s.presets,function(e,n){function o(e){this._options=t.extend({},i,e)}var i=a(e.optionsFactory,{}),r=(e.methods||[]).concat(c);if(t.extend(i,{$type:n}),t.forEach(r,function(e){o.prototype[e]=function(t){return this._options[e]=t,this}}),e.argOption){var d="show"+n.charAt(0).toUpperCase()+n.slice(1);u[d]=function(e){var t=u[n](e);return u.show(t)}}u[n]=function(n){return arguments.length&&e.argOption&&!t.isObject(n)&&!t.isArray(n)?(new o)[e.argOption](n):new o(n)}}),u}r.$inject=["$$interimElement","$injector"];var a=["onHide","onShow","onRemove"],d={},s={presets:{}},c={setDefaults:n,addPreset:i,addMethod:o,$get:r};return c.addPreset("build",{methods:["controller","controllerAs","resolve","multiple","template","templateUrl","themable","transformTemplate","parent","contentElement"]}),c}function o(e,o,i,r,a,d,s,c,l,m,u){return function(){function p(e){e=e||{};var t=new v(e||{}),n=e.multiple?o.resolve():o.all(y);e.multiple||(n=n.then(function(){var e=C.concat(M.map(E.cancel));return o.all(e)}));var i=n.then(function(){return t.show()["catch"](function(e){return e})["finally"](function(){y.splice(y.indexOf(i),1),M.push(t)})});return y.push(i),t.deferred.promise["catch"](function(e){return e instanceof Error&&u(e),e}),t.deferred.promise}function h(e,t){function i(n){var o=n.remove(e,!1,t||{})["catch"](function(e){return e})["finally"](function(){C.splice(C.indexOf(o),1)});return M.splice(M.indexOf(n),1),C.push(o),n.deferred.promise}return t=t||{},t.closeAll?o.all(M.slice().reverse().map(i)):t.closeTo!==n?o.all(M.slice(t.closeTo).map(i)):i(M[M.length-1])}function f(e,n){var i=M.pop();if(!i)return o.when(e);var r=i.remove(e,!0,n||{})["catch"](function(e){return e})["finally"](function(){C.splice(C.indexOf(r),1)});return C.push(r),i.deferred.promise["catch"](t.noop)}function g(e){return function(){var t=arguments;return M.length?e.apply(E,t):y.length?y[0]["finally"](function(){return e.apply(E,t)}):o.when("No interim elements currently showing up.")}}function b(e){var n=e?null:M.shift(),i=t.element(e).length&&t.element(e)[0].parentNode;if(i){var r=M.filter(function(e){return e.options.element[0]===i});r.length&&(n=r[0],M.splice(M.indexOf(n),1))}return n?n.remove($,!1,{$destroy:!0}):o.when($)}function v(m){function u(){return o(function(e,t){function n(e){C.deferred.reject(e),t(e)}m.onCompiling&&m.onCompiling(m),f(m).then(function(t){M=g(t,m),m.cleanupElement=t.cleanup,T=$(M,m,t.controller).then(e,n)})["catch"](n)})}function p(e,n,i){function r(e){C.deferred.resolve(e)}function a(e){C.deferred.reject(e)}return M?(m=t.extend(m||{},i||{}),m.cancelAutoHide&&m.cancelAutoHide(),m.element.triggerHandler("$mdInterimElementRemove"),m.$destroy===!0?y(m.element,m).then(function(){n&&a(e)||r(e)}):(o.when(T)["finally"](function(){y(m.element,m).then(function(){n?a(e):r(e)},a)}),C.deferred.promise)):o.when(!1)}function h(e){return e=e||{},e.template&&(e.template=s.processTemplate(e.template)),t.extend({preserveScope:!1,cancelAutoHide:t.noop,scope:e.scope||i.$new(e.isolateScope),onShow:function(e,t,n){return d.enter(t,n.parent)},onRemove:function(e,t){return t&&d.leave(t)||o.when()}},e)}function f(e){var t=e.skipCompile?null:c.compile(e);return t||o(function(t){t({locals:{},link:function(){return e.element}})})}function g(e,n){t.extend(e.locals,n);var o=e.link(n.scope);return n.element=o,n.parent=b(o,n),n.themable&&l(o),o}function b(n,o){var i=o.parent;if(i=t.isFunction(i)?i(o.scope,n,o):t.isString(i)?t.element(e[0].querySelector(i)):t.element(i),!(i||{}).length){var r;return a[0]&&a[0].querySelector&&(r=a[0].querySelector(":not(svg) > body")),r||(r=a[0]),"#comment"==r.nodeName&&(r=e[0].body),t.element(r)}return i}function v(){var e,o=t.noop;m.hideDelay&&(e=r(E.hide,m.hideDelay),o=function(){r.cancel(e)}),m.cancelAutoHide=function(){o(),m.cancelAutoHide=n}}function $(e,n,i){var r=n.onShowing||t.noop,a=n.onComplete||t.noop;try{r(n.scope,e,n,i)}catch(d){return o.reject(d)}return o(function(t,r){try{o.when(n.onShow(n.scope,e,n,i)).then(function(){a(n.scope,e,n),v(),t(e)},r)}catch(d){r(d.message)}})}function y(e,n){var i=n.onRemoving||t.noop;return o(function(t,r){try{var a=o.when(n.onRemove(n.scope,e,n)||!0);i(e,a),n.$destroy?(t(e),!n.preserveScope&&n.scope&&a.then(function(){n.scope.$destroy()})):a.then(function(){!n.preserveScope&&n.scope&&n.scope.$destroy(),t(e)},r)}catch(d){r(d.message)}})}var C,M,T=o.when(!0);return m=h(m),C={options:m,deferred:o.defer(),show:u,remove:p}}var E,$=!1,y=[],C=[],M=[];return E={show:p,hide:g(h),cancel:g(f),destroy:b,$injector_:m}}}return o.$inject=["$document","$q","$rootScope","$timeout","$rootElement","$animate","$mdUtil","$mdCompiler","$mdTheming","$injector","$exceptionHandler"],e.$get=o,e}t.module("material.core").provider("$$interimElement",e)}(),function(){!function(){function e(e){function d(e){return e.replace(m,"").replace(u,function(e,t,n,o){return o?n.toUpperCase():n})}var m=/^((?:x|data)[:\-_])/i,u=/([:\-_]+(.))/g,p=["","xs","gt-xs","sm","gt-sm","md","gt-md","lg","gt-lg","xl","print"],h=["layout","flex","flex-order","flex-offset","layout-align"],f=["show","hide","layout-padding","layout-margin"];t.forEach(p,function(n){t.forEach(h,function(t){var o=n?t+"-"+n:t;e.directive(d(o),r(o))}),t.forEach(f,function(t){var o=n?t+"-"+n:t;e.directive(d(o),a(o))})}),e.provider("$$mdLayout",function(){return{$get:t.noop,validateAttributeValue:l,validateAttributeUsage:c,disableLayouts:function(e){A.enabled=e!==!0}}}).directive("mdLayoutCss",o).directive("ngCloak",i("ng-cloak")).directive("layoutWrap",a("layout-wrap")).directive("layoutNowrap",a("layout-nowrap")).directive("layoutNoWrap",a("layout-no-wrap")).directive("layoutFill",a("layout-fill")).directive("layoutLtMd",s("layout-lt-md",!0)).directive("layoutLtLg",s("layout-lt-lg",!0)).directive("flexLtMd",s("flex-lt-md",!0)).directive("flexLtLg",s("flex-lt-lg",!0)).directive("layoutAlignLtMd",s("layout-align-lt-md")).directive("layoutAlignLtLg",s("layout-align-lt-lg")).directive("flexOrderLtMd",s("flex-order-lt-md")).directive("flexOrderLtLg",s("flex-order-lt-lg")).directive("offsetLtMd",s("flex-offset-lt-md")).directive("offsetLtLg",s("flex-offset-lt-lg")).directive("hideLtMd",s("hide-lt-md")).directive("hideLtLg",s("hide-lt-lg")).directive("showLtMd",s("show-lt-md")).directive("showLtLg",s("show-lt-lg")).config(n)}function n(){var e=!!document.querySelector("[md-layouts-disabled]");A.enabled=!e}function o(){return A.enabled=!1,{restrict:"A",priority:"900"}}function i(e){return["$timeout",function(n){return{restrict:"A",priority:-10,compile:function(o){return A.enabled?(o.addClass(e),function(t,o){n(function(){o.removeClass(e)},10,!1)}):t.noop}}}]}function r(e){function n(t,n,o){var i=d(n,e,o),r=o.$observe(o.$normalize(e),i);i(p(e,o,"")),t.$on("$destroy",function(){r()})}return["$mdUtil","$interpolate","$log",function(o,i,r){return g=o,b=i,v=r,{restrict:"A",compile:function(o,i){var r;return A.enabled&&(c(e,i,o,v),l(e,p(e,i,""),m(o,e,i)),r=n),r||t.noop}}}]}function a(e){function n(t,n){n.addClass(e)}return["$mdUtil","$interpolate","$log",function(o,i,r){return g=o,b=i,v=r,{restrict:"A",compile:function(o,i){var r;return A.enabled&&(l(e,p(e,i,""),m(o,e,i)),n(null,o),r=n),r||t.noop}}}]}function d(e,n){var o;return function(i){var r=l(n,i||"");t.isDefined(r)&&(o&&e.removeClass(o),o=r?n+"-"+r.trim().replace($,"-"):n,e.addClass(o))}}function s(e){var n=e.split("-");return["$log",function(o){return o.warn(e+"has been deprecated. Please use a `"+n[0]+"-gt-` variant."),t.noop}]}function c(e,t,n,o){var i,r,a,d=n[0].nodeName.toLowerCase();switch(e.replace(E,"")){case"flex":"md-button"!=d&&"fieldset"!=d||(r="<"+d+" "+e+">",a="https://github.com/philipwalton/flexbugs#9-some-html-elements-cant-be-flex-containers",i="Markup '{0}' may not work as expected in IE Browsers. Consult '{1}' for details.",o.warn(g.supplant(i,[r,a])))}}function l(e,n,o){var i;if(!u(n)){switch(e.replace(E,"")){case"layout":h(n,C)||(n=C[0]);break;case"flex":h(n,y)||isNaN(n)&&(n="");break;case"flex-offset":case"flex-order":n&&!isNaN(+n)||(n="0");break;case"layout-align":var r=f(n);n=g.supplant("{main}-{cross}",r);break;case"layout-padding":case"layout-margin":case"layout-fill":case"layout-wrap":case"layout-nowrap":n=""}n!=i&&(o||t.noop)(n)}return n?n.trim():""}function m(e,t,n){return function(e){u(e)||(n[n.$normalize(t)]=e)}}function u(e){return(e||"").indexOf(b.startSymbol())>-1}function p(e,t,n){var o=t.$normalize(e);return t[o]?t[o].trim().replace($,"-"):n||null}function h(e,t,n){e=n&&e?e.replace($,n):e;var o=!1;return e&&t.forEach(function(t){t=n?t.replace($,n):t,o=o||t===e}),o}function f(e){var t,n={main:"start",cross:"stretch"};return e=e||"",0!==e.indexOf("-")&&0!==e.indexOf(" ")||(e="none"+e),t=e.toLowerCase().trim().replace($,"-").split("-"),t.length&&"space"===t[0]&&(t=[t[0]+"-"+t[1],t[2]]),t.length>0&&(n.main=t[0]||n.main),t.length>1&&(n.cross=t[1]||n.cross),M.indexOf(n.main)<0&&(n.main="start"),T.indexOf(n.cross)<0&&(n.cross="stretch"),n}var g,b,v,E=/(-gt)?-(sm|md|lg|print)/g,$=/\s+/g,y=["grow","initial","auto","none","noshrink","nogrow"],C=["row","column"],M=["","start","center","end","stretch","space-around","space-between"],T=["","start","center","end","stretch"],A={enabled:!0,breakpoints:[]};e(t.module("material.core.layout",["ng"]))}()}(),function(){function e(e){this._$timeout=e,this._liveElement=this._createLiveElement(),this._announceTimeout=100}e.$inject=["$timeout"],t.module("material.core").service("$mdLiveAnnouncer",e),e.prototype.announce=function(e,t){t||(t="polite");var n=this;n._liveElement.textContent="",n._liveElement.setAttribute("aria-live",t),n._$timeout(function(){n._liveElement.textContent=e},n._announceTimeout,!1)},e.prototype._createLiveElement=function(){var e=document.createElement("div");return e.classList.add("md-visually-hidden"),e.setAttribute("role","status"),e.setAttribute("aria-atomic","true"),e.setAttribute("aria-live","polite"),document.body.appendChild(e),e}}(),function(){t.module("material.core.meta",[]).provider("$$mdMeta",function(){function e(e){if(r[e])return!0;var n=document.getElementsByName(e)[0];return!!n&&(r[e]=t.element(n),!0)}function n(n,o){if(e(n),r[n])r[n].attr("content",o);else{var a=t.element('');i.append(a),r[n]=a}return function(){r[n].attr("content",""),r[n].remove(),delete r[n]}}function o(t){if(!e(t))throw Error("$$mdMeta: could not find a meta tag with the name '"+t+"'");return r[t].attr("content")}var i=t.element(document.head),r={},a={setMeta:n,getMeta:o};return t.extend({},a,{$get:function(){return a}})})}(),function(){function e(e,o){function i(e){return e&&""!==e}var r,a=[],d={};return r={notFoundError:function(t,n){e.error((n||"")+"No instance found for handle",t)},getInstances:function(){return a},get:function(e){if(!i(e))return null;var t,n,o;for(t=0,n=a.length;t-1&&l.splice(e,1)}},$setTheme:function(e){t.registered(e)||a.warn("attempted to use unregistered theme '"+e+"'"),b.$mdTheme=e;for(var n=l.length;n--;)l[n](e)},$shouldWatch:i.parseAttributeBoolean(s.attr("md-theme-watch"))||t.ALWAYS_WATCH||h&&!g};s.data("$mdThemeController",b);var v=function(){var e=n(c.mdTheme)(d);return o(e)(d)||e},E=function(t){return"string"==typeof t?b.$setTheme(t):void r.when(e.isFunction(t)?t():t).then(function(e){b.$setTheme(e)})};E(v());var $=d.$watch(v,function(e){e&&(E(e),b.$shouldWatch||$())})}}}}function r(){return k.disableTheming=!0,{restrict:"A",priority:"900"}}function a(e){return e}function d(t,n,o){l(t,n),o=o.replace(/THEME_NAME/g,t.name);var i=new RegExp("\\.md-"+t.name+"-theme","g"),r=/'?"?\{\{\s*([a-zA-Z]+)-(A?\d+|hue-[0-3]|shadow|default)-?(\d\.?\d*)?(contrast)?\s*\}\}'?"?/g;o=o.replace(r,function(e,n,o,i,r){return"foreground"===n?"shadow"==o?t.foregroundShadow:t.foregroundPalette[o]||t.foregroundPalette[1]:(0!==o.indexOf("hue")&&"default"!==o||(o=t.colors[n].hues[o]),u((p[t.colors[n].name][o]||"")[r?"contrast":"value"],i))});var a=new RegExp("('|\")?{{\\s*([a-zA-Z]+)-(color|contrast)-?(\\d\\.?\\d*)?\\s*}}(\"|')?","g"),d=[];return e.forEach(["default","hue-1","hue-2","hue-3"],function(e){var n=o.replace(a,function(n,o,i,r,a){var d=t.colors[i],s=p[d.name],c=d.hues[e];return u(s[c]["color"===r?"value":"contrast"],a)});if("default"!==e&&(n=n.replace(i,".md-"+t.name+"-theme.md-"+e)),"default"==t.name){var r=/((?:\s|>|\.|\w|-|:|\(|\)|\[|\]|"|'|=)*)\.md-default-theme((?:\s|>|\.|\w|-|:|\(|\)|\[|\]|"|'|=)*)/g;n=n.replace(r,function(e,t,n){return e+", "+t+n})}d.push(n)}),d}function s(t,n){function o(t,n){var o=t.contrastDefaultColor,i=t.contrastLightColors||[],r=t.contrastStrongLightColors||[],a=t.contrastDarkColors||[];"string"==typeof i&&(i=i.split(" ")),"string"==typeof r&&(r=r.split(" ")),"string"==typeof a&&(a=a.split(" ")),delete t.contrastDefaultColor,delete t.contrastLightColors,delete t.contrastStrongLightColors,delete t.contrastDarkColors,e.forEach(t,function(n,d){function s(){return"light"===o?a.indexOf(d)>-1?E:r.indexOf(d)>-1?y:$:i.indexOf(d)>-1?r.indexOf(d)>-1?y:$:E}if(!e.isObject(n)){var c=m(n);if(!c)throw new Error("Color %1, in palette %2's hue %3, is invalid. Hex or rgb(a) color expected.".replace("%1",n).replace("%2",t.name).replace("%3",d));t[d]={hex:t[d],value:c,contrast:s()}}})}var i=document.head,r=i?i.firstElementChild:null,a=!k.disableTheming&&t.has("$MD_THEME_CSS")?t.get("$MD_THEME_CSS"):"";if(a+=k.registeredStyles.join(""),r&&0!==a.length){e.forEach(p,o);var d=a.split(/\}(?!(\}|'|"|;))/).filter(function(e){return e&&e.trim().length}).map(function(e){return e.trim()+"}"});C.forEach(function(e){_[e]=""}),d.forEach(function(e){for(var t,n=0;t=C[n];n++)if(e.indexOf(".md-"+t)>-1)return _[t]+=e;for(n=0;t=C[n];n++)if(e.indexOf(t)>-1)return _[t]+=e;return _[M]+=e}),k.generateOnDemand||e.forEach(n.THEMES,function(e){h[e.name]||"default"!==n.defaultTheme()&&"default"===e.name||c(e,e.name,k.nonce)})}}function c(e,t,n){var o=document.head,i=o?o.firstElementChild:null;h[t]||(C.forEach(function(t){for(var r=d(e,t,_[t]);r.length;){var a=r.shift();if(a){var s=document.createElement("style");s.setAttribute("md-theme-style",""),n&&s.setAttribute("nonce",n),s.appendChild(document.createTextNode(a)),o.insertBefore(s,i)}}}),h[e.name]=!0)}function l(e,t){if(!p[(e.colors[t]||{}).name])throw new Error("You supplied an invalid color palette for theme %1's %2 palette. Available palettes: %3".replace("%1",e.name).replace("%2",t).replace("%3",Object.keys(p).join(", ")))}function m(t){if(e.isArray(t)&&3==t.length)return t;if(/^rgb/.test(t))return t.replace(/(^\s*rgba?\(|\)\s*$)/g,"").split(",").map(function(e,t){return 3==t?parseFloat(e,10):parseInt(e,10)});if("#"==t.charAt(0)&&(t=t.substring(1)),/^([a-fA-F0-9]{3}){1,2}$/g.test(t)){var n=t.length/3,o=t.substr(0,n),i=t.substr(n,n),r=t.substr(2*n);return 1===n&&(o+=o,i+=i,r+=r),[parseInt(o,16),parseInt(i,16),parseInt(r,16)]}}function u(t,n){return t?(4==t.length&&(t=e.copy(t),n?t.pop():n=t.pop()),n&&("number"==typeof n||"string"==typeof n&&n.length)?"rgba("+t.join(",")+","+n+")":"rgb("+t.join(",")+")"):"rgb('0,0,0')"}t.$inject=["$mdThemingProvider"],i.$inject=["$mdTheming","$interpolate","$parse","$mdUtil","$q","$log"],a.$inject=["$mdTheming"],o.$inject=["$mdColorPalette","$$mdMetaProvider"],s.$inject=["$injector","$mdTheming"],e.module("material.core.theming",["material.core.theming.palette","material.core.meta"]).directive("mdTheme",i).directive("mdThemable",a).directive("mdThemesDisabled",r).provider("$mdTheming",o).config(t).run(s);var p,h={},f={name:"dark",1:"rgba(0,0,0,0.87)",2:"rgba(0,0,0,0.54)",3:"rgba(0,0,0,0.38)",4:"rgba(0,0,0,0.12)"},g={name:"light",1:"rgba(255,255,255,1.0)",2:"rgba(255,255,255,0.7)",3:"rgba(255,255,255,0.5)",4:"rgba(255,255,255,0.12)"},b="1px 1px 0px rgba(0,0,0,0.4), -1px -1px 0px rgba(0,0,0,0.4)",v="",E=m("rgba(0,0,0,0.87)"),$=m("rgba(255,255,255,0.87)"),y=m("rgb(255,255,255)"),C=["primary","accent","warn","background"],M="primary",T={accent:{"default":"A200","hue-1":"A100","hue-2":"A400","hue-3":"A700"},background:{"default":"50","hue-1":"A100","hue-2":"100","hue-3":"300"}},A={background:{"default":"A400","hue-1":"800","hue-2":"900","hue-3":"A200"}};C.forEach(function(e){var t={"default":"500","hue-1":"300","hue-2":"800","hue-3":"A100"};T[e]||(T[e]=t),A[e]||(A[e]=t)});var w=["50","100","200","300","400","500","600","700","800","900","A100","A200","A400","A700"],k={disableTheming:!1,generateOnDemand:!1,registeredStyles:[],nonce:null},_={}}(e.angular)}(),function(){!function(){function e(e){function n(e){return e.hasClass("md-icon-button")?{isMenuItem:e.hasClass("md-menu-item"),fitRipple:!0,center:!0}:{isMenuItem:e.hasClass("md-menu-item"),dimBackground:!0}}return{attach:function(o,i,r){return r=t.extend(n(i),r),e.attach(o,i,r)}}}e.$inject=["$mdInkRipple"],t.module("material.core").factory("$mdButtonInkRipple",e)}()}(),function(){!function(){function e(e){function n(n,o,i){return e.attach(n,o,t.extend({center:!0,dimBackground:!1,fitRipple:!0},i))}return{attach:n}}e.$inject=["$mdInkRipple"],t.module("material.core").factory("$mdCheckboxInkRipple",e)}()}(),function(){!function(){function e(e){function n(n,o,i){return e.attach(n,o,t.extend({center:!1,dimBackground:!0,outline:!1,rippleSize:"full"},i))}return{attach:n}}e.$inject=["$mdInkRipple"],t.module("material.core").factory("$mdListInkRipple",e)}()}(),function(){function e(e,n){return{controller:t.noop,link:function(t,o,i){i.hasOwnProperty("mdInkRippleCheckbox")?n.attach(t,o):e.attach(t,o)}}}function n(){function e(){n=!0}var n=!1;return{disableInkRipple:e,$get:["$injector",function(e){function i(i,r,a){return n||r.controller("mdNoInk")?t.noop:e.instantiate(o,{$scope:i,$element:r,rippleOptions:a})}return{attach:i}}]}}function o(e,n,o,i,r,a,d){this.$window=i,this.$timeout=r,this.$mdUtil=a,this.$mdColorUtil=d,this.$scope=e,this.$element=n,this.options=o,this.mousedown=!1,this.ripples=[],this.timeout=null,this.lastRipple=null,a.valueOnUse(this,"container",this.createContainer),this.$element.addClass("md-ink-ripple"),(n.controller("mdInkRipple")||{}).createRipple=t.bind(this,this.createRipple),(n.controller("mdInkRipple")||{}).setColor=t.bind(this,this.color),this.bindEvents()}function i(e,n){(e.mousedown||e.lastRipple)&&(e.mousedown=!1,e.$mdUtil.nextTick(t.bind(e,n),!1))}function r(){return{controller:t.noop}}o.$inject=["$scope","$element","rippleOptions","$window","$timeout","$mdUtil","$mdColorUtil"],e.$inject=["$mdButtonInkRipple","$mdCheckboxInkRipple"],t.module("material.core").provider("$mdInkRipple",n).directive("mdInkRipple",e).directive("mdNoInk",r).directive("mdNoBar",r).directive("mdNoStretch",r);var a=450;o.prototype.color=function(e){function n(){var e=o.options&&o.options.colorElement?o.options.colorElement:[],t=e.length?e[0]:o.$element[0];return t?o.$window.getComputedStyle(t).color:"rgb(0,0,0)"}var o=this;return t.isDefined(e)&&(o._color=o._parseColor(e)),o._color||o._parseColor(o.inkRipple())||o._parseColor(n())},o.prototype.calculateColor=function(){return this.color()},o.prototype._parseColor=function(e,t){t=t||1;var n=this.$mdColorUtil;if(e)return 0===e.indexOf("rgba")?e.replace(/\d?\.?\d*\s*\)\s*$/,(.1*t).toString()+")"):0===e.indexOf("rgb")?n.rgbToRgba(e):0===e.indexOf("#")?n.hexToRgba(e):void 0},o.prototype.bindEvents=function(){this.$element.on("mousedown",t.bind(this,this.handleMousedown)),this.$element.on("mouseup touchend",t.bind(this,this.handleMouseup)),this.$element.on("mouseleave",t.bind(this,this.handleMouseup)),this.$element.on("touchmove",t.bind(this,this.handleTouchmove))},o.prototype.handleMousedown=function(e){if(!this.mousedown)if(e.hasOwnProperty("originalEvent")&&(e=e.originalEvent),this.mousedown=!0,this.options.center)this.createRipple(this.container.prop("clientWidth")/2,this.container.prop("clientWidth")/2);else if(e.srcElement!==this.$element[0]){var t=this.$element[0].getBoundingClientRect(),n=e.clientX-t.left,o=e.clientY-t.top;this.createRipple(n,o)}else this.createRipple(e.offsetX,e.offsetY)},o.prototype.handleMouseup=function(){ -i(this,this.clearRipples)},o.prototype.handleTouchmove=function(){i(this,this.deleteRipples)},o.prototype.deleteRipples=function(){for(var e=0;e');return this.$element.append(e),e},o.prototype.clearTimeout=function(){this.timeout&&(this.$timeout.cancel(this.timeout),this.timeout=null)},o.prototype.isRippleAllowed=function(){var e=this.$element[0];do{if(!e.tagName||"BODY"===e.tagName)break;if(e&&t.isFunction(e.hasAttribute)){if(e.hasAttribute("disabled"))return!1;if("false"===this.inkRipple()||"0"===this.inkRipple())return!1}}while(e=e.parentNode);return!0},o.prototype.inkRipple=function(){return this.$element.attr("md-ink-ripple")},o.prototype.createRipple=function(e,n){function o(e,t,n){return e?Math.max(t,n):Math.sqrt(Math.pow(t,2)+Math.pow(n,2))}if(this.isRippleAllowed()){var i=this,r=i.$mdColorUtil,d=t.element('
'),s=this.$element.prop("clientWidth"),c=this.$element.prop("clientHeight"),l=2*Math.max(Math.abs(s-e),e),m=2*Math.max(Math.abs(c-n),n),u=o(this.options.fitRipple,l,m),p=this.calculateColor();d.css({left:e+"px",top:n+"px",background:"black",width:u+"px",height:u+"px",backgroundColor:r.rgbaToRgb(p),borderColor:r.rgbaToRgb(p)}),this.lastRipple=d,this.clearTimeout(),this.timeout=this.$timeout(function(){i.clearTimeout(),i.mousedown||i.fadeInComplete(d)},.35*a,!1),this.options.dimBackground&&this.container.css({backgroundColor:p}),this.container.append(d),this.ripples.push(d),d.addClass("md-ripple-placed"),this.$mdUtil.nextTick(function(){d.addClass("md-ripple-scaled md-ripple-active"),i.$timeout(function(){i.clearRipples()},a,!1)},!1)}},o.prototype.fadeInComplete=function(e){this.lastRipple===e?this.timeout||this.mousedown||this.removeRipple(e):this.removeRipple(e)},o.prototype.removeRipple=function(e){var t=this,n=this.ripples.indexOf(e);n<0||(this.ripples.splice(this.ripples.indexOf(e),1),e.removeClass("md-ripple-active"),e.addClass("md-ripple-remove"),0===this.ripples.length&&this.container.css({backgroundColor:""}),this.$timeout(function(){t.fadeOutComplete(e)},a,!1))},o.prototype.fadeOutComplete=function(e){e.remove(),this.lastRipple=null}}(),function(){!function(){function e(e){function n(n,o,i){return e.attach(n,o,t.extend({center:!1,dimBackground:!0,outline:!1,rippleSize:"full"},i))}return{attach:n}}e.$inject=["$mdInkRipple"],t.module("material.core").factory("$mdTabInkRipple",e)}()}(),function(){function n(n,o,i,r,a){var d;return d={translate3d:function(e,t,n,o){function i(n){return a(e,{to:n||t,addClass:o.transitionOutClass,removeClass:o.transitionInClass,duration:o.duration}).start()}return a(e,{from:t,to:n,addClass:o.transitionInClass,removeClass:o.transitionOutClass,duration:o.duration}).start().then(function(){return i})},waitTransitionEnd:function(t,n){var a=3e3;return o(function(o,d){function s(e){e&&e.target!==t[0]||(e&&i.cancel(l),t.off(r.CSS.TRANSITIONEND,s),o())}function c(n){return n=n||e.getComputedStyle(t[0]),"0s"==n.transitionDuration||!n.transition&&!n.transitionProperty}n=n||{},c(n.cachedTransitionStyles)&&(a=0);var l=i(s,n.timeout||a);t.on(r.CSS.TRANSITIONEND,s)})},calculateTransformValues:function(e,t){function n(){var t=e?e.parent():null,n=t?t.parent():null;return n?d.clientRect(n):null}var o=t.element,i=t.bounds;if(o||i){var r=o?d.clientRect(o)||n():d.copyRect(i),a=d.copyRect(e[0].getBoundingClientRect()),s=d.centerPointFor(a),c=d.centerPointFor(r);return{centerX:c.x-s.x,centerY:c.y-s.y,scaleX:Math.round(100*Math.min(.5,r.width/a.width))/100,scaleY:Math.round(100*Math.min(.5,r.height/a.height))/100}}return{centerX:0,centerY:0,scaleX:.5,scaleY:.5}},calculateZoomToOrigin:function(e,o){var i="translate3d( {centerX}px, {centerY}px, 0 ) scale( {scaleX}, {scaleY} )",r=t.bind(null,n.supplant,i);return r(d.calculateTransformValues(e,o))},calculateSlideToOrigin:function(e,o){var i="translate3d( {centerX}px, {centerY}px, 0 )",r=t.bind(null,n.supplant,i);return r(d.calculateTransformValues(e,o))},toCss:function(e){function n(e,n,i){t.forEach(n.split(" "),function(e){o[e]=i})}var o={},i="left top right bottom width height x y min-width min-height max-width max-height";return t.forEach(e,function(e,a){if(!t.isUndefined(e))if(i.indexOf(a)>=0)o[a]=e+"px";else switch(a){case"transition":n(a,r.CSS.TRANSITION,e);break;case"transform":n(a,r.CSS.TRANSFORM,e);break;case"transformOrigin":n(a,r.CSS.TRANSFORM_ORIGIN,e);break;case"font-size":o["font-size"]=e}}),o},toTransformCss:function(e,n,o){var i={};return t.forEach(r.CSS.TRANSFORM.split(" "),function(t){i[t]=e}),n&&(o=o||"all 0.4s cubic-bezier(0.25, 0.8, 0.25, 1) !important",i.transition=o),i},copyRect:function(e,n){return e?(n=n||{},t.forEach("left top right bottom width height".split(" "),function(t){n[t]=Math.round(e[t])}),n.width=n.width||n.right-n.left,n.height=n.height||n.bottom-n.top,n):null},clientRect:function(e){var n=t.element(e)[0].getBoundingClientRect(),o=function(e){return e&&e.width>0&&e.height>0};return o(n)?d.copyRect(n):null},centerPointFor:function(e){return e?{x:Math.round(e.left+e.width/2),y:Math.round(e.top+e.height/2)}:{x:0,y:0}}}}t.module("material.core").factory("$$mdAnimate",["$q","$timeout","$mdConstant","$animateCss",function(e,t,o,i){return function(r){return n(r,e,t,o,i)}}])}(),function(){t.version.minor>=4?t.module("material.core.animate",[]):!function(){function e(e){return e.replace(/-[a-z]/g,function(e){return e.charAt(1).toUpperCase()})}var n=t.forEach,o=t.isDefined(document.documentElement.style.WebkitAppearance),i=o?"-webkit-":"",r=(o?"webkitTransitionEnd ":"")+"transitionend",a=(o?"webkitAnimationEnd ":"")+"animationend",d=["$document",function(e){return function(){return e[0].body.clientWidth+1}}],s=["$$rAF",function(e){return function(){var t=!1;return e(function(){t=!0}),function(n){t?n():e(n)}}}],c=["$q","$$rAFMutex",function(e,o){function i(e){this.setHost(e),this._doneCallbacks=[],this._runInAnimationFrame=o(),this._state=0}var r=0,a=1,d=2;return i.prototype={setHost:function(e){this.host=e||{}},done:function(e){this._state===d?e():this._doneCallbacks.push(e)},progress:t.noop,getPromise:function(){if(!this.promise){var t=this;this.promise=e(function(e,n){t.done(function(t){t===!1?n():e()})})}return this.promise},then:function(e,t){return this.getPromise().then(e,t)},"catch":function(e){return this.getPromise()["catch"](e)},"finally":function(e){return this.getPromise()["finally"](e)},pause:function(){this.host.pause&&this.host.pause()},resume:function(){this.host.resume&&this.host.resume()},end:function(){this.host.end&&this.host.end(),this._resolve(!0)},cancel:function(){this.host.cancel&&this.host.cancel(),this._resolve(!1)},complete:function(e){var t=this;t._state===r&&(t._state=a,t._runInAnimationFrame(function(){t._resolve(e)}))},_resolve:function(e){this._state!==d&&(n(this._doneCallbacks,function(t){t(e)}),this._doneCallbacks.length=0,this._state=d)}},i.all=function(e,t){function o(n){r=r&&n,++i===e.length&&t(r)}var i=0,r=!0;n(e,function(e){e.done(o)})},i}];t.module("material.core.animate",[]).factory("$$forceReflow",d).factory("$$AnimateRunner",c).factory("$$rAFMutex",s).factory("$animateCss",["$window","$$rAF","$$AnimateRunner","$$forceReflow","$$jqLite","$timeout","$animate",function(t,d,s,c,l,m,u){function p(o,d){var c=[],l=y(o),p=l&&u.enabled(),g=!1,M=!1;p&&(d.transitionStyle&&c.push([i+"transition",d.transitionStyle]),d.keyframeStyle&&c.push([i+"animation",d.keyframeStyle]),d.delay&&c.push([i+"transition-delay",d.delay+"s"]),d.duration&&c.push([i+"transition-duration",d.duration+"s"]),g=d.keyframeStyle||d.to&&(d.duration>0||d.transitionStyle),M=!!d.addClass||!!d.removeClass,C(o,!0));var T=p&&(g||M);E(o,d);var A,w,k=!1;return{close:t.close,start:function(){function t(){if(!k)return k=!0,A&&w&&o.off(A,w),h(o,d),v(o,d),n(c,function(t){l.style[e(t[0])]=""}),u.complete(!0),u}var u=new s;return b(function(){if(C(o,!1),!T)return t();n(c,function(t){var n=t[0],o=t[1];l.style[e(n)]=o}),h(o,d);var s=f(o);if(0===s.duration)return t();var u=[];d.easing&&(s.transitionDuration&&u.push([i+"transition-timing-function",d.easing]),s.animationDuration&&u.push([i+"animation-timing-function",d.easing])),d.delay&&s.animationDelay&&u.push([i+"animation-delay",d.delay+"s"]),d.duration&&s.animationDuration&&u.push([i+"animation-duration",d.duration+"s"]),n(u,function(t){var n=t[0],o=t[1];l.style[e(n)]=o,c.push(t)});var p=s.delay,g=1e3*p,b=s.duration,v=1e3*b,E=Date.now();A=[],s.transitionDuration&&A.push(r),s.animationDuration&&A.push(a),A=A.join(" "),w=function(e){e.stopPropagation();var n=e.originalEvent||e,o=n.timeStamp||Date.now(),i=parseFloat(n.elapsedTime.toFixed(3));Math.max(o-E,0)>=g&&i>=b&&t()},o.on(A,w),$(o,d),m(t,g+1.5*v,!1)}),u}}}function h(e,t){t.addClass&&(l.addClass(e,t.addClass),t.addClass=null),t.removeClass&&(l.removeClass(e,t.removeClass),t.removeClass=null)}function f(e){function n(e){return o?"Webkit"+e.charAt(0).toUpperCase()+e.substr(1):e}var i=y(e),r=t.getComputedStyle(i),a=g(r[n("transitionDuration")]),d=g(r[n("animationDuration")]),s=g(r[n("transitionDelay")]),c=g(r[n("animationDelay")]);d*=parseInt(r[n("animationIterationCount")],10)||1;var l=Math.max(d,a),m=Math.max(c,s);return{duration:l,delay:m,animationDuration:d,transitionDuration:a,animationDelay:c,transitionDelay:s}}function g(e){var t=0,o=(e||"").split(/\s*,\s*/);return n(o,function(e){"s"==e.charAt(e.length-1)&&(e=e.substring(0,e.length-1)),e=parseFloat(e)||0,t=t?Math.max(e,t):e}),t}function b(e){M&&M(),T.push(e),M=d(function(){M=null;for(var e=c(),t=0;t0&&(t.pointer.distanceY>20||Math.abs(t.pointer.velocityY)>o)){var i=e.prop("offsetHeight")-t.pointer.distanceY,a=Math.min(i/t.pointer.velocityY*.75,500);e.css(n.CSS.TRANSITION_DURATION,a+"ms"),r.nextTick(d.cancel,!0)}else e.css(n.CSS.TRANSITION_DURATION,""),e.css(n.CSS.TRANSFORM,"")}var m=c.register(t,"drag",{horizontal:!1});return t.on("$md.dragstart",a).on("$md.drag",s).on("$md.dragend",l),{element:e,cleanup:function(){m(),t.off("$md.dragstart",a),t.off("$md.drag",s),t.off("$md.dragend",l)}}}var h;return{themable:!0,onShow:m,onRemove:u,disableBackdrop:!1,escapeToClose:!0,clickOutsideToClose:!0,disableParentScroll:!0}}n.$inject=["$animate","$mdConstant","$mdUtil","$mdTheming","$mdBottomSheet","$rootElement","$mdGesture","$log"];var o=.5,i=80;return e("$mdBottomSheet").setDefaults({methods:["disableParentScroll","escapeToClose","clickOutsideToClose"],options:n})}e.$inject=["$mdBottomSheet"],n.$inject=["$$interimElementProvider"],t.module("material.components.bottomSheet",["material.core","material.components.backdrop"]).directive("mdBottomSheet",e).provider("$mdBottomSheet",n)}(),function(){t.module("material.components.backdrop",["material.core"]).directive("mdBackdrop",["$mdTheming","$mdUtil","$animate","$rootElement","$window","$log","$$rAF","$document",function(e,n,o,i,r,a,d,s){function c(c,m,u){function p(){var e=parseInt(h.height,10)+Math.abs(parseInt(h.top,10));m.css("height",e+"px")}o.pin&&o.pin(m,i);var h;d(function(){if(h=r.getComputedStyle(s[0].body),"fixed"===h.position){var o=n.debounce(function(){h=r.getComputedStyle(s[0].body),p()},60,null,!1);p(),t.element(r).on("resize",o),c.$on("$destroy",function(){t.element(r).off("resize",o)})}var i=m.parent();if(i.length){"BODY"===i[0].nodeName&&m.css("position","fixed");var d=r.getComputedStyle(i[0]);"static"===d.position&&a.warn(l),e.inherit(m,i)}})}var l=" may not work properly in a scrolled, static-positioned parent container.";return{restrict:"E",link:c}}])}(),function(){function e(e){return{restrict:"E",link:function(t,n){e(n)}}}function n(e,n,o,i){function r(e){return t.isDefined(e.href)||t.isDefined(e.ngHref)||t.isDefined(e.ngLink)||t.isDefined(e.uiSref)}function a(e,t){if(r(t))return'';var n="undefined"==typeof t.type?"button":t.type;return''}function d(a,d,s){n(d),e.attach(a,d),o.expectWithoutText(d,"aria-label"),r(s)&&t.isDefined(s.ngDisabled)&&a.$watch(s.ngDisabled,function(e){d.attr("tabindex",e?-1:0)}),d.on("click",function(e){s.disabled===!0&&(e.preventDefault(),e.stopImmediatePropagation())}),d.hasClass("md-no-focus")||(d.on("focus",function(){i.isUserInvoked()&&"keyboard"!==i.getLastInteractionType()||d.addClass("md-focused")}),d.on("blur",function(){d.removeClass("md-focused")}))}return{restrict:"EA",replace:!0,transclude:!0,template:a,link:d}}n.$inject=["$mdButtonInkRipple","$mdTheming","$mdAria","$mdInteraction"],e.$inject=["$mdTheming"],t.module("material.components.button",["material.core"]).directive("mdButton",n).directive("a",e)}(),function(){function e(e){return{restrict:"E",link:function(t,n,o){n.addClass("_md"),e(n)}}}e.$inject=["$mdTheming"],t.module("material.components.card",["material.core"]).directive("mdCard",e)}(),function(){function e(e,n,o,i,r,a){function d(d,s){function c(d,s,c,l){function m(e,t,n){c[e]&&d.$watch(c[e],function(e){n[e]&&s.attr(t,n[e])})}function u(e){var t=e.which||e.keyCode;t!==o.KEY_CODE.SPACE&&t!==o.KEY_CODE.ENTER||(e.preventDefault(),s.addClass("md-focused"),p(e))}function p(e){s[0].hasAttribute("disabled")||d.skipToggle||d.$apply(function(){var t=c.ngChecked&&c.ngClick?c.checked:!v.$viewValue;v.$setViewValue(t,e&&e.type),v.$render()})}function h(){s.toggleClass("md-checked",!!v.$viewValue&&!g)}function f(e){g=e!==!1,g&&s.attr("aria-checked","mixed"),s.toggleClass("md-indeterminate",g)}var g,b=l[0],v=l[1]||r.fakeNgModel(),E=l[2];if(b){var $=b.isErrorGetter||function(){return v.$invalid&&(v.$touched||E&&E.$submitted)};b.input=s,d.$watch($,b.setInvalid)}i(s),s.children().on("focus",function(){s.focus()}),r.parseAttributeBoolean(c.mdIndeterminate)&&(f(),d.$watch(c.mdIndeterminate,f)),c.ngChecked&&d.$watch(d.$eval.bind(d,c.ngChecked),function(e){v.$setViewValue(e),v.$render()}),m("ngDisabled","tabindex",{"true":"-1","false":c.tabindex}),n.expectWithText(s,"aria-label"),e.link.pre(d,{on:t.noop,0:{}},c,[v]),s.on("click",p).on("keypress",u).on("focus",function(){"keyboard"===a.getLastInteractionType()&&s.addClass("md-focused")}).on("blur",function(){s.removeClass("md-focused")}),v.$render=h}return s.$set("tabindex",s.tabindex||"0"),s.$set("type","checkbox"),s.$set("role",s.type),{pre:function(e,t){t.on("click",function(e){this.hasAttribute("disabled")&&e.stopImmediatePropagation()})},post:c}}return e=e[0],{restrict:"E",transclude:!0,require:["^?mdInputContainer","?ngModel","?^form"],priority:o.BEFORE_NG_ARIA,template:'
',compile:d}}e.$inject=["inputDirective","$mdAria","$mdConstant","$mdTheming","$mdUtil","$mdInteraction"],t.module("material.components.checkbox",["material.core"]).directive("mdCheckbox",e)}(),function(){t.module("material.components.chips",["material.core","material.components.autocomplete"])}(),function(){!function(){function e(e,n,o){function r(e,t){try{t&&e.css(s(t))}catch(n){o.error(n.message)}}function a(e){var t=l(e);return d(t)}function d(t,o){o=o||!1;var i=e.PALETTES[t.palette][t.hue];return i=o?i.contrast:i.value,n.supplant("rgba({0}, {1}, {2}, {3})",[i[0],i[1],i[2],i[3]||t.opacity])}function s(e){var n={},o=e.hasOwnProperty("color");return t.forEach(e,function(e,t){var i=l(e),r=t.indexOf("background")>-1;n[t]=d(i),r&&!o&&(n.color=d(i,!0))}),n}function c(n){return t.isDefined(e.THEMES[n.split("-")[0]])}function l(n){var o=n.split("-"),i=t.isDefined(e.THEMES[o[0]]),r=i?o.splice(0,1)[0]:e.defaultTheme();return{theme:r,palette:m(o,r),hue:u(o,r),opacity:o[2]||1}}function m(t,o){var r=t.length>1&&i.indexOf(t[1])!==-1,a=t[0].replace(/([a-z])([A-Z])/g,"$1-$2").toLowerCase();if(r&&(a=t[0]+"-"+t.splice(1,1)),i.indexOf(a)===-1){var d=e.THEMES[o].colors[a];if(!d)throw new Error(n.supplant("mdColors: couldn't find '{palette}' in the palettes.",{palette:a}));a=d.name}return a}function u(t,o){var i=e.THEMES[o].colors;if("hue"===t[1]){var r=parseInt(t.splice(2,1)[0],10);if(r<1||r>3)throw new Error(n.supplant("mdColors: 'hue-{hueNumber}' is not a valid hue, can be only 'hue-1', 'hue-2' and 'hue-3'",{hueNumber:r}));if(t[1]="hue-"+r,!(t[0]in i))throw new Error(n.supplant("mdColors: 'hue-x' can only be used with [{availableThemes}], but was used with '{usedTheme}'",{availableThemes:Object.keys(i).join(", "),usedTheme:t[0]}));return i[t[0]].hues[t[1]]}return t[1]||i[t[0]in i?t[0]:"primary"].hues["default"]}return i=i||Object.keys(e.PALETTES),{applyThemeColors:r,getThemeColor:a,hasTheme:c}}function n(e,n,i,r){return{restrict:"A",require:["^?mdTheme"],compile:function(a,d){function s(){var e=d.mdColors,i=e.indexOf("::")>-1,r=!!i||o.test(d.mdColors);d.mdColors=e.replace("::","");var a=t.isDefined(d.mdColorsWatch);return!i&&!r&&(!a||n.parseAttributeBoolean(d.mdColorsWatch))}var c=s();return function(n,o,a,d){var s=d[0],l={},m=function(t){"string"!=typeof t&&(t=""),a.mdColors||(a.mdColors="{}");var o=r(a.mdColors)(n);return s&&Object.keys(o).forEach(function(n){var i=o[n];e.hasTheme(i)||(o[n]=(t||s.$mdTheme)+"-"+i)}),u(o),o},u=function(e){if(!t.equals(e,l)){var n=Object.keys(l);l.background&&!n.color&&n.push("color"),n.forEach(function(e){o.css(e,"")})}l=e},p=t.noop;s&&(p=s.registerChanges(function(t){e.applyThemeColors(o,m(t))})),n.$on("$destroy",function(){p()});try{c?n.$watch(m,t.bind(this,e.applyThemeColors,o),!0):e.applyThemeColors(o,m())}catch(h){i.error(h.message)}}}}}n.$inject=["$mdColors","$mdUtil","$log","$parse"],e.$inject=["$mdTheming","$mdUtil","$log"];var o=/^{((\s|,)*?["'a-zA-Z-]+?\s*?:\s*?('|")[a-zA-Z0-9-.]*('|"))+\s*}$/,i=null;t.module("material.components.colors",["material.core"]).directive("mdColors",n).service("$mdColors",e)}()}(),function(){function e(e){function t(e,t){this.$scope=e,this.$element=t}return{restrict:"E",controller:["$scope","$element",t],link:function(t,o){o.addClass("_md"),e(o),t.$broadcast("$mdContentLoaded",o),n(o[0])}}}function n(e){t.element(e).on("$md.pressdown",function(t){"t"===t.pointer.type&&(t.$materialScrollFixed||(t.$materialScrollFixed=!0,0===e.scrollTop?e.scrollTop=1:e.scrollHeight===e.scrollTop+e.offsetHeight&&(e.scrollTop-=1)))})}e.$inject=["$mdTheming"],t.module("material.components.content",["material.core"]).directive("mdContent",e)}(),function(){t.module("material.components.datepicker",["material.core","material.components.icon","material.components.virtualRepeat"])}(),function(){function e(e,n,o){return{restrict:"E",link:function(i,r){r.addClass("_md"),n(r),e(function(){function e(){r.toggleClass("md-content-overflow",a.scrollHeight>a.clientHeight)}var n,a=r[0].querySelector("md-dialog-content");a&&(n=a.getElementsByTagName("img"),e(),t.element(n).on("load",e)),i.$on("$destroy",function(){o.destroy(r)})})}}}function o(e){function o(){return{template:['',' ','

{{ dialog.title }}

','
','
',"

{{::dialog.mdTextContent}}

","
",' ',' '," ","
"," ",' '," {{ dialog.cancel }}"," ",' '," {{ dialog.ok }}"," "," ","
"].join("").replace(/\s\s+/g,""),controller:i,controllerAs:"dialog",bindToController:!0}}function i(e,t){this.$onInit=function(){var n="prompt"==this.$type;n&&this.initialValue&&(this.result=this.initialValue),this.hide=function(){e.hide(!n||this.result)},this.abort=function(){e.cancel()},this.keypress=function(n){n.keyCode===t.KEY_CODE.ENTER&&e.hide(this.result)}}}function r(e,o,i,r,s,c,l,m,u,p,h,f,g){function b(e){e.defaultTheme=h.defaultTheme(),y(e)}function v(e,t,n,o){if(o){var i=o.htmlContent||n.htmlContent||"",r=o.textContent||n.textContent||o.content||n.content||"";if(i&&!p.has("$sanitize"))throw Error("The ngSanitize module must be loaded in order to use htmlContent.");if(i&&r)throw Error("md-dialog cannot have both `htmlContent` and `textContent`");o.mdHtmlContent=i,o.mdTextContent=r}}function E(e,n,o,r){function a(){n[0].querySelector(".md-actions")&&u.warn("Using a class of md-actions is deprecated, please use .")}function d(){function e(){return n[0].querySelector(".dialog-close, md-dialog-actions button:last-child")}if(o.focusOnOpen){var t=i.findFocusTarget(n)||e()||s;t.focus()}}t.element(c[0].body).addClass("md-dialog-is-showing");var s=n.find("md-dialog");if(s.hasClass("ng-cloak")){var l="$mdDialog: using `` will affect the dialog opening animations.";u.warn(l,n[0])}return C(o),A(s,o),T(e,n,o),M(n,o),_(n,o).then(function(){w(n,o),a(),d()})}function $(e,n,o){function i(){return x(n,o)}function r(){t.element(c[0].body).removeClass("md-dialog-is-showing"),o.contentElement&&o.reverseContainerStretch(),o.cleanupElement(),o.$destroy||"keyboard"!==o.originInteraction||o.origin.focus()}return o.deactivateListeners(),o.unlockScreenReader(),o.hideBackdrop(o.$destroy),a&&a.parentNode&&a.parentNode.removeChild(a),d&&d.parentNode&&d.parentNode.removeChild(d),o.$destroy?r():i().then(r)}function y(e){var n;e.targetEvent&&e.targetEvent.target&&(n=t.element(e.targetEvent.target));var o=n&&n.controller("mdTheme");if(o){e.themeWatch=o.$shouldWatch;var i=e.theme||o.$mdTheme;i&&(e.scope.theme=i);var r=o.registerChanges(function(t){e.scope.theme=t,e.themeWatch||r()})}}function C(e){function o(e,o){var i=t.element(e||{});if(i&&i.length){var r={top:0,left:0,height:0,width:0},a=t.isFunction(i[0].getBoundingClientRect);return t.extend(o||{},{element:a?i:n,bounds:a?i[0].getBoundingClientRect():t.extend({},r,i[0]),focus:t.bind(i,i.focus)})}}function i(e,n){return t.isString(e)&&(e=c[0].querySelector(e)),t.element(e||n)}e.origin=t.extend({element:null,bounds:null,focus:t.noop},e.origin||{}),e.parent=i(e.parent,m),e.closeTo=o(i(e.closeTo)),e.openFrom=o(i(e.openFrom)),e.targetEvent&&(e.origin=o(e.targetEvent.target,e.origin),e.originInteraction=g.getLastInteractionType())}function M(n,o){var a=t.element(l),d=i.debounce(function(){k(n,o)},60),s=[],c=function(){var t="alert"==o.$type?e.hide:e.cancel;i.nextTick(t,!0)};if(o.escapeToClose){var m=o.parent,u=function(e){e.keyCode===r.KEY_CODE.ESCAPE&&(e.stopPropagation(),e.preventDefault(),c())};n.on("keydown",u),m.on("keydown",u),s.push(function(){n.off("keydown",u),m.off("keydown",u)})}if(a.on("resize",d),s.push(function(){a.off("resize",d)}),o.clickOutsideToClose){var p,h=n,f=function(e){p=e.target},g=function(e){p===h[0]&&e.target===h[0]&&(e.stopPropagation(),e.preventDefault(),c())};h.on("mousedown",f),h.on("mouseup",g),s.push(function(){h.off("mousedown",f),h.off("mouseup",g)})}o.deactivateListeners=function(){s.forEach(function(e){e()}),o.deactivateListeners=null}}function T(e,t,n){n.disableParentScroll&&(n.restoreScroll=i.disableScrollAround(t,n.parent)),n.hasBackdrop&&(n.backdrop=i.createBackdrop(e,"md-dialog-backdrop md-opaque"),s.enter(n.backdrop,n.parent)),n.hideBackdrop=function(e){n.backdrop&&(e?n.backdrop.remove():s.leave(n.backdrop)),n.disableParentScroll&&(n.restoreScroll&&n.restoreScroll(),delete n.restoreScroll),n.hideBackdrop=null}}function A(e,t){var n="alert"===t.$type?"alertdialog":"dialog",r=e.find("md-dialog-content"),s=e.attr("id"),c="dialogContent_"+(s||i.nextUid());e.attr({role:n,tabIndex:"-1"}),0===r.length&&(r=e,s&&(c=s)),r.attr("id",c),e.attr("aria-describedby",c),t.ariaLabel?o.expect(e,"aria-label",t.ariaLabel):o.expectAsync(e,"aria-label",function(){if(t.title)return t.title;var e=r.text().split(/\s+/);return e.length>3&&(e=e.slice(0,3).concat("...")),e.join(" ")}),a=document.createElement("div"),a.classList.add("md-dialog-focus-trap"),a.tabIndex=0,d=a.cloneNode(!1);var l=function(){e.focus()};a.addEventListener("focus",l),d.addEventListener("focus",l),e[0].parentNode.insertBefore(a,e[0]),e.after(d)}function w(e,t){function n(e){for(;e.parentNode;){if(e===document.body)return;for(var t=e.parentNode.children,i=0;i/g.test(e)?""+(e||"")+"":e||""}var o=f.startSymbol(),i=f.endSymbol(),r=o+(t.themeWatch?"":"::")+"theme"+i;return'
'+n(e)+"
"}}}i.$inject=["$mdDialog","$mdConstant"],r.$inject=["$mdDialog","$mdAria","$mdUtil","$mdConstant","$animate","$document","$window","$rootElement","$log","$injector","$mdTheming","$interpolate","$mdInteraction"];var a,d;return e("$mdDialog").setDefaults({methods:["disableParentScroll","hasBackdrop","clickOutsideToClose","escapeToClose","targetEvent","closeTo","openFrom","parent","fullscreen","multiple"],options:r}).addPreset("alert",{methods:["title","htmlContent","textContent","content","ariaLabel","ok","theme","css"],options:o}).addPreset("confirm",{methods:["title","htmlContent","textContent","content","ariaLabel","ok","cancel","theme","css"],options:o}).addPreset("prompt",{methods:["title","htmlContent","textContent","initialValue","content","placeholder","ariaLabel","ok","cancel","theme","css","required"],options:o})}e.$inject=["$$rAF","$mdTheming","$mdDialog"],o.$inject=["$$interimElementProvider"],t.module("material.components.dialog",["material.core","material.components.backdrop"]).directive("mdDialog",e).provider("$mdDialog",o)}(),function(){function e(e){return{restrict:"E",link:e}}e.$inject=["$mdTheming"],t.module("material.components.divider",["material.core"]).directive("mdDivider",e)}(),function(){!function(){function e(e){return{restrict:"E",require:["^?mdFabSpeedDial","^?mdFabToolbar"],compile:function(t,n){var o=t.children(),i=e.prefixer().hasAttribute(o,"ng-repeat");i?o.addClass("md-fab-action-item"):o.wrap('
')}}}e.$inject=["$mdUtil"],t.module("material.components.fabActions",["material.core"]).directive("mdFabActions",e)}()}(),function(){!function(){function e(e,n,o,i,r,a){function d(){N.direction=N.direction||"down",N.isOpen=N.isOpen||!1,l(),n.addClass("md-animations-waiting")}function s(){var o=["click","focusin","focusout"];t.forEach(o,function(e){n.on(e,c)}),e.$on("$destroy",function(){t.forEach(o,function(e){n.off(e,c)}),h()})}function c(e){"click"==e.type&&k(e),"focusout"!=e.type||D||(D=a(function(){N.close()},100,!1)),"focusin"==e.type&&D&&(a.cancel(D),D=null)}function l(){N.currentActionIndex=-1}function m(){e.$watch("vm.direction",function(e,t){o.removeClass(n,"md-"+t),o.addClass(n,"md-"+e),l()});var t,i;e.$watch("vm.isOpen",function(e){l(),t&&i||(t=_(),i=x()),e?p():h();var r=e?"md-is-open":"",a=e?"":"md-is-open";t.attr("aria-haspopup",!0),t.attr("aria-expanded",e),i.attr("aria-hidden",!e),o.setClass(n,r,a)})}function u(){n[0].scrollHeight>0?o.addClass(n,"_md-animations-ready").then(function(){n.removeClass("md-animations-waiting")}):S<10&&(a(u,100),S+=1)}function p(){n.on("keydown",g),i.nextTick(function(){t.element(document).on("click touchend",f)})}function h(){n.off("keydown",g),t.element(document).off("click touchend",f)}function f(e){if(e.target){var t=i.getClosest(e.target,"md-fab-trigger"),n=i.getClosest(e.target,"md-fab-actions");t||n||N.close()}}function g(e){ -switch(e.which){case r.KEY_CODE.ESCAPE:return N.close(),e.preventDefault(),!1;case r.KEY_CODE.LEFT_ARROW:return y(e),!1;case r.KEY_CODE.UP_ARROW:return C(e),!1;case r.KEY_CODE.RIGHT_ARROW:return M(e),!1;case r.KEY_CODE.DOWN_ARROW:return T(e),!1}}function b(e){E(e,-1)}function v(e){E(e,1)}function E(e,n){var o=$();N.currentActionIndex=N.currentActionIndex+n,N.currentActionIndex=Math.min(o.length-1,N.currentActionIndex),N.currentActionIndex=Math.max(0,N.currentActionIndex);var i=t.element(o[N.currentActionIndex]).children()[0];t.element(i).attr("tabindex",0),i.focus(),e.preventDefault(),e.stopImmediatePropagation()}function $(){var e=x()[0].querySelectorAll(".md-fab-action-item");return t.forEach(e,function(e){t.element(t.element(e).children()[0]).attr("tabindex",-1)}),e}function y(e){"left"===N.direction?v(e):b(e)}function C(e){"down"===N.direction?b(e):v(e)}function M(e){"left"===N.direction?b(e):v(e)}function T(e){"up"===N.direction?b(e):v(e)}function A(e){return i.getClosest(e,"md-fab-trigger")}function w(e){return i.getClosest(e,"md-fab-actions")}function k(e){A(e.target)&&N.toggle(),w(e.target)&&N.close()}function _(){return n.find("md-fab-trigger")}function x(){return n.find("md-fab-actions")}var N=this,S=0;N.open=function(){e.$evalAsync("vm.isOpen = true")},N.close=function(){e.$evalAsync("vm.isOpen = false"),n.find("md-fab-trigger")[0].focus()},N.toggle=function(){e.$evalAsync("vm.isOpen = !vm.isOpen")},N.$onInit=function(){d(),s(),m(),u()},1===t.version.major&&t.version.minor<=4&&this.$onInit();var D}e.$inject=["$scope","$element","$animate","$mdUtil","$mdConstant","$timeout"],t.module("material.components.fabShared",["material.core"]).controller("MdFabController",e)}()}(),function(){!function(){function n(){function e(e,t){t.prepend('
')}return{restrict:"E",scope:{direction:"@?mdDirection",isOpen:"=?mdOpen"},bindToController:!0,controller:"MdFabController",controllerAs:"vm",link:e}}function o(n){function o(e){n(e,r,!1)}function i(n){if(!n.hasClass("md-animations-waiting")||n.hasClass("_md-animations-ready")){var o=n[0],i=n.controller("mdFabSpeedDial"),r=o.querySelectorAll(".md-fab-action-item"),a=o.querySelector("md-fab-trigger"),d=o.querySelector("._md-css-variables"),s=parseInt(e.getComputedStyle(d).zIndex);t.forEach(r,function(e,t){var n=e.style;n.transform=n.webkitTransform="",n.transitionDelay="",n.opacity=1,n.zIndex=r.length-t+s}),a.style.zIndex=s+r.length+1,i.isOpen||t.forEach(r,function(e,t){var n,o,r=e.style,d=(a.clientHeight-e.clientHeight)/2,s=(a.clientWidth-e.clientWidth)/2;switch(i.direction){case"up":n=e.scrollHeight*(t+1)+d,o="Y";break;case"down":n=-(e.scrollHeight*(t+1)+d),o="Y";break;case"left":n=e.scrollWidth*(t+1)+s,o="X";break;case"right":n=-(e.scrollWidth*(t+1)+s),o="X"}var c="translate"+o+"("+n+"px)";r.transform=r.webkitTransform=c})}}return{addClass:function(e,t,n){e.hasClass("md-fling")?(i(e),o(n)):n()},removeClass:function(e,t,n){i(e),o(n)}}}function i(n){function o(e){n(e,r,!1)}function i(n){var o=n[0],i=n.controller("mdFabSpeedDial"),r=o.querySelectorAll(".md-fab-action-item"),d=o.querySelector("._md-css-variables"),s=parseInt(e.getComputedStyle(d).zIndex);t.forEach(r,function(e,t){var n=e.style,o=t*a;n.opacity=i.isOpen?1:0,n.transform=n.webkitTransform=i.isOpen?"scale(1)":"scale(0)",n.transitionDelay=(i.isOpen?o:r.length-o)+"ms",n.zIndex=r.length-t+s})}var a=65;return{addClass:function(e,t,n){i(e),o(n)},removeClass:function(e,t,n){i(e),o(n)}}}o.$inject=["$timeout"],i.$inject=["$timeout"];var r=300;t.module("material.components.fabSpeedDial",["material.core","material.components.fabShared","material.components.fabActions"]).directive("mdFabSpeedDial",n).animation(".md-fling",o).animation(".md-scale",i).service("mdFabSpeedDialFlingAnimation",o).service("mdFabSpeedDialScaleAnimation",i)}()}(),function(){!function(){function n(){function e(e,t,n){t.addClass("md-fab-toolbar"),t.find("md-fab-trigger").find("button").prepend('
')}return{restrict:"E",transclude:!0,template:'
',scope:{direction:"@?mdDirection",isOpen:"=?mdOpen"},bindToController:!0,controller:"MdFabController",controllerAs:"vm",link:e}}function o(){function n(n,o,i){if(o){var r=n[0],a=n.controller("mdFabToolbar"),d=r.querySelector(".md-fab-toolbar-background"),s=r.querySelector("md-fab-trigger button"),c=r.querySelector("md-toolbar"),l=r.querySelector("md-fab-trigger button md-icon"),m=n.find("md-fab-actions").children();if(s&&d){var u=e.getComputedStyle(s).getPropertyValue("background-color"),p=r.offsetWidth,h=(r.offsetHeight,2*(p/s.offsetWidth));d.style.backgroundColor=u,d.style.borderRadius=p+"px",a.isOpen?(c.style.pointerEvents="inherit",d.style.width=s.offsetWidth+"px",d.style.height=s.offsetHeight+"px",d.style.transform="scale("+h+")",d.style.transitionDelay="0ms",l&&(l.style.transitionDelay=".3s"),t.forEach(m,function(e,t){e.style.transitionDelay=25*(m.length-t)+"ms"})):(c.style.pointerEvents="none",d.style.transform="scale(1)",d.style.top="0",n.hasClass("md-right")&&(d.style.left="0",d.style.right=null),n.hasClass("md-left")&&(d.style.right="0",d.style.left=null),d.style.transitionDelay="200ms",l&&(l.style.transitionDelay="0ms"),t.forEach(m,function(e,t){e.style.transitionDelay=200+25*t+"ms"}))}}}return{addClass:function(e,t,o){n(e,t,o),o()},removeClass:function(e,t,o){n(e,t,o),o()}}}t.module("material.components.fabToolbar",["material.core","material.components.fabShared","material.components.fabActions"]).directive("mdFabToolbar",n).animation(".md-fab-toolbar",o).service("mdFabToolbarAnimation",o)}()}(),function(){function e(e,o,i,r){function a(n,a,d,s){function c(){for(var e in o.MEDIA)r(e),r.getQuery(o.MEDIA[e]).addListener(M);return r.watchResponsiveAttributes(["md-cols","md-row-height","md-gutter"],d,m)}function l(){s.layoutDelegate=t.noop,T();for(var e in o.MEDIA)r.getQuery(o.MEDIA[e]).removeListener(M)}function m(e){null==e?s.invalidateLayout():r(e)&&s.invalidateLayout()}function u(e){var o=g(),r={tileSpans:b(o),colCount:v(),rowMode:y(),rowHeight:$(),gutter:E()};if(e||!t.equals(r,A)){var d=i(r.colCount,r.tileSpans,o).map(function(e,n){return{grid:{element:a,style:f(r.colCount,n,r.gutter,r.rowMode,r.rowHeight)},tiles:e.map(function(e,i){return{element:t.element(o[i]),style:h(e.position,e.spans,r.colCount,n,r.gutter,r.rowMode,r.rowHeight)}})}}).reflow().performance();n.mdOnLayout({$event:{performance:d}}),A=r}}function p(e){return w+e+k}function h(e,t,n,o,i,r,a){var d=1/n*100,s=(n-1)/n,c=_({share:d,gutterShare:s,gutter:i}),l="rtl"!=document.dir&&"rtl"!=document.body.dir,m=l?{left:x({unit:c,offset:e.col,gutter:i}),width:N({unit:c,span:t.col,gutter:i}),paddingTop:"",marginTop:"",top:"",height:""}:{right:x({unit:c,offset:e.col,gutter:i}),width:N({unit:c,span:t.col,gutter:i}),paddingTop:"",marginTop:"",top:"",height:""};switch(r){case"fixed":m.top=x({unit:a,offset:e.row,gutter:i}),m.height=N({unit:a,span:t.row,gutter:i});break;case"ratio":var u=d/a,p=_({share:u,gutterShare:s,gutter:i});m.paddingTop=N({unit:p,span:t.row,gutter:i}),m.marginTop=x({unit:p,offset:e.row,gutter:i});break;case"fit":var h=(o-1)/o;u=1/o*100,p=_({share:u,gutterShare:h,gutter:i}),m.top=x({unit:p,offset:e.row,gutter:i}),m.height=N({unit:p,span:t.row,gutter:i})}return m}function f(e,t,n,o,i){var r={};switch(o){case"fixed":r.height=N({unit:i,span:t,gutter:n}),r.paddingBottom="";break;case"ratio":var a=1===e?0:(e-1)/e,d=1/e*100,s=d*(1/i),c=_({share:s,gutterShare:a,gutter:n});r.height="",r.paddingBottom=N({unit:c,span:t,gutter:n});break;case"fit":}return r}function g(){return[].filter.call(a.children(),function(e){return"MD-GRID-TILE"==e.tagName&&!e.$$mdDestroyed})}function b(e){return[].map.call(e,function(e){var n=t.element(e).controller("mdGridTile");return{row:parseInt(r.getResponsiveAttribute(n.$attrs,"md-rowspan"),10)||1,col:parseInt(r.getResponsiveAttribute(n.$attrs,"md-colspan"),10)||1}})}function v(){var e=parseInt(r.getResponsiveAttribute(d,"md-cols"),10);if(isNaN(e))throw"md-grid-list: md-cols attribute was not found, or contained a non-numeric value";return e}function E(){return C(r.getResponsiveAttribute(d,"md-gutter")||1)}function $(){var e=r.getResponsiveAttribute(d,"md-row-height");if(!e)throw"md-grid-list: md-row-height attribute was not found";switch(y()){case"fixed":return C(e);case"ratio":var t=e.split(":");return parseFloat(t[0])/parseFloat(t[1]);case"fit":return 0}}function y(){var e=r.getResponsiveAttribute(d,"md-row-height");if(!e)throw"md-grid-list: md-row-height attribute was not found";return"fit"==e?"fit":e.indexOf(":")!==-1?"ratio":"fixed"}function C(e){return/\D$/.test(e)?e:e+"px"}a.addClass("_md"),a.attr("role","list"),s.layoutDelegate=u;var M=t.bind(s,s.invalidateLayout),T=c();n.$on("$destroy",l);var A,w=e.startSymbol(),k=e.endSymbol(),_=e(p("share")+"% - ("+p("gutter")+" * "+p("gutterShare")+")"),x=e("calc(("+p("unit")+" + "+p("gutter")+") * "+p("offset")+")"),N=e("calc(("+p("unit")+") * "+p("span")+" + ("+p("span")+" - 1) * "+p("gutter")+")")}return{restrict:"E",controller:n,scope:{mdOnLayout:"&"},link:a}}function n(e){this.layoutInvalidated=!1,this.tilesInvalidated=!1,this.$timeout_=e.nextTick,this.layoutDelegate=t.noop}function o(e){function n(t,n){var o,a,d,s,c,l;return s=e.time(function(){a=i(t,n)}),o={layoutInfo:function(){return a},map:function(t){return c=e.time(function(){var e=o.layoutInfo();d=t(e.positioning,e.rowCount)}),o},reflow:function(t){return l=e.time(function(){var e=t||r;e(d.grid,d.tiles)}),o},performance:function(){return{tileCount:n.length,layoutTime:s,mapTime:c,reflowTime:l,totalTime:s+c+l}}}}function o(e,t){e.element.css(e.style),t.forEach(function(e){e.element.css(e.style)})}function i(e,t){function n(t,n){if(t.col>e)throw"md-grid-list: Tile at position "+n+" has a colspan ("+t.col+") that exceeds the column count ("+e+")";for(var a=0,l=0;l-a=e?o():(a=c.indexOf(0,d),a!==-1&&(l=r(a+1))!==-1?d=l+1:(a=l=0,o()));return i(a,t.col,t.row),d=a+t.col,{col:a,row:s}}function o(){d=0,s++,i(0,e,-1)}function i(e,t,n){for(var o=e;o",transclude:!0,scope:{},controller:["$attrs",function(e){this.$attrs=e}],link:n}}function r(){return{template:"
",transclude:!0}}n.$inject=["$mdUtil"],o.$inject=["$mdUtil"],e.$inject=["$interpolate","$mdConstant","$mdGridLayout","$mdMedia"],i.$inject=["$mdMedia"],t.module("material.components.gridList",["material.core"]).directive("mdGridList",e).directive("mdGridTile",i).directive("mdGridTileFooter",r).directive("mdGridTileHeader",r).factory("$mdGridLayout",o),n.prototype={invalidateTiles:function(){this.tilesInvalidated=!0,this.invalidateLayout()},invalidateLayout:function(){this.layoutInvalidated||(this.layoutInvalidated=!0,this.$timeout_(t.bind(this,this.layout)))},layout:function(){try{this.layoutDelegate(this.tilesInvalidated)}finally{this.layoutInvalidated=!1,this.tilesInvalidated=!1}}}}(),function(){t.module("material.components.icon",["material.core"])}(),function(){function n(e,t){function n(t){var n=t[0].querySelector(r),o=t[0].querySelector(a);return n&&t.addClass("md-icon-left"),o&&t.addClass("md-icon-right"),function(t,n){e(n)}}function o(e,n,o,i){var r=this;r.isErrorGetter=o.mdIsError&&t(o.mdIsError),r.delegateClick=function(){r.input.focus()},r.element=n,r.setFocused=function(e){n.toggleClass("md-input-focused",!!e)},r.setHasValue=function(e){n.toggleClass("md-input-has-value",!!e)},r.setHasPlaceholder=function(e){n.toggleClass("md-input-has-placeholder",!!e)},r.setInvalid=function(e){e?i.addClass(n,"md-input-invalid"):i.removeClass(n,"md-input-invalid")},e.$watch(function(){return r.label&&r.input},function(e){e&&!r.label.attr("for")&&r.label.attr("for",r.input.attr("id"))})}o.$inject=["$scope","$element","$attrs","$animate"];var i=["INPUT","TEXTAREA","SELECT","MD-SELECT"],r=i.reduce(function(e,t){return e.concat(["md-icon ~ "+t,".md-icon ~ "+t])},[]).join(","),a=i.reduce(function(e,t){return e.concat([t+" ~ md-icon",t+" ~ .md-icon"])},[]).join(",");return{restrict:"E",compile:n,controller:o}}function o(){return{restrict:"E",require:"^?mdInputContainer",link:function(e,t,n,o){!o||n.mdNoFloat||t.hasClass("md-container-ignore")||(o.label=t,e.$on("$destroy",function(){o.label=null}))}}}function i(e,n,o,i,r){function a(a,d,s,c){function l(e){return h.setHasValue(!g.$isEmpty(e)),e}function m(){h.label&&s.$observe("required",function(e){h.label.toggleClass("md-required",e&&!E)})}function u(){h.setHasValue(d.val().length>0||(d[0].validity||{}).badInput)}function p(){function o(){d.attr("rows",1).css("height","auto").addClass("md-no-flex");var e=c();if(!$){var t=d[0].style.padding||"";$=d.css("padding",0).prop("offsetHeight"),d[0].style.padding=t}if(b&&$&&(e=Math.max(e,$*b)),v&&$){var n=$*v;n-1&&g.$formatters.splice(e,1)}}function u(){function e(e){e.preventDefault(),l=!0,u=e.clientY,p=parseFloat(d.css("height"))||d.prop("offsetHeight")}function n(e){l&&(e.preventDefault(),m(),f.addClass("md-input-resized"))}function o(e){l&&d.css("height",p+e.pointer.distanceY+"px")}function i(e){l&&(l=!1,f.removeClass("md-input-resized"))}if(!s.hasOwnProperty("mdNoResize")){var c=t.element('
'),l=!1,u=null,p=0,f=h.element,g=r.register(c,"drag",{horizontal:!1});d.wrap('
').after(c),c.on("mousedown",e),f.on("$md.dragstart",n).on("$md.drag",o).on("$md.dragend",i),a.$on("$destroy",function(){c.off("mousedown",e).remove(),f.off("$md.dragstart",n).off("$md.drag",o).off("$md.dragend",i),g(),c=null,f=null,g=null})}}var p=!s.hasOwnProperty("mdNoAutogrow");if(u(),p){var b=s.hasOwnProperty("rows")?parseInt(s.rows):NaN,v=s.hasOwnProperty("maxRows")?parseInt(s.maxRows):NaN,E=a.$on("md-resize-textarea",o),$=null,y=d[0];if(i(function(){e.nextTick(o)},10,!1),d.on("input",o),f&&g.$formatters.push(l),b||d.attr("rows",1),t.element(n).on("resize",o),a.$on("$destroy",m),s.hasOwnProperty("mdDetectHidden")){var C=function(){var e=!1;return function(){var t=0===y.offsetHeight;t===!1&&e===!0&&o(),e=t}}();a.$watch(function(){return e.nextTick(C,!1),!0})}}}var h=c[0],f=!!c[1],g=c[1]||e.fakeNgModel(),b=c[2],v=t.isDefined(s.readonly),E=e.parseAttributeBoolean(s.mdNoAsterisk),$=d[0].tagName.toLowerCase();if(h){if("hidden"===s.type)return void d.attr("aria-hidden","true");if(h.input){if(h.input[0].contains(d[0]))return;throw new Error(" can only have *one* ,