[Rt-commit] rt branch, 4.6/fontawesome-icons, created. rt-4.4.4-455-gd453a75471

Blaine Motsinger blaine at bestpractical.com
Tue Nov 5 10:39:13 EST 2019


The branch, 4.6/fontawesome-icons has been created
        at  d453a754712218bda6c3928fe55b6f3bd8565e21 (commit)

- Log -----------------------------------------------------------------
commit 4f90e82c96a68d3f41b75f274d2af49dcb3f1aba
Author: Blaine Motsinger <blaine at bestpractical.com>
Date:   Mon Oct 21 11:02:30 2019 -0500

    Add project-diagram to fontawesome SVG build

diff --git a/devel/third-party/fontawesome/index.js b/devel/third-party/fontawesome/index.js
index 2176d8a85e..8c17cd97fe 100644
--- a/devel/third-party/fontawesome/index.js
+++ b/devel/third-party/fontawesome/index.js
@@ -5,6 +5,7 @@ import {
     faCog as fasCog,
     faEdit as fasEdit,
     faBookmark as fasBookmark,
+    faProjectDiagram as fasProjectDiagram,
 } from '@fortawesome/free-solid-svg-icons'
 
 
@@ -29,6 +30,7 @@ library.add(
     fasCog,
     fasEdit,
     fasBookmark,
+    fasProjectDiagram,
     // Regular
     farEdit,
     farBookmark,
diff --git a/share/static/js/fontawesome.js b/share/static/js/fontawesome.js
index ae901478e7..f3c95ba2e2 100644
--- a/share/static/js/fontawesome.js
+++ b/share/static/js/fontawesome.js
@@ -1 +1 @@
-(function(e){function t(i){if(a[i])return a[i].exports;var n=a[i]={i:i,l:!1,exports:{}};return e[i].call(n.exports,n,n.exports,t),n.l=!0,n.exports}var a={};return t.m=e,t.c=a,t.d=function(e,a,i){t.o(e,a)||Object.defineProperty(e,a,{enumerable:!0,get:i})},t.r=function(e){'undefined'!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:'Module'}),Object.defineProperty(e,'__esModule',{value:!0})},t.t=function(e,a){if(1&a&&(e=t(e)),8&a)return e;if(4&a&&'object'==typeof e&&e&&e.__esModule)return e;var i=Object.create(null);if(t.r(i),Object.defineProperty(i,'default',{enumerable:!0,value:e}),2&a&&'string'!=typeof e)for(var n in e)t.d(i,n,function(t){return e[t]}.bind(null,n));return i},t.n=function(e){var a=e&&e.__esModule?function(){return e['default']}:function(){return e};return t.d(a,'a',a),a},t.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},t.p='',t(t.s=5)})([function(e){var t=function(){return this}();try{t=t||new Function('return 
 this')()}catch(a){'object'==typeof window&&(t=window)}e.exports=t},function(e,t,a){'use strict';(function(e,i){function n(e){return n='function'==typeof Symbol&&'symbol'==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&'function'==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?'symbol':typeof e},n(e)}function r(e,t){if(!(e instanceof t))throw new TypeError('Cannot call a class as a function')}function o(e,t){for(var a=0,i;a<t.length;a++)i=t[a],i.enumerable=i.enumerable||!1,i.configurable=!0,'value'in i&&(i.writable=!0),Object.defineProperty(e,i.key,i)}function s(e,t,a){return t&&o(e.prototype,t),a&&o(e,a),e}function c(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function l(e){for(var t=1;t<arguments.length;t++){var a=null==arguments[t]?{}:arguments[t],i=Object.keys(a);'function'==typeof Object.getOwnPropertySymbols&&(i=i.concat(Object.getOwnPropertySymbols(a).filter(function(e){ret
 urn Object.getOwnPropertyDescriptor(a,e).enumerable}))),i.forEach(function(t){c(e,t,a[t])})}return e}function f(e,t){return g(e)||b(e,t)||v()}function m(e){return u(e)||h(e)||y()}function u(e){if(Array.isArray(e)){for(var t=0,a=Array(e.length);t<e.length;t++)a[t]=e[t];return a}}function g(e){if(Array.isArray(e))return e}function h(e){if(Symbol.iterator in Object(e)||'[object Arguments]'===Object.prototype.toString.call(e))return Array.from(e)}function b(e,t){var a=[],i=!0,n=!1,r=void 0;try{for(var o=e[Symbol.iterator](),s;!(i=(s=o.next()).done)&&(a.push(s.value),!(t&&a.length===t));i=!0);}catch(e){n=!0,r=e}finally{try{i||null==o['return']||o['return']()}finally{if(n)throw r}}return a}function y(){throw new TypeError('Invalid attempt to spread non-iterable instance')}function v(){throw new TypeError('Invalid attempt to destructure non-iterable instance')}function x(e){var t=et.querySelector('script['+e+']');if(t)return t.getAttribute(e)}function k(e){return!(''!==e)||'false'!==e&&(!(
 'true'!==e)||e)}function A(e){nt&&(Tt?setTimeout(e,0):Lt.push(e))}function N(){for(var e=0;e<Yt.length;e++)Yt[e][0](Yt[e][1]);Yt=[],Xt=!1}function M(e,t){Yt.push([e,t]),Xt||(Xt=!0,Vt(N,0))}function C(e,t){function a(e){_(t,e)}function i(e){S(t,e)}try{e(a,i)}catch(t){i(t)}}function I(e){var t=e.owner,a=t._state,i=t._data,n=e[a],r=e.then;if('function'==typeof n){a=Dt;try{i=n(i)}catch(t){S(r,t)}}E(r,i)||(a===Dt&&_(r,i),a===jt&&S(r,i))}function E(t,e){var a;try{if(t===e)throw new TypeError('A promises callback cannot return that same promise.');if(e&&('function'==typeof e||'object'===n(e))){var i=e.then;if('function'==typeof i)return i.call(e,function(i){a||(a=!0,e===i?z(t,i):_(t,i))},function(e){a||(a=!0,S(t,e))}),!0}}catch(i){return a||S(t,i),!0}return!1}function _(e,t){e!==t&&E(e,t)||z(e,t)}function z(e,t){e._state===Rt&&(e._state=Ot,e._data=t,M(T,e))}function S(e,t){e._state===Rt&&(e._state=Ot,e._data=t,M(R,e))}function L(e){e._then=e._then.forEach(I)}function T(e){e._state=Dt,L(e)}
 function R(t){t._state=jt,L(t),!t._handled&&Ht&&e.process.emit('unhandledRejection',t._data,t)}function O(t){e.process.emit('rejectionHandled',t)}function D(e){if('function'!=typeof e)throw new TypeError('Promise resolver '+e+' is not a function');if(!1==this instanceof D)throw new TypeError('Failed to construct \'Promise\': Please use the \'new\' operator, this object constructor cannot be called as a function.');this._then=[],C(e,this)}function j(e){return~Et.indexOf(e)}function F(e){if(e&&nt){var t=et.createElement('style');t.setAttribute('type','text/css'),t.innerHTML=e;for(var a=et.head.childNodes,n=null,r=a.length-1;-1<r;r--){var i=a[r],o=(i.tagName||'').toUpperCase();-1<['STYLE','LINK'].indexOf(o)&&(n=i)}return et.head.insertBefore(t,n),e}}function H(){for(var e=12,t='';0<e--;)t+=Wt[0|62*Math.random()];return t}function V(e){for(var t=[],a=(e||[]).length>>>0;a--;)t[a]=e[a];return t}function Y(e){return e.classList?V(e.classList):(e.getAttribute('class')||'').split(' ').filter
 (function(e){return e})}function X(e,t){var a=t.split('-'),i=a[0],n=a.slice(1).join('-');return i!==e||''===n||j(n)?null:n}function B(e){return''.concat(e).replace(/&/g,'&').replace(/"/g,'"').replace(/'/g,''').replace(/</g,'<').replace(/>/g,'>')}function U(e){return Object.keys(e||{}).reduce(function(t,a){return t+''.concat(a,'="').concat(B(e[a]),'" ')},'').trim()}function W(e){return Object.keys(e||{}).reduce(function(t,a){return t+''.concat(a,': ').concat(e[a],';')},'')}function q(e){return e.size!==d.size||e.x!==d.x||e.y!==d.y||e.rotate!==d.rotate||e.flipX||e.flipY}function G(e){var t=e.transform,a=e.containerWidth,i=e.iconWidth,n={transform:'translate('.concat(a/2,' 256)')},r='translate('.concat(32*t.x,', ').concat(32*t.y,') '),o='scale('.concat(t.size/16*(t.flipX?-1:1),', ').concat(t.size/16*(t.flipY?-1:1),') '),s='rotate('.concat(t.rotate,' 0 0)'),c={transform:''.concat(r,' ').concat(o,' ').concat(s)},l={transform:'translate('.concat(-1*(i/2),' -256)')};retu
 rn{outer:n,inner:c,path:l}}function K(e){var t=e.transform,a=e.width,i=void 0===a?st:a,n=e.height,r=void 0===n?st:n,o=e.startCentered,s=void 0!==o&&o,c='';return c+=s&&rt?'translate('.concat(t.x/Ut-i/2,'em, ').concat(t.y/Ut-r/2,'em) '):s?'translate(calc(-50% + '.concat(t.x/Ut,'em), calc(-50% + ').concat(t.y/Ut,'em)) '):'translate('.concat(t.x/Ut,'em, ').concat(t.y/Ut,'em) '),c+='scale('.concat(t.size/Ut*(t.flipX?-1:1),', ').concat(t.size/Ut*(t.flipY?-1:1),') '),c+='rotate('.concat(t.rotate,'deg) '),c}function $(e){var t=!(1<arguments.length&&void 0!==arguments[1])||arguments[1];return e.attributes&&(e.attributes.fill||t)&&(e.attributes.fill='black'),e}function J(e){return'g'===e.tag?e.children:[e]}function Q(e){var t=e.children,a=e.attributes,i=e.main,n=e.mask,r=e.transform,o=i.width,s=i.icon,c=n.width,f=n.icon,d=G({transform:r,containerWidth:c,iconWidth:o}),m={tag:'rect',attributes:l({},qt,{fill:'white'})},u=s.children?{children:s.children.map($)}:{},p={tag:'g',attributes:l({},d.in
 ner),children:[$(l({tag:s.tag,attributes:l({},s.attributes,d.path)},u))]},g={tag:'g',attributes:l({},d.outer),children:[p]},h='mask-'.concat(H()),b='clip-'.concat(H()),y={tag:'mask',attributes:l({},qt,{id:h,maskUnits:'userSpaceOnUse',maskContentUnits:'userSpaceOnUse'}),children:[m,g]},v={tag:'defs',children:[{tag:'clipPath',attributes:{id:b},children:J(f)},y]};return t.push(v,{tag:'rect',attributes:l({fill:'currentColor',"clip-path":'url(#'.concat(b,')'),mask:'url(#'.concat(h,')')},qt)}),{children:t,attributes:a}}function Z(e){var t=e.children,a=e.attributes,i=e.main,n=e.transform,r=e.styles,o=W(r);if(0<o.length&&(a.style=o),q(n)){var s=G({transform:n,containerWidth:i.width,iconWidth:i.width});t.push({tag:'g',attributes:l({},s.outer),children:[{tag:'g',attributes:l({},s.inner),children:[{tag:i.icon.tag,children:i.icon.children,attributes:l({},i.icon.attributes,s.path)}]}]})}else t.push(i.icon);return{children:t,attributes:a}}function ee(e){var t=e.children,a=e.main,i=e.mask,n=e.attr
 ibutes,r=e.styles,o=e.transform;if(q(o)&&a.found&&!i.found){var s=a.width,c=a.height,f={x:s/c/2,y:.5};n.style=W(l({},r,{"transform-origin":''.concat(f.x+o.x/16,'em ').concat(f.y+o.y/16,'em')}))}return[{tag:'svg',attributes:n,children:t}]}function te(e){var t=e.prefix,a=e.iconName,i=e.children,n=e.attributes,r=e.symbol,o=!0===r?''.concat(t,'-').concat(Pt.familyPrefix,'-').concat(a):r;return[{tag:'svg',attributes:{style:'display: none;'},children:[{tag:'symbol',attributes:l({},n,{id:o}),children:i}]}]}function ae(e){var t=e.icons,a=t.main,i=t.mask,n=e.prefix,r=e.iconName,o=e.transform,s=e.symbol,c=e.title,f=e.extra,d=e.watchable,m=i.found?i:a,u=m.width,p=m.height,g='fa-w-'.concat(Math.ceil(16*(u/p))),h=[Pt.replacementClass,r?''.concat(Pt.familyPrefix,'-').concat(r):'',g].filter(function(e){return-1===f.classes.indexOf(e)}).concat(f.classes).join(' '),b={children:[],attributes:l({},f.attributes,{"data-prefix":n,"data-icon":r,class:h,role:f.attributes.role||'img',xmlns:'http://www.w3.or
 g/2000/svg',viewBox:'0 0 '.concat(u,' ').concat(p)})};void 0!==d&&d&&(b.attributes[ft]=''),c&&b.children.push({tag:'title',attributes:{id:b.attributes['aria-labelledby']||'title-'.concat(H())},children:[c]});var y=l({},b,{prefix:n,iconName:r,main:a,mask:i,transform:o,symbol:s,styles:f.styles}),v=i.found&&a.found?Q(y):Z(y),x=v.children,w=v.attributes;return y.children=x,y.attributes=w,s?te(y):ee(y)}function ie(e){var t=e.content,a=e.width,i=e.height,n=e.transform,r=e.title,o=e.extra,s=e.watchable,c=l({},o.attributes,r?{title:r}:{},{class:o.classes.join(' ')});void 0!==s&&s&&(c[ft]='');var f=l({},o.styles);q(n)&&(f.transform=K({transform:n,startCentered:!0,width:a,height:i}),f['-webkit-transform']=f.transform);var d=W(f);0<d.length&&(c.style=d);var m=[];return m.push({tag:'span',attributes:c,children:[t]}),r&&m.push({tag:'span',attributes:{class:'sr-only'},children:[r]}),m}function ne(e){var t=e.content,a=e.title,i=e.extra,n=l({},i.attributes,a?{title:a}:{},{class:i.classes.join(' ')}
 ),r=W(i.styles);0<r.length&&(n.style=r);var o=[];return o.push({tag:'span',attributes:n,children:[t]}),a&&o.push({tag:'span',attributes:{class:'sr-only'},children:[a]}),o}function re(e){for(var t='',a=0,i;a<e.length;a++)i=e.charCodeAt(a).toString(16),t+=('000'+i).slice(-4);return t}function oe(e,t){var a=2<arguments.length&&arguments[2]!==void 0?arguments[2]:{},i=a.skipHooks,n=Object.keys(t).reduce(function(e,a){var i=t[a],n=!!i.icon;return n?e[i.iconName]=i.icon:e[a]=i,e},{});'function'!=typeof w.hooks.addPack||void 0!==i&&i?w.styles[e]=l({},w.styles[e]||{},n):w.hooks.addPack(e,n),'fas'===e&&oe('fa',t)}function se(e,t){return(aa[e]||{})[t]}function ce(e,t){return(ia[e]||{})[t]}function le(e){return na[e]||{prefix:null,iconName:null}}function fe(e){return e.reduce(function(e,t){var a=X(Pt.familyPrefix,t);if(oa[t])e.prefix=t;else if(Pt.autoFetchSvg&&-1<['fas','far','fal','fad','fab','fa'].indexOf(t))e.prefix=t;else if(a){var i='fa'===e.prefix?le(a):{};e.iconName=i.iconName||a,e.prefi
 x=i.prefix||e.prefix}else t!==Pt.replacementClass&&0!==t.indexOf('fa-w-')&&e.rest.push(t);return e},sa())}function de(e,t,a){if(e&&e[t]&&e[t][a])return{prefix:t,iconName:a,icon:e[t][a]}}function me(e){var t=e.tag,a=e.attributes,i=void 0===a?{}:a,n=e.children,r=void 0===n?[]:n;return'string'==typeof e?B(e):'<'.concat(t,' ').concat(U(i),'>').concat(r.map(me).join(''),'</').concat(t,'>')}function ue(e){var t=e.getAttribute?e.getAttribute(ft):null;return'string'==typeof t}function pe(){if(!0===Pt.autoReplaceSvg)return la.replace;var e=la[Pt.autoReplaceSvg];return e||la.replace}function ge(e){e()}function he(e,t){var a='function'==typeof t?t:ca;if(0===e.length)a();else{var i=ge;Pt.mutateApproach===ht&&(i=Ze.requestAnimationFrame||ge),i(function(){var t=pe(),i=Jt.begin('mutate');e.map(t),i(),a()})}}function be(){fa=!0}function ye(){fa=!1}function ve(e){if(tt&&Pt.observeMutations){var t=e.treeCallback,a=e.nodeCallback,i=e.pseudoElementsCallback,n=e.observeMutationsRoot,r=void 0===n?et:n;da
 =new tt(function(e){fa||V(e).forEach(function(e){if('childList'===e.type&&0<e.addedNodes.length&&!ue(e.addedNodes[0])&&(Pt.searchPseudoElements&&i(e.target),t(e.target)),'attributes'===e.type&&e.target.parentNode&&Pt.searchPseudoElements&&i(e.target.parentNode),'attributes'===e.type&&ue(e.target)&&~Ct.indexOf(e.attributeName))if('class'===e.attributeName){var n=fe(Y(e.target)),r=n.prefix,o=n.iconName;r&&e.target.setAttribute('data-prefix',r),o&&e.target.setAttribute('data-icon',o)}else a(e.target)})}),nt&&da.observe(r,{childList:!0,attributes:!0,characterData:!0,subtree:!0})}}function xe(){da&&da.disconnect()}function we(e){var t=e.getAttribute('style'),a=[];return t&&(a=t.split(';').reduce(function(e,t){var a=t.split(':'),i=a[0],n=a.slice(1);return i&&0<n.length&&(e[i]=n.join(':').trim()),e},{})),a}function ke(e){var t=e.getAttribute('data-prefix'),a=e.getAttribute('data-icon'),i=void 0===e.innerText?'':e.innerText.trim(),n=fe(Y(e));return t&&a&&(n.prefix=t,n.iconName=a),n.prefix&&
 1<i.length?n.iconName=ce(n.prefix,e.innerText):n.prefix&&1===i.length&&(n.iconName=se(n.prefix,re(e.innerText))),n}function Ae(e){return ma(e.getAttribute('data-fa-transform'))}function Ne(e){var t=e.getAttribute('data-fa-symbol');return null!==t&&(!(''!==t)||t)}function Me(e){var t=V(e.attributes).reduce(function(e,t){return'class'!==e.name&&'style'!==e.name&&(e[t.name]=t.value),e},{}),a=e.getAttribute('title');return Pt.autoA11y&&(a?t['aria-labelledby']=''.concat(Pt.replacementClass,'-title-').concat(H()):(t['aria-hidden']='true',t.focusable='false')),t}function Ce(e){var t=e.getAttribute('data-fa-mask');return t?fe(t.split(' ').map(function(e){return e.trim()})):sa()}function Ie(){return{iconName:null,title:null,prefix:null,transform:d,symbol:!1,mask:null,extra:{classes:[],styles:{},attributes:{}}}}function Ee(e){var t=ke(e),a=t.iconName,i=t.prefix,n=t.rest,r=we(e),o=Ae(e),s=Ne(e),c=Me(e),l=Ce(e);return{iconName:a,title:e.getAttribute('title'),prefix:i,transform:o,symbol:s,mask:l
 ,extra:{classes:n,styles:r,attributes:c}}}function _e(e){this.name='MissingIcon',this.message=e||'Icon unavailable',this.stack=new Error().stack}function ze(e){var t=e[0],a=e[1],i=e.slice(4),n=f(i,1),r=n[0],o=null;return o=Array.isArray(r)?{tag:'g',attributes:{class:''.concat(Pt.familyPrefix,'-').concat(It.GROUP)},children:[{tag:'path',attributes:{class:''.concat(Pt.familyPrefix,'-').concat(It.SECONDARY),fill:'currentColor',d:r[0]}},{tag:'path',attributes:{class:''.concat(Pt.familyPrefix,'-').concat(It.PRIMARY),fill:'currentColor',d:r[1]}}]}:{tag:'path',attributes:{fill:'currentColor',d:r}},{found:!0,width:t,height:a,icon:o}}function Pe(e,t){return new Bt(function(a,i){if(e&&t&&wa[t]&&wa[t][e]){var r=wa[t][e];return a(ze(r))}'object'===n(Ze.FontAwesomeKitConfig)&&'string'==typeof window.FontAwesomeKitConfig.token&&({}['fa-kit-token']=Ze.FontAwesomeKitConfig.token),e&&t&&!Pt.showMissingIcons?i(new _e('Icon is missing for prefix '.concat(t,' with icon name ').concat(e))):a({found:!1,w
 idth:512,height:512,icon:xa})})}function Se(e,t){var a=t.iconName,i=t.title,n=t.prefix,r=t.transform,o=t.symbol,s=t.mask,c=t.extra;return new Bt(function(t){Bt.all([Pe(a,n),Pe(s.iconName,s.prefix)]).then(function(s){var l=f(s,2),d=l[0],m=l[1];t([e,ae({icons:{main:d,mask:m},prefix:n,iconName:a,transform:r,symbol:o,mask:m,title:i,extra:c,watchable:!0})])})})}function Le(e,t){var a=t.title,i=t.transform,n=t.extra,r=null,o=null;if(rt){var s=parseInt(getComputedStyle(e).fontSize,10),c=e.getBoundingClientRect();r=c.width/s,o=c.height/s}return Pt.autoA11y&&!a&&(n.attributes['aria-hidden']='true'),Bt.resolve([e,ie({content:e.innerHTML,width:r,height:o,transform:i,title:a,extra:n,watchable:!0})])}function Te(e){var t=Ee(e);return~t.extra.classes.indexOf(wt)?Le(e,t):Se(e,t)}function Re(e){var t=1<arguments.length&&arguments[1]!==void 0?arguments[1]:null;if(nt){var a=et.documentElement.classList,i=function(e){return a.add(''.concat(gt,'-').concat(e))},n=function(e){return a.remove(''.concat(gt
 ,'-').concat(e))},r=Pt.autoFetchSvg?Object.keys(vt):Object.keys(ka),o=['.'.concat(wt,':not([').concat(ft,'])')].concat(r.map(function(e){return'.'.concat(e,':not([').concat(ft,'])')})).join(', ');if(0!==o.length){var s=[];try{s=V(e.querySelectorAll(o))}catch(t){}if(0<s.length)i('pending'),n('complete');else return;var c=Jt.begin('onTree'),l=s.reduce(function(e,t){try{var a=Te(t);a&&e.push(a)}catch(t){!yt&&t instanceof _e&&console.error(t)}return e},[]);return new Bt(function(e,a){Bt.all(l).then(function(a){he(a,function(){i('active'),i('complete'),n('pending'),'function'==typeof t&&t(),c(),e()})}).catch(function(){c(),a()})})}}}function Oe(e){var t=1<arguments.length&&arguments[1]!==void 0?arguments[1]:null;Te(e).then(function(e){e&&he([e],t)})}function De(e,t){var a=''.concat(mt).concat(t.replace(':','-'));return new Bt(function(i,n){if(null!==e.getAttribute(a))return i();var r=V(e.children),o=r.filter(function(e){return e.getAttribute(dt)===t})[0],s=Ze.getComputedStyle(e,t),c=s.ge
 tPropertyValue('font-family').match(kt),f=s.getPropertyValue('font-weight');if(o&&!c)return e.removeChild(o),i();if(c){var d=s.getPropertyValue('content'),m=~['Solid','Regular','Light','Duotone','Brands'].indexOf(c[1])?xt[c[1].toLowerCase()]:At[f],u=re(3===d.length?d.substr(1,1):d),p=se(m,u),g=p;if(p&&(!o||o.getAttribute(ut)!==m||o.getAttribute(pt)!==g)){e.setAttribute(a,g),o&&e.removeChild(o);var h=Ie(),b=h.extra;b.attributes[dt]=t,Pe(p,m).then(function(n){var r=ae(l({},h,{icons:{main:n,mask:sa()},prefix:m,iconName:g,extra:b,watchable:!0})),o=et.createElement('svg');':before'===t?e.insertBefore(o,e.firstChild):e.appendChild(o),o.outerHTML=r.map(function(e){return me(e)}).join('\n'),e.removeAttribute(a),i()}).catch(n)}else i()}else i()})}function je(e){return Bt.all([De(e,':before'),De(e,':after')])}function Fe(e){return e.parentNode!==document.head&&!~bt.indexOf(e.tagName.toUpperCase())&&!e.getAttribute(dt)&&(!e.parentNode||'svg'!==e.parentNode.tagName)}function He(e){return nt?new
  Bt(function(t,a){var i=V(e.querySelectorAll('*')).filter(Fe).map(je),n=Jt.begin('searchPseudoElements');be(),Bt.all(i).then(function(){n(),ye(),t()}).catch(function(){n(),ye(),a()})}):void 0}function Ve(){var e=Pt.familyPrefix,t=Pt.replacementClass,a=Aa;if(e!==ct||t!==lt){var i=/\.fa\-/g,n=/\--fa\-/g,r=/\.svg-inline--fa/g;a=a.replace(i,'.'.concat(e,'-')).replace(n,'--'.concat(e,'-')).replace(r,'.'.concat(t))}return a}function Ye(){Pt.autoAddCss&&!Ca&&(F(Ve()),Ca=!0)}function Xe(e,t){return Object.defineProperty(e,'abstract',{get:t}),Object.defineProperty(e,'html',{get:function(){return e.abstract.map(function(e){return me(e)})}}),Object.defineProperty(e,'node',{get:function(){if(nt){var t=et.createElement('div');return t.innerHTML=e.html,t.children}}}),e}function Be(e){var t=e.prefix,a=void 0===t?'fa':t,i=e.iconName;return i?de(Ma.definitions,a,i)||de(w.styles,a,i):void 0}a.d(t,'b',function(){return Ma}),a.d(t,'a',function(){return Ia});var Ue=function(){},We={},qe={},Ge=null,Ke={m
 ark:Ue,measure:Ue};try{'undefined'!=typeof window&&(We=window),'undefined'!=typeof document&&(qe=document),'undefined'!=typeof MutationObserver&&(Ge=MutationObserver),'undefined'!=typeof performance&&(Ke=performance)}catch(t){}var $e=We.navigator||{},Je=$e.userAgent,Qe=void 0===Je?'':Je,Ze=We,et=qe,tt=Ge,at=Ke,it=!!Ze.document,nt=!!et.documentElement&&!!et.head&&'function'==typeof et.addEventListener&&'function'==typeof et.createElement,rt=~Qe.indexOf('MSIE')||~Qe.indexOf('Trident/'),ot='___FONT_AWESOME___',st=16,ct='fa',lt='svg-inline--fa',ft='data-fa-i2svg',dt='data-fa-pseudo-element',mt='data-fa-pseudo-element-pending',ut='data-prefix',pt='data-icon',gt='fontawesome-i2svg',ht='async',bt=['HTML','HEAD','STYLE','SCRIPT'],yt=function(){try{return!0}catch(t){return!1}}(),vt={fas:'solid',far:'regular',fal:'light',fad:'duotone',fab:'brands',fa:'solid'},xt={solid:'fas',regular:'far',light:'fal',duotone:'fad',brands:'fab'},wt='fa-layers-text',kt=/Font Awesome 5 (Solid|Regular|Light|Duoto
 ne|Brands|Free|Pro)/,At={900:'fas',400:'far',normal:'far',300:'fal'},Nt=[1,2,3,4,5,6,7,8,9,10],Mt=Nt.concat([11,12,13,14,15,16,17,18,19,20]),Ct=['class','data-prefix','data-icon','data-fa-transform','data-fa-mask'],It={GROUP:'group',SWAP_OPACITY:'swap-opacity',PRIMARY:'primary',SECONDARY:'secondary'},Et=['xs','sm','lg','fw','ul','li','border','pull-left','pull-right','spin','pulse','rotate-90','rotate-180','rotate-270','flip-horizontal','flip-vertical','flip-both','stack','stack-1x','stack-2x','inverse','layers','layers-text','layers-counter',It.GROUP,It.SWAP_OPACITY,It.PRIMARY,It.SECONDARY].concat(Nt.map(function(e){return''.concat(e,'x')})).concat(Mt.map(function(e){return'w-'.concat(e)})),_t=Ze.FontAwesomeConfig||{};if(et&&'function'==typeof et.querySelector){[['data-family-prefix','familyPrefix'],['data-replacement-class','replacementClass'],['data-auto-replace-svg','autoReplaceSvg'],['data-auto-add-css','autoAddCss'],['data-auto-a11y','autoA11y'],['data-search-pseudo-elements',
 'searchPseudoElements'],['data-observe-mutations','observeMutations'],['data-mutate-approach','mutateApproach'],['data-keep-original-source','keepOriginalSource'],['data-measure-performance','measurePerformance'],['data-show-missing-icons','showMissingIcons']].forEach(function(e){var t=f(e,2),a=t[0],i=t[1],n=k(x(a));n!==void 0&&null!==n&&(_t[i]=n)})}var zt=l({},{familyPrefix:ct,replacementClass:lt,autoReplaceSvg:!0,autoAddCss:!0,autoA11y:!0,searchPseudoElements:!1,observeMutations:!0,mutateApproach:'async',keepOriginalSource:!0,measurePerformance:!1,showMissingIcons:!0},_t);zt.autoReplaceSvg||(zt.observeMutations=!1);var Pt=l({},zt);Ze.FontAwesomeConfig=Pt;var St=Ze||{};St[ot]||(St[ot]={}),St[ot].styles||(St[ot].styles={}),St[ot].hooks||(St[ot].hooks={}),St[ot].shims||(St[ot].shims=[]);var w=St[ot],Lt=[],Tt=!1;nt&&(Tt=(et.documentElement.doScroll?/^loaded|^c/:/^loaded|^i|^c/).test(et.readyState),!Tt&&et.addEventListener('DOMContentLoaded',function e(){et.removeEventListener('DOMCont
 entLoaded',e),Tt=1,Lt.map(function(e){return e()})}));var Rt='pending',Ot='settled',Dt='fulfilled',jt='rejected',Ft=function(){},Ht='undefined'!=typeof e&&'undefined'!=typeof e.process&&'function'==typeof e.process.emit,Vt='undefined'==typeof i?setTimeout:i,Yt=[],Xt;D.prototype={constructor:D,_state:Rt,_then:null,_data:void 0,_handled:!1,then:function(e,t){var a={owner:this,then:new this.constructor(Ft),fulfilled:e,rejected:t};return(t||e)&&!this._handled&&(this._handled=!0,this._state===jt&&Ht&&M(O,this)),this._state===Dt||this._state===jt?M(I,a):this._then.push(a),a.then},catch:function(e){return this.then(null,e)}},D.all=function(e){if(!Array.isArray(e))throw new TypeError('You must pass an array to Promise.all().');return new D(function(t,a){function n(e){return o++,function(a){r[e]=a,--o||t(r)}}for(var r=[],o=0,s=0,i;s<e.length;s++)i=e[s],i&&'function'==typeof i.then?i.then(n(s),a):r[s]=i;o||t(r)})},D.race=function(e){if(!Array.isArray(e))throw new TypeError('You must pass an a
 rray to Promise.race().');return new D(function(t,a){for(var n=0,i;n<e.length;n++)i=e[n],i&&'function'==typeof i.then?i.then(t,a):t(i)})},D.resolve=function(e){return e&&'object'===n(e)&&e.constructor===D?e:new D(function(t){t(e)})},D.reject=function(e){return new D(function(t,a){a(e)})};var Bt='function'==typeof Promise?Promise:D,Ut=st,d={size:16,x:0,y:0,rotate:0,flipX:!1,flipY:!1},Wt='0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ',qt={x:0,y:0,width:'100%',height:'100%'},Gt=function(){},Kt=Pt.measurePerformance&&at&&at.mark&&at.measure?at:{mark:Gt,measure:Gt},p='FA "5.11.2"',$t=function(e){Kt.mark(''.concat(p,' ').concat(e,' ends')),Kt.measure(''.concat(p,' ').concat(e),''.concat(p,' ').concat(e,' begins'),''.concat(p,' ').concat(e,' ends'))},Jt={begin:function(e){return Kt.mark(''.concat(p,' ').concat(e,' begins')),function(){return $t(e)}},end:$t},Qt=function(e,t){return function(i,a,n,r){return e.call(t,i,a,n,r)}},Zt=function(e,t,a,n){var r=Object.keys(e),o=r.le
 ngth,s=n===void 0?t:Qt(t,n),c,i,l;for(void 0===a?(c=1,l=e[r[0]]):(c=0,l=a);c<o;c++)i=r[c],l=s(l,e[i],i,e);return l},ea=w.styles,ta=w.shims,aa={},ia={},na={},ra=function(){var e=function(e){return Zt(ea,function(t,a,i){return t[i]=Zt(a,e,{}),t},{})};aa=e(function(e,t,a){return t[3]&&(e[t[3]]=a),e}),ia=e(function(e,t,a){var i=t[2];return e[a]=a,i.forEach(function(t){e[t]=a}),e});var t='far'in ea;na=Zt(ta,function(e,a){var i=a[0],n=a[1],r=a[2];return'far'!==n||t||(n='fas'),e[i]={prefix:n,iconName:r},e},{})};ra();var oa=w.styles,sa=function(){return{prefix:null,iconName:null,rest:[]}},ca=function(){},la={replace:function(e){var t=e[0],a=e[1],i=a.map(function(e){return me(e)}).join('\n');if(t.parentNode&&t.outerHTML)t.outerHTML=i+(Pt.keepOriginalSource&&'svg'!==t.tagName.toLowerCase()?'<!-- '.concat(t.outerHTML,' -->'):'');else if(t.parentNode){var n=document.createElement('span');t.parentNode.replaceChild(n,t),n.outerHTML=i}},nest:function(e){var t=e[0],a=e[1];if(~Y(t).indexOf(Pt.replac
 ementClass))return la.replace(e);var i=new RegExp(''.concat(Pt.familyPrefix,'-.*'));delete a[0].attributes.style,delete a[0].attributes.id;var n=a[0].attributes.class.split(' ').reduce(function(e,t){return t===Pt.replacementClass||t.match(i)?e.toSvg.push(t):e.toNode.push(t),e},{toNode:[],toSvg:[]});a[0].attributes.class=n.toSvg.join(' ');var r=a.map(function(e){return me(e)}).join('\n');t.setAttribute('class',n.toNode.join(' ')),t.setAttribute(ft,''),t.innerHTML=r}},fa=!1,da=null,ma=function(e){var t={size:16,x:0,y:0,flipX:!1,flipY:!1,rotate:0};return e?e.toLowerCase().split(' ').reduce(function(e,t){var a=t.toLowerCase().split('-'),i=a[0],n=a.slice(1).join('-');return i&&'h'===n?(e.flipX=!0,e):i&&'v'===n?(e.flipY=!0,e):(n=parseFloat(n),isNaN(n))?e:('grow'===i?e.size+=n:'shrink'===i?e.size-=n:'left'===i?e.x-=n:'right'===i?e.x+=n:'up'===i?e.y-=n:'down'===i?e.y+=n:'rotate'===i?e.rotate+=n:void 0,e)},t):t};_e.prototype=Object.create(Error.prototype),_e.prototype.constructor=_e;var ua={
 fill:'currentColor'},pa={attributeType:'XML',repeatCount:'indefinite',dur:'2s'},ga={tag:'path',attributes:l({},ua,{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.6V
 471.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'})},ha=l({},pa,{attributeName:'opacity'}),ba={tag:'circle',attributes:l({},ua,{cx:'256',cy:'364',r:'28'}),children:[{tag:'animate',attributes:l({},pa,{attributeName:'r',values:'28;14;28;28;14;28;'})},{tag:'animate',attributes:l({},ha,{values:'1;0;1;1;0;1;'})}]},ya={tag:'path',attributes:l({},ua,{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:[{tag:'animate',attributes:l({},ha,{values:'1;0;0;0;0;1;'})}]},va={tag:'path',attributes:l({},ua,{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:l({},ha,{values:'0;0;1;1;0;0;'})}]},xa={tag:'g',children:[ga,ba,ya,va]},wa=w.styles,ka=w.styles,Aa='svg:not(:root).svg-inline--fa {\n  overflow: visible;\n}\n\n.svg-inline--fa {\n  display: inline-block;\n  font-size: inherit;\n  height: 1em;\n  overflow: visible;\n  vertical-align: -0.125em;\n}\n.svg-inline--fa.fa-lg {\n  vertical-align: -0.225em;\n}\n.svg-inline--fa.fa-w-1 {\n  width: 0.0625em;\n}\n.svg-inline--fa.fa-w-2 {\n  width: 0.125em;\n}\n.svg-inline--fa.fa-w-3 {\n  width: 0.1875em;\n}\n.svg-inline--fa.fa-w-4 {\n  width: 0.25em;\n}\n.svg-in
 line--fa.fa-w-5 {\n  width: 0.3125em;\n}\n.svg-inline--fa.fa-w-6 {\n  width: 0.375em;\n}\n.svg-inline--fa.fa-w-7 {\n  width: 0.4375em;\n}\n.svg-inline--fa.fa-w-8 {\n  width: 0.5em;\n}\n.svg-inline--fa.fa-w-9 {\n  width: 0.5625em;\n}\n.svg-inline--fa.fa-w-10 {\n  width: 0.625em;\n}\n.svg-inline--fa.fa-w-11 {\n  width: 0.6875em;\n}\n.svg-inline--fa.fa-w-12 {\n  width: 0.75em;\n}\n.svg-inline--fa.fa-w-13 {\n  width: 0.8125em;\n}\n.svg-inline--fa.fa-w-14 {\n  width: 0.875em;\n}\n.svg-inline--fa.fa-w-15 {\n  width: 0.9375em;\n}\n.svg-inline--fa.fa-w-16 {\n  width: 1em;\n}\n.svg-inline--fa.fa-w-17 {\n  width: 1.0625em;\n}\n.svg-inline--fa.fa-w-18 {\n  width: 1.125em;\n}\n.svg-inline--fa.fa-w-19 {\n  width: 1.1875em;\n}\n.svg-inline--fa.fa-w-20 {\n  width: 1.25em;\n}\n.svg-inline--fa.fa-pull-left {\n  margin-right: 0.3em;\n  width: auto;\n}\n.svg-inline--fa.fa-pull-right {\n  margin-left: 0.3em;\n  width: auto;\n}\n.svg-inline--fa.fa-border {\n  height: 1.5em;\n}\n.svg-inline--fa.fa-li {\n
   width: 2em;\n}\n.svg-inline--fa.fa-fw {\n  width: 1.25em;\n}\n\n.fa-layers svg.svg-inline--fa {\n  bottom: 0;\n  left: 0;\n  margin: auto;\n  position: absolute;\n  right: 0;\n  top: 0;\n}\n\n.fa-layers {\n  display: inline-block;\n  height: 1em;\n  position: relative;\n  text-align: center;\n  vertical-align: -0.125em;\n  width: 1em;\n}\n.fa-layers svg.svg-inline--fa {\n  -webkit-transform-origin: center center;\n          transform-origin: center center;\n}\n\n.fa-layers-counter, .fa-layers-text {\n  display: inline-block;\n  position: absolute;\n  text-align: center;\n}\n\n.fa-layers-text {\n  left: 50%;\n  top: 50%;\n  -webkit-transform: translate(-50%, -50%);\n          transform: translate(-50%, -50%);\n  -webkit-transform-origin: center center;\n          transform-origin: center center;\n}\n\n.fa-layers-counter {\n  background-color: #ff253a;\n  border-radius: 1em;\n  -webkit-box-sizing: border-box;\n          box-sizing: border-box;\n  color: #fff;\n  height: 1.5em;\n  li
 ne-height: 1;\n  max-width: 5em;\n  min-width: 1.5em;\n  overflow: hidden;\n  padding: 0.25em;\n  right: 0;\n  text-overflow: ellipsis;\n  top: 0;\n  -webkit-transform: scale(0.25);\n          transform: scale(0.25);\n  -webkit-transform-origin: top right;\n          transform-origin: top right;\n}\n\n.fa-layers-bottom-right {\n  bottom: 0;\n  right: 0;\n  top: auto;\n  -webkit-transform: scale(0.25);\n          transform: scale(0.25);\n  -webkit-transform-origin: bottom right;\n          transform-origin: bottom right;\n}\n\n.fa-layers-bottom-left {\n  bottom: 0;\n  left: 0;\n  right: auto;\n  top: auto;\n  -webkit-transform: scale(0.25);\n          transform: scale(0.25);\n  -webkit-transform-origin: bottom left;\n          transform-origin: bottom left;\n}\n\n.fa-layers-top-right {\n  right: 0;\n  top: 0;\n  -webkit-transform: scale(0.25);\n          transform: scale(0.25);\n  -webkit-transform-origin: top right;\n          transform-origin: top right;\n}\n\n.fa-layers-top-left {
 \n  left: 0;\n  right: auto;\n  top: 0;\n  -webkit-transform: scale(0.25);\n          transform: scale(0.25);\n  -webkit-transform-origin: top left;\n          transform-origin: top left;\n}\n\n.fa-lg {\n  font-size: 1.3333333333em;\n  line-height: 0.75em;\n  vertical-align: -0.0667em;\n}\n\n.fa-xs {\n  font-size: 0.75em;\n}\n\n.fa-sm {\n  font-size: 0.875em;\n}\n\n.fa-1x {\n  font-size: 1em;\n}\n\n.fa-2x {\n  font-size: 2em;\n}\n\n.fa-3x {\n  font-size: 3em;\n}\n\n.fa-4x {\n  font-size: 4em;\n}\n\n.fa-5x {\n  font-size: 5em;\n}\n\n.fa-6x {\n  font-size: 6em;\n}\n\n.fa-7x {\n  font-size: 7em;\n}\n\n.fa-8x {\n  font-size: 8em;\n}\n\n.fa-9x {\n  font-size: 9em;\n}\n\n.fa-10x {\n  font-size: 10em;\n}\n\n.fa-fw {\n  text-align: center;\n  width: 1.25em;\n}\n\n.fa-ul {\n  list-style-type: none;\n  margin-left: 2.5em;\n  padding-left: 0;\n}\n.fa-ul > li {\n  position: relative;\n}\n\n.fa-li {\n  left: -2em;\n  position: absolute;\n  text-align: center;\n  width: 2em;\n  line-height: inher
 it;\n}\n\n.fa-border {\n  border: solid 0.08em #eee;\n  border-radius: 0.1em;\n  padding: 0.2em 0.25em 0.15em;\n}\n\n.fa-pull-left {\n  float: left;\n}\n\n.fa-pull-right {\n  float: right;\n}\n\n.fa.fa-pull-left,\n.fas.fa-pull-left,\n.far.fa-pull-left,\n.fal.fa-pull-left,\n.fab.fa-pull-left {\n  margin-right: 0.3em;\n}\n.fa.fa-pull-right,\n.fas.fa-pull-right,\n.far.fa-pull-right,\n.fal.fa-pull-right,\n.fab.fa-pull-right {\n  margin-left: 0.3em;\n}\n\n.fa-spin {\n  -webkit-animation: fa-spin 2s infinite linear;\n          animation: fa-spin 2s infinite linear;\n}\n\n.fa-pulse {\n  -webkit-animation: fa-spin 1s infinite steps(8);\n          animation: fa-spin 1s infinite steps(8);\n}\n\n at -webkit-keyframes fa-spin {\n  0% {\n    -webkit-transform: rotate(0deg);\n            transform: rotate(0deg);\n  }\n  100% {\n    -webkit-transform: rotate(360deg);\n            transform: rotate(360deg);\n  }\n}\n\n at keyframes fa-spin {\n  0% {\n    -webkit-transform: rotate(0deg);\n            tran
 sform: rotate(0deg);\n  }\n  100% {\n    -webkit-transform: rotate(360deg);\n            transform: rotate(360deg);\n  }\n}\n.fa-rotate-90 {\n  -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=1)";\n  -webkit-transform: rotate(90deg);\n          transform: rotate(90deg);\n}\n\n.fa-rotate-180 {\n  -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=2)";\n  -webkit-transform: rotate(180deg);\n          transform: rotate(180deg);\n}\n\n.fa-rotate-270 {\n  -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=3)";\n  -webkit-transform: rotate(270deg);\n          transform: rotate(270deg);\n}\n\n.fa-flip-horizontal {\n  -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)";\n  -webkit-transform: scale(-1, 1);\n          transform: scale(-1, 1);\n}\n\n.fa-flip-vertical {\n  -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)";\n  -webkit-transform: scale(1, -1);\n          transform: scale
 (1, -1);\n}\n\n.fa-flip-both, .fa-flip-horizontal.fa-flip-vertical {\n  -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)";\n  -webkit-transform: scale(-1, -1);\n          transform: scale(-1, -1);\n}\n\n:root .fa-rotate-90,\n:root .fa-rotate-180,\n:root .fa-rotate-270,\n:root .fa-flip-horizontal,\n:root .fa-flip-vertical,\n:root .fa-flip-both {\n  -webkit-filter: none;\n          filter: none;\n}\n\n.fa-stack {\n  display: inline-block;\n  height: 2em;\n  position: relative;\n  width: 2.5em;\n}\n\n.fa-stack-1x,\n.fa-stack-2x {\n  bottom: 0;\n  left: 0;\n  margin: auto;\n  position: absolute;\n  right: 0;\n  top: 0;\n}\n\n.svg-inline--fa.fa-stack-1x {\n  height: 1em;\n  width: 1.25em;\n}\n.svg-inline--fa.fa-stack-2x {\n  height: 2em;\n  width: 2.5em;\n}\n\n.fa-inverse {\n  color: #fff;\n}\n\n.sr-only {\n  border: 0;\n  clip: rect(0, 0, 0, 0);\n  height: 1px;\n  margin: -1px;\n  overflow: hidden;\n  padding: 0;\n  position: absolute;\n  width: 1px;\n}\n\
 n.sr-only-focusable:active, .sr-only-focusable:focus {\n  clip: auto;\n  height: auto;\n  margin: 0;\n  overflow: visible;\n  position: static;\n  width: auto;\n}\n\n.svg-inline--fa .fa-primary {\n  fill: var(--fa-primary-color, currentColor);\n  opacity: 1;\n  opacity: var(--fa-primary-opacity, 1);\n}\n\n.svg-inline--fa .fa-secondary {\n  fill: var(--fa-secondary-color, currentColor);\n  opacity: 0.4;\n  opacity: var(--fa-secondary-opacity, 0.4);\n}\n\n.svg-inline--fa.fa-swap-opacity .fa-primary {\n  opacity: 0.4;\n  opacity: var(--fa-secondary-opacity, 0.4);\n}\n\n.svg-inline--fa.fa-swap-opacity .fa-secondary {\n  opacity: 1;\n  opacity: var(--fa-primary-opacity, 1);\n}\n\n.svg-inline--fa mask .fa-primary,\n.svg-inline--fa mask .fa-secondary {\n  fill: black;\n}\n\n.fad.fa-inverse {\n  color: #fff;\n}',Na=function(){function e(){r(this,e),this.definitions={}}return s(e,[{key:'add',value:function(){for(var e=this,t=arguments.length,a=Array(t),i=0;i<t;i++)a[i]=arguments[i];var n=a.r
 educe(this._pullDefinitions,{});Object.keys(n).forEach(function(t){e.definitions[t]=l({},e.definitions[t]||{},n[t]),oe(t,n[t]),ra()})}},{key:'reset',value:function(){this.definitions={}}},{key:'_pullDefinitions',value:function(e,t){var a=t.prefix&&t.iconName&&t.icon?{0:t}:t;return Object.keys(a).map(function(t){var i=a[t],n=i.prefix,r=i.iconName,o=i.icon;e[n]||(e[n]={}),e[n][r]=o}),e}}]),e}(),Ma=new Na,Ca=!1,Ia={i2svg:function(){var e=0<arguments.length&&arguments[0]!==void 0?arguments[0]:{};if(nt){Ye();var t=e.node,a=void 0===t?et:t,i=e.callback,n=void 0===i?function(){}:i;return Pt.searchPseudoElements&&He(a),Re(a,n)}return Bt.reject('Operation requires a DOM of some kind.')},css:Ve,insertCss:function(){Ca||(F(Ve()),Ca=!0)},watch:function(){var e=0<arguments.length&&arguments[0]!==void 0?arguments[0]:{},t=e.autoReplaceSvgRoot,a=e.observeMutationsRoot;!1===Pt.autoReplaceSvg&&(Pt.autoReplaceSvg=!0),Pt.observeMutations=!0,A(function(){za({autoReplaceSvgRoot:t}),ve({treeCallback:Re,no
 deCallback:Oe,pseudoElementsCallback:He,observeMutationsRoot:a})})}},Ea=function(e){return function(t){var a=1<arguments.length&&void 0!==arguments[1]?arguments[1]:{},i=(t||{}).icon?t:Be(t||{}),n=a.mask;return n&&(n=(n||{}).icon?n:Be(n||{})),e(i,l({},a,{mask:n}))}}(function(e){var t=1<arguments.length&&arguments[1]!==void 0?arguments[1]:{},a=t.transform,i=void 0===a?d:a,n=t.symbol,r=t.mask,o=void 0===r?null:r,s=t.title,c=void 0===s?null:s,f=t.classes,m=void 0===f?[]:f,u=t.attributes,p=void 0===u?{}:u,g=t.styles,h=void 0===g?{}:g;if(e){var b=e.prefix,y=e.iconName,v=e.icon;return Xe(l({type:'icon'},e),function(){return Ye(),Pt.autoA11y&&(c?p['aria-labelledby']=''.concat(Pt.replacementClass,'-title-').concat(H()):(p['aria-hidden']='true',p.focusable='false')),ae({icons:{main:ze(v),mask:o?ze(o.icon):{found:!1,width:null,height:null,icon:{}}},prefix:b,iconName:y,transform:l({},d,i),symbol:void 0!==n&&n,title:c,extra:{attributes:p,styles:h,classes:m}})})}}),_a={noAuto:function(){Pt.autoRe
 placeSvg=!1,Pt.observeMutations=!1,xe()},config:Pt,dom:Ia,library:Ma,parse:{transform:function(e){return ma(e)}},findIconDefinition:Be,icon:Ea,text:function(e){var t=1<arguments.length&&arguments[1]!==void 0?arguments[1]:{},a=t.transform,i=void 0===a?d:a,n=t.title,r=void 0===n?null:n,o=t.classes,s=void 0===o?[]:o,c=t.attributes,f=void 0===c?{}:c,u=t.styles,p=void 0===u?{}:u;return Xe({type:'text',content:e},function(){return Ye(),ie({content:e,transform:l({},d,i),title:r,extra:{attributes:f,styles:p,classes:[''.concat(Pt.familyPrefix,'-layers-text')].concat(m(s))}})})},counter:function(e){var t=1<arguments.length&&arguments[1]!==void 0?arguments[1]:{},a=t.title,i=void 0===a?null:a,n=t.classes,r=void 0===n?[]:n,o=t.attributes,s=void 0===o?{}:o,c=t.styles,l=void 0===c?{}:c;return Xe({type:'counter',content:e},function(){return Ye(),ne({content:e.toString(),title:i,extra:{attributes:s,styles:l,classes:[''.concat(Pt.familyPrefix,'-layers-counter')].concat(m(r))}})})},layer:function(e){v
 ar t=1<arguments.length&&arguments[1]!==void 0?arguments[1]:{},a=t.classes,i=void 0===a?[]:a;return Xe({type:'layer'},function(){Ye();var t=[];return e(function(e){Array.isArray(e)?e.map(function(e){t=t.concat(e.abstract)}):t=t.concat(e.abstract)}),[{tag:'span',attributes:{class:[''.concat(Pt.familyPrefix,'-layers')].concat(m(i)).join(' ')},children:t}]})},toHtml:me},za=function(){var e=0<arguments.length&&arguments[0]!==void 0?arguments[0]:{},t=e.autoReplaceSvgRoot,a=void 0===t?et:t;(0<Object.keys(w.styles).length||Pt.autoFetchSvg)&&nt&&Pt.autoReplaceSvg&&_a.dom.i2svg({node:a})}}).call(this,a(0),a(2).setImmediate)},function(e,t,a){(function(e){function i(e,t){this._id=e,this._clearFn=t}var n='undefined'!=typeof e&&e||'undefined'!=typeof self&&self||window,r=Function.prototype.apply;t.setTimeout=function(){return new i(r.call(setTimeout,n,arguments),clearTimeout)},t.setInterval=function(){return new i(r.call(setInterval,n,arguments),clearInterval)},t.clearTimeout=t.clearInterval=fun
 ction(e){e&&e.close()},i.prototype.unref=i.prototype.ref=function(){},i.prototype.close=function(){this._clearFn.call(n,this._id)},t.enroll=function(e,t){clearTimeout(e._idleTimeoutId),e._idleTimeout=t},t.unenroll=function(e){clearTimeout(e._idleTimeoutId),e._idleTimeout=-1},t._unrefActive=t.active=function(e){clearTimeout(e._idleTimeoutId);var t=e._idleTimeout;0<=t&&(e._idleTimeoutId=setTimeout(function(){e._onTimeout&&e._onTimeout()},t))},a(3),t.setImmediate='undefined'!=typeof self&&self.setImmediate||'undefined'!=typeof e&&e.setImmediate||this&&this.setImmediate,t.clearImmediate='undefined'!=typeof self&&self.clearImmediate||'undefined'!=typeof e&&e.clearImmediate||this&&this.clearImmediate}).call(this,a(0))},function(e,t,a){(function(e,t){(function(e){'use strict';function a(e){'function'!=typeof e&&(e=new Function(''+e));for(var t=Array(arguments.length-1),a=0;a<t.length;a++)t[a]=arguments[a+1];var i={callback:e,args:t};return u[m]=i,b(m),m++}function i(e){delete u[e]}function
  n(e){var t=e.callback,a=e.args;switch(a.length){case 0:t();break;case 1:t(a[0]);break;case 2:t(a[0],a[1]);break;case 3:t(a[0],a[1],a[2]);break;default:t.apply(void 0,a);}}function r(e){if(p)setTimeout(r,0,e);else{var t=u[e];if(t){p=!0;try{n(t)}finally{i(e),p=!1}}}}function o(){b=function(e){t.nextTick(function(){r(e)})}}function s(){if(e.postMessage&&!e.importScripts){var t=!0,a=e.onmessage;return e.onmessage=function(){t=!1},e.postMessage('','*'),e.onmessage=a,t}}function c(){var t='setImmediate$'+Math.random()+'$',a=function(a){a.source===e&&'string'==typeof a.data&&0===a.data.indexOf(t)&&r(+a.data.slice(t.length))};e.addEventListener?e.addEventListener('message',a,!1):e.attachEvent('onmessage',a),b=function(a){e.postMessage(t+a,'*')}}function l(){var e=new MessageChannel;e.port1.onmessage=function(e){var t=e.data;r(t)},b=function(t){e.port2.postMessage(t)}}function f(){var e=g.documentElement;b=function(t){var a=g.createElement('script');a.onreadystatechange=function(){r(t),a.on
 readystatechange=null,e.removeChild(a),a=null},e.appendChild(a)}}function d(){b=function(e){setTimeout(r,0,e)}}if(!e.setImmediate){var m=1,u={},p=!1,g=e.document,h=Object.getPrototypeOf&&Object.getPrototypeOf(e),b;h=h&&h.setTimeout?h:e,'[object process]'==={}.toString.call(e.process)?o():s()?c():e.MessageChannel?l():g&&'onreadystatechange'in g.createElement('script')?f():d(),h.setImmediate=a,h.clearImmediate=i}})('undefined'==typeof self?'undefined'==typeof e?this:e:self)}).call(this,a(0),a(4))},function(e){function t(){throw new Error('setTimeout has not been defined')}function a(){throw new Error('clearTimeout has not been defined')}function n(e){if(f===setTimeout)return setTimeout(e,0);if((f===t||!f)&&setTimeout)return f=setTimeout,setTimeout(e,0);try{return f(e,0)}catch(t){try{return f.call(null,e,0)}catch(t){return f.call(this,e,0)}}}function i(e){if(d===clearTimeout)return clearTimeout(e);if((d===a||!d)&&clearTimeout)return d=clearTimeout,clearTimeout(e);try{return d(e)}catch(
 t){try{return d.call(null,e)}catch(t){return d.call(this,e)}}}function r(){u&&g&&(u=!1,g.length?m=g.concat(m):p=-1,m.length&&o())}function o(){if(!u){var e=n(r);u=!0;for(var t=m.length;t;){for(g=m,m=[];++p<t;)g&&g[p].run();p=-1,t=m.length}g=null,u=!1,i(e)}}function s(e,t){this.fun=e,this.array=t}function c(){}var l=e.exports={},f,d;(function(){try{f='function'==typeof setTimeout?setTimeout:t}catch(a){f=t}try{d='function'==typeof clearTimeout?clearTimeout:a}catch(t){d=a}})();var m=[],u=!1,p=-1,g;l.nextTick=function(e){var t=Array(arguments.length-1);if(1<arguments.length)for(var a=1;a<arguments.length;a++)t[a-1]=arguments[a];m.push(new s(e,t)),1!==m.length||u||n(o)},s.prototype.run=function(){this.fun.apply(null,this.array)},l.title='browser',l.browser=!0,l.env={},l.argv=[],l.version='',l.versions={},l.on=c,l.addListener=c,l.once=c,l.off=c,l.removeListener=c,l.removeAllListeners=c,l.emit=c,l.prependListener=c,l.prependOnceListener=c,l.listeners=function(){return[]},l.binding=function
 (){throw new Error('process.binding is not supported')},l.cwd=function(){return'/'},l.chdir=function(){throw new Error('process.chdir is not supported')},l.umask=function(){return 0}},function(e,t,a){'use strict';a.r(t);var i=a(1),n={prefix:'fas',iconName:'bookmark',icon:[384,512,[],'f02e','M0 512V48C0 21.49 21.49 0 48 0h288c26.51 0 48 21.49 48 48v464L192 400 0 512z']},r={prefix:'fas',iconName:'cog',icon:[512,512,[],'f013','M487.4 315.7l-42.6-24.6c4.3-23.2 4.3-47 0-70.2l42.6-24.6c4.9-2.8 7.1-8.6 5.5-14-11.1-35.6-30-67.8-54.7-94.6-3.8-4.1-10-5.1-14.8-2.3L380.8 110c-17.9-15.4-38.5-27.3-60.8-35.1V25.8c0-5.6-3.9-10.5-9.4-11.7-36.7-8.2-74.3-7.8-109.2 0-5.5 1.2-9.4 6.1-9.4 11.7V75c-22.2 7.9-42.8 19.8-60.8 35.1L88.7 85.5c-4.9-2.8-11-1.9-14.8 2.3-24.7 26.7-43.6 58.9-54.7 94.6-1.7 5.4.6 11.2 5.5 14L67.3 221c-4.3 23.2-4.3 47 0 70.2l-42.6 24.6c-4.9 2.8-7.1 8.6-5.5 14 11.1 35.6 30 67.8 54.7 94.6 3.8 4.1 10 5.1 14.8 2.3l42.6-24.6c17.9 15.4 38.5 27.3 60.8 35.1v49.2c0 5.6 3.9 10.5 9.4 11.7 36.7 8.
 2 74.3 7.8 109.2 0 5.5-1.2 9.4-6.1 9.4-11.7v-49.2c22.2-7.9 42.8-19.8 60.8-35.1l42.6 24.6c4.9 2.8 11 1.9 14.8-2.3 24.7-26.7 43.6-58.9 54.7-94.6 1.5-5.5-.7-11.3-5.6-14.1zM256 336c-44.1 0-80-35.9-80-80s35.9-80 80-80 80 35.9 80 80-35.9 80-80 80z']},o={prefix:'fas',iconName:'edit',icon:[576,512,[],'f044','M402.6 83.2l90.2 90.2c3.8 3.8 3.8 10 0 13.8L274.4 405.6l-92.8 10.3c-12.4 1.4-22.9-9.1-21.5-21.5l10.3-92.8L388.8 83.2c3.8-3.8 10-3.8 13.8 0zm162-22.9l-48.8-48.8c-15.2-15.2-39.9-15.2-55.2 0l-35.4 35.4c-3.8 3.8-3.8 10 0 13.8l90.2 90.2c3.8 3.8 10 3.8 13.8 0l35.4-35.4c15.2-15.3 15.2-40 0-55.2zM384 346.2V448H64V128h229.8c3.2 0 6.2-1.3 8.5-3.5l40-40c7.6-7.6 2.2-20.5-8.5-20.5H48C21.5 64 0 85.5 0 112v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V306.2c0-10.7-12.9-16-20.5-8.5l-40 40c-2.2 2.3-3.5 5.3-3.5 8.5z']},s={prefix:'far',iconName:'bookmark',icon:[384,512,[],'f02e','M336 0H48C21.49 0 0 21.49 0 48v464l192-112 192 112V48c0-26.51-21.49-48-48-48zm0 428.43l-144-84-144 84V54a6 6 0 0 1 6-6h276c
 3.314 0 6 2.683 6 5.996V428.43z']},c={prefix:'far',iconName:'calendar-alt',icon:[448,512,[],'f073','M148 288h-40c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12zm108-12v-40c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12zm96 0v-40c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12zm-96 96v-40c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12zm-96 0v-40c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12zm192 0v-40c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12zm96-260v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V112c0-26.5 21.5-48 48-48h48V12c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v52h128V12c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v52h48c26.5 0 48 21.5 48 48zm-48 346V160H48v298c0 3.3 2.7 6 6 6h340c3.3 0 6-2.7 6-6z']},l={prefix:'far',iconName:'clock',icon:
 [512,512,[],'f017','M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm0 448c-110.5 0-200-89.5-200-200S145.5 56 256 56s200 89.5 200 200-89.5 200-200 200zm61.8-104.4l-84.9-61.7c-3.1-2.3-4.9-5.9-4.9-9.7V116c0-6.6 5.4-12 12-12h32c6.6 0 12 5.4 12 12v141.7l66.8 48.6c5.4 3.9 6.5 11.4 2.6 16.8L334.6 349c-3.9 5.3-11.4 6.5-16.8 2.6z']},f={prefix:'far',iconName:'edit',icon:[576,512,[],'f044','M402.3 344.9l32-32c5-5 13.7-1.5 13.7 5.7V464c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V112c0-26.5 21.5-48 48-48h273.5c7.1 0 10.7 8.6 5.7 13.7l-32 32c-1.5 1.5-3.5 2.3-5.7 2.3H48v352h352V350.5c0-2.1.8-4.1 2.3-5.6zm156.6-201.8L296.3 405.7l-90.4 10c-26.2 2.9-48.5-19.2-45.6-45.6l10-90.4L432.9 17.1c22.9-22.9 59.9-22.9 82.7 0l43.2 43.2c22.9 22.9 22.9 60 .1 82.8zM460.1 174L402 115.9 216.2 301.8l-7.3 65.3 65.3-7.3L460.1 174zm64.8-79.7l-43.2-43.2c-4.1-4.1-10.8-4.1-14.8 0L436 82l58.1 58.1 30.9-30.9c4-4.2 4-10.8-.1-14.9z']};i.b.add(r,o,n,f,s,l,c),i.a.watch()}]);
\ No newline at end of file
+(function(e){function t(i){if(a[i])return a[i].exports;var n=a[i]={i:i,l:!1,exports:{}};return e[i].call(n.exports,n,n.exports,t),n.l=!0,n.exports}var a={};return t.m=e,t.c=a,t.d=function(e,a,i){t.o(e,a)||Object.defineProperty(e,a,{enumerable:!0,get:i})},t.r=function(e){'undefined'!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:'Module'}),Object.defineProperty(e,'__esModule',{value:!0})},t.t=function(e,a){if(1&a&&(e=t(e)),8&a)return e;if(4&a&&'object'==typeof e&&e&&e.__esModule)return e;var i=Object.create(null);if(t.r(i),Object.defineProperty(i,'default',{enumerable:!0,value:e}),2&a&&'string'!=typeof e)for(var n in e)t.d(i,n,function(t){return e[t]}.bind(null,n));return i},t.n=function(e){var a=e&&e.__esModule?function(){return e['default']}:function(){return e};return t.d(a,'a',a),a},t.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},t.p='',t(t.s=5)})([function(e){var t=function(){return this}();try{t=t||new Function('return 
 this')()}catch(a){'object'==typeof window&&(t=window)}e.exports=t},function(e,t,a){'use strict';(function(e,i){function n(e){return n='function'==typeof Symbol&&'symbol'==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&'function'==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?'symbol':typeof e},n(e)}function r(e,t){if(!(e instanceof t))throw new TypeError('Cannot call a class as a function')}function o(e,t){for(var a=0,i;a<t.length;a++)i=t[a],i.enumerable=i.enumerable||!1,i.configurable=!0,'value'in i&&(i.writable=!0),Object.defineProperty(e,i.key,i)}function s(e,t,a){return t&&o(e.prototype,t),a&&o(e,a),e}function c(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function l(e){for(var t=1;t<arguments.length;t++){var a=null==arguments[t]?{}:arguments[t],i=Object.keys(a);'function'==typeof Object.getOwnPropertySymbols&&(i=i.concat(Object.getOwnPropertySymbols(a).filter(function(e){ret
 urn Object.getOwnPropertyDescriptor(a,e).enumerable}))),i.forEach(function(t){c(e,t,a[t])})}return e}function f(e,t){return g(e)||b(e,t)||v()}function m(e){return u(e)||h(e)||y()}function u(e){if(Array.isArray(e)){for(var t=0,a=Array(e.length);t<e.length;t++)a[t]=e[t];return a}}function g(e){if(Array.isArray(e))return e}function h(e){if(Symbol.iterator in Object(e)||'[object Arguments]'===Object.prototype.toString.call(e))return Array.from(e)}function b(e,t){var a=[],i=!0,n=!1,r=void 0;try{for(var o=e[Symbol.iterator](),s;!(i=(s=o.next()).done)&&(a.push(s.value),!(t&&a.length===t));i=!0);}catch(e){n=!0,r=e}finally{try{i||null==o['return']||o['return']()}finally{if(n)throw r}}return a}function y(){throw new TypeError('Invalid attempt to spread non-iterable instance')}function v(){throw new TypeError('Invalid attempt to destructure non-iterable instance')}function x(e){var t=et.querySelector('script['+e+']');if(t)return t.getAttribute(e)}function k(e){return!(''!==e)||'false'!==e&&(!(
 'true'!==e)||e)}function A(e){nt&&(Tt?setTimeout(e,0):Lt.push(e))}function N(){for(var e=0;e<Yt.length;e++)Yt[e][0](Yt[e][1]);Yt=[],Xt=!1}function M(e,t){Yt.push([e,t]),Xt||(Xt=!0,Ft(N,0))}function C(e,t){function a(e){z(t,e)}function i(e){S(t,e)}try{e(a,i)}catch(t){i(t)}}function I(e){var t=e.owner,a=t._state,i=t._data,n=e[a],r=e.then;if('function'==typeof n){a=Dt;try{i=n(i)}catch(t){S(r,t)}}E(r,i)||(a===Dt&&z(r,i),a===Vt&&S(r,i))}function E(t,e){var a;try{if(t===e)throw new TypeError('A promises callback cannot return that same promise.');if(e&&('function'==typeof e||'object'===n(e))){var i=e.then;if('function'==typeof i)return i.call(e,function(i){a||(a=!0,e===i?_(t,i):z(t,i))},function(e){a||(a=!0,S(t,e))}),!0}}catch(i){return a||S(t,i),!0}return!1}function z(e,t){e!==t&&E(e,t)||_(e,t)}function _(e,t){e._state===Rt&&(e._state=Ot,e._data=t,M(T,e))}function S(e,t){e._state===Rt&&(e._state=Ot,e._data=t,M(R,e))}function L(e){e._then=e._then.forEach(I)}function T(e){e._state=Dt,L(e)}
 function R(t){t._state=Vt,L(t),!t._handled&&Ht&&e.process.emit('unhandledRejection',t._data,t)}function O(t){e.process.emit('rejectionHandled',t)}function D(e){if('function'!=typeof e)throw new TypeError('Promise resolver '+e+' is not a function');if(!1==this instanceof D)throw new TypeError('Failed to construct \'Promise\': Please use the \'new\' operator, this object constructor cannot be called as a function.');this._then=[],C(e,this)}function V(e){return~Et.indexOf(e)}function j(e){if(e&&nt){var t=et.createElement('style');t.setAttribute('type','text/css'),t.innerHTML=e;for(var a=et.head.childNodes,n=null,r=a.length-1;-1<r;r--){var i=a[r],o=(i.tagName||'').toUpperCase();-1<['STYLE','LINK'].indexOf(o)&&(n=i)}return et.head.insertBefore(t,n),e}}function H(){for(var e=12,t='';0<e--;)t+=Wt[0|62*Math.random()];return t}function F(e){for(var t=[],a=(e||[]).length>>>0;a--;)t[a]=e[a];return t}function Y(e){return e.classList?F(e.classList):(e.getAttribute('class')||'').split(' ').filter
 (function(e){return e})}function X(e,t){var a=t.split('-'),i=a[0],n=a.slice(1).join('-');return i!==e||''===n||V(n)?null:n}function B(e){return''.concat(e).replace(/&/g,'&').replace(/"/g,'"').replace(/'/g,''').replace(/</g,'<').replace(/>/g,'>')}function U(e){return Object.keys(e||{}).reduce(function(t,a){return t+''.concat(a,'="').concat(B(e[a]),'" ')},'').trim()}function W(e){return Object.keys(e||{}).reduce(function(t,a){return t+''.concat(a,': ').concat(e[a],';')},'')}function q(e){return e.size!==d.size||e.x!==d.x||e.y!==d.y||e.rotate!==d.rotate||e.flipX||e.flipY}function G(e){var t=e.transform,a=e.containerWidth,i=e.iconWidth,n={transform:'translate('.concat(a/2,' 256)')},r='translate('.concat(32*t.x,', ').concat(32*t.y,') '),o='scale('.concat(t.size/16*(t.flipX?-1:1),', ').concat(t.size/16*(t.flipY?-1:1),') '),s='rotate('.concat(t.rotate,' 0 0)'),c={transform:''.concat(r,' ').concat(o,' ').concat(s)},l={transform:'translate('.concat(-1*(i/2),' -256)')};retu
 rn{outer:n,inner:c,path:l}}function K(e){var t=e.transform,a=e.width,i=void 0===a?st:a,n=e.height,r=void 0===n?st:n,o=e.startCentered,s=void 0!==o&&o,c='';return c+=s&&rt?'translate('.concat(t.x/Ut-i/2,'em, ').concat(t.y/Ut-r/2,'em) '):s?'translate(calc(-50% + '.concat(t.x/Ut,'em), calc(-50% + ').concat(t.y/Ut,'em)) '):'translate('.concat(t.x/Ut,'em, ').concat(t.y/Ut,'em) '),c+='scale('.concat(t.size/Ut*(t.flipX?-1:1),', ').concat(t.size/Ut*(t.flipY?-1:1),') '),c+='rotate('.concat(t.rotate,'deg) '),c}function $(e){var t=!(1<arguments.length&&void 0!==arguments[1])||arguments[1];return e.attributes&&(e.attributes.fill||t)&&(e.attributes.fill='black'),e}function J(e){return'g'===e.tag?e.children:[e]}function Z(e){var t=e.children,a=e.attributes,i=e.main,n=e.mask,r=e.transform,o=i.width,s=i.icon,c=n.width,f=n.icon,d=G({transform:r,containerWidth:c,iconWidth:o}),m={tag:'rect',attributes:l({},qt,{fill:'white'})},u=s.children?{children:s.children.map($)}:{},p={tag:'g',attributes:l({},d.in
 ner),children:[$(l({tag:s.tag,attributes:l({},s.attributes,d.path)},u))]},g={tag:'g',attributes:l({},d.outer),children:[p]},h='mask-'.concat(H()),b='clip-'.concat(H()),y={tag:'mask',attributes:l({},qt,{id:h,maskUnits:'userSpaceOnUse',maskContentUnits:'userSpaceOnUse'}),children:[m,g]},v={tag:'defs',children:[{tag:'clipPath',attributes:{id:b},children:J(f)},y]};return t.push(v,{tag:'rect',attributes:l({fill:'currentColor',"clip-path":'url(#'.concat(b,')'),mask:'url(#'.concat(h,')')},qt)}),{children:t,attributes:a}}function Q(e){var t=e.children,a=e.attributes,i=e.main,n=e.transform,r=e.styles,o=W(r);if(0<o.length&&(a.style=o),q(n)){var s=G({transform:n,containerWidth:i.width,iconWidth:i.width});t.push({tag:'g',attributes:l({},s.outer),children:[{tag:'g',attributes:l({},s.inner),children:[{tag:i.icon.tag,children:i.icon.children,attributes:l({},i.icon.attributes,s.path)}]}]})}else t.push(i.icon);return{children:t,attributes:a}}function ee(e){var t=e.children,a=e.main,i=e.mask,n=e.attr
 ibutes,r=e.styles,o=e.transform;if(q(o)&&a.found&&!i.found){var s=a.width,c=a.height,f={x:s/c/2,y:.5};n.style=W(l({},r,{"transform-origin":''.concat(f.x+o.x/16,'em ').concat(f.y+o.y/16,'em')}))}return[{tag:'svg',attributes:n,children:t}]}function te(e){var t=e.prefix,a=e.iconName,i=e.children,n=e.attributes,r=e.symbol,o=!0===r?''.concat(t,'-').concat(Pt.familyPrefix,'-').concat(a):r;return[{tag:'svg',attributes:{style:'display: none;'},children:[{tag:'symbol',attributes:l({},n,{id:o}),children:i}]}]}function ae(e){var t=e.icons,a=t.main,i=t.mask,n=e.prefix,r=e.iconName,o=e.transform,s=e.symbol,c=e.title,f=e.extra,d=e.watchable,m=i.found?i:a,u=m.width,p=m.height,g='fa-w-'.concat(Math.ceil(16*(u/p))),h=[Pt.replacementClass,r?''.concat(Pt.familyPrefix,'-').concat(r):'',g].filter(function(e){return-1===f.classes.indexOf(e)}).concat(f.classes).join(' '),b={children:[],attributes:l({},f.attributes,{"data-prefix":n,"data-icon":r,class:h,role:f.attributes.role||'img',xmlns:'http://www.w3.or
 g/2000/svg',viewBox:'0 0 '.concat(u,' ').concat(p)})};void 0!==d&&d&&(b.attributes[ft]=''),c&&b.children.push({tag:'title',attributes:{id:b.attributes['aria-labelledby']||'title-'.concat(H())},children:[c]});var y=l({},b,{prefix:n,iconName:r,main:a,mask:i,transform:o,symbol:s,styles:f.styles}),v=i.found&&a.found?Z(y):Q(y),x=v.children,w=v.attributes;return y.children=x,y.attributes=w,s?te(y):ee(y)}function ie(e){var t=e.content,a=e.width,i=e.height,n=e.transform,r=e.title,o=e.extra,s=e.watchable,c=l({},o.attributes,r?{title:r}:{},{class:o.classes.join(' ')});void 0!==s&&s&&(c[ft]='');var f=l({},o.styles);q(n)&&(f.transform=K({transform:n,startCentered:!0,width:a,height:i}),f['-webkit-transform']=f.transform);var d=W(f);0<d.length&&(c.style=d);var m=[];return m.push({tag:'span',attributes:c,children:[t]}),r&&m.push({tag:'span',attributes:{class:'sr-only'},children:[r]}),m}function ne(e){var t=e.content,a=e.title,i=e.extra,n=l({},i.attributes,a?{title:a}:{},{class:i.classes.join(' ')}
 ),r=W(i.styles);0<r.length&&(n.style=r);var o=[];return o.push({tag:'span',attributes:n,children:[t]}),a&&o.push({tag:'span',attributes:{class:'sr-only'},children:[a]}),o}function re(e){for(var t='',a=0,i;a<e.length;a++)i=e.charCodeAt(a).toString(16),t+=('000'+i).slice(-4);return t}function oe(e,t){var a=2<arguments.length&&arguments[2]!==void 0?arguments[2]:{},i=a.skipHooks,n=Object.keys(t).reduce(function(e,a){var i=t[a],n=!!i.icon;return n?e[i.iconName]=i.icon:e[a]=i,e},{});'function'!=typeof w.hooks.addPack||void 0!==i&&i?w.styles[e]=l({},w.styles[e]||{},n):w.hooks.addPack(e,n),'fas'===e&&oe('fa',t)}function se(e,t){return(aa[e]||{})[t]}function ce(e,t){return(ia[e]||{})[t]}function le(e){return na[e]||{prefix:null,iconName:null}}function fe(e){return e.reduce(function(e,t){var a=X(Pt.familyPrefix,t);if(oa[t])e.prefix=t;else if(Pt.autoFetchSvg&&-1<['fas','far','fal','fad','fab','fa'].indexOf(t))e.prefix=t;else if(a){var i='fa'===e.prefix?le(a):{};e.iconName=i.iconName||a,e.prefi
 x=i.prefix||e.prefix}else t!==Pt.replacementClass&&0!==t.indexOf('fa-w-')&&e.rest.push(t);return e},sa())}function de(e,t,a){if(e&&e[t]&&e[t][a])return{prefix:t,iconName:a,icon:e[t][a]}}function me(e){var t=e.tag,a=e.attributes,i=void 0===a?{}:a,n=e.children,r=void 0===n?[]:n;return'string'==typeof e?B(e):'<'.concat(t,' ').concat(U(i),'>').concat(r.map(me).join(''),'</').concat(t,'>')}function ue(e){var t=e.getAttribute?e.getAttribute(ft):null;return'string'==typeof t}function pe(){if(!0===Pt.autoReplaceSvg)return la.replace;var e=la[Pt.autoReplaceSvg];return e||la.replace}function ge(e){e()}function he(e,t){var a='function'==typeof t?t:ca;if(0===e.length)a();else{var i=ge;Pt.mutateApproach===ht&&(i=Qe.requestAnimationFrame||ge),i(function(){var t=pe(),i=Jt.begin('mutate');e.map(t),i(),a()})}}function be(){fa=!0}function ye(){fa=!1}function ve(e){if(tt&&Pt.observeMutations){var t=e.treeCallback,a=e.nodeCallback,i=e.pseudoElementsCallback,n=e.observeMutationsRoot,r=void 0===n?et:n;da
 =new tt(function(e){fa||F(e).forEach(function(e){if('childList'===e.type&&0<e.addedNodes.length&&!ue(e.addedNodes[0])&&(Pt.searchPseudoElements&&i(e.target),t(e.target)),'attributes'===e.type&&e.target.parentNode&&Pt.searchPseudoElements&&i(e.target.parentNode),'attributes'===e.type&&ue(e.target)&&~Ct.indexOf(e.attributeName))if('class'===e.attributeName){var n=fe(Y(e.target)),r=n.prefix,o=n.iconName;r&&e.target.setAttribute('data-prefix',r),o&&e.target.setAttribute('data-icon',o)}else a(e.target)})}),nt&&da.observe(r,{childList:!0,attributes:!0,characterData:!0,subtree:!0})}}function xe(){da&&da.disconnect()}function we(e){var t=e.getAttribute('style'),a=[];return t&&(a=t.split(';').reduce(function(e,t){var a=t.split(':'),i=a[0],n=a.slice(1);return i&&0<n.length&&(e[i]=n.join(':').trim()),e},{})),a}function ke(e){var t=e.getAttribute('data-prefix'),a=e.getAttribute('data-icon'),i=void 0===e.innerText?'':e.innerText.trim(),n=fe(Y(e));return t&&a&&(n.prefix=t,n.iconName=a),n.prefix&&
 1<i.length?n.iconName=ce(n.prefix,e.innerText):n.prefix&&1===i.length&&(n.iconName=se(n.prefix,re(e.innerText))),n}function Ae(e){return ma(e.getAttribute('data-fa-transform'))}function Ne(e){var t=e.getAttribute('data-fa-symbol');return null!==t&&(!(''!==t)||t)}function Me(e){var t=F(e.attributes).reduce(function(e,t){return'class'!==e.name&&'style'!==e.name&&(e[t.name]=t.value),e},{}),a=e.getAttribute('title');return Pt.autoA11y&&(a?t['aria-labelledby']=''.concat(Pt.replacementClass,'-title-').concat(H()):(t['aria-hidden']='true',t.focusable='false')),t}function Ce(e){var t=e.getAttribute('data-fa-mask');return t?fe(t.split(' ').map(function(e){return e.trim()})):sa()}function Ie(){return{iconName:null,title:null,prefix:null,transform:d,symbol:!1,mask:null,extra:{classes:[],styles:{},attributes:{}}}}function Ee(e){var t=ke(e),a=t.iconName,i=t.prefix,n=t.rest,r=we(e),o=Ae(e),s=Ne(e),c=Me(e),l=Ce(e);return{iconName:a,title:e.getAttribute('title'),prefix:i,transform:o,symbol:s,mask:l
 ,extra:{classes:n,styles:r,attributes:c}}}function ze(e){this.name='MissingIcon',this.message=e||'Icon unavailable',this.stack=new Error().stack}function _e(e){var t=e[0],a=e[1],i=e.slice(4),n=f(i,1),r=n[0],o=null;return o=Array.isArray(r)?{tag:'g',attributes:{class:''.concat(Pt.familyPrefix,'-').concat(It.GROUP)},children:[{tag:'path',attributes:{class:''.concat(Pt.familyPrefix,'-').concat(It.SECONDARY),fill:'currentColor',d:r[0]}},{tag:'path',attributes:{class:''.concat(Pt.familyPrefix,'-').concat(It.PRIMARY),fill:'currentColor',d:r[1]}}]}:{tag:'path',attributes:{fill:'currentColor',d:r}},{found:!0,width:t,height:a,icon:o}}function Pe(e,t){return new Bt(function(a,i){if(e&&t&&wa[t]&&wa[t][e]){var r=wa[t][e];return a(_e(r))}'object'===n(Qe.FontAwesomeKitConfig)&&'string'==typeof window.FontAwesomeKitConfig.token&&({}['fa-kit-token']=Qe.FontAwesomeKitConfig.token),e&&t&&!Pt.showMissingIcons?i(new ze('Icon is missing for prefix '.concat(t,' with icon name ').concat(e))):a({found:!1,w
 idth:512,height:512,icon:xa})})}function Se(e,t){var a=t.iconName,i=t.title,n=t.prefix,r=t.transform,o=t.symbol,s=t.mask,c=t.extra;return new Bt(function(t){Bt.all([Pe(a,n),Pe(s.iconName,s.prefix)]).then(function(s){var l=f(s,2),d=l[0],m=l[1];t([e,ae({icons:{main:d,mask:m},prefix:n,iconName:a,transform:r,symbol:o,mask:m,title:i,extra:c,watchable:!0})])})})}function Le(e,t){var a=t.title,i=t.transform,n=t.extra,r=null,o=null;if(rt){var s=parseInt(getComputedStyle(e).fontSize,10),c=e.getBoundingClientRect();r=c.width/s,o=c.height/s}return Pt.autoA11y&&!a&&(n.attributes['aria-hidden']='true'),Bt.resolve([e,ie({content:e.innerHTML,width:r,height:o,transform:i,title:a,extra:n,watchable:!0})])}function Te(e){var t=Ee(e);return~t.extra.classes.indexOf(wt)?Le(e,t):Se(e,t)}function Re(e){var t=1<arguments.length&&arguments[1]!==void 0?arguments[1]:null;if(nt){var a=et.documentElement.classList,i=function(e){return a.add(''.concat(gt,'-').concat(e))},n=function(e){return a.remove(''.concat(gt
 ,'-').concat(e))},r=Pt.autoFetchSvg?Object.keys(vt):Object.keys(ka),o=['.'.concat(wt,':not([').concat(ft,'])')].concat(r.map(function(e){return'.'.concat(e,':not([').concat(ft,'])')})).join(', ');if(0!==o.length){var s=[];try{s=F(e.querySelectorAll(o))}catch(t){}if(0<s.length)i('pending'),n('complete');else return;var c=Jt.begin('onTree'),l=s.reduce(function(e,t){try{var a=Te(t);a&&e.push(a)}catch(t){!yt&&t instanceof ze&&console.error(t)}return e},[]);return new Bt(function(e,a){Bt.all(l).then(function(a){he(a,function(){i('active'),i('complete'),n('pending'),'function'==typeof t&&t(),c(),e()})}).catch(function(){c(),a()})})}}}function Oe(e){var t=1<arguments.length&&arguments[1]!==void 0?arguments[1]:null;Te(e).then(function(e){e&&he([e],t)})}function De(e,t){var a=''.concat(mt).concat(t.replace(':','-'));return new Bt(function(i,n){if(null!==e.getAttribute(a))return i();var r=F(e.children),o=r.filter(function(e){return e.getAttribute(dt)===t})[0],s=Qe.getComputedStyle(e,t),c=s.ge
 tPropertyValue('font-family').match(kt),f=s.getPropertyValue('font-weight');if(o&&!c)return e.removeChild(o),i();if(c){var d=s.getPropertyValue('content'),m=~['Solid','Regular','Light','Duotone','Brands'].indexOf(c[1])?xt[c[1].toLowerCase()]:At[f],u=re(3===d.length?d.substr(1,1):d),p=se(m,u),g=p;if(p&&(!o||o.getAttribute(ut)!==m||o.getAttribute(pt)!==g)){e.setAttribute(a,g),o&&e.removeChild(o);var h=Ie(),b=h.extra;b.attributes[dt]=t,Pe(p,m).then(function(n){var r=ae(l({},h,{icons:{main:n,mask:sa()},prefix:m,iconName:g,extra:b,watchable:!0})),o=et.createElement('svg');':before'===t?e.insertBefore(o,e.firstChild):e.appendChild(o),o.outerHTML=r.map(function(e){return me(e)}).join('\n'),e.removeAttribute(a),i()}).catch(n)}else i()}else i()})}function Ve(e){return Bt.all([De(e,':before'),De(e,':after')])}function je(e){return e.parentNode!==document.head&&!~bt.indexOf(e.tagName.toUpperCase())&&!e.getAttribute(dt)&&(!e.parentNode||'svg'!==e.parentNode.tagName)}function He(e){return nt?new
  Bt(function(t,a){var i=F(e.querySelectorAll('*')).filter(je).map(Ve),n=Jt.begin('searchPseudoElements');be(),Bt.all(i).then(function(){n(),ye(),t()}).catch(function(){n(),ye(),a()})}):void 0}function Fe(){var e=Pt.familyPrefix,t=Pt.replacementClass,a=Aa;if(e!==ct||t!==lt){var i=/\.fa\-/g,n=/\--fa\-/g,r=/\.svg-inline--fa/g;a=a.replace(i,'.'.concat(e,'-')).replace(n,'--'.concat(e,'-')).replace(r,'.'.concat(t))}return a}function Ye(){Pt.autoAddCss&&!Ca&&(j(Fe()),Ca=!0)}function Xe(e,t){return Object.defineProperty(e,'abstract',{get:t}),Object.defineProperty(e,'html',{get:function(){return e.abstract.map(function(e){return me(e)})}}),Object.defineProperty(e,'node',{get:function(){if(nt){var t=et.createElement('div');return t.innerHTML=e.html,t.children}}}),e}function Be(e){var t=e.prefix,a=void 0===t?'fa':t,i=e.iconName;return i?de(Ma.definitions,a,i)||de(w.styles,a,i):void 0}a.d(t,'b',function(){return Ma}),a.d(t,'a',function(){return Ia});var Ue=function(){},We={},qe={},Ge=null,Ke={m
 ark:Ue,measure:Ue};try{'undefined'!=typeof window&&(We=window),'undefined'!=typeof document&&(qe=document),'undefined'!=typeof MutationObserver&&(Ge=MutationObserver),'undefined'!=typeof performance&&(Ke=performance)}catch(t){}var $e=We.navigator||{},Je=$e.userAgent,Ze=void 0===Je?'':Je,Qe=We,et=qe,tt=Ge,at=Ke,it=!!Qe.document,nt=!!et.documentElement&&!!et.head&&'function'==typeof et.addEventListener&&'function'==typeof et.createElement,rt=~Ze.indexOf('MSIE')||~Ze.indexOf('Trident/'),ot='___FONT_AWESOME___',st=16,ct='fa',lt='svg-inline--fa',ft='data-fa-i2svg',dt='data-fa-pseudo-element',mt='data-fa-pseudo-element-pending',ut='data-prefix',pt='data-icon',gt='fontawesome-i2svg',ht='async',bt=['HTML','HEAD','STYLE','SCRIPT'],yt=function(){try{return!0}catch(t){return!1}}(),vt={fas:'solid',far:'regular',fal:'light',fad:'duotone',fab:'brands',fa:'solid'},xt={solid:'fas',regular:'far',light:'fal',duotone:'fad',brands:'fab'},wt='fa-layers-text',kt=/Font Awesome 5 (Solid|Regular|Light|Duoto
 ne|Brands|Free|Pro)/,At={900:'fas',400:'far',normal:'far',300:'fal'},Nt=[1,2,3,4,5,6,7,8,9,10],Mt=Nt.concat([11,12,13,14,15,16,17,18,19,20]),Ct=['class','data-prefix','data-icon','data-fa-transform','data-fa-mask'],It={GROUP:'group',SWAP_OPACITY:'swap-opacity',PRIMARY:'primary',SECONDARY:'secondary'},Et=['xs','sm','lg','fw','ul','li','border','pull-left','pull-right','spin','pulse','rotate-90','rotate-180','rotate-270','flip-horizontal','flip-vertical','flip-both','stack','stack-1x','stack-2x','inverse','layers','layers-text','layers-counter',It.GROUP,It.SWAP_OPACITY,It.PRIMARY,It.SECONDARY].concat(Nt.map(function(e){return''.concat(e,'x')})).concat(Mt.map(function(e){return'w-'.concat(e)})),zt=Qe.FontAwesomeConfig||{};if(et&&'function'==typeof et.querySelector){[['data-family-prefix','familyPrefix'],['data-replacement-class','replacementClass'],['data-auto-replace-svg','autoReplaceSvg'],['data-auto-add-css','autoAddCss'],['data-auto-a11y','autoA11y'],['data-search-pseudo-elements',
 'searchPseudoElements'],['data-observe-mutations','observeMutations'],['data-mutate-approach','mutateApproach'],['data-keep-original-source','keepOriginalSource'],['data-measure-performance','measurePerformance'],['data-show-missing-icons','showMissingIcons']].forEach(function(e){var t=f(e,2),a=t[0],i=t[1],n=k(x(a));n!==void 0&&null!==n&&(zt[i]=n)})}var _t=l({},{familyPrefix:ct,replacementClass:lt,autoReplaceSvg:!0,autoAddCss:!0,autoA11y:!0,searchPseudoElements:!1,observeMutations:!0,mutateApproach:'async',keepOriginalSource:!0,measurePerformance:!1,showMissingIcons:!0},zt);_t.autoReplaceSvg||(_t.observeMutations=!1);var Pt=l({},_t);Qe.FontAwesomeConfig=Pt;var St=Qe||{};St[ot]||(St[ot]={}),St[ot].styles||(St[ot].styles={}),St[ot].hooks||(St[ot].hooks={}),St[ot].shims||(St[ot].shims=[]);var w=St[ot],Lt=[],Tt=!1;nt&&(Tt=(et.documentElement.doScroll?/^loaded|^c/:/^loaded|^i|^c/).test(et.readyState),!Tt&&et.addEventListener('DOMContentLoaded',function e(){et.removeEventListener('DOMCont
 entLoaded',e),Tt=1,Lt.map(function(e){return e()})}));var Rt='pending',Ot='settled',Dt='fulfilled',Vt='rejected',jt=function(){},Ht='undefined'!=typeof e&&'undefined'!=typeof e.process&&'function'==typeof e.process.emit,Ft='undefined'==typeof i?setTimeout:i,Yt=[],Xt;D.prototype={constructor:D,_state:Rt,_then:null,_data:void 0,_handled:!1,then:function(e,t){var a={owner:this,then:new this.constructor(jt),fulfilled:e,rejected:t};return(t||e)&&!this._handled&&(this._handled=!0,this._state===Vt&&Ht&&M(O,this)),this._state===Dt||this._state===Vt?M(I,a):this._then.push(a),a.then},catch:function(e){return this.then(null,e)}},D.all=function(e){if(!Array.isArray(e))throw new TypeError('You must pass an array to Promise.all().');return new D(function(t,a){function n(e){return o++,function(a){r[e]=a,--o||t(r)}}for(var r=[],o=0,s=0,i;s<e.length;s++)i=e[s],i&&'function'==typeof i.then?i.then(n(s),a):r[s]=i;o||t(r)})},D.race=function(e){if(!Array.isArray(e))throw new TypeError('You must pass an a
 rray to Promise.race().');return new D(function(t,a){for(var n=0,i;n<e.length;n++)i=e[n],i&&'function'==typeof i.then?i.then(t,a):t(i)})},D.resolve=function(e){return e&&'object'===n(e)&&e.constructor===D?e:new D(function(t){t(e)})},D.reject=function(e){return new D(function(t,a){a(e)})};var Bt='function'==typeof Promise?Promise:D,Ut=st,d={size:16,x:0,y:0,rotate:0,flipX:!1,flipY:!1},Wt='0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ',qt={x:0,y:0,width:'100%',height:'100%'},Gt=function(){},Kt=Pt.measurePerformance&&at&&at.mark&&at.measure?at:{mark:Gt,measure:Gt},p='FA "5.11.2"',$t=function(e){Kt.mark(''.concat(p,' ').concat(e,' ends')),Kt.measure(''.concat(p,' ').concat(e),''.concat(p,' ').concat(e,' begins'),''.concat(p,' ').concat(e,' ends'))},Jt={begin:function(e){return Kt.mark(''.concat(p,' ').concat(e,' begins')),function(){return $t(e)}},end:$t},Zt=function(e,t){return function(i,a,n,r){return e.call(t,i,a,n,r)}},Qt=function(e,t,a,n){var r=Object.keys(e),o=r.le
 ngth,s=n===void 0?t:Zt(t,n),c,i,l;for(void 0===a?(c=1,l=e[r[0]]):(c=0,l=a);c<o;c++)i=r[c],l=s(l,e[i],i,e);return l},ea=w.styles,ta=w.shims,aa={},ia={},na={},ra=function(){var e=function(e){return Qt(ea,function(t,a,i){return t[i]=Qt(a,e,{}),t},{})};aa=e(function(e,t,a){return t[3]&&(e[t[3]]=a),e}),ia=e(function(e,t,a){var i=t[2];return e[a]=a,i.forEach(function(t){e[t]=a}),e});var t='far'in ea;na=Qt(ta,function(e,a){var i=a[0],n=a[1],r=a[2];return'far'!==n||t||(n='fas'),e[i]={prefix:n,iconName:r},e},{})};ra();var oa=w.styles,sa=function(){return{prefix:null,iconName:null,rest:[]}},ca=function(){},la={replace:function(e){var t=e[0],a=e[1],i=a.map(function(e){return me(e)}).join('\n');if(t.parentNode&&t.outerHTML)t.outerHTML=i+(Pt.keepOriginalSource&&'svg'!==t.tagName.toLowerCase()?'<!-- '.concat(t.outerHTML,' -->'):'');else if(t.parentNode){var n=document.createElement('span');t.parentNode.replaceChild(n,t),n.outerHTML=i}},nest:function(e){var t=e[0],a=e[1];if(~Y(t).indexOf(Pt.replac
 ementClass))return la.replace(e);var i=new RegExp(''.concat(Pt.familyPrefix,'-.*'));delete a[0].attributes.style,delete a[0].attributes.id;var n=a[0].attributes.class.split(' ').reduce(function(e,t){return t===Pt.replacementClass||t.match(i)?e.toSvg.push(t):e.toNode.push(t),e},{toNode:[],toSvg:[]});a[0].attributes.class=n.toSvg.join(' ');var r=a.map(function(e){return me(e)}).join('\n');t.setAttribute('class',n.toNode.join(' ')),t.setAttribute(ft,''),t.innerHTML=r}},fa=!1,da=null,ma=function(e){var t={size:16,x:0,y:0,flipX:!1,flipY:!1,rotate:0};return e?e.toLowerCase().split(' ').reduce(function(e,t){var a=t.toLowerCase().split('-'),i=a[0],n=a.slice(1).join('-');return i&&'h'===n?(e.flipX=!0,e):i&&'v'===n?(e.flipY=!0,e):(n=parseFloat(n),isNaN(n))?e:('grow'===i?e.size+=n:'shrink'===i?e.size-=n:'left'===i?e.x-=n:'right'===i?e.x+=n:'up'===i?e.y-=n:'down'===i?e.y+=n:'rotate'===i?e.rotate+=n:void 0,e)},t):t};ze.prototype=Object.create(Error.prototype),ze.prototype.constructor=ze;var ua={
 fill:'currentColor'},pa={attributeType:'XML',repeatCount:'indefinite',dur:'2s'},ga={tag:'path',attributes:l({},ua,{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.6V
 471.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'})},ha=l({},pa,{attributeName:'opacity'}),ba={tag:'circle',attributes:l({},ua,{cx:'256',cy:'364',r:'28'}),children:[{tag:'animate',attributes:l({},pa,{attributeName:'r',values:'28;14;28;28;14;28;'})},{tag:'animate',attributes:l({},ha,{values:'1;0;1;1;0;1;'})}]},ya={tag:'path',attributes:l({},ua,{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:[{tag:'animate',attributes:l({},ha,{values:'1;0;0;0;0;1;'})}]},va={tag:'path',attributes:l({},ua,{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:l({},ha,{values:'0;0;1;1;0;0;'})}]},xa={tag:'g',children:[ga,ba,ya,va]},wa=w.styles,ka=w.styles,Aa='svg:not(:root).svg-inline--fa {\n  overflow: visible;\n}\n\n.svg-inline--fa {\n  display: inline-block;\n  font-size: inherit;\n  height: 1em;\n  overflow: visible;\n  vertical-align: -0.125em;\n}\n.svg-inline--fa.fa-lg {\n  vertical-align: -0.225em;\n}\n.svg-inline--fa.fa-w-1 {\n  width: 0.0625em;\n}\n.svg-inline--fa.fa-w-2 {\n  width: 0.125em;\n}\n.svg-inline--fa.fa-w-3 {\n  width: 0.1875em;\n}\n.svg-inline--fa.fa-w-4 {\n  width: 0.25em;\n}\n.svg-in
 line--fa.fa-w-5 {\n  width: 0.3125em;\n}\n.svg-inline--fa.fa-w-6 {\n  width: 0.375em;\n}\n.svg-inline--fa.fa-w-7 {\n  width: 0.4375em;\n}\n.svg-inline--fa.fa-w-8 {\n  width: 0.5em;\n}\n.svg-inline--fa.fa-w-9 {\n  width: 0.5625em;\n}\n.svg-inline--fa.fa-w-10 {\n  width: 0.625em;\n}\n.svg-inline--fa.fa-w-11 {\n  width: 0.6875em;\n}\n.svg-inline--fa.fa-w-12 {\n  width: 0.75em;\n}\n.svg-inline--fa.fa-w-13 {\n  width: 0.8125em;\n}\n.svg-inline--fa.fa-w-14 {\n  width: 0.875em;\n}\n.svg-inline--fa.fa-w-15 {\n  width: 0.9375em;\n}\n.svg-inline--fa.fa-w-16 {\n  width: 1em;\n}\n.svg-inline--fa.fa-w-17 {\n  width: 1.0625em;\n}\n.svg-inline--fa.fa-w-18 {\n  width: 1.125em;\n}\n.svg-inline--fa.fa-w-19 {\n  width: 1.1875em;\n}\n.svg-inline--fa.fa-w-20 {\n  width: 1.25em;\n}\n.svg-inline--fa.fa-pull-left {\n  margin-right: 0.3em;\n  width: auto;\n}\n.svg-inline--fa.fa-pull-right {\n  margin-left: 0.3em;\n  width: auto;\n}\n.svg-inline--fa.fa-border {\n  height: 1.5em;\n}\n.svg-inline--fa.fa-li {\n
   width: 2em;\n}\n.svg-inline--fa.fa-fw {\n  width: 1.25em;\n}\n\n.fa-layers svg.svg-inline--fa {\n  bottom: 0;\n  left: 0;\n  margin: auto;\n  position: absolute;\n  right: 0;\n  top: 0;\n}\n\n.fa-layers {\n  display: inline-block;\n  height: 1em;\n  position: relative;\n  text-align: center;\n  vertical-align: -0.125em;\n  width: 1em;\n}\n.fa-layers svg.svg-inline--fa {\n  -webkit-transform-origin: center center;\n          transform-origin: center center;\n}\n\n.fa-layers-counter, .fa-layers-text {\n  display: inline-block;\n  position: absolute;\n  text-align: center;\n}\n\n.fa-layers-text {\n  left: 50%;\n  top: 50%;\n  -webkit-transform: translate(-50%, -50%);\n          transform: translate(-50%, -50%);\n  -webkit-transform-origin: center center;\n          transform-origin: center center;\n}\n\n.fa-layers-counter {\n  background-color: #ff253a;\n  border-radius: 1em;\n  -webkit-box-sizing: border-box;\n          box-sizing: border-box;\n  color: #fff;\n  height: 1.5em;\n  li
 ne-height: 1;\n  max-width: 5em;\n  min-width: 1.5em;\n  overflow: hidden;\n  padding: 0.25em;\n  right: 0;\n  text-overflow: ellipsis;\n  top: 0;\n  -webkit-transform: scale(0.25);\n          transform: scale(0.25);\n  -webkit-transform-origin: top right;\n          transform-origin: top right;\n}\n\n.fa-layers-bottom-right {\n  bottom: 0;\n  right: 0;\n  top: auto;\n  -webkit-transform: scale(0.25);\n          transform: scale(0.25);\n  -webkit-transform-origin: bottom right;\n          transform-origin: bottom right;\n}\n\n.fa-layers-bottom-left {\n  bottom: 0;\n  left: 0;\n  right: auto;\n  top: auto;\n  -webkit-transform: scale(0.25);\n          transform: scale(0.25);\n  -webkit-transform-origin: bottom left;\n          transform-origin: bottom left;\n}\n\n.fa-layers-top-right {\n  right: 0;\n  top: 0;\n  -webkit-transform: scale(0.25);\n          transform: scale(0.25);\n  -webkit-transform-origin: top right;\n          transform-origin: top right;\n}\n\n.fa-layers-top-left {
 \n  left: 0;\n  right: auto;\n  top: 0;\n  -webkit-transform: scale(0.25);\n          transform: scale(0.25);\n  -webkit-transform-origin: top left;\n          transform-origin: top left;\n}\n\n.fa-lg {\n  font-size: 1.3333333333em;\n  line-height: 0.75em;\n  vertical-align: -0.0667em;\n}\n\n.fa-xs {\n  font-size: 0.75em;\n}\n\n.fa-sm {\n  font-size: 0.875em;\n}\n\n.fa-1x {\n  font-size: 1em;\n}\n\n.fa-2x {\n  font-size: 2em;\n}\n\n.fa-3x {\n  font-size: 3em;\n}\n\n.fa-4x {\n  font-size: 4em;\n}\n\n.fa-5x {\n  font-size: 5em;\n}\n\n.fa-6x {\n  font-size: 6em;\n}\n\n.fa-7x {\n  font-size: 7em;\n}\n\n.fa-8x {\n  font-size: 8em;\n}\n\n.fa-9x {\n  font-size: 9em;\n}\n\n.fa-10x {\n  font-size: 10em;\n}\n\n.fa-fw {\n  text-align: center;\n  width: 1.25em;\n}\n\n.fa-ul {\n  list-style-type: none;\n  margin-left: 2.5em;\n  padding-left: 0;\n}\n.fa-ul > li {\n  position: relative;\n}\n\n.fa-li {\n  left: -2em;\n  position: absolute;\n  text-align: center;\n  width: 2em;\n  line-height: inher
 it;\n}\n\n.fa-border {\n  border: solid 0.08em #eee;\n  border-radius: 0.1em;\n  padding: 0.2em 0.25em 0.15em;\n}\n\n.fa-pull-left {\n  float: left;\n}\n\n.fa-pull-right {\n  float: right;\n}\n\n.fa.fa-pull-left,\n.fas.fa-pull-left,\n.far.fa-pull-left,\n.fal.fa-pull-left,\n.fab.fa-pull-left {\n  margin-right: 0.3em;\n}\n.fa.fa-pull-right,\n.fas.fa-pull-right,\n.far.fa-pull-right,\n.fal.fa-pull-right,\n.fab.fa-pull-right {\n  margin-left: 0.3em;\n}\n\n.fa-spin {\n  -webkit-animation: fa-spin 2s infinite linear;\n          animation: fa-spin 2s infinite linear;\n}\n\n.fa-pulse {\n  -webkit-animation: fa-spin 1s infinite steps(8);\n          animation: fa-spin 1s infinite steps(8);\n}\n\n at -webkit-keyframes fa-spin {\n  0% {\n    -webkit-transform: rotate(0deg);\n            transform: rotate(0deg);\n  }\n  100% {\n    -webkit-transform: rotate(360deg);\n            transform: rotate(360deg);\n  }\n}\n\n at keyframes fa-spin {\n  0% {\n    -webkit-transform: rotate(0deg);\n            tran
 sform: rotate(0deg);\n  }\n  100% {\n    -webkit-transform: rotate(360deg);\n            transform: rotate(360deg);\n  }\n}\n.fa-rotate-90 {\n  -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=1)";\n  -webkit-transform: rotate(90deg);\n          transform: rotate(90deg);\n}\n\n.fa-rotate-180 {\n  -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=2)";\n  -webkit-transform: rotate(180deg);\n          transform: rotate(180deg);\n}\n\n.fa-rotate-270 {\n  -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=3)";\n  -webkit-transform: rotate(270deg);\n          transform: rotate(270deg);\n}\n\n.fa-flip-horizontal {\n  -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)";\n  -webkit-transform: scale(-1, 1);\n          transform: scale(-1, 1);\n}\n\n.fa-flip-vertical {\n  -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)";\n  -webkit-transform: scale(1, -1);\n          transform: scale
 (1, -1);\n}\n\n.fa-flip-both, .fa-flip-horizontal.fa-flip-vertical {\n  -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)";\n  -webkit-transform: scale(-1, -1);\n          transform: scale(-1, -1);\n}\n\n:root .fa-rotate-90,\n:root .fa-rotate-180,\n:root .fa-rotate-270,\n:root .fa-flip-horizontal,\n:root .fa-flip-vertical,\n:root .fa-flip-both {\n  -webkit-filter: none;\n          filter: none;\n}\n\n.fa-stack {\n  display: inline-block;\n  height: 2em;\n  position: relative;\n  width: 2.5em;\n}\n\n.fa-stack-1x,\n.fa-stack-2x {\n  bottom: 0;\n  left: 0;\n  margin: auto;\n  position: absolute;\n  right: 0;\n  top: 0;\n}\n\n.svg-inline--fa.fa-stack-1x {\n  height: 1em;\n  width: 1.25em;\n}\n.svg-inline--fa.fa-stack-2x {\n  height: 2em;\n  width: 2.5em;\n}\n\n.fa-inverse {\n  color: #fff;\n}\n\n.sr-only {\n  border: 0;\n  clip: rect(0, 0, 0, 0);\n  height: 1px;\n  margin: -1px;\n  overflow: hidden;\n  padding: 0;\n  position: absolute;\n  width: 1px;\n}\n\
 n.sr-only-focusable:active, .sr-only-focusable:focus {\n  clip: auto;\n  height: auto;\n  margin: 0;\n  overflow: visible;\n  position: static;\n  width: auto;\n}\n\n.svg-inline--fa .fa-primary {\n  fill: var(--fa-primary-color, currentColor);\n  opacity: 1;\n  opacity: var(--fa-primary-opacity, 1);\n}\n\n.svg-inline--fa .fa-secondary {\n  fill: var(--fa-secondary-color, currentColor);\n  opacity: 0.4;\n  opacity: var(--fa-secondary-opacity, 0.4);\n}\n\n.svg-inline--fa.fa-swap-opacity .fa-primary {\n  opacity: 0.4;\n  opacity: var(--fa-secondary-opacity, 0.4);\n}\n\n.svg-inline--fa.fa-swap-opacity .fa-secondary {\n  opacity: 1;\n  opacity: var(--fa-primary-opacity, 1);\n}\n\n.svg-inline--fa mask .fa-primary,\n.svg-inline--fa mask .fa-secondary {\n  fill: black;\n}\n\n.fad.fa-inverse {\n  color: #fff;\n}',Na=function(){function e(){r(this,e),this.definitions={}}return s(e,[{key:'add',value:function(){for(var e=this,t=arguments.length,a=Array(t),i=0;i<t;i++)a[i]=arguments[i];var n=a.r
 educe(this._pullDefinitions,{});Object.keys(n).forEach(function(t){e.definitions[t]=l({},e.definitions[t]||{},n[t]),oe(t,n[t]),ra()})}},{key:'reset',value:function(){this.definitions={}}},{key:'_pullDefinitions',value:function(e,t){var a=t.prefix&&t.iconName&&t.icon?{0:t}:t;return Object.keys(a).map(function(t){var i=a[t],n=i.prefix,r=i.iconName,o=i.icon;e[n]||(e[n]={}),e[n][r]=o}),e}}]),e}(),Ma=new Na,Ca=!1,Ia={i2svg:function(){var e=0<arguments.length&&arguments[0]!==void 0?arguments[0]:{};if(nt){Ye();var t=e.node,a=void 0===t?et:t,i=e.callback,n=void 0===i?function(){}:i;return Pt.searchPseudoElements&&He(a),Re(a,n)}return Bt.reject('Operation requires a DOM of some kind.')},css:Fe,insertCss:function(){Ca||(j(Fe()),Ca=!0)},watch:function(){var e=0<arguments.length&&arguments[0]!==void 0?arguments[0]:{},t=e.autoReplaceSvgRoot,a=e.observeMutationsRoot;!1===Pt.autoReplaceSvg&&(Pt.autoReplaceSvg=!0),Pt.observeMutations=!0,A(function(){_a({autoReplaceSvgRoot:t}),ve({treeCallback:Re,no
 deCallback:Oe,pseudoElementsCallback:He,observeMutationsRoot:a})})}},Ea=function(e){return function(t){var a=1<arguments.length&&void 0!==arguments[1]?arguments[1]:{},i=(t||{}).icon?t:Be(t||{}),n=a.mask;return n&&(n=(n||{}).icon?n:Be(n||{})),e(i,l({},a,{mask:n}))}}(function(e){var t=1<arguments.length&&arguments[1]!==void 0?arguments[1]:{},a=t.transform,i=void 0===a?d:a,n=t.symbol,r=t.mask,o=void 0===r?null:r,s=t.title,c=void 0===s?null:s,f=t.classes,m=void 0===f?[]:f,u=t.attributes,p=void 0===u?{}:u,g=t.styles,h=void 0===g?{}:g;if(e){var b=e.prefix,y=e.iconName,v=e.icon;return Xe(l({type:'icon'},e),function(){return Ye(),Pt.autoA11y&&(c?p['aria-labelledby']=''.concat(Pt.replacementClass,'-title-').concat(H()):(p['aria-hidden']='true',p.focusable='false')),ae({icons:{main:_e(v),mask:o?_e(o.icon):{found:!1,width:null,height:null,icon:{}}},prefix:b,iconName:y,transform:l({},d,i),symbol:void 0!==n&&n,title:c,extra:{attributes:p,styles:h,classes:m}})})}}),za={noAuto:function(){Pt.autoRe
 placeSvg=!1,Pt.observeMutations=!1,xe()},config:Pt,dom:Ia,library:Ma,parse:{transform:function(e){return ma(e)}},findIconDefinition:Be,icon:Ea,text:function(e){var t=1<arguments.length&&arguments[1]!==void 0?arguments[1]:{},a=t.transform,i=void 0===a?d:a,n=t.title,r=void 0===n?null:n,o=t.classes,s=void 0===o?[]:o,c=t.attributes,f=void 0===c?{}:c,u=t.styles,p=void 0===u?{}:u;return Xe({type:'text',content:e},function(){return Ye(),ie({content:e,transform:l({},d,i),title:r,extra:{attributes:f,styles:p,classes:[''.concat(Pt.familyPrefix,'-layers-text')].concat(m(s))}})})},counter:function(e){var t=1<arguments.length&&arguments[1]!==void 0?arguments[1]:{},a=t.title,i=void 0===a?null:a,n=t.classes,r=void 0===n?[]:n,o=t.attributes,s=void 0===o?{}:o,c=t.styles,l=void 0===c?{}:c;return Xe({type:'counter',content:e},function(){return Ye(),ne({content:e.toString(),title:i,extra:{attributes:s,styles:l,classes:[''.concat(Pt.familyPrefix,'-layers-counter')].concat(m(r))}})})},layer:function(e){v
 ar t=1<arguments.length&&arguments[1]!==void 0?arguments[1]:{},a=t.classes,i=void 0===a?[]:a;return Xe({type:'layer'},function(){Ye();var t=[];return e(function(e){Array.isArray(e)?e.map(function(e){t=t.concat(e.abstract)}):t=t.concat(e.abstract)}),[{tag:'span',attributes:{class:[''.concat(Pt.familyPrefix,'-layers')].concat(m(i)).join(' ')},children:t}]})},toHtml:me},_a=function(){var e=0<arguments.length&&arguments[0]!==void 0?arguments[0]:{},t=e.autoReplaceSvgRoot,a=void 0===t?et:t;(0<Object.keys(w.styles).length||Pt.autoFetchSvg)&&nt&&Pt.autoReplaceSvg&&za.dom.i2svg({node:a})}}).call(this,a(0),a(2).setImmediate)},function(e,t,a){(function(e){function i(e,t){this._id=e,this._clearFn=t}var n='undefined'!=typeof e&&e||'undefined'!=typeof self&&self||window,r=Function.prototype.apply;t.setTimeout=function(){return new i(r.call(setTimeout,n,arguments),clearTimeout)},t.setInterval=function(){return new i(r.call(setInterval,n,arguments),clearInterval)},t.clearTimeout=t.clearInterval=fun
 ction(e){e&&e.close()},i.prototype.unref=i.prototype.ref=function(){},i.prototype.close=function(){this._clearFn.call(n,this._id)},t.enroll=function(e,t){clearTimeout(e._idleTimeoutId),e._idleTimeout=t},t.unenroll=function(e){clearTimeout(e._idleTimeoutId),e._idleTimeout=-1},t._unrefActive=t.active=function(e){clearTimeout(e._idleTimeoutId);var t=e._idleTimeout;0<=t&&(e._idleTimeoutId=setTimeout(function(){e._onTimeout&&e._onTimeout()},t))},a(3),t.setImmediate='undefined'!=typeof self&&self.setImmediate||'undefined'!=typeof e&&e.setImmediate||this&&this.setImmediate,t.clearImmediate='undefined'!=typeof self&&self.clearImmediate||'undefined'!=typeof e&&e.clearImmediate||this&&this.clearImmediate}).call(this,a(0))},function(e,t,a){(function(e,t){(function(e){'use strict';function a(e){'function'!=typeof e&&(e=new Function(''+e));for(var t=Array(arguments.length-1),a=0;a<t.length;a++)t[a]=arguments[a+1];var i={callback:e,args:t};return u[m]=i,b(m),m++}function i(e){delete u[e]}function
  n(e){var t=e.callback,a=e.args;switch(a.length){case 0:t();break;case 1:t(a[0]);break;case 2:t(a[0],a[1]);break;case 3:t(a[0],a[1],a[2]);break;default:t.apply(void 0,a);}}function r(e){if(p)setTimeout(r,0,e);else{var t=u[e];if(t){p=!0;try{n(t)}finally{i(e),p=!1}}}}function o(){b=function(e){t.nextTick(function(){r(e)})}}function s(){if(e.postMessage&&!e.importScripts){var t=!0,a=e.onmessage;return e.onmessage=function(){t=!1},e.postMessage('','*'),e.onmessage=a,t}}function c(){var t='setImmediate$'+Math.random()+'$',a=function(a){a.source===e&&'string'==typeof a.data&&0===a.data.indexOf(t)&&r(+a.data.slice(t.length))};e.addEventListener?e.addEventListener('message',a,!1):e.attachEvent('onmessage',a),b=function(a){e.postMessage(t+a,'*')}}function l(){var e=new MessageChannel;e.port1.onmessage=function(e){var t=e.data;r(t)},b=function(t){e.port2.postMessage(t)}}function f(){var e=g.documentElement;b=function(t){var a=g.createElement('script');a.onreadystatechange=function(){r(t),a.on
 readystatechange=null,e.removeChild(a),a=null},e.appendChild(a)}}function d(){b=function(e){setTimeout(r,0,e)}}if(!e.setImmediate){var m=1,u={},p=!1,g=e.document,h=Object.getPrototypeOf&&Object.getPrototypeOf(e),b;h=h&&h.setTimeout?h:e,'[object process]'==={}.toString.call(e.process)?o():s()?c():e.MessageChannel?l():g&&'onreadystatechange'in g.createElement('script')?f():d(),h.setImmediate=a,h.clearImmediate=i}})('undefined'==typeof self?'undefined'==typeof e?this:e:self)}).call(this,a(0),a(4))},function(e){function t(){throw new Error('setTimeout has not been defined')}function a(){throw new Error('clearTimeout has not been defined')}function n(e){if(f===setTimeout)return setTimeout(e,0);if((f===t||!f)&&setTimeout)return f=setTimeout,setTimeout(e,0);try{return f(e,0)}catch(t){try{return f.call(null,e,0)}catch(t){return f.call(this,e,0)}}}function i(e){if(d===clearTimeout)return clearTimeout(e);if((d===a||!d)&&clearTimeout)return d=clearTimeout,clearTimeout(e);try{return d(e)}catch(
 t){try{return d.call(null,e)}catch(t){return d.call(this,e)}}}function r(){u&&g&&(u=!1,g.length?m=g.concat(m):p=-1,m.length&&o())}function o(){if(!u){var e=n(r);u=!0;for(var t=m.length;t;){for(g=m,m=[];++p<t;)g&&g[p].run();p=-1,t=m.length}g=null,u=!1,i(e)}}function s(e,t){this.fun=e,this.array=t}function c(){}var l=e.exports={},f,d;(function(){try{f='function'==typeof setTimeout?setTimeout:t}catch(a){f=t}try{d='function'==typeof clearTimeout?clearTimeout:a}catch(t){d=a}})();var m=[],u=!1,p=-1,g;l.nextTick=function(e){var t=Array(arguments.length-1);if(1<arguments.length)for(var a=1;a<arguments.length;a++)t[a-1]=arguments[a];m.push(new s(e,t)),1!==m.length||u||n(o)},s.prototype.run=function(){this.fun.apply(null,this.array)},l.title='browser',l.browser=!0,l.env={},l.argv=[],l.version='',l.versions={},l.on=c,l.addListener=c,l.once=c,l.off=c,l.removeListener=c,l.removeAllListeners=c,l.emit=c,l.prependListener=c,l.prependOnceListener=c,l.listeners=function(){return[]},l.binding=function
 (){throw new Error('process.binding is not supported')},l.cwd=function(){return'/'},l.chdir=function(){throw new Error('process.chdir is not supported')},l.umask=function(){return 0}},function(e,t,a){'use strict';a.r(t);var i=a(1),n={prefix:'fas',iconName:'bookmark',icon:[384,512,[],'f02e','M0 512V48C0 21.49 21.49 0 48 0h288c26.51 0 48 21.49 48 48v464L192 400 0 512z']},r={prefix:'fas',iconName:'cog',icon:[512,512,[],'f013','M487.4 315.7l-42.6-24.6c4.3-23.2 4.3-47 0-70.2l42.6-24.6c4.9-2.8 7.1-8.6 5.5-14-11.1-35.6-30-67.8-54.7-94.6-3.8-4.1-10-5.1-14.8-2.3L380.8 110c-17.9-15.4-38.5-27.3-60.8-35.1V25.8c0-5.6-3.9-10.5-9.4-11.7-36.7-8.2-74.3-7.8-109.2 0-5.5 1.2-9.4 6.1-9.4 11.7V75c-22.2 7.9-42.8 19.8-60.8 35.1L88.7 85.5c-4.9-2.8-11-1.9-14.8 2.3-24.7 26.7-43.6 58.9-54.7 94.6-1.7 5.4.6 11.2 5.5 14L67.3 221c-4.3 23.2-4.3 47 0 70.2l-42.6 24.6c-4.9 2.8-7.1 8.6-5.5 14 11.1 35.6 30 67.8 54.7 94.6 3.8 4.1 10 5.1 14.8 2.3l42.6-24.6c17.9 15.4 38.5 27.3 60.8 35.1v49.2c0 5.6 3.9 10.5 9.4 11.7 36.7 8.
 2 74.3 7.8 109.2 0 5.5-1.2 9.4-6.1 9.4-11.7v-49.2c22.2-7.9 42.8-19.8 60.8-35.1l42.6 24.6c4.9 2.8 11 1.9 14.8-2.3 24.7-26.7 43.6-58.9 54.7-94.6 1.5-5.5-.7-11.3-5.6-14.1zM256 336c-44.1 0-80-35.9-80-80s35.9-80 80-80 80 35.9 80 80-35.9 80-80 80z']},o={prefix:'fas',iconName:'edit',icon:[576,512,[],'f044','M402.6 83.2l90.2 90.2c3.8 3.8 3.8 10 0 13.8L274.4 405.6l-92.8 10.3c-12.4 1.4-22.9-9.1-21.5-21.5l10.3-92.8L388.8 83.2c3.8-3.8 10-3.8 13.8 0zm162-22.9l-48.8-48.8c-15.2-15.2-39.9-15.2-55.2 0l-35.4 35.4c-3.8 3.8-3.8 10 0 13.8l90.2 90.2c3.8 3.8 10 3.8 13.8 0l35.4-35.4c15.2-15.3 15.2-40 0-55.2zM384 346.2V448H64V128h229.8c3.2 0 6.2-1.3 8.5-3.5l40-40c7.6-7.6 2.2-20.5-8.5-20.5H48C21.5 64 0 85.5 0 112v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V306.2c0-10.7-12.9-16-20.5-8.5l-40 40c-2.2 2.3-3.5 5.3-3.5 8.5z']},s={prefix:'fas',iconName:'project-diagram',icon:[640,512,[],'f542','M384 320H256c-17.67 0-32 14.33-32 32v128c0 17.67 14.33 32 32 32h128c17.67 0 32-14.33 32-32V352c0-17.67-14.33-32-32-3
 2zM192 32c0-17.67-14.33-32-32-32H32C14.33 0 0 14.33 0 32v128c0 17.67 14.33 32 32 32h95.72l73.16 128.04C211.98 300.98 232.4 288 256 288h.28L192 175.51V128h224V64H192V32zM608 0H480c-17.67 0-32 14.33-32 32v128c0 17.67 14.33 32 32 32h128c17.67 0 32-14.33 32-32V32c0-17.67-14.33-32-32-32z']},c={prefix:'far',iconName:'bookmark',icon:[384,512,[],'f02e','M336 0H48C21.49 0 0 21.49 0 48v464l192-112 192 112V48c0-26.51-21.49-48-48-48zm0 428.43l-144-84-144 84V54a6 6 0 0 1 6-6h276c3.314 0 6 2.683 6 5.996V428.43z']},l={prefix:'far',iconName:'calendar-alt',icon:[448,512,[],'f073','M148 288h-40c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12zm108-12v-40c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12zm96 0v-40c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12zm-96 96v-40c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12zm-96 0v-40c0-6.6-5.4-12-12-12h-
 40c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12zm192 0v-40c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12zm96-260v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V112c0-26.5 21.5-48 48-48h48V12c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v52h128V12c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v52h48c26.5 0 48 21.5 48 48zm-48 346V160H48v298c0 3.3 2.7 6 6 6h340c3.3 0 6-2.7 6-6z']},f={prefix:'far',iconName:'clock',icon:[512,512,[],'f017','M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm0 448c-110.5 0-200-89.5-200-200S145.5 56 256 56s200 89.5 200 200-89.5 200-200 200zm61.8-104.4l-84.9-61.7c-3.1-2.3-4.9-5.9-4.9-9.7V116c0-6.6 5.4-12 12-12h32c6.6 0 12 5.4 12 12v141.7l66.8 48.6c5.4 3.9 6.5 11.4 2.6 16.8L334.6 349c-3.9 5.3-11.4 6.5-16.8 2.6z']},d={prefix:'far',iconName:'edit',icon:[576,512,[],'f044','M402.3 344.9l32-32c5-5 13.7-1.5 13.7 5.7V464c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V112c0-26.5 21.5-48 48-48h273.5
 c7.1 0 10.7 8.6 5.7 13.7l-32 32c-1.5 1.5-3.5 2.3-5.7 2.3H48v352h352V350.5c0-2.1.8-4.1 2.3-5.6zm156.6-201.8L296.3 405.7l-90.4 10c-26.2 2.9-48.5-19.2-45.6-45.6l10-90.4L432.9 17.1c22.9-22.9 59.9-22.9 82.7 0l43.2 43.2c22.9 22.9 22.9 60 .1 82.8zM460.1 174L402 115.9 216.2 301.8l-7.3 65.3 65.3-7.3L460.1 174zm64.8-79.7l-43.2-43.2c-4.1-4.1-10.8-4.1-14.8 0L436 82l58.1 58.1 30.9-30.9c4-4.2 4-10.8-.1-14.9z']};i.b.add(r,o,n,s,d,c,f,l),i.a.watch()}]);
\ No newline at end of file

commit e571ceb5b2d382bab697ebe744f314cdb6ae36fa
Author: Blaine Motsinger <blaine at bestpractical.com>
Date:   Mon Oct 21 14:45:23 2019 -0500

    Replace text links with fontawesome SVGs

diff --git a/lib/RT/Interface/Web/MenuBuilder.pm b/lib/RT/Interface/Web/MenuBuilder.pm
index 809c32cd8f..b7bd326c1e 100644
--- a/lib/RT/Interface/Web/MenuBuilder.pm
+++ b/lib/RT/Interface/Web/MenuBuilder.pm
@@ -669,7 +669,7 @@ sub BuildMainNav {
     }
 
     if ( $request_path =~ /^\/(?:index.html|$)/ ) {
-        $page->child( edit => title => loc('Edit'), path => '/Prefs/MyRT.html' );
+        $page->child( edit => raw_html => q[<a id="page-edit" class="menu-item" href="] . RT->Config->Get('WebPath') . q[/Prefs/MyRT.html"><span class="fas fa-cog" alt="] . loc('Edit') . q["></span></a>] );
     }
 
     # due to historical reasons of always having been in /Elements/Tabs
diff --git a/share/html/Elements/Dashboards b/share/html/Elements/Dashboards
index 183c8dbf20..e81c38cd16 100644
--- a/share/html/Elements/Dashboards
+++ b/share/html/Elements/Dashboards
@@ -48,7 +48,7 @@
 <&|/Widgets/TitleBox,
     title => loc('Dashboards'),
     title_href => RT->Config->Get('WebPath').'/Dashboards/index.html',
-    titleright => loc("Edit"),
+    titleright_raw => q[<span class="fas fa-cog" alt="] . loc('Edit') . q["></span>],
     titleright_href => RT->Config->Get('WebPath').'/Dashboards/index.html',
 &>
 
diff --git a/share/html/Elements/QueueList b/share/html/Elements/QueueList
index 67e886ed4c..3e5b525b9e 100644
--- a/share/html/Elements/QueueList
+++ b/share/html/Elements/QueueList
@@ -50,7 +50,7 @@
     title => loc("Queue list"),
     class => "fullwidth",
     bodyclass => "",
-    titleright => loc("Edit"),
+    titleright_raw => q[<span class="fas fa-cog" alt="] . loc('Edit') . q["></span>],
     titleright_href => RT->Config->Get('WebPath').'/Prefs/QueueList.html',
 &>
 <& $comp,
diff --git a/share/html/Elements/ShowHistoryHeader b/share/html/Elements/ShowHistoryHeader
index ef0938ed6b..183cc7cc31 100644
--- a/share/html/Elements/ShowHistoryHeader
+++ b/share/html/Elements/ShowHistoryHeader
@@ -62,15 +62,13 @@ if ( $ShowDisplayModes or $ShowTitle or $ScrollShowHistory ) {
     my $title = $ShowTitle
                     ? loc('History')
                     : ' ';
-
-    my $titleright = '';
+    my @elements;
     if ( $ScrollShowHistory ) {
-        $titleright .= qq{<span id="LoadAllHistoryContainer">} .
-                       qq{<a href="#" id="LoadAllHistory">} .
-                       loc('Load all history') .
-                       qq{</a>} .
-                       ($ShowDisplayModes ? '—' : '') .
-                       qq{</span>};
+        push( @elements, qq{<span id="LoadAllHistoryContainer">} .
+                         qq{<a href="#" id="LoadAllHistory">} .
+                         loc('Load all history') .
+                         qq{</a>} .
+                         qq{</span>} );
     }
 
     if ( $ShowDisplayModes ) {
@@ -78,24 +76,34 @@ if ( $ShowDisplayModes or $ShowTitle or $ScrollShowHistory ) {
             my $open_all  = $m->interp->apply_escapes( loc("Show all quoted text"), 'j' );
             my $open_html = $m->interp->apply_escapes( loc("Show all quoted text"), 'h' );
             my $close_all = $m->interp->apply_escapes( loc("Hide all quoted text"), 'j' );
-            $titleright .=    '<a href="#" data-direction="open" '
-                            . qq{onclick="return toggle_all_folds(this, $open_all, $close_all);"}
-                            . ">$open_html</a> — ";
+            push( @elements, qq{<a href="#" data-direction="open" } .
+                             qq{onclick="return toggle_all_folds(this, $open_all, $close_all);"} .
+                             qq{>$open_html</a>} );
         }
 
         if ($ShowHeaders) {
-            $titleright .= qq{<a href="?ForceShowHistory=1;id=} .
-                           $Object->id.qq{#$histid">} .
-                           loc("Show brief headers") .
-                           qq{</a>};
+            push( @elements, qq{<a href="?ForceShowHistory=1;id=} .
+                             $Object->id.qq{#$histid">} .
+                             loc("Show brief headers") .
+                             qq{</a>} );
         } else {
-            $titleright .= qq{<a href="?ForceShowHistory=1;ShowHeaders=1;id=} .
-                           $Object->id.qq{#$histid">} .
-                           loc("Show full headers") .
-                           qq{</a>};
+            push( @elements, qq{<a href="?ForceShowHistory=1;ShowHeaders=1;id=} .
+                             $Object->id.qq{#$histid">} .
+                             loc("Show full headers") .
+                             qq{</a>} );
         }
     }
 
+    # build the new link
+    my $titleright = q{<div class="btn-group dropdown"><a id="history-dropdown" href="#" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false"><span class="fas fa-cog"></span></a><ul class="dropdown-menu dropdown-menu-right">};
+
+    # foreach of the elements, build a new <li>$element</li> and append to the output.
+    foreach my $element ( @elements ) {
+        $titleright .= qq{<li class="dropdown-item">$element</li>};
+    }
+
+    $titleright .= q{</ul></div>};
+
 </%perl>
 % $m->callback( CallbackName => 'BeforeTitle', %ARGS, title => \$title, titleright => \$titleright );
 <& /Widgets/TitleBoxStart, title => $title, titleright_raw => $titleright, class => 'fullwidth' &>
diff --git a/share/html/Elements/ShowSearch b/share/html/Elements/ShowSearch
index c19eacd6eb..160dce975b 100644
--- a/share/html/Elements/ShowSearch
+++ b/share/html/Elements/ShowSearch
@@ -49,7 +49,7 @@
     title => loc(RT::SavedSearch->EscapeDescription($search->Description), $ProcessedSearchArg->{'Rows'}),
     title_raw => $title_raw,
     title_href => $query_link_url.$QueryString,
-    titleright => $customize ? loc('Edit') : '',
+    titleright_raw => q[<span class="fas fa-cog" alt="] . loc('Edit') . q["></span>],
     titleright_href => $customize,
     hideable => $hideable,
     class => 'fullwidth' &>
diff --git a/share/html/Ticket/Display.html b/share/html/Ticket/Display.html
index 8c1920b2fd..cddbf7f64b 100644
--- a/share/html/Ticket/Display.html
+++ b/share/html/Ticket/Display.html
@@ -66,7 +66,17 @@ my $initial_label = $HideUnsetFields ? $show_label : $hide_label;
 my $url = "?HideUnsetFields=" . ($HideUnsetFields ? 0 : 1) . ";id=$ARGS{id}";
 my $url_html = $m->interp->apply_escapes($url, 'h');
 
-my $titleright = qq{<a href="$url_html" data-show-label="$show_label" data-hide-label="$hide_label" onclick="return toggle_hide_unset(this)">$initial_label</a>};
+my $titleright = qq{
+<div class="btn-group dropdown">
+  <a id="metadata-dropdown" href="#" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
+    <span class="fas fa-cog" alt="} . loc('Edit') . qq{"></span>
+  </a>
+  <ul class="dropdown-menu dropdown-menu-right">
+    <li class="dropdown-item">
+      <a href="$url_html" data-show-label="$show_label" data-hide-label="$hide_label" onclick="return toggle_hide_unset(this)">$initial_label</a>
+    </li>
+  </ul>
+</div>};
 </%PERL>
 
 <div class="summary unset-fields-container<% $HideUnsetFields ? ' unset-fields-hidden' : '' %>">
diff --git a/share/html/Ticket/Elements/Bookmark b/share/html/Ticket/Elements/Bookmark
index b16cf9ff39..0bef50fce2 100644
--- a/share/html/Ticket/Elements/Bookmark
+++ b/share/html/Ticket/Elements/Bookmark
@@ -65,9 +65,9 @@ $Toggle => 0
 % my $url = RT->Config->Get('WebPath') ."/Helpers/Toggle/TicketBookmark?id=". $id;
 <a href="<% $url %>" onclick="jQuery.get(<% $url |n,j %>, function(data){ jQuery('.toggle-bookmark-'+<% $id |n,j%>).replaceWith(data) }); return false;" >
 % if ( $is_bookmarked ) {
-<img src="<% RT->Config->Get('WebPath') %>/static/images/star-full.png" alt="<% loc('Remove Bookmark') %>" />
+<span class="fas fa-bookmark bookmark-selected" data-fa-transform="shrink-2 up-0.25" alt="<% loc('Remove Bookmark') %>"></span>
 % } else {
-<img src="<% RT->Config->Get('WebPath') %>/static/images/star-empty.png" alt="<% loc('Add Bookmark') %>" />
+<span class="far fa-bookmark" style="color:black" alt="<% loc('Add Bookmark') %>"></span>
 % }
 </a>
 </span>
diff --git a/share/html/Ticket/Elements/PopupTimerLink b/share/html/Ticket/Elements/PopupTimerLink
index 2e2442b3b0..a79a07f2aa 100644
--- a/share/html/Ticket/Elements/PopupTimerLink
+++ b/share/html/Ticket/Elements/PopupTimerLink
@@ -53,6 +53,6 @@ my $url = RT->Config->Get('WebPath') . "/Helpers/TicketTimer?id=" . $id;
 </%INIT>
 <span class="timer-link">
     <a href="<% $url %>" onclick="window.open(<% $url |n,j %>, '_blank', 'height=200,width=200'); return false;" >
-        <img src="<% RT->Config->Get('WebPath') %>/static/images/stopwatch.png" alt="<% loc('Open Timer') %>" title="<% loc('Open Timer') %>" />
+        <span class="far fa-clock" alt="<% loc('Open Timer') %>" title="<% loc('Open Timer') %>"></span>
     </a>
 </span>
diff --git a/share/html/Ticket/Elements/ShowSummary b/share/html/Ticket/Elements/ShowSummary
index bfc4808bd2..d68351c17b 100644
--- a/share/html/Ticket/Elements/ShowSummary
+++ b/share/html/Ticket/Elements/ShowSummary
@@ -87,7 +87,7 @@
     &><& /Ticket/Elements/ShowDates, Ticket => $Ticket &></&>
 % $m->callback( %ARGS, CallbackName => 'AfterDates' );
 % my (@extra);
-% push @extra, titleright_raw => '<a href="'. RT->Config->Get('WebPath'). '/Ticket/Graphs/index.html?id='.$Ticket->id.'">'.loc('Graph').'</a>' unless RT->Config->Get('DisableGraphViz');
+% push @extra, titleright_raw => '<a href="' . RT->Config->Get('WebPath') . '/Ticket/Graphs/index.html?id=' . $Ticket->id . '"><span class="fas fa-project-diagram" alt="' . loc('Graph ticket links') . '"></span></a>' unless RT->Config->Get('DisableGraphViz');
 <& /Ticket/Elements/ShowAssets, Ticket => $Ticket &>
 % $m->callback( %ARGS, CallbackName => 'LinksExtra', extra => \@extra );
     <&| /Widgets/TitleBox, title => loc('Links'),
diff --git a/share/html/Ticket/ModifyLinks.html b/share/html/Ticket/ModifyLinks.html
index e82037ed77..5690ccee6d 100644
--- a/share/html/Ticket/ModifyLinks.html
+++ b/share/html/Ticket/ModifyLinks.html
@@ -55,7 +55,7 @@
 <input type="hidden" class="hidden" name="id" value="<%$Ticket->id%>" />
 % $m->callback( CallbackName => 'FormStart', ARGSRef => \%ARGS );
 % my (@extra);
-% push @extra, titleright_raw => '<a href="'. RT->Config->Get('WebPath') . '/Ticket/Graphs/index.html?id='.$Ticket->id.'">'.loc('Graph').'</a>' unless RT->Config->Get('DisableGraphViz');
+% push @extra, titleright_raw => '<a href="' . RT->Config->Get('WebPath') . '/Ticket/Graphs/index.html?id=' . $Ticket->id . '"><span class="fas fa-project-diagram" alt="' . loc('Graph ticket links') . '"></span></a>' unless RT->Config->Get('DisableGraphViz');
 <&| /Widgets/TitleBox, title => loc('Edit Links'), class=>'ticket-info-links', @extra &>
 <& /Elements/EditLinks, Object => $Ticket &>
 </&>
diff --git a/share/static/css/elevator-light/misc.css b/share/static/css/elevator-light/misc.css
index afdfb5f2de..84e00e62c4 100644
--- a/share/static/css/elevator-light/misc.css
+++ b/share/static/css/elevator-light/misc.css
@@ -121,3 +121,9 @@ div.cke {
   z-index: 10000; 
 }
 
+/* manipulate the svg image for selected bookmarks */
+svg.bookmark-selected path {
+    stroke: black;
+    stroke-width: 50;
+    fill: #46B346;
+}

commit 257d57730335b5cc17dda854f54c10b8267e2365
Author: Blaine Motsinger <blaine at bestpractical.com>
Date:   Tue Oct 22 12:42:50 2019 -0500

    Remove timer and bookmark css and images

diff --git a/share/html/Ticket/Elements/PopupTimerLink b/share/html/Ticket/Elements/PopupTimerLink
index a79a07f2aa..6b7b57ebd6 100644
--- a/share/html/Ticket/Elements/PopupTimerLink
+++ b/share/html/Ticket/Elements/PopupTimerLink
@@ -51,8 +51,6 @@ $id
 <%INIT>
 my $url = RT->Config->Get('WebPath') . "/Helpers/TicketTimer?id=" . $id;
 </%INIT>
-<span class="timer-link">
-    <a href="<% $url %>" onclick="window.open(<% $url |n,j %>, '_blank', 'height=200,width=200'); return false;" >
-        <span class="far fa-clock" alt="<% loc('Open Timer') %>" title="<% loc('Open Timer') %>"></span>
-    </a>
-</span>
+<a href="<% $url %>" onclick="window.open(<% $url |n,j %>, '_blank', 'height=200,width=200'); return false;" >
+  <span class="far fa-clock" alt="<% loc('Open Timer') %>" title="<% loc('Open Timer') %>"></span>
+</a>
diff --git a/share/static/css/elevator-light/misc.css b/share/static/css/elevator-light/misc.css
index 84e00e62c4..f38617554e 100644
--- a/share/static/css/elevator-light/misc.css
+++ b/share/static/css/elevator-light/misc.css
@@ -67,13 +67,6 @@ div.cke {
     width: 17em;
 }
 
-.toggle-bookmark a img,
-.timer-link a img {
-    height: 1em;
-    width: 1em;
-    border-style: none;
-}
-
 .dashboard-subscription tr.frequency .value input {
     margin-bottom: 0.75em;
 }
diff --git a/share/static/css/elevator-light/nav.css b/share/static/css/elevator-light/nav.css
index f06d574787..d4a79f4ae5 100644
--- a/share/static/css/elevator-light/nav.css
+++ b/share/static/css/elevator-light/nav.css
@@ -184,12 +184,6 @@ ul.sf-menu li {
     height: auto;
 }
 
-#li-page-bookmark .toggle-bookmark a,
-#li-page-timer .timer-link a {
-    padding: 0.5em 1em;
-    border-style: none;
-}
-
 #li-page-bookmark a img,
 #li-page-timer a img {
     height: 1.25em;
diff --git a/share/static/css/elevator-light/ticket-timer.css b/share/static/css/elevator-light/ticket-timer.css
index 36fb802f60..13fe104b59 100644
--- a/share/static/css/elevator-light/ticket-timer.css
+++ b/share/static/css/elevator-light/ticket-timer.css
@@ -7,10 +7,6 @@
     border-style: none;
 }
 
-.timer-link a img {
-    border-style: none;
-}
-
 /* we use background: #547CCC; to help make the ticket timer look more like RT
    but unfortunately that makes the stopwatch icon (being black) look bad */
 .ticket-timer .ticket-link img {
@@ -83,4 +79,4 @@
     border-bottom: 1px solid #ccc;
     background-color: #eee;
     padding: 0.5em;
-}
\ No newline at end of file
+}
diff --git a/share/static/css/mobile.css b/share/static/css/mobile.css
index 31bda19022..92104249e5 100644
--- a/share/static/css/mobile.css
+++ b/share/static/css/mobile.css
@@ -457,11 +457,3 @@ div.error .titlebox-title {
 div.error div.error {
     background-color: #fcc;
 }
-
-.toggle-bookmark a img,
-.timer-link a img {
-    height: 1em;
-    width: 1em;
-    border-style: none;
-}
-
diff --git a/share/static/images/star-empty.png b/share/static/images/star-empty.png
deleted file mode 100644
index 66e7eec11c..0000000000
Binary files a/share/static/images/star-empty.png and /dev/null differ
diff --git a/share/static/images/star-full.png b/share/static/images/star-full.png
deleted file mode 100644
index 34d06dd344..0000000000
Binary files a/share/static/images/star-full.png and /dev/null differ

commit c60962d032388f85b43080dc45782bde418b6676
Author: Blaine Motsinger <blaine at bestpractical.com>
Date:   Wed Oct 23 16:57:19 2019 -0500

    Add alt and title tooltips for new icons

diff --git a/lib/RT/Interface/Web/MenuBuilder.pm b/lib/RT/Interface/Web/MenuBuilder.pm
index b7bd326c1e..650768023a 100644
--- a/lib/RT/Interface/Web/MenuBuilder.pm
+++ b/lib/RT/Interface/Web/MenuBuilder.pm
@@ -669,7 +669,8 @@ sub BuildMainNav {
     }
 
     if ( $request_path =~ /^\/(?:index.html|$)/ ) {
-        $page->child( edit => raw_html => q[<a id="page-edit" class="menu-item" href="] . RT->Config->Get('WebPath') . q[/Prefs/MyRT.html"><span class="fas fa-cog" alt="] . loc('Edit') . q["></span></a>] );
+        my $alt = loc('Edit');
+        $page->child( edit => raw_html => q[<a id="page-edit" class="menu-item" href="] . RT->Config->Get('WebPath') . qq[/Prefs/MyRT.html"><span class="fas fa-cog" alt="$alt" data-toggle="tooltip" data-placement="top" data-original-title="$alt"></span></a>] );
     }
 
     # due to historical reasons of always having been in /Elements/Tabs
diff --git a/share/html/Elements/Dashboards b/share/html/Elements/Dashboards
index e81c38cd16..6632fa6723 100644
--- a/share/html/Elements/Dashboards
+++ b/share/html/Elements/Dashboards
@@ -45,10 +45,12 @@
 %# those contributions and any derivatives thereof.
 %#
 %# END BPS TAGGED BLOCK }}}
+% my $alt = loc('Edit');
+
 <&|/Widgets/TitleBox,
     title => loc('Dashboards'),
     title_href => RT->Config->Get('WebPath').'/Dashboards/index.html',
-    titleright_raw => q[<span class="fas fa-cog" alt="] . loc('Edit') . q["></span>],
+    titleright_raw => qq[<span class="fas fa-cog" alt="$alt" data-toggle="tooltip" data-placement="top" data-original-title="$alt"></span>],
     titleright_href => RT->Config->Get('WebPath').'/Dashboards/index.html',
 &>
 
diff --git a/share/html/Elements/QueueList b/share/html/Elements/QueueList
index 3e5b525b9e..cd87f6e96b 100644
--- a/share/html/Elements/QueueList
+++ b/share/html/Elements/QueueList
@@ -45,12 +45,14 @@
 %# those contributions and any derivatives thereof.
 %#
 %# END BPS TAGGED BLOCK }}}
+% my $alt = loc('Edit');
+
 <div class="ticket-overview">
 <&|/Widgets/TitleBox,
     title => loc("Queue list"),
     class => "fullwidth",
     bodyclass => "",
-    titleright_raw => q[<span class="fas fa-cog" alt="] . loc('Edit') . q["></span>],
+    titleright_raw => qq[<span class="fas fa-cog" alt="$alt" data-toggle="tooltip" data-placement="top" data-original-title="$alt"></span>],
     titleright_href => RT->Config->Get('WebPath').'/Prefs/QueueList.html',
 &>
 <& $comp,
diff --git a/share/html/Elements/ShowHistoryHeader b/share/html/Elements/ShowHistoryHeader
index 183cc7cc31..20eab102d4 100644
--- a/share/html/Elements/ShowHistoryHeader
+++ b/share/html/Elements/ShowHistoryHeader
@@ -95,7 +95,8 @@ if ( $ShowDisplayModes or $ShowTitle or $ScrollShowHistory ) {
     }
 
     # build the new link
-    my $titleright = q{<div class="btn-group dropdown"><a id="history-dropdown" href="#" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false"><span class="fas fa-cog"></span></a><ul class="dropdown-menu dropdown-menu-right">};
+    my $alt = loc('Edit');
+    my $titleright = qq{<div class="btn-group dropdown"><a id="history-dropdown" href="#" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false"><span class="fas fa-cog" alt="$alt" data-toggle="tooltip" data-placement="top" data-original-title="$alt"></span></a><ul class="dropdown-menu dropdown-menu-right">};
 
     # foreach of the elements, build a new <li>$element</li> and append to the output.
     foreach my $element ( @elements ) {
diff --git a/share/html/Elements/ShowSearch b/share/html/Elements/ShowSearch
index 160dce975b..e7bbd298fd 100644
--- a/share/html/Elements/ShowSearch
+++ b/share/html/Elements/ShowSearch
@@ -45,11 +45,13 @@
 %# those contributions and any derivatives thereof.
 %#
 %# END BPS TAGGED BLOCK }}}
+% my $alt = loc('Edit');
+
 <&|/Widgets/TitleBox,
     title => loc(RT::SavedSearch->EscapeDescription($search->Description), $ProcessedSearchArg->{'Rows'}),
     title_raw => $title_raw,
     title_href => $query_link_url.$QueryString,
-    titleright_raw => q[<span class="fas fa-cog" alt="] . loc('Edit') . q["></span>],
+    titleright_raw => qq[<span class="fas fa-cog" alt="$alt" data-toggle="tooltip" data-placement="top" data-original-title="$alt"></span>],
     titleright_href => $customize,
     hideable => $hideable,
     class => 'fullwidth' &>
diff --git a/share/html/Ticket/Display.html b/share/html/Ticket/Display.html
index cddbf7f64b..0814be31c6 100644
--- a/share/html/Ticket/Display.html
+++ b/share/html/Ticket/Display.html
@@ -66,10 +66,11 @@ my $initial_label = $HideUnsetFields ? $show_label : $hide_label;
 my $url = "?HideUnsetFields=" . ($HideUnsetFields ? 0 : 1) . ";id=$ARGS{id}";
 my $url_html = $m->interp->apply_escapes($url, 'h');
 
+my $alt = loc('Edit');
 my $titleright = qq{
 <div class="btn-group dropdown">
   <a id="metadata-dropdown" href="#" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
-    <span class="fas fa-cog" alt="} . loc('Edit') . qq{"></span>
+    <span class="fas fa-cog" alt="$alt" data-toggle="tooltip" data-placement="top" data-original-title="$alt"></span>
   </a>
   <ul class="dropdown-menu dropdown-menu-right">
     <li class="dropdown-item">
diff --git a/share/html/Ticket/Elements/Bookmark b/share/html/Ticket/Elements/Bookmark
index 0bef50fce2..7a91ebae01 100644
--- a/share/html/Ticket/Elements/Bookmark
+++ b/share/html/Ticket/Elements/Bookmark
@@ -65,9 +65,11 @@ $Toggle => 0
 % my $url = RT->Config->Get('WebPath') ."/Helpers/Toggle/TicketBookmark?id=". $id;
 <a href="<% $url %>" onclick="jQuery.get(<% $url |n,j %>, function(data){ jQuery('.toggle-bookmark-'+<% $id |n,j%>).replaceWith(data) }); return false;" >
 % if ( $is_bookmarked ) {
-<span class="fas fa-bookmark bookmark-selected" data-fa-transform="shrink-2 up-0.25" alt="<% loc('Remove Bookmark') %>"></span>
+% my $alt = loc('Remove Bookmark');
+<span class="fas fa-bookmark bookmark-selected" data-fa-transform="shrink-2 up-0.25" alt="<% $alt %>" data-toggle="tooltip" data-placement="top" data-original-title="<% $alt %>"></span>
 % } else {
-<span class="far fa-bookmark" style="color:black" alt="<% loc('Add Bookmark') %>"></span>
+% my $alt = loc('Add Bookmark');
+<span class="far fa-bookmark" style="color:black" alt="<% $alt %>" data-toggle="tooltip" data-placement="top" data-original-title="<% $alt %>"></span>
 % }
 </a>
 </span>
diff --git a/share/html/Ticket/Elements/PopupTimerLink b/share/html/Ticket/Elements/PopupTimerLink
index 6b7b57ebd6..d3d0862cd5 100644
--- a/share/html/Ticket/Elements/PopupTimerLink
+++ b/share/html/Ticket/Elements/PopupTimerLink
@@ -50,7 +50,8 @@ $id
 </%ARGS>
 <%INIT>
 my $url = RT->Config->Get('WebPath') . "/Helpers/TicketTimer?id=" . $id;
+my $alt = loc('Open Timer');
 </%INIT>
 <a href="<% $url %>" onclick="window.open(<% $url |n,j %>, '_blank', 'height=200,width=200'); return false;" >
-  <span class="far fa-clock" alt="<% loc('Open Timer') %>" title="<% loc('Open Timer') %>"></span>
+  <span class="far fa-clock" alt="<% $alt %>" data-toggle="tooltip" data-placement="top" data-original-title="<% $alt %>"></span>
 </a>
diff --git a/share/html/Ticket/Elements/ShowSummary b/share/html/Ticket/Elements/ShowSummary
index d68351c17b..2272beee09 100644
--- a/share/html/Ticket/Elements/ShowSummary
+++ b/share/html/Ticket/Elements/ShowSummary
@@ -86,8 +86,9 @@
         class => 'ticket-info-dates',
     &><& /Ticket/Elements/ShowDates, Ticket => $Ticket &></&>
 % $m->callback( %ARGS, CallbackName => 'AfterDates' );
+% my $alt = loc('Graph ticket links');
 % my (@extra);
-% push @extra, titleright_raw => '<a href="' . RT->Config->Get('WebPath') . '/Ticket/Graphs/index.html?id=' . $Ticket->id . '"><span class="fas fa-project-diagram" alt="' . loc('Graph ticket links') . '"></span></a>' unless RT->Config->Get('DisableGraphViz');
+% push @extra, titleright_raw => '<a href="' . RT->Config->Get('WebPath') . '/Ticket/Graphs/index.html?id=' . $Ticket->id . '"><span class="fas fa-project-diagram" alt="' . $alt . '" data-toggle="tooltip" data-placement="top" data-original-title="' . $alt . '"></span></a>' unless RT->Config->Get('DisableGraphViz');
 <& /Ticket/Elements/ShowAssets, Ticket => $Ticket &>
 % $m->callback( %ARGS, CallbackName => 'LinksExtra', extra => \@extra );
     <&| /Widgets/TitleBox, title => loc('Links'),
diff --git a/share/html/Ticket/ModifyLinks.html b/share/html/Ticket/ModifyLinks.html
index 5690ccee6d..77e4675996 100644
--- a/share/html/Ticket/ModifyLinks.html
+++ b/share/html/Ticket/ModifyLinks.html
@@ -54,8 +54,9 @@
 <form action="ModifyLinks.html" name="ModifyLinks" method="post">
 <input type="hidden" class="hidden" name="id" value="<%$Ticket->id%>" />
 % $m->callback( CallbackName => 'FormStart', ARGSRef => \%ARGS );
+% my $alt = loc('Graph ticket links');
 % my (@extra);
-% push @extra, titleright_raw => '<a href="' . RT->Config->Get('WebPath') . '/Ticket/Graphs/index.html?id=' . $Ticket->id . '"><span class="fas fa-project-diagram" alt="' . loc('Graph ticket links') . '"></span></a>' unless RT->Config->Get('DisableGraphViz');
+% push @extra, titleright_raw => '<a href="' . RT->Config->Get('WebPath') . '/Ticket/Graphs/index.html?id=' . $Ticket->id . '"><span class="fas fa-project-diagram" alt="' . $alt . '" data-toggle="tooltip" data-placement="top" data-original-title="' .  $alt . '"></span></a>' unless RT->Config->Get('DisableGraphViz');
 <&| /Widgets/TitleBox, title => loc('Edit Links'), class=>'ticket-info-links', @extra &>
 <& /Elements/EditLinks, Object => $Ticket &>
 </&>

commit 4aaf382339928e46f8bf773e583aaafb4ab82512
Author: Blaine Motsinger <blaine at bestpractical.com>
Date:   Wed Oct 23 18:18:00 2019 -0500

    Enable bootstrap tooltips
    
    For the tooltip event, bootstrap adds a div with a unique id and
    modifies the svg with an aria-describedby attribute referencing that
    id.  When the user leaves the tooltip event, the div is removed as
    well as the attribute.  Since we're replacing the bookmark link and
    image when the user toggles the bookmark, the aria-describedby
    attribute is removed but bootstrap's div is left over, no longer
    associated with any svg.
    
    To ensure the tooltips are cycled correctly, we run the tooltip
    hide then dispose methods for any tooltip divs before replacing
    the bookmark links.

diff --git a/share/html/Ticket/Elements/Bookmark b/share/html/Ticket/Elements/Bookmark
index 7a91ebae01..ea1354468f 100644
--- a/share/html/Ticket/Elements/Bookmark
+++ b/share/html/Ticket/Elements/Bookmark
@@ -63,7 +63,7 @@ $Toggle => 0
 </%ARGS>
 <span class="toggle-bookmark toggle-bookmark-<% $id %>">
 % my $url = RT->Config->Get('WebPath') ."/Helpers/Toggle/TicketBookmark?id=". $id;
-<a href="<% $url %>" onclick="jQuery.get(<% $url |n,j %>, function(data){ jQuery('.toggle-bookmark-'+<% $id |n,j%>).replaceWith(data) }); return false;" >
+<a href="<% $url %>" onclick="toggle_bookmark(<% $url |n,j %>, <% $id |n,j%>); return false;" >
 % if ( $is_bookmarked ) {
 % my $alt = loc('Remove Bookmark');
 <span class="fas fa-bookmark bookmark-selected" data-fa-transform="shrink-2 up-0.25" alt="<% $alt %>" data-toggle="tooltip" data-placement="top" data-original-title="<% $alt %>"></span>
diff --git a/share/static/js/util.js b/share/static/js/util.js
index 8567442117..26619dfbf0 100644
--- a/share/static/js/util.js
+++ b/share/static/js/util.js
@@ -598,3 +598,23 @@ function toggle_hide_unset(e) {
 
     return false;
 }
+
+// enable bootstrap tooltips
+jQuery(function() {
+    jQuery("body").tooltip({
+        selector: '[data-toggle=tooltip]',
+        trigger: 'hover focus'
+    });
+});
+
+// toggle bookmark for Ticket/Elements/Bookmark.
+// before replacing the bookmark content, hide then dispose of the existing tooltip to
+// ensure the tooltips are cycled correctly.
+function toggle_bookmark(url, id) {
+    jQuery.get(url, function(data) {
+        var bs_tooltip = jQuery('div[id^="tooltip"]');
+        bs_tooltip.tooltip('hide');
+        bs_tooltip.tooltip('dispose');
+        jQuery('.toggle-bookmark-' + id).replaceWith(data);
+    });
+}

commit f7ecbce565c039cdb98777ddd3736ab1ec5d0b89
Author: Blaine Motsinger <blaine at bestpractical.com>
Date:   Thu Oct 24 11:52:41 2019 -0500

    Add border styling for icons

diff --git a/share/html/Elements/Dashboards b/share/html/Elements/Dashboards
index 6632fa6723..4112f76563 100644
--- a/share/html/Elements/Dashboards
+++ b/share/html/Elements/Dashboards
@@ -50,7 +50,7 @@
 <&|/Widgets/TitleBox,
     title => loc('Dashboards'),
     title_href => RT->Config->Get('WebPath').'/Dashboards/index.html',
-    titleright_raw => qq[<span class="fas fa-cog" alt="$alt" data-toggle="tooltip" data-placement="top" data-original-title="$alt"></span>],
+    titleright_raw => qq[<span class="fas fa-cog icon-bordered fa-2x" alt="$alt" data-toggle="tooltip" data-placement="top" data-original-title="$alt"></span>],
     titleright_href => RT->Config->Get('WebPath').'/Dashboards/index.html',
 &>
 
diff --git a/share/html/Elements/QueueList b/share/html/Elements/QueueList
index cd87f6e96b..c81da0189b 100644
--- a/share/html/Elements/QueueList
+++ b/share/html/Elements/QueueList
@@ -52,7 +52,7 @@
     title => loc("Queue list"),
     class => "fullwidth",
     bodyclass => "",
-    titleright_raw => qq[<span class="fas fa-cog" alt="$alt" data-toggle="tooltip" data-placement="top" data-original-title="$alt"></span>],
+    titleright_raw => qq[<span class="fas fa-cog icon-bordered fa-2x" alt="$alt" data-toggle="tooltip" data-placement="top" data-original-title="$alt"></span>],
     titleright_href => RT->Config->Get('WebPath').'/Prefs/QueueList.html',
 &>
 <& $comp,
diff --git a/share/html/Elements/ShowHistoryHeader b/share/html/Elements/ShowHistoryHeader
index 20eab102d4..c12fce532e 100644
--- a/share/html/Elements/ShowHistoryHeader
+++ b/share/html/Elements/ShowHistoryHeader
@@ -96,7 +96,7 @@ if ( $ShowDisplayModes or $ShowTitle or $ScrollShowHistory ) {
 
     # build the new link
     my $alt = loc('Edit');
-    my $titleright = qq{<div class="btn-group dropdown"><a id="history-dropdown" href="#" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false"><span class="fas fa-cog" alt="$alt" data-toggle="tooltip" data-placement="top" data-original-title="$alt"></span></a><ul class="dropdown-menu dropdown-menu-right">};
+    my $titleright = qq{<div class="btn-group dropdown"><a id="history-dropdown" href="#" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false"><span class="fas fa-cog icon-bordered fa-2x" alt="$alt" data-toggle="tooltip" data-placement="top" data-original-title="$alt"></span></a><ul class="dropdown-menu dropdown-menu-right">};
 
     # foreach of the elements, build a new <li>$element</li> and append to the output.
     foreach my $element ( @elements ) {
diff --git a/share/html/Elements/ShowSearch b/share/html/Elements/ShowSearch
index e7bbd298fd..c541237458 100644
--- a/share/html/Elements/ShowSearch
+++ b/share/html/Elements/ShowSearch
@@ -51,7 +51,7 @@
     title => loc(RT::SavedSearch->EscapeDescription($search->Description), $ProcessedSearchArg->{'Rows'}),
     title_raw => $title_raw,
     title_href => $query_link_url.$QueryString,
-    titleright_raw => qq[<span class="fas fa-cog" alt="$alt" data-toggle="tooltip" data-placement="top" data-original-title="$alt"></span>],
+    titleright_raw => qq[<span class="fas fa-cog icon-bordered fa-2x" alt="$alt" data-toggle="tooltip" data-placement="top" data-original-title="$alt"></span>],
     titleright_href => $customize,
     hideable => $hideable,
     class => 'fullwidth' &>
diff --git a/share/html/Ticket/Display.html b/share/html/Ticket/Display.html
index 0814be31c6..a51fcb6823 100644
--- a/share/html/Ticket/Display.html
+++ b/share/html/Ticket/Display.html
@@ -70,7 +70,7 @@ my $alt = loc('Edit');
 my $titleright = qq{
 <div class="btn-group dropdown">
   <a id="metadata-dropdown" href="#" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
-    <span class="fas fa-cog" alt="$alt" data-toggle="tooltip" data-placement="top" data-original-title="$alt"></span>
+    <span class="fas fa-cog icon-bordered fa-2x" alt="$alt" data-toggle="tooltip" data-placement="top" data-original-title="$alt"></span>
   </a>
   <ul class="dropdown-menu dropdown-menu-right">
     <li class="dropdown-item">
diff --git a/share/html/Ticket/Elements/ShowSummary b/share/html/Ticket/Elements/ShowSummary
index 2272beee09..312f02b3c6 100644
--- a/share/html/Ticket/Elements/ShowSummary
+++ b/share/html/Ticket/Elements/ShowSummary
@@ -88,7 +88,7 @@
 % $m->callback( %ARGS, CallbackName => 'AfterDates' );
 % my $alt = loc('Graph ticket links');
 % my (@extra);
-% push @extra, titleright_raw => '<a href="' . RT->Config->Get('WebPath') . '/Ticket/Graphs/index.html?id=' . $Ticket->id . '"><span class="fas fa-project-diagram" alt="' . $alt . '" data-toggle="tooltip" data-placement="top" data-original-title="' . $alt . '"></span></a>' unless RT->Config->Get('DisableGraphViz');
+% push @extra, titleright_raw => '<a href="' . RT->Config->Get('WebPath') . '/Ticket/Graphs/index.html?id=' . $Ticket->id . '"><span class="fas fa-project-diagram icon-bordered fa-2x" alt="' . $alt . '" data-toggle="tooltip" data-placement="top" data-original-title="' . $alt . '"></span></a>' unless RT->Config->Get('DisableGraphViz');
 <& /Ticket/Elements/ShowAssets, Ticket => $Ticket &>
 % $m->callback( %ARGS, CallbackName => 'LinksExtra', extra => \@extra );
     <&| /Widgets/TitleBox, title => loc('Links'),
diff --git a/share/html/Ticket/ModifyLinks.html b/share/html/Ticket/ModifyLinks.html
index 77e4675996..4361deeaa5 100644
--- a/share/html/Ticket/ModifyLinks.html
+++ b/share/html/Ticket/ModifyLinks.html
@@ -56,7 +56,7 @@
 % $m->callback( CallbackName => 'FormStart', ARGSRef => \%ARGS );
 % my $alt = loc('Graph ticket links');
 % my (@extra);
-% push @extra, titleright_raw => '<a href="' . RT->Config->Get('WebPath') . '/Ticket/Graphs/index.html?id=' . $Ticket->id . '"><span class="fas fa-project-diagram" alt="' . $alt . '" data-toggle="tooltip" data-placement="top" data-original-title="' .  $alt . '"></span></a>' unless RT->Config->Get('DisableGraphViz');
+% push @extra, titleright_raw => '<a href="' . RT->Config->Get('WebPath') . '/Ticket/Graphs/index.html?id=' . $Ticket->id . '"><span class="fas fa-project-diagram icon-bordered fa-2x" alt="' . $alt . '" data-toggle="tooltip" data-placement="top" data-original-title="' .  $alt . '"></span></a>' unless RT->Config->Get('DisableGraphViz');
 <&| /Widgets/TitleBox, title => loc('Edit Links'), class=>'ticket-info-links', @extra &>
 <& /Elements/EditLinks, Object => $Ticket &>
 </&>
diff --git a/share/static/css/elevator-light/misc.css b/share/static/css/elevator-light/misc.css
index f38617554e..61e63dfca4 100644
--- a/share/static/css/elevator-light/misc.css
+++ b/share/static/css/elevator-light/misc.css
@@ -120,3 +120,12 @@ svg.bookmark-selected path {
     stroke-width: 50;
     fill: #46B346;
 }
+
+/* borders for cog icons */
+svg.icon-bordered {
+    width: 1em !important;
+    height: 1em !important;
+    border: solid 0.05em #eee;
+    border-radius: 0.1em;
+    padding: 0.2em 0.25em 0.15em;
+}

commit 112cd737d92bc9bd631a9e5bbeafc2e1a5370965
Author: Blaine Motsinger <blaine at bestpractical.com>
Date:   Mon Oct 28 17:04:08 2019 -0500

    Update test for removing bookmark imgs

diff --git a/t/security/CVE-2012-4732-csrf-blacklist.t b/t/security/CVE-2012-4732-csrf-blacklist.t
index 43652e4d8a..96a7987d5e 100644
--- a/t/security/CVE-2012-4732-csrf-blacklist.t
+++ b/t/security/CVE-2012-4732-csrf-blacklist.t
@@ -18,7 +18,7 @@ ok $m->login, 'logged in';
 $m->add_header(Referer => $baseurl);
 $m->get_ok($test_page);
 $m->content_lacks("Possible cross-site request forgery");
-$m->content_contains("star-full.png");
+$m->content_contains("fas fa-bookmark bookmark-selected");
 
 # come from an external source
 $m->add_header(Referer => 'http://example.com');
@@ -36,6 +36,6 @@ $m->title_is('Possible cross-site request forgery');
 $m->follow_link(text_regex => qr{resume your request});
 $m->content_lacks("Possible cross-site request forgery");
 like($m->response->request->uri, qr{^http://[^/]+\Q$test_path\E\?CSRF_Token=\w+$});
-$m->content_contains("star-empty.png");
+$m->content_contains("far fa-bookmark");
 
 done_testing;

commit d453a754712218bda6c3928fe55b6f3bd8565e21
Author: Blaine Motsinger <blaine at bestpractical.com>
Date:   Mon Oct 28 18:12:20 2019 -0500

    Fix test to find link via regex instead of text
    
    Since updating to fontawesome icons this test was finding more
    links via Text Edit than just the groups edit link.  This update
    makes the test more specifically check for the link URL so it no
    longer finds more than one.

diff --git a/t/web/requestor_groups_edit_link.t b/t/web/requestor_groups_edit_link.t
index cf67311ebb..e778483c55 100644
--- a/t/web/requestor_groups_edit_link.t
+++ b/t/web/requestor_groups_edit_link.t
@@ -30,13 +30,14 @@ my ($id) = $ticket->Create(
 );
 ok( $id, 'created ticket' );
 
+my $url_regex = qr{\/Admin\/Users\/Memberships\.html};
 
 ok( $m->login( user_a => 'password' ), 'logged in as user_a' );
 
 $m->goto_ticket($id);
 
 ok(
-    !$m->find_link( text => 'Edit' ), 'no Edit link without AdminUsers permission'
+    !$m->find_link( url_regex => $url_regex ), 'no Edit link without AdminUsers permission'
 );
 
 ok(
@@ -50,6 +51,6 @@ ok(
 );
 
 $m->goto_ticket($id);
-$m->follow_link_ok( { text => 'Edit' }, 'follow the Edit link' );
+$m->follow_link_ok( { url_regex => $url_regex }, 'follow the Edit link' );
 is( $m->uri, $url . "/Admin/Users/Memberships.html?id=" . $user_a->id, 'url is right' );
 

-----------------------------------------------------------------------


More information about the rt-commit mailing list