/g,">")}function Ot(a){return Object.keys(a||{}).reduce((t,e)=>t+"".concat(e,": ").concat(a[e].trim(),";"),"")}function Nt(t){return t.size!==v.size||t.x!==v.x||t.y!==v.y||t.rotate!==v.rotate||t.flipX||t.flipY}function Ct(){var t,e,a=it,r=x.cssPrefix,n=x.replacementClass;let i=':host,:root{--fa-font-solid:normal 900 1em/1 "Font Awesome 6 Pro";--fa-font-regular:normal 400 1em/1 "Font Awesome 6 Pro";--fa-font-light:normal 300 1em/1 "Font Awesome 6 Pro";--fa-font-thin:normal 100 1em/1 "Font Awesome 6 Pro";--fa-font-duotone:normal 900 1em/1 "Font Awesome 6 Duotone";--fa-font-duotone-regular:normal 400 1em/1 "Font Awesome 6 Duotone";--fa-font-duotone-light:normal 300 1em/1 "Font Awesome 6 Duotone";--fa-font-duotone-thin:normal 100 1em/1 "Font Awesome 6 Duotone";--fa-font-brands:normal 400 1em/1 "Font Awesome 6 Brands";--fa-font-sharp-solid:normal 900 1em/1 "Font Awesome 6 Sharp";--fa-font-sharp-regular:normal 400 1em/1 "Font Awesome 6 Sharp";--fa-font-sharp-light:normal 300 1em/1 "Font Awesome 6 Sharp";--fa-font-sharp-thin:normal 100 1em/1 "Font Awesome 6 Sharp";--fa-font-sharp-duotone-solid:normal 900 1em/1 "Font Awesome 6 Sharp Duotone";--fa-font-sharp-duotone-regular:normal 400 1em/1 "Font Awesome 6 Sharp Duotone";--fa-font-sharp-duotone-light:normal 300 1em/1 "Font Awesome 6 Sharp Duotone";--fa-font-sharp-duotone-thin:normal 100 1em/1 "Font Awesome 6 Sharp Duotone"}svg:not(:host).svg-inline--fa,svg:not(:root).svg-inline--fa{overflow:visible;box-sizing:content-box}.svg-inline--fa{display:var(--fa-display,inline-block);height:1em;overflow:visible;vertical-align:-.125em}.svg-inline--fa.fa-2xs{vertical-align:.1em}.svg-inline--fa.fa-xs{vertical-align:0}.svg-inline--fa.fa-sm{vertical-align:-.0714285705em}.svg-inline--fa.fa-lg{vertical-align:-.2em}.svg-inline--fa.fa-xl{vertical-align:-.25em}.svg-inline--fa.fa-2xl{vertical-align:-.3125em}.svg-inline--fa.fa-pull-left{margin-right:var(--fa-pull-margin,.3em);width:auto}.svg-inline--fa.fa-pull-right{margin-left:var(--fa-pull-margin,.3em);width:auto}.svg-inline--fa.fa-li{width:var(--fa-li-width,2em);top:.25em}.svg-inline--fa.fa-fw{width:var(--fa-fw-width,1.25em)}.fa-layers svg.svg-inline--fa{bottom:0;left:0;margin:auto;position:absolute;right:0;top:0}.fa-layers-counter,.fa-layers-text{display:inline-block;position:absolute;text-align:center}.fa-layers{display:inline-block;height:1em;position:relative;text-align:center;vertical-align:-.125em;width:1em}.fa-layers svg.svg-inline--fa{transform-origin:center center}.fa-layers-text{left:50%;top:50%;transform:translate(-50%,-50%);transform-origin:center center}.fa-layers-counter{background-color:var(--fa-counter-background-color,#ff253a);border-radius:var(--fa-counter-border-radius,1em);box-sizing:border-box;color:var(--fa-inverse,#fff);line-height:var(--fa-counter-line-height,1);max-width:var(--fa-counter-max-width,5em);min-width:var(--fa-counter-min-width,1.5em);overflow:hidden;padding:var(--fa-counter-padding,.25em .5em);right:var(--fa-right,0);text-overflow:ellipsis;top:var(--fa-top,0);transform:scale(var(--fa-counter-scale,.25));transform-origin:top right}.fa-layers-bottom-right{bottom:var(--fa-bottom,0);right:var(--fa-right,0);top:auto;transform:scale(var(--fa-layers-scale,.25));transform-origin:bottom right}.fa-layers-bottom-left{bottom:var(--fa-bottom,0);left:var(--fa-left,0);right:auto;top:auto;transform:scale(var(--fa-layers-scale,.25));transform-origin:bottom left}.fa-layers-top-right{top:var(--fa-top,0);right:var(--fa-right,0);transform:scale(var(--fa-layers-scale,.25));transform-origin:top right}.fa-layers-top-left{left:var(--fa-left,0);right:auto;top:var(--fa-top,0);transform:scale(var(--fa-layers-scale,.25));transform-origin:top left}.fa-1x{font-size:1em}.fa-2x{font-size:2em}.fa-3x{font-size:3em}.fa-4x{font-size:4em}.fa-5x{font-size:5em}.fa-6x{font-size:6em}.fa-7x{font-size:7em}.fa-8x{font-size:8em}.fa-9x{font-size:9em}.fa-10x{font-size:10em}.fa-2xs{font-size:.625em;line-height:.1em;vertical-align:.225em}.fa-xs{font-size:.75em;line-height:.0833333337em;vertical-align:.125em}.fa-sm{font-size:.875em;line-height:.0714285718em;vertical-align:.0535714295em}.fa-lg{font-size:1.25em;line-height:.05em;vertical-align:-.075em}.fa-xl{font-size:1.5em;line-height:.0416666682em;vertical-align:-.125em}.fa-2xl{font-size:2em;line-height:.03125em;vertical-align:-.1875em}.fa-fw{text-align:center;width:1.25em}.fa-ul{list-style-type:none;margin-left:var(--fa-li-margin,2.5em);padding-left:0}.fa-ul>li{position:relative}.fa-li{left:calc(-1 * var(--fa-li-width,2em));position:absolute;text-align:center;width:var(--fa-li-width,2em);line-height:inherit}.fa-border{border-color:var(--fa-border-color,#eee);border-radius:var(--fa-border-radius,.1em);border-style:var(--fa-border-style,solid);border-width:var(--fa-border-width,.08em);padding:var(--fa-border-padding,.2em .25em .15em)}.fa-pull-left{float:left;margin-right:var(--fa-pull-margin,.3em)}.fa-pull-right{float:right;margin-left:var(--fa-pull-margin,.3em)}.fa-beat{animation-name:fa-beat;animation-delay:var(--fa-animation-delay,0s);animation-direction:var(--fa-animation-direction,normal);animation-duration:var(--fa-animation-duration,1s);animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-timing-function:var(--fa-animation-timing,ease-in-out)}.fa-bounce{animation-name:fa-bounce;animation-delay:var(--fa-animation-delay,0s);animation-direction:var(--fa-animation-direction,normal);animation-duration:var(--fa-animation-duration,1s);animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-timing-function:var(--fa-animation-timing,cubic-bezier(.28,.84,.42,1))}.fa-fade{animation-name:fa-fade;animation-delay:var(--fa-animation-delay,0s);animation-direction:var(--fa-animation-direction,normal);animation-duration:var(--fa-animation-duration,1s);animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-timing-function:var(--fa-animation-timing,cubic-bezier(.4,0,.6,1))}.fa-beat-fade{animation-name:fa-beat-fade;animation-delay:var(--fa-animation-delay,0s);animation-direction:var(--fa-animation-direction,normal);animation-duration:var(--fa-animation-duration,1s);animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-timing-function:var(--fa-animation-timing,cubic-bezier(.4,0,.6,1))}.fa-flip{animation-name:fa-flip;animation-delay:var(--fa-animation-delay,0s);animation-direction:var(--fa-animation-direction,normal);animation-duration:var(--fa-animation-duration,1s);animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-timing-function:var(--fa-animation-timing,ease-in-out)}.fa-shake{animation-name:fa-shake;animation-delay:var(--fa-animation-delay,0s);animation-direction:var(--fa-animation-direction,normal);animation-duration:var(--fa-animation-duration,1s);animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-timing-function:var(--fa-animation-timing,linear)}.fa-spin{animation-name:fa-spin;animation-delay:var(--fa-animation-delay,0s);animation-direction:var(--fa-animation-direction,normal);animation-duration:var(--fa-animation-duration,2s);animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-timing-function:var(--fa-animation-timing,linear)}.fa-spin-reverse{--fa-animation-direction:reverse}.fa-pulse,.fa-spin-pulse{animation-name:fa-spin;animation-direction:var(--fa-animation-direction,normal);animation-duration:var(--fa-animation-duration,1s);animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-timing-function:var(--fa-animation-timing,steps(8))}@media (prefers-reduced-motion:reduce){.fa-beat,.fa-beat-fade,.fa-bounce,.fa-fade,.fa-flip,.fa-pulse,.fa-shake,.fa-spin,.fa-spin-pulse{animation-delay:-1ms;animation-duration:1ms;animation-iteration-count:1;transition-delay:0s;transition-duration:0s}}@keyframes fa-beat{0%,90%{transform:scale(1)}45%{transform:scale(var(--fa-beat-scale,1.25))}}@keyframes fa-bounce{0%{transform:scale(1,1) translateY(0)}10%{transform:scale(var(--fa-bounce-start-scale-x,1.1),var(--fa-bounce-start-scale-y,.9)) translateY(0)}30%{transform:scale(var(--fa-bounce-jump-scale-x,.9),var(--fa-bounce-jump-scale-y,1.1)) translateY(var(--fa-bounce-height,-.5em))}50%{transform:scale(var(--fa-bounce-land-scale-x,1.05),var(--fa-bounce-land-scale-y,.95)) translateY(0)}57%{transform:scale(1,1) translateY(var(--fa-bounce-rebound,-.125em))}64%{transform:scale(1,1) translateY(0)}100%{transform:scale(1,1) translateY(0)}}@keyframes fa-fade{50%{opacity:var(--fa-fade-opacity,.4)}}@keyframes fa-beat-fade{0%,100%{opacity:var(--fa-beat-fade-opacity,.4);transform:scale(1)}50%{opacity:1;transform:scale(var(--fa-beat-fade-scale,1.125))}}@keyframes fa-flip{50%{transform:rotate3d(var(--fa-flip-x,0),var(--fa-flip-y,1),var(--fa-flip-z,0),var(--fa-flip-angle,-180deg))}}@keyframes fa-shake{0%{transform:rotate(-15deg)}4%{transform:rotate(15deg)}24%,8%{transform:rotate(-18deg)}12%,28%{transform:rotate(18deg)}16%{transform:rotate(-22deg)}20%{transform:rotate(22deg)}32%{transform:rotate(-12deg)}36%{transform:rotate(12deg)}100%,40%{transform:rotate(0)}}@keyframes fa-spin{0%{transform:rotate(0)}100%{transform:rotate(360deg)}}.fa-rotate-90{transform:rotate(90deg)}.fa-rotate-180{transform:rotate(180deg)}.fa-rotate-270{transform:rotate(270deg)}.fa-flip-horizontal{transform:scale(-1,1)}.fa-flip-vertical{transform:scale(1,-1)}.fa-flip-both,.fa-flip-horizontal.fa-flip-vertical{transform:scale(-1,-1)}.fa-rotate-by{transform:rotate(var(--fa-rotate-angle,0))}.fa-stack{display:inline-block;vertical-align:middle;height:2em;position:relative;width:2.5em}.fa-stack-1x,.fa-stack-2x{bottom:0;left:0;margin:auto;position:absolute;right:0;top:0;z-index:var(--fa-stack-z-index,auto)}.svg-inline--fa.fa-stack-1x{height:1em;width:1.25em}.svg-inline--fa.fa-stack-2x{height:2em;width:2.5em}.fa-inverse{color:var(--fa-inverse,#fff)}.fa-sr-only,.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.fa-sr-only-focusable:not(:focus),.sr-only-focusable:not(:focus){position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.svg-inline--fa .fa-primary{fill:var(--fa-primary-color,currentColor);opacity:var(--fa-primary-opacity,1)}.svg-inline--fa .fa-secondary{fill:var(--fa-secondary-color,currentColor);opacity:var(--fa-secondary-opacity,.4)}.svg-inline--fa.fa-swap-opacity .fa-primary{opacity:var(--fa-secondary-opacity,.4)}.svg-inline--fa.fa-swap-opacity .fa-secondary{opacity:var(--fa-primary-opacity,1)}.svg-inline--fa mask .fa-primary,.svg-inline--fa mask .fa-secondary{fill:#000}';return"fa"===r&&n===a||(t=new RegExp("\\.".concat("fa","\\-"),"g"),e=new RegExp("\\--".concat("fa","\\-"),"g"),a=new RegExp("\\.".concat(a),"g"),i=i.replace(t,".".concat(r,"-")).replace(e,"--".concat(r,"-")).replace(a,".".concat(n))),i}let Ft=!1;function Et(){if(x.autoAddCss&&!Ft){var a=Ct();if(a&&f){var r=g.createElement("style"),n=(r.setAttribute("type","text/css"),r.innerHTML=a,g.head.childNodes);let t=null;for(let e=n.length-1;-1t())}let Mt=[],It=!1;function zt(t){f&&(It?setTimeout(t,0):Mt.push(t))}function S(t){var a,{tag:e,attributes:r={},children:n=[]}=t;return"string"==typeof t?Pt(t):"<".concat(e," ").concat((a=r,Object.keys(a||{}).reduce((t,e)=>t+"".concat(e,'="').concat(Pt(a[e]),'" '),"").trim()),">").concat(n.map(S).join(""),"").concat(e,">")}function Rt(t,e,a){if(t&&t[e]&&t[e][a])return{prefix:e,iconName:a,icon:t[e][a]}}function Lt(t,e,a,r){for(var n,i,o=Object.keys(t),s=o.length,l=void 0!==r?Dt(e,r):e,f=void 0===a?(n=1,t[o[0]]):(n=0,a);n{var e=[];let a=0;for(var r=t.length;a{var a=r[e];return!!a.icon?t[a.iconName]=a.icon:t[e]=a,t},{})}function _t(t,e,a){var{skipHooks:r=!1}=2(t[e]=Object.keys(pt[e]),t),{}),O=null,qt={},$t={},Jt={},Qt={},Zt={};function te(t,e,a){let r=(t=>{let e=null,a=null;var r,n,i,o=t.match(Ht),s=t.match(Vt),l=t.match(Bt[0])||t.match(Bt[1])||t.match(Bt[2]);return l?({cls1:l,d1:r,cls2:n,d2:i}=l.groups,r&&i&&!l&&!n?a=[r,i]:r&&l&&!i?a=-1{t(r)}),delete N[t][e]}let N={};function ee(t,e){return(Yt(t)||(t=>{var e;return 1===t.length&&0<=(e=Ut(t,0))&&e<=127})(t)?"unicode/".concat(Tt(t)):"".concat(t)).concat(void 0===e?"":"-".concat(e),".svg")}function ae(t,e){var a=e.split("-"),r=a[0],a=a.slice(1).join("-");return r!==t||""===a||(e=a,~wt.indexOf(e))?null:a}function re(r,n){var t=2{if(!o)return t(new Error("No URL available to fetch SVGs from. Specify in params or by setting config.fetchSvgFrom"));if(i&&!s)return t(new Error("No URL available to fetch kit SVGs from. Specify in params or by setting config.fetchUploadedSvgFrom"));let a=i?"".concat(s,"/").concat(l,"/icons/").concat(ee(n,f)):"".concat(o,"/").concat($[r],"/").concat(ee(n));if(l&&(a="".concat(a,"?token=").concat(l)),A.styles[r]&&A.styles[r][n])return e(A.styles[r][n]);N[r][n].push(t=>{e(t)}),1===N[r][n].length&&("function"==typeof fetch?fetch(a,{mode:"cors"}).then(t=>t.text()).then(t=>{te(r,n,t)}).catch(()=>{te(r,n,"")}):te(r,n,""))})}let C=()=>{var t=r=>Lt(P,(t,e,a)=>(t[a]=Lt(e,r,{}),t),{});qt=t((e,t,a)=>(t[3]&&(e[t[3]]=a),t[2]&&t[2].filter(t=>"number"==typeof t).forEach(t=>{e[t.toString(16)]=a}),e)),$t=t((e,t,a)=>(e[a]=a,t[2]&&t[2].filter(t=>"string"==typeof t).forEach(t=>{e[t]=a}),e)),Zt=t((e,t,a)=>{var r=t[2];return e[a]=a,r.forEach(t=>{e[t]=a}),e});let i="far"in P||x.autoFetchSvg;t=Lt(Gt,(t,e)=>{var a=e[0];let r=e[1];var n=e[2];return"far"!==r||i||(r="fas"),"string"==typeof a&&(t.names[a]={prefix:r,iconName:n}),"number"==typeof a&&(t.unicodes[a.toString(16)]={prefix:r,iconName:n}),t},{names:{},unicodes:{}});Jt=t.names,Qt=t.unicodes,O=se(x.styleDefault,{family:x.familyDefault})};function ne(t,e){return(qt[t]||{})[e]}function F(t,e){return(Zt[t]||{})[e]}function ie(t){return Jt[t]||{prefix:null,iconName:null}}ma=t=>{O=se(t.styleDefault,{family:x.familyDefault})},kt.push(ma),C();let oe=()=>({prefix:null,iconName:null,rest:[]});function se(t,e){var{family:a=l}=1a.indexOf(t)===e)}function fe(t,e){var{skipLookups:a=!1}=1n.includes(t))),o=le(t.filter(t=>!rt.includes(t))),[s=null]=i.filter(t=>(r=t,!X.includes(t))),i=(t=>{let a=l,r=Xt.reduce((t,e)=>(t[e]="".concat(x.cssPrefix,"-").concat(e),t),{});return q.forEach(e=>{(t.includes(r[e])||t.some(t=>Kt[e].includes(t)))&&(a=e)}),a})(i),o=b(b({},(t=>{let a=[],r=null;return t.forEach(t=>{var e=ae(x.cssPrefix,t);e?r=e:t&&a.push(t)}),{iconName:r,rest:a}})(o)),{},{prefix:se(s,{family:i})});return b(b(b({},o),(t=>{var{values:e,family:a,canonical:r,givenPrefix:n="",styles:i={},config:o={}}=t,s=a===K,l=e.includes("fa-duotone")||e.includes("fad"),f="duotone"===o.familyDefault,c="fad"===r.prefix||"fa-duotone"===r.prefix;return!s&&(l||f||c)&&(r.prefix="fad"),(e.includes("fa-brands")||e.includes("fab"))&&(r.prefix="fab"),!r.prefix&&ce.includes(a)&&(Object.keys(i).find(t=>ue.includes(t))||o.autoFetchSvg)&&(s=J.get(a).defaultShortPrefixId,r.prefix=s,r.iconName=F(r.prefix,r.iconName)||r.iconName),"fa"!==r.prefix&&"fa"!==n||(r.prefix=O||"fas"),r})({values:t,family:i,styles:P,config:x,canonical:o,givenPrefix:r})),((t,e,a)=>{let{prefix:r,iconName:n}=a;var i,o;return!t&&r&&n&&(i="fa"===e?ie(n):{},o=F(r,n),n=i.iconName||o||n,"far"!==(r=i.prefix||r)||P.far||!P.fas||x.autoFetchSvg||(r="fas")),{prefix:r,iconName:n}})(a,r,o))}let ce=q.filter(t=>t!==l||t!==K),ue=Object.keys(at).filter(t=>t!==l).map(t=>Object.keys(at[t])).flat(),de=[],E={},j={},me=Object.keys(j);function he(t,e){for(var a=arguments.length,r=new Array(2{e=t.apply(null,[e,...r])}),e}function M(t){for(var e=arguments.length,a=new Array(1{t.apply(null,a)})}function I(t){var e=t,a=Array.prototype.slice.call(arguments,1);return j[e]?j[e].apply(null,a):void 0}function pe(t){"fa"===t.prefix&&(t.prefix="fas");var e=t.iconName,a=t.prefix||O;if(e)return e=F(a,e)||e,Rt(ge.definitions,a,e)||Rt(A.styles,a,e)}let ge=new class{constructor(){this.definitions={}}add(){for(var t=arguments.length,e=new Array(t),a=0;a{this.definitions[t]=b(b({},this.definitions[t]||{}),r[t]),_t(t,r[t]);var e=pt[l][t];e&&_t(e,r[t]),C()})}reset(){this.definitions={}}_pullDefinitions(i,t){let o=t.prefix&&t.iconName&&t.icon?{0:t}:t;return Object.keys(o).map(t=>{let{prefix:e,iconName:a,icon:r}=o[t];var n=r[2];i[e]||(i[e]={}),0{"string"==typeof t&&(i[e][t]=r)}),i[e][a]=r}),i}},ve={noAuto:()=>{x.autoReplaceSvg=!1,x.observeMutations=!1,M("noAuto")},config:x,dom:{i2svg:function(){var t=0{z({autoReplaceSvgRoot:e}),M("watch",t)})}},parse:{icon:t=>{var e,a;return null===t?null:"object"==typeof t&&t.prefix&&t.iconName?{prefix:t.prefix,iconName:F(t.prefix,t.iconName)||t.iconName}:Array.isArray(t)&&2===t.length?(e=0===t[1].indexOf("fa-")?t[1].slice(3):t[1],{prefix:a=se(t[0]),iconName:F(a,e)||e}):"string"==typeof t&&(-1S(t))}}),Object.defineProperty(e,"node",{get:function(){var t;if(f)return(t=g.createElement("div")).innerHTML=e.html,t.children}}),e}function ye(t){let{icons:{main:e,mask:a},prefix:r,iconName:n,transform:i,symbol:o,title:s,maskId:l,titleId:f,extra:c,watchable:u=!1}=t;var d,m,{width:h,height:p}=a.found?a:e,g=Z.includes(r),v=[x.replacementClass,n?"".concat(x.cssPrefix,"-").concat(n):""].filter(t=>-1===c.classes.indexOf(t)).filter(t=>""!==t||!!t).concat(c.classes).join(" "),v={children:[],attributes:b(b({},c.attributes),{},{"data-prefix":r,"data-icon":n,class:v,role:c.attributes.role||"img",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 ".concat(h," ").concat(p)})},g=g&&!~c.classes.indexOf("fa-fw")?{width:"".concat(h/p*16*.0625,"em")}:{},h=(u&&(v.attributes[y]=""),s&&(v.children.push({tag:"title",attributes:{id:v.attributes["aria-labelledby"]||"title-".concat(f||w())},children:[s]}),delete v.attributes.title),b(b({},v),{},{prefix:r,iconName:n,main:e,mask:a,maskId:l,transform:i,symbol:o,styles:b(b({},g),c.styles)})),{children:p,attributes:v}=a.found&&e.found?I("generateAbstractMask",h)||{children:[],attributes:{}}:I("generateAbstractIcon",h)||{children:[],attributes:{}};return h.children=p,h.attributes=v,o?({prefix:g,iconName:p,children:v,attributes:m,symbol:d}=h,g=!0===d?"".concat(g,"-").concat(x.cssPrefix,"-").concat(p):d,[{tag:"svg",attributes:{style:"display: none;"},children:[{tag:"symbol",attributes:b(b({},m),{},{id:g}),children:v}]}]):({children:p,main:d,mask:m,attributes:g,styles:v,transform:h}=h,Nt(h)&&d.found&&!m.found&&({width:m,height:d}=d,m={x:m/d/2,y:.5},g.style=Ot(b(b({},v),{},{"transform-origin":"".concat(m.x+h.x/16,"em ").concat(m.y+h.y/16,"em")}))),[{tag:"svg",attributes:g,children:p}])}function xe(t){var{content:e,width:a,height:r,transform:n,title:i,extra:o,watchable:s=!1}=t,l=b(b(b({},o.attributes),i?{title:i}:{}),{},{class:o.classes.join(" ")}),s=(s&&(l[y]=""),b({},o.styles)),o=(Nt(n)&&(s.transform=(t=>{var{transform:e,width:a=nt,height:r=nt,startCentered:n=!1}=t;let i="";return n&&G?i+="translate(".concat(e.x/h-a/2,"em, ").concat(e.y/h-r/2,"em) "):i+=n?"translate(calc(-50% + ".concat(e.x/h,"em), calc(-50% + ").concat(e.y/h,"em)) "):"translate(".concat(e.x/h,"em, ").concat(e.y/h,"em) "),i=(i+="scale(".concat(e.size/h*(e.flipX?-1:1),", ").concat(e.size/h*(e.flipY?-1:1),") "))+"rotate(".concat(e.rotate,"deg) ")})({transform:n,startCentered:!0,width:a,height:r}),s["-webkit-transform"]=s.transform),Ot(s)),n=(0{var a,r;return"fa"===o&&(a=ie(n)||{},n=a.iconName||n,i=a.prefix||i),n&&i&&we[i]&&we[i][n]?(a=we[i][n],e(ke(a))):(a={},r=function(t,e){var a=0e[t]&&e[t].u&&e[t].u===Tt(r));if(n)return e[n].v}}else if(a&&a.iconUploads&&a.iconUploads[r]&&a.iconUploads[r].v)return a.iconUploads[r].v}(p.FontAwesomeKitConfig,n),p.FontAwesomeKitConfig&&p.FontAwesomeKitConfig.token&&(a.token=p.FontAwesomeKitConfig.token),Z.includes(i)&&(a.version=r),n&&i&&x.autoFetchSvg?re(i,n,b({},a)).then(t=>{t?e(ke(t)):(Se(n,i),e(b(b({},Ae),{},{icon:x.showMissingIcons&&n&&I("missingIconAbstract")||{}})))}).catch(t):(Se(n,i),void e(b(b({},Ae),{},{icon:x.showMissingIcons&&n&&I("missingIconAbstract")||{}}))))})}e=()=>{};let Oe=x.measurePerformance&&V&&V.mark&&V.measure?V:{mark:e,measure:e},R='FA "6.7.2"',Ne=t=>{Oe.mark("".concat(R," ").concat(t," ends")),Oe.measure("".concat(R," ").concat(t),"".concat(R," ").concat(t," begins"),"".concat(R," ").concat(t," ends"))};var Ce={begin:t=>(Oe.mark("".concat(R," ").concat(t," begins")),()=>Ne(t)),end:Ne};let Fe=()=>{};function Ee(t){return"string"==typeof(t.getAttribute?t.getAttribute(y):null)}function je(e,t){let{ceFn:a="svg"===e.tag?function(t){return g.createElementNS("http://www.w3.org/2000/svg",t)}:function(t){return g.createElement(t)}}=1{e.parentNode.insertBefore(je(t),e)}),null===e.getAttribute(y)&&x.keepOriginalSource?(a=g.createComment((t=e," ".concat(t.outerHTML," "))),e.parentNode.replaceChild(a,e)):e.remove())},nest:function(t){var e=t[0],a=t[1];if(~St(e).indexOf(x.replacementClass))return Me.replace(t);let r=new RegExp("".concat(x.cssPrefix,"-.*"));delete a[0].attributes.id,a[0].attributes.class&&(n=a[0].attributes.class.split(" ").reduce((t,e)=>((e===x.replacementClass||e.match(r)?t.toSvg:t.toNode).push(e),t),{toNode:[],toSvg:[]}),a[0].attributes.class=n.toSvg.join(" "),0===n.toNode.length?e.removeAttribute("class"):e.setAttribute("class",n.toNode.join(" ")));var n=a.map(t=>S(t)).join("\n");e.setAttribute(y,""),e.innerHTML=n}};function Ie(t){t()}function ze(a,t){let r="function"==typeof t?t:Fe;if(0===a.length)r();else{let t=Ie;(t=x.mutateApproach===ut?p.requestAnimationFrame||Ie:t)(()=>{var t=!0!==x.autoReplaceSvg&&Me[x.autoReplaceSvg]||Me.replace,e=Ce.begin("mutate");a.map(t),e(),r()})}}let Re=!1;function Le(){Re=!0}function De(){Re=!1}let Te=null;function Ue(t){if(!H)return;if(!x.observeMutations)return;let{treeCallback:i=Fe,nodeCallback:o=Fe,pseudoElementsCallback:s=Fe,observeMutationsRoot:e=g}=t;Te=new H(t=>{if(!Re){let n=O;k(t).forEach(t=>{var e,a,r;"childList"===t.type&&0("class"!==t.name&&"style"!==t.name&&(t[e.name]=e.value),t),{}),o=e.getAttribute("title"),s=e.getAttribute("data-fa-title-id"),x.autoA11y&&(o?l["aria-labelledby"]="".concat(x.replacementClass,"-title-").concat(s||w()):(l["aria-hidden"]="true",l.focusable="false")),l),s=he("parseNodeAttributes",{},t),l=a.styleParser?(t=>{var e=t.getAttribute("style");let a=[];return a=e?e.split(";").reduce((t,e)=>{var a=e.split(":"),r=a[0],a=a.slice(1);return r&&0e.add("".concat(ct,"-").concat(t)),i=t=>e.remove("".concat(ct,"-").concat(t));var a=x.autoFetchSvg?[...Q,...rt]:X.concat(Object.keys(_e)),a=(a.includes("fa")||a.push("fa"),[".".concat(vt,":not([").concat(y,"])")].concat(a.map(t=>".".concat(t,":not([").concat(y,"])"))).join(", "));if(0===a.length)return Promise.resolve();let o=[];try{o=k(t.querySelectorAll(a))}catch(t){}if(!(0{try{var a=He(e);a&&t.push(a)}catch(t){c||"MissingIcon"===t.name&&console.error(t)}return t},[]);return new Promise((e,a)=>{Promise.all(l).then(t=>{ze(t,()=>{n("active"),n("complete"),i("pending"),"function"==typeof r&&r(),s(),e()})}).catch(t=>{s(),a(t)})})}function Be(t){let e=1{t&&ze([t],e)})}function Ge(r){let n=1(M("beforeDOMElementCreation",{iconDefinition:r,params:n}),x.autoA11y&&(f?d["aria-labelledby"]="".concat(x.replacementClass,"-title-").concat(c||w()):(d["aria-hidden"]="true",d.focusable="false")),ye({icons:{main:ke(a),mask:s?ke(s.icon):{found:!1,width:null,height:null,icon:{}}},prefix:t,iconName:e,transform:b(b({},v),i),symbol:o,title:f,maskId:l,titleId:c,extra:{attributes:d,styles:m,classes:u}})))}}let Xe={mixout(){return{icon:(n=Ge,function(t){var e=1{}}=t;return Ve(e,a)},t.generateSvgReplacementMutation=function(n,t){let{iconName:i,title:o,titleId:s,prefix:l,transform:f,symbol:c,mask:e,maskId:u,extra:d}=t;return new Promise((r,t)=>{Promise.all([Pe(i,l),e.iconName?Pe(e.iconName,e.prefix):Promise.resolve({found:!1,width:512,height:512,icon:{}})]).then(t=>{var[e,a]=t;r([n,ye({icons:{main:e,mask:a},prefix:l,iconName:i,transform:f,symbol:c,maskId:u,title:o,titleId:s,extra:d,watchable:!0})])}).catch(t)})},t.generateAbstractIcon=function(t){var{children:e,attributes:a,main:r,transform:n,styles:i}=t,i=Ot(i);0{M("beforeDOMElementCreation",{assembler:t,params:a});let e=[];return t(t=>{Array.isArray(t)?t.map(t=>{e=e.concat(t.abstract)}):e=e.concat(t.abstract)}),[{tag:"span",attributes:{class:["".concat(x.cssPrefix,"-layers"),...r].join(" ")},children:e}]})}}}},qe={mixout(){return{counter(n){let i=1{M("beforeDOMElementCreation",{content:n,params:i});var{content:t,title:e,extra:a}={content:n.toString(),title:o,extra:{attributes:l,styles:f,classes:["".concat(x.cssPrefix,"-layers-counter"),...s]}},r=b(b(b({},a.attributes),e?{title:e}:{}),{},{class:a.classes.join(" ")});return 0<(a=Ot(a.styles)).length&&(r.style=a),(a=[]).push({tag:"span",attributes:r,children:[t]}),e&&a.push({tag:"span",attributes:{class:"sr-only"},children:[e]}),a})}}}},$e={mixout(){return{text(t){let e=1(M("beforeDOMElementCreation",{content:t,params:e}),xe({content:t,transform:b(b({},v),a),title:r,extra:{attributes:i,styles:o,classes:["".concat(x.cssPrefix,"-layers-text"),...n]}})))}}},provides(t){t.generateLayersText=function(t,e){var a,r,{title:n,transform:i,extra:o}=e;let s=null,l=null;return G&&(a=parseInt(getComputedStyle(t).fontSize,10),r=t.getBoundingClientRect(),s=r.width/a,l=r.height/a),x.autoA11y&&!n&&(o.attributes["aria-hidden"]="true"),Promise.resolve([t,xe({content:t.innerHTML,width:s,height:l,transform:i,title:n,extra:o,watchable:!0})])}}},Je=new RegExp('"',"ug"),Qe=[1105920,1112319],Ze=b(b(b(b({},{FontAwesome:{normal:"fas",400:"fas"}}),{"Font Awesome 6 Free":{900:"fas",400:"far"},"Font Awesome 6 Pro":{900:"fas",400:"far",normal:"far",300:"fal",100:"fat"},"Font Awesome 6 Brands":{400:"fab",normal:"fab"},"Font Awesome 6 Duotone":{900:"fad",400:"fadr",normal:"fadr",300:"fadl",100:"fadt"},"Font Awesome 6 Sharp":{900:"fass",400:"fasr",normal:"fasr",300:"fasl",100:"fast"},"Font Awesome 6 Sharp Duotone":{900:"fasds",400:"fasdr",normal:"fasdr",300:"fasdl",100:"fasdt"}}),{"Font Awesome 5 Free":{900:"fas",400:"far"},"Font Awesome 5 Pro":{900:"fas",400:"far",normal:"far",300:"fal"},"Font Awesome 5 Brands":{400:"fab",normal:"fab"},"Font Awesome 5 Duotone":{900:"fad"}}),{"Font Awesome Kit":{400:"fak",normal:"fak"},"Font Awesome Kit Duotone":{400:"fakd",normal:"fakd"}}),ta=Object.keys(Ze).reduce((t,e)=>(t[e.toLowerCase()]=Ze[e],t),{}),ea=Object.keys(ta).reduce((t,e)=>{var a=ta[e];return t[e]=a[900]||[...Object.entries(a)][0][1],t},{});function aa(d,m){let h="".concat(st).concat(m.replace(":","-"));return new Promise((s,a)=>{if(null!==d.getAttribute(h))return s();var r,l=k(d.children).filter(t=>t.getAttribute(ot)===m)[0],n=p.getComputedStyle(d,m),f=n.getPropertyValue("font-family"),c=f.match(bt),u=n.getPropertyValue("font-weight");let t=n.getPropertyValue("content");if(l&&!c)return d.removeChild(l),s();if(c&&"none"!==t&&""!==t){let t=n.getPropertyValue("content"),i=(r=u,n=f.replace(/^['"]|['"]$/g,"").toLowerCase(),u=parseInt(r),u=isNaN(u)?"normal":u,(ta[n]||{})[u]||ea[n]);r=t,f=r.replace(Je,""),u=(u=Ut(f,0))>=Qe[0]&&u<=Qe[1];var{value:f,isSecondary:u}={value:Tt((n=2===f.length&&f[0]===f[1])?f[0]:f),isSecondary:u||n},n=c[0].startsWith("FontAwesome");let e=ne(i,f),o=e;if(n&&(r=f,c=Qt[r],n=ne("fas",r),(c=c||(n?{prefix:"fas",iconName:n}:null)||{prefix:null,iconName:null}).iconName)&&c.prefix&&(e=c.iconName,i=c.prefix),o=o||f,!(e=e||String.fromCharCode(parseInt(f,16)))||u||l&&l.getAttribute(lt)===i&&l.getAttribute(ft)===o)s();else{d.setAttribute(h,o),l&&d.removeChild(l);let r={iconName:null,title:null,titleId:null,prefix:null,transform:v,symbol:!1,mask:{iconName:null,prefix:null,rest:[]},maskId:null,extra:{classes:[],styles:{},attributes:{}}},n=r.extra;n.attributes[ot]=m,Pe(e,i).then(t=>{var e=ye(b(b({},r),{},{icons:{main:t,mask:oe()},prefix:i,iconName:o,extra:n,watchable:!0})),a=g.createElementNS("http://www.w3.org/2000/svg","svg");"::before"===m?d.insertBefore(a,d.firstChild):d.appendChild(a),a.outerHTML=e.map(t=>S(t)).join("\n"),d.removeAttribute(h),s()}).catch(a)}}else s()})}function ra(t){return Promise.all([aa(t,"::before"),aa(t,"::after")])}function na(t){return!(t.parentNode===document.head||~dt.indexOf(t.tagName.toUpperCase())||t.getAttribute(ot)||t.parentNode&&"svg"===t.parentNode.tagName)}function ia(n){if(f)return new Promise((t,e)=>{var a=k(n.querySelectorAll("*")).filter(na).map(ra);let r=Ce.begin("searchPseudoElements");Le(),Promise.all(a).then(()=>{r(),De(),t()}).catch(()=>{r(),De(),e()})})}let oa={hooks(){return{mutationObserverCallbacks(t){return t.pseudoElementsCallback=ia,t}}},provides(t){t.pseudoElements2svg=function(t){var{node:e=g}=t;x.searchPseudoElements&&ia(e)}}},sa=!1,la={mixout(){return{dom:{unwatch(){Le(),sa=!0}}}},hooks(){return{bootstrap(){Ue(he("mutationObserverCallbacks",{}))},noAuto(){Te&&Te.disconnect()},watch(t){var e=t.observeMutationsRoot;sa?De():Ue(he("mutationObserverCallbacks",{observeMutationsRoot:e}))}}}},fa=t=>t.toLowerCase().split(" ").reduce((t,e)=>{var a=e.toLowerCase().split("-"),r=a[0],n=a.slice(1).join("-");if(r&&"h"===n)t.flipX=!0;else if(r&&"v"===n)t.flipY=!0;else if(n=parseFloat(n),!isNaN(n))switch(r){case"grow":t.size=t.size+n;break;case"shrink":t.size=t.size-n;break;case"left":t.x=t.x-n;break;case"right":t.x=t.x+n;break;case"up":t.y=t.y-n;break;case"down":t.y=t.y+n;break;case"rotate":t.rotate=t.rotate+n}return t},{size:16,x:0,y:0,flipX:!1,flipY:!1,rotate:0}),ca={mixout(){return{parse:{transform:t=>fa(t)}}},hooks(){return{parseNodeAttributes(t,e){var a=e.getAttribute("data-fa-transform");return a&&(t.transform=fa(a)),t}}},provides(t){t.generateAbstractTransformGrouping=function(t){var{main:e,transform:a,containerWidth:r,iconWidth:n}=t,r={transform:"translate(".concat(r/2," 256)")},i="translate(".concat(32*a.x,", ").concat(32*a.y,") "),o="scale(".concat(a.size/16*(a.flipX?-1:1),", ").concat(a.size/16*(a.flipY?-1:1),") "),a="rotate(".concat(a.rotate," 0 0)"),r={outer:r,inner:{transform:"".concat(i," ").concat(o," ").concat(a)},path:{transform:"translate(".concat(n/2*-1," -256)")}};return{tag:"g",attributes:b({},r.outer),children:[{tag:"g",attributes:b({},r.inner),children:[{tag:e.icon.tag,children:e.icon.children,attributes:b(b({},e.icon.attributes),r.path)}]}]}}}},ua={x:0,y:0,width:"100%",height:"100%"};function da(t){return t.attributes&&(t.attributes.fill||(!(1t.trim())):oe();return a.prefix||(a.prefix=O),t.mask=a,t.maskId=e.getAttribute("data-fa-mask-id"),t}}},provides(t){t.generateAbstractMask=function(t){var{children:e,attributes:a,main:r,mask:n,maskId:i,transform:o}=t,{width:r,icon:s}=r,{width:n,icon:l}=n,o=(t=>{var{transform:e,containerWidth:a,iconWidth:r}=t,a={transform:"translate(".concat(a/2," 256)")},n="translate(".concat(32*e.x,", ").concat(32*e.y,") "),i="scale(".concat(e.size/16*(e.flipX?-1:1),", ").concat(e.size/16*(e.flipY?-1:1),") "),e="rotate(".concat(e.rotate," 0 0)");return{outer:a,inner:{transform:"".concat(n," ").concat(i," ").concat(e)},path:{transform:"translate(".concat(r/2*-1," -256)")}}})({transform:o,containerWidth:n,iconWidth:r}),n={tag:"rect",attributes:b(b({},ua),{},{fill:"white"})},r=s.children?{children:s.children.map(da)}:{},s={tag:"g",attributes:b({},o.inner),children:[da(b({tag:s.tag,attributes:b(b({},s.attributes),o.path)},r))]},r={tag:"g",attributes:b({},o.outer),children:[s]},o="mask-".concat(i||w()),s="clip-".concat(i||w()),i={tag:"mask",attributes:b(b({},ua),{},{id:o,maskUnits:"userSpaceOnUse",maskContentUnits:"userSpaceOnUse"}),children:[n,r]},n={tag:"defs",children:[{tag:"clipPath",attributes:{id:s},children:"g"===(t=l).tag?t.children:[t]},i]};return e.push(n,{tag:"rect",attributes:b({fill:"currentColor","clip-path":"url(#".concat(s,")"),mask:"url(#".concat(o,")")},ua)}),{children:e,attributes:a}}}},{provides(t){let i=!1;p.matchMedia&&(i=p.matchMedia("(prefers-reduced-motion: reduce)").matches),t.missingIconAbstract=function(){var t=[],e={fill:"currentColor"},a={attributeType:"XML",repeatCount:"indefinite",dur:"2s"},r=(t.push({tag:"path",attributes:b(b({},e),{},{d:"M156.5,447.7l-12.6,29.5c-18.7-9.5-35.9-21.2-51.5-34.9l22.7-22.7C127.6,430.5,141.5,440,156.5,447.7z M40.6,272H8.5 c1.4,21.2,5.4,41.7,11.7,61.1L50,321.2C45.1,305.5,41.8,289,40.6,272z M40.6,240c1.4-18.8,5.2-37,11.1-54.1l-29.5-12.6 C14.7,194.3,10,216.7,8.5,240H40.6z M64.3,156.5c7.8-14.9,17.2-28.8,28.1-41.5L69.7,92.3c-13.7,15.6-25.5,32.8-34.9,51.5 L64.3,156.5z M397,419.6c-13.9,12-29.4,22.3-46.1,30.4l11.9,29.8c20.7-9.9,39.8-22.6,56.9-37.6L397,419.6z M115,92.4 c13.9-12,29.4-22.3,46.1-30.4l-11.9-29.8c-20.7,9.9-39.8,22.6-56.8,37.6L115,92.4z M447.7,355.5c-7.8,14.9-17.2,28.8-28.1,41.5 l22.7,22.7c13.7-15.6,25.5-32.9,34.9-51.5L447.7,355.5z M471.4,272c-1.4,18.8-5.2,37-11.1,54.1l29.5,12.6 c7.5-21.1,12.2-43.5,13.6-66.8H471.4z M321.2,462c-15.7,5-32.2,8.2-49.2,9.4v32.1c21.2-1.4,41.7-5.4,61.1-11.7L321.2,462z M240,471.4c-18.8-1.4-37-5.2-54.1-11.1l-12.6,29.5c21.1,7.5,43.5,12.2,66.8,13.6V471.4z M462,190.8c5,15.7,8.2,32.2,9.4,49.2h32.1 c-1.4-21.2-5.4-41.7-11.7-61.1L462,190.8z M92.4,397c-12-13.9-22.3-29.4-30.4-46.1l-29.8,11.9c9.9,20.7,22.6,39.8,37.6,56.9 L92.4,397z M272,40.6c18.8,1.4,36.9,5.2,54.1,11.1l12.6-29.5C317.7,14.7,295.3,10,272,8.5V40.6z M190.8,50 c15.7-5,32.2-8.2,49.2-9.4V8.5c-21.2,1.4-41.7,5.4-61.1,11.7L190.8,50z M442.3,92.3L419.6,115c12,13.9,22.3,29.4,30.5,46.1 l29.8-11.9C470,128.5,457.3,109.4,442.3,92.3z M397,92.4l22.7-22.7c-15.6-13.7-32.8-25.5-51.5-34.9l-12.6,29.5 C370.4,72.1,384.4,81.5,397,92.4z"})}),b(b({},a),{},{attributeName:"opacity"})),n={tag:"circle",attributes:b(b({},e),{},{cx:"256",cy:"364",r:"28"}),children:[]};return i||n.children.push({tag:"animate",attributes:b(b({},a),{},{attributeName:"r",values:"28;14;28;28;14;28;"})},{tag:"animate",attributes:b(b({},r),{},{values:"1;0;1;1;0;1;"})}),t.push(n),t.push({tag:"path",attributes:b(b({},e),{},{opacity:"1",d:"M263.7,312h-16c-6.6,0-12-5.4-12-12c0-71,77.4-63.9,77.4-107.8c0-20-17.8-40.2-57.4-40.2c-29.1,0-44.3,9.6-59.2,28.7 c-3.9,5-11.1,6-16.2,2.4l-13.1-9.2c-5.6-3.9-6.9-11.8-2.6-17.2c21.2-27.2,46.4-44.7,91.2-44.7c52.3,0,97.4,29.8,97.4,80.2 c0,67.6-77.4,63.5-77.4,107.8C275.7,306.6,270.3,312,263.7,312z"}),children:i?[]:[{tag:"animate",attributes:b(b({},r),{},{values:"1;0;0;0;0;1;"})}]}),i||t.push({tag:"path",attributes:b(b({},e),{},{opacity:"0",d:"M232.5,134.5l7,168c0.3,6.4,5.6,11.5,12,11.5h9c6.4,0,11.7-5.1,12-11.5l7-168c0.3-6.8-5.2-12.5-12-12.5h-23 C237.7,122,232.2,127.7,232.5,134.5z"}),children:[{tag:"animate",attributes:b(b({},r),{},{values:"0;0;1;1;0;0;"})}]}),{tag:"g",attributes:{class:"missing"},children:t}}}},{hooks(){return{parseNodeAttributes(t,e){var a=e.getAttribute("data-fa-symbol");return t.symbol=null!==a&&(""===a||a),t}}}}];{var ma=n;let r={mixoutsTo:ve}.mixoutsTo;de=ma,E={},Object.keys(j).forEach(t=>{-1===me.indexOf(t)&&delete j[t]}),de.forEach(t=>{let a=t.mixout?t.mixout():{};if(Object.keys(a).forEach(e=>{"function"==typeof a[e]&&(r[e]=a[e]),"object"==typeof a[e]&&Object.keys(a[e]).forEach(t=>{r[e]||(r[e]={}),r[e][t]=a[e][t]})}),t.hooks){let e=t.hooks();Object.keys(e).forEach(t=>{E[t]||(E[t]=[]),E[t].push(e[t])})}t.provides&&t.provides(j)}),r}!function(t){try{for(var e=arguments.length,a=new Array(1{z(),M("bootstrap")})),A.hooks=b(b({},A.hooks),{},{addPack:(t,e)=>{A.styles[t]=b(b({},A.styles[t]||{}),e),C(),z()},addPacks:t=>{t.forEach(t=>{var[e,a]=t;A.styles[e]=b(b({},A.styles[e]||{}),a)}),C(),z()},addShims:t=>{A.shims.push(...t),C(),z()}})})})(); Platformplatform FeaturesView allPlatform overviewAn overview of the Forecast AppUtilization ReportsMonitor company wide utilizationProject ScopingReduce scope creep with better scopingRevenue RecognitionRevenue Recognition SoftwareIntegrated AIAll integrated with our native AITime TrackingTrack employee time assisted by AIProject BaselinesDefine project baselines for consistencyRate CardsCustom rate cards for any scenarioGantt ChartsPowerful Gantt chart softwareResource AllocationsSoft & Hard resource allocationsProject MilestonesSet and monitor progress with milestonesNotificationsCustom notifications & project alertsSage IntacctConnect Forecast into Sage for end-to-end financialsHubSpotConnect CRM, Sales & Marketing into Forecast with HubSpotJiraIntegrate Jira & Forecast if you want to empower your projectsGoogle CalendarConnect your Forecast into your Google CalendarView all integrationsSolutionsSolutionsView allCapacity PlanningCapacity & Demand PlanningDigital ProjectsAI powered digital project managementResource ManagementAI Powered Resource Management SoftwareResource ForecastingResource Forecasting with AIAIAI that optimizes your revenue and operationsFinancial ManagementGet a clear overview of the financial healthPSAAI Powered Professional Services AutomationIT Project ManagementIT Project Management Software.how to winAgile Project ManagementAgile Project Management Made EasyProduct Development Project Management For Development TeamsSprint PlanningSprint Planning Resource Management SoftwareUse casesIndustriesView allSoftware & ITSoftware Development, MSPs, Technology Partners, IT Consultants, Data & CloudAgencyDigital Marketing, Full Service, B2B, eCommerceNGO & ResearchNGO, Research Institutes, Life Sciences, Non-ProfitsTeamsView allOperationsUnderstand who is working on what, whenProject ManagersDirectly contribute to project deliveryFinanceRun your projects more economicallyExecutivesMake data-backed decisions to grow your businessTake a free tour of ForecastDive straight in and have a look around for yourself. Take a tour ResourcesResourcesResourcesAll of our Resources in one placeEbooksA collection of insightful ebooks from our team.Success StoriesCustomer success stories with Forecast.In the NewsSome of our moments in the spotlightAbout ForecastMore about us and why we exist.Join the teamBrowse our open positions.ResourcesOur BlogOur latest thoughts and musings.WikiLearn more about resource managementHelp CenterFor support with our product.PricingLoginBook a demoHome/BlogBlogThe latest articles from the expert team at Forecast.Request a Demo Explore the platformResource ManagementThe Best Resource Management ToolsLooking for the best resource management tools? We’ve made the list of the best-in-class software to manage workloads, capacity, and utilization rates.Jump to a topicTime TrackingSoftware DevelopmentForecastCapacity PlanningAgileProduct DevelopmentScrumPSAAIDigital Project ManagementResource ManagementThe Best Capacity Planning SoftwareAuthor: By Forecast TeamCapacity PlanningCreating a Project Budget – A Complete GuideAuthor: By Forecast TeamDigital Project ManagementEverything You Need to Know Before Signing a Retainer AgreementAuthor: By Forecast TeamDigital Project ManagementAgile vs. Waterfall: What's the difference?Author: By Forecast TeamAgileThe Best Agency Project Management Software 2025Author: By Forecast TeamDigital Project ManagementThe Best Project Scheduling Software in 2025Author: By Forecast TeamDigital Project ManagementHow to Make a Complete Statement of WorkAuthor: By Forecast TeamDigital Project ManagementThe 10 Best AI Project Management Tools in 2025Author: Dennis KayserAIThe Best Resource Management ToolsAuthor: By Forecast TeamResource Management5 Mistakes to Avoid in Capacity Planning (and How Forecast Helps Fix Them)Author: By Forecast TeamCapacity PlanningWhat Is the Best PSA Software for MSPs Available?Author: By Forecast TeamPSAHow Could an IT Services Firm Improve Its Operating Margins?Author: By Forecast TeamPSAHow Will BI Help Improve Your Business?Author: By Forecast TeamPSAWhy Would You Want to Implement Professional Services Software?Author: By Forecast TeamPSAWhy Do We Need PSA Software?Author: By Forecast TeamPSANextRequest a demoGet started now with ForecastThe ultimate upgrade to delivering projects on time and on budget. Request a Demo
Dive straight in and have a look around for yourself.
The latest articles from the expert team at Forecast.
Looking for the best resource management tools? We’ve made the list of the best-in-class software to manage workloads, capacity, and utilization rates.
The ultimate upgrade to delivering projects on time and on budget.