(()=>{var e,t={885:(e,t,r)=>{"use strict";var o=r(4994);t.A=void 0;var n=o(r(2032)),a=r(4848);t.A=(0,n.default)((0,a.jsx)("path",{d:"m7 10 5 5 5-5z"}),"ArrowDropDown")},2032:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"default",{enumerable:!0,get:function(){return o.createSvgIcon}});var o=r(2913)},2913:(e,t,r)=>{"use strict";r.r(t),r.d(t,{capitalize:()=>n,createChainedFunction:()=>a,createSvgIcon:()=>te,debounce:()=>re,deprecatedPropType:()=>oe,isMuiElement:()=>ne,ownerDocument:()=>ie,ownerWindow:()=>le,requirePropFactory:()=>ue,setRef:()=>se,unstable_ClassNameGenerator:()=>Me,unstable_useEnhancedEffect:()=>de,unstable_useId:()=>pe,unsupportedProp:()=>me,useControlled:()=>fe,useEventCallback:()=>he,useForkRef:()=>ge,useIsFocusVisible:()=>ye});var o=r(9071);const n=r(3967).A,a=function(...e){return e.reduce(((e,t)=>null==t?e:function(...r){e.apply(this,r),t.apply(this,r)}),(()=>{}))};var i=r(8168),l=r(1609),u=r(8587),s=r(4164),c=r(5659);function d(e,t){const r=(0,i.A)({},t);return Object.keys(e).forEach((o=>{if(o.toString().match(/^(components|slots)$/))r[o]=(0,i.A)({},e[o],r[o]);else if(o.toString().match(/^(componentsProps|slotProps)$/)){const n=e[o]||{},a=t[o];r[o]={},a&&Object.keys(a)?n&&Object.keys(n)?(r[o]=(0,i.A)({},a),Object.keys(n).forEach((e=>{r[o][e]=d(n[e],a[e])}))):r[o]=a:r[o]=n}else void 0===r[o]&&(r[o]=e[o])})),r}var p=r(4848);const m=l.createContext(void 0);var f=r(6461),h=r(9453),g=r(1317),y=r(4188),M=r(3571),v=r(8749),w=r(771);const b={black:"#000",white:"#fff"},A={50:"#fafafa",100:"#f5f5f5",200:"#eeeeee",300:"#e0e0e0",400:"#bdbdbd",500:"#9e9e9e",600:"#757575",700:"#616161",800:"#424242",900:"#212121",A100:"#f5f5f5",A200:"#eeeeee",A400:"#bdbdbd",A700:"#616161"},C={50:"#f3e5f5",100:"#e1bee7",200:"#ce93d8",300:"#ba68c8",400:"#ab47bc",500:"#9c27b0",600:"#8e24aa",700:"#7b1fa2",800:"#6a1b9a",900:"#4a148c",A100:"#ea80fc",A200:"#e040fb",A400:"#d500f9",A700:"#aa00ff"},L={50:"#ffebee",100:"#ffcdd2",200:"#ef9a9a",300:"#e57373",400:"#ef5350",500:"#f44336",600:"#e53935",700:"#d32f2f",800:"#c62828",900:"#b71c1c",A100:"#ff8a80",A200:"#ff5252",A400:"#ff1744",A700:"#d50000"},x={50:"#fff3e0",100:"#ffe0b2",200:"#ffcc80",300:"#ffb74d",400:"#ffa726",500:"#ff9800",600:"#fb8c00",700:"#f57c00",800:"#ef6c00",900:"#e65100",A100:"#ffd180",A200:"#ffab40",A400:"#ff9100",A700:"#ff6d00"},I={50:"#e3f2fd",100:"#bbdefb",200:"#90caf9",300:"#64b5f6",400:"#42a5f5",500:"#2196f3",600:"#1e88e5",700:"#1976d2",800:"#1565c0",900:"#0d47a1",A100:"#82b1ff",A200:"#448aff",A400:"#2979ff",A700:"#2962ff"},O={50:"#e1f5fe",100:"#b3e5fc",200:"#81d4fa",300:"#4fc3f7",400:"#29b6f6",500:"#03a9f4",600:"#039be5",700:"#0288d1",800:"#0277bd",900:"#01579b",A100:"#80d8ff",A200:"#40c4ff",A400:"#00b0ff",A700:"#0091ea"},S={50:"#e8f5e9",100:"#c8e6c9",200:"#a5d6a7",300:"#81c784",400:"#66bb6a",500:"#4caf50",600:"#43a047",700:"#388e3c",800:"#2e7d32",900:"#1b5e20",A100:"#b9f6ca",A200:"#69f0ae",A400:"#00e676",A700:"#00c853"},G=["mode","contrastThreshold","tonalOffset"],N={text:{primary:"rgba(0, 0, 0, 0.87)",secondary:"rgba(0, 0, 0, 0.6)",disabled:"rgba(0, 0, 0, 0.38)"},divider:"rgba(0, 0, 0, 0.12)",background:{paper:b.white,default:b.white},action:{active:"rgba(0, 0, 0, 0.54)",hover:"rgba(0, 0, 0, 0.04)",hoverOpacity:.04,selected:"rgba(0, 0, 0, 0.08)",selectedOpacity:.08,disabled:"rgba(0, 0, 0, 0.26)",disabledBackground:"rgba(0, 0, 0, 0.12)",disabledOpacity:.38,focus:"rgba(0, 0, 0, 0.12)",focusOpacity:.12,activatedOpacity:.12}},_={text:{primary:b.white,secondary:"rgba(255, 255, 255, 0.7)",disabled:"rgba(255, 255, 255, 0.5)",icon:"rgba(255, 255, 255, 0.5)"},divider:"rgba(255, 255, 255, 0.12)",background:{paper:"#121212",default:"#121212"},action:{active:b.white,hover:"rgba(255, 255, 255, 0.08)",hoverOpacity:.08,selected:"rgba(255, 255, 255, 0.16)",selectedOpacity:.16,disabled:"rgba(255, 255, 255, 0.3)",disabledBackground:"rgba(255, 255, 255, 0.12)",disabledOpacity:.38,focus:"rgba(255, 255, 255, 0.12)",focusOpacity:.12,activatedOpacity:.24}};function k(e,t,r,o){const n=o.light||o,a=o.dark||1.5*o;e[t]||(e.hasOwnProperty(r)?e[t]=e[r]:"light"===t?e.light=(0,w.a)(e.main,n):"dark"===t&&(e.dark=(0,w.e$)(e.main,a)))}const P=["fontFamily","fontSize","fontWeightLight","fontWeightRegular","fontWeightMedium","fontWeightBold","htmlFontSize","allVariants","pxToRem"],E={textTransform:"uppercase"},T='"Roboto", "Helvetica", "Arial", sans-serif';function R(e,t){const r="function"==typeof t?t(e):t,{fontFamily:o=T,fontSize:n=14,fontWeightLight:a=300,fontWeightRegular:l=400,fontWeightMedium:s=500,fontWeightBold:c=700,htmlFontSize:d=16,allVariants:p,pxToRem:m}=r,f=(0,u.A)(r,P),h=n/14,y=m||(e=>e/d*h+"rem"),M=(e,t,r,n,a)=>{return(0,i.A)({fontFamily:o,fontWeight:e,fontSize:y(t),lineHeight:r},o===T?{letterSpacing:(l=n/t,Math.round(1e5*l)/1e5+"em")}:{},a,p);var l},v={h1:M(a,96,1.167,-1.5),h2:M(a,60,1.2,-.5),h3:M(l,48,1.167,0),h4:M(l,34,1.235,.25),h5:M(l,24,1.334,0),h6:M(s,20,1.6,.15),subtitle1:M(l,16,1.75,.15),subtitle2:M(s,14,1.57,.1),body1:M(l,16,1.5,.15),body2:M(l,14,1.43,.15),button:M(s,14,1.75,.4,E),caption:M(l,12,1.66,.4),overline:M(l,12,2.66,1,E),inherit:{fontFamily:"inherit",fontWeight:"inherit",fontSize:"inherit",lineHeight:"inherit",letterSpacing:"inherit"}};return(0,g.A)((0,i.A)({htmlFontSize:d,pxToRem:y,fontFamily:o,fontSize:n,fontWeightLight:a,fontWeightRegular:l,fontWeightMedium:s,fontWeightBold:c},v),f,{clone:!1})}function U(...e){return[`${e[0]}px ${e[1]}px ${e[2]}px ${e[3]}px rgba(0,0,0,0.2)`,`${e[4]}px ${e[5]}px ${e[6]}px ${e[7]}px rgba(0,0,0,0.14)`,`${e[8]}px ${e[9]}px ${e[10]}px ${e[11]}px rgba(0,0,0,0.12)`].join(",")}const B=["none",U(0,2,1,-1,0,1,1,0,0,1,3,0),U(0,3,1,-2,0,2,2,0,0,1,5,0),U(0,3,3,-2,0,3,4,0,0,1,8,0),U(0,2,4,-1,0,4,5,0,0,1,10,0),U(0,3,5,-1,0,5,8,0,0,1,14,0),U(0,3,5,-1,0,6,10,0,0,1,18,0),U(0,4,5,-2,0,7,10,1,0,2,16,1),U(0,5,5,-3,0,8,10,1,0,3,14,2),U(0,5,6,-3,0,9,12,1,0,3,16,2),U(0,6,6,-3,0,10,14,1,0,4,18,3),U(0,6,7,-4,0,11,15,1,0,4,20,3),U(0,7,8,-4,0,12,17,2,0,5,22,4),U(0,7,8,-4,0,13,19,2,0,5,24,4),U(0,7,9,-4,0,14,21,2,0,5,26,4),U(0,8,9,-5,0,15,22,2,0,6,28,5),U(0,8,10,-5,0,16,24,2,0,6,30,5),U(0,8,11,-5,0,17,26,2,0,6,32,5),U(0,9,11,-5,0,18,28,2,0,7,34,6),U(0,9,12,-6,0,19,29,2,0,7,36,6),U(0,10,13,-6,0,20,31,3,0,8,38,7),U(0,10,13,-6,0,21,33,3,0,8,40,7),U(0,10,14,-6,0,22,35,3,0,8,42,7),U(0,11,14,-7,0,23,36,3,0,9,44,8),U(0,11,15,-7,0,24,38,3,0,9,46,8)],$=["duration","easing","delay"],D={easeInOut:"cubic-bezier(0.4, 0, 0.2, 1)",easeOut:"cubic-bezier(0.0, 0, 0.2, 1)",easeIn:"cubic-bezier(0.4, 0, 1, 1)",sharp:"cubic-bezier(0.4, 0, 0.6, 1)"},W={shortest:150,shorter:200,short:250,standard:300,complex:375,enteringScreen:225,leavingScreen:195};function H(e){return`${Math.round(e)}ms`}function F(e){if(!e)return 0;const t=e/36;return Math.round(10*(4+15*t**.25+t/5))}function V(e){const t=(0,i.A)({},D,e.easing),r=(0,i.A)({},W,e.duration);return(0,i.A)({getAutoHeightDuration:F,create:(e=["all"],o={})=>{const{duration:n=r.standard,easing:a=t.easeInOut,delay:i=0}=o;return(0,u.A)(o,$),(Array.isArray(e)?e:[e]).map((e=>`${e} ${"string"==typeof n?n:H(n)} ${a} ${"string"==typeof i?i:H(i)}`)).join(",")}},e,{easing:t,duration:r})}const j={mobileStepper:1e3,fab:1050,speedDial:1050,appBar:1100,drawer:1200,modal:1300,snackbar:1400,tooltip:1500},K=["breakpoints","mixins","spacing","palette","transitions","typography","shape"];const z=function(e={},...t){const{mixins:r={},palette:o={},transitions:n={},typography:a={}}=e,l=(0,u.A)(e,K);if(e.vars)throw new Error((0,h.A)(18));const s=function(e){const{mode:t="light",contrastThreshold:r=3,tonalOffset:o=.2}=e,n=(0,u.A)(e,G),a=e.primary||function(e="light"){return"dark"===e?{main:I[200],light:I[50],dark:I[400]}:{main:I[700],light:I[400],dark:I[800]}}(t),l=e.secondary||function(e="light"){return"dark"===e?{main:C[200],light:C[50],dark:C[400]}:{main:C[500],light:C[300],dark:C[700]}}(t),s=e.error||function(e="light"){return"dark"===e?{main:L[500],light:L[300],dark:L[700]}:{main:L[700],light:L[400],dark:L[800]}}(t),c=e.info||function(e="light"){return"dark"===e?{main:O[400],light:O[300],dark:O[700]}:{main:O[700],light:O[500],dark:O[900]}}(t),d=e.success||function(e="light"){return"dark"===e?{main:S[400],light:S[300],dark:S[700]}:{main:S[800],light:S[500],dark:S[900]}}(t),p=e.warning||function(e="light"){return"dark"===e?{main:x[400],light:x[300],dark:x[700]}:{main:"#ed6c02",light:x[500],dark:x[900]}}(t);function m(e){return(0,w.eM)(e,_.text.primary)>=r?_.text.primary:N.text.primary}const f=({color:e,name:t,mainShade:r=500,lightShade:n=300,darkShade:a=700})=>{if(!(e=(0,i.A)({},e)).main&&e[r]&&(e.main=e[r]),!e.hasOwnProperty("main"))throw new Error((0,h.A)(11,t?` (${t})`:"",r));if("string"!=typeof e.main)throw new Error((0,h.A)(12,t?` (${t})`:"",JSON.stringify(e.main)));return k(e,"light",n,o),k(e,"dark",a,o),e.contrastText||(e.contrastText=m(e.main)),e},y={dark:_,light:N};return(0,g.A)((0,i.A)({common:(0,i.A)({},b),mode:t,primary:f({color:a,name:"primary"}),secondary:f({color:l,name:"secondary",mainShade:"A400",lightShade:"A200",darkShade:"A700"}),error:f({color:s,name:"error"}),warning:f({color:p,name:"warning"}),info:f({color:c,name:"info"}),success:f({color:d,name:"success"}),grey:A,contrastThreshold:r,getContrastText:m,augmentColor:f,tonalOffset:o},y[t]),n)}(o),c=(0,v.A)(e);let d=(0,g.A)(c,{mixins:(p=c.breakpoints,m=r,(0,i.A)({toolbar:{minHeight:56,[p.up("xs")]:{"@media (orientation: landscape)":{minHeight:48}},[p.up("sm")]:{minHeight:64}}},m)),palette:s,shadows:B.slice(),typography:R(s,a),transitions:V(n),zIndex:(0,i.A)({},j)});var p,m;return d=(0,g.A)(d,l),d=t.reduce(((e,t)=>(0,g.A)(e,t)),d),d.unstable_sxConfig=(0,i.A)({},y.A,null==l?void 0:l.unstable_sxConfig),d.unstable_sx=function(e){return(0,M.A)({sx:e,theme:this})},d}(),Y=(0,f.Ay)({themeId:"$$material",defaultTheme:z,rootShouldForwardProp:e=>function(e){return"ownerState"!==e&&"theme"!==e&&"sx"!==e&&"as"!==e}(e)&&"classes"!==e});var X=r(3990);function q(e){return(0,X.Ay)("MuiSvgIcon",e)}!function(e,t,r="Mui"){const o={};["root","colorPrimary","colorSecondary","colorAction","colorError","colorDisabled","fontSizeInherit","fontSizeSmall","fontSizeMedium","fontSizeLarge"].forEach((t=>{o[t]=(0,X.Ay)(e,t,r)}))}("MuiSvgIcon");const J=["children","className","color","component","fontSize","htmlColor","inheritViewBox","titleAccess","viewBox"],Z=Y("svg",{name:"MuiSvgIcon",slot:"Root",overridesResolver:(e,t)=>{const{ownerState:r}=e;return[t.root,"inherit"!==r.color&&t[`color${n(r.color)}`],t[`fontSize${n(r.fontSize)}`]]}})((({theme:e,ownerState:t})=>{var r,o,n,a,i,l,u,s,c,d,p,m,f;return{userSelect:"none",width:"1em",height:"1em",display:"inline-block",fill:t.hasSvgAsChild?void 0:"currentColor",flexShrink:0,transition:null==(r=e.transitions)||null==(o=r.create)?void 0:o.call(r,"fill",{duration:null==(n=e.transitions)||null==(n=n.duration)?void 0:n.shorter}),fontSize:{inherit:"inherit",small:(null==(a=e.typography)||null==(i=a.pxToRem)?void 0:i.call(a,20))||"1.25rem",medium:(null==(l=e.typography)||null==(u=l.pxToRem)?void 0:u.call(l,24))||"1.5rem",large:(null==(s=e.typography)||null==(c=s.pxToRem)?void 0:c.call(s,35))||"2.1875rem"}[t.fontSize],color:null!=(d=null==(p=(e.vars||e).palette)||null==(p=p[t.color])?void 0:p.main)?d:{action:null==(m=(e.vars||e).palette)||null==(m=m.action)?void 0:m.active,disabled:null==(f=(e.vars||e).palette)||null==(f=f.action)?void 0:f.disabled,inherit:void 0}[t.color]}})),Q=l.forwardRef((function(e,t){const r=function({props:e,name:t}){return function(e){const{theme:t,name:r,props:o}=e;if(!t||!t.components||!t.components[r])return o;const n=t.components[r];return n.defaultProps?d(n.defaultProps,o):n.styleOverrides||n.variants?o:d(n,o)}({props:e,name:t,theme:{components:l.useContext(m)}})}({props:e,name:"MuiSvgIcon"}),{children:o,className:a,color:f="inherit",component:h="svg",fontSize:g="medium",htmlColor:y,inheritViewBox:M=!1,titleAccess:v,viewBox:w="0 0 24 24"}=r,b=(0,u.A)(r,J),A=l.isValidElement(o)&&"svg"===o.type,C=(0,i.A)({},r,{color:f,component:h,fontSize:g,instanceFontSize:e.fontSize,inheritViewBox:M,viewBox:w,hasSvgAsChild:A}),L={};M||(L.viewBox=w);const x=(e=>{const{color:t,fontSize:r,classes:o}=e,a={root:["root","inherit"!==t&&`color${n(t)}`,`fontSize${n(r)}`]};return(0,c.A)(a,q,o)})(C);return(0,p.jsxs)(Z,(0,i.A)({as:h,className:(0,s.A)(x.root,a),focusable:"false",color:y,"aria-hidden":!v||void 0,role:v?"img":void 0,ref:t},L,b,A&&o.props,{ownerState:C,children:[A?o.props.children:o,v?(0,p.jsx)("title",{children:v}):null]}))}));Q.muiName="SvgIcon";const ee=Q;function te(e,t){function r(r,o){return(0,p.jsx)(ee,(0,i.A)({"data-testid":`${t}Icon`,ref:o},r,{children:e}))}return r.muiName=ee.muiName,l.memo(l.forwardRef(r))}const re=function(e,t=166){let r;function o(...o){clearTimeout(r),r=setTimeout((()=>{e.apply(this,o)}),t)}return o.clear=()=>{clearTimeout(r)},o},oe=function(e,t){return()=>null},ne=function(e,t){var r,o;return l.isValidElement(e)&&-1!==t.indexOf(null!=(r=e.type.muiName)?r:null==(o=e.type)||null==(o=o._payload)||null==(o=o.value)?void 0:o.muiName)};function ae(e){return e&&e.ownerDocument||document}const ie=ae,le=function(e){return ae(e).defaultView||window},ue=function(e,t){return()=>null},se=r(7365).A;var ce=r(1529);const de=ce.A,pe=r(4661).A,me=function(e,t,r,o,n){return null},fe=function({controlled:e,default:t,name:r,state:o="value"}){const{current:n}=l.useRef(void 0!==e),[a,i]=l.useState(t);return[n?e:a,l.useCallback((e=>{n||i(e)}),[])]},he=function(e){const t=l.useRef(e);return(0,ce.A)((()=>{t.current=e})),l.useRef(((...e)=>(0,t.current)(...e))).current},ge=r(1523).A,ye=r(6363).A,Me={configure:e=>{o.A.configure(e)}}},7587:(e,t,r)=>{"use strict";r.r(t),r.d(t,{GlobalStyles:()=>Fe,StyledEngineProvider:()=>He,ThemeContext:()=>Se,css:()=>Be,default:()=>Ve,internal_processStyles:()=>je,keyframes:()=>$e});var o=r(8168),n=r(1609);function a(e){var t=Object.create(null);return function(r){return void 0===t[r]&&(t[r]=e(r)),t[r]}}var i=/^((children|dangerouslySetInnerHTML|key|ref|autoFocus|defaultValue|defaultChecked|innerHTML|suppressContentEditableWarning|suppressHydrationWarning|valueLink|abbr|accept|acceptCharset|accessKey|action|allow|allowUserMedia|allowPaymentRequest|allowFullScreen|allowTransparency|alt|async|autoComplete|autoPlay|capture|cellPadding|cellSpacing|challenge|charSet|checked|cite|classID|className|cols|colSpan|content|contentEditable|contextMenu|controls|controlsList|coords|crossOrigin|data|dateTime|decoding|default|defer|dir|disabled|disablePictureInPicture|disableRemotePlayback|download|draggable|encType|enterKeyHint|form|formAction|formEncType|formMethod|formNoValidate|formTarget|frameBorder|headers|height|hidden|high|href|hrefLang|htmlFor|httpEquiv|id|inputMode|integrity|is|keyParams|keyType|kind|label|lang|list|loading|loop|low|marginHeight|marginWidth|max|maxLength|media|mediaGroup|method|min|minLength|multiple|muted|name|nonce|noValidate|open|optimum|pattern|placeholder|playsInline|poster|preload|profile|radioGroup|readOnly|referrerPolicy|rel|required|reversed|role|rows|rowSpan|sandbox|scope|scoped|scrolling|seamless|selected|shape|size|sizes|slot|span|spellCheck|src|srcDoc|srcLang|srcSet|start|step|style|summary|tabIndex|target|title|translate|type|useMap|value|width|wmode|wrap|about|datatype|inlist|prefix|property|resource|typeof|vocab|autoCapitalize|autoCorrect|autoSave|color|incremental|fallback|inert|itemProp|itemScope|itemType|itemID|itemRef|on|option|results|security|unselectable|accentHeight|accumulate|additive|alignmentBaseline|allowReorder|alphabetic|amplitude|arabicForm|ascent|attributeName|attributeType|autoReverse|azimuth|baseFrequency|baselineShift|baseProfile|bbox|begin|bias|by|calcMode|capHeight|clip|clipPathUnits|clipPath|clipRule|colorInterpolation|colorInterpolationFilters|colorProfile|colorRendering|contentScriptType|contentStyleType|cursor|cx|cy|d|decelerate|descent|diffuseConstant|direction|display|divisor|dominantBaseline|dur|dx|dy|edgeMode|elevation|enableBackground|end|exponent|externalResourcesRequired|fill|fillOpacity|fillRule|filter|filterRes|filterUnits|floodColor|floodOpacity|focusable|fontFamily|fontSize|fontSizeAdjust|fontStretch|fontStyle|fontVariant|fontWeight|format|from|fr|fx|fy|g1|g2|glyphName|glyphOrientationHorizontal|glyphOrientationVertical|glyphRef|gradientTransform|gradientUnits|hanging|horizAdvX|horizOriginX|ideographic|imageRendering|in|in2|intercept|k|k1|k2|k3|k4|kernelMatrix|kernelUnitLength|kerning|keyPoints|keySplines|keyTimes|lengthAdjust|letterSpacing|lightingColor|limitingConeAngle|local|markerEnd|markerMid|markerStart|markerHeight|markerUnits|markerWidth|mask|maskContentUnits|maskUnits|mathematical|mode|numOctaves|offset|opacity|operator|order|orient|orientation|origin|overflow|overlinePosition|overlineThickness|panose1|paintOrder|pathLength|patternContentUnits|patternTransform|patternUnits|pointerEvents|points|pointsAtX|pointsAtY|pointsAtZ|preserveAlpha|preserveAspectRatio|primitiveUnits|r|radius|refX|refY|renderingIntent|repeatCount|repeatDur|requiredExtensions|requiredFeatures|restart|result|rotate|rx|ry|scale|seed|shapeRendering|slope|spacing|specularConstant|specularExponent|speed|spreadMethod|startOffset|stdDeviation|stemh|stemv|stitchTiles|stopColor|stopOpacity|strikethroughPosition|strikethroughThickness|string|stroke|strokeDasharray|strokeDashoffset|strokeLinecap|strokeLinejoin|strokeMiterlimit|strokeOpacity|strokeWidth|surfaceScale|systemLanguage|tableValues|targetX|targetY|textAnchor|textDecoration|textRendering|textLength|to|transform|u1|u2|underlinePosition|underlineThickness|unicode|unicodeBidi|unicodeRange|unitsPerEm|vAlphabetic|vHanging|vIdeographic|vMathematical|values|vectorEffect|version|vertAdvY|vertOriginX|vertOriginY|viewBox|viewTarget|visibility|widths|wordSpacing|writingMode|x|xHeight|x1|x2|xChannelSelector|xlinkActuate|xlinkArcrole|xlinkHref|xlinkRole|xlinkShow|xlinkTitle|xlinkType|xmlBase|xmlns|xmlnsXlink|xmlLang|xmlSpace|y|y1|y2|yChannelSelector|z|zoomAndPan|for|class|autofocus)|(([Dd][Aa][Tt][Aa]|[Aa][Rr][Ii][Aa]|x)-.*))$/,l=a((function(e){return i.test(e)||111===e.charCodeAt(0)&&110===e.charCodeAt(1)&&e.charCodeAt(2)<91})),u=function(){function e(e){var t=this;this._insertTag=function(e){var r;r=0===t.tags.length?t.insertionPoint?t.insertionPoint.nextSibling:t.prepend?t.container.firstChild:t.before:t.tags[t.tags.length-1].nextSibling,t.container.insertBefore(e,r),t.tags.push(e)},this.isSpeedy=void 0===e.speedy||e.speedy,this.tags=[],this.ctr=0,this.nonce=e.nonce,this.key=e.key,this.container=e.container,this.prepend=e.prepend,this.insertionPoint=e.insertionPoint,this.before=null}var t=e.prototype;return t.hydrate=function(e){e.forEach(this._insertTag)},t.insert=function(e){this.ctr%(this.isSpeedy?65e3:1)==0&&this._insertTag(function(e){var t=document.createElement("style");return t.setAttribute("data-emotion",e.key),void 0!==e.nonce&&t.setAttribute("nonce",e.nonce),t.appendChild(document.createTextNode("")),t.setAttribute("data-s",""),t}(this));var t=this.tags[this.tags.length-1];if(this.isSpeedy){var r=function(e){if(e.sheet)return e.sheet;for(var t=0;t0?h(x,--C):0,b--,10===L&&(b=1,w--),L}function G(){return L=C2||P(L)>3?"":" "}function B(e,t){for(;--t&&G()&&!(L<48||L>102||L>57&&L<65||L>70&&L<97););return k(e,_()+(t<6&&32==N()&&32==G()))}function $(e){for(;G();)switch(L){case e:return C;case 34:case 39:34!==e&&39!==e&&$(L);break;case 40:41===e&&$(e);break;case 92:G()}return C}function D(e,t){for(;G()&&e+L!==57&&(e+L!==84||47!==N()););return"/*"+k(t,C-1)+"*"+c(47===e?e:G())}function W(e){for(;!P(N());)G();return k(e,C)}var H="-ms-",F="-moz-",V="-webkit-",j="comm",K="rule",z="decl",Y="@keyframes";function X(e,t){for(var r="",o=M(e),n=0;n0&&y(P)-p&&v(M>32?te(P+";",o,r,p-1):te(m(P," ","")+";",o,r,p-2),u);break;case 59:P+=";";default:if(v(k=Q(P,t,r,s,d,n,l,x,I=[],O=[],p),a),123===L)if(0===d)Z(P,t,k,k,I,a,p,l,O);else switch(99===g&&110===h(P,3)?100:g){case 100:case 108:case 109:case 115:Z(e,k,k,o&&v(Q(e,k,k,0,0,n,l,x,n,I=[],p),O),n,O,p,l,o?I:O);break;default:Z(P,k,k,k,[""],O,0,l,O)}}s=d=M=0,b=C=1,x=P="",p=i;break;case 58:p=1+y(P),M=w;default:if(b<1)if(123==L)--b;else if(125==L&&0==b++&&125==S())continue;switch(P+=c(L),L*b){case 38:C=d>0?1:(P+="\f",-1);break;case 44:l[s++]=(y(P)-1)*C,C=1;break;case 64:45===N()&&(P+=R(G())),g=N(),d=p=y(x=P+=W(_())),L++;break;case 45:45===w&&2==y(P)&&(b=0)}}return a}function Q(e,t,r,o,n,a,i,l,u,c,d){for(var f=n-1,h=0===n?a:[""],y=M(h),v=0,w=0,b=0;v0?h[A]+" "+C:m(C,/&\f/g,h[A])))&&(u[b++]=L);return I(e,t,r,0===n?K:l,u,c,d)}function ee(e,t,r){return I(e,t,r,j,c(L),g(e,2,-2),0)}function te(e,t,r,o){return I(e,t,r,z,g(e,0,o),g(e,o+1,-1),o)}var re=function(e,t,r){for(var o=0,n=0;o=n,n=N(),38===o&&12===n&&(t[r]=1),!P(n);)G();return k(e,C)},oe=new WeakMap,ne=function(e){if("rule"===e.type&&e.parent&&!(e.length<1)){for(var t=e.value,r=e.parent,o=e.column===r.column&&e.line===r.line;"rule"!==r.type;)if(!(r=r.parent))return;if((1!==e.props.length||58===t.charCodeAt(0)||oe.get(r))&&!o){oe.set(e,!0);for(var n=[],a=function(e,t){return T(function(e,t){var r=-1,o=44;do{switch(P(o)){case 0:38===o&&12===N()&&(t[r]=1),e[r]+=re(C-1,t,r);break;case 2:e[r]+=R(o);break;case 4:if(44===o){e[++r]=58===N()?"&\f":"",t[r]=e[r].length;break}default:e[r]+=c(o)}}while(o=G());return e}(E(e),t))}(t,n),i=r.props,l=0,u=0;l6)switch(h(e,t+1)){case 109:if(45!==h(e,t+4))break;case 102:return m(e,/(.+:)(.+)-([^]+)/,"$1"+V+"$2-$3$1"+F+(108==h(e,t+3)?"$3":"$2-$3"))+e;case 115:return~f(e,"stretch")?ie(m(e,"stretch","fill-available"),t)+e:e}break;case 4949:if(115!==h(e,t+1))break;case 6444:switch(h(e,y(e)-3-(~f(e,"!important")&&10))){case 107:return m(e,":",":"+V)+e;case 101:return m(e,/(.+:)([^;!]+)(;|!.+)?/,"$1"+V+(45===h(e,14)?"inline-":"")+"box$3$1"+V+"$2$3$1"+H+"$2box$3")+e}break;case 5936:switch(h(e,t+11)){case 114:return V+e+H+m(e,/[svh]\w+-[tblr]{2}/,"tb")+e;case 108:return V+e+H+m(e,/[svh]\w+-[tblr]{2}/,"tb-rl")+e;case 45:return V+e+H+m(e,/[svh]\w+-[tblr]{2}/,"lr")+e}return V+e+H+e+e}return e}var le=[function(e,t,r,o){if(e.length>-1&&!e.return)switch(e.type){case z:e.return=ie(e.value,e.length);break;case Y:return X([O(e,{value:m(e.value,"@","@"+V)})],o);case K:if(e.length)return function(e,t){return e.map(t).join("")}(e.props,(function(t){switch(function(e){return(e=/(::plac\w+|:read-\w+)/.exec(e))?e[0]:e}(t)){case":read-only":case":read-write":return X([O(e,{props:[m(t,/:(read-\w+)/,":-moz-$1")]})],o);case"::placeholder":return X([O(e,{props:[m(t,/:(plac\w+)/,":"+V+"input-$1")]}),O(e,{props:[m(t,/:(plac\w+)/,":-moz-$1")]}),O(e,{props:[m(t,/:(plac\w+)/,H+"input-$1")]})],o)}return""}))}}],ue=function(e){var t=e.key;if("css"===t){var r=document.querySelectorAll("style[data-emotion]:not([data-s])");Array.prototype.forEach.call(r,(function(e){-1!==e.getAttribute("data-emotion").indexOf(" ")&&(document.head.appendChild(e),e.setAttribute("data-s",""))}))}var o,n,a=e.stylisPlugins||le,i={},l=[];o=e.container||document.head,Array.prototype.forEach.call(document.querySelectorAll('style[data-emotion^="'+t+' "]'),(function(e){for(var t=e.getAttribute("data-emotion").split(" "),r=1;r=4;++o,n-=4)t=1540483477*(65535&(t=255&e.charCodeAt(o)|(255&e.charCodeAt(++o))<<8|(255&e.charCodeAt(++o))<<16|(255&e.charCodeAt(++o))<<24))+(59797*(t>>>16)<<16),r=1540483477*(65535&(t^=t>>>24))+(59797*(t>>>16)<<16)^1540483477*(65535&r)+(59797*(r>>>16)<<16);switch(n){case 3:r^=(255&e.charCodeAt(o+2))<<16;case 2:r^=(255&e.charCodeAt(o+1))<<8;case 1:r=1540483477*(65535&(r^=255&e.charCodeAt(o)))+(59797*(r>>>16)<<16)}return(((r=1540483477*(65535&(r^=r>>>13))+(59797*(r>>>16)<<16))^r>>>15)>>>0).toString(36)}(n)+u;return{name:s,styles:n,next:ve}}var Ae=!!n.useInsertionEffect&&n.useInsertionEffect,Ce=Ae||function(e){return e()},Le=Ae||n.useLayoutEffect,xe=n.createContext("undefined"!=typeof HTMLElement?ue({key:"css"}):null),Ie=xe.Provider,Oe=function(e){return(0,n.forwardRef)((function(t,r){var o=(0,n.useContext)(xe);return e(t,o,r)}))},Se=n.createContext({}),Ge=function(e,t,r){var o=e.key+"-"+t.name;!1===r&&void 0===e.registered[o]&&(e.registered[o]=t.styles)},Ne=function(e,t,r){Ge(e,t,r);var o=e.key+"-"+t.name;if(void 0===e.inserted[t.name]){var n=t;do{e.insert(t===n?"."+o:"",n,e.sheet,!0),n=n.next}while(void 0!==n)}},_e=l,ke=function(e){return"theme"!==e},Pe=function(e){return"string"==typeof e&&e.charCodeAt(0)>96?_e:ke},Ee=function(e,t,r){var o;if(t){var n=t.shouldForwardProp;o=e.__emotion_forwardProp&&n?function(t){return e.__emotion_forwardProp(t)&&n(t)}:n}return"function"!=typeof o&&r&&(o=e.__emotion_forwardProp),o},Te=function(e){var t=e.cache,r=e.serialized,o=e.isStringTag;return Ge(t,r,o),Ce((function(){return Ne(t,r,o)})),null},Re=function e(t,r){var a,i,l=t.__emotion_real===t,u=l&&t.__emotion_base||t;void 0!==r&&(a=r.label,i=r.target);var s=Ee(t,r,l),c=s||Pe(u),d=!c("as");return function(){var p=arguments,m=l&&void 0!==t.__emotion_styles?t.__emotion_styles.slice(0):[];if(void 0!==a&&m.push("label:"+a+";"),null==p[0]||void 0===p[0].raw)m.push.apply(m,p);else{m.push(p[0][0]);for(var f=p.length,h=1;h{return t(null==(o=e)||0===Object.keys(o).length?r:e);var o}:t;return(0,De.jsx)(Ue,{styles:o})}function Ve(e,t){return Re(e,t)}"object"==typeof document&&(We=ue({key:"css",prepend:!0}));const je=(e,t)=>{Array.isArray(e.__emotion_styles)&&(e.__emotion_styles=t(e.__emotion_styles))}},771:(e,t,r)=>{"use strict";var o=r(4994);t.e$=c,t.eM=function(e,t){const r=s(e),o=s(t);return(Math.max(r,o)+.05)/(Math.min(r,o)+.05)},t.a=d;var n=o(r(8944)),a=o(r(8586));function i(e,t=0,r=1){return(0,a.default)(e,t,r)}function l(e){if(e.type)return e;if("#"===e.charAt(0))return l(function(e){e=e.slice(1);const t=new RegExp(`.{1,${e.length>=6?2:1}}`,"g");let r=e.match(t);return r&&1===r[0].length&&(r=r.map((e=>e+e))),r?`rgb${4===r.length?"a":""}(${r.map(((e,t)=>t<3?parseInt(e,16):Math.round(parseInt(e,16)/255*1e3)/1e3)).join(", ")})`:""}(e));const t=e.indexOf("("),r=e.substring(0,t);if(-1===["rgb","rgba","hsl","hsla","color"].indexOf(r))throw new Error((0,n.default)(9,e));let o,a=e.substring(t+1,e.length-1);if("color"===r){if(a=a.split(" "),o=a.shift(),4===a.length&&"/"===a[3].charAt(0)&&(a[3]=a[3].slice(1)),-1===["srgb","display-p3","a98-rgb","prophoto-rgb","rec-2020"].indexOf(o))throw new Error((0,n.default)(10,o))}else a=a.split(",");return a=a.map((e=>parseFloat(e))),{type:r,values:a,colorSpace:o}}function u(e){const{type:t,colorSpace:r}=e;let{values:o}=e;return-1!==t.indexOf("rgb")?o=o.map(((e,t)=>t<3?parseInt(e,10):e)):-1!==t.indexOf("hsl")&&(o[1]=`${o[1]}%`,o[2]=`${o[2]}%`),o=-1!==t.indexOf("color")?`${r} ${o.join(" ")}`:`${o.join(", ")}`,`${t}(${o})`}function s(e){let t="hsl"===(e=l(e)).type||"hsla"===e.type?l(function(e){e=l(e);const{values:t}=e,r=t[0],o=t[1]/100,n=t[2]/100,a=o*Math.min(n,1-n),i=(e,t=(e+r/30)%12)=>n-a*Math.max(Math.min(t-3,9-t,1),-1);let s="rgb";const c=[Math.round(255*i(0)),Math.round(255*i(8)),Math.round(255*i(4))];return"hsla"===e.type&&(s+="a",c.push(t[3])),u({type:s,values:c})}(e)).values:e.values;return t=t.map((t=>("color"!==e.type&&(t/=255),t<=.03928?t/12.92:((t+.055)/1.055)**2.4))),Number((.2126*t[0]+.7152*t[1]+.0722*t[2]).toFixed(3))}function c(e,t){if(e=l(e),t=i(t),-1!==e.type.indexOf("hsl"))e.values[2]*=1-t;else if(-1!==e.type.indexOf("rgb")||-1!==e.type.indexOf("color"))for(let r=0;r<3;r+=1)e.values[r]*=1-t;return u(e)}function d(e,t){if(e=l(e),t=i(t),-1!==e.type.indexOf("hsl"))e.values[2]+=(100-e.values[2])*t;else if(-1!==e.type.indexOf("rgb"))for(let r=0;r<3;r+=1)e.values[r]+=(255-e.values[r])*t;else if(-1!==e.type.indexOf("color"))for(let r=0;r<3;r+=1)e.values[r]+=(1-e.values[r])*t;return u(e)}},6461:(e,t,r)=>{"use strict";var o=r(4994);t.Ay=function(e={}){const{themeId:t,defaultTheme:r=h,rootShouldForwardProp:o=f,slotShouldForwardProp:u=f}=e,c=e=>(0,s.default)((0,n.default)({},e,{theme:y((0,n.default)({},e,{defaultTheme:r,themeId:t}))}));return c.__mui_systemSx=!0,(e,s={})=>{(0,i.internal_processStyles)(e,(e=>e.filter((e=>!(null!=e&&e.__mui_systemSx)))));const{name:d,slot:m,skipVariantsResolver:h,skipSx:w,overridesResolver:b=M(g(m))}=s,A=(0,a.default)(s,p),C=void 0!==h?h:m&&"Root"!==m&&"root"!==m||!1,L=w||!1;let x=f;"Root"===m||"root"===m?x=o:m?x=u:function(e){return"string"==typeof e&&e.charCodeAt(0)>96}(e)&&(x=void 0);const I=(0,i.default)(e,(0,n.default)({shouldForwardProp:x,label:void 0},A)),O=e=>"function"==typeof e&&e.__emotion_real!==e||(0,l.isPlainObject)(e)?o=>v(e,(0,n.default)({},o,{theme:y({theme:o.theme,defaultTheme:r,themeId:t})})):e,S=(o,...a)=>{let i=O(o);const l=a?a.map(O):[];d&&b&&l.push((e=>{const o=y((0,n.default)({},e,{defaultTheme:r,themeId:t}));if(!o.components||!o.components[d]||!o.components[d].styleOverrides)return null;const a=o.components[d].styleOverrides,i={};return Object.entries(a).forEach((([t,r])=>{i[t]=v(r,(0,n.default)({},e,{theme:o}))})),b(e,i)})),d&&!C&&l.push((e=>{var o;const a=y((0,n.default)({},e,{defaultTheme:r,themeId:t}));return v({variants:null==a||null==(o=a.components)||null==(o=o[d])?void 0:o.variants},(0,n.default)({},e,{theme:a}))})),L||l.push(c);const u=l.length-a.length;if(Array.isArray(o)&&u>0){const e=new Array(u).fill("");i=[...o,...e],i.raw=[...o.raw,...e]}const s=I(i,...l);return e.muiName&&(s.muiName=e.muiName),s};return I.withConfig&&(S.withConfig=I.withConfig),S}};var n=o(r(4634)),a=o(r(4893)),i=function(e,t){if(e&&e.__esModule)return e;if(null===e||"object"!=typeof e&&"function"!=typeof e)return{default:e};var r=m(t);if(r&&r.has(e))return r.get(e);var o={__proto__:null},n=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var a in e)if("default"!==a&&Object.prototype.hasOwnProperty.call(e,a)){var i=n?Object.getOwnPropertyDescriptor(e,a):null;i&&(i.get||i.set)?Object.defineProperty(o,a,i):o[a]=e[a]}return o.default=e,r&&r.set(e,o),o}(r(7587)),l=r(4239),u=(o(r(7149)),o(r(7320)),o(r(3142))),s=o(r(2891));const c=["ownerState"],d=["variants"],p=["name","slot","skipVariantsResolver","skipSx","overridesResolver"];function m(e){if("function"!=typeof WeakMap)return null;var t=new WeakMap,r=new WeakMap;return(m=function(e){return e?r:t})(e)}function f(e){return"ownerState"!==e&&"theme"!==e&&"sx"!==e&&"as"!==e}const h=(0,u.default)(),g=e=>e?e.charAt(0).toLowerCase()+e.slice(1):e;function y({defaultTheme:e,theme:t,themeId:r}){return o=t,0===Object.keys(o).length?e:t[r]||t;var o}function M(e){return e?(t,r)=>r[e]:null}function v(e,t){let{ownerState:r}=t,o=(0,a.default)(t,c);const i="function"==typeof e?e((0,n.default)({ownerState:r},o)):e;if(Array.isArray(i))return i.flatMap((e=>v(e,(0,n.default)({ownerState:r},o))));if(i&&"object"==typeof i&&Array.isArray(i.variants)){const{variants:e=[]}=i;let t=(0,a.default)(i,d);return e.forEach((e=>{let a=!0;"function"==typeof e.props?a=e.props((0,n.default)({ownerState:r},o,r)):Object.keys(e.props).forEach((t=>{(null==r?void 0:r[t])!==e.props[t]&&o[t]!==e.props[t]&&(a=!1)})),a&&(Array.isArray(t)||(t=[t]),t.push("function"==typeof e.style?e.style((0,n.default)({ownerState:r},o,r)):e.style))})),t}return i}},9452:(e,t,r)=>{"use strict";r.d(t,{EU:()=>i,NI:()=>a,vf:()=>l,zu:()=>o});const o={xs:0,sm:600,md:900,lg:1200,xl:1536},n={keys:["xs","sm","md","lg","xl"],up:e=>`@media (min-width:${o[e]}px)`};function a(e,t,r){const a=e.theme||{};if(Array.isArray(t)){const e=a.breakpoints||n;return t.reduce(((o,n,a)=>(o[e.up(e.keys[a])]=r(t[a]),o)),{})}if("object"==typeof t){const e=a.breakpoints||n;return Object.keys(t).reduce(((n,a)=>{if(-1!==Object.keys(e.values||o).indexOf(a))n[e.up(a)]=r(t[a],a);else{const e=a;n[e]=t[e]}return n}),{})}return r(t)}function i(e={}){var t;return(null==(t=e.keys)?void 0:t.reduce(((t,r)=>(t[e.up(r)]={},t)),{}))||{}}function l(e,t){return e.reduce(((e,t)=>{const r=e[t];return(!r||0===Object.keys(r).length)&&delete e[t],e}),t)}},8336:(e,t,r)=>{"use strict";function o(e,t){const r=this;if(r.vars&&"function"==typeof r.getColorSchemeSelector){const o=r.getColorSchemeSelector(e).replace(/(\[[^\]]+\])/,"*:where($1)");return{[o]:t}}return r.palette.mode===e?t:{}}r.d(t,{A:()=>o})},8094:(e,t,r)=>{"use strict";r.d(t,{A:()=>l});var o=r(8587),n=r(8168);const a=["values","unit","step"],i=e=>{const t=Object.keys(e).map((t=>({key:t,val:e[t]})))||[];return t.sort(((e,t)=>e.val-t.val)),t.reduce(((e,t)=>(0,n.A)({},e,{[t.key]:t.val})),{})};function l(e){const{values:t={xs:0,sm:600,md:900,lg:1200,xl:1536},unit:r="px",step:l=5}=e,u=(0,o.A)(e,a),s=i(t),c=Object.keys(s);function d(e){return`@media (min-width:${"number"==typeof t[e]?t[e]:e}${r})`}function p(e){return`@media (max-width:${("number"==typeof t[e]?t[e]:e)-l/100}${r})`}function m(e,o){const n=c.indexOf(o);return`@media (min-width:${"number"==typeof t[e]?t[e]:e}${r}) and (max-width:${(-1!==n&&"number"==typeof t[c[n]]?t[c[n]]:o)-l/100}${r})`}return(0,n.A)({keys:c,values:s,up:d,down:p,between:m,only:function(e){return c.indexOf(e)+1{"use strict";r.d(t,{A:()=>m});var o=r(8168),n=r(8587),a=r(1317),i=r(8094);const l={borderRadius:4};var u=r(8248),s=r(3571),c=r(4188),d=r(8336);const p=["breakpoints","palette","spacing","shape"],m=function(e={},...t){const{breakpoints:r={},palette:m={},spacing:f,shape:h={}}=e,g=(0,n.A)(e,p),y=(0,i.A)(r),M=function(e=8){if(e.mui)return e;const t=(0,u.LX)({spacing:e}),r=(...e)=>(0===e.length?[1]:e).map((e=>{const r=t(e);return"number"==typeof r?`${r}px`:r})).join(" ");return r.mui=!0,r}(f);let v=(0,a.A)({breakpoints:y,direction:"ltr",components:{},palette:(0,o.A)({mode:"light"},m),spacing:M,shape:(0,o.A)({},l,h)},g);return v.applyStyles=d.A,v=t.reduce(((e,t)=>(0,a.A)(e,t)),v),v.unstable_sxConfig=(0,o.A)({},c.A,null==g?void 0:g.unstable_sxConfig),v.unstable_sx=function(e){return(0,s.A)({sx:e,theme:this})},v}},3142:(e,t,r)=>{"use strict";r.r(t),r.d(t,{default:()=>o.A,private_createBreakpoints:()=>n.A,unstable_applyStyles:()=>a.A});var o=r(8749),n=r(8094),a=r(8336)},4620:(e,t,r)=>{"use strict";r.d(t,{A:()=>n});var o=r(1317);const n=function(e,t){return t?(0,o.A)(e,t,{clone:!1}):e}},8248:(e,t,r)=>{"use strict";r.d(t,{LX:()=>f,MA:()=>m,_W:()=>h,Lc:()=>y,Ms:()=>M});var o=r(9452),n=r(6481),a=r(4620);const i={m:"margin",p:"padding"},l={t:"Top",r:"Right",b:"Bottom",l:"Left",x:["Left","Right"],y:["Top","Bottom"]},u={marginX:"mx",marginY:"my",paddingX:"px",paddingY:"py"},s=function(){const e={};return t=>(void 0===e[t]&&(e[t]=(e=>{if(e.length>2){if(!u[e])return[e];e=u[e]}const[t,r]=e.split(""),o=i[t],n=l[r]||"";return Array.isArray(n)?n.map((e=>o+e)):[o+n]})(t)),e[t])}(),c=["m","mt","mr","mb","ml","mx","my","margin","marginTop","marginRight","marginBottom","marginLeft","marginX","marginY","marginInline","marginInlineStart","marginInlineEnd","marginBlock","marginBlockStart","marginBlockEnd"],d=["p","pt","pr","pb","pl","px","py","padding","paddingTop","paddingRight","paddingBottom","paddingLeft","paddingX","paddingY","paddingInline","paddingInlineStart","paddingInlineEnd","paddingBlock","paddingBlockStart","paddingBlockEnd"],p=[...c,...d];function m(e,t,r,o){var a;const i=null!=(a=(0,n.Yn)(e,t,!1))?a:r;return"number"==typeof i?e=>"string"==typeof e?e:i*e:Array.isArray(i)?e=>"string"==typeof e?e:i[e]:"function"==typeof i?i:()=>{}}function f(e){return m(e,"spacing",8)}function h(e,t){if("string"==typeof t||null==t)return t;const r=e(Math.abs(t));return t>=0?r:"number"==typeof r?-r:`-${r}`}function g(e,t){const r=f(e.theme);return Object.keys(e).map((n=>function(e,t,r,n){if(-1===t.indexOf(r))return null;const a=function(e,t){return r=>e.reduce(((e,o)=>(e[o]=h(t,r),e)),{})}(s(r),n),i=e[r];return(0,o.NI)(e,i,a)}(e,t,n,r))).reduce(a.A,{})}function y(e){return g(e,c)}function M(e){return g(e,d)}function v(e){return g(e,p)}y.propTypes={},y.filterProps=c,M.propTypes={},M.filterProps=d,v.propTypes={},v.filterProps=p},6481:(e,t,r)=>{"use strict";r.d(t,{Ay:()=>l,BO:()=>i,Yn:()=>a});var o=r(3967),n=r(9452);function a(e,t,r=!0){if(!t||"string"!=typeof t)return null;if(e&&e.vars&&r){const r=`vars.${t}`.split(".").reduce(((e,t)=>e&&e[t]?e[t]:null),e);if(null!=r)return r}return t.split(".").reduce(((e,t)=>e&&null!=e[t]?e[t]:null),e)}function i(e,t,r,o=r){let n;return n="function"==typeof e?e(r):Array.isArray(e)?e[r]||o:a(e,r)||o,t&&(n=t(n,o,e)),n}const l=function(e){const{prop:t,cssProperty:r=e.prop,themeKey:l,transform:u}=e,s=e=>{if(null==e[t])return null;const s=e[t],c=a(e.theme,l)||{};return(0,n.NI)(e,s,(e=>{let n=i(c,u,e);return e===n&&"string"==typeof e&&(n=i(c,u,`${t}${"default"===e?"":(0,o.A)(e)}`,e)),!1===r?n:{[r]:n}}))};return s.propTypes={},s.filterProps=[t],s}},4188:(e,t,r)=>{"use strict";r.d(t,{A:()=>E});var o=r(8248),n=r(6481),a=r(4620);const i=function(...e){const t=e.reduce(((e,t)=>(t.filterProps.forEach((r=>{e[r]=t})),e)),{}),r=e=>Object.keys(e).reduce(((r,o)=>t[o]?(0,a.A)(r,t[o](e)):r),{});return r.propTypes={},r.filterProps=e.reduce(((e,t)=>e.concat(t.filterProps)),[]),r};var l=r(9452);function u(e){return"number"!=typeof e?e:`${e}px solid`}function s(e,t){return(0,n.Ay)({prop:e,themeKey:"borders",transform:t})}const c=s("border",u),d=s("borderTop",u),p=s("borderRight",u),m=s("borderBottom",u),f=s("borderLeft",u),h=s("borderColor"),g=s("borderTopColor"),y=s("borderRightColor"),M=s("borderBottomColor"),v=s("borderLeftColor"),w=s("outline",u),b=s("outlineColor"),A=e=>{if(void 0!==e.borderRadius&&null!==e.borderRadius){const t=(0,o.MA)(e.theme,"shape.borderRadius",4,"borderRadius"),r=e=>({borderRadius:(0,o._W)(t,e)});return(0,l.NI)(e,e.borderRadius,r)}return null};A.propTypes={},A.filterProps=["borderRadius"],i(c,d,p,m,f,h,g,y,M,v,A,w,b);const C=e=>{if(void 0!==e.gap&&null!==e.gap){const t=(0,o.MA)(e.theme,"spacing",8,"gap"),r=e=>({gap:(0,o._W)(t,e)});return(0,l.NI)(e,e.gap,r)}return null};C.propTypes={},C.filterProps=["gap"];const L=e=>{if(void 0!==e.columnGap&&null!==e.columnGap){const t=(0,o.MA)(e.theme,"spacing",8,"columnGap"),r=e=>({columnGap:(0,o._W)(t,e)});return(0,l.NI)(e,e.columnGap,r)}return null};L.propTypes={},L.filterProps=["columnGap"];const x=e=>{if(void 0!==e.rowGap&&null!==e.rowGap){const t=(0,o.MA)(e.theme,"spacing",8,"rowGap"),r=e=>({rowGap:(0,o._W)(t,e)});return(0,l.NI)(e,e.rowGap,r)}return null};function I(e,t){return"grey"===t?t:e}function O(e){return e<=1&&0!==e?100*e+"%":e}x.propTypes={},x.filterProps=["rowGap"],i(C,L,x,(0,n.Ay)({prop:"gridColumn"}),(0,n.Ay)({prop:"gridRow"}),(0,n.Ay)({prop:"gridAutoFlow"}),(0,n.Ay)({prop:"gridAutoColumns"}),(0,n.Ay)({prop:"gridAutoRows"}),(0,n.Ay)({prop:"gridTemplateColumns"}),(0,n.Ay)({prop:"gridTemplateRows"}),(0,n.Ay)({prop:"gridTemplateAreas"}),(0,n.Ay)({prop:"gridArea"})),i((0,n.Ay)({prop:"color",themeKey:"palette",transform:I}),(0,n.Ay)({prop:"bgcolor",cssProperty:"backgroundColor",themeKey:"palette",transform:I}),(0,n.Ay)({prop:"backgroundColor",themeKey:"palette",transform:I}));const S=(0,n.Ay)({prop:"width",transform:O}),G=e=>{if(void 0!==e.maxWidth&&null!==e.maxWidth){const t=t=>{var r,o;const n=(null==(r=e.theme)||null==(r=r.breakpoints)||null==(r=r.values)?void 0:r[t])||l.zu[t];return n?"px"!==(null==(o=e.theme)||null==(o=o.breakpoints)?void 0:o.unit)?{maxWidth:`${n}${e.theme.breakpoints.unit}`}:{maxWidth:n}:{maxWidth:O(t)}};return(0,l.NI)(e,e.maxWidth,t)}return null};G.filterProps=["maxWidth"];const N=(0,n.Ay)({prop:"minWidth",transform:O}),_=(0,n.Ay)({prop:"height",transform:O}),k=(0,n.Ay)({prop:"maxHeight",transform:O}),P=(0,n.Ay)({prop:"minHeight",transform:O}),E=((0,n.Ay)({prop:"size",cssProperty:"width",transform:O}),(0,n.Ay)({prop:"size",cssProperty:"height",transform:O}),i(S,G,N,_,k,P,(0,n.Ay)({prop:"boxSizing"})),{border:{themeKey:"borders",transform:u},borderTop:{themeKey:"borders",transform:u},borderRight:{themeKey:"borders",transform:u},borderBottom:{themeKey:"borders",transform:u},borderLeft:{themeKey:"borders",transform:u},borderColor:{themeKey:"palette"},borderTopColor:{themeKey:"palette"},borderRightColor:{themeKey:"palette"},borderBottomColor:{themeKey:"palette"},borderLeftColor:{themeKey:"palette"},outline:{themeKey:"borders",transform:u},outlineColor:{themeKey:"palette"},borderRadius:{themeKey:"shape.borderRadius",style:A},color:{themeKey:"palette",transform:I},bgcolor:{themeKey:"palette",cssProperty:"backgroundColor",transform:I},backgroundColor:{themeKey:"palette",transform:I},p:{style:o.Ms},pt:{style:o.Ms},pr:{style:o.Ms},pb:{style:o.Ms},pl:{style:o.Ms},px:{style:o.Ms},py:{style:o.Ms},padding:{style:o.Ms},paddingTop:{style:o.Ms},paddingRight:{style:o.Ms},paddingBottom:{style:o.Ms},paddingLeft:{style:o.Ms},paddingX:{style:o.Ms},paddingY:{style:o.Ms},paddingInline:{style:o.Ms},paddingInlineStart:{style:o.Ms},paddingInlineEnd:{style:o.Ms},paddingBlock:{style:o.Ms},paddingBlockStart:{style:o.Ms},paddingBlockEnd:{style:o.Ms},m:{style:o.Lc},mt:{style:o.Lc},mr:{style:o.Lc},mb:{style:o.Lc},ml:{style:o.Lc},mx:{style:o.Lc},my:{style:o.Lc},margin:{style:o.Lc},marginTop:{style:o.Lc},marginRight:{style:o.Lc},marginBottom:{style:o.Lc},marginLeft:{style:o.Lc},marginX:{style:o.Lc},marginY:{style:o.Lc},marginInline:{style:o.Lc},marginInlineStart:{style:o.Lc},marginInlineEnd:{style:o.Lc},marginBlock:{style:o.Lc},marginBlockStart:{style:o.Lc},marginBlockEnd:{style:o.Lc},displayPrint:{cssProperty:!1,transform:e=>({"@media print":{display:e}})},display:{},overflow:{},textOverflow:{},visibility:{},whiteSpace:{},flexBasis:{},flexDirection:{},flexWrap:{},justifyContent:{},alignItems:{},alignContent:{},order:{},flex:{},flexGrow:{},flexShrink:{},alignSelf:{},justifyItems:{},justifySelf:{},gap:{style:C},rowGap:{style:x},columnGap:{style:L},gridColumn:{},gridRow:{},gridAutoFlow:{},gridAutoColumns:{},gridAutoRows:{},gridTemplateColumns:{},gridTemplateRows:{},gridTemplateAreas:{},gridArea:{},position:{},zIndex:{themeKey:"zIndex"},top:{},right:{},bottom:{},left:{},boxShadow:{themeKey:"shadows"},width:{transform:O},maxWidth:{style:G},minWidth:{transform:O},height:{transform:O},maxHeight:{transform:O},minHeight:{transform:O},boxSizing:{},fontFamily:{themeKey:"typography"},fontSize:{themeKey:"typography"},fontStyle:{themeKey:"typography"},fontWeight:{themeKey:"typography"},letterSpacing:{},textTransform:{},lineHeight:{},textAlign:{},typography:{cssProperty:!1,themeKey:"typography"}})},2891:(e,t,r)=>{"use strict";r.r(t),r.d(t,{default:()=>o.A,extendSxProp:()=>c,unstable_createStyleFunctionSx:()=>o.k,unstable_defaultSxConfig:()=>l.A});var o=r(3571),n=r(8168),a=r(8587),i=r(1317),l=r(4188);const u=["sx"],s=e=>{var t,r;const o={systemProps:{},otherProps:{}},n=null!=(t=null==e||null==(r=e.theme)?void 0:r.unstable_sxConfig)?t:l.A;return Object.keys(e).forEach((t=>{n[t]?o.systemProps[t]=e[t]:o.otherProps[t]=e[t]})),o};function c(e){const{sx:t}=e,r=(0,a.A)(e,u),{systemProps:o,otherProps:l}=s(r);let c;return c=Array.isArray(t)?[o,...t]:"function"==typeof t?(...e)=>{const r=t(...e);return(0,i.Q)(r)?(0,n.A)({},o,r):o}:(0,n.A)({},o,t),(0,n.A)({},l,{sx:c})}},3571:(e,t,r)=>{"use strict";r.d(t,{A:()=>c,k:()=>u});var o=r(3967),n=r(4620),a=r(6481),i=r(9452),l=r(4188);function u(){function e(e,t,r,n){const l={[e]:t,theme:r},u=n[e];if(!u)return{[e]:t};const{cssProperty:s=e,themeKey:c,transform:d,style:p}=u;if(null==t)return null;if("typography"===c&&"inherit"===t)return{[e]:t};const m=(0,a.Yn)(r,c)||{};return p?p(l):(0,i.NI)(l,t,(t=>{let r=(0,a.BO)(m,d,t);return t===r&&"string"==typeof t&&(r=(0,a.BO)(m,d,`${e}${"default"===t?"":(0,o.A)(t)}`,t)),!1===s?r:{[s]:r}}))}return function t(r){var o;const{sx:a,theme:u={}}=r||{};if(!a)return null;const s=null!=(o=u.unstable_sxConfig)?o:l.A;function c(r){let o=r;if("function"==typeof r)o=r(u);else if("object"!=typeof r)return r;if(!o)return null;const a=(0,i.EU)(u.breakpoints),l=Object.keys(a);let c=a;return Object.keys(o).forEach((r=>{const a="function"==typeof(l=o[r])?l(u):l;var l;if(null!=a)if("object"==typeof a)if(s[r])c=(0,n.A)(c,e(r,a,u,s));else{const e=(0,i.NI)({theme:u},a,(e=>({[r]:e})));!function(...e){const t=e.reduce(((e,t)=>e.concat(Object.keys(t))),[]),r=new Set(t);return e.every((e=>r.size===Object.keys(e).length))}(e,a)?c=(0,n.A)(c,e):c[r]=t({sx:a,theme:u})}else c=(0,n.A)(c,e(r,a,u,s))})),(0,i.vf)(l,c)}return Array.isArray(a)?a.map(c):c(a)}}const s=u();s.filterProps=["sx"];const c=s},9071:(e,t,r)=>{"use strict";r.d(t,{A:()=>n});const o=e=>e,n=(()=>{let e=o;return{configure(t){e=t},generate:t=>e(t),reset(){e=o}}})()},3967:(e,t,r)=>{"use strict";r.d(t,{A:()=>n});var o=r(9453);function n(e){if("string"!=typeof e)throw new Error((0,o.A)(7));return e.charAt(0).toUpperCase()+e.slice(1)}},7149:(e,t,r)=>{"use strict";r.r(t),r.d(t,{default:()=>o.A});var o=r(3967)},725:(e,t,r)=>{"use strict";r.d(t,{A:()=>o});const o=function(e,t=Number.MIN_SAFE_INTEGER,r=Number.MAX_SAFE_INTEGER){return Math.max(t,Math.min(e,r))}},8586:(e,t,r)=>{"use strict";r.r(t),r.d(t,{default:()=>o.A});var o=r(725)},5659:(e,t,r)=>{"use strict";function o(e,t,r=void 0){const o={};return Object.keys(e).forEach((n=>{o[n]=e[n].reduce(((e,o)=>{if(o){const n=t(o);""!==n&&e.push(n),r&&r[o]&&e.push(r[o])}return e}),[]).join(" ")})),o}r.d(t,{A:()=>o})},1317:(e,t,r)=>{"use strict";r.d(t,{A:()=>i,Q:()=>n});var o=r(8168);function n(e){if("object"!=typeof e||null===e)return!1;const t=Object.getPrototypeOf(e);return!(null!==t&&t!==Object.prototype&&null!==Object.getPrototypeOf(t)||Symbol.toStringTag in e||Symbol.iterator in e)}function a(e){if(!n(e))return e;const t={};return Object.keys(e).forEach((r=>{t[r]=a(e[r])})),t}function i(e,t,r={clone:!0}){const l=r.clone?(0,o.A)({},e):e;return n(e)&&n(t)&&Object.keys(t).forEach((o=>{n(t[o])&&Object.prototype.hasOwnProperty.call(e,o)&&n(e[o])?l[o]=i(e[o],t[o],r):r.clone?l[o]=n(t[o])?a(t[o]):t[o]:l[o]=t[o]})),l}},4239:(e,t,r)=>{"use strict";r.r(t),r.d(t,{default:()=>o.A,isPlainObject:()=>o.Q});var o=r(1317)},9453:(e,t,r)=>{"use strict";function o(e){let t="https://mui.com/production-error/?code="+e;for(let e=1;eo})},8944:(e,t,r)=>{"use strict";r.r(t),r.d(t,{default:()=>o.A});var o=r(9453)},3990:(e,t,r)=>{"use strict";r.d(t,{Ay:()=>a,li:()=>n});var o=r(9071);const n={active:"active",checked:"checked",completed:"completed",disabled:"disabled",error:"error",expanded:"expanded",focused:"focused",focusVisible:"focusVisible",open:"open",readOnly:"readOnly",required:"required",selected:"selected"};function a(e,t,r="Mui"){const a=n[t];return a?`${r}-${a}`:`${o.A.generate(e)}-${t}`}},7320:(e,t,r)=>{"use strict";r.r(t),r.d(t,{default:()=>u,getFunctionName:()=>a});var o=r(4363);const n=/^\s*function(?:\s|\s*\/\*.*\*\/\s*)+([^(\s/]*)\s*/;function a(e){const t=`${e}`.match(n);return t&&t[1]||""}function i(e,t=""){return e.displayName||e.name||a(e)||t}function l(e,t,r){const o=i(t);return e.displayName||(""!==o?`${r}(${o})`:r)}function u(e){if(null!=e){if("string"==typeof e)return e;if("function"==typeof e)return i(e,"Component");if("object"==typeof e)switch(e.$$typeof){case o.ForwardRef:return l(e,e.render,"ForwardRef");case o.Memo:return l(e,e.type,"memo");default:return}}}},7365:(e,t,r)=>{"use strict";function o(e,t){"function"==typeof e?e(t):e&&(e.current=t)}r.d(t,{A:()=>o})},1529:(e,t,r)=>{"use strict";r.d(t,{A:()=>n});var o=r(1609);const n="undefined"!=typeof window?o.useLayoutEffect:o.useEffect},1523:(e,t,r)=>{"use strict";r.d(t,{A:()=>a});var o=r(1609),n=r(7365);function a(...e){return o.useMemo((()=>e.every((e=>null==e))?null:t=>{e.forEach((e=>{(0,n.A)(e,t)}))}),e)}},4661:(e,t,r)=>{"use strict";r.d(t,{A:()=>i});var o=r(1609);let n=0;const a=o["useId".toString()];function i(e){if(void 0!==a){const t=a();return null!=e?e:t}return function(e){const[t,r]=o.useState(e),a=e||t;return o.useEffect((()=>{null==t&&(n+=1,r(`mui-${n}`))}),[t]),a}(e)}},6363:(e,t,r)=>{"use strict";r.d(t,{A:()=>p});var o=r(1609);class n{constructor(){this.currentId=null,this.clear=()=>{null!==this.currentId&&(clearTimeout(this.currentId),this.currentId=null)},this.disposeEffect=()=>this.clear}static create(){return new n}start(e,t){this.clear(),this.currentId=setTimeout((()=>{this.currentId=null,t()}),e)}}let a=!0,i=!1;const l=new n,u={text:!0,search:!0,url:!0,tel:!0,email:!0,password:!0,number:!0,date:!0,month:!0,week:!0,time:!0,datetime:!0,"datetime-local":!0};function s(e){e.metaKey||e.altKey||e.ctrlKey||(a=!0)}function c(){a=!1}function d(){"hidden"===this.visibilityState&&i&&(a=!0)}function p(){const e=o.useCallback((e=>{var t;null!=e&&((t=e.ownerDocument).addEventListener("keydown",s,!0),t.addEventListener("mousedown",c,!0),t.addEventListener("pointerdown",c,!0),t.addEventListener("touchstart",c,!0),t.addEventListener("visibilitychange",d,!0))}),[]),t=o.useRef(!1);return{isFocusVisibleRef:t,onFocus:function(e){return!!function(e){const{target:t}=e;try{return t.matches(":focus-visible")}catch(e){}return a||function(e){const{type:t,tagName:r}=e;return!("INPUT"!==r||!u[t]||e.readOnly)||"TEXTAREA"===r&&!e.readOnly||!!e.isContentEditable}(t)}(e)&&(t.current=!0,!0)},onBlur:function(){return!!t.current&&(i=!0,l.start(100,(()=>{i=!1})),t.current=!1,!0)},ref:e}}},7302:(e,t,r)=>{"use strict";var o=r(1609),n=r(5338);const a=["Alabama","Alaska","Arizona","Arkansas","California","Colorado","Connecticut","District of Columbia","Delaware","Florida","Georgia","Hawaii","Idaho","Illinois","Indiana","Iowa","Kansas","Kentucky","Louisiana","Maine","Maryland","Massachusetts","Michigan","Minnesota","Mississippi","Missouri","Montana","Nebraska","Nevada","New Hampshire","New Jersey","New Mexico","New York","North Carolina","North Dakota","Ohio","Oklahoma","Oregon","Pennsylvania","Rhode Island","South Carolina","South Dakota","Tennessee","Texas","Utah","Vermont","Virginia","Washington","West Virginia","Wisconsin","Wyoming"],i=[{Metro:"Akron, OH",COLA:1.086259899},{Metro:"Albany, OR",COLA:.95587673},{Metro:"Albany-Schenectady-Troy, NY",COLA:1.035593343},{Metro:"Albuquerque, NM",COLA:1.070847254},{Metro:"Allentown-Bethlehem-Easton, PA-NJ",COLA:1.019919018},{Metro:"Amarillo, TX",COLA:1.089609484},{Metro:"Ames, IA",COLA:1.13058225},{Metro:"Anchorage, AK",COLA:.970242658},{Metro:"Ann Arbor, MI",COLA:1.024002621},{Metro:"Anniston-Oxford, AL",COLA:1.19247785},{Metro:"Asheville, NC",COLA:1.055019254},{Metro:"Atlanta-Sandy Springs-Roswell, GA",COLA:1.012627464},{Metro:"Atlantic City-Hammonton, NJ",COLA:1.014455998},{Metro:"Augusta-Richmond County, GA-SC",COLA:1.087204688},{Metro:"Austin-Round Rock-San Marcos, TX",COLA:1.011879465},{Metro:"Bakersfield-Delano, CA",COLA:.956919485},{Metro:"Baltimore-Columbia-Towson, MD",COLA:.976295544},{Metro:"Bangor, ME",COLA:1.032780452},{Metro:"Barnstable Town, MA",COLA:.916859207},{Metro:"Baton Rouge, LA",COLA:1.081618967},{Metro:"Beaumont-Port Arthur, TX",COLA:1.09542223},{Metro:"Beckley, WV",COLA:1.1329134},{Metro:"Bellingham, WA",COLA:.944153331},{Metro:"Bend, OR",COLA:.926191777},{Metro:"Birmingham, AL",COLA:1.09698439},{Metro:"Bismarck, ND",COLA:1.097911772},{Metro:"Blacksburg-Christiansburg-Radford, VA",COLA:1.074275401},{Metro:"Bloomington, IL",COLA:1.082614297},{Metro:"Bloomington, IN",COLA:1.07578936},{Metro:"Boise City, ID",COLA:1.061402112},{Metro:"Boston-Cambridge-Newton, MA-NH",COLA:.893224003},{Metro:"Bremerton-Silverdale-Port Orchard, WA",COLA:.919497954},{Metro:"Bridgeport-Stamford-Danbury, CT",COLA:.91062241},{Metro:"Brownsville-Harlingen, TX",COLA:1.170590094},{Metro:"Buffalo-Cheektowaga, NY",COLA:1.065166912},{Metro:"Burlington, NC",COLA:1.083529272},{Metro:"Canton-Massillon, OH",COLA:1.127459271},{Metro:"Cape Coral-Fort Myers, FL",COLA:.983719443},{Metro:"Charleston, WV",COLA:1.129101461},{Metro:"Charleston-North Charleston, SC",COLA:1.009061371},{Metro:"Charlotte-Concord-Gastonia, NC-SC",COLA:1.032119561},{Metro:"Charlottesville, VA",COLA:1.024506188},{Metro:"Chattanooga, TN-GA",COLA:1.080753934},{Metro:"Cheyenne, WY",COLA:1.06276702},{Metro:"Chicago-Naperville-Elgin, IL-IN",COLA:.945680133},{Metro:"Chico, CA",COLA:.95906702},{Metro:"Cincinnati, OH-KY-IN",COLA:1.069758983},{Metro:"Clarksville, TN-KY",COLA:1.098044383},{Metro:"Cleveland, TN",COLA:1.12064908},{Metro:"Coeur d'Alene, ID",COLA:1.067190301},{Metro:"College Station-Bryan, TX",COLA:1.079668758},{Metro:"Colorado Springs, CO",COLA:1.032673799},{Metro:"Columbia, SC",COLA:1.067919692},{Metro:"Columbus, OH",COLA:1.063682682},{Metro:"Corpus Christi, TX",COLA:1.068330413},{Metro:"Crestview-Fort Walton Beach-Destin, FL",COLA:1.021033286},{Metro:"Dallas-Fort Worth-Arlington, TX",COLA:.965968915},{Metro:"Daphne-Fairhope-Foley, AL",COLA:1.097984101},{Metro:"Dayton-Kettering-Beavercreek, OH",COLA:1.094187675},{Metro:"Decatur, AL",COLA:1.147144185},{Metro:"Deltona-Daytona Beach-Ormond Beach, FL",COLA:1.012360927},{Metro:"Denver-Aurora-Centennial, CO",COLA:.931150716},{Metro:"Des Moines-West Des Moines, IA",COLA:1.085894234},{Metro:"Detroit-Warren-Dearborn, MI",COLA:1.0402147},{Metro:"Dothan, AL",COLA:1.176775165},{Metro:"Dover, DE",COLA:1.051856527},{Metro:"El Centro, CA",COLA:.99865182},{Metro:"Elizabethtown, KY",COLA:1.125150489},{Metro:"Elkhart-Goshen, IN",COLA:1.092752863},{Metro:"El Paso, TX",COLA:1.096358992},{Metro:"Erie, PA",COLA:1.102706041},{Metro:"Eugene-Springfield, OR",COLA:.955575304},{Metro:"Evansville, IN",COLA:1.125733134},{Metro:"Fayetteville, NC",COLA:1.094115845},{Metro:"Fayetteville-Springdale-Rogers, AR",COLA:1.102292769},{Metro:"Flagstaff, AZ",COLA:1.046999822},{Metro:"Fort Collins-Loveland, CO",COLA:1.01837142},{Metro:"Fort Wayne, IN",COLA:1.079225979},{Metro:"Fresno, CA",COLA:.950335468},{Metro:"Gainesville, GA",COLA:1.031533994},{Metro:"Glens Falls, NY",COLA:1.082321363},{Metro:"Goldsboro, NC",COLA:1.115187742},{Metro:"Grand Junction, CO",COLA:1.065745862},{Metro:"Grand Rapids-Wyoming-Kentwood, MI",COLA:1.062033369},{Metro:"Greeley, CO",COLA:1.053596451},{Metro:"Greensboro-High Point, NC",COLA:1.078655564},{Metro:"Greenville, NC",COLA:1.129892434},{Metro:"Greenville-Anderson-Greer, SC",COLA:1.073180155},{Metro:"Hanford-Corcoran, CA",COLA:.976877314},{Metro:"Harrisburg-Carlisle, PA",COLA:1.042655017},{Metro:"Harrisonburg, VA",COLA:1.052709147},{Metro:"Hartford-West Hartford-East Hartford, CT",COLA:.952843762},{Metro:"Hattiesburg, MS",COLA:1.123494517},{Metro:"Hickory-Lenoir-Morganton, NC",COLA:1.113858629},{Metro:"Homosassa Springs, FL",COLA:1.055097174},{Metro:"Houston-Pasadena-The Woodlands, TX",COLA:1.012535186},{Metro:"Huntsville, AL",COLA:1.078934875},{Metro:"Indianapolis-Carmel-Greenwood, IN",COLA:1.067144748},{Metro:"Iowa City, IA",COLA:1.09483457},{Metro:"Ithaca, NY",COLA:1.013058322},{Metro:"Jackson, MI",COLA:1.095074356},{Metro:"Jackson, MS",COLA:1.106623139},{Metro:"Jacksonville, FL",COLA:1.015475852},{Metro:"Janesville-Beloit, WI",COLA:1.090274749},{Metro:"Johnson City, TN",COLA:1.143458275},{Metro:"Johnstown, PA",COLA:1.143968426},{Metro:"Jonesboro, AR",COLA:1.160240866},{Metro:"Joplin, MO-KS",COLA:1.175931043},{Metro:"Kalamazoo-Portage, MI",COLA:1.057115976},{Metro:"Kansas City, MO-KS",COLA:1.085198971},{Metro:"Knoxville, TN",COLA:1.094858544},{Metro:"Lafayette, LA",COLA:1.115013659},{Metro:"Lake Havasu City-Kingman, AZ",COLA:1.077052323},{Metro:"Lakeland-Winter Haven, FL",COLA:1.039166173},{Metro:"Lancaster, PA",COLA:1.035239554},{Metro:"Lansing-East Lansing, MI",COLA:1.065859456},{Metro:"Laredo, TX",COLA:1.1074933},{Metro:"Las Cruces, NM",COLA:1.151105637},{Metro:"Las Vegas-Henderson-North Las Vegas, NV",COLA:1.035990303},{Metro:"Lawrence, KS",COLA:1.081794481},{Metro:"Lawton, OK",COLA:1.172374175},{Metro:"Lebanon, PA",COLA:1.075500108},{Metro:"Lewiston-Auburn, ME",COLA:.985940489},{Metro:"Lima, OH",COLA:1.118380585},{Metro:"Lincoln, NE",COLA:1.086838387},{Metro:"Little Rock-North Little Rock-Conway, AR",COLA:1.121616923},{Metro:"Los Angeles-Long Beach-Anaheim, CA",COLA:.884102945},{Metro:"Louisville/Jefferson County, KY-IN",COLA:1.08328278},{Metro:"Lubbock, TX",COLA:1.089277156},{Metro:"Lynchburg, VA",COLA:1.099130588},{Metro:"Manhattan, KS",COLA:1.114081996},{Metro:"Mankato, MN",COLA:1.122019635},{Metro:"Mansfield, OH",COLA:1.140901312},{Metro:"McAllen-Edinburg-Mission, TX",COLA:1.15036409},{Metro:"Medford, OR",COLA:.946145404},{Metro:"Memphis, TN-MS-AR",COLA:1.088826463},{Metro:"Merced, CA",COLA:.971015196},{Metro:"Miami-Fort Lauderdale-West Palm Beach, FL",COLA:.896764474},{Metro:"Michigan City-La Porte, IN",COLA:1.129777547},{Metro:"Midland, TX",COLA:1.041590717},{Metro:"Milwaukee-Waukesha, WI",COLA:1.053452163},{Metro:"Minneapolis-St. Paul-Bloomington, MN-WI",COLA:.971364184},{Metro:"Mobile, AL",COLA:1.144950767},{Metro:"Modesto, CA",COLA:.94381471},{Metro:"Monroe, MI",COLA:1.073986962},{Metro:"Montana (All), MT",COLA:1.10783683779053},{Metro:"Montgomery, AL",COLA:1.115548515},{Metro:"Mount Vernon-Anacortes, WA",COLA:.945867976},{Metro:"Muncie, IN",COLA:1.134520041},{Metro:"Muskegon-Norton Shores, MI",COLA:1.091000338},{Metro:"Myrtle Beach-Conway-North Myrtle Beach, SC",COLA:1.060535358},{Metro:"Napa, CA",COLA:.885849441},{Metro:"Naples-Marco Island, FL",COLA:.975514584},{Metro:"Nashville-Davidson--Murfreesboro--Franklin, TN",COLA:1.035421779},{Metro:"New Haven, CT",COLA:.949072756},{Metro:"New Orleans-Metairie, LA",COLA:1.067976718},{Metro:"New York-Newark-Jersey City, NY-NJ",COLA:.884580001},{Metro:"Niles, MI",COLA:1.13729415},{Metro:"None of the above, AL",COLA:1.13926358},{Metro:"None of the above, AK",COLA:.980497897},{Metro:"None of the above, AZ",COLA:1.001031062},{Metro:"None of the above, AR",COLA:1.154774415},{Metro:"None of the above, CA",COLA:.889125989},{Metro:"None of the above, CO",COLA:.977583999},{Metro:"None of the above, CT",COLA:.939743638},{Metro:"None of the above, DE",COLA:1.02085609},{Metro:"None of the above, DC",COLA:.886155591},{Metro:"None of the above, FL",COLA:.979010025},{Metro:"None of the above, GA",COLA:1.043492779},{Metro:"None of the above, HI",COLA:.902209511},{Metro:"None of the above, ID",COLA:1.089004323},{Metro:"None of the above, IL",COLA:.987586043},{Metro:"None of the above, IN",COLA:1.089122929},{Metro:"None of the above, IA",COLA:1.130940264},{Metro:"None of the above, KS",COLA:1.111592801},{Metro:"None of the above, KY",COLA:1.119119029},{Metro:"None of the above, LA",COLA:1.104130552},{Metro:"None of the above, ME",COLA:.991679806},{Metro:"None of the above, MD",COLA:.952762057},{Metro:"None of the above, MA",COLA:.914135274},{Metro:"None of the above, MI",COLA:1.070342938},{Metro:"None of the above, MN",COLA:1.023311025},{Metro:"None of the above, MO",COLA:1.097465951},{Metro:"None of the above, MS",COLA:1.145108098},{Metro:"None of the above, NE",COLA:1.113511347},{Metro:"None of the above, NV",COLA:1.037527365},{Metro:"None of the above, NH",COLA:.928988146},{Metro:"None of the above, NJ",COLA:.919481045},{Metro:"None of the above, NM",COLA:1.099130588},{Metro:"None of the above, NY",COLA:.929376667},{Metro:"None of the above, NC",COLA:1.06152605},{Metro:"None of the above, ND",COLA:1.127955243},{Metro:"None of the above, OH",COLA:1.093493712},{Metro:"None of the above, OK",COLA:1.126494013},{Metro:"None of the above, OR",COLA:.938394407},{Metro:"None of the above, PA",COLA:1.039306575},{Metro:"None of the above, RI",COLA:.955109838},{Metro:"None of the above, SC",COLA:1.068935661},{Metro:"None of the above, TN",COLA:1.089360219},{Metro:"None of the above, TX",COLA:1.025514808},{Metro:"None of the above, UT",COLA:1.058525897},{Metro:"None of the above, VA",COLA:.979077122},{Metro:"None of the above, WA",COLA:.910340558},{Metro:"None of the above, WV",COLA:1.120510953},{Metro:"None of the above, WI",COLA:1.083306251},{Metro:"None of the above, WY",COLA:1.088103762},{Metro:"North Port-Bradenton-Sarasota, FL",COLA:.985794698},{Metro:"Norwich-New London-Willimantic, CT",COLA:.961806658},{Metro:"Ocala, FL",COLA:1.062552464},{Metro:"Odessa, TX",COLA:1.061650016},{Metro:"Ogden, UT",COLA:1.061661288},{Metro:"Oklahoma City, OK",COLA:1.094678767},{Metro:"Olympia-Lacey-Tumwater, WA",COLA:.930951339},{Metro:"Omaha, NE-IA",COLA:1.086094729},{Metro:"Orlando-Kissimmee-Sanford, FL",COLA:.995946498},{Metro:"Oshkosh-Neenah, WI",COLA:1.096226787},{Metro:"Owensboro, KY",COLA:1.132220738},{Metro:"Oxnard-Thousand Oaks-Ventura, CA",COLA:.874164081},{Metro:"Palm Bay-Melbourne-Titusville, FL",COLA:1.00667425},{Metro:"Panama City-Panama City Beach, FL",COLA:1.025409651},{Metro:"Pensacola-Ferry Pass-Brent, FL",COLA:1.047153314},{Metro:"Philadelphia-Camden-Wilmington, PA-NJ-DE-MD",COLA:.993157147},{Metro:"Phoenix-Mesa-Chandler, AZ",COLA:.964478265},{Metro:"Pittsburgh, PA",COLA:1.065484689},{Metro:"Pittsfield, MA",COLA:.996125073},{Metro:"Portland-South Portland, ME",COLA:.953461542},{Metro:"Portland-Vancouver-Hillsboro, OR-WA",COLA:.919489499},{Metro:"Port St. Lucie, FL",COLA:1.017087063},{Metro:"Prescott Valley-Prescott, AZ",COLA:1.078399655},{Metro:"Providence-Warwick, RI-MA",COLA:.962269416},{Metro:"Provo-Orem-Lehi, UT",COLA:1.055063779},{Metro:"Pueblo, CO",COLA:1.105009006},{Metro:"Punta Gorda, FL",COLA:1.041775185},{Metro:"Racine-Mount Pleasant, WI",COLA:1.101273072},{Metro:"Raleigh-Cary, NC",COLA:1.016477094},{Metro:"Reading, PA",COLA:1.038367686},{Metro:"Redding, CA",COLA:.963799684},{Metro:"Reno, NV",COLA:1.017511371},{Metro:"Richmond, VA",COLA:1.023635749},{Metro:"Riverside-San Bernardino-Ontario, CA",COLA:.939584704},{Metro:"Roanoke, VA",COLA:1.082731515},{Metro:"Rochester, NY",COLA:1.050309841},{Metro:"Rockford, IL",COLA:1.10409398},{Metro:"Rocky Mount, NC",COLA:1.139250601},{Metro:"Sacramento-Roseville-Folsom, CA",COLA:.910083728},{Metro:"Saginaw, MI",COLA:1.149517777},{Metro:"St. Cloud, MN",COLA:1.088707921},{Metro:"St. George, UT",COLA:1.055175106},{Metro:"St. Joseph, MO-KS",COLA:1.146184352},{Metro:"St. Louis, MO-IL",COLA:1.034436387},{Metro:"Salem, OR",COLA:.95432596},{Metro:"Salinas, CA",COLA:.884454822},{Metro:"Salt Lake City-Murray, UT",COLA:1.045205122},{Metro:"San Angelo, TX",COLA:1.078771926},{Metro:"San Antonio-New Braunfels, TX",COLA:1.051458373},{Metro:"San Diego-Chula Vista-Carlsbad, CA",COLA:.87327855},{Metro:"San Francisco-Oakland-Fremont, CA",COLA:.848212392},{Metro:"San Jose-Sunnyvale-Santa Clara, CA",COLA:.867626261},{Metro:"San Luis Obispo-Paso Robles, CA",COLA:.888123129},{Metro:"Santa Cruz-Watsonville, CA",COLA:.871862385},{Metro:"Santa Fe, NM",COLA:1.053674162},{Metro:"Santa Maria-Santa Barbara, CA",COLA:.877616394},{Metro:"Santa Rosa-Petaluma, CA",COLA:.888928397},{Metro:"Scranton--Wilkes-Barre, PA",COLA:1.088103762},{Metro:"Seattle-Tacoma-Bellevue, WA",COLA:.879693163},{Metro:"Sebastian-Vero Beach-West Vero Corridor, FL",COLA:1.047778709},{Metro:"Sheboygan, WI",COLA:1.116345531},{Metro:"South Dakota (All), SD",COLA:1.13647986725915},{Metro:"Spartanburg, SC",COLA:1.091345629},{Metro:"Spokane-Spokane Valley, WA",COLA:.973984864},{Metro:"Springfield, IL",COLA:1.116333069},{Metro:"Springfield, MA",COLA:1.005277708},{Metro:"Springfield, MO",COLA:1.150906915},{Metro:"Springfield, OH",COLA:1.127548259},{Metro:"State College, PA",COLA:1.036559452},{Metro:"Stockton-Lodi, CA",COLA:.921319329},{Metro:"Sumter, SC",COLA:1.130991427},{Metro:"Syracuse, NY",COLA:1.070480432},{Metro:"Tampa-St. Petersburg-Clearwater, FL",COLA:1.002998967},{Metro:"Toledo, OH",COLA:1.108831846},{Metro:"Topeka, KS",COLA:1.139224644},{Metro:"Trenton-Princeton, NJ",COLA:.991974923},{Metro:"Tucson, AZ",COLA:1.065938986},{Metro:"Tulsa, OK",COLA:1.104569604},{Metro:"Tyler, TX",COLA:1.08401084},{Metro:"Urban Honolulu, HI",COLA:.886132034},{Metro:"Utica-Rome, NY",COLA:1.115461411},{Metro:"Vallejo, CA",COLA:.888202013},{Metro:"Vermont (All), VT",COLA:.989158819340033},{Metro:"Virginia Beach-Chesapeake-Norfolk, VA-NC",COLA:1.020803985},{Metro:"Visalia, CA",COLA:.976600648},{Metro:"Waco, TX",COLA:1.071019289},{Metro:"Washington-Arlington-Alexandria, DC-VA-MD-WV",COLA:.898343455},{Metro:"Wausau, WI",COLA:1.105192193},{Metro:"Wenatchee-East Wenatchee, WA",COLA:.969358575},{Metro:"Wichita, KS",COLA:1.121503712},{Metro:"Wichita Falls, TX",COLA:1.127103457},{Metro:"Wilmington, NC",COLA:1.030428555},{Metro:"Winston-Salem, NC",COLA:1.082403368},{Metro:"Worcester, MA",COLA:.951619657},{Metro:"Yakima, WA",COLA:.990373569},{Metro:"York-Hanover, PA",COLA:1.046298718},{Metro:"Youngstown-Warren, OH",COLA:1.154201293},{Metro:"Yuba City, CA",COLA:.973501295},{Metro:"Yuma, AZ",COLA:1.161399719}],l={AL:"Alabama",AK:"Alaska",AZ:"Arizona",AR:"Arkansas",CA:"California",CO:"Colorado",CT:"Connecticut",DC:"District of Columbia",DE:"Delaware",FL:"Florida",GA:"Georgia",HI:"Hawaii",ID:"Idaho",IL:"Illinois",IN:"Indiana",IA:"Iowa",KS:"Kansas",KY:"Kentucky",LA:"Louisiana",ME:"Maine",MD:"Maryland",MA:"Massachusetts",MI:"Michigan",MN:"Minnesota",MS:"Mississippi",MO:"Missouri",MT:"Montana",NE:"Nebraska",NV:"Nevada",NH:"New Hampshire",NJ:"New Jersey",NM:"New Mexico",NY:"New York",NC:"North Carolina",ND:"North Dakota",OH:"Ohio",OK:"Oklahoma",OR:"Oregon",PA:"Pennsylvania",RI:"Rhode Island",SC:"South Carolina",SD:"South Dakota",TN:"Tennessee",TX:"Texas",UT:"Utah",VT:"Vermont",VA:"Virginia",WA:"Washington",WV:"West Virginia",WI:"Wisconsin",WY:"Wyoming"},u=[{Metro:"Akron, OH",Lower:25.4,Middle:56.5,Upper:18.1},{Metro:"Albany, OR",Lower:35,Middle:55.7,Upper:9.3},{Metro:"Albany-Schenectady-Troy, NY",Lower:22.9,Middle:53.4,Upper:23.7},{Metro:"Albuquerque, NM",Lower:27.4,Middle:54,Upper:18.6},{Metro:"Allentown-Bethlehem-Easton, PA-NJ",Lower:25.6,Middle:55,Upper:19.5},{Metro:"Amarillo, TX",Lower:29.1,Middle:56,Upper:14.9},{Metro:"Ames, IA",Lower:27.3,Middle:51.8,Upper:21},{Metro:"Anchorage, AK",Lower:22,Middle:53.8,Upper:24.3},{Metro:"Ann Arbor, MI",Lower:25.5,Middle:51.7,Upper:22.8},{Metro:"Anniston-Oxford, AL",Lower:36.5,Middle:52.6,Upper:11},{Metro:"Asheville, NC",Lower:26.8,Middle:57.4,Upper:15.9},{Metro:"Atlanta-Sandy Springs-Roswell, GA",Lower:24,Middle:53.8,Upper:22.3},{Metro:"Atlantic City-Hammonton, NJ",Lower:25.4,Middle:54.2,Upper:20.4},{Metro:"Augusta-Richmond County, GA-SC",Lower:29.9,Middle:53.5,Upper:16.6},{Metro:"Austin-Round Rock-San Marcos, TX",Lower:19.9,Middle:51.1,Upper:29},{Metro:"Bakersfield-Delano, CA",Lower:39,Middle:50.4,Upper:10.7},{Metro:"Baltimore-Columbia-Towson, MD",Lower:22.6,Middle:50.6,Upper:26.7},{Metro:"Bangor, ME",Lower:30.3,Middle:60.6,Upper:9.1},{Metro:"Barnstable Town, MA",Lower:19.1,Middle:55.2,Upper:25.7},{Metro:"Baton Rouge, LA",Lower:31.3,Middle:51.6,Upper:17.1},{Metro:"Beaumont-Port Arthur, TX",Lower:33.9,Middle:51.7,Upper:14.4},{Metro:"Beckley, WV",Lower:31,Middle:57.9,Upper:11.1},{Metro:"Bellingham, WA",Lower:24.9,Middle:58.8,Upper:16.2},{Metro:"Bend, OR",Lower:29.8,Middle:50.6,Upper:19.6},{Metro:"Birmingham, AL",Lower:29.2,Middle:52,Upper:18.8},{Metro:"Bismarck, ND",Lower:15.6,Middle:63.2,Upper:21.3},{Metro:"Blacksburg-Christiansburg-Radford, VA",Lower:31.6,Middle:49.8,Upper:18.6},{Metro:"Bloomington, IL",Lower:25.7,Middle:52.8,Upper:21.5},{Metro:"Bloomington, IN",Lower:29.8,Middle:49.1,Upper:21.1},{Metro:"Boise City, ID",Lower:22.7,Middle:59.9,Upper:17.4},{Metro:"Boston-Cambridge-Newton, MA-NH",Lower:21.9,Middle:48.8,Upper:29.4},{Metro:"Bremerton-Silverdale-Port Orchard, WA",Lower:19.5,Middle:59.5,Upper:21},{Metro:"Bridgeport-Stamford-Danbury, CT",Lower:22.9,Middle:44.2,Upper:32.9},{Metro:"Brownsville-Harlingen, TX",Lower:41.7,Middle:49.4,Upper:8.9},{Metro:"Buffalo-Cheektowaga, NY",Lower:27.4,Middle:55.4,Upper:17.2},{Metro:"Burlington, NC",Lower:34.7,Middle:52.9,Upper:12.4},{Metro:"Canton-Massillon, OH",Lower:24.4,Middle:58.9,Upper:16.8},{Metro:"Cape Coral-Fort Myers, FL",Lower:29.6,Middle:55.3,Upper:15.1},{Metro:"Charleston, WV",Lower:31.3,Middle:52.2,Upper:16.5},{Metro:"Charleston-North Charleston, SC",Lower:24.3,Middle:55.9,Upper:19.8},{Metro:"Charlotte-Concord-Gastonia, NC-SC",Lower:24.5,Middle:53.6,Upper:21.9},{Metro:"Charlottesville, VA",Lower:25,Middle:51.1,Upper:24},{Metro:"Chattanooga, TN-GA",Lower:24.7,Middle:57.9,Upper:17.4},{Metro:"Cheyenne, WY",Lower:26.6,Middle:59.3,Upper:14.1},{Metro:"Chicago-Naperville-Elgin, IL-IN",Lower:26.4,Middle:53.2,Upper:20.4},{Metro:"Chico, CA",Lower:35.6,Middle:51.3,Upper:13.2},{Metro:"Cincinnati, OH-KY-IN",Lower:24,Middle:55,Upper:21},{Metro:"Clarksville, TN-KY",Lower:28.5,Middle:59.3,Upper:12.2},{Metro:"Cleveland, TN",Lower:32.1,Middle:57.7,Upper:10.2},{Metro:"Coeur d'Alene, ID",Lower:18.9,Middle:60,Upper:21.1},{Metro:"College Station-Bryan, TX",Lower:35.2,Middle:47.2,Upper:17.7},{Metro:"Colorado Springs, CO",Lower:20.9,Middle:58.6,Upper:20.5},{Metro:"Columbia, SC",Lower:29.6,Middle:55.4,Upper:15},{Metro:"Columbus, OH",Lower:23.3,Middle:53.9,Upper:22.7},{Metro:"Corpus Christi, TX",Lower:35.6,Middle:50.8,Upper:13.6},{Metro:"Crestview-Fort Walton Beach-Destin, FL",Lower:22.7,Middle:59.5,Upper:17.8},{Metro:"Dallas-Fort Worth-Arlington, TX",Lower:26.7,Middle:53.4,Upper:19.9},{Metro:"Daphne-Fairhope-Foley, AL",Lower:26.9,Middle:55.4,Upper:17.7},{Metro:"Dayton-Kettering-Beavercreek, OH",Lower:27.5,Middle:53.5,Upper:18.9},{Metro:"Decatur, AL",Lower:31,Middle:54.6,Upper:14.5},{Metro:"Deltona-Daytona Beach-Ormond Beach, FL",Lower:30.1,Middle:56,Upper:13.9},{Metro:"Denver-Aurora-Centennial, CO",Lower:20.4,Middle:54.8,Upper:24.9},{Metro:"Des Moines-West Des Moines, IA",Lower:21,Middle:54.4,Upper:24.6},{Metro:"Detroit-Warren-Dearborn, MI",Lower:27.9,Middle:52.1,Upper:20},{Metro:"Dothan, AL",Lower:29.4,Middle:55.8,Upper:14.9},{Metro:"Dover, DE",Lower:24,Middle:62.9,Upper:13.1},{Metro:"El Centro, CA",Lower:43.9,Middle:46,Upper:10.1},{Metro:"Elizabethtown, KY",Lower:26.5,Middle:54.5,Upper:19},{Metro:"Elkhart-Goshen, IN",Lower:30.8,Middle:55.6,Upper:13.6},{Metro:"El Paso, TX",Lower:41.5,Middle:48,Upper:10.5},{Metro:"Erie, PA",Lower:30.8,Middle:54.4,Upper:14.8},{Metro:"Eugene-Springfield, OR",Lower:33.7,Middle:53.9,Upper:12.5},{Metro:"Evansville, IN",Lower:26.1,Middle:58.4,Upper:15.5},{Metro:"Fayetteville, NC",Lower:34.2,Middle:52.8,Upper:13},{Metro:"Fayetteville-Springdale-Rogers, AR",Lower:25.9,Middle:54.5,Upper:19.5},{Metro:"Flagstaff, AZ",Lower:34.6,Middle:51.5,Upper:13.8},{Metro:"Fort Collins-Loveland, CO",Lower:24.3,Middle:53.7,Upper:22},{Metro:"Fort Wayne, IN",Lower:26.5,Middle:58.4,Upper:15.1},{Metro:"Fresno, CA",Lower:37.8,Middle:50.7,Upper:11.5},{Metro:"Gainesville, GA",Lower:25.8,Middle:58.2,Upper:16},{Metro:"Glens Falls, NY",Lower:21.7,Middle:62.3,Upper:16},{Metro:"Goldsboro, NC",Lower:37.3,Middle:51.2,Upper:11.4},{Metro:"Grand Junction, CO",Lower:26.4,Middle:59.4,Upper:14.2},{Metro:"Grand Rapids-Wyoming-Kentwood, MI",Lower:22.7,Middle:60.5,Upper:16.8},{Metro:"Greeley, CO",Lower:20.2,Middle:55.7,Upper:24.1},{Metro:"Greensboro-High Point, NC",Lower:33.2,Middle:52,Upper:14.8},{Metro:"Greenville, NC",Lower:32.4,Middle:51.3,Upper:16.3},{Metro:"Greenville-Anderson-Greer, SC",Lower:30.3,Middle:54.1,Upper:15.6},{Metro:"Hanford-Corcoran, CA",Lower:41.9,Middle:49.1,Upper:9},{Metro:"Harrisburg-Carlisle, PA",Lower:21.2,Middle:60.6,Upper:18.3},{Metro:"Harrisonburg, VA",Lower:34.3,Middle:53.4,Upper:12.3},{Metro:"Hartford-West Hartford-East Hartford, CT",Lower:21.8,Middle:53.8,Upper:24.4},{Metro:"Hattiesburg, MS",Lower:38.5,Middle:50.1,Upper:11.4},{Metro:"Hickory-Lenoir-Morganton, NC",Lower:30.5,Middle:57.6,Upper:11.9},{Metro:"Homosassa Springs, FL",Lower:38.4,Middle:52.9,Upper:8.7},{Metro:"Houston-Pasadena-The Woodlands, TX",Lower:30.2,Middle:50.7,Upper:19.1},{Metro:"Huntsville, AL",Lower:23,Middle:51.1,Upper:25.9},{Metro:"Indianapolis-Carmel-Greenwood, IN",Lower:24.1,Middle:55.8,Upper:20.1},{Metro:"Iowa City, IA",Lower:27.8,Middle:50,Upper:22.2},{Metro:"Ithaca, NY",Lower:28.2,Middle:48.7,Upper:23.1},{Metro:"Jackson, MI",Lower:24.5,Middle:62,Upper:13.5},{Metro:"Jackson, MS",Lower:32.1,Middle:52.3,Upper:15.7},{Metro:"Jacksonville, FL",Lower:26.3,Middle:56.3,Upper:17.4},{Metro:"Janesville-Beloit, WI",Lower:22.7,Middle:64.2,Upper:13.1},{Metro:"Johnson City, TN",Lower:31.4,Middle:54.5,Upper:14.1},{Metro:"Johnstown, PA",Lower:31.5,Middle:55.2,Upper:13.3},{Metro:"Jonesboro, AR",Lower:30.9,Middle:54.9,Upper:14.2},{Metro:"Joplin, MO-KS",Lower:33.5,Middle:55,Upper:11.6},{Metro:"Kalamazoo-Portage, MI",Lower:25.9,Middle:55.8,Upper:18.3},{Metro:"Kansas City, MO-KS",Lower:22.2,Middle:56.1,Upper:21.7},{Metro:"Knoxville, TN",Lower:27.1,Middle:55.2,Upper:17.7},{Metro:"Lafayette, LA",Lower:39,Middle:47.3,Upper:13.6},{Metro:"Lake Havasu City-Kingman, AZ",Lower:40.1,Middle:47.9,Upper:12},{Metro:"Lakeland-Winter Haven, FL",Lower:33.1,Middle:58.4,Upper:8.5},{Metro:"Lancaster, PA",Lower:20.7,Middle:60.6,Upper:18.7},{Metro:"Lansing-East Lansing, MI",Lower:27.2,Middle:57.8,Upper:15.1},{Metro:"Laredo, TX",Lower:46.5,Middle:45,Upper:8.6},{Metro:"Las Cruces, NM",Lower:40.9,Middle:47.2,Upper:11.9},{Metro:"Las Vegas-Henderson-North Las Vegas, NV",Lower:28.7,Middle:55.6,Upper:15.7},{Metro:"Lawrence, KS",Lower:31.6,Middle:52,Upper:16.5},{Metro:"Lawton, OK",Lower:33.2,Middle:55.6,Upper:11.3},{Metro:"Lebanon, PA",Lower:26.9,Middle:56.8,Upper:16.3},{Metro:"Lewiston-Auburn, ME",Lower:36.6,Middle:54.9,Upper:8.5},{Metro:"Lima, OH",Lower:25.8,Middle:62.4,Upper:11.7},{Metro:"Lincoln, NE",Lower:21.4,Middle:58.3,Upper:20.3},{Metro:"Little Rock-North Little Rock-Conway, AR",Lower:28.4,Middle:53.5,Upper:18.2},{Metro:"Los Angeles-Long Beach-Anaheim, CA",Lower:31.8,Middle:49.5,Upper:18.8},{Metro:"Louisville/Jefferson County, KY-IN",Lower:24.7,Middle:58,Upper:17.4},{Metro:"Lubbock, TX",Lower:34.5,Middle:49.7,Upper:15.8},{Metro:"Lynchburg, VA",Lower:30,Middle:54.5,Upper:15.5},{Metro:"Manhattan, KS",Lower:32,Middle:55.7,Upper:12.4},{Metro:"Mankato, MN",Lower:25,Middle:54.4,Upper:20.6},{Metro:"Mansfield, OH",Lower:30.3,Middle:60.2,Upper:9.5},{Metro:"McAllen-Edinburg-Mission, TX",Lower:46.1,Middle:45.7,Upper:8.3},{Metro:"Medford, OR",Lower:32.1,Middle:57.1,Upper:10.9},{Metro:"Memphis, TN-MS-AR",Lower:29.4,Middle:52.3,Upper:18.3},{Metro:"Merced, CA",Lower:37.1,Middle:53.9,Upper:9},{Metro:"Miami-Fort Lauderdale-West Palm Beach, FL",Lower:36.6,Middle:49.3,Upper:14.2},{Metro:"Michigan City-La Porte, IN",Lower:24.5,Middle:57.7,Upper:17.8},{Metro:"Midland, TX",Lower:28.5,Middle:49.2,Upper:22.4},{Metro:"Milwaukee-Waukesha, WI",Lower:24.7,Middle:55.1,Upper:20.2},{Metro:"Minneapolis-St. Paul-Bloomington, MN-WI",Lower:20.1,Middle:56.5,Upper:23.4},{Metro:"Mobile, AL",Lower:33.6,Middle:52.1,Upper:14.3},{Metro:"Modesto, CA",Lower:34.7,Middle:52.9,Upper:12.4},{Metro:"Monroe, MI",Lower:22.1,Middle:61,Upper:16.9},{Metro:"Montana (All), MT",Lower:28.3,Middle:55.6,Upper:16.1},{Metro:"Montgomery, AL",Lower:34,Middle:51.8,Upper:14.2},{Metro:"Mount Vernon-Anacortes, WA",Lower:30.8,Middle:53.3,Upper:15.9},{Metro:"Muncie, IN",Lower:32.2,Middle:57,Upper:10.8},{Metro:"Muskegon-Norton Shores, MI",Lower:31.2,Middle:60.6,Upper:8.2},{Metro:"Myrtle Beach-Conway-North Myrtle Beach, SC",Lower:30.4,Middle:54.7,Upper:14.9},{Metro:"Napa, CA",Lower:23.2,Middle:51.2,Upper:25.6},{Metro:"Naples-Marco Island, FL",Lower:25.8,Middle:51.3,Upper:22.9},{Metro:"Nashville-Davidson--Murfreesboro--Franklin, TN",Lower:23.3,Middle:56.3,Upper:20.4},{Metro:"New Haven, CT",Lower:25.3,Middle:51.8,Upper:22.9},{Metro:"New Orleans-Metairie, LA",Lower:32.9,Middle:50,Upper:17.1},{Metro:"New York-Newark-Jersey City, NY-NJ",Lower:28.2,Middle:48.2,Upper:23.6},{Metro:"Niles, MI",Lower:29,Middle:52.4,Upper:18.6},{Metro:"None of the above, AL",Lower:31.5,Middle:52.1,Upper:16.4},{Metro:"None of the above, AK",Lower:23.3,Middle:55.4,Upper:21.3},{Metro:"None of the above, AZ",Lower:28.6,Middle:54.6,Upper:16.8},{Metro:"None of the above, AR",Lower:33.5,Middle:52.3,Upper:14.2},{Metro:"None of the above, CA",Lower:29.6,Middle:50,Upper:20.5},{Metro:"None of the above, CO",Lower:22,Middle:54.3,Upper:23.7},{Metro:"None of the above, CT",Lower:23.7,Middle:51.6,Upper:24.7},{Metro:"None of the above, DE",Lower:21.5,Middle:58.5,Upper:20.1},{Metro:"None of the above, DC",Lower:22.1,Middle:40.4,Upper:37.5},{Metro:"None of the above, FL",Lower:31.6,Middle:53.2,Upper:15.2},{Metro:"None of the above, GA",Lower:28.4,Middle:53.3,Upper:18.4},{Metro:"None of the above, HI",Lower:24.8,Middle:56.8,Upper:18.4},{Metro:"None of the above, ID",Lower:25.7,Middle:58.4,Upper:16},{Metro:"None of the above, IL",Lower:27,Middle:53.4,Upper:19.7},{Metro:"None of the above, IN",Lower:27.3,Middle:56.8,Upper:15.9},{Metro:"None of the above, IA",Lower:23.4,Middle:57.8,Upper:18.8},{Metro:"None of the above, KS",Lower:26.1,Middle:55.4,Upper:18.5},{Metro:"None of the above, KY",Lower:31.6,Middle:53.4,Upper:15},{Metro:"None of the above, LA",Lower:35.7,Middle:49.8,Upper:14.6},{Metro:"None of the above, ME",Lower:27.7,Middle:56.8,Upper:15.4},{Metro:"None of the above, MD",Lower:22.1,Middle:51.2,Upper:26.7},{Metro:"None of the above, MA",Lower:23.9,Middle:50.1,Upper:26},{Metro:"None of the above, MI",Lower:27.6,Middle:55,Upper:17.4},{Metro:"None of the above, MN",Lower:22,Middle:56.4,Upper:21.6},{Metro:"None of the above, MS",Lower:36.2,Middle:51.6,Upper:12.2},{Metro:"None of the above, MO",Lower:27.3,Middle:55.8,Upper:16.9},{Metro:"None of the above, NE",Lower:23.1,Middle:58.2,Upper:18.8},{Metro:"None of the above, NV",Lower:27.5,Middle:56,Upper:16.5},{Metro:"None of the above, NH",Lower:20.7,Middle:56.9,Upper:22.5},{Metro:"None of the above, NJ",Lower:23.8,Middle:51.1,Upper:25},{Metro:"None of the above, NM",Lower:33.2,Middle:51,Upper:15.9},{Metro:"None of the above, NY",Lower:29.7,Middle:49.3,Upper:21},{Metro:"None of the above, NC",Lower:29.1,Middle:52.9,Upper:18},{Metro:"None of the above, ND",Lower:21.4,Middle:56.3,Upper:22.4},{Metro:"None of the above, OH",Lower:26.9,Middle:54.8,Upper:18.4},{Metro:"None of the above, OK",Lower:31.1,Middle:53.3,Upper:15.6},{Metro:"None of the above, OR",Lower:28.8,Middle:54.4,Upper:16.8},{Metro:"None of the above, PA",Lower:26.1,Middle:54.1,Upper:19.8},{Metro:"None of the above, RI",Lower:23.6,Middle:57,Upper:19.4},{Metro:"None of the above, SC",Lower:31,Middle:53.3,Upper:15.7},{Metro:"None of the above, TN",Lower:28.9,Middle:54.5,Upper:16.6},{Metro:"None of the above, TX",Lower:30.6,Middle:51.4,Upper:17.9},{Metro:"None of the above, UT",Lower:20.6,Middle:59.2,Upper:20.1},{Metro:"None of the above, VA",Lower:24.6,Middle:51,Upper:24.4},{Metro:"None of the above, WA",Lower:24.4,Middle:53.5,Upper:22.1},{Metro:"None of the above, WV",Lower:34.4,Middle:52.4,Upper:13.2},{Metro:"None of the above, WI",Lower:23.7,Middle:58.1,Upper:18.2},{Metro:"None of the above, WY",Lower:26.7,Middle:56.4,Upper:16.9},{Metro:"North Port-Bradenton-Sarasota, FL",Lower:26.4,Middle:53.8,Upper:19.8},{Metro:"Norwich-New London-Willimantic, CT",Lower:26.7,Middle:53.6,Upper:19.7},{Metro:"Ocala, FL",Lower:38.1,Middle:51.5,Upper:10.5},{Metro:"Odessa, TX",Lower:33,Middle:54.2,Upper:12.8},{Metro:"Ogden, UT",Lower:17.7,Middle:61.1,Upper:21.3},{Metro:"Oklahoma City, OK",Lower:27.6,Middle:55.1,Upper:17.3},{Metro:"Olympia-Lacey-Tumwater, WA",Lower:19.9,Middle:66,Upper:14.1},{Metro:"Omaha, NE-IA",Lower:20.5,Middle:58,Upper:21.5},{Metro:"Orlando-Kissimmee-Sanford, FL",Lower:30.1,Middle:53.9,Upper:15.9},{Metro:"Oshkosh-Neenah, WI",Lower:23.2,Middle:62.8,Upper:14},{Metro:"Owensboro, KY",Lower:28.9,Middle:54.1,Upper:16.9},{Metro:"Oxnard-Thousand Oaks-Ventura, CA",Lower:24.4,Middle:56,Upper:19.7},{Metro:"Palm Bay-Melbourne-Titusville, FL",Lower:26.1,Middle:55.5,Upper:18.4},{Metro:"Panama City-Panama City Beach, FL",Lower:27.2,Middle:57.8,Upper:15},{Metro:"Pensacola-Ferry Pass-Brent, FL",Lower:27.4,Middle:56.5,Upper:16.1},{Metro:"Philadelphia-Camden-Wilmington, PA-NJ-DE-MD",Lower:23.5,Middle:51.7,Upper:24.8},{Metro:"Phoenix-Mesa-Chandler, AZ",Lower:25.5,Middle:56.9,Upper:17.5},{Metro:"Pittsburgh, PA",Lower:24.6,Middle:55.1,Upper:20.3},{Metro:"Pittsfield, MA",Lower:25.8,Middle:55.8,Upper:18.4},{Metro:"Portland-South Portland, ME",Lower:20.6,Middle:58.3,Upper:21.1},{Metro:"Portland-Vancouver-Hillsboro, OR-WA",Lower:23.2,Middle:55.5,Upper:21.3},{Metro:"Port St. Lucie, FL",Lower:29.3,Middle:55.9,Upper:14.9},{Metro:"Prescott Valley-Prescott, AZ",Lower:26.2,Middle:58.8,Upper:15.1},{Metro:"Providence-Warwick, RI-MA",Lower:24.1,Middle:56.5,Upper:19.4},{Metro:"Provo-Orem-Lehi, UT",Lower:21.2,Middle:61.4,Upper:17.4},{Metro:"Pueblo, CO",Lower:33,Middle:55.4,Upper:11.7},{Metro:"Punta Gorda, FL",Lower:29.5,Middle:58,Upper:12.4},{Metro:"Racine-Mount Pleasant, WI",Lower:21.9,Middle:60.4,Upper:17.7},{Metro:"Raleigh-Cary, NC",Lower:20,Middle:53,Upper:27},{Metro:"Reading, PA",Lower:23.9,Middle:61,Upper:15.1},{Metro:"Redding, CA",Lower:32.6,Middle:55.9,Upper:11.5},{Metro:"Reno, NV",Lower:23,Middle:56.6,Upper:20.5},{Metro:"Richmond, VA",Lower:21.5,Middle:55.1,Upper:23.4},{Metro:"Riverside-San Bernardino-Ontario, CA",Lower:31.1,Middle:55.7,Upper:13.1},{Metro:"Roanoke, VA",Lower:27.2,Middle:57.8,Upper:15},{Metro:"Rochester, NY",Lower:26.4,Middle:55.6,Upper:18},{Metro:"Rockford, IL",Lower:27,Middle:56.7,Upper:16.4},{Metro:"Rocky Mount, NC",Lower:32.8,Middle:57.1,Upper:10.2},{Metro:"Sacramento-Roseville-Folsom, CA",Lower:26.8,Middle:53.2,Upper:20.1},{Metro:"Saginaw, MI",Lower:34.6,Middle:52.6,Upper:12.8},{Metro:"St. Cloud, MN",Lower:21.9,Middle:58.8,Upper:19.3},{Metro:"St. George, UT",Lower:23,Middle:56.1,Upper:21},{Metro:"St. Joseph, MO-KS",Lower:26.5,Middle:61.6,Upper:11.9},{Metro:"St. Louis, MO-IL",Lower:24.7,Middle:55.7,Upper:19.6},{Metro:"Salem, OR",Lower:29,Middle:58.4,Upper:12.6},{Metro:"Salinas, CA",Lower:30.6,Middle:52.8,Upper:16.6},{Metro:"Salt Lake City-Murray, UT",Lower:19.1,Middle:58.4,Upper:22.5},{Metro:"San Angelo, TX",Lower:37.3,Middle:49.6,Upper:13.1},{Metro:"San Antonio-New Braunfels, TX",Lower:29.1,Middle:55.3,Upper:15.6},{Metro:"San Diego-Chula Vista-Carlsbad, CA",Lower:26.2,Middle:52.6,Upper:21.2},{Metro:"San Francisco-Oakland-Fremont, CA",Lower:20.8,Middle:44.3,Upper:34.9},{Metro:"San Jose-Sunnyvale-Santa Clara, CA",Lower:17.4,Middle:41.7,Upper:40.9},{Metro:"San Luis Obispo-Paso Robles, CA",Lower:25,Middle:53.5,Upper:21.5},{Metro:"Santa Cruz-Watsonville, CA",Lower:24.9,Middle:48.7,Upper:26.5},{Metro:"Santa Fe, NM",Lower:26.5,Middle:50.2,Upper:23.3},{Metro:"Santa Maria-Santa Barbara, CA",Lower:31.2,Middle:49.1,Upper:19.7},{Metro:"Santa Rosa-Petaluma, CA",Lower:22.3,Middle:54.6,Upper:23.2},{Metro:"Scranton--Wilkes-Barre, PA",Lower:31.1,Middle:52.9,Upper:16},{Metro:"Seattle-Tacoma-Bellevue, WA",Lower:20.8,Middle:51,Upper:28.2},{Metro:"Sebastian-Vero Beach-West Vero Corridor, FL",Lower:28.6,Middle:52.4,Upper:19},{Metro:"Sheboygan, WI",Lower:20.9,Middle:65.8,Upper:13.3},{Metro:"South Dakota (All), SD",Lower:23.2,Middle:58.8,Upper:18},{Metro:"Spartanburg, SC",Lower:34.6,Middle:52.2,Upper:13.2},{Metro:"Spokane-Spokane Valley, WA",Lower:29.5,Middle:56.3,Upper:14.2},{Metro:"Springfield, IL",Lower:21.8,Middle:56.6,Upper:21.7},{Metro:"Springfield, MA",Lower:33.1,Middle:53.1,Upper:13.8},{Metro:"Springfield, MO",Lower:28.8,Middle:58.8,Upper:12.4},{Metro:"Springfield, OH",Lower:27.5,Middle:60.5,Upper:12},{Metro:"State College, PA",Lower:33.2,Middle:51.1,Upper:15.7},{Metro:"Stockton-Lodi, CA",Lower:30.3,Middle:56.9,Upper:12.8},{Metro:"Sumter, SC",Lower:34.6,Middle:56.7,Upper:8.7},{Metro:"Syracuse, NY",Lower:28.7,Middle:53.3,Upper:18},{Metro:"Tampa-St. Petersburg-Clearwater, FL",Lower:29.3,Middle:53.6,Upper:17.1},{Metro:"Toledo, OH",Lower:30.5,Middle:51.7,Upper:17.8},{Metro:"Topeka, KS",Lower:31.7,Middle:57.5,Upper:10.8},{Metro:"Trenton-Princeton, NJ",Lower:21,Middle:47.3,Upper:31.8},{Metro:"Tucson, AZ",Lower:32.2,Middle:52.5,Upper:15.3},{Metro:"Tulsa, OK",Lower:28.4,Middle:53.9,Upper:17.6},{Metro:"Tyler, TX",Lower:27.6,Middle:57.7,Upper:14.7},{Metro:"Urban Honolulu, HI",Lower:23.5,Middle:57.9,Upper:18.6},{Metro:"Utica-Rome, NY",Lower:27.7,Middle:54.3,Upper:18},{Metro:"Vallejo, CA",Lower:25.6,Middle:57.2,Upper:17.2},{Metro:"Vermont (All), VT",Lower:25.4,Middle:55.5,Upper:19.2},{Metro:"Virginia Beach-Chesapeake-Norfolk, VA-NC",Lower:25.9,Middle:55,Upper:19.2},{Metro:"Visalia, CA",Lower:41.5,Middle:49,Upper:9.5},{Metro:"Waco, TX",Lower:33.3,Middle:52.5,Upper:14.3},{Metro:"Washington-Arlington-Alexandria, DC-VA-MD-WV",Lower:18.2,Middle:49.1,Upper:32.8},{Metro:"Wausau, WI",Lower:18.6,Middle:61.2,Upper:20.2},{Metro:"Wenatchee-East Wenatchee, WA",Lower:24.1,Middle:61.1,Upper:14.8},{Metro:"Wichita, KS",Lower:28.9,Middle:55.8,Upper:15.3},{Metro:"Wichita Falls, TX",Lower:29.2,Middle:55.8,Upper:15},{Metro:"Wilmington, NC",Lower:25.5,Middle:56.8,Upper:17.7},{Metro:"Winston-Salem, NC",Lower:30.4,Middle:52.8,Upper:16.7},{Metro:"Worcester, MA",Lower:25.1,Middle:53.1,Upper:21.8},{Metro:"Yakima, WA",Lower:35.2,Middle:52.9,Upper:11.9},{Metro:"York-Hanover, PA",Lower:23.2,Middle:58.1,Upper:18.7},{Metro:"Youngstown-Warren, OH",Lower:31.1,Middle:56.2,Upper:12.7},{Metro:"Yuba City, CA",Lower:32.1,Middle:57.4,Upper:10.5},{Metro:"Yuma, AZ",Lower:39.2,Middle:51.5,Upper:9.3}],s=[{maritalGroup:"married",raceGroup:"White",educationGroup:"Lt hs",ageGroup:"18 to 29",lowerIncome:51.8,middleIncome:43.6,upperIncome:4.6},{maritalGroup:"married",raceGroup:"White",educationGroup:"Lt hs",ageGroup:"30 to 44",lowerIncome:45.4,middleIncome:47.9,upperIncome:6.7},{maritalGroup:"married",raceGroup:"White",educationGroup:"Lt hs",ageGroup:"45 to 64",lowerIncome:37.5,middleIncome:52.1,upperIncome:10.5},{maritalGroup:"married",raceGroup:"White",educationGroup:"Lt hs",ageGroup:"65 or older",lowerIncome:51.9,middleIncome:42.4,upperIncome:5.8},{maritalGroup:"married",raceGroup:"White",educationGroup:"High school",ageGroup:"18 to 29",lowerIncome:38.4,middleIncome:56.5,upperIncome:5.1},{maritalGroup:"married",raceGroup:"White",educationGroup:"High school",ageGroup:"30 to 44",lowerIncome:29.3,middleIncome:62,upperIncome:8.7},{maritalGroup:"married",raceGroup:"White",educationGroup:"High school",ageGroup:"45 to 64",lowerIncome:19.5,middleIncome:63.5,upperIncome:17},{maritalGroup:"married",raceGroup:"White",educationGroup:"High school",ageGroup:"65 or older",lowerIncome:34.5,middleIncome:56.5,upperIncome:9},{maritalGroup:"married",raceGroup:"White",educationGroup:"Some college",ageGroup:"18 to 29",lowerIncome:29,middleIncome:63.8,upperIncome:7.2},{maritalGroup:"married",raceGroup:"White",educationGroup:"Some college",ageGroup:"30 to 44",lowerIncome:19.8,middleIncome:67.3,upperIncome:12.9},{maritalGroup:"married",raceGroup:"White",educationGroup:"Some college",ageGroup:"45 to 64",lowerIncome:12.7,middleIncome:60,upperIncome:27.3},{maritalGroup:"married",raceGroup:"White",educationGroup:"Some college",ageGroup:"65 or older",lowerIncome:23.4,middleIncome:61.4,upperIncome:15.3},{maritalGroup:"married",raceGroup:"White",educationGroup:"Bachelors",ageGroup:"18 to 29",lowerIncome:11.3,middleIncome:63.9,upperIncome:24.8},{maritalGroup:"married",raceGroup:"White",educationGroup:"Bachelors",ageGroup:"30 to 44",lowerIncome:7,middleIncome:54.9,upperIncome:38.1},{maritalGroup:"married",raceGroup:"White",educationGroup:"Bachelors",ageGroup:"45 to 64",lowerIncome:5.5,middleIncome:41.3,upperIncome:53.2},{maritalGroup:"married",raceGroup:"White",educationGroup:"Bachelors",ageGroup:"65 or older",lowerIncome:11.6,middleIncome:52.7,upperIncome:35.6},{maritalGroup:"married",raceGroup:"Black",educationGroup:"Lt hs",ageGroup:"18 to 29",lowerIncome:58.6,middleIncome:37.9,upperIncome:3.4},{maritalGroup:"married",raceGroup:"Black",educationGroup:"Lt hs",ageGroup:"30 to 44",lowerIncome:56.6,middleIncome:40.9,upperIncome:2.5},{maritalGroup:"married",raceGroup:"Black",educationGroup:"Lt hs",ageGroup:"45 to 64",lowerIncome:47,middleIncome:46.8,upperIncome:6.2},{maritalGroup:"married",raceGroup:"Black",educationGroup:"Lt hs",ageGroup:"65 or older",lowerIncome:54.3,middleIncome:41.2,upperIncome:4.5},{maritalGroup:"married",raceGroup:"Black",educationGroup:"High school",ageGroup:"18 to 29",lowerIncome:49.7,middleIncome:47.1,upperIncome:3.2},{maritalGroup:"married",raceGroup:"Black",educationGroup:"High school",ageGroup:"30 to 44",lowerIncome:42,middleIncome:52.8,upperIncome:5.3},{maritalGroup:"married",raceGroup:"Black",educationGroup:"High school",ageGroup:"45 to 64",lowerIncome:32,middleIncome:57.9,upperIncome:10.1},{maritalGroup:"married",raceGroup:"Black",educationGroup:"High school",ageGroup:"65 or older",lowerIncome:42.5,middleIncome:51.3,upperIncome:6.2},{maritalGroup:"married",raceGroup:"Black",educationGroup:"Some college",ageGroup:"18 to 29",lowerIncome:39.9,middleIncome:56,upperIncome:4.1},{maritalGroup:"married",raceGroup:"Black",educationGroup:"Some college",ageGroup:"30 to 44",lowerIncome:32.2,middleIncome:59.2,upperIncome:8.6},{maritalGroup:"married",raceGroup:"Black",educationGroup:"Some college",ageGroup:"45 to 64",lowerIncome:19.9,middleIncome:62.7,upperIncome:17.4},{maritalGroup:"married",raceGroup:"Black",educationGroup:"Some college",ageGroup:"65 or older",lowerIncome:31.1,middleIncome:57.7,upperIncome:11.2},{maritalGroup:"married",raceGroup:"Black",educationGroup:"Bachelors",ageGroup:"18 to 29",lowerIncome:20,middleIncome:64.5,upperIncome:15.5},{maritalGroup:"married",raceGroup:"Black",educationGroup:"Bachelors",ageGroup:"30 to 44",lowerIncome:14.3,middleIncome:59.5,upperIncome:26.2},{maritalGroup:"married",raceGroup:"Black",educationGroup:"Bachelors",ageGroup:"45 to 64",lowerIncome:10.3,middleIncome:51.4,upperIncome:38.4},{maritalGroup:"married",raceGroup:"Black",educationGroup:"Bachelors",ageGroup:"65 or older",lowerIncome:16.3,middleIncome:57.7,upperIncome:26},{maritalGroup:"married",raceGroup:"Asian",educationGroup:"Lt hs",ageGroup:"18 to 29",lowerIncome:48.7,middleIncome:44.9,upperIncome:6.4},{maritalGroup:"married",raceGroup:"Asian",educationGroup:"Lt hs",ageGroup:"30 to 44",lowerIncome:53.2,middleIncome:40.2,upperIncome:6.6},{maritalGroup:"married",raceGroup:"Asian",educationGroup:"Lt hs",ageGroup:"45 to 64",lowerIncome:38,middleIncome:52.9,upperIncome:9.1},{maritalGroup:"married",raceGroup:"Asian",educationGroup:"Lt hs",ageGroup:"65 or older",lowerIncome:45.9,middleIncome:44,upperIncome:10},{maritalGroup:"married",raceGroup:"Asian",educationGroup:"High school",ageGroup:"18 to 29",lowerIncome:37.1,middleIncome:52.5,upperIncome:10.4},{maritalGroup:"married",raceGroup:"Asian",educationGroup:"High school",ageGroup:"30 to 44",lowerIncome:39.5,middleIncome:50.2,upperIncome:10.4},{maritalGroup:"married",raceGroup:"Asian",educationGroup:"High school",ageGroup:"45 to 64",lowerIncome:28.7,middleIncome:55.8,upperIncome:15.4},{maritalGroup:"married",raceGroup:"Asian",educationGroup:"High school",ageGroup:"65 or older",lowerIncome:36.7,middleIncome:48.6,upperIncome:14.7},{maritalGroup:"married",raceGroup:"Asian",educationGroup:"Some college",ageGroup:"18 to 29",lowerIncome:29,middleIncome:56.9,upperIncome:14.1},{maritalGroup:"married",raceGroup:"Asian",educationGroup:"Some college",ageGroup:"30 to 44",lowerIncome:23.5,middleIncome:59,upperIncome:17.5},{maritalGroup:"married",raceGroup:"Asian",educationGroup:"Some college",ageGroup:"45 to 64",lowerIncome:18.6,middleIncome:56.8,upperIncome:24.6},{maritalGroup:"married",raceGroup:"Asian",educationGroup:"Some college",ageGroup:"65 or older",lowerIncome:28.3,middleIncome:52.1,upperIncome:19.7},{maritalGroup:"married",raceGroup:"Asian",educationGroup:"Bachelors",ageGroup:"18 to 29",lowerIncome:13.8,middleIncome:46.9,upperIncome:39.4},{maritalGroup:"married",raceGroup:"Asian",educationGroup:"Bachelors",ageGroup:"30 to 44",lowerIncome:8.9,middleIncome:42.2,upperIncome:48.9},{maritalGroup:"married",raceGroup:"Asian",educationGroup:"Bachelors",ageGroup:"45 to 64",lowerIncome:8.8,middleIncome:38.3,upperIncome:53},{maritalGroup:"married",raceGroup:"Asian",educationGroup:"Bachelors",ageGroup:"65 or older",lowerIncome:19.1,middleIncome:44.8,upperIncome:36.1},{maritalGroup:"married",raceGroup:"Hispanic",educationGroup:"Lt hs",ageGroup:"18 to 29",lowerIncome:57.8,middleIncome:40.1,upperIncome:2.1},{maritalGroup:"married",raceGroup:"Hispanic",educationGroup:"Lt hs",ageGroup:"30 to 44",lowerIncome:58.4,middleIncome:39.1,upperIncome:2.5},{maritalGroup:"married",raceGroup:"Hispanic",educationGroup:"Lt hs",ageGroup:"45 to 64",lowerIncome:40.1,middleIncome:55.4,upperIncome:4.5},{maritalGroup:"married",raceGroup:"Hispanic",educationGroup:"Lt hs",ageGroup:"65 or older",lowerIncome:55.5,middleIncome:40.8,upperIncome:3.7},{maritalGroup:"married",raceGroup:"Hispanic",educationGroup:"High school",ageGroup:"18 to 29",lowerIncome:44.7,middleIncome:51.7,upperIncome:3.6},{maritalGroup:"married",raceGroup:"Hispanic",educationGroup:"High school",ageGroup:"30 to 44",lowerIncome:41.8,middleIncome:53,upperIncome:5.2},{maritalGroup:"married",raceGroup:"Hispanic",educationGroup:"High school",ageGroup:"45 to 64",lowerIncome:28.8,middleIncome:62.1,upperIncome:9.1},{maritalGroup:"married",raceGroup:"Hispanic",educationGroup:"High school",ageGroup:"65 or older",lowerIncome:41.4,middleIncome:51.5,upperIncome:7},{maritalGroup:"married",raceGroup:"Hispanic",educationGroup:"Some college",ageGroup:"18 to 29",lowerIncome:35.3,middleIncome:59.2,upperIncome:5.5},{maritalGroup:"married",raceGroup:"Hispanic",educationGroup:"Some college",ageGroup:"30 to 44",lowerIncome:29.3,middleIncome:60.6,upperIncome:10.1},{maritalGroup:"married",raceGroup:"Hispanic",educationGroup:"Some college",ageGroup:"45 to 64",lowerIncome:19.9,middleIncome:61,upperIncome:19.1},{maritalGroup:"married",raceGroup:"Hispanic",educationGroup:"Some college",ageGroup:"65 or older",lowerIncome:28.7,middleIncome:57.5,upperIncome:13.9},{maritalGroup:"married",raceGroup:"Hispanic",educationGroup:"Bachelors",ageGroup:"18 to 29",lowerIncome:18.2,middleIncome:63.3,upperIncome:18.6},{maritalGroup:"married",raceGroup:"Hispanic",educationGroup:"Bachelors",ageGroup:"30 to 44",lowerIncome:14.7,middleIncome:56.6,upperIncome:28.6},{maritalGroup:"married",raceGroup:"Hispanic",educationGroup:"Bachelors",ageGroup:"45 to 64",lowerIncome:12,middleIncome:50,upperIncome:38.1},{maritalGroup:"married",raceGroup:"Hispanic",educationGroup:"Bachelors",ageGroup:"65 or older",lowerIncome:22.3,middleIncome:50.8,upperIncome:26.9},{maritalGroup:"married",raceGroup:"Other or multiracial",educationGroup:"Lt hs",ageGroup:"18 to 29",lowerIncome:53.8,middleIncome:43.3,upperIncome:3},{maritalGroup:"married",raceGroup:"Other or multiracial",educationGroup:"Lt hs",ageGroup:"30 to 44",lowerIncome:51.4,middleIncome:41.1,upperIncome:7.6},{maritalGroup:"married",raceGroup:"Other or multiracial",educationGroup:"Lt hs",ageGroup:"45 to 64",lowerIncome:38.4,middleIncome:51,upperIncome:10.5},{maritalGroup:"married",raceGroup:"Other or multiracial",educationGroup:"Lt hs",ageGroup:"65 or older",lowerIncome:52,middleIncome:41.8,upperIncome:6.2},{maritalGroup:"married",raceGroup:"Other or multiracial",educationGroup:"High school",ageGroup:"18 to 29",lowerIncome:42.9,middleIncome:51.3,upperIncome:5.8},{maritalGroup:"married",raceGroup:"Other or multiracial",educationGroup:"High school",ageGroup:"30 to 44",lowerIncome:35.8,middleIncome:56.3,upperIncome:7.9},{maritalGroup:"married",raceGroup:"Other or multiracial",educationGroup:"High school",ageGroup:"45 to 64",lowerIncome:25.7,middleIncome:60.3,upperIncome:14.1},{maritalGroup:"married",raceGroup:"Other or multiracial",educationGroup:"High school",ageGroup:"65 or older",lowerIncome:35.6,middleIncome:55.2,upperIncome:9.2},{maritalGroup:"married",raceGroup:"Other or multiracial",educationGroup:"Some college",ageGroup:"18 to 29",lowerIncome:34.2,middleIncome:57.1,upperIncome:8.7},{maritalGroup:"married",raceGroup:"Other or multiracial",educationGroup:"Some college",ageGroup:"30 to 44",lowerIncome:26,middleIncome:61.8,upperIncome:12.2},{maritalGroup:"married",raceGroup:"Other or multiracial",educationGroup:"Some college",ageGroup:"45 to 64",lowerIncome:18.1,middleIncome:59.5,upperIncome:22.4},{maritalGroup:"married",raceGroup:"Other or multiracial",educationGroup:"Some college",ageGroup:"65 or older",lowerIncome:27.8,middleIncome:57.8,upperIncome:14.4},{maritalGroup:"married",raceGroup:"Other or multiracial",educationGroup:"Bachelors",ageGroup:"18 to 29",lowerIncome:15.6,middleIncome:58.2,upperIncome:26.2},{maritalGroup:"married",raceGroup:"Other or multiracial",educationGroup:"Bachelors",ageGroup:"30 to 44",lowerIncome:10.9,middleIncome:53.6,upperIncome:35.6},{maritalGroup:"married",raceGroup:"Other or multiracial",educationGroup:"Bachelors",ageGroup:"45 to 64",lowerIncome:8.8,middleIncome:42.8,upperIncome:48.4},{maritalGroup:"married",raceGroup:"Other or multiracial",educationGroup:"Bachelors",ageGroup:"65 or older",lowerIncome:14.8,middleIncome:53.4,upperIncome:31.9},{maritalGroup:"not married",raceGroup:"White",educationGroup:"Lt hs",ageGroup:"18 to 29",lowerIncome:33.6,middleIncome:51.8,upperIncome:14.6},{maritalGroup:"not married",raceGroup:"White",educationGroup:"Lt hs",ageGroup:"30 to 44",lowerIncome:54.5,middleIncome:40.4,upperIncome:5.1},{maritalGroup:"not married",raceGroup:"White",educationGroup:"Lt hs",ageGroup:"45 to 64",lowerIncome:60.1,middleIncome:35.3,upperIncome:4.7},{maritalGroup:"not married",raceGroup:"White",educationGroup:"Lt hs",ageGroup:"65 or older",lowerIncome:67.2,middleIncome:28.7,upperIncome:4.1},{maritalGroup:"not married",raceGroup:"White",educationGroup:"High school",ageGroup:"18 to 29",lowerIncome:30.1,middleIncome:57.4,upperIncome:12.5},{maritalGroup:"not married",raceGroup:"White",educationGroup:"High school",ageGroup:"30 to 44",lowerIncome:39.5,middleIncome:52.8,upperIncome:7.7},{maritalGroup:"not married",raceGroup:"White",educationGroup:"High school",ageGroup:"45 to 64",lowerIncome:42.4,middleIncome:50,upperIncome:7.6},{maritalGroup:"not married",raceGroup:"White",educationGroup:"High school",ageGroup:"65 or older",lowerIncome:54.1,middleIncome:40.2,upperIncome:5.7},{maritalGroup:"not married",raceGroup:"White",educationGroup:"Some college",ageGroup:"18 to 29",lowerIncome:31.5,middleIncome:53.8,upperIncome:14.7},{maritalGroup:"not married",raceGroup:"White",educationGroup:"Some college",ageGroup:"30 to 44",lowerIncome:31.8,middleIncome:56.4,upperIncome:11.8},{maritalGroup:"not married",raceGroup:"White",educationGroup:"Some college",ageGroup:"45 to 64",lowerIncome:33.3,middleIncome:54.6,upperIncome:12.1},{maritalGroup:"not married",raceGroup:"White",educationGroup:"Some college",ageGroup:"65 or older",lowerIncome:45.7,middleIncome:46,upperIncome:8.3},{maritalGroup:"not married",raceGroup:"White",educationGroup:"Bachelors",ageGroup:"18 to 29",lowerIncome:15.9,middleIncome:55.8,upperIncome:28.3},{maritalGroup:"not married",raceGroup:"White",educationGroup:"Bachelors",ageGroup:"30 to 44",lowerIncome:11.9,middleIncome:54.6,upperIncome:33.5},{maritalGroup:"not married",raceGroup:"White",educationGroup:"Bachelors",ageGroup:"45 to 64",lowerIncome:17.6,middleIncome:49.8,upperIncome:32.6},{maritalGroup:"not married",raceGroup:"White",educationGroup:"Bachelors",ageGroup:"65 or older",lowerIncome:27.1,middleIncome:50.9,upperIncome:22},{maritalGroup:"not married",raceGroup:"Black",educationGroup:"Lt hs",ageGroup:"18 to 29",lowerIncome:58.7,middleIncome:37,upperIncome:4.4},{maritalGroup:"not married",raceGroup:"Black",educationGroup:"Lt hs",ageGroup:"30 to 44",lowerIncome:69.3,middleIncome:28.1,upperIncome:2.6},{maritalGroup:"not married",raceGroup:"Black",educationGroup:"Lt hs",ageGroup:"45 to 64",lowerIncome:70.7,middleIncome:26.2,upperIncome:3.1},{maritalGroup:"not married",raceGroup:"Black",educationGroup:"Lt hs",ageGroup:"65 or older",lowerIncome:71.8,middleIncome:25.4,upperIncome:2.8},{maritalGroup:"not married",raceGroup:"Black",educationGroup:"High school",ageGroup:"18 to 29",lowerIncome:50.6,middleIncome:44.3,upperIncome:5.1},{maritalGroup:"not married",raceGroup:"Black",educationGroup:"High school",ageGroup:"30 to 44",lowerIncome:56.1,middleIncome:39.8,upperIncome:4.2},{maritalGroup:"not married",raceGroup:"Black",educationGroup:"High school",ageGroup:"45 to 64",lowerIncome:55.7,middleIncome:39.7,upperIncome:4.6},{maritalGroup:"not married",raceGroup:"Black",educationGroup:"High school",ageGroup:"65 or older",lowerIncome:62.1,middleIncome:34.4,upperIncome:3.6},{maritalGroup:"not married",raceGroup:"Black",educationGroup:"Some college",ageGroup:"18 to 29",lowerIncome:41.5,middleIncome:51,upperIncome:7.5},{maritalGroup:"not married",raceGroup:"Black",educationGroup:"Some college",ageGroup:"30 to 44",lowerIncome:48,middleIncome:46,upperIncome:6},{maritalGroup:"not married",raceGroup:"Black",educationGroup:"Some college",ageGroup:"45 to 64",lowerIncome:44.6,middleIncome:48.4,upperIncome:7},{maritalGroup:"not married",raceGroup:"Black",educationGroup:"Some college",ageGroup:"65 or older",lowerIncome:54.4,middleIncome:40.2,upperIncome:5.4},{maritalGroup:"not married",raceGroup:"Black",educationGroup:"Bachelors",ageGroup:"18 to 29",lowerIncome:23.2,middleIncome:59.2,upperIncome:17.6},{maritalGroup:"not married",raceGroup:"Black",educationGroup:"Bachelors",ageGroup:"30 to 44",lowerIncome:21.9,middleIncome:58.4,upperIncome:19.7},{maritalGroup:"not married",raceGroup:"Black",educationGroup:"Bachelors",ageGroup:"45 to 64",lowerIncome:22,middleIncome:55.6,upperIncome:22.4},{maritalGroup:"not married",raceGroup:"Black",educationGroup:"Bachelors",ageGroup:"65 or older",lowerIncome:34.3,middleIncome:50.6,upperIncome:15.1},{maritalGroup:"not married",raceGroup:"Asian",educationGroup:"Lt hs",ageGroup:"18 to 29",lowerIncome:31.1,middleIncome:49.7,upperIncome:19.3},{maritalGroup:"not married",raceGroup:"Asian",educationGroup:"Lt hs",ageGroup:"30 to 44",lowerIncome:39.1,middleIncome:53,upperIncome:7.9},{maritalGroup:"not married",raceGroup:"Asian",educationGroup:"Lt hs",ageGroup:"45 to 64",lowerIncome:41.2,middleIncome:50,upperIncome:8.8},{maritalGroup:"not married",raceGroup:"Asian",educationGroup:"Lt hs",ageGroup:"65 or older",lowerIncome:44.6,middleIncome:43,upperIncome:12.4},{maritalGroup:"not married",raceGroup:"Asian",educationGroup:"High school",ageGroup:"18 to 29",lowerIncome:31,middleIncome:51.9,upperIncome:17.1},{maritalGroup:"not married",raceGroup:"Asian",educationGroup:"High school",ageGroup:"30 to 44",lowerIncome:27.8,middleIncome:62.6,upperIncome:9.6},{maritalGroup:"not married",raceGroup:"Asian",educationGroup:"High school",ageGroup:"45 to 64",lowerIncome:34.7,middleIncome:54.3,upperIncome:11},{maritalGroup:"not married",raceGroup:"Asian",educationGroup:"High school",ageGroup:"65 or older",lowerIncome:40.6,middleIncome:43,upperIncome:16.4},{maritalGroup:"not married",raceGroup:"Asian",educationGroup:"Some college",ageGroup:"18 to 29",lowerIncome:36.7,middleIncome:48.6,upperIncome:14.7},{maritalGroup:"not married",raceGroup:"Asian",educationGroup:"Some college",ageGroup:"30 to 44",lowerIncome:24.3,middleIncome:58.2,upperIncome:17.5},{maritalGroup:"not married",raceGroup:"Asian",educationGroup:"Some college",ageGroup:"45 to 64",lowerIncome:27.6,middleIncome:53.9,upperIncome:18.6},{maritalGroup:"not married",raceGroup:"Asian",educationGroup:"Some college",ageGroup:"65 or older",lowerIncome:35.5,middleIncome:47.4,upperIncome:17.1},{maritalGroup:"not married",raceGroup:"Asian",educationGroup:"Bachelors",ageGroup:"18 to 29",lowerIncome:22.1,middleIncome:42.4,upperIncome:35.5},{maritalGroup:"not married",raceGroup:"Asian",educationGroup:"Bachelors",ageGroup:"30 to 44",lowerIncome:11.8,middleIncome:44.4,upperIncome:43.8},{maritalGroup:"not married",raceGroup:"Asian",educationGroup:"Bachelors",ageGroup:"45 to 64",lowerIncome:17.2,middleIncome:45.4,upperIncome:37.4},{maritalGroup:"not married",raceGroup:"Asian",educationGroup:"Bachelors",ageGroup:"65 or older",lowerIncome:27.2,middleIncome:43.2,upperIncome:29.6},{maritalGroup:"not married",raceGroup:"Hispanic",educationGroup:"Lt hs",ageGroup:"18 to 29",lowerIncome:49.2,middleIncome:46.4,upperIncome:4.4},{maritalGroup:"not married",raceGroup:"Hispanic",educationGroup:"Lt hs",ageGroup:"30 to 44",lowerIncome:57,middleIncome:39.9,upperIncome:3.1},{maritalGroup:"not married",raceGroup:"Hispanic",educationGroup:"Lt hs",ageGroup:"45 to 64",lowerIncome:52.9,middleIncome:43.5,upperIncome:3.6},{maritalGroup:"not married",raceGroup:"Hispanic",educationGroup:"Lt hs",ageGroup:"65 or older",lowerIncome:61.6,middleIncome:34.7,upperIncome:3.7},{maritalGroup:"not married",raceGroup:"Hispanic",educationGroup:"High school",ageGroup:"18 to 29",lowerIncome:38.3,middleIncome:55.8,upperIncome:5.9},{maritalGroup:"not married",raceGroup:"Hispanic",educationGroup:"High school",ageGroup:"30 to 44",lowerIncome:43.4,middleIncome:51.1,upperIncome:5.6},{maritalGroup:"not married",raceGroup:"Hispanic",educationGroup:"High school",ageGroup:"45 to 64",lowerIncome:43.1,middleIncome:50.7,upperIncome:6.2},{maritalGroup:"not married",raceGroup:"Hispanic",educationGroup:"High school",ageGroup:"65 or older",lowerIncome:54.3,middleIncome:40.1,upperIncome:5.6},{maritalGroup:"not married",raceGroup:"Hispanic",educationGroup:"Some college",ageGroup:"18 to 29",lowerIncome:35.5,middleIncome:56.8,upperIncome:7.7},{maritalGroup:"not married",raceGroup:"Hispanic",educationGroup:"Some college",ageGroup:"30 to 44",lowerIncome:36.1,middleIncome:55.8,upperIncome:8.2},{maritalGroup:"not married",raceGroup:"Hispanic",educationGroup:"Some college",ageGroup:"45 to 64",lowerIncome:36.9,middleIncome:53.1,upperIncome:9.9},{maritalGroup:"not married",raceGroup:"Hispanic",educationGroup:"Some college",ageGroup:"65 or older",lowerIncome:48.8,middleIncome:43.7,upperIncome:7.6},{maritalGroup:"not married",raceGroup:"Hispanic",educationGroup:"Bachelors",ageGroup:"18 to 29",lowerIncome:19.8,middleIncome:61.5,upperIncome:18.7},{maritalGroup:"not married",raceGroup:"Hispanic",educationGroup:"Bachelors",ageGroup:"30 to 44",lowerIncome:19.3,middleIncome:57.3,upperIncome:23.5},{maritalGroup:"not married",raceGroup:"Hispanic",educationGroup:"Bachelors",ageGroup:"45 to 64",lowerIncome:23.2,middleIncome:53.3,upperIncome:23.5},{maritalGroup:"not married",raceGroup:"Hispanic",educationGroup:"Bachelors",ageGroup:"65 or older",lowerIncome:37.3,middleIncome:48.7,upperIncome:14},{maritalGroup:"not married",raceGroup:"Other or multiracial",educationGroup:"Lt hs",ageGroup:"18 to 29",lowerIncome:45.1,middleIncome:45.9,upperIncome:9.1},{maritalGroup:"not married",raceGroup:"Other or multiracial",educationGroup:"Lt hs",ageGroup:"30 to 44",lowerIncome:58.7,middleIncome:36.7,upperIncome:4.6},{maritalGroup:"not married",raceGroup:"Other or multiracial",educationGroup:"Lt hs",ageGroup:"45 to 64",lowerIncome:65.5,middleIncome:29.9,upperIncome:4.6},{maritalGroup:"not married",raceGroup:"Other or multiracial",educationGroup:"Lt hs",ageGroup:"65 or older",lowerIncome:66.2,middleIncome:29.2,upperIncome:4.7},{maritalGroup:"not married",raceGroup:"Other or multiracial",educationGroup:"High school",ageGroup:"18 to 29",lowerIncome:36.2,middleIncome:54,upperIncome:9.8},{maritalGroup:"not married",raceGroup:"Other or multiracial",educationGroup:"High school",ageGroup:"30 to 44",lowerIncome:48.4,middleIncome:44.6,upperIncome:7},{maritalGroup:"not married",raceGroup:"Other or multiracial",educationGroup:"High school",ageGroup:"45 to 64",lowerIncome:50.7,middleIncome:42.6,upperIncome:6.7},{maritalGroup:"not married",raceGroup:"Other or multiracial",educationGroup:"High school",ageGroup:"65 or older",lowerIncome:54.9,middleIncome:38.8,upperIncome:6.4},{maritalGroup:"not married",raceGroup:"Other or multiracial",educationGroup:"Some college",ageGroup:"18 to 29",lowerIncome:34.7,middleIncome:52.9,upperIncome:12.5},{maritalGroup:"not married",raceGroup:"Other or multiracial",educationGroup:"Some college",ageGroup:"30 to 44",lowerIncome:40.2,middleIncome:49.9,upperIncome:9.9},{maritalGroup:"not married",raceGroup:"Other or multiracial",educationGroup:"Some college",ageGroup:"45 to 64",lowerIncome:41.9,middleIncome:48.8,upperIncome:9.3},{maritalGroup:"not married",raceGroup:"Other or multiracial",educationGroup:"Some college",ageGroup:"65 or older",lowerIncome:53.6,middleIncome:38.4,upperIncome:8},{maritalGroup:"not married",raceGroup:"Other or multiracial",educationGroup:"Bachelors",ageGroup:"18 to 29",lowerIncome:18.4,middleIncome:55.1,upperIncome:26.5},{maritalGroup:"not married",raceGroup:"Other or multiracial",educationGroup:"Bachelors",ageGroup:"30 to 44",lowerIncome:15.4,middleIncome:54.1,upperIncome:30.6},{maritalGroup:"not married",raceGroup:"Other or multiracial",educationGroup:"Bachelors",ageGroup:"45 to 64",lowerIncome:22,middleIncome:49,upperIncome:29},{maritalGroup:"not married",raceGroup:"Other or multiracial",educationGroup:"Bachelors",ageGroup:"65 or older",lowerIncome:34.5,middleIncome:46.1,upperIncome:19.4}],c=["Akron, OH","Albany, OR","Albany-Schenectady-Troy, NY","Albuquerque, NM","Allentown-Bethlehem-Easton, PA-NJ","Amarillo, TX","Ames, IA","Anchorage, AK","Ann Arbor, MI","Anniston-Oxford, AL","Asheville, NC","Atlanta-Sandy Springs-Roswell, GA","Atlantic City-Hammonton, NJ","Augusta-Richmond County, GA-SC","Austin-Round Rock-San Marcos, TX","Bakersfield-Delano, CA","Baltimore-Columbia-Towson, MD","Bangor, ME","Barnstable Town, MA","Baton Rouge, LA","Beaumont-Port Arthur, TX","Beckley, WV","Bellingham, WA","Bend, OR","Birmingham, AL","Bismarck, ND","Blacksburg-Christiansburg-Radford, VA","Bloomington, IL","Bloomington, IN","Boise City, ID","Boston-Cambridge-Newton, MA-NH","Bremerton-Silverdale-Port Orchard, WA","Bridgeport-Stamford-Danbury, CT","Brownsville-Harlingen, TX","Buffalo-Cheektowaga, NY","Burlington, NC","Canton-Massillon, OH","Cape Coral-Fort Myers, FL","Charleston, WV","Charleston-North Charleston, SC","Charlotte-Concord-Gastonia, NC-SC","Charlottesville, VA","Chattanooga, TN-GA","Cheyenne, WY","Chicago-Naperville-Elgin, IL-IN","Chico, CA","Cincinnati, OH-KY-IN","Clarksville, TN-KY","Cleveland, TN","Coeur d'Alene, ID","College Station-Bryan, TX","Colorado Springs, CO","Columbia, SC","Columbus, OH","Corpus Christi, TX","Crestview-Fort Walton Beach-Destin, FL","Dallas-Fort Worth-Arlington, TX","Daphne-Fairhope-Foley, AL","Dayton-Kettering-Beavercreek, OH","Decatur, AL","Deltona-Daytona Beach-Ormond Beach, FL","Denver-Aurora-Centennial, CO","Des Moines-West Des Moines, IA","Detroit-Warren-Dearborn, MI","Dothan, AL","Dover, DE","El Centro, CA","Elizabethtown, KY","Elkhart-Goshen, IN","El Paso, TX","Erie, PA","Eugene-Springfield, OR","Evansville, IN","Fayetteville, NC","Fayetteville-Springdale-Rogers, AR","Flagstaff, AZ","Fort Collins-Loveland, CO","Fort Wayne, IN","Fresno, CA","Gainesville, GA","Glens Falls, NY","Goldsboro, NC","Grand Junction, CO","Grand Rapids-Wyoming-Kentwood, MI","Greeley, CO","Greensboro-High Point, NC","Greenville, NC","Greenville-Anderson-Greer, SC","Hanford-Corcoran, CA","Harrisburg-Carlisle, PA","Harrisonburg, VA","Hartford-West Hartford-East Hartford, CT","Hattiesburg, MS","Hickory-Lenoir-Morganton, NC","Homosassa Springs, FL","Houston-Pasadena-The Woodlands, TX","Huntsville, AL","Indianapolis-Carmel-Greenwood, IN","Iowa City, IA","Ithaca, NY","Jackson, MI","Jackson, MS","Jacksonville, FL","Janesville-Beloit, WI","Johnson City, TN","Johnstown, PA","Jonesboro, AR","Joplin, MO-KS","Kalamazoo-Portage, MI","Kansas City, MO-KS","Knoxville, TN","Lafayette, LA","Lake Havasu City-Kingman, AZ","Lakeland-Winter Haven, FL","Lancaster, PA","Lansing-East Lansing, MI","Laredo, TX","Las Cruces, NM","Las Vegas-Henderson-North Las Vegas, NV","Lawrence, KS","Lawton, OK","Lebanon, PA","Lewiston-Auburn, ME","Lima, OH","Lincoln, NE","Little Rock-North Little Rock-Conway, AR","Los Angeles-Long Beach-Anaheim, CA","Louisville/Jefferson County, KY-IN","Lubbock, TX","Lynchburg, VA","Manhattan, KS","Mankato, MN","Mansfield, OH","McAllen-Edinburg-Mission, TX","Medford, OR","Memphis, TN-MS-AR","Merced, CA","Miami-Fort Lauderdale-West Palm Beach, FL","Michigan City-La Porte, IN","Midland, TX","Milwaukee-Waukesha, WI","Minneapolis-St. Paul-Bloomington, MN-WI","Mobile, AL","Modesto, CA","Monroe, MI","Montana (All), MT","Montgomery, AL","Mount Vernon-Anacortes, WA","Muncie, IN","Muskegon-Norton Shores, MI","Myrtle Beach-Conway-North Myrtle Beach, SC","Napa, CA","Naples-Marco Island, FL","Nashville-Davidson--Murfreesboro--Franklin, TN","New Haven, CT","New Orleans-Metairie, LA","New York-Newark-Jersey City, NY-NJ","Niles, MI","North Port-Bradenton-Sarasota, FL","Norwich-New London-Willimantic, CT","Ocala, FL","Odessa, TX","Ogden, UT","Oklahoma City, OK","Olympia-Lacey-Tumwater, WA","Omaha, NE-IA","Orlando-Kissimmee-Sanford, FL","Oshkosh-Neenah, WI","Owensboro, KY","Oxnard-Thousand Oaks-Ventura, CA","Palm Bay-Melbourne-Titusville, FL","Panama City-Panama City Beach, FL","Pensacola-Ferry Pass-Brent, FL","Philadelphia-Camden-Wilmington, PA-NJ-DE-MD","Phoenix-Mesa-Chandler, AZ","Pittsburgh, PA","Pittsfield, MA","Portland-South Portland, ME","Portland-Vancouver-Hillsboro, OR-WA","Port St. Lucie, FL","Prescott Valley-Prescott, AZ","Providence-Warwick, RI-MA","Provo-Orem-Lehi, UT","Pueblo, CO","Punta Gorda, FL","Racine-Mount Pleasant, WI","Raleigh-Cary, NC","Reading, PA","Redding, CA","Reno, NV","Richmond, VA","Riverside-San Bernardino-Ontario, CA","Roanoke, VA","Rochester, NY","Rockford, IL","Rocky Mount, NC","Sacramento-Roseville-Folsom, CA","Saginaw, MI","St. Cloud, MN","St. George, UT","St. Joseph, MO-KS","St. Louis, MO-IL","Salem, OR","Salinas, CA","Salt Lake City-Murray, UT","San Angelo, TX","San Antonio-New Braunfels, TX","San Diego-Chula Vista-Carlsbad, CA","San Francisco-Oakland-Fremont, CA","San Jose-Sunnyvale-Santa Clara, CA","San Luis Obispo-Paso Robles, CA","Santa Cruz-Watsonville, CA","Santa Fe, NM","Santa Maria-Santa Barbara, CA","Santa Rosa-Petaluma, CA","Scranton--Wilkes-Barre, PA","Seattle-Tacoma-Bellevue, WA","Sebastian-Vero Beach-West Vero Corridor, FL","Sheboygan, WI","South Dakota (All), SD","Spartanburg, SC","Spokane-Spokane Valley, WA","Springfield, IL","Springfield, MA","Springfield, MO","Springfield, OH","State College, PA","Stockton-Lodi, CA","Sumter, SC","Syracuse, NY","Tampa-St. Petersburg-Clearwater, FL","Toledo, OH","Topeka, KS","Trenton-Princeton, NJ","Tucson, AZ","Tulsa, OK","Tyler, TX","Urban Honolulu, HI","Utica-Rome, NY","Vallejo, CA","Vermont (All), VT","Virginia Beach-Chesapeake-Norfolk, VA-NC","Visalia, CA","Waco, TX","Washington-Arlington-Alexandria, DC-VA-MD-WV","Wausau, WI","Wenatchee-East Wenatchee, WA","Wichita, KS","Wichita Falls, TX","Wilmington, NC","Winston-Salem, NC","Worcester, MA","Yakima, WA","York-Hanover, PA","Youngstown-Warren, OH","Yuba City, CA","Yuma, AZ","None of the above, AL","None of the above, AK","None of the above, AZ","None of the above, AR","None of the above, CA","None of the above, CO","None of the above, CT","None of the above, DE","None of the above, DC","None of the above, FL","None of the above, GA","None of the above, HI","None of the above, ID","None of the above, IL","None of the above, IN","None of the above, IA","None of the above, KS","None of the above, KY","None of the above, LA","None of the above, ME","None of the above, MD","None of the above, MA","None of the above, MI","None of the above, MN","None of the above, MO","None of the above, MS","None of the above, NE","None of the above, NV","None of the above, NH","None of the above, NJ","None of the above, NM","None of the above, NY","None of the above, NC","None of the above, ND","None of the above, OH","None of the above, OK","None of the above, OR","None of the above, PA","None of the above, RI","None of the above, SC","None of the above, TN","None of the above, TX","None of the above, UT","None of the above, VA","None of the above, WA","None of the above, WV","None of the above, WI","None of the above, WY"].map((e=>{const t=e.split(",");return{metroArea:e,states:t[1].trim().split("-").map((e=>l[e.trim()]))}}));var d=r(8168),p=r(8587),m=r(1523),f=r(4661),h=r(1529);const g={border:0,clip:"rect(0 0 0 0)",height:"1px",margin:"-1px",overflow:"hidden",padding:0,position:"absolute",whiteSpace:"nowrap",width:"1px"};var y=r(6363);function M(e,t=[]){if(void 0===e)return{};const r={};return Object.keys(e).filter((r=>r.match(/^on[A-Z]/)&&"function"==typeof e[r]&&!t.includes(r))).forEach((t=>{r[t]=e[t]})),r}function v(e={}){const{disabled:t=!1,focusableWhenDisabled:r,href:n,rootRef:a,tabIndex:i,to:l,type:u,rootElementName:s}=e,c=o.useRef(),[p,f]=o.useState(!1),{isFocusVisibleRef:h,onFocus:g,onBlur:v,ref:w}=(0,y.A)(),[b,A]=o.useState(!1);t&&!r&&b&&A(!1),o.useEffect((()=>{h.current=b}),[b,h]);const[C,L]=function(e){const{rootElementName:t="",componentName:r}=e,[n,a]=o.useState(t.toUpperCase());return[n,o.useCallback((e=>{var t;a(null!=(t=null==e?void 0:e.tagName)?t:"")}),[])]}({rootElementName:null!=s?s:n||l?"a":void 0,componentName:"Button"}),x=e=>t=>{var r;b&&t.preventDefault(),null==(r=e.onMouseLeave)||r.call(e,t)},I=e=>t=>{var r,o;c.current||(c.current=t.currentTarget),g(t),!0===h.current&&(A(!0),null==(o=e.onFocusVisible)||o.call(e,t)),null==(r=e.onFocus)||r.call(e,t)},O=()=>{const e=c.current;return"BUTTON"===C||"INPUT"===C&&["button","submit","reset"].includes(null==e?void 0:e.type)||"A"===C&&(null==e?void 0:e.href)},S=e=>r=>{var o;t||null==(o=e.onClick)||o.call(e,r)},G=e=>r=>{var o;t||(f(!0),document.addEventListener("mouseup",(()=>{f(!1)}),{once:!0})),null==(o=e.onMouseDown)||o.call(e,r)},N=e=>r=>{var o,n;null==(o=e.onKeyDown)||o.call(e,r),r.defaultMuiPrevented||(r.target!==r.currentTarget||O()||" "!==r.key||r.preventDefault(),r.target!==r.currentTarget||" "!==r.key||t||f(!0),r.target!==r.currentTarget||O()||"Enter"!==r.key||t||(null==(n=e.onClick)||n.call(e,r),r.preventDefault()))},_=e=>r=>{var o,n;r.target===r.currentTarget&&f(!1),null==(o=e.onKeyUp)||o.call(e,r),r.target!==r.currentTarget||O()||t||" "!==r.key||r.defaultMuiPrevented||null==(n=e.onClick)||n.call(e,r)},k=(0,m.A)(L,a,w,c),P={};return void 0!==i&&(P.tabIndex=i),"BUTTON"===C?(P.type=null!=u?u:"button",r?P["aria-disabled"]=t:P.disabled=t):"INPUT"===C?u&&["button","submit","reset"].includes(u)&&(r?P["aria-disabled"]=t:P.disabled=t):""!==C&&(n||l||(P.role="button",P.tabIndex=null!=i?i:0),t&&(P["aria-disabled"]=t,P.tabIndex=r?null!=i?i:0:-1)),{getRootProps:(t={})=>{const r=(0,d.A)({},M(e),M(t)),o=(0,d.A)({type:u},r,P,t,{onBlur:(n=r,e=>{var t;v(e),!1===h.current&&A(!1),null==(t=n.onBlur)||t.call(n,e)}),onClick:S(r),onFocus:I(r),onKeyDown:N(r),onKeyUp:_(r),onMouseDown:G(r),onMouseLeave:x(r),ref:k});var n;return delete o.onFocusVisible,o},focusVisible:b,setFocusVisible:A,active:p,rootRef:k}}const w={buttonClick:"buttonClick",browserAutoFill:"browserAutoFill"},b={blur:"list:blur",focus:"list:focus",itemClick:"list:itemClick",itemHover:"list:itemHover",itemsChange:"list:itemsChange",keyDown:"list:keyDown",resetHighlight:"list:resetHighlight",highlightLast:"list:highlightLast",textNavigation:"list:textNavigation",clearSelection:"list:clearSelection"};function A(e,t,r){var o;const{items:n,isItemDisabled:a,disableListWrap:i,disabledItemsFocusable:l,itemComparer:u,focusManagement:s}=r,c="DOM"===s?0:-1,d=n.length-1,p=null==e?-1:n.findIndex((t=>u(t,e)));let m,f,h=!i;switch(t){case"reset":if(-1===c)return null;m=0,f="next",h=!1;break;case"start":m=0,f="next",h=!1;break;case"end":m=d,f="previous",h=!1;break;default:{const e=p+t;e<0?!h&&-1!==p||Math.abs(t)>1?(m=0,f="next"):(m=d,f="previous"):e>d?!h||Math.abs(t)>1?(m=d,f="previous"):(m=0,f="next"):(m=e,f=t>=0?"next":"previous")}}const g=function(e,t,r,o,n,a){if(0===r.length||!o&&r.every(((e,t)=>n(e,t))))return-1;let i=e;for(;;){if(!a&&"next"===t&&i===r.length||!a&&"previous"===t&&-1===i)return-1;if(o||!n(r[i],i))return i;i+="next"===t?1:-1,a&&(i=(i+r.length)%r.length)}}(m,f,n,l,a,h);return-1!==g||null===e||a(e,p)?null!=(o=n[g])?o:null:e}function C(e,t,r){const{itemComparer:o,isItemDisabled:n,selectionMode:a,items:i}=r,{selectedValues:l}=t,u=i.findIndex((t=>o(e,t)));if(n(e,u))return t;const s=function(e,t,r,o){return"none"===r?[]:"single"===r?o(t[0],e)?t:[e]:t.some((t=>o(t,e)))?t.filter((t=>!o(t,e))):[...t,e]}(e,l,a,o);return(0,d.A)({},t,{selectedValues:s,highlightedValue:e})}function L(e,t,r){var o;const n=null==(o=r(e))?void 0:o.trim().toLowerCase();return!(!n||0===n.length)&&0===n.indexOf(t)}function x(e,t){const{type:r,context:o}=t;switch(r){case b.keyDown:return function(e,t,r){const o=t.highlightedValue,{orientation:n,pageSize:a}=r;switch(e){case"Home":return(0,d.A)({},t,{highlightedValue:A(o,"start",r)});case"End":return(0,d.A)({},t,{highlightedValue:A(o,"end",r)});case"PageUp":return(0,d.A)({},t,{highlightedValue:A(o,-a,r)});case"PageDown":return(0,d.A)({},t,{highlightedValue:A(o,a,r)});case"ArrowUp":if("vertical"!==n)break;return(0,d.A)({},t,{highlightedValue:A(o,-1,r)});case"ArrowDown":if("vertical"!==n)break;return(0,d.A)({},t,{highlightedValue:A(o,1,r)});case"ArrowLeft":{if("vertical"===n)break;const e="horizontal-ltr"===n?-1:1;return(0,d.A)({},t,{highlightedValue:A(o,e,r)})}case"ArrowRight":{if("vertical"===n)break;const e="horizontal-ltr"===n?1:-1;return(0,d.A)({},t,{highlightedValue:A(o,e,r)})}case"Enter":case" ":return null===t.highlightedValue?t:C(t.highlightedValue,t,r)}return t}(t.key,e,o);case b.itemClick:return C(t.item,e,o);case b.blur:return function(e,t){return"DOM"===t.focusManagement?e:(0,d.A)({},e,{highlightedValue:null})}(e,o);case b.textNavigation:return function(e,t,r){const{items:o,isItemDisabled:n,disabledItemsFocusable:a,getItemAsString:i}=r,l=t.length>1;let u=l?e.highlightedValue:A(e.highlightedValue,1,r);for(let s=0;sa(e,r.highlightedValue))))?u:null:"DOM"===i&&0===t.length&&(l=A(null,"reset",o));const s=(null!=(n=r.selectedValues)?n:[]).filter((t=>e.some((e=>a(e,t)))));return(0,d.A)({},r,{highlightedValue:l,selectedValues:s})}(t.items,t.previousItems,e,o);case b.resetHighlight:return function(e,t){return(0,d.A)({},e,{highlightedValue:A(null,"reset",t)})}(e,o);case b.highlightLast:return function(e,t){return(0,d.A)({},e,{highlightedValue:A(null,"end",t)})}(e,o);case b.clearSelection:return function(e,t){return(0,d.A)({},e,{selectedValues:[],highlightedValue:A(null,"reset",t)})}(e,o);default:return e}}function I(e,t){return e===t}const O={},S=()=>{};function G(e,t){const r=(0,d.A)({},e);return Object.keys(t).forEach((e=>{void 0!==t[e]&&(r[e]=t[e])})),r}function N(e){const t=o.useRef(null),{reducer:r,initialState:n,controlledProps:a=O,stateComparers:i=O,onStateChange:l=S,actionContext:u,componentName:s=""}=e;o.useRef(a);const c=o.useCallback(((e,o)=>{t.current=o;const n=G(e,a);return r(n,o)}),[a,r]),[p,m]=o.useReducer(c,n),f=o.useCallback((e=>{m((0,d.A)({},e,{context:u}))}),[u]);return function(e){const{nextState:t,initialState:r,stateComparers:n,onStateChange:a,controlledProps:i,lastActionRef:l}=e,u=o.useRef(r);o.useEffect((()=>{if(null===l.current)return;const e=G(u.current,i);Object.keys(t).forEach((r=>{var o;const i=null!=(o=n[r])?o:I,u=t[r],s=e[r];var c,d;(null==s&&null!=u||null!=s&&null==u||null!=s&&null!=u&&!i(u,s))&&(null==a||a(null!=(c=l.current.event)?c:null,r,u,null!=(d=l.current.type)?d:"",t))})),u.current=t,l.current=null}),[u,t,l,a,n,i])}({nextState:p,initialState:n,stateComparers:null!=i?i:O,onStateChange:null!=l?l:S,controlledProps:a,lastActionRef:t}),[G(p,a),f]}function _(e,t,r=(e,t)=>e===t){return e.length===t.length&&e.every(((e,o)=>r(e,t[o])))}const k=500,P={},E=()=>{},T=(e,t)=>e===t,R=()=>!1,U=e=>"string"==typeof e?e:String(e),B=()=>({highlightedValue:null,selectedValues:[]});const $=e=>{const{label:t,value:r}=e;return"string"==typeof t?t:"string"==typeof r?r:String(e)},D=o.createContext(null);function W(e,t){const{open:r}=e,{context:{selectionMode:o}}=t;if(t.type===w.buttonClick){var n;const o=null!=(n=e.selectedValues[0])?n:A(null,"start",t.context);return(0,d.A)({},e,{open:!r,highlightedValue:r?null:o})}if(t.type===w.browserAutoFill)return C(t.item,e,t.context);const a=x(e,t);switch(t.type){case b.keyDown:if(e.open){if("Escape"===t.event.key)return(0,d.A)({},a,{open:!1})}else{var i,l;if("ArrowDown"===t.event.key)return(0,d.A)({},e,{open:!0,highlightedValue:null!=(i=e.selectedValues[0])?i:A(null,"start",t.context)});if("ArrowUp"===t.event.key)return(0,d.A)({},e,{open:!0,highlightedValue:null!=(l=e.selectedValues[0])?l:A(null,"end",t.context)})}break;case b.itemClick:if("single"===o)return(0,d.A)({},a,{open:!1});break;case b.blur:return(0,d.A)({},a,{open:!1});default:return a}return a}function H(e,t){return function(r={}){const o=(0,d.A)({},r,e(r));return(0,d.A)({},o,t(o))}}function F(e){return Array.isArray(e)?0===e.length?"":JSON.stringify(e.map((e=>e.value))):null==(null==e?void 0:e.value)?"":"string"==typeof e.value||"number"==typeof e.value?e.value:JSON.stringify(e.value)}function V(e){const{areOptionsEqual:t,buttonRef:r,defaultOpen:n=!1,defaultValue:a,disabled:i=!1,listboxId:l,listboxRef:u,multiple:s=!1,name:c,required:p,onChange:y,onHighlightChange:A,onOpenChange:C,open:L,options:I,getOptionAsString:O=$,getSerializedValue:S=F,value:G,componentName:D="useSelect"}=e,V=o.useRef(null),j=(0,m.A)(r,V),K=o.useRef(null),z=(0,f.A)(l);let Y;void 0===G&&void 0===a?Y=[]:void 0!==a&&(Y=s?a:null==a?[]:[a]);const X=o.useMemo((()=>{if(void 0!==G)return s?G:null==G?[]:[G]}),[G,s]),{subitems:q,contextValue:J}=function(){const[e,t]=o.useState(new Map),r=o.useRef(new Set),n=o.useCallback((function(e){r.current.delete(e),t((t=>{const r=new Map(t);return r.delete(e),r}))}),[]),a=o.useCallback((function(e,o){let a;return a="function"==typeof e?e(r.current):e,r.current.add(a),t((e=>{const t=new Map(e);return t.set(a,o),t})),{id:a,deregister:()=>n(a)}}),[n]),i=o.useMemo((()=>function(e){const t=Array.from(e.keys()).map((t=>({key:t,subitem:e.get(t)})));return t.sort(((e,t)=>{const r=e.subitem.ref.current,o=t.subitem.ref.current;return null===r||null===o||r===o?0:r.compareDocumentPosition(o)&Node.DOCUMENT_POSITION_PRECEDING?1:-1})),new Map(t.map((e=>[e.key,e.subitem])))}(e)),[e]),l=o.useCallback((function(e){return Array.from(i.keys()).indexOf(e)}),[i]);return{contextValue:o.useMemo((()=>({getItemIndex:l,registerItem:a,totalSubitemCount:e.size})),[l,a,e.size]),subitems:i}}(),Z=o.useMemo((()=>null!=I?new Map(I.map(((e,t)=>[e.value,{value:e.value,label:e.label,disabled:e.disabled,ref:o.createRef(),id:`${z}_${t}`}]))):q),[I,q,z]),Q=(0,m.A)(u,K),{getRootProps:ee,active:te,focusVisible:re,rootRef:oe}=v({disabled:i,rootRef:j}),ne=o.useMemo((()=>Array.from(Z.keys())),[Z]),ae=o.useCallback((e=>{if(void 0!==t){const r=ne.find((r=>t(r,e)));return Z.get(r)}return Z.get(e)}),[Z,t,ne]),ie=o.useCallback((e=>{var t;const r=ae(e);return null!=(t=null==r?void 0:r.disabled)&&t}),[ae]),le=o.useCallback((e=>{const t=ae(e);return t?O(t):""}),[ae,O]),ue=o.useMemo((()=>({selectedValues:X,open:L})),[X,L]),se=o.useCallback((e=>{var t;return null==(t=Z.get(e))?void 0:t.id}),[Z]),ce=o.useCallback(((e,t)=>{var r;s?null==y||y(e,t):null==y||y(e,null!=(r=t[0])?r:null)}),[s,y]),de=o.useCallback(((e,t)=>{null==A||A(e,null!=t?t:null)}),[A]),pe=o.useCallback(((e,t,r)=>{var o;"open"===t&&(null==C||C(r),!1===r&&"blur"!==(null==e?void 0:e.type)&&(null==(o=V.current)||o.focus()))}),[C]),me={getInitialState:()=>{var e;return{highlightedValue:null,selectedValues:null!=(e=Y)?e:[],open:n}},getItemId:se,controlledProps:ue,focusManagement:"DOM",getItemDomElement:o.useCallback((e=>{var t,r;return null==e?null:null!=(t=null==(r=q.get(e))?void 0:r.ref.current)?t:null}),[q]),itemComparer:t,isItemDisabled:ie,rootRef:Q,onChange:ce,onHighlightChange:de,onStateChange:pe,reducerActionContext:o.useMemo((()=>({multiple:s})),[s]),items:ne,getItemAsString:le,selectionMode:s?"multiple":"single",stateReducer:W,componentName:D},{dispatch:fe,getRootProps:he,contextValue:ge,state:{open:ye,highlightedValue:Me,selectedValues:ve},rootRef:we}=function(e){const{controlledProps:t=P,disabledItemsFocusable:r=!1,disableListWrap:n=!1,focusManagement:a="activeDescendant",getInitialState:i=B,getItemDomElement:l,getItemId:u,isItemDisabled:s=R,rootRef:c,onStateChange:p=E,items:f,itemComparer:h=T,getItemAsString:g=U,onChange:y,onHighlightChange:v,onItemsChange:w,orientation:A="vertical",pageSize:C=5,reducerActionContext:L=P,selectionMode:I="single",stateReducer:O,componentName:S="useList"}=e,G=o.useRef(null),$=(0,m.A)(c,G),D=o.useCallback(((e,t,r)=>{var o;null==v||v(e,t,r),"DOM"!==a||null==t||r!==b.itemClick&&r!==b.keyDown&&r!==b.textNavigation||null==l||null==(o=l(t))||o.focus()}),[l,v,a]),W=o.useMemo((()=>({highlightedValue:h,selectedValues:(e,t)=>_(e,t,h)})),[h]),H=o.useCallback(((e,t,r,o,n)=>{switch(null==p||p(e,t,r,o,n),t){case"highlightedValue":D(e,r,o);break;case"selectedValues":null==y||y(e,r,o)}}),[D,y,p]),F=o.useMemo((()=>({disabledItemsFocusable:r,disableListWrap:n,focusManagement:a,isItemDisabled:s,itemComparer:h,items:f,getItemAsString:g,onHighlightChange:D,orientation:A,pageSize:C,selectionMode:I,stateComparers:W})),[r,n,a,s,h,f,g,D,A,C,I,W]),V=i(),j=null!=O?O:x,K=o.useMemo((()=>(0,d.A)({},L,F)),[L,F]),[z,Y]=N({reducer:j,actionContext:K,initialState:V,controlledProps:t,stateComparers:W,onStateChange:H,componentName:S}),{highlightedValue:X,selectedValues:q}=z,J=function(e){const t=o.useRef({searchString:"",lastTime:null});return o.useCallback((r=>{if(1===r.key.length&&" "!==r.key){const o=t.current,n=r.key.toLowerCase(),a=performance.now();o.searchString.length>0&&o.lastTime&&a-o.lastTime>k?o.searchString=n:1===o.searchString.length&&n===o.searchString||(o.searchString+=n),o.lastTime=a,e(o.searchString,r)}}),[e])}(((e,t)=>Y({type:b.textNavigation,event:t,searchString:e}))),Z=o.useRef([]);o.useEffect((()=>{_(Z.current,f,h)||(Y({type:b.itemsChange,event:null,items:f,previousItems:Z.current}),Z.current=f,null==w||w(f))}),[f,h,Y,w]);const Q=e=>t=>{var r;if(null==(r=e.onKeyDown)||r.call(e,t),t.defaultMuiPrevented)return;const o=["Home","End","PageUp","PageDown"];"vertical"===A?o.push("ArrowUp","ArrowDown"):o.push("ArrowLeft","ArrowRight"),"activeDescendant"===a&&o.push(" ","Enter"),o.includes(t.key)&&t.preventDefault(),Y({type:b.keyDown,key:t.key,event:t}),J(t)},ee=o.useCallback((e=>{const t=(null!=q?q:[]).some((t=>null!=t&&h(e,t))),r=null!=X&&h(e,X);return{focusable:"DOM"===a,highlighted:r,selected:t}}),[h,q,X,a]),te=o.useMemo((()=>({dispatch:Y,getItemState:ee})),[Y,ee]);return o.useDebugValue({state:z}),{contextValue:te,dispatch:Y,getRootProps:(e={})=>{const t=M(e);return(0,d.A)({},e,{"aria-activedescendant":"activeDescendant"===a&&null!=X?u(X):void 0,tabIndex:"DOM"===a?-1:0,ref:$},t,{onBlur:(r=t,e=>{var t,o;null==(t=r.onBlur)||t.call(r,e),e.defaultMuiPrevented||null!=(o=G.current)&&o.contains(e.relatedTarget)||Y({type:b.blur,event:e})}),onKeyDown:Q(t)});var r},rootRef:$,state:z}}(me),be=o.useRef(ye);(0,h.A)((()=>{if(ye&&null!==Me){var e;const t=null==(e=ae(Me))?void 0:e.ref;if(!K.current||null==t||!t.current)return;be.current||t.current.focus({preventScroll:!0});const r=K.current.getBoundingClientRect(),o=t.current.getBoundingClientRect();o.topr.bottom&&(K.current.scrollTop+=o.bottom-r.bottom)}}),[ye,Me,ae]);const Ae=o.useCallback((e=>ae(e)),[ae]),Ce=e=>t=>{var r;null==(r=e.onKeyDown)||r.call(e,t),t.defaultMuiPrevented||"ArrowDown"!==t.key&&"ArrowUp"!==t.key||(t.preventDefault(),fe({type:b.keyDown,key:t.key,event:t}))},Le=(e={})=>(0,d.A)({},e,((e={})=>{return{onClick:(t=e,e=>{var r;if(null==t||null==(r=t.onClick)||r.call(t,e),!e.defaultMuiPrevented){const t={type:w.buttonClick,event:e};fe(t)}}),onKeyDown:Ce(e)};var t})(e),{role:"combobox","aria-expanded":ye,"aria-controls":z}),xe=e=>t=>{var r,o;null==(r=e.onBlur)||r.call(e,t),t.defaultMuiPrevented||(null!=(o=K.current)&&o.contains(t.relatedTarget)||t.relatedTarget===V.current)&&(t.defaultMuiPrevented=!0)},Ie=(e={})=>({onBlur:xe(e)});o.useDebugValue({selectedOptions:ve,highlightedOption:Me,open:ye});const Oe=o.useMemo((()=>(0,d.A)({},ge,J)),[ge,J]);let Se,Ge;var Ne;Se=e.multiple?ve:ve.length>0?ve[0]:null,Ge=s?Se.map((e=>Ae(e))).filter((e=>void 0!==e)):null!=(Ne=Ae(Se))?Ne:null;const _e=e=>t=>{var r;if(null==e||null==(r=e.onChange)||r.call(e,t),t.defaultMuiPrevented)return;const o=Z.get(t.target.value);""===t.target.value?fe({type:b.clearSelection}):void 0!==o&&fe({type:w.browserAutoFill,item:o.value,event:t})};return{buttonActive:te,buttonFocusVisible:re,buttonRef:oe,contextValue:Oe,disabled:i,dispatch:fe,getButtonProps:(e={})=>{const t=M(e),r=H(Le,ee);return(0,d.A)({},e,r(t))},getHiddenInputProps:(e={})=>{const t=M(e);return(0,d.A)({name:c,tabIndex:-1,"aria-hidden":!0,required:!!p||void 0,value:S(Ge),style:g},e,{onChange:_e(t)})},getListboxProps:(e={})=>{const t=M(e),r=H(Ie,he);return(0,d.A)({id:z,role:"listbox","aria-multiselectable":s?"true":void 0},e,r(t))},getOptionMetadata:Ae,listboxRef:we,open:ye,options:ne,value:Se,highlightedOption:Me}}function j(e){return"string"==typeof e}var K=r(4164);function z(e){if(void 0===e)return{};const t={};return Object.keys(e).filter((t=>!(t.match(/^on[A-Z]/)&&"function"==typeof e[t]))).forEach((r=>{t[r]=e[r]})),t}const Y=["elementType","externalSlotProps","ownerState","skipResolvingSlotProps"];function X(e){var t;const{elementType:r,externalSlotProps:o,ownerState:n,skipResolvingSlotProps:a=!1}=e,i=(0,p.A)(e,Y),l=a?{}:function(e,t){return"function"==typeof e?e(t,void 0):e}(o,n),{props:u,internalRef:s}=function(e){const{getSlotProps:t,additionalProps:r,externalSlotProps:o,externalForwardedProps:n,className:a}=e;if(!t){const e=(0,K.A)(null==r?void 0:r.className,a,null==n?void 0:n.className,null==o?void 0:o.className),t=(0,d.A)({},null==r?void 0:r.style,null==n?void 0:n.style,null==o?void 0:o.style),i=(0,d.A)({},r,n,o);return e.length>0&&(i.className=e),Object.keys(t).length>0&&(i.style=t),{props:i,internalRef:void 0}}const i=M((0,d.A)({},n,o)),l=z(o),u=z(n),s=t(i),c=(0,K.A)(null==s?void 0:s.className,null==r?void 0:r.className,a,null==n?void 0:n.className,null==o?void 0:o.className),p=(0,d.A)({},null==s?void 0:s.style,null==r?void 0:r.style,null==n?void 0:n.style,null==o?void 0:o.style),m=(0,d.A)({},s,r,u,l);return c.length>0&&(m.className=c),Object.keys(p).length>0&&(m.style=p),{props:m,internalRef:s.ref}}((0,d.A)({},i,{externalSlotProps:l})),c=(0,m.A)(s,null==l?void 0:l.ref,null==(t=e.additionalProps)?void 0:t.ref),f=function(e,t,r){return void 0===e||j(e)?t:(0,d.A)({},t,{ownerState:(0,d.A)({},t.ownerState,r)})}(r,(0,d.A)({},u,{ref:c}),n);return f}const q=Math.min,J=Math.max,Z=Math.round,Q=Math.floor,ee=e=>({x:e,y:e}),te={left:"right",right:"left",bottom:"top",top:"bottom"},re={start:"end",end:"start"};function oe(e,t,r){return J(e,q(t,r))}function ne(e,t){return"function"==typeof e?e(t):e}function ae(e){return e.split("-")[0]}function ie(e){return e.split("-")[1]}function le(e){return"x"===e?"y":"x"}function ue(e){return"y"===e?"height":"width"}function se(e){return["top","bottom"].includes(ae(e))?"y":"x"}function ce(e){return le(se(e))}function de(e){return e.replace(/start|end/g,(e=>re[e]))}function pe(e){return e.replace(/left|right|bottom|top/g,(e=>te[e]))}function me(e){const{x:t,y:r,width:o,height:n}=e;return{width:o,height:n,top:r,left:t,right:t+o,bottom:r+n,x:t,y:r}}function fe(e,t,r){let{reference:o,floating:n}=e;const a=se(t),i=ce(t),l=ue(i),u=ae(t),s="y"===a,c=o.x+o.width/2-n.width/2,d=o.y+o.height/2-n.height/2,p=o[l]/2-n[l]/2;let m;switch(u){case"top":m={x:c,y:o.y-n.height};break;case"bottom":m={x:c,y:o.y+o.height};break;case"right":m={x:o.x+o.width,y:d};break;case"left":m={x:o.x-n.width,y:d};break;default:m={x:o.x,y:o.y}}switch(ie(t)){case"start":m[i]-=p*(r&&s?-1:1);break;case"end":m[i]+=p*(r&&s?-1:1)}return m}async function he(e,t){var r;void 0===t&&(t={});const{x:o,y:n,platform:a,rects:i,elements:l,strategy:u}=e,{boundary:s="clippingAncestors",rootBoundary:c="viewport",elementContext:d="floating",altBoundary:p=!1,padding:m=0}=ne(t,e),f=function(e){return"number"!=typeof e?function(e){return{top:0,right:0,bottom:0,left:0,...e}}(e):{top:e,right:e,bottom:e,left:e}}(m),h=l[p?"floating"===d?"reference":"floating":d],g=me(await a.getClippingRect({element:null==(r=await(null==a.isElement?void 0:a.isElement(h)))||r?h:h.contextElement||await(null==a.getDocumentElement?void 0:a.getDocumentElement(l.floating)),boundary:s,rootBoundary:c,strategy:u})),y="floating"===d?{x:o,y:n,width:i.floating.width,height:i.floating.height}:i.reference,M=await(null==a.getOffsetParent?void 0:a.getOffsetParent(l.floating)),v=await(null==a.isElement?void 0:a.isElement(M))&&await(null==a.getScale?void 0:a.getScale(M))||{x:1,y:1},w=me(a.convertOffsetParentRelativeRectToViewportRelativeRect?await a.convertOffsetParentRelativeRectToViewportRelativeRect({elements:l,rect:y,offsetParent:M,strategy:u}):y);return{top:(g.top-w.top+f.top)/v.y,bottom:(w.bottom-g.bottom+f.bottom)/v.y,left:(g.left-w.left+f.left)/v.x,right:(w.right-g.right+f.right)/v.x}}function ge(e){return ve(e)?(e.nodeName||"").toLowerCase():"#document"}function ye(e){var t;return(null==e||null==(t=e.ownerDocument)?void 0:t.defaultView)||window}function Me(e){var t;return null==(t=(ve(e)?e.ownerDocument:e.document)||window.document)?void 0:t.documentElement}function ve(e){return e instanceof Node||e instanceof ye(e).Node}function we(e){return e instanceof Element||e instanceof ye(e).Element}function be(e){return e instanceof HTMLElement||e instanceof ye(e).HTMLElement}function Ae(e){return"undefined"!=typeof ShadowRoot&&(e instanceof ShadowRoot||e instanceof ye(e).ShadowRoot)}function Ce(e){const{overflow:t,overflowX:r,overflowY:o,display:n}=Ge(e);return/auto|scroll|overlay|hidden|clip/.test(t+o+r)&&!["inline","contents"].includes(n)}function Le(e){return["table","td","th"].includes(ge(e))}function xe(e){return[":popover-open",":modal"].some((t=>{try{return e.matches(t)}catch(e){return!1}}))}function Ie(e){const t=Oe(),r=we(e)?Ge(e):e;return"none"!==r.transform||"none"!==r.perspective||!!r.containerType&&"normal"!==r.containerType||!t&&!!r.backdropFilter&&"none"!==r.backdropFilter||!t&&!!r.filter&&"none"!==r.filter||["transform","perspective","filter"].some((e=>(r.willChange||"").includes(e)))||["paint","layout","strict","content"].some((e=>(r.contain||"").includes(e)))}function Oe(){return!("undefined"==typeof CSS||!CSS.supports)&&CSS.supports("-webkit-backdrop-filter","none")}function Se(e){return["html","body","#document"].includes(ge(e))}function Ge(e){return ye(e).getComputedStyle(e)}function Ne(e){return we(e)?{scrollLeft:e.scrollLeft,scrollTop:e.scrollTop}:{scrollLeft:e.scrollX,scrollTop:e.scrollY}}function _e(e){if("html"===ge(e))return e;const t=e.assignedSlot||e.parentNode||Ae(e)&&e.host||Me(e);return Ae(t)?t.host:t}function ke(e){const t=_e(e);return Se(t)?e.ownerDocument?e.ownerDocument.body:e.body:be(t)&&Ce(t)?t:ke(t)}function Pe(e,t,r){var o;void 0===t&&(t=[]),void 0===r&&(r=!0);const n=ke(e),a=n===(null==(o=e.ownerDocument)?void 0:o.body),i=ye(n);return a?t.concat(i,i.visualViewport||[],Ce(n)?n:[],i.frameElement&&r?Pe(i.frameElement):[]):t.concat(n,Pe(n,[],r))}function Ee(e){const t=Ge(e);let r=parseFloat(t.width)||0,o=parseFloat(t.height)||0;const n=be(e),a=n?e.offsetWidth:r,i=n?e.offsetHeight:o,l=Z(r)!==a||Z(o)!==i;return l&&(r=a,o=i),{width:r,height:o,$:l}}function Te(e){return we(e)?e:e.contextElement}function Re(e){const t=Te(e);if(!be(t))return ee(1);const r=t.getBoundingClientRect(),{width:o,height:n,$:a}=Ee(t);let i=(a?Z(r.width):r.width)/o,l=(a?Z(r.height):r.height)/n;return i&&Number.isFinite(i)||(i=1),l&&Number.isFinite(l)||(l=1),{x:i,y:l}}const Ue=ee(0);function Be(e){const t=ye(e);return Oe()&&t.visualViewport?{x:t.visualViewport.offsetLeft,y:t.visualViewport.offsetTop}:Ue}function $e(e,t,r,o){void 0===t&&(t=!1),void 0===r&&(r=!1);const n=e.getBoundingClientRect(),a=Te(e);let i=ee(1);t&&(o?we(o)&&(i=Re(o)):i=Re(e));const l=function(e,t,r){return void 0===t&&(t=!1),!(!r||t&&r!==ye(e))&&t}(a,r,o)?Be(a):ee(0);let u=(n.left+l.x)/i.x,s=(n.top+l.y)/i.y,c=n.width/i.x,d=n.height/i.y;if(a){const e=ye(a),t=o&&we(o)?ye(o):o;let r=e,n=r.frameElement;for(;n&&o&&t!==r;){const e=Re(n),t=n.getBoundingClientRect(),o=Ge(n),a=t.left+(n.clientLeft+parseFloat(o.paddingLeft))*e.x,i=t.top+(n.clientTop+parseFloat(o.paddingTop))*e.y;u*=e.x,s*=e.y,c*=e.x,d*=e.y,u+=a,s+=i,r=ye(n),n=r.frameElement}}return me({width:c,height:d,x:u,y:s})}function De(e){return $e(Me(e)).left+Ne(e).scrollLeft}function We(e,t,r){let o;if("viewport"===t)o=function(e,t){const r=ye(e),o=Me(e),n=r.visualViewport;let a=o.clientWidth,i=o.clientHeight,l=0,u=0;if(n){a=n.width,i=n.height;const e=Oe();(!e||e&&"fixed"===t)&&(l=n.offsetLeft,u=n.offsetTop)}return{width:a,height:i,x:l,y:u}}(e,r);else if("document"===t)o=function(e){const t=Me(e),r=Ne(e),o=e.ownerDocument.body,n=J(t.scrollWidth,t.clientWidth,o.scrollWidth,o.clientWidth),a=J(t.scrollHeight,t.clientHeight,o.scrollHeight,o.clientHeight);let i=-r.scrollLeft+De(e);const l=-r.scrollTop;return"rtl"===Ge(o).direction&&(i+=J(t.clientWidth,o.clientWidth)-n),{width:n,height:a,x:i,y:l}}(Me(e));else if(we(t))o=function(e,t){const r=$e(e,!0,"fixed"===t),o=r.top+e.clientTop,n=r.left+e.clientLeft,a=be(e)?Re(e):ee(1);return{width:e.clientWidth*a.x,height:e.clientHeight*a.y,x:n*a.x,y:o*a.y}}(t,r);else{const r=Be(e);o={...t,x:t.x-r.x,y:t.y-r.y}}return me(o)}function He(e,t){const r=_e(e);return!(r===t||!we(r)||Se(r))&&("fixed"===Ge(r).position||He(r,t))}function Fe(e,t,r){const o=be(t),n=Me(t),a="fixed"===r,i=$e(e,!0,a,t);let l={scrollLeft:0,scrollTop:0};const u=ee(0);if(o||!o&&!a)if(("body"!==ge(t)||Ce(n))&&(l=Ne(t)),o){const e=$e(t,!0,a,t);u.x=e.x+t.clientLeft,u.y=e.y+t.clientTop}else n&&(u.x=De(n));return{x:i.left+l.scrollLeft-u.x,y:i.top+l.scrollTop-u.y,width:i.width,height:i.height}}function Ve(e){return"static"===Ge(e).position}function je(e,t){return be(e)&&"fixed"!==Ge(e).position?t?t(e):e.offsetParent:null}function Ke(e,t){const r=ye(e);if(xe(e))return r;if(!be(e)){let t=_e(e);for(;t&&!Se(t);){if(we(t)&&!Ve(t))return t;t=_e(t)}return r}let o=je(e,t);for(;o&&Le(o)&&Ve(o);)o=je(o,t);return o&&Se(o)&&Ve(o)&&!Ie(o)?r:o||function(e){let t=_e(e);for(;be(t)&&!Se(t);){if(Ie(t))return t;if(xe(t))return null;t=_e(t)}return null}(e)||r}const ze={convertOffsetParentRelativeRectToViewportRelativeRect:function(e){let{elements:t,rect:r,offsetParent:o,strategy:n}=e;const a="fixed"===n,i=Me(o),l=!!t&&xe(t.floating);if(o===i||l&&a)return r;let u={scrollLeft:0,scrollTop:0},s=ee(1);const c=ee(0),d=be(o);if((d||!d&&!a)&&(("body"!==ge(o)||Ce(i))&&(u=Ne(o)),be(o))){const e=$e(o);s=Re(o),c.x=e.x+o.clientLeft,c.y=e.y+o.clientTop}return{width:r.width*s.x,height:r.height*s.y,x:r.x*s.x-u.scrollLeft*s.x+c.x,y:r.y*s.y-u.scrollTop*s.y+c.y}},getDocumentElement:Me,getClippingRect:function(e){let{element:t,boundary:r,rootBoundary:o,strategy:n}=e;const a=[..."clippingAncestors"===r?xe(t)?[]:function(e,t){const r=t.get(e);if(r)return r;let o=Pe(e,[],!1).filter((e=>we(e)&&"body"!==ge(e))),n=null;const a="fixed"===Ge(e).position;let i=a?_e(e):e;for(;we(i)&&!Se(i);){const t=Ge(i),r=Ie(i);r||"fixed"!==t.position||(n=null),(a?!r&&!n:!r&&"static"===t.position&&n&&["absolute","fixed"].includes(n.position)||Ce(i)&&!r&&He(e,i))?o=o.filter((e=>e!==i)):n=t,i=_e(i)}return t.set(e,o),o}(t,this._c):[].concat(r),o],i=a[0],l=a.reduce(((e,r)=>{const o=We(t,r,n);return e.top=J(o.top,e.top),e.right=q(o.right,e.right),e.bottom=q(o.bottom,e.bottom),e.left=J(o.left,e.left),e}),We(t,i,n));return{width:l.right-l.left,height:l.bottom-l.top,x:l.left,y:l.top}},getOffsetParent:Ke,getElementRects:async function(e){const t=this.getOffsetParent||Ke,r=this.getDimensions,o=await r(e.floating);return{reference:Fe(e.reference,await t(e.floating),e.strategy),floating:{x:0,y:0,width:o.width,height:o.height}}},getClientRects:function(e){return Array.from(e.getClientRects())},getDimensions:function(e){const{width:t,height:r}=Ee(e);return{width:t,height:r}},getScale:Re,isElement:we,isRTL:function(e){return"rtl"===Ge(e).direction}};function Ye(e,t,r,o){void 0===o&&(o={});const{ancestorScroll:n=!0,ancestorResize:a=!0,elementResize:i="function"==typeof ResizeObserver,layoutShift:l="function"==typeof IntersectionObserver,animationFrame:u=!1}=o,s=Te(e),c=n||a?[...s?Pe(s):[],...Pe(t)]:[];c.forEach((e=>{n&&e.addEventListener("scroll",r,{passive:!0}),a&&e.addEventListener("resize",r)}));const d=s&&l?function(e,t){let r,o=null;const n=Me(e);function a(){var e;clearTimeout(r),null==(e=o)||e.disconnect(),o=null}return function i(l,u){void 0===l&&(l=!1),void 0===u&&(u=1),a();const{left:s,top:c,width:d,height:p}=e.getBoundingClientRect();if(l||t(),!d||!p)return;const m={rootMargin:-Q(c)+"px "+-Q(n.clientWidth-(s+d))+"px "+-Q(n.clientHeight-(c+p))+"px "+-Q(s)+"px",threshold:J(0,q(1,u))||1};let f=!0;function h(e){const t=e[0].intersectionRatio;if(t!==u){if(!f)return i();t?i(!1,t):r=setTimeout((()=>{i(!1,1e-7)}),1e3)}f=!1}try{o=new IntersectionObserver(h,{...m,root:n.ownerDocument})}catch(e){o=new IntersectionObserver(h,m)}o.observe(e)}(!0),a}(s,r):null;let p,m=-1,f=null;i&&(f=new ResizeObserver((e=>{let[o]=e;o&&o.target===s&&f&&(f.unobserve(t),cancelAnimationFrame(m),m=requestAnimationFrame((()=>{var e;null==(e=f)||e.observe(t)}))),r()})),s&&!u&&f.observe(s),f.observe(t));let h=u?$e(e):null;return u&&function t(){const o=$e(e);!h||o.x===h.x&&o.y===h.y&&o.width===h.width&&o.height===h.height||r(),h=o,p=requestAnimationFrame(t)}(),r(),()=>{var e;c.forEach((e=>{n&&e.removeEventListener("scroll",r),a&&e.removeEventListener("resize",r)})),null==d||d(),null==(e=f)||e.disconnect(),f=null,u&&cancelAnimationFrame(p)}}const Xe=function(e){return void 0===e&&(e=0),{name:"offset",options:e,async fn(t){var r,o;const{x:n,y:a,placement:i,middlewareData:l}=t,u=await async function(e,t){const{placement:r,platform:o,elements:n}=e,a=await(null==o.isRTL?void 0:o.isRTL(n.floating)),i=ae(r),l=ie(r),u="y"===se(r),s=["left","top"].includes(i)?-1:1,c=a&&u?-1:1,d=ne(t,e);let{mainAxis:p,crossAxis:m,alignmentAxis:f}="number"==typeof d?{mainAxis:d,crossAxis:0,alignmentAxis:null}:{mainAxis:0,crossAxis:0,alignmentAxis:null,...d};return l&&"number"==typeof f&&(m="end"===l?-1*f:f),u?{x:m*c,y:p*s}:{x:p*s,y:m*c}}(t,e);return i===(null==(r=l.offset)?void 0:r.placement)&&null!=(o=l.arrow)&&o.alignmentOffset?{}:{x:n+u.x,y:a+u.y,data:{...u,placement:i}}}}},qe=function(e){return void 0===e&&(e={}),{name:"shift",options:e,async fn(t){const{x:r,y:o,placement:n}=t,{mainAxis:a=!0,crossAxis:i=!1,limiter:l={fn:e=>{let{x:t,y:r}=e;return{x:t,y:r}}},...u}=ne(e,t),s={x:r,y:o},c=await he(t,u),d=se(ae(n)),p=le(d);let m=s[p],f=s[d];if(a){const e="y"===p?"bottom":"right";m=oe(m+c["y"===p?"top":"left"],m,m-c[e])}if(i){const e="y"===d?"bottom":"right";f=oe(f+c["y"===d?"top":"left"],f,f-c[e])}const h=l.fn({...t,[p]:m,[d]:f});return{...h,data:{x:h.x-r,y:h.y-o}}}}},Je=function(e){return void 0===e&&(e={}),{name:"flip",options:e,async fn(t){var r,o;const{placement:n,middlewareData:a,rects:i,initialPlacement:l,platform:u,elements:s}=t,{mainAxis:c=!0,crossAxis:d=!0,fallbackPlacements:p,fallbackStrategy:m="bestFit",fallbackAxisSideDirection:f="none",flipAlignment:h=!0,...g}=ne(e,t);if(null!=(r=a.arrow)&&r.alignmentOffset)return{};const y=ae(n),M=se(l),v=ae(l)===l,w=await(null==u.isRTL?void 0:u.isRTL(s.floating)),b=p||(v||!h?[pe(l)]:function(e){const t=pe(e);return[de(e),t,de(t)]}(l)),A="none"!==f;!p&&A&&b.push(...function(e,t,r,o){const n=ie(e);let a=function(e,t,r){const o=["left","right"],n=["right","left"],a=["top","bottom"],i=["bottom","top"];switch(e){case"top":case"bottom":return r?t?n:o:t?o:n;case"left":case"right":return t?a:i;default:return[]}}(ae(e),"start"===r,o);return n&&(a=a.map((e=>e+"-"+n)),t&&(a=a.concat(a.map(de)))),a}(l,h,f,w));const C=[l,...b],L=await he(t,g),x=[];let I=(null==(o=a.flip)?void 0:o.overflows)||[];if(c&&x.push(L[y]),d){const e=function(e,t,r){void 0===r&&(r=!1);const o=ie(e),n=ce(e),a=ue(n);let i="x"===n?o===(r?"end":"start")?"right":"left":"start"===o?"bottom":"top";return t.reference[a]>t.floating[a]&&(i=pe(i)),[i,pe(i)]}(n,i,w);x.push(L[e[0]],L[e[1]])}if(I=[...I,{placement:n,overflows:x}],!x.every((e=>e<=0))){var O,S;const e=((null==(O=a.flip)?void 0:O.index)||0)+1,t=C[e];if(t)return{data:{index:e,overflows:I},reset:{placement:t}};let r=null==(S=I.filter((e=>e.overflows[0]<=0)).sort(((e,t)=>e.overflows[1]-t.overflows[1]))[0])?void 0:S.placement;if(!r)switch(m){case"bestFit":{var G;const e=null==(G=I.filter((e=>{if(A){const t=se(e.placement);return t===M||"y"===t}return!0})).map((e=>[e.placement,e.overflows.filter((e=>e>0)).reduce(((e,t)=>e+t),0)])).sort(((e,t)=>e[1]-t[1]))[0])?void 0:G[0];e&&(r=e);break}case"initialPlacement":r=l}if(n!==r)return{reset:{placement:r}}}return{}}}},Ze=(e,t,r)=>{const o=new Map,n={platform:ze,...r},a={...n.platform,_c:o};return(async(e,t,r)=>{const{placement:o="bottom",strategy:n="absolute",middleware:a=[],platform:i}=r,l=a.filter(Boolean),u=await(null==i.isRTL?void 0:i.isRTL(t));let s=await i.getElementRects({reference:e,floating:t,strategy:n}),{x:c,y:d}=fe(s,o,u),p=o,m={},f=0;for(let r=0;r{t.current=e})),t}const at=(e,t)=>({...Xe(e),options:[e,t]}),it=(e,t)=>({...qe(e),options:[e,t]});var lt=r(5659),ut=r(7365),st=r(4848);const ct=o.forwardRef((function(e,t){const{children:r,container:n,disablePortal:a=!1}=e,[i,l]=o.useState(null),u=(0,m.A)(o.isValidElement(r)?r.ref:null,t);if((0,h.A)((()=>{a||l(function(e){return"function"==typeof e?e():e}(n)||document.body)}),[n,a]),(0,h.A)((()=>{if(i&&!a)return(0,ut.A)(t,i),()=>{(0,ut.A)(t,null)}}),[t,i,a]),a){if(o.isValidElement(r)){const e={ref:u};return o.cloneElement(r,e)}return(0,st.jsx)(o.Fragment,{children:r})}return(0,st.jsx)(o.Fragment,{children:i?Qe.createPortal(r,i):i})})),dt={disableDefaultClasses:!1},pt=o.createContext(dt);function mt(e){const{disableDefaultClasses:t}=o.useContext(pt);return r=>t?"":e(r)}var ft=r(3990);const ht="base";function gt(e,t){const r=ft.li[t];return r?`${ht}--${r}`:function(e,t){return`${ht}-${e}-${t}`}(e,t)}function yt(e,t){const r={};return t.forEach((t=>{r[t]=gt(e,t)})),r}const Mt="Popup";function vt(e){return gt(Mt,e)}yt(Mt,["root","open"]);const wt=o.createContext(null),bt=o.createContext(null),At=["anchor","children","container","disablePortal","keepMounted","middleware","offset","open","placement","slotProps","slots","strategy"],Ct=o.forwardRef((function(e,t){var r;const{anchor:n,children:a,container:i,disablePortal:l=!1,keepMounted:u=!1,middleware:s,offset:c=0,open:f=!1,placement:g="bottom",slotProps:y={},slots:M={},strategy:v="absolute"}=e,w=(0,p.A)(e,At),{refs:b,elements:A,floatingStyles:C,update:L,placement:x}=function(e){void 0===e&&(e={});const{placement:t="bottom",strategy:r="absolute",middleware:n=[],platform:a,elements:{reference:i,floating:l}={},transform:u=!0,whileElementsMounted:s,open:c}=e,[d,p]=o.useState({x:0,y:0,strategy:r,placement:t,middlewareData:{},isPositioned:!1}),[m,f]=o.useState(n);tt(m,n)||f(n);const[h,g]=o.useState(null),[y,M]=o.useState(null),v=o.useCallback((e=>{e!==C.current&&(C.current=e,g(e))}),[]),w=o.useCallback((e=>{e!==L.current&&(L.current=e,M(e))}),[]),b=i||h,A=l||y,C=o.useRef(null),L=o.useRef(null),x=o.useRef(d),I=null!=s,O=nt(s),S=nt(a),G=o.useCallback((()=>{if(!C.current||!L.current)return;const e={placement:t,strategy:r,middleware:m};S.current&&(e.platform=S.current),Ze(C.current,L.current,e).then((e=>{const t={...e,isPositioned:!0};N.current&&!tt(x.current,t)&&(x.current=t,Qe.flushSync((()=>{p(t)})))}))}),[m,t,r,S]);et((()=>{!1===c&&x.current.isPositioned&&(x.current.isPositioned=!1,p((e=>({...e,isPositioned:!1}))))}),[c]);const N=o.useRef(!1);et((()=>(N.current=!0,()=>{N.current=!1})),[]),et((()=>{if(b&&(C.current=b),A&&(L.current=A),b&&A){if(O.current)return O.current(b,A,G);G()}}),[b,A,G,O,I]);const _=o.useMemo((()=>({reference:C,floating:L,setReference:v,setFloating:w})),[v,w]),k=o.useMemo((()=>({reference:b,floating:A})),[b,A]),P=o.useMemo((()=>{const e={position:r,left:0,top:0};if(!k.floating)return e;const t=ot(k.floating,d.x),o=ot(k.floating,d.y);return u?{...e,transform:"translate("+t+"px, "+o+"px)",...rt(k.floating)>=1.5&&{willChange:"transform"}}:{position:r,left:t,top:o}}),[r,u,k.floating,d.x,d.y]);return o.useMemo((()=>({...d,update:G,refs:_,elements:k,floatingStyles:P})),[d,G,_,k,P])}({elements:{reference:(O=n,"function"==typeof O?O():O)},open:f,middleware:null!=s?s:[at(null!=c?c:0),{...Je(I),options:[I,undefined]},it()],placement:g,strategy:v,whileElementsMounted:u?void 0:Ye});var I,O;const S=(0,m.A)(b.setFloating,t);(0,h.A)((()=>{if(u&&f&&A.reference&&A.floating)return Ye(A.reference,A.floating,L)}),[u,f,A,L]);const G=(0,d.A)({},e,{disablePortal:l,keepMounted:u,offset:at,open:f,placement:g,finalPlacement:x,strategy:v}),{contextValue:N,hasExited:_}=function(e){const[t,r]=o.useState(!0),n=o.useRef(!1),a=o.useRef(0),[i,l]=o.useState(!1),u=o.useRef(e);o.useEffect((()=>{!e&&a.current>0&&u.current!==e&&(n.current=!0,r(!1)),u.current=e}),[e]);const s=o.useCallback((()=>{n.current=!1,r(!0)}),[]),c=o.useCallback((()=>(a.current+=1,l(!0),()=>{a.current-=1,0===a.current&&l(!1)})),[]);let d;return d=i?!e&&!n.current&&t:!e,{contextValue:o.useMemo((()=>({requestedEnter:e,onExited:s,registerTransition:c,hasExited:d})),[s,e,c,d]),hasExited:d}}(f),k=u&&_?"hidden":void 0,P=function(e){const{open:t}=e,r={root:["root",t&&"open"]};return(0,lt.A)(r,mt(vt))}(G),E=null!=(r=null==M?void 0:M.root)?r:"div",T=X({elementType:E,externalSlotProps:y.root,externalForwardedProps:w,ownerState:G,className:P.root,additionalProps:{ref:S,role:"tooltip",style:(0,d.A)({},C,{visibility:k})}}),R=o.useMemo((()=>({placement:x})),[x]);return u||!_?(0,st.jsx)(ct,{disablePortal:l,container:i,children:(0,st.jsx)(bt.Provider,{value:R,children:(0,st.jsx)(wt.Provider,{value:N,children:(0,st.jsx)(E,(0,d.A)({},T,{children:a}))})})}):null})),Lt="Select";function xt(e){return gt(Lt,e)}yt(Lt,["root","button","listbox","popup","active","expanded","disabled","focusVisible"]);const It=o.createContext(null);function Ot(e){const{value:t,children:r}=e,{dispatch:n,getItemIndex:a,getItemState:i,registerItem:l,totalSubitemCount:u}=t,s=o.useMemo((()=>({dispatch:n,getItemState:i,getItemIndex:a})),[n,a,i]),c=o.useMemo((()=>({getItemIndex:a,registerItem:l,totalSubitemCount:u})),[l,a,u]);return(0,st.jsx)(D.Provider,{value:c,children:(0,st.jsx)(It.Provider,{value:s,children:r})})}var St;const Gt=["areOptionsEqual","autoComplete","autoFocus","children","defaultValue","defaultListboxOpen","disabled","getSerializedValue","listboxId","listboxOpen","multiple","name","required","onChange","onListboxOpenChange","getOptionAsString","renderValue","placeholder","slotProps","slots","value"];function Nt(e){var t;return Array.isArray(e)?(0,st.jsx)(o.Fragment,{children:e.map((e=>e.label)).join(", ")}):null!=(t=null==e?void 0:e.label)?t:null}const _t=o.forwardRef((function(e,t){var r,n,a,i,l;const{areOptionsEqual:u,autoComplete:s,autoFocus:c,children:f,defaultValue:h,defaultListboxOpen:g=!1,disabled:y,getSerializedValue:M,listboxId:v,listboxOpen:w,multiple:b=!1,name:A,required:C=!1,onChange:L,onListboxOpenChange:x,getOptionAsString:I=$,renderValue:O,placeholder:S,slotProps:G={},slots:N={},value:_}=e,k=(0,p.A)(e,Gt),P=null!=O?O:Nt,[E,T]=o.useState(!1),R=o.useRef(null),U=o.useRef(null),B=null!=(r=N.root)?r:"button",D=null!=(n=N.listbox)?n:"ul",W=null!=(a=N.popup)?a:"div",H=o.useCallback((e=>{T(null!=e)}),[]),F=(0,m.A)(t,R,H);o.useEffect((()=>{c&&R.current.focus()}),[c]);const{buttonActive:j,buttonFocusVisible:K,contextValue:z,disabled:Y,getButtonProps:q,getListboxProps:J,getHiddenInputProps:Z,getOptionMetadata:Q,value:ee,open:te}=V({name:A,required:C,getSerializedValue:M,areOptionsEqual:u,buttonRef:F,defaultOpen:g,defaultValue:h,disabled:y,listboxId:v,multiple:b,open:w,onChange:L,onOpenChange:x,getOptionAsString:I,value:_,componentName:"Select"}),re=(0,d.A)({},e,{active:j,defaultListboxOpen:g,disabled:Y,focusVisible:K,open:te,multiple:b,renderValue:P,value:ee}),oe=function(e){const{active:t,disabled:r,open:o,focusVisible:n}=e,a={root:["root",r&&"disabled",n&&"focusVisible",t&&"active",o&&"expanded"],listbox:["listbox",r&&"disabled"],popup:["popup"]};return(0,lt.A)(a,mt(xt))}(re),ne=X({elementType:B,getSlotProps:q,externalSlotProps:G.root,externalForwardedProps:k,ownerState:re,className:oe.root}),ae=X({elementType:D,getSlotProps:J,externalSlotProps:G.listbox,additionalProps:{ref:U},ownerState:re,className:oe.listbox}),ie=X({elementType:W,externalSlotProps:G.popup,additionalProps:{anchor:R.current,keepMounted:!0,open:te,placement:"bottom-start",role:void 0},ownerState:re,className:oe.popup});let le;var ue;return le=b?ee.map((e=>Q(e))).filter((e=>void 0!==e)):null!=(ue=Q(ee))?ue:null,(0,st.jsxs)(o.Fragment,{children:[(0,st.jsx)(B,(0,d.A)({},ne,{children:null!=(i=null!=(l=P(le))?l:S)?i:St||(St=(0,st.jsx)("span",{className:"notranslate",children:"​"}))})),E&&(0,st.jsx)(Ct,(0,d.A)({slots:{root:W}},ie,{children:(0,st.jsx)(D,(0,d.A)({},ae,{children:(0,st.jsx)(Ot,{value:z,children:f})}))})),(0,st.jsx)("input",(0,d.A)({},Z(),{autoComplete:s}))]})})),kt="Option";function Pt(e){return gt(kt,e)}yt(kt,["root","disabled","selected","highlighted"]);const Et=["children","disabled","label","slotProps","slots","value"],Tt=o.memo(o.forwardRef((function(e,t){var r,n;const{children:a,disabled:i=!1,label:l,slotProps:u={},slots:s={},value:c}=e,g=(0,p.A)(e,Et),y=null!=(r=s.root)?r:"li",w=o.useRef(null),A=(0,m.A)(w,t),C=null!=l?l:"string"==typeof a?a:null==(n=w.current)||null==(n=n.textContent)?void 0:n.trim(),{getRootProps:L,selected:x,highlighted:I,index:O}=function(e){const{value:t,label:r,disabled:n,rootRef:a,id:i}=e,{getRootProps:l,highlighted:u,selected:s}=function(e){const{handlePointerOverEvents:t=!1,item:r}=e,n=o.useContext(It);if(!n)throw new Error("useListItem must be used within a ListProvider");const{dispatch:a,getItemState:i}=n,{highlighted:l,selected:u,focusable:s}=i(r),c=o.useCallback((e=>t=>{var o;null==(o=e.onClick)||o.call(e,t),t.defaultPrevented||a({type:b.itemClick,item:r,event:t})}),[a,r]),p=o.useCallback((e=>t=>{var o;null==(o=e.onMouseOver)||o.call(e,t),t.defaultPrevented||a({type:b.itemHover,item:r,event:t})}),[a,r]);let m;return s&&(m=l?0:-1),{getRootProps:(e={})=>{const r=M(e);return(0,d.A)({},e,{onClick:c(r),onPointerOver:t?p(r):void 0,tabIndex:m})},highlighted:l,selected:u}}({item:t}),{getRootProps:c,rootRef:p}=v({disabled:n,focusableWhenDisabled:!0}),g=(0,f.A)(i),y=o.useRef(null),w=o.useMemo((()=>({disabled:n,label:r,value:t,ref:y,id:g})),[n,r,t,g]),{index:A}=function(e,t){const r=o.useContext(D);if(null===r)throw new Error("useCompoundItem must be used within a useCompoundParent");const{registerItem:n}=r,[a,i]=o.useState("function"==typeof e?void 0:e);return(0,h.A)((()=>{const{id:r,deregister:o}=n(e,t);return i(r),o}),[n,t,e]),{id:a,index:void 0!==a?r.getItemIndex(a):-1,totalItemCount:r.totalSubitemCount}}(t,w),C=(0,m.A)(a,y,p),L=e=>t=>{var r;null==(r=e.onKeyDown)||r.call(e,t),t.defaultMuiPrevented||[" ","Enter"].includes(t.key)&&(t.defaultMuiPrevented=!0)},x=(e={})=>({onKeyDown:L(e)});return{getRootProps:(e={})=>{const t=M(e),r=H(l,H(c,x));return(0,d.A)({},e,t,r(t),{id:g,ref:C,role:"option","aria-selected":s})},highlighted:u,index:A,selected:s,rootRef:C}}({disabled:i,label:C,rootRef:A,value:c}),S=(0,d.A)({},e,{disabled:i,highlighted:I,index:O,selected:x}),G=function(e){const{disabled:t,highlighted:r,selected:o}=e,n={root:["root",t&&"disabled",r&&"highlighted",o&&"selected"]};return(0,lt.A)(n,mt(Pt))}(S),N=X({getSlotProps:L,elementType:y,externalSlotProps:u.root,externalForwardedProps:g,className:G.root,ownerState:S});return(0,st.jsx)(y,(0,d.A)({},N,{children:a}))}))),Rt=o.forwardRef((function(e,t){const{value:r}=e,{contextValue:n}=function(e){const t=o.useContext(It);if(!t)throw new Error("Option: ListContext was not found.");const{getItemState:r,dispatch:n}=t,{highlighted:a,selected:i,focusable:l}=r(e),u=o.useCallback((t=>{if(t!==e)throw new Error(["Base UI Option: Tried to access the state of another Option.","This is unsupported when the Option uses the OptionContextStabilizer as a performance optimization."].join("/n"));return{highlighted:a,selected:i,focusable:l}}),[a,i,l,e]);return{contextValue:o.useMemo((()=>({dispatch:n,getItemState:u})),[n,u])}}(r);return(0,st.jsx)(It.Provider,{value:n,children:(0,st.jsx)(Tt,(0,d.A)({},e,{ref:t}))})}));var Ut=r(885);const Bt=(0,o.forwardRef)((function(e,t){const{text:r,ownerState:n,label:a,...i}=e;return(0,o.createElement)(o.Fragment,null,a&&(0,o.createElement)("span",{className:"CustomInput__label"},r),(0,o.createElement)("button",{type:"button",...i,ref:t},(0,o.createElement)("span",{className:"CustomInput__placeholder"},i.children),(0,o.createElement)(Ut.A,null)))})),$t=()=>(0,o.createElement)("style",null,"\n\t\t.CustomSelect {\n\t\t\tcolor: black;\n\t\t display: flex;\n\t\t\talign-items: center;\n\t\t\tjustify-content: space-between;\n\t\t\ttext-align: left;\n\t\t\tfont-family: var(--wp--preset--font-family--sans-serif);\n\t\t\tfont-weight: 400;\n\t\t\tfont-size: 1em;\n\t\t cursor: pointer;\n\t\t\tword-wrap: break-word;\n\t\t\tline-height: 1em;\n\t\t\twhite-space: normal;\n\t\t\toutline: 0;\n\t\t\twidth: 200px;\n\t\t\tmin-height: 2.5625em;\n\t\t\tbackground: #fff;\n\t\t\tpadding: .5em 1em .5em 1em;\n\t\t\tbox-shadow: none;\n\t\t\tborder: 1px solid var(--Gutenberg-Gray-600, #949494);\n\t\t\tborder-radius: 2px;\n\t\t\ttransition: box-shadow .1s ease,width .1s ease;\n\t\t\t\t\n\t\t}\n\t\t.CustomSelect-option:hover,\n .CustomSelect-option:focus {\n background-color: #f9f9f9;\n color: #000;\n }\n\n .CustomSelect-option.selected {\n background-color: #f1f1f1;\n font-weight: bold;\n }\t\n\t\t.base--expanded {\n\t\t\tborder: 1px solid black;\n\t\t\tborder-bottom: none;\n\t\t\tborder-bottom-right-radius: 0;\n\t\t\tborder-bottom-left-radius: 0;\n\t\t}\t\n\t\t\n\t\t.CustomSelect-popup {\n\t\t\tposition: absolute;\n\t\t\twidth: 200px;\n\t\t\topacity: 0;\n\t\t\tmax-height: 200px;\n\t\t\toverflow-y: auto;\n\t\t\tborder: 1px solid var(--Gutenberg-Gray-600, #949494);\n\t\t\tborder-top: none;\n\t\t\tborder-radius: 2px;\n\t\t\tborder-top-left-radius: 0;\n\t\t\tborder-top-right-radius: 0;\n\t\t\tbackground: #ffff;\n\t\t\tbox-shadow: none;\n\t\t\tz-index: 1000;\n\t\t\tmargin-top: 0;\n\t\t\tbox-sizing: border-box;\n\t\t\ttransition: opacity .3s ease;\n\t}\n\t\t.base--open {\n\t\t\topacity: 1;\n\t\t\tborder: 1px solid black;\n\t\t\tborder-top: none;\n\t\t}\n\n\t\t.CustomSelect-option {\n\t\t\tpadding: 10px;\n\t\t\tcursor: pointer;\n\t\t\tfont-size: 14px;\n\t\t\tfont-family: var(--wp--preset--font-family--sans-serif);\n\t\t\tcolor: #333;\n\t\t\tbackground-color: white;\n\t\t\tborder-bottom: 1px solid #f1f1f1;\n\t\t}\n\n\t\t.base--selected {\n\t\t\tfont-weight: bold;\n\t\t}\n\n\t\t.CustomSelect-option:last-child {\n\t\t\tborder-bottom: none;\n\t\t}\n\n\t\n\t\t.CustomSelect-listbox {\n\t\t\tlist-style: none;\n\t\t\tpadding-inline-start: 0;\n\t\t}\n\n\t\t\n\t\t"),Dt=({buttonProps:e,options:t,placeholder:r,onSelect:n,disabled:a})=>(0,o.createElement)(o.Fragment,null,(0,o.createElement)(_t,{className:"CustomSelect",slots:{root:Bt},slotProps:{listbox:{className:"CustomSelect-listbox"},popup:{className:"CustomSelect-popup",disablePortal:!0},root:e},placeholder:r,onChange:(e,t)=>n(t),disabled:a},t.map((e=>(0,o.createElement)(Rt,{key:e.value?e.value:e,className:"CustomSelect-option",value:e.value?e.value:e},"string"==typeof e&&e.includes("None")?"None of the above":e.text?e.text:e)))),(0,o.createElement)($t,null)),Wt="Input";function Ht(e){return gt(Wt,e)}yt(Wt,["root","formControl","focused","disabled","error","multiline","input","inputMultiline","inputTypeSearch","adornedStart","adornedEnd"]);var Ft=r(9453);const Vt=o.createContext(void 0);function jt(){return o.useContext(Vt)}const Kt=["aria-describedby","aria-label","aria-labelledby","autoComplete","autoFocus","className","defaultValue","disabled","endAdornment","error","id","multiline","name","onClick","onChange","onKeyDown","onKeyUp","onFocus","onBlur","placeholder","readOnly","required","startAdornment","value","type","rows","slotProps","slots","minRows","maxRows"],zt=o.forwardRef((function(e,t){var r,n,a;const{"aria-describedby":i,"aria-label":l,"aria-labelledby":u,autoComplete:s,autoFocus:c,className:f,defaultValue:h,disabled:g,endAdornment:y,error:v,id:w,multiline:b=!1,name:A,onClick:C,onChange:L,onKeyDown:x,onKeyUp:I,onFocus:O,onBlur:S,placeholder:G,readOnly:N,required:_,startAdornment:k,value:P,type:E,rows:T,slotProps:R={},slots:U={},minRows:B,maxRows:$}=e,D=(0,p.A)(e,Kt),{getRootProps:W,getInputProps:H,focused:F,formControlContext:V,error:K,disabled:z}=function(e={}){const{defaultValue:t,disabled:r=!1,error:n=!1,onBlur:a,onChange:i,onFocus:l,required:u=!1,value:s,inputRef:c}=e,p=jt();let f,h,g,y,v;var w,b,A;p?(f=void 0,h=null!=(w=p.disabled)&&w,g=null!=(b=p.error)&&b,y=null!=(A=p.required)&&A,v=p.value):(f=t,h=r,g=n,y=u,v=s);const{current:C}=o.useRef(null!=v),L=o.useCallback((e=>{}),[]),x=o.useRef(null),I=(0,m.A)(x,c,L),[O,S]=o.useState(!1);o.useEffect((()=>{!p&&h&&O&&(S(!1),null==a||a())}),[p,h,O,a]);const G=e=>t=>{var r,o;null!=p&&p.disabled?t.stopPropagation():(null==(r=e.onFocus)||r.call(e,t),p&&p.onFocus?null==p||null==(o=p.onFocus)||o.call(p):S(!0))},N=e=>(t,...r)=>{var o,n;if(!C&&null==(t.target||x.current))throw new Error((0,Ft.A)(17));null==p||null==(o=p.onChange)||o.call(p,t),null==(n=e.onChange)||n.call(e,t,...r)};return{disabled:h,error:g,focused:O,formControlContext:p,getInputProps:(e={})=>{const t={onBlur:a,onChange:i,onFocus:l},r=(0,d.A)({},t,M(e)),o=(0,d.A)({},r,{onBlur:(n=r,e=>{var t;null==(t=n.onBlur)||t.call(n,e),p&&p.onBlur?p.onBlur():S(!1)}),onChange:N(r),onFocus:G(r)});var n;return(0,d.A)({},o,{"aria-invalid":g||void 0,defaultValue:f,value:v,required:y,disabled:h},e,{ref:I},o)},getRootProps:(t={})=>{const r=M(e,["onBlur","onChange","onFocus"]),o=(0,d.A)({},r,M(t));return(0,d.A)({},t,o,{onClick:(n=o,e=>{var t;x.current&&e.currentTarget===e.target&&x.current.focus(),null==(t=n.onClick)||t.call(n,e)})});var n},inputRef:I,required:y,value:v}}({disabled:g,defaultValue:h,error:v,onBlur:S,onClick:C,onChange:L,onFocus:O,required:_,value:P}),Y=b?void 0:null!=E?E:"text",q=(0,d.A)({},e,{disabled:z,error:K,focused:F,formControlContext:V,multiline:b,type:Y}),J=(e=>{const{disabled:t,error:r,focused:o,formControlContext:n,multiline:a,startAdornment:i,endAdornment:l}=e,u={root:["root",t&&"disabled",r&&"error",o&&"focused",Boolean(n)&&"formControl",a&&"multiline",Boolean(i)&&"adornedStart",Boolean(l)&&"adornedEnd"],input:["input",t&&"disabled",a&&"multiline"]};return(0,lt.A)(u,mt(Ht))})(q),Z={"aria-describedby":i,"aria-label":l,"aria-labelledby":u,autoComplete:s,autoFocus:c,id:w,onKeyDown:x,onKeyUp:I,name:A,placeholder:G,readOnly:N,type:Y},Q=null!=(r=U.root)?r:"div",ee=X({elementType:Q,getSlotProps:W,externalSlotProps:R.root,externalForwardedProps:D,additionalProps:{ref:t},ownerState:q,className:[J.root,f]}),te=b?null!=(n=U.textarea)?n:"textarea":null!=(a=U.input)?a:"input",re=X({elementType:te,getSlotProps:e=>H((0,d.A)({},Z,e)),externalSlotProps:R.input,additionalProps:(0,d.A)({rows:b?T:void 0},b&&!j(te)&&{minRows:T||B,maxRows:T||$}),ownerState:q,className:J.input});return(0,st.jsxs)(Q,(0,d.A)({},ee,{children:[k,(0,st.jsx)(te,(0,d.A)({},re)),y]}))})),Yt=(0,o.forwardRef)((function(e,t){const{text:r,onChange:n}=e;return(0,o.createElement)(o.Fragment,null,(0,o.createElement)("span",{className:"CustomInput__label"},r),(0,o.createElement)("div",{className:"base-Input-root"},(0,o.createElement)("input",{className:"CustomInput",onChange:n,onInput:e=>{e.target.value=e.target.value.replace(/[^0-9]/g,"").replace(/\B(?=(\d{3})+(?!\d))/g,",")}})))})),Xt=({onChange:e,text:t})=>(0,o.createElement)(zt,{slots:{root:Yt},slotProps:{root:{text:t,onChange:e}}}),qt="NumberInput";function Jt(e){return gt(qt,e)}yt(qt,["root","formControl","focused","disabled","readOnly","error","input","incrementButton","decrementButton","adornedStart","adornedEnd"]);const Zt="numberInput:clamp",Qt="numberInput:inputChange",er="numberInput:increment",tr="numberInput:decrement",rr="numberInput:decrementToMin",or="numberInput:incrementToMax",nr="numberInput:resetInputValue";var ar=r(725);function ir(e){return"number"==typeof e&&!Number.isNaN(e)&&Number.isFinite(e)}function lr(e,t){const{min:r,max:o,step:n}=t,a=null===e?null:function(e,t=Number.MIN_SAFE_INTEGER,r=Number.MAX_SAFE_INTEGER,o=NaN){if(Number.isNaN(o))return(0,ar.A)(e,t,r);const n=o||1,a=e%n,i=Math.sign(a);return Math.abs(a)>n/2?(0,ar.A)(e+i*(n-Math.abs(a)),t,r):(0,ar.A)(e-i*Math.abs(a),t,r)}(e,r,o,n);return{value:a,inputValue:null===a?"":String(a)}}function ur(e,t,r,o){const n=function(e,t,r,o){const{value:n}=e,{step:a=1,min:i,max:l}=t;return ir(n)?{up:n+(null!=a?a:1)*o,down:n-(null!=a?a:1)*o}[r]:{up:null!=i?i:1,down:null!=l?l:-1}[r]}(e,t,o,r?t.shiftMultiplier:1),a=lr(n,t);return(0,d.A)({},e,a)}function sr(e,t,r){const o=t[r];return ir(o)?(0,d.A)({},e,{value:o,inputValue:String(o)}):e}function cr(e,t){const{type:r,context:o}=t;switch(r){case Zt:return function(e,t,r){const{getInputValueAsString:o}=t,n=o(r),a=lr(""===n||"-"===n?null:parseInt(n,10),t);return(0,d.A)({},e,a)}(e,o,t.inputValue);case Qt:return function(e,t,r){const{getInputValueAsString:o}=t,n=o(r);return n.match(/^-?\d+?$/)||""===n||"-"===n?(0,d.A)({},e,{inputValue:n}):e}(e,o,t.inputValue);case er:return ur(e,o,t.applyMultiplier,"up");case tr:return ur(e,o,t.applyMultiplier,"down");case or:return sr(e,o,"max");case rr:return sr(e,o,"min");case nr:return(0,d.A)({},e,{inputValue:String(e.value)});default:return e}}const dr=["ArrowUp","ArrowDown","PageUp","PageDown","Home","End"];function pr(e){return String(e?e.trim():e)}const mr=["className","defaultValue","disabled","endAdornment","error","id","max","min","onBlur","onInputChange","onFocus","onChange","placeholder","required","readOnly","shiftMultiplier","startAdornment","step","value","slotProps","slots"],fr=o.forwardRef((function(e,t){var r,n,a,i;const{className:l,defaultValue:u,disabled:s,endAdornment:c,error:h,id:g,max:y,min:v,onBlur:w,onInputChange:b,onFocus:A,onChange:C,placeholder:L,required:x,readOnly:I=!1,shiftMultiplier:O,startAdornment:S,step:G,value:_,slotProps:k={},slots:P={}}=e,E=(0,p.A)(e,mr),{getRootProps:T,getInputProps:R,getIncrementButtonProps:U,getDecrementButtonProps:B,focused:$,error:D,disabled:W,formControlContext:H,isIncrementDisabled:F,isDecrementDisabled:V}=function(e){var t;const{min:r,max:n,step:a,shiftMultiplier:i=10,defaultValue:l,disabled:u=!1,error:s=!1,onBlur:c,onInputChange:p,onFocus:h,onChange:g,required:y=!1,readOnly:v=!1,value:w,inputRef:b,inputId:A,componentName:C="useNumberInput"}=e,L=jt(),{current:x}=o.useRef(null!=w),I=o.useCallback((e=>{}),[]),O=o.useRef(null),S=(0,m.A)(O,b,I),G=(0,f.A)(A),[_,k]=o.useState(!1),P=o.useCallback(((e,t,r,o)=>{if("value"===t&&"string"!=typeof r)switch(o){case"numberInput:clamp":case"numberInput:increment":case"numberInput:decrement":case"numberInput:incrementToMax":case"numberInput:decrementToMin":null==g||g(e,r)}}),[g]),E=o.useMemo((()=>({min:r,max:n,step:a,shiftMultiplier:i,getInputValueAsString:pr})),[r,n,a,i]),T=null!=(t=null!=w?w:l)?t:null,R={value:T,inputValue:T?String(T):""},U=o.useMemo((()=>({value:w})),[w]),[B,$]=N({reducer:cr,controlledProps:U,initialState:R,onStateChange:P,actionContext:o.useMemo((()=>E),[E]),componentName:C}),{value:D,inputValue:W}=B;o.useEffect((()=>{!L&&u&&_&&(k(!1),null==c||c())}),[L,u,_,c]),o.useEffect((()=>{x&&ir(D)&&$({type:nr})}),[D,$,x]);const H=e=>t=>{var r,o;if(!x&&null===t.target)throw new Error((0,Ft.A)(17));null==L||null==(r=L.onChange)||r.call(L,t),null==(o=e.onInputChange)||o.call(e,t),t.defaultMuiPrevented||t.defaultPrevented||$({type:Qt,event:t,inputValue:t.currentTarget.value})},F=e=>t=>{var r;null==L||L.onBlur(),null==(r=e.onBlur)||r.call(e,t),t.defaultMuiPrevented||t.defaultPrevented||($({type:Zt,event:t,inputValue:t.currentTarget.value}),k(!1))},V=e=>t=>{const r=Boolean(t.shiftKey);$({type:{up:er,down:tr}[e],event:t,applyMultiplier:r})},j=e=>t=>{var r;if(null==(r=e.onKeyDown)||r.call(e,t),!t.defaultMuiPrevented&&!t.defaultPrevented)switch(dr.includes(t.key)&&t.preventDefault(),t.key){case"ArrowUp":$({type:er,event:t,applyMultiplier:!!t.shiftKey});break;case"ArrowDown":$({type:tr,event:t,applyMultiplier:!!t.shiftKey});break;case"PageUp":$({type:er,event:t,applyMultiplier:!0});break;case"PageDown":$({type:tr,event:t,applyMultiplier:!0});break;case"Home":$({type:or,event:t});break;case"End":$({type:rr,event:t})}},K=e=>{e.preventDefault(),O.current&&O.current.focus()},z={"aria-controls":G,tabIndex:-1},Y=u||!!ir(D)&&D>=(null!=n?n:Number.MAX_SAFE_INTEGER),X=u||!!ir(D)&&D<=(null!=r?r:Number.MIN_SAFE_INTEGER);return{disabled:u,error:s,focused:_,formControlContext:L,getInputProps:(e={})=>{var t;const o={onBlur:c,onFocus:h,onChange:p},a=(0,d.A)({},o,M(e,["onClick"])),i=(0,d.A)({},a,{onFocus:(l=a,e=>{var t,r;null==(t=l.onFocus)||t.call(l,e),e.defaultMuiPrevented||e.defaultPrevented||(L&&L.onFocus&&(null==L||null==(r=L.onFocus)||r.call(L)),k(!0))}),onChange:H((0,d.A)({},a,{onInputChange:a.onChange})),onBlur:F(a),onKeyDown:j(a)});var l;const m=null!=(t=_?W:D)?t:"";return delete e.onInputChange,(0,d.A)({type:"text",id:G,"aria-invalid":s||void 0,defaultValue:void 0,value:m,"aria-valuenow":m,"aria-valuetext":String(m),"aria-valuemin":r,"aria-valuemax":n,autoComplete:"off",autoCorrect:"off",spellCheck:"false",required:y,readOnly:v,"aria-disabled":u,disabled:u},e,{ref:S},i)},getIncrementButtonProps:(e={})=>(0,d.A)({},e,z,{disabled:Y,"aria-disabled":Y,onMouseDown:K,onClick:V("up")}),getDecrementButtonProps:(e={})=>(0,d.A)({},e,z,{disabled:X,"aria-disabled":X,onMouseDown:K,onClick:V("down")}),getRootProps:(t={})=>{const r=M(e,["onBlur","onInputChange","onFocus","onChange"]),o=(0,d.A)({},r,M(t));return(0,d.A)({},t,o,{onClick:(n=o,e=>{var t;null==(t=n.onClick)||t.call(n,e),e.defaultMuiPrevented||e.defaultPrevented||O.current&&e.currentTarget===e.target&&O.current.focus()})});var n},required:y,value:D,inputValue:W,isIncrementDisabled:Y,isDecrementDisabled:X}}({min:v,max:y,step:G,shiftMultiplier:O,defaultValue:u,disabled:s,error:h,onFocus:A,onInputChange:b,onBlur:w,onChange:C,required:x,readOnly:I,value:_,inputId:g,componentName:"NumberInput"}),j=(0,d.A)({},e,{disabled:W,error:D,focused:$,readOnly:I,formControlContext:H,isIncrementDisabled:F,isDecrementDisabled:V}),K=(e=>{const{disabled:t,error:r,focused:o,readOnly:n,formControlContext:a,isIncrementDisabled:i,isDecrementDisabled:l,startAdornment:u,endAdornment:s}=e,c={root:["root",t&&"disabled",r&&"error",o&&"focused",n&&"readOnly",Boolean(a)&&"formControl",Boolean(u)&&"adornedStart",Boolean(s)&&"adornedEnd"],input:["input",t&&"disabled",n&&"readOnly"],incrementButton:["incrementButton",i&&"disabled"],decrementButton:["decrementButton",l&&"disabled"]};return(0,lt.A)(c,mt(Jt))})(j),z={placeholder:L},Y=null!=(r=P.root)?r:"div",q=X({elementType:Y,getSlotProps:T,externalSlotProps:k.root,externalForwardedProps:E,additionalProps:{ref:t},ownerState:j,className:[K.root,l]}),J=null!=(n=P.input)?n:"input",Z=X({elementType:J,getSlotProps:e=>R((0,d.A)({},z,e)),externalSlotProps:k.input,ownerState:j,className:K.input}),Q=null!=(a=P.incrementButton)?a:"button",ee=X({elementType:Q,getSlotProps:U,externalSlotProps:k.incrementButton,ownerState:j,className:K.incrementButton}),te=null!=(i=P.decrementButton)?i:"button",re=X({elementType:te,getSlotProps:B,externalSlotProps:k.decrementButton,ownerState:j,className:K.decrementButton});return(0,st.jsxs)(Y,(0,d.A)({},q,{children:[(0,st.jsx)(te,(0,d.A)({},re)),(0,st.jsx)(Q,(0,d.A)({},ee)),S,(0,st.jsx)(J,(0,d.A)({},Z)),c]}))}));function hr(){return(0,o.createElement)("style",null,'\n .CustomNumberInput {\n position: relative;\n font-family: var(--wp--preset--font-family--sans-serif);\n font-weight: 400;\n border-radius: 8px;\n width: 75px;\n border: 1px solid var(--Gutenberg-Gray-600, #949494);\n border-radius: 2px;\n display: grid;\n grid-template-columns: 50px 1fr;\n grid-template-rows: 1fr 1fr;\n }\n\n .CustomNumberInput::before {\n content: "#";\n font-family: var(--wp--preset--font-family--sans-serif);\n position: absolute;\n left: 10px;\n top: 52%;\n transform: translateY(-52%);\n color: var(--Gutenberg-Gray-600, #949494);\n font-size: 1em;\n pointer-events: none;\n z-index: 1;\n \n }\n\n .CustomNumberInput__text {\n font-family: var(--wp--preset--font-family--sans-serif);\n font-size: 0.9em;\n font-weight: bold;\n }\n \n .CustomNumberInput .input {\n width: 75px;\n font-size: 0.875rem;\n font-family: inherit;\n font-weight: 400;\n line-height: 1.5;\n grid-column: 1/2;\n grid-row: 1/3;\n padding-left: 2em;\n background: inherit;\n border: none;\n border-radius: inherit;\n outline: 0;\n }\n \n .CustomNumberInput .input:focus-visible {\n outline: 0;\n }\n \n .CustomNumberInput .btn {\n z-index: 1;\n background: #ffff;\n display: flex;\n flex-flow: row nowrap;\n justify-content: center;\n align-items: center;\n appearance: none;\n padding: 0;\n width: 19px;\n height: 19px;\n font-family: system-ui, sans-serif;\n font-size: 1.5em;\n color: #D9D9D9;\n line-height: 1;\n box-sizing: border-box;\n border: 0;\n transition-property: all;\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n transition-duration: 120ms;\n }\n \n .CustomNumberInput .btn:hover {\n cursor: pointer;\n }\n \n .CustomNumberInput .btn.increment {\n grid-column: 2/3;\n grid-row: 1/2;\n margin-bottom: -3px;\n \n &:hover {\n cursor: pointer;\n \n }\n \n }\n \n .CustomNumberInput .btn.decrement {\n grid-column: 2/3;\n grid-row: 2/3;\n margin-top: -3px;\n \n &:hover {\n cursor: pointer;\n \n }\n \n }\n \n & .arrow {\n transform: translateY(-1px);\n }\n ')}const gr=({text:e,onChange:t})=>(0,o.createElement)(o.Fragment,null,(0,o.createElement)("span",{className:"CustomNumberInput__text"},e),(0,o.createElement)(fr,{slotProps:{root:{className:"CustomNumberInput"},input:{className:"input"},decrementButton:{className:"btn decrement",children:"▾"},incrementButton:{className:"btn increment",children:"▴"}},onChange:(e,r)=>t(e,r),"aria-label":"Demo number input",max:99,min:1}),(0,o.createElement)(hr,null));function yr(e,t){let r;if(void 0===t)for(const t of e)null!=t&&(r=t)&&(r=t);else{let o=-1;for(let n of e)null!=(n=t(n,++o,e))&&(r=n)&&(r=n)}return r}function Mr(){}function vr(e){return null==e?Mr:function(){return this.querySelector(e)}}function wr(){return[]}function br(e){return null==e?wr:function(){return this.querySelectorAll(e)}}function Ar(e){return function(){return this.matches(e)}}function Cr(e){return function(t){return t.matches(e)}}var Lr=Array.prototype.find;function xr(){return this.firstElementChild}var Ir=Array.prototype.filter;function Or(){return Array.from(this.children)}function Sr(e){return new Array(e.length)}function Gr(e,t){this.ownerDocument=e.ownerDocument,this.namespaceURI=e.namespaceURI,this._next=null,this._parent=e,this.__data__=t}function Nr(e,t,r,o,n,a){for(var i,l=0,u=t.length,s=a.length;lt?1:e>=t?0:NaN}Gr.prototype={constructor:Gr,appendChild:function(e){return this._parent.insertBefore(e,this._next)},insertBefore:function(e,t){return this._parent.insertBefore(e,t)},querySelector:function(e){return this._parent.querySelector(e)},querySelectorAll:function(e){return this._parent.querySelectorAll(e)}};var Tr="http://www.w3.org/1999/xhtml";const Rr={svg:"http://www.w3.org/2000/svg",xhtml:Tr,xlink:"http://www.w3.org/1999/xlink",xml:"http://www.w3.org/XML/1998/namespace",xmlns:"http://www.w3.org/2000/xmlns/"};function Ur(e){var t=e+="",r=t.indexOf(":");return r>=0&&"xmlns"!==(t=e.slice(0,r))&&(e=e.slice(r+1)),Rr.hasOwnProperty(t)?{space:Rr[t],local:e}:e}function Br(e){return function(){this.removeAttribute(e)}}function $r(e){return function(){this.removeAttributeNS(e.space,e.local)}}function Dr(e,t){return function(){this.setAttribute(e,t)}}function Wr(e,t){return function(){this.setAttributeNS(e.space,e.local,t)}}function Hr(e,t){return function(){var r=t.apply(this,arguments);null==r?this.removeAttribute(e):this.setAttribute(e,r)}}function Fr(e,t){return function(){var r=t.apply(this,arguments);null==r?this.removeAttributeNS(e.space,e.local):this.setAttributeNS(e.space,e.local,r)}}function Vr(e){return e.ownerDocument&&e.ownerDocument.defaultView||e.document&&e||e.defaultView}function jr(e){return function(){this.style.removeProperty(e)}}function Kr(e,t,r){return function(){this.style.setProperty(e,t,r)}}function zr(e,t,r){return function(){var o=t.apply(this,arguments);null==o?this.style.removeProperty(e):this.style.setProperty(e,o,r)}}function Yr(e,t){return e.style.getPropertyValue(t)||Vr(e).getComputedStyle(e,null).getPropertyValue(t)}function Xr(e){return function(){delete this[e]}}function qr(e,t){return function(){this[e]=t}}function Jr(e,t){return function(){var r=t.apply(this,arguments);null==r?delete this[e]:this[e]=r}}function Zr(e){return e.trim().split(/^|\s+/)}function Qr(e){return e.classList||new eo(e)}function eo(e){this._node=e,this._names=Zr(e.getAttribute("class")||"")}function to(e,t){for(var r=Qr(e),o=-1,n=t.length;++o=0&&(this._names.splice(t,1),this._node.setAttribute("class",this._names.join(" ")))},contains:function(e){return this._names.indexOf(e)>=0}};var Oo=[null];function So(e,t){this._groups=e,this._parents=t}function Go(){return new So([[document.documentElement]],Oo)}So.prototype=Go.prototype={constructor:So,select:function(e){"function"!=typeof e&&(e=vr(e));for(var t=this._groups,r=t.length,o=new Array(r),n=0;n=b&&(b=w+1);!(v=y[b])&&++b=0;)(o=n[a])&&(i&&4^o.compareDocumentPosition(i)&&i.parentNode.insertBefore(o,i),i=o);return this},sort:function(e){function t(t,r){return t&&r?e(t.__data__,r.__data__):!t-!r}e||(e=Er);for(var r=this._groups,o=r.length,n=new Array(o),a=0;a1?this.each((null==t?jr:"function"==typeof t?zr:Kr)(e,t,null==r?"":r)):Yr(this.node(),e)},property:function(e,t){return arguments.length>1?this.each((null==t?Xr:"function"==typeof t?Jr:qr)(e,t)):this.node()[e]},classed:function(e,t){var r=Zr(e+"");if(arguments.length<2){for(var o=Qr(this.node()),n=-1,a=r.length;++n=0&&(t=e.slice(r+1),e=e.slice(0,r)),{type:e,name:t}}))}(e+""),i=a.length;if(!(arguments.length<2)){for(l=t?Co:Ao,o=0;o{}};function ko(){for(var e,t=0,r=arguments.length,o={};t=0&&(t=e.slice(r+1),e=e.slice(0,r)),e&&!o.hasOwnProperty(e))throw new Error("unknown type: "+e);return{type:e,name:t}}))),i=-1,l=a.length;if(!(arguments.length<2)){if(null!=t&&"function"!=typeof t)throw new Error("invalid callback: "+t);for(;++i0)for(var r,o,n=new Array(r),a=0;a=0&&t._call.call(void 0,e),t=t._next;--$o}()}finally{$o=0,function(){for(var e,t,r=Uo,o=1/0;r;)r._call?(o>r._time&&(o=r._time),e=r,r=r._next):(t=r._next,r._next=null,r=e?e._next=t:Uo=t);Bo=e,en(o)}(),Vo=0}}function Qo(){var e=Ko.now(),t=e-Fo;t>Ho&&(jo-=t,Fo=e)}function en(e){$o||(Do&&(Do=clearTimeout(Do)),e-Vo>24?(e<1/0&&(Do=setTimeout(Zo,e-Ko.now()-jo)),Wo&&(Wo=clearInterval(Wo))):(Wo||(Fo=Ko.now(),Wo=setInterval(Qo,Ho)),$o=1,zo(Zo)))}function tn(e,t,r){var o=new qo;return t=null==t?0:+t,o.restart((r=>{o.stop(),e(r+t)}),t,r),o}qo.prototype=Jo.prototype={constructor:qo,restart:function(e,t,r){if("function"!=typeof e)throw new TypeError("callback is not a function");r=(null==r?Yo():+r)+(null==t?0:+t),this._next||Bo===this||(Bo?Bo._next=this:Uo=this,Bo=this),this._call=e,this._time=r,en()},stop:function(){this._call&&(this._call=null,this._time=1/0,en())}};var rn=Ro("start","end","cancel","interrupt"),on=[],nn=0,an=3;function ln(e,t,r,o,n,a){var i=e.__transition;if(i){if(r in i)return}else e.__transition={};!function(e,t,r){var o,n=e.__transition;function a(u){var s,c,d,p;if(1!==r.state)return l();for(s in n)if((p=n[s]).name===r.name){if(p.state===an)return tn(a);4===p.state?(p.state=6,p.timer.stop(),p.on.call("interrupt",e,e.__data__,p.index,p.group),delete n[s]):+snn)throw new Error("too late; already scheduled");return r}function sn(e,t){var r=cn(e,t);if(r.state>an)throw new Error("too late; already running");return r}function cn(e,t){var r=e.__transition;if(!r||!(r=r[t]))throw new Error("transition not found");return r}function dn(e,t){return e=+e,t=+t,function(r){return e*(1-r)+t*r}}var pn,mn=180/Math.PI,fn={translateX:0,translateY:0,rotate:0,skewX:0,scaleX:1,scaleY:1};function hn(e,t,r,o,n,a){var i,l,u;return(i=Math.sqrt(e*e+t*t))&&(e/=i,t/=i),(u=e*r+t*o)&&(r-=e*u,o-=t*u),(l=Math.sqrt(r*r+o*o))&&(r/=l,o/=l,u/=l),e*o180?t+=360:t-e>180&&(e+=360),a.push({i:r.push(n(r)+"rotate(",null,o)-2,x:dn(e,t)})):t&&r.push(n(r)+"rotate("+t+o)}(a.rotate,i.rotate,l,u),function(e,t,r,a){e!==t?a.push({i:r.push(n(r)+"skewX(",null,o)-2,x:dn(e,t)}):t&&r.push(n(r)+"skewX("+t+o)}(a.skewX,i.skewX,l,u),function(e,t,r,o,a,i){if(e!==r||t!==o){var l=a.push(n(a)+"scale(",null,",",null,")");i.push({i:l-4,x:dn(e,r)},{i:l-2,x:dn(t,o)})}else 1===r&&1===o||a.push(n(a)+"scale("+r+","+o+")")}(a.scaleX,a.scaleY,i.scaleX,i.scaleY,l,u),a=i=null,function(e){for(var t,r=-1,o=u.length;++r>8&15|t>>4&240,t>>4&15|240&t,(15&t)<<4|15&t,1):8===r?Fn(t>>24&255,t>>16&255,t>>8&255,(255&t)/255):4===r?Fn(t>>12&15|t>>8&240,t>>8&15|t>>4&240,t>>4&15|240&t,((15&t)<<4|15&t)/255):null):(t=kn.exec(e))?new jn(t[1],t[2],t[3],1):(t=Pn.exec(e))?new jn(255*t[1]/100,255*t[2]/100,255*t[3]/100,1):(t=En.exec(e))?Fn(t[1],t[2],t[3],t[4]):(t=Tn.exec(e))?Fn(255*t[1]/100,255*t[2]/100,255*t[3]/100,t[4]):(t=Rn.exec(e))?Jn(t[1],t[2]/100,t[3]/100,1):(t=Un.exec(e))?Jn(t[1],t[2]/100,t[3]/100,t[4]):Bn.hasOwnProperty(e)?Hn(Bn[e]):"transparent"===e?new jn(NaN,NaN,NaN,0):null}function Hn(e){return new jn(e>>16&255,e>>8&255,255&e,1)}function Fn(e,t,r,o){return o<=0&&(e=t=r=NaN),new jn(e,t,r,o)}function Vn(e,t,r,o){return 1===arguments.length?((n=e)instanceof Ln||(n=Wn(n)),n?new jn((n=n.rgb()).r,n.g,n.b,n.opacity):new jn):new jn(e,t,r,null==o?1:o);var n}function jn(e,t,r,o){this.r=+e,this.g=+t,this.b=+r,this.opacity=+o}function Kn(){return`#${qn(this.r)}${qn(this.g)}${qn(this.b)}`}function zn(){const e=Yn(this.opacity);return`${1===e?"rgb(":"rgba("}${Xn(this.r)}, ${Xn(this.g)}, ${Xn(this.b)}${1===e?")":`, ${e})`}`}function Yn(e){return isNaN(e)?1:Math.max(0,Math.min(1,e))}function Xn(e){return Math.max(0,Math.min(255,Math.round(e)||0))}function qn(e){return((e=Xn(e))<16?"0":"")+e.toString(16)}function Jn(e,t,r,o){return o<=0?e=t=r=NaN:r<=0||r>=1?e=t=NaN:t<=0&&(e=NaN),new Qn(e,t,r,o)}function Zn(e){if(e instanceof Qn)return new Qn(e.h,e.s,e.l,e.opacity);if(e instanceof Ln||(e=Wn(e)),!e)return new Qn;if(e instanceof Qn)return e;var t=(e=e.rgb()).r/255,r=e.g/255,o=e.b/255,n=Math.min(t,r,o),a=Math.max(t,r,o),i=NaN,l=a-n,u=(a+n)/2;return l?(i=t===a?(r-o)/l+6*(r0&&u<1?0:i,new Qn(i,l,u,e.opacity)}function Qn(e,t,r,o){this.h=+e,this.s=+t,this.l=+r,this.opacity=+o}function ea(e){return(e=(e||0)%360)<0?e+360:e}function ta(e){return Math.max(0,Math.min(1,e||0))}function ra(e,t,r){return 255*(e<60?t+(r-t)*e/60:e<180?r:e<240?t+(r-t)*(240-e)/60:t)}function oa(e,t,r,o,n){var a=e*e,i=a*e;return((1-3*e+3*a-i)*t+(4-6*a+3*i)*r+(1+3*e+3*a-3*i)*o+i*n)/6}An(Ln,Wn,{copy(e){return Object.assign(new this.constructor,this,e)},displayable(){return this.rgb().displayable()},hex:$n,formatHex:$n,formatHex8:function(){return this.rgb().formatHex8()},formatHsl:function(){return Zn(this).formatHsl()},formatRgb:Dn,toString:Dn}),An(jn,Vn,Cn(Ln,{brighter(e){return e=null==e?In:Math.pow(In,e),new jn(this.r*e,this.g*e,this.b*e,this.opacity)},darker(e){return e=null==e?xn:Math.pow(xn,e),new jn(this.r*e,this.g*e,this.b*e,this.opacity)},rgb(){return this},clamp(){return new jn(Xn(this.r),Xn(this.g),Xn(this.b),Yn(this.opacity))},displayable(){return-.5<=this.r&&this.r<255.5&&-.5<=this.g&&this.g<255.5&&-.5<=this.b&&this.b<255.5&&0<=this.opacity&&this.opacity<=1},hex:Kn,formatHex:Kn,formatHex8:function(){return`#${qn(this.r)}${qn(this.g)}${qn(this.b)}${qn(255*(isNaN(this.opacity)?1:this.opacity))}`},formatRgb:zn,toString:zn})),An(Qn,(function(e,t,r,o){return 1===arguments.length?Zn(e):new Qn(e,t,r,null==o?1:o)}),Cn(Ln,{brighter(e){return e=null==e?In:Math.pow(In,e),new Qn(this.h,this.s,this.l*e,this.opacity)},darker(e){return e=null==e?xn:Math.pow(xn,e),new Qn(this.h,this.s,this.l*e,this.opacity)},rgb(){var e=this.h%360+360*(this.h<0),t=isNaN(e)||isNaN(this.s)?0:this.s,r=this.l,o=r+(r<.5?r:1-r)*t,n=2*r-o;return new jn(ra(e>=240?e-240:e+120,n,o),ra(e,n,o),ra(e<120?e+240:e-120,n,o),this.opacity)},clamp(){return new Qn(ea(this.h),ta(this.s),ta(this.l),Yn(this.opacity))},displayable(){return(0<=this.s&&this.s<=1||isNaN(this.s))&&0<=this.l&&this.l<=1&&0<=this.opacity&&this.opacity<=1},formatHsl(){const e=Yn(this.opacity);return`${1===e?"hsl(":"hsla("}${ea(this.h)}, ${100*ta(this.s)}%, ${100*ta(this.l)}%${1===e?")":`, ${e})`}`}}));const na=e=>()=>e;function aa(e,t){var r=t-e;return r?function(e,t){return function(r){return e+r*t}}(e,r):na(isNaN(e)?t:e)}const ia=function e(t){var r=function(e){return 1==(e=+e)?aa:function(t,r){return r-t?function(e,t,r){return e=Math.pow(e,r),t=Math.pow(t,r)-e,r=1/r,function(o){return Math.pow(e+o*t,r)}}(t,r,e):na(isNaN(t)?r:t)}}(t);function o(e,t){var o=r((e=Vn(e)).r,(t=Vn(t)).r),n=r(e.g,t.g),a=r(e.b,t.b),i=aa(e.opacity,t.opacity);return function(t){return e.r=o(t),e.g=n(t),e.b=a(t),e.opacity=i(t),e+""}}return o.gamma=e,o}(1);function la(e){return function(t){var r,o,n=t.length,a=new Array(n),i=new Array(n),l=new Array(n);for(r=0;r=1?(r=1,t-1):Math.floor(r*t),n=e[o],a=e[o+1],i=o>0?e[o-1]:2*n-a,l=oa&&(n=t.slice(a,n),l[i]?l[i]+=n:l[++i]=n),(r=r[0])===(o=o[0])?l[i]?l[i]+=o:l[++i]=o:(l[++i]=null,u.push({i,x:dn(r,o)})),a=sa.lastIndex;return a=0&&(e=e.slice(0,t)),!e||"start"===e}))}(t)?un:sn;return function(){var i=a(this,e),l=i.on;l!==o&&(n=(o=l).copy()).on(t,r),i.on=n}}(r,e,t))},attr:function(e,t){var r=Ur(e),o="transform"===r?Mn:da;return this.attrTween(e,"function"==typeof t?(r.local?ya:ga)(r,o,bn(this,"attr."+e,t)):null==t?(r.local?ma:pa)(r):(r.local?ha:fa)(r,o,t))},attrTween:function(e,t){var r="attr."+e;if(arguments.length<2)return(r=this.tween(r))&&r._value;if(null==t)return this.tween(r,null);if("function"!=typeof t)throw new Error;var o=Ur(e);return this.tween(r,(o.local?Ma:va)(o,t))},style:function(e,t,r){var o="transform"==(e+="")?yn:da;return null==t?this.styleTween(e,function(e,t){var r,o,n;return function(){var a=Yr(this,e),i=(this.style.removeProperty(e),Yr(this,e));return a===i?null:a===r&&i===o?n:n=t(r=a,o=i)}}(e,o)).on("end.style."+e,xa(e)):"function"==typeof t?this.styleTween(e,function(e,t,r){var o,n,a;return function(){var i=Yr(this,e),l=r(this),u=l+"";return null==l&&(this.style.removeProperty(e),u=l=Yr(this,e)),i===u?null:i===o&&u===n?a:(n=u,a=t(o=i,l))}}(e,o,bn(this,"style."+e,t))).each(function(e,t){var r,o,n,a,i="style."+t,l="end."+i;return function(){var u=sn(this,e),s=u.on,c=null==u.value[i]?a||(a=xa(t)):void 0;s===r&&n===c||(o=(r=s).copy()).on(l,n=c),u.on=o}}(this._id,e)):this.styleTween(e,function(e,t,r){var o,n,a=r+"";return function(){var i=Yr(this,e);return i===a?null:i===o?n:n=t(o=i,r)}}(e,o,t),r).on("end.style."+e,null)},styleTween:function(e,t,r){var o="style."+(e+="");if(arguments.length<2)return(o=this.tween(o))&&o._value;if(null==t)return this.tween(o,null);if("function"!=typeof t)throw new Error;return this.tween(o,function(e,t,r){var o,n;function a(){var a=t.apply(this,arguments);return a!==n&&(o=(n=a)&&function(e,t,r){return function(o){this.style.setProperty(e,t.call(this,o),r)}}(e,a,r)),o}return a._value=t,a}(e,t,null==r?"":r))},text:function(e){return this.tween("text","function"==typeof e?function(e){return function(){var t=e(this);this.textContent=null==t?"":t}}(bn(this,"text",e)):function(e){return function(){this.textContent=e}}(null==e?"":e+""))},textTween:function(e){var t="text";if(arguments.length<1)return(t=this.tween(t))&&t._value;if(null==e)return this.tween(t,null);if("function"!=typeof e)throw new Error;return this.tween(t,function(e){var t,r;function o(){var o=e.apply(this,arguments);return o!==r&&(t=(r=o)&&function(e){return function(t){this.textContent=e.call(this,t)}}(o)),t}return o._value=e,o}(e))},remove:function(){return this.on("end.remove",function(e){return function(){var t=this.parentNode;for(var r in this.__transition)if(+r!==e)return;t&&t.removeChild(this)}}(this._id))},tween:function(e,t){var r=this._id;if(e+="",arguments.length<2){for(var o,n=cn(this.node(),r).tween,a=0,i=n.length;a2&&r.state<5,r.state=6,r.timer.stop(),r.on.call(o?"interrupt":"cancel",e,e.__data__,r.index,r.group),delete a[n]):i=!1;i&&delete e.__transition}}(this,e)}))},No.prototype.transition=function(e){var t,r;e instanceof Oa?(t=e._id,e=e._name):(t=Sa(),(r=Na).time=Yo(),e=null==e?null:e+"");for(var o=this._groups,n=o.length,a=0;a=Wa?10:a>=Ha?5:a>=Fa?2:1;let l,u,s;return n<0?(s=Math.pow(10,-n)/i,l=Math.round(e*s),u=Math.round(t*s),l/st&&--u,s=-s):(s=Math.pow(10,n)*i,l=Math.round(e/s),u=Math.round(t/s),l*st&&--u),ut?1:e>=t?0:NaN}function za(e,t){return null==e||null==t?NaN:te?1:t>=e?0:NaN}function Ya(e){let t,r,o;function n(e,o,n=0,a=e.length){if(n>>1;r(e[t],o)<0?n=t+1:a=t}while(nKa(e(t),r),o=(t,r)=>e(t)-r):(t=e===Ka||e===za?e:Xa,r=e,o=e),{left:n,center:function(e,t,r=0,a=e.length){const i=n(e,t,r,a-1);return i>r&&o(e[i-1],t)>-o(e[i],t)?i-1:i},right:function(e,o,n=0,a=e.length){if(n>>1;r(e[t],o)<=0?n=t+1:a=t}while(n=^]))?([+\-( ])?([$#])?(0)?(\d+)?(,)?(\.\d+)?(~)?([a-z%])?$/i;function si(e){if(!(t=ui.exec(e)))throw new Error("invalid format: "+e);var t;return new ci({fill:t[1],align:t[2],sign:t[3],symbol:t[4],zero:t[5],width:t[6],comma:t[7],precision:t[8]&&t[8].slice(1),trim:t[9],type:t[10]})}function ci(e){this.fill=void 0===e.fill?" ":e.fill+"",this.align=void 0===e.align?">":e.align+"",this.sign=void 0===e.sign?"-":e.sign+"",this.symbol=void 0===e.symbol?"":e.symbol+"",this.zero=!!e.zero,this.width=void 0===e.width?void 0:+e.width,this.comma=!!e.comma,this.precision=void 0===e.precision?void 0:+e.precision,this.trim=!!e.trim,this.type=void 0===e.type?"":e.type+""}function di(e,t){if((r=(e=t?e.toExponential(t-1):e.toExponential()).indexOf("e"))<0)return null;var r,o=e.slice(0,r);return[o.length>1?o[0]+o.slice(2):o,+e.slice(r+1)]}function pi(e){return(e=di(Math.abs(e)))?e[1]:NaN}function mi(e,t){var r=di(e,t);if(!r)return e+"";var o=r[0],n=r[1];return n<0?"0."+new Array(-n).join("0")+o:o.length>n+1?o.slice(0,n+1)+"."+o.slice(n+1):o+new Array(n-o.length+2).join("0")}si.prototype=ci.prototype,ci.prototype.toString=function(){return this.fill+this.align+this.sign+this.symbol+(this.zero?"0":"")+(void 0===this.width?"":Math.max(1,0|this.width))+(this.comma?",":"")+(void 0===this.precision?"":"."+Math.max(0,0|this.precision))+(this.trim?"~":"")+this.type};const fi={"%":(e,t)=>(100*e).toFixed(t),b:e=>Math.round(e).toString(2),c:e=>e+"",d:function(e){return Math.abs(e=Math.round(e))>=1e21?e.toLocaleString("en").replace(/,/g,""):e.toString(10)},e:(e,t)=>e.toExponential(t),f:(e,t)=>e.toFixed(t),g:(e,t)=>e.toPrecision(t),o:e=>Math.round(e).toString(8),p:(e,t)=>mi(100*e,t),r:mi,s:function(e,t){var r=di(e,t);if(!r)return e+"";var o=r[0],n=r[1],a=n-(li=3*Math.max(-8,Math.min(8,Math.floor(n/3))))+1,i=o.length;return a===i?o:a>i?o+new Array(a-i+1).join("0"):a>0?o.slice(0,a)+"."+o.slice(a):"0."+new Array(1-a).join("0")+di(e,Math.max(0,t+a-1))[0]},X:e=>Math.round(e).toString(16).toUpperCase(),x:e=>Math.round(e).toString(16)};function hi(e){return e}var gi,yi,Mi,vi=Array.prototype.map,wi=["y","z","a","f","p","n","µ","m","","k","M","G","T","P","E","Z","Y"];function bi(e){var t=e.domain;return e.ticks=function(e){var r=t();return function(e,t,r){if(!((r=+r)>0))return[];if((e=+e)==(t=+t))return[e];const o=t=n))return[];const l=a-n+1,u=new Array(l);if(o)if(i<0)for(let e=0;e0;){if((n=ja(u,s,r))===o)return a[i]=u,a[l]=s,t(a);if(n>0)u=Math.floor(u/n)*n,s=Math.ceil(s/n)*n;else{if(!(n<0))break;u=Math.ceil(u*n)/n,s=Math.floor(s*n)/n}o=n}return e},e}function Ai(){var e=function(){var e,t,r,o,n,a,i=ti,l=ti,u=Da,s=ri;function c(){var e,t,r,u=Math.min(i.length,l.length);return s!==ri&&(e=i[0],t=i[u-1],e>t&&(r=e,e=t,t=r),s=function(r){return Math.max(e,Math.min(t,r))}),o=u>2?ai:ni,n=a=null,d}function d(t){return null==t||isNaN(t=+t)?r:(n||(n=o(i.map(e),l,u)))(e(s(t)))}return d.invert=function(r){return s(t((a||(a=o(l,i.map(e),dn)))(r)))},d.domain=function(e){return arguments.length?(i=Array.from(e,ei),c()):i.slice()},d.range=function(e){return arguments.length?(l=Array.from(e),c()):l.slice()},d.rangeRound=function(e){return l=Array.from(e),u=Qa,c()},d.clamp=function(e){return arguments.length?(s=!!e||ri,c()):s!==ri},d.interpolate=function(e){return arguments.length?(u=e,c()):u},d.unknown=function(e){return arguments.length?(r=e,d):r},function(r,o){return e=r,t=o,c()}}()(ri,ri);return e.copy=function(){return t=e,Ai().domain(t.domain()).range(t.range()).interpolate(t.interpolate()).clamp(t.clamp()).unknown(t.unknown());var t},ii.apply(e,arguments),bi(e)}function Ci(e){return"string"==typeof e?new So([[document.querySelector(e)]],[document.documentElement]):new So([[e]],Oo)}function Li(e){return function(){return e}}gi=function(e){var t,r,o=void 0===e.grouping||void 0===e.thousands?hi:(t=vi.call(e.grouping,Number),r=e.thousands+"",function(e,o){for(var n=e.length,a=[],i=0,l=t[0],u=0;n>0&&l>0&&(u+l+1>o&&(l=Math.max(1,o-u)),a.push(e.substring(n-=l,n+l)),!((u+=l+1)>o));)l=t[i=(i+1)%t.length];return a.reverse().join(r)}),n=void 0===e.currency?"":e.currency[0]+"",a=void 0===e.currency?"":e.currency[1]+"",i=void 0===e.decimal?".":e.decimal+"",l=void 0===e.numerals?hi:function(e){return function(t){return t.replace(/[0-9]/g,(function(t){return e[+t]}))}}(vi.call(e.numerals,String)),u=void 0===e.percent?"%":e.percent+"",s=void 0===e.minus?"−":e.minus+"",c=void 0===e.nan?"NaN":e.nan+"";function d(e){var t=(e=si(e)).fill,r=e.align,d=e.sign,p=e.symbol,m=e.zero,f=e.width,h=e.comma,g=e.precision,y=e.trim,M=e.type;"n"===M?(h=!0,M="g"):fi[M]||(void 0===g&&(g=12),y=!0,M="g"),(m||"0"===t&&"="===r)&&(m=!0,t="0",r="=");var v="$"===p?n:"#"===p&&/[boxX]/.test(M)?"0"+M.toLowerCase():"",w="$"===p?a:/[%p]/.test(M)?u:"",b=fi[M],A=/[defgprs%]/.test(M);function C(e){var n,a,u,p=v,C=w;if("c"===M)C=b(e)+C,e="";else{var L=(e=+e)<0||1/e<0;if(e=isNaN(e)?c:b(Math.abs(e),g),y&&(e=function(e){e:for(var t,r=e.length,o=1,n=-1;o0&&(n=0)}return n>0?e.slice(0,n)+e.slice(t+1):e}(e)),L&&0==+e&&"+"!==d&&(L=!1),p=(L?"("===d?d:s:"-"===d||"("===d?"":d)+p,C=("s"===M?wi[8+li/3]:"")+C+(L&&"("===d?")":""),A)for(n=-1,a=e.length;++n(u=e.charCodeAt(n))||u>57){C=(46===u?i+e.slice(n+1):e.slice(n))+C,e=e.slice(0,n);break}}h&&!m&&(e=o(e,1/0));var x=p.length+e.length+C.length,I=x>1)+p+e+C+I.slice(x);break;default:e=I+p+e+C}return l(e)}return g=void 0===g?6:/[gprs]/.test(M)?Math.max(1,Math.min(21,g)):Math.max(0,Math.min(20,g)),C.toString=function(){return e+""},C}return{format:d,formatPrefix:function(e,t){var r=d(((e=si(e)).type="f",e)),o=3*Math.max(-8,Math.min(8,Math.floor(pi(t)/3))),n=Math.pow(10,-o),a=wi[8+o/3];return function(e){return r(n*e)+a}}}}({thousands:",",grouping:[3],currency:["$",""]}),yi=gi.format,Mi=gi.formatPrefix;const xi=Math.abs,Ii=Math.atan2,Oi=Math.cos,Si=Math.max,Gi=Math.min,Ni=Math.sin,_i=Math.sqrt,ki=1e-12,Pi=Math.PI,Ei=Pi/2,Ti=2*Pi;function Ri(e){return e>=1?Ei:e<=-1?-Ei:Math.asin(e)}const Ui=Math.PI,Bi=2*Ui,$i=1e-6,Di=Bi-$i;function Wi(e){this._+=e[0];for(let t=1,r=e.length;t=0))throw new Error(`invalid digits: ${e}`);if(t>15)return Wi;const r=10**t;return function(e){this._+=e[0];for(let t=1,o=e.length;t$i)if(Math.abs(c*l-u*s)>$i&&n){let p=r-a,m=o-i,f=l*l+u*u,h=p*p+m*m,g=Math.sqrt(f),y=Math.sqrt(d),M=n*Math.tan((Ui-Math.acos((f+d-h)/(2*g*y)))/2),v=M/y,w=M/g;Math.abs(v-1)>$i&&this._append`L${e+v*s},${t+v*c}`,this._append`A${n},${n},0,0,${+(c*p>s*m)},${this._x1=e+w*l},${this._y1=t+w*u}`}else this._append`L${this._x1=e},${this._y1=t}`}arc(e,t,r,o,n,a){if(e=+e,t=+t,a=!!a,(r=+r)<0)throw new Error(`negative radius: ${r}`);let i=r*Math.cos(o),l=r*Math.sin(o),u=e+i,s=t+l,c=1^a,d=a?o-n:n-o;null===this._x1?this._append`M${u},${s}`:(Math.abs(this._x1-u)>$i||Math.abs(this._y1-s)>$i)&&this._append`L${u},${s}`,r&&(d<0&&(d=d%Bi+Bi),d>Di?this._append`A${r},${r},0,1,${c},${e-i},${t-l}A${r},${r},0,1,${c},${this._x1=u},${this._y1=s}`:d>$i&&this._append`A${r},${r},0,${+(d>=Ui)},${c},${this._x1=e+r*Math.cos(n)},${this._y1=t+r*Math.sin(n)}`)}rect(e,t,r,o){this._append`M${this._x0=this._x1=+e},${this._y0=this._y1=+t}h${r=+r}v${+o}h${-r}Z`}toString(){return this._}}function Fi(e){return e.innerRadius}function Vi(e){return e.outerRadius}function ji(e){return e.startAngle}function Ki(e){return e.endAngle}function zi(e){return e&&e.padAngle}function Yi(e,t,r,o,n,a,i){var l=e-r,u=t-o,s=(i?a:-a)/_i(l*l+u*u),c=s*u,d=-s*l,p=e+c,m=t+d,f=r+c,h=o+d,g=(p+f)/2,y=(m+h)/2,M=f-p,v=h-m,w=M*M+v*v,b=n-a,A=p*h-f*m,C=(v<0?-1:1)*_i(Si(0,b*b*w-A*A)),L=(A*v-M*C)/w,x=(-A*M-v*C)/w,I=(A*v+M*C)/w,O=(-A*M+v*C)/w,S=L-g,G=x-y,N=I-g,_=O-y;return S*S+G*G>N*N+_*_&&(L=I,x=O),{cx:L,cy:x,x01:-c,y01:-d,x11:L*(n/b-1),y11:x*(n/b-1)}}function Xi(){var e=Fi,t=Vi,r=Li(0),o=null,n=ji,a=Ki,i=zi,l=null,u=function(e){let t=3;return e.digits=function(r){if(!arguments.length)return t;if(null==r)t=null;else{const e=Math.floor(r);if(!(e>=0))throw new RangeError(`invalid digits: ${r}`);t=e}return e},()=>new Hi(t)}(s);function s(){var s,c,d,p=+e.apply(this,arguments),m=+t.apply(this,arguments),f=n.apply(this,arguments)-Ei,h=a.apply(this,arguments)-Ei,g=xi(h-f),y=h>f;if(l||(l=s=u()),mki)if(g>Ti-ki)l.moveTo(m*Oi(f),m*Ni(f)),l.arc(0,0,m,f,h,!y),p>ki&&(l.moveTo(p*Oi(h),p*Ni(h)),l.arc(0,0,p,h,f,y));else{var M,v,w=f,b=h,A=f,C=h,L=g,x=g,I=i.apply(this,arguments)/2,O=I>ki&&(o?+o.apply(this,arguments):_i(p*p+m*m)),S=Gi(xi(m-p)/2,+r.apply(this,arguments)),G=S,N=S;if(O>ki){var _=Ri(O/p*Ni(I)),k=Ri(O/m*Ni(I));(L-=2*_)>ki?(A+=_*=y?1:-1,C-=_):(L=0,A=C=(f+h)/2),(x-=2*k)>ki?(w+=k*=y?1:-1,b-=k):(x=0,w=b=(f+h)/2)}var P=m*Oi(w),E=m*Ni(w),T=p*Oi(C),R=p*Ni(C);if(S>ki){var U,B=m*Oi(b),$=m*Ni(b),D=p*Oi(A),W=p*Ni(A);if(g1?0:d<-1?Pi:Math.acos(d))/2),z=_i(U[0]*U[0]+U[1]*U[1]);G=Gi(S,(p-z)/(K-1)),N=Gi(S,(m-z)/(K+1))}else G=N=0}x>ki?N>ki?(M=Yi(D,W,P,E,m,N,y),v=Yi(B,$,T,R,m,N,y),l.moveTo(M.cx+M.x01,M.cy+M.y01),Nki&&L>ki?G>ki?(M=Yi(T,R,B,$,p,-G,y),v=Yi(P,E,D,W,p,-G,y),l.lineTo(M.cx+M.x01,M.cy+M.y01),Ge?1:t>=e?0:NaN}function Ji(e){return e}function Zi(e,t,r){this.k=e,this.x=t,this.y=r}Array.prototype.slice,Zi.prototype={constructor:Zi,scale:function(e){return 1===e?this:new Zi(this.k*e,this.x,this.y)},translate:function(e,t){return 0===e&0===t?this:new Zi(this.k,this.x+this.k*e,this.y+this.k*t)},apply:function(e){return[e[0]*this.k+this.x,e[1]*this.k+this.y]},applyX:function(e){return e*this.k+this.x},applyY:function(e){return e*this.k+this.y},invert:function(e){return[(e[0]-this.x)/this.k,(e[1]-this.y)/this.k]},invertX:function(e){return(e-this.x)/this.k},invertY:function(e){return(e-this.y)/this.k},rescaleX:function(e){return e.copy().domain(e.range().map(this.invertX,this).map(e.invert,e))},rescaleY:function(e){return e.copy().domain(e.range().map(this.invertY,this).map(e.invert,e))},toString:function(){return"translate("+this.x+","+this.y+") scale("+this.k+")"}},new Zi(1,0,0),Zi.prototype;const Qi=({disabled:e,expand:t})=>{const[r,n]=(0,o.useState)(!1),[a,i]=(0,o.useState)(""),[l,u]=(0,o.useState)(""),[c,d]=(0,o.useState)(""),[p,m]=(0,o.useState)(""),[f,h]=(0,o.useState)([]),[g,y]=(0,o.useState)(!1),[M,v]=(0,o.useState)([]);return(0,o.useEffect)((()=>{f.length>0&&function(e){Ci(".js-middle-class-calculator-update__demographic__pie").html("");const t={lowerIncome:"#9E802E",middleIncome:"#D2A932",upperIncome:"#E4CB84"},r={lowerIncome:"Lower income",middleIncome:"Middle income",upperIncome:"Upper income"},o=function(){var e=Ji,t=qi,r=null,o=Li(0),n=Li(Ti),a=Li(0);function i(i){var l,u,s,c,d,p,m=(p=i,i="object"==typeof p&&"length"in p?p:Array.from(p)).length,f=0,h=new Array(m),g=new Array(m),y=+o.apply(this,arguments),M=Math.min(Ti,Math.max(-Ti,n.apply(this,arguments)-y)),v=Math.min(Math.abs(M)/m,a.apply(this,arguments)),w=v*(M<0?-1:1);for(l=0;l0&&(f+=d);for(null!=t?h.sort((function(e,r){return t(g[e],g[r])})):null!=r&&h.sort((function(e,t){return r(i[e],i[t])})),l=0,s=f?(M-m*w)/f:0;l0?d*s:0)+w,g[u]={data:i[u],index:l,value:d,startAngle:y,endAngle:c,padAngle:v};return g}return i.value=function(t){return arguments.length?(e="function"==typeof t?t:Li(+t),i):e},i.sortValues=function(e){return arguments.length?(t=e,r=null,i):t},i.sort=function(e){return arguments.length?(r=e,t=null,i):r},i.startAngle=function(e){return arguments.length?(o="function"==typeof e?e:Li(+e),i):o},i.endAngle=function(e){return arguments.length?(n="function"==typeof e?e:Li(+e),i):n},i.padAngle=function(e){return arguments.length?(a="function"==typeof e?e:Li(+e),i):a},i}().sort(null).value((e=>e.value)),n=Xi().innerRadius(0).outerRadius(100),a=o(e),i=Ci(".js-middle-class-calculator-update__demographic__pie").append("svg").attr("width",380).attr("height",350).attr("viewBox",[-190,-175,380,350]).attr("style","max-width: 100%; height: auto; font: 10px sans-serif;");i.append("g").selectAll("path").data(a).join("path").attr("fill",(e=>t[e.data.label])).attr("d",n).each((function(e){this._current={startAngle:0,endAngle:0}})).transition().duration(1e3).attrTween("d",(function(e){const t=Da(this._current.startAngle,e.startAngle),r=Da(this._current.endAngle,e.endAngle);return this._current=e,function(o){return e.startAngle=t(o),e.endAngle=r(o),n(e)}}));const l=1.5*n.outerRadius()(),u=Xi().innerRadius(l).outerRadius(l);i.append("g").selectAll().data(a).join("text").attr("transform",(e=>`translate(${u.centroid(e)})`)).call((e=>e.append("tspan").attr("x","0").attr("y","-0.4em").attr("font-size",".75rem").attr("text-anchor","middle").text((e=>`${e.data.value}%`)))).call((e=>e.append("tspan").attr("x",0).attr("y","0.7em").attr("font-size",".75rem").attr("font-weight","bold").attr("text-anchor","middle").text((e=>r[e.data.label]))))}(f)}),[f]),(0,o.useEffect)((()=>{t&&(document.querySelector(".js-middle-class-calculator-update__open-arrow").classList.toggle("rotated"),n(!0))}),[t]),(0,o.createElement)("div",{className:"js-middle-class-calculator-update__demographic__container"},(0,o.createElement)("button",{className:e?"js-middle-class-calculator-update__calculate-button demo__button demo__button--disabled":"js-middle-class-calculator-update__calculate-button demo__button",type:"button",disabled:e,onClick:()=>{document.querySelector(".js-middle-class-calculator-update__open-arrow").classList.toggle("rotated"),n(!r)}},"How do I compare to others in the U.S. with my demographic profile?",(0,o.createElement)("svg",{xmlns:"http://www.w3.org/2000/svg",width:"21",height:"21",viewBox:"0 0 21 21",fill:"none",className:"js-middle-class-calculator-update__open-arrow"},(0,o.createElement)("path",{d:"M20.2715 10.5C20.2715 16.0228 15.7943 20.5 10.2715 20.5C4.74864 20.5 0.271484 16.0228 0.271484 10.5C0.271484 4.97715 4.74864 0.5 10.2715 0.5C15.7943 0.5 20.2715 4.97715 20.2715 10.5Z",fill:"white"}),(0,o.createElement)("path",{d:"M11.2715 13.9521V12.9521H9.27148V13.9521H11.2715ZM10.2715 17L16.045 7H4.49798L10.2715 17Z",fill:"#538ECB"}))),r&&(0,o.createElement)(o.Fragment,null,(0,o.createElement)("div",{className:e?"js-middle-class-calculator-update__demographic__inputs--disabled":"js-middle-class-calculator-update__demographic__inputs"},(0,o.createElement)(Dt,{buttonProps:{text:"Demographics:",label:!0},options:[{text:"Less than high school",value:"Lt hs"},{text:"High school graduate",value:"High school"},{text:"Two-year degree/Some college",value:"Some college"},{text:"Bachelor's degree or more",value:"Bachelors"}],placeholder:"Education",onSelect:e=>{i(e)},disabled:e}),(0,o.createElement)(Dt,{buttonProps:{text:null,label:!1},options:[{text:"18 to 29",value:"18 to 29"},{text:"30 to 44",value:"30 to 44"},{text:"45 to 64",value:"45 to 64"},{text:"65 or older",value:"65 or older"}],placeholder:"Age",onSelect:e=>{u(e)},disabled:e}),(0,o.createElement)(Dt,{buttonProps:{text:null,label:!1},options:[{text:"White",value:"White"},{text:"Black",value:"Black"},{text:"Hispanic",value:"Hispanic"},{text:"Asian",value:"Asian"},{text:"Other or multiracial",value:"Other or multiracial"}],placeholder:"Race/Ethnicity",onSelect:e=>{d(e)},disabled:e}),(0,o.createElement)(Dt,{buttonProps:{text:null,label:!1},options:[{text:"Married",value:"married"},{text:"Not married",value:"not married"}],placeholder:"Marital status",onSelect:e=>{m(e)},disabled:e}),(0,o.createElement)("button",{type:"button",className:"js-middle-class-calculator-update__calculate-button",onClick:()=>{if(!(a&&l&&c&&p))return void alert("Please fill out all fields");const e=s.find((e=>e.maritalGroup===p&&e.raceGroup===c&&e.educationGroup===a&&e.ageGroup===l)),{lowerIncome:t,middleIncome:r,upperIncome:o}=e,n=[{label:"lowerIncome",value:t},{label:"middleIncome",value:r},{label:"upperIncome",value:o}];h(n),v(n),y(!0)},disabled:e},g?"Recalculate":"Calculate")),(0,o.createElement)("div",{className:"js-middle-class-calculator-update__demographic__pie"})),r&&g&&(0,o.createElement)("div",{className:"js-middle-class-calculator-update__graph__summary js-middle-class-calculator-update__graph__summary--demo"},(0,o.createElement)("p",{className:"js-middle-class-calculator-update__graph__summary--text",style:{padding:0}},"Among all American adults with your education, race or ethnicity, and marital status,"," ",(0,o.createElement)("span",{className:"js-middle-class-calculator-update__graph__summary--text--bolded"}," ",M&&M[1].value,"%")," ","are ",(0,o.createElement)("span",{style:{fontWeight:600}},"MIDDLE")," ","income,",(0,o.createElement)("span",{className:"js-middle-class-calculator-update__graph__summary--text--bolded"}," ",M&&M[2].value,"%")," ","are ",(0,o.createElement)("span",{style:{fontWeight:600}},"UPPER")," ","income, and"," ",(0,o.createElement)("span",{className:"js-middle-class-calculator-update__graph__summary--text--bolded"},M&&M[0].value,"%"," "),"are ",(0,o.createElement)("span",{style:{fontWeight:600}},"LOWER")," ","income.")))},el=[{incomeTier:"Lower",value:28},{incomeTier:"Middle",value:52},{incomeTier:"Upper",value:19}],tl={lower:"115px",middle:"215px",upper:"325px"},rl={lower:"140px",middle:"245px",upper:"355px"},ol={lower:"https://www.pewresearch.org/wp-content/uploads/sites/20/2024/08/Lower-Class_90px.png",middle:"https://www.pewresearch.org/wp-content/uploads/sites/20/2024/08/Middle-Class_90px.png",upper:"https://www.pewresearch.org/wp-content/uploads/sites/20/2024/08/Upper-Class_90px-3.png"};function nl(){const[e,t]=(0,o.useState)(["Select a state first"]),[r,n]=(0,o.useState)(""),[l,s]=(0,o.useState)(""),[d,p]=(0,o.useState)(""),[m,f]=(0,o.useState)(),[h,g]=(0,o.useState)(),[y,M]=(0,o.useState)(""),[v,w]=(0,o.useState)(!1),[b,A]=(0,o.useState)();return(0,o.useEffect)((()=>{!function(){Ci(".js-middle-class-calculator-update__graph svg").remove();const e=parseInt(Ci(".js-middle-class-calculator-update__graph").style("width"),10),t=parseInt(Ci(".js-middle-class-calculator-update__graph").style("height"),10),r=.6*(t-10-10)/4;let o=0;const n=yr(el,(e=>e.value)),a=Ci(".js-middle-class-calculator-update__graph").append("svg").attr("width",e).attr("height",t).selectAll("g.national-bar").data(el).enter().append("g");a.attr("class","national-bar").attr("cx",0).attr("transform",((e,t)=>`translate(70,${t*(60+r)+r/2.5-60+55})`));const i=Ai().domain([0,n]).range([0,e-140-o]);a.append("rect").attr("transform","translate("+o+", 0)").attr("height",60).attr("width",0).attr("fill","#D2A932").transition().duration(1500).attr("width",(function(e){return i(e.value)})),a.append("text").attr("class","label").attr("y",30).attr("dy",".35em").text((function(e){return e.incomeTier})).each((function(){o=Math.ceil(Math.max(o,this.getBBox().width))})).attr("x",(function(){return-this.getBBox().width-10})),a.append("text").attr("class","percent-label").attr("y",30).attr("dy",".35em").each((function(e,t){0===t?(Ci(this).append("tspan").attr("class","percent-label--bold").text("U.S. "),Ci(this).append("tspan").text(`${e.value}%`)):Ci(this).append("tspan").text(`${e.value}`)})).each((function(){o=Math.ceil(Math.max(o,this.getBBox().width))})).attr("x",(function(e){const t=this.getBBox().width;return Math.max(t+2,i(e.value)+10)}))}()}),[]),(0,o.createElement)(o.Fragment,null,(0,o.createElement)("div",{className:"js-middle-class-calculator-update__income__intro"},(0,o.createElement)("img",{src:"https://www.pewresearch.org/wp-content/uploads/sites/20/2024/08/intro-image.png",alt:"Stack of money",style:{height:"57px"}}),(0,o.createElement)("h2",{className:"js-middle-class-calculator-update__income__intro__title"},"Are you in the middle class?"),(0,o.createElement)("p",{className:"js-middle-class-calculator-update__income__intro__text"},"See where you are in the distribution of Americans by income tier. Enter the location that best describes where you live, your household income and the number of people in your household. The calculator adjusts for the cost of living in your area.")),(0,o.createElement)("div",{className:"js-middle-class-calculator-update__income__container"},(0,o.createElement)("div",{className:"js-middle-class-calculator-update__income__inputs"},(0,o.createElement)(Dt,{buttonProps:{text:"State:",label:!0},options:a,placeholder:"Select a state",onSelect:e=>{s(e);const r=c.filter((t=>t.states.some((t=>t.toLowerCase()===e.toLowerCase())))).map((e=>e.metroArea));t(r)}}),(0,o.createElement)(Dt,{buttonProps:{text:"Metropolitan area:",label:!0},options:e,placeholder:"Select a metro area",onSelect:e=>{n(e||"")}}),(0,o.createElement)(Xt,{onChange:e=>{const t=e.target.value.replace(/,/g,"");f(t)},text:"Household income before taxes:"}),(0,o.createElement)(gr,{onChange:(e,t)=>{g(t)},text:"People in my household:"}),(0,o.createElement)("button",{className:"js-middle-class-calculator-update__calculate-button",type:"button",onClick:()=>{if(!(r&&l&&m&&h))return void alert("Please fill out all fields");console.log("fields",r,m,h,l);const e=i.find((e=>e.Metro===r)),{COLA:t}=e,o=m*t/Math.sqrt(h)*Math.sqrt(3);console.log("final figure:",o);let n="";o<56600&&(n="lower",M("lower")),o<=169800.01&&o>=56600&&(n="middle",M("middle")),o>169800.01&&(n="upper",M("upper")),w(!0),p(r.includes("None")?l:r),((e,t,r)=>{if(!e||!t)return;const o=r.find((e=>e.Metro===t)),n=Object.keys(o).filter((e=>"Metro"!==e)).map((e=>({incomeTier:e,value:o[e]}))).find((t=>t.incomeTier.toLowerCase()===e));n&&A(n.value)})(n,r,u),setTimeout((()=>{!function({selectedMetroArea:e,passedIncomeClass:t}){Ci(".js-middle-class-calculator-update__graph svg").remove(),Ci(".js-middle-class-calculator-update__graph .you-arrow").remove();const r=u.find((t=>t.Metro===e)),o=Object.keys(r).filter((e=>"Metro"!==e)).map((e=>({incomeTier:e,value:r[e]}))),n=parseInt(Ci(".js-middle-class-calculator-update__graph").style("width"),10),a=parseInt(Ci(".js-middle-class-calculator-update__graph").style("height"),10),i=.6*(a-10-10)/2*.75;let l=0;const s=yr(o,(e=>e.value)),c=Ci(".js-middle-class-calculator-update__graph").append("svg").attr("width",n).attr("height",a),d=c.selectAll("g").data(o).enter().append("g");d.attr("class","bar").attr("cx",0).attr("transform",((e,t)=>`translate(70,${t*(30+i)+i/2.5-30})`));const p=Ai().domain([0,s]).range([0,.7*(n-140-l)]);d.append("rect").attr("transform","translate("+l+", 0)").attr("height",30).attr("width",0).transition().duration(1500).attr("width",(function(e){return p(e.value)}));const m=c.selectAll("g.national-bar").data(el).enter().append("g");m.attr("class","national-bar").attr("cx",0).attr("transform",((e,t)=>`translate(70,${t*(30+i)+i/2.5})`));const f=Ai().domain([0,s]).range([0,.7*(n-140-l)]);m.append("rect").attr("transform","translate("+l+", 0)").attr("height",30).attr("width",0).attr("fill","#D2A932").transition().duration(1500).attr("width",(function(e){return f(e.value)})),m.append("text").attr("class","label").attr("y",0).attr("dy",".35em").text((function(e){return e.incomeTier})).each((function(){l=Math.ceil(Math.max(l,this.getBBox().width))})).attr("x",(function(){return-this.getBBox().width-15})),m.append("text").attr("class","percent-label").attr("y",15).attr("dy",".35em").each((function(e,t){0===t?(Ci(this).append("tspan").attr("class","percent-label--bold").text("U.S. "),Ci(this).append("tspan").text(`${e.value}%`)):Ci(this).append("tspan").text(`${e.value}`)})).each((function(){l=Math.ceil(Math.max(l,this.getBBox().width))})).attr("x",(function(e){const t=this.getBBox().width;return Math.max(t+2,f(e.value)+10)})),d.append("text").attr("class","percent-label").attr("y",15).attr("dy",".35em").each((function(t,r){0===r?(Ci(this).append("tspan").attr("class","percent-label--bold").text((function(){return e.includes("None")?"STATE ":"METRO AREA "})),Ci(this).append("tspan").text(`${t.value}%`)):Ci(this).append("tspan").text(`${t.value}`)})).each((function(){l=Math.ceil(Math.max(l,this.getBBox().width))})).attr("x",(function(e,t){const r=this.getBBox().width;return 0===t?p(e.value)+10:Math.max(r+2,p(e.value))+10}));const h=Ci(".js-middle-class-calculator-update__graph").append("svg").attr("class","you-arrow").attr("width",50).attr("height",38).attr("style",(function(){const e=document.querySelector(".js-middle-class-calculator-update__graph__subheading"),r=e?e.getBoundingClientRect().height:0;return r>=70?`top: ${rl[t]}`:r<70?`top: ${tl[t]}`:void 0})).attr("viewBox","0 0 50 38");h.append("path").attr("d","M3.87012 11.0566H5.37012V8.05664H3.87012V11.0566ZM0.822266 9.55664L15.8223 18.2169V0.896386L0.822266 9.55664Z").attr("fill","#538ECB"),h.append("text").text("You").attr("fill","#538ECB").attr("x",0).attr("y",35).attr("font-size","14px").attr("font-weight",600).attr("text-anchor","left")}({selectedMetroArea:r,passedIncomeClass:n})}),100)}},v?"Recalculate":"Calculate")),(0,o.createElement)("div",{className:"js-middle-class-calculator-update__graph"},v&&(0,o.createElement)(o.Fragment,null,(0,o.createElement)("p",{className:"js-middle-class-calculator-update__graph__heading"},"YOU ARE IN THE ",y.toUpperCase()," ","INCOME TIER"),(0,o.createElement)("p",{className:"js-middle-class-calculator-update__graph__subheading"},"Share of adults in each income tier in"," ",d.toUpperCase()," and in the U.S.")),!v&&(0,o.createElement)("p",{className:"js-middle-class-calculator-update__graph__subheading"},"Share of adults in each income tier in the U.S.")),v&&(0,o.createElement)("div",{className:"js-middle-class-calculator-update__graph__summary"},(0,o.createElement)("p",{className:"js-middle-class-calculator-update__graph__summary--text"},"Based on your household income and the number of people in your household, you are in the"," ",(0,o.createElement)("span",{className:"js-middle-class-calculator-update__graph__summary--text--bolded"}," ",y," income tier,")," ","along with"," ",(0,o.createElement)("span",{className:"js-middle-class-calculator-update__graph__summary--text--bolded"},b,"%")," ","of adults in"," ",(0,o.createElement)("span",{className:"js-middle-class-calculator-update__graph__summary--text--bolded"},d.toLocaleUpperCase(),"."," ")),(0,o.createElement)("img",{src:y&&ol[y],alt:"",width:90,height:90}))),(0,o.createElement)(Qi,{disabled:!v,expand:v}))}console.log("Hello from the middle class calculator!");const al=document.getElementById("js-middle-class-calculator-update");(0,n.H)(al).render((0,o.createElement)((()=>(0,o.createElement)("div",{className:"wrapper"},(0,o.createElement)(nl,null))),null))},4146:(e,t,r)=>{"use strict";var o=r(3404),n={childContextTypes:!0,contextType:!0,contextTypes:!0,defaultProps:!0,displayName:!0,getDefaultProps:!0,getDerivedStateFromError:!0,getDerivedStateFromProps:!0,mixins:!0,propTypes:!0,type:!0},a={name:!0,length:!0,prototype:!0,caller:!0,callee:!0,arguments:!0,arity:!0},i={$$typeof:!0,compare:!0,defaultProps:!0,displayName:!0,propTypes:!0,type:!0},l={};function u(e){return o.isMemo(e)?i:l[e.$$typeof]||n}l[o.ForwardRef]={$$typeof:!0,render:!0,defaultProps:!0,displayName:!0,propTypes:!0},l[o.Memo]=i;var s=Object.defineProperty,c=Object.getOwnPropertyNames,d=Object.getOwnPropertySymbols,p=Object.getOwnPropertyDescriptor,m=Object.getPrototypeOf,f=Object.prototype;e.exports=function e(t,r,o){if("string"!=typeof r){if(f){var n=m(r);n&&n!==f&&e(t,n,o)}var i=c(r);d&&(i=i.concat(d(r)));for(var l=u(t),h=u(r),g=0;g{"use strict";var r="function"==typeof Symbol&&Symbol.for,o=r?Symbol.for("react.element"):60103,n=r?Symbol.for("react.portal"):60106,a=r?Symbol.for("react.fragment"):60107,i=r?Symbol.for("react.strict_mode"):60108,l=r?Symbol.for("react.profiler"):60114,u=r?Symbol.for("react.provider"):60109,s=r?Symbol.for("react.context"):60110,c=r?Symbol.for("react.async_mode"):60111,d=r?Symbol.for("react.concurrent_mode"):60111,p=r?Symbol.for("react.forward_ref"):60112,m=r?Symbol.for("react.suspense"):60113,f=r?Symbol.for("react.suspense_list"):60120,h=r?Symbol.for("react.memo"):60115,g=r?Symbol.for("react.lazy"):60116,y=r?Symbol.for("react.block"):60121,M=r?Symbol.for("react.fundamental"):60117,v=r?Symbol.for("react.responder"):60118,w=r?Symbol.for("react.scope"):60119;function b(e){if("object"==typeof e&&null!==e){var t=e.$$typeof;switch(t){case o:switch(e=e.type){case c:case d:case a:case l:case i:case m:return e;default:switch(e=e&&e.$$typeof){case s:case p:case g:case h:case u:return e;default:return t}}case n:return t}}}function A(e){return b(e)===d}t.AsyncMode=c,t.ConcurrentMode=d,t.ContextConsumer=s,t.ContextProvider=u,t.Element=o,t.ForwardRef=p,t.Fragment=a,t.Lazy=g,t.Memo=h,t.Portal=n,t.Profiler=l,t.StrictMode=i,t.Suspense=m,t.isAsyncMode=function(e){return A(e)||b(e)===c},t.isConcurrentMode=A,t.isContextConsumer=function(e){return b(e)===s},t.isContextProvider=function(e){return b(e)===u},t.isElement=function(e){return"object"==typeof e&&null!==e&&e.$$typeof===o},t.isForwardRef=function(e){return b(e)===p},t.isFragment=function(e){return b(e)===a},t.isLazy=function(e){return b(e)===g},t.isMemo=function(e){return b(e)===h},t.isPortal=function(e){return b(e)===n},t.isProfiler=function(e){return b(e)===l},t.isStrictMode=function(e){return b(e)===i},t.isSuspense=function(e){return b(e)===m},t.isValidElementType=function(e){return"string"==typeof e||"function"==typeof e||e===a||e===d||e===l||e===i||e===m||e===f||"object"==typeof e&&null!==e&&(e.$$typeof===g||e.$$typeof===h||e.$$typeof===u||e.$$typeof===s||e.$$typeof===p||e.$$typeof===M||e.$$typeof===v||e.$$typeof===w||e.$$typeof===y)},t.typeOf=b},3404:(e,t,r)=>{"use strict";e.exports=r(3072)},5338:(e,t,r)=>{"use strict";var o=r(5795);t.H=o.createRoot,o.hydrateRoot},2799:(e,t)=>{"use strict";Symbol.for("react.element"),Symbol.for("react.portal"),Symbol.for("react.fragment"),Symbol.for("react.strict_mode"),Symbol.for("react.profiler"),Symbol.for("react.provider"),Symbol.for("react.context"),Symbol.for("react.server_context");var r=Symbol.for("react.forward_ref"),o=(Symbol.for("react.suspense"),Symbol.for("react.suspense_list"),Symbol.for("react.memo"));Symbol.for("react.lazy"),Symbol.for("react.offscreen");Symbol.for("react.module.reference"),t.ForwardRef=r,t.Memo=o},4363:(e,t,r)=>{"use strict";e.exports=r(2799)},1020:(e,t,r)=>{"use strict";var o=r(1609),n=Symbol.for("react.element"),a=Symbol.for("react.fragment"),i=Object.prototype.hasOwnProperty,l=o.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,u={key:!0,ref:!0,__self:!0,__source:!0};function s(e,t,r){var o,a={},s=null,c=null;for(o in void 0!==r&&(s=""+r),void 0!==t.key&&(s=""+t.key),void 0!==t.ref&&(c=t.ref),t)i.call(t,o)&&!u.hasOwnProperty(o)&&(a[o]=t[o]);if(e&&e.defaultProps)for(o in t=e.defaultProps)void 0===a[o]&&(a[o]=t[o]);return{$$typeof:n,type:e,key:s,ref:c,props:a,_owner:l.current}}t.Fragment=a,t.jsx=s,t.jsxs=s},4848:(e,t,r)=>{"use strict";e.exports=r(1020)},1609:e=>{"use strict";e.exports=window.React},5795:e=>{"use strict";e.exports=window.ReactDOM},4634:e=>{function t(){return e.exports=t=Object.assign?Object.assign.bind():function(e){for(var t=1;t{e.exports=function(e){return e&&e.__esModule?e:{default:e}},e.exports.__esModule=!0,e.exports.default=e.exports},4893:e=>{e.exports=function(e,t){if(null==e)return{};var r={};for(var o in e)if({}.hasOwnProperty.call(e,o)){if(t.includes(o))continue;r[o]=e[o]}return r},e.exports.__esModule=!0,e.exports.default=e.exports},8168:(e,t,r)=>{"use strict";function o(){return o=Object.assign?Object.assign.bind():function(e){for(var t=1;to})},8587:(e,t,r)=>{"use strict";function o(e,t){if(null==e)return{};var r={};for(var o in e)if({}.hasOwnProperty.call(e,o)){if(t.includes(o))continue;r[o]=e[o]}return r}r.d(t,{A:()=>o})},4164:(e,t,r)=>{"use strict";function o(e){var t,r,n="";if("string"==typeof e||"number"==typeof e)n+=e;else if("object"==typeof e)if(Array.isArray(e)){var a=e.length;for(t=0;tn});const n=function(){for(var e,t,r=0,n="",a=arguments.length;r{if(!r){var i=1/0;for(c=0;c=a)&&Object.keys(o.O).every((e=>o.O[e](r[u])))?r.splice(u--,1):(l=!1,a0&&e[c-1][2]>a;c--)e[c]=e[c-1];e[c]=[r,n,a]},o.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return o.d(t,{a:t}),t},o.d=(e,t)=>{for(var r in t)o.o(t,r)&&!o.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},o.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),o.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},(()=>{var e={57:0,350:0};o.O.j=t=>0===e[t];var t=(t,r)=>{var n,a,[i,l,u]=r,s=0;if(i.some((t=>0!==e[t]))){for(n in l)o.o(l,n)&&(o.m[n]=l[n]);if(u)var c=u(o)}for(t&&t(r);so(7302)));n=o.O(n)})(); //# sourceMappingURL=index.js.map; (()=>{"use strict";var e,r={872:(e,r,o)=>{const t=window.wp.domReady;o.n(t)()((()=>{document.querySelectorAll(".prc-platform__embed-footer").forEach((e=>{const r=e.querySelector('[aria-controls="prc-platform__embed-footer__code"]');console.log(r);const o=e.querySelector(".prc-platform__embed-footer__code");r.addEventListener("click",(e=>{e.stopPropagation(),o.classList.toggle("active")}))}))}))}},o={};function t(e){var a=o[e];if(void 0!==a)return a.exports;var l=o[e]={exports:{}};return r[e](l,l.exports,t),l.exports}t.m=r,e=[],t.O=(r,o,a,l)=>{if(!o){var n=1/0;for(i=0;i=l)&&Object.keys(t.O).every((e=>t.O[e](o[s])))?o.splice(s--,1):(c=!1,l0&&e[i-1][2]>l;i--)e[i]=e[i-1];e[i]=[o,a,l]},t.n=e=>{var r=e&&e.__esModule?()=>e.default:()=>e;return t.d(r,{a:r}),r},t.d=(e,r)=>{for(var o in r)t.o(r,o)&&!t.o(e,o)&&Object.defineProperty(e,o,{enumerable:!0,get:r[o]})},t.o=(e,r)=>Object.prototype.hasOwnProperty.call(e,r),(()=>{var e={692:0,220:0};t.O.j=r=>0===e[r];var r=(r,o)=>{var a,l,[n,c,s]=o,p=0;if(n.some((r=>0!==e[r]))){for(a in c)t.o(c,a)&&(t.m[a]=c[a]);if(s)var i=s(t)}for(r&&r(o);pt(872)));a=t.O(a)})();; (()=>{"use strict";var e={d:(t,n)=>{for(var i in n)e.o(n,i)&&!e.o(t,i)&&Object.defineProperty(t,i,{enumerable:!0,get:n[i]})}};e.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),e.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),e.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var t={};e.r(t),e.d(t,{FirebaseError:()=>C,SDK_VERSION:()=>pt,_DEFAULT_ENTRY_NAME:()=>Qe,_addComponent:()=>nt,_addOrOverwriteComponent:()=>it,_apps:()=>Ze,_clearComponents:()=>lt,_components:()=>tt,_getProvider:()=>st,_isFirebaseApp:()=>at,_isFirebaseServerApp:()=>ct,_registerComponent:()=>rt,_removeServiceInstance:()=>ot,_serverApps:()=>et,deleteApp:()=>vt,getApp:()=>mt,getApps:()=>gt,initializeApp:()=>ft,initializeServerApp:()=>_t,onLog:()=>wt,registerVersion:()=>yt,setLogLevel:()=>bt});const n=function(e,t){if(!e)throw i(t)},i=function(e){return new Error("Firebase Database (${JSCORE_VERSION}) INTERNAL ASSERT FAILED: "+e)},r=function(e){const t=[];let n=0;for(let i=0;i>6|192,t[n++]=63&r|128):55296==(64512&r)&&i+1>18|240,t[n++]=r>>12&63|128,t[n++]=r>>6&63|128,t[n++]=63&r|128):(t[n++]=r>>12|224,t[n++]=r>>6&63|128,t[n++]=63&r|128)}return t},s={byteToCharMap_:null,charToByteMap_:null,byteToCharMapWebSafe_:null,charToByteMapWebSafe_:null,ENCODED_VALS_BASE:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789",get ENCODED_VALS(){return this.ENCODED_VALS_BASE+"+/="},get ENCODED_VALS_WEBSAFE(){return this.ENCODED_VALS_BASE+"-_."},HAS_NATIVE_SUPPORT:"function"==typeof atob,encodeByteArray(e,t){if(!Array.isArray(e))throw Error("encodeByteArray takes an array as a parameter");this.init_();const n=t?this.byteToCharMapWebSafe_:this.byteToCharMap_,i=[];for(let t=0;t>2,h=(3&r)<<4|o>>4;let u=(15&o)<<2|c>>6,d=63&c;a||(d=64,s||(u=64)),i.push(n[l],n[h],n[u],n[d])}return i.join("")},encodeString(e,t){return this.HAS_NATIVE_SUPPORT&&!t?btoa(e):this.encodeByteArray(r(e),t)},decodeString(e,t){return this.HAS_NATIVE_SUPPORT&&!t?atob(e):function(e){const t=[];let n=0,i=0;for(;n191&&r<224){const s=e[n++];t[i++]=String.fromCharCode((31&r)<<6|63&s)}else if(r>239&&r<365){const s=((7&r)<<18|(63&e[n++])<<12|(63&e[n++])<<6|63&e[n++])-65536;t[i++]=String.fromCharCode(55296+(s>>10)),t[i++]=String.fromCharCode(56320+(1023&s))}else{const s=e[n++],o=e[n++];t[i++]=String.fromCharCode((15&r)<<12|(63&s)<<6|63&o)}}return t.join("")}(this.decodeStringToByteArray(e,t))},decodeStringToByteArray(e,t){this.init_();const n=t?this.charToByteMapWebSafe_:this.charToByteMap_,i=[];for(let t=0;t>4;if(i.push(l),64!==a){const e=s<<4&240|a>>2;if(i.push(e),64!==c){const e=a<<6&192|c;i.push(e)}}}return i},init_(){if(!this.byteToCharMap_){this.byteToCharMap_={},this.charToByteMap_={},this.byteToCharMapWebSafe_={},this.charToByteMapWebSafe_={};for(let e=0;e=this.ENCODED_VALS_BASE.length&&(this.charToByteMap_[this.ENCODED_VALS_WEBSAFE.charAt(e)]=e,this.charToByteMapWebSafe_[this.ENCODED_VALS.charAt(e)]=e)}}};class o extends Error{constructor(){super(...arguments),this.name="DecodeBase64StringError"}}const a=function(e){const t=r(e);return s.encodeByteArray(t,!0)},c=function(e){return a(e).replace(/\./g,"")},l=function(e){try{return s.decodeString(e,!0)}catch(e){console.error("base64Decode failed: ",e)}return null};function h(e,t){if(!(t instanceof Object))return t;switch(t.constructor){case Date:return new Date(t.getTime());case Object:void 0===e&&(e={});break;case Array:e=[];break;default:return t}for(const n in t)t.hasOwnProperty(n)&&"__proto__"!==n&&(e[n]=h(e[n],t[n]));return e}function u(){if("undefined"!=typeof self)return self;if("undefined"!=typeof window)return window;if(void 0!==e.g)return e.g;throw new Error("Unable to locate global object.")}const d=()=>{try{return u().__FIREBASE_DEFAULTS__||(()=>{if("undefined"==typeof process||void 0===process.env)return;const e=process.env.__FIREBASE_DEFAULTS__;return e?JSON.parse(e):void 0})()||(()=>{if("undefined"==typeof document)return;let e;try{e=document.cookie.match(/__FIREBASE_DEFAULTS__=([^;]+)/)}catch(e){return}const t=e&&l(e[1]);return t&&JSON.parse(t)})()}catch(e){return void console.info(`Unable to get __FIREBASE_DEFAULTS__ due to: ${e}`)}},p=()=>{var e;return null===(e=d())||void 0===e?void 0:e.config};class f{constructor(){this.reject=()=>{},this.resolve=()=>{},this.promise=new Promise(((e,t)=>{this.resolve=e,this.reject=t}))}wrapCallback(e){return(t,n)=>{t?this.reject(t):this.resolve(n),"function"==typeof e&&(this.promise.catch((()=>{})),1===e.length?e(t):e(t,n))}}}function _(){return"undefined"!=typeof navigator&&"string"==typeof navigator.userAgent?navigator.userAgent:""}function m(){return"undefined"!=typeof window&&!!(window.cordova||window.phonegap||window.PhoneGap)&&/ios|iphone|ipod|ipad|android|blackberry|iemobile/i.test(_())}function g(){var t;const n=null===(t=d())||void 0===t?void 0:t.forceEnvironment;if("node"===n)return!0;if("browser"===n)return!1;try{return"[object process]"===Object.prototype.toString.call(e.g.process)}catch(e){return!1}}function v(){return"undefined"!=typeof WorkerGlobalScope&&"undefined"!=typeof self&&self instanceof WorkerGlobalScope}function y(){const e="object"==typeof chrome?chrome.runtime:"object"==typeof browser?browser.runtime:void 0;return"object"==typeof e&&void 0!==e.id}function w(){return"object"==typeof navigator&&"ReactNative"===navigator.product}function b(){const e=_();return e.indexOf("MSIE ")>=0||e.indexOf("Trident/")>=0}function I(){try{return"object"==typeof indexedDB}catch(e){return!1}}class C extends Error{constructor(e,t,n){super(t),this.code=e,this.customData=n,this.name="FirebaseError",Object.setPrototypeOf(this,C.prototype),Error.captureStackTrace&&Error.captureStackTrace(this,T.prototype.create)}}class T{constructor(e,t,n){this.service=e,this.serviceName=t,this.errors=n}create(e,...t){const n=t[0]||{},i=`${this.service}/${e}`,r=this.errors[e],s=r?function(e,t){return e.replace(k,((e,n)=>{const i=t[n];return null!=i?String(i):`<${n}?>`}))}(r,n):"Error",o=`${this.serviceName}: ${s} (${i}).`;return new C(i,o,n)}}const k=/\{\$([^}]+)}/g;function E(e){return JSON.parse(e)}function S(e){return JSON.stringify(e)}const P=function(e){let t={},n={},i={},r="";try{const s=e.split(".");t=E(l(s[0])||""),n=E(l(s[1])||""),r=s[2],i=n.d||{},delete n.d}catch(e){}return{header:t,claims:n,data:i,signature:r}};function R(e,t){return Object.prototype.hasOwnProperty.call(e,t)}function N(e,t){return Object.prototype.hasOwnProperty.call(e,t)?e[t]:void 0}function A(e){for(const t in e)if(Object.prototype.hasOwnProperty.call(e,t))return!1;return!0}function O(e,t,n){const i={};for(const r in e)Object.prototype.hasOwnProperty.call(e,r)&&(i[r]=t.call(n,e[r],r,e));return i}function D(e,t){if(e===t)return!0;const n=Object.keys(e),i=Object.keys(t);for(const r of n){if(!i.includes(r))return!1;const n=e[r],s=t[r];if(x(n)&&x(s)){if(!D(n,s))return!1}else if(n!==s)return!1}for(const e of i)if(!n.includes(e))return!1;return!0}function x(e){return null!==e&&"object"==typeof e}function L(e){const t=[];for(const[n,i]of Object.entries(e))Array.isArray(i)?i.forEach((e=>{t.push(encodeURIComponent(n)+"="+encodeURIComponent(e))})):t.push(encodeURIComponent(n)+"="+encodeURIComponent(i));return t.length?"&"+t.join("&"):""}function M(e){const t={};return e.replace(/^\?/,"").split("&").forEach((e=>{if(e){const[n,i]=e.split("=");t[decodeURIComponent(n)]=decodeURIComponent(i)}})),t}function F(e){const t=e.indexOf("?");if(!t)return"";const n=e.indexOf("#",t);return e.substring(t,n>0?n:void 0)}class U{constructor(){this.chain_=[],this.buf_=[],this.W_=[],this.pad_=[],this.inbuf_=0,this.total_=0,this.blockSize=64,this.pad_[0]=128;for(let e=1;e>>31)}let i,r,s=this.chain_[0],o=this.chain_[1],a=this.chain_[2],c=this.chain_[3],l=this.chain_[4];for(let e=0;e<80;e++){e<40?e<20?(i=c^o&(a^c),r=1518500249):(i=o^a^c,r=1859775393):e<60?(i=o&a|c&(o|a),r=2400959708):(i=o^a^c,r=3395469782);const t=(s<<5|s>>>27)+i+l+r+n[e]&4294967295;l=c,c=a,a=4294967295&(o<<30|o>>>2),o=s,s=t}this.chain_[0]=this.chain_[0]+s&4294967295,this.chain_[1]=this.chain_[1]+o&4294967295,this.chain_[2]=this.chain_[2]+a&4294967295,this.chain_[3]=this.chain_[3]+c&4294967295,this.chain_[4]=this.chain_[4]+l&4294967295}update(e,t){if(null==e)return;void 0===t&&(t=e.length);const n=t-this.blockSize;let i=0;const r=this.buf_;let s=this.inbuf_;for(;i=56;e--)this.buf_[e]=255&t,t/=256;this.compress_(this.buf_);let n=0;for(let t=0;t<5;t++)for(let i=24;i>=0;i-=8)e[n]=this.chain_[t]>>i&255,++n;return e}}function q(e,t){const n=new j(e,t);return n.subscribe.bind(n)}class j{constructor(e,t){this.observers=[],this.unsubscribes=[],this.observerCount=0,this.task=Promise.resolve(),this.finalized=!1,this.onNoObservers=t,this.task.then((()=>{e(this)})).catch((e=>{this.error(e)}))}next(e){this.forEachObserver((t=>{t.next(e)}))}error(e){this.forEachObserver((t=>{t.error(e)})),this.close(e)}complete(){this.forEachObserver((e=>{e.complete()})),this.close()}subscribe(e,t,n){let i;if(void 0===e&&void 0===t&&void 0===n)throw new Error("Missing Observer.");i=function(e){if("object"!=typeof e||null===e)return!1;for(const t of["next","error","complete"])if(t in e&&"function"==typeof e[t])return!0;return!1}(e)?e:{next:e,error:t,complete:n},void 0===i.next&&(i.next=W),void 0===i.error&&(i.error=W),void 0===i.complete&&(i.complete=W);const r=this.unsubscribeOne.bind(this,this.observers.length);return this.finalized&&this.task.then((()=>{try{this.finalError?i.error(this.finalError):i.complete()}catch(e){}})),this.observers.push(i),r}unsubscribeOne(e){void 0!==this.observers&&void 0!==this.observers[e]&&(delete this.observers[e],this.observerCount-=1,0===this.observerCount&&void 0!==this.onNoObservers&&this.onNoObservers(this))}forEachObserver(e){if(!this.finalized)for(let t=0;t{if(void 0!==this.observers&&void 0!==this.observers[e])try{t(this.observers[e])}catch(e){"undefined"!=typeof console&&console.error&&console.error(e)}}))}close(e){this.finalized||(this.finalized=!0,void 0!==e&&(this.finalError=e),this.task.then((()=>{this.observers=void 0,this.onNoObservers=void 0})))}}function W(){}const V=function(e,t,n,i){let r;if(in&&(r=0===n?"none":"no more than "+n),r)throw new Error(e+" failed: Was called with "+i+(1===i?" argument.":" arguments.")+" Expects "+r+".")};function B(e,t){return`${e} failed: ${t} argument `}function z(e,t,n,i){if((!i||n)&&"function"!=typeof n)throw new Error(B(e,t)+"must be a valid function.")}function H(e,t,n,i){if((!i||n)&&("object"!=typeof n||null===n))throw new Error(B(e,t)+"must be a valid context object.")}const $=function(e){let t=0;for(let n=0;n=55296&&i<=56319?(t+=4,n++):t+=3}return t};function K(e){return e&&e._delegate?e._delegate:e}class G{constructor(e,t,n){this.name=e,this.instanceFactory=t,this.type=n,this.multipleInstances=!1,this.serviceProps={},this.instantiationMode="LAZY",this.onInstanceCreated=null}setInstantiationMode(e){return this.instantiationMode=e,this}setMultipleInstances(e){return this.multipleInstances=e,this}setServiceProps(e){return this.serviceProps=e,this}setInstanceCreatedCallback(e){return this.onInstanceCreated=e,this}}const Y="[DEFAULT]";class J{constructor(e,t){this.name=e,this.container=t,this.component=null,this.instances=new Map,this.instancesDeferred=new Map,this.instancesOptions=new Map,this.onInitCallbacks=new Map}get(e){const t=this.normalizeInstanceIdentifier(e);if(!this.instancesDeferred.has(t)){const e=new f;if(this.instancesDeferred.set(t,e),this.isInitialized(t)||this.shouldAutoInitialize())try{const n=this.getOrInitializeService({instanceIdentifier:t});n&&e.resolve(n)}catch(e){}}return this.instancesDeferred.get(t).promise}getImmediate(e){var t;const n=this.normalizeInstanceIdentifier(null==e?void 0:e.identifier),i=null!==(t=null==e?void 0:e.optional)&&void 0!==t&&t;if(!this.isInitialized(n)&&!this.shouldAutoInitialize()){if(i)return null;throw Error(`Service ${this.name} is not available`)}try{return this.getOrInitializeService({instanceIdentifier:n})}catch(e){if(i)return null;throw e}}getComponent(){return this.component}setComponent(e){if(e.name!==this.name)throw Error(`Mismatching Component ${e.name} for Provider ${this.name}.`);if(this.component)throw Error(`Component for ${this.name} has already been provided`);if(this.component=e,this.shouldAutoInitialize()){if(function(e){return"EAGER"===e.instantiationMode}(e))try{this.getOrInitializeService({instanceIdentifier:Y})}catch(e){}for(const[e,t]of this.instancesDeferred.entries()){const n=this.normalizeInstanceIdentifier(e);try{const e=this.getOrInitializeService({instanceIdentifier:n});t.resolve(e)}catch(e){}}}}clearInstance(e=Y){this.instancesDeferred.delete(e),this.instancesOptions.delete(e),this.instances.delete(e)}async delete(){const e=Array.from(this.instances.values());await Promise.all([...e.filter((e=>"INTERNAL"in e)).map((e=>e.INTERNAL.delete())),...e.filter((e=>"_delete"in e)).map((e=>e._delete()))])}isComponentSet(){return null!=this.component}isInitialized(e=Y){return this.instances.has(e)}getOptions(e=Y){return this.instancesOptions.get(e)||{}}initialize(e={}){const{options:t={}}=e,n=this.normalizeInstanceIdentifier(e.instanceIdentifier);if(this.isInitialized(n))throw Error(`${this.name}(${n}) has already been initialized`);if(!this.isComponentSet())throw Error(`Component ${this.name} has not been registered yet`);const i=this.getOrInitializeService({instanceIdentifier:n,options:t});for(const[e,t]of this.instancesDeferred.entries())n===this.normalizeInstanceIdentifier(e)&&t.resolve(i);return i}onInit(e,t){var n;const i=this.normalizeInstanceIdentifier(t),r=null!==(n=this.onInitCallbacks.get(i))&&void 0!==n?n:new Set;r.add(e),this.onInitCallbacks.set(i,r);const s=this.instances.get(i);return s&&e(s,i),()=>{r.delete(e)}}invokeOnInitCallbacks(e,t){const n=this.onInitCallbacks.get(t);if(n)for(const i of n)try{i(e,t)}catch(e){}}getOrInitializeService({instanceIdentifier:e,options:t={}}){let n=this.instances.get(e);if(!n&&this.component&&(n=this.component.instanceFactory(this.container,{instanceIdentifier:(i=e,i===Y?void 0:i),options:t}),this.instances.set(e,n),this.instancesOptions.set(e,t),this.invokeOnInitCallbacks(n,e),this.component.onInstanceCreated))try{this.component.onInstanceCreated(this.container,e,n)}catch(e){}var i;return n||null}normalizeInstanceIdentifier(e=Y){return this.component?this.component.multipleInstances?e:Y:e}shouldAutoInitialize(){return!!this.component&&"EXPLICIT"!==this.component.instantiationMode}}class Q{constructor(e){this.name=e,this.providers=new Map}addComponent(e){const t=this.getProvider(e.name);if(t.isComponentSet())throw new Error(`Component ${e.name} has already been registered with ${this.name}`);t.setComponent(e)}addOrOverwriteComponent(e){this.getProvider(e.name).isComponentSet()&&this.providers.delete(e.name),this.addComponent(e)}getProvider(e){if(this.providers.has(e))return this.providers.get(e);const t=new J(e,this);return this.providers.set(e,t),t}getProviders(){return Array.from(this.providers.values())}}const X=[];var Z;!function(e){e[e.DEBUG=0]="DEBUG",e[e.VERBOSE=1]="VERBOSE",e[e.INFO=2]="INFO",e[e.WARN=3]="WARN",e[e.ERROR=4]="ERROR",e[e.SILENT=5]="SILENT"}(Z||(Z={}));const ee={debug:Z.DEBUG,verbose:Z.VERBOSE,info:Z.INFO,warn:Z.WARN,error:Z.ERROR,silent:Z.SILENT},te=Z.INFO,ne={[Z.DEBUG]:"log",[Z.VERBOSE]:"log",[Z.INFO]:"info",[Z.WARN]:"warn",[Z.ERROR]:"error"},ie=(e,t,...n)=>{if(t(e[t]=n,!0),has:(e,t)=>e instanceof IDBTransaction&&("done"===t||"store"===t)||t in e};function pe(e){return"function"==typeof e?(t=e)!==IDBDatabase.prototype.transaction||"objectStoreNames"in IDBTransaction.prototype?(oe||(oe=[IDBCursor.prototype.advance,IDBCursor.prototype.continue,IDBCursor.prototype.continuePrimaryKey])).includes(t)?function(...e){return t.apply(_e(this),e),fe(ae.get(this))}:function(...e){return fe(t.apply(_e(this),e))}:function(e,...n){const i=t.call(_e(this),e,...n);return le.set(i,e.sort?e.sort():[e]),fe(i)}:(e instanceof IDBTransaction&&function(e){if(ce.has(e))return;const t=new Promise(((t,n)=>{const i=()=>{e.removeEventListener("complete",r),e.removeEventListener("error",s),e.removeEventListener("abort",s)},r=()=>{t(),i()},s=()=>{n(e.error||new DOMException("AbortError","AbortError")),i()};e.addEventListener("complete",r),e.addEventListener("error",s),e.addEventListener("abort",s)}));ce.set(e,t)}(e),n=e,(se||(se=[IDBDatabase,IDBObjectStore,IDBIndex,IDBCursor,IDBTransaction])).some((e=>n instanceof e))?new Proxy(e,de):e);var t,n}function fe(e){if(e instanceof IDBRequest)return function(e){const t=new Promise(((t,n)=>{const i=()=>{e.removeEventListener("success",r),e.removeEventListener("error",s)},r=()=>{t(fe(e.result)),i()},s=()=>{n(e.error),i()};e.addEventListener("success",r),e.addEventListener("error",s)}));return t.then((t=>{t instanceof IDBCursor&&ae.set(t,e)})).catch((()=>{})),ue.set(t,e),t}(e);if(he.has(e))return he.get(e);const t=pe(e);return t!==e&&(he.set(e,t),ue.set(t,e)),t}const _e=e=>ue.get(e),me=["get","getKey","getAll","getAllKeys","count"],ge=["put","add","delete","clear"],ve=new Map;function ye(e,t){if(!(e instanceof IDBDatabase)||t in e||"string"!=typeof t)return;if(ve.get(t))return ve.get(t);const n=t.replace(/FromIndex$/,""),i=t!==n,r=ge.includes(n);if(!(n in(i?IDBIndex:IDBObjectStore).prototype)||!r&&!me.includes(n))return;const s=async function(e,...t){const s=this.transaction(e,r?"readwrite":"readonly");let o=s.store;return i&&(o=o.index(t.shift())),(await Promise.all([o[n](...t),r&&s.done]))[0]};return ve.set(t,s),s}var we;we=de,de={...we,get:(e,t,n)=>ye(e,t)||we.get(e,t,n),has:(e,t)=>!!ye(e,t)||we.has(e,t)};class be{constructor(e){this.container=e}getPlatformInfoString(){return this.container.getProviders().map((e=>{if(function(e){const t=e.getComponent();return"VERSION"===(null==t?void 0:t.type)}(e)){const t=e.getImmediate();return`${t.library}/${t.version}`}return null})).filter((e=>e)).join(" ")}}const Ie="@firebase/app",Ce="0.10.13",Te=new re("@firebase/app"),ke="@firebase/app-compat",Ee="@firebase/analytics-compat",Se="@firebase/analytics",Pe="@firebase/app-check-compat",Re="@firebase/app-check",Ne="@firebase/auth",Ae="@firebase/auth-compat",Oe="@firebase/database",De="@firebase/data-connect",xe="@firebase/database-compat",Le="@firebase/functions",Me="@firebase/functions-compat",Fe="@firebase/installations",Ue="@firebase/installations-compat",qe="@firebase/messaging",je="@firebase/messaging-compat",We="@firebase/performance",Ve="@firebase/performance-compat",Be="@firebase/remote-config",ze="@firebase/remote-config-compat",He="@firebase/storage",$e="@firebase/storage-compat",Ke="@firebase/firestore",Ge="@firebase/vertexai-preview",Ye="@firebase/firestore-compat",Je="firebase",Qe="[DEFAULT]",Xe={[Ie]:"fire-core",[ke]:"fire-core-compat",[Se]:"fire-analytics",[Ee]:"fire-analytics-compat",[Re]:"fire-app-check",[Pe]:"fire-app-check-compat",[Ne]:"fire-auth",[Ae]:"fire-auth-compat",[Oe]:"fire-rtdb",[De]:"fire-data-connect",[xe]:"fire-rtdb-compat",[Le]:"fire-fn",[Me]:"fire-fn-compat",[Fe]:"fire-iid",[Ue]:"fire-iid-compat",[qe]:"fire-fcm",[je]:"fire-fcm-compat",[We]:"fire-perf",[Ve]:"fire-perf-compat",[Be]:"fire-rc",[ze]:"fire-rc-compat",[He]:"fire-gcs",[$e]:"fire-gcs-compat",[Ke]:"fire-fst",[Ye]:"fire-fst-compat",[Ge]:"fire-vertex","fire-js":"fire-js",[Je]:"fire-js-all"},Ze=new Map,et=new Map,tt=new Map;function nt(e,t){try{e.container.addComponent(t)}catch(n){Te.debug(`Component ${t.name} failed to register with FirebaseApp ${e.name}`,n)}}function it(e,t){e.container.addOrOverwriteComponent(t)}function rt(e){const t=e.name;if(tt.has(t))return Te.debug(`There were multiple attempts to register component ${t}.`),!1;tt.set(t,e);for(const t of Ze.values())nt(t,e);for(const t of et.values())nt(t,e);return!0}function st(e,t){const n=e.container.getProvider("heartbeat").getImmediate({optional:!0});return n&&n.triggerHeartbeat(),e.container.getProvider(t)}function ot(e,t,n=Qe){st(e,t).clearInstance(n)}function at(e){return void 0!==e.options}function ct(e){return void 0!==e.settings}function lt(){tt.clear()}const ht=new T("app","Firebase",{"no-app":"No Firebase App '{$appName}' has been created - call initializeApp() first","bad-app-name":"Illegal App name: '{$appName}'","duplicate-app":"Firebase App named '{$appName}' already exists with different options or config","app-deleted":"Firebase App named '{$appName}' already deleted","server-app-deleted":"Firebase Server App has been deleted","no-options":"Need to provide options, when not being deployed to hosting via source.","invalid-app-argument":"firebase.{$appName}() takes either no argument or a Firebase App instance.","invalid-log-argument":"First argument to `onLog` must be null or a function.","idb-open":"Error thrown when opening IndexedDB. Original error: {$originalErrorMessage}.","idb-get":"Error thrown when reading from IndexedDB. Original error: {$originalErrorMessage}.","idb-set":"Error thrown when writing to IndexedDB. Original error: {$originalErrorMessage}.","idb-delete":"Error thrown when deleting from IndexedDB. Original error: {$originalErrorMessage}.","finalization-registry-not-supported":"FirebaseServerApp deleteOnDeref field defined but the JS runtime does not support FinalizationRegistry.","invalid-server-app-environment":"FirebaseServerApp is not for use in browser environments."});class ut{constructor(e,t,n){this._isDeleted=!1,this._options=Object.assign({},e),this._config=Object.assign({},t),this._name=t.name,this._automaticDataCollectionEnabled=t.automaticDataCollectionEnabled,this._container=n,this.container.addComponent(new G("app",(()=>this),"PUBLIC"))}get automaticDataCollectionEnabled(){return this.checkDestroyed(),this._automaticDataCollectionEnabled}set automaticDataCollectionEnabled(e){this.checkDestroyed(),this._automaticDataCollectionEnabled=e}get name(){return this.checkDestroyed(),this._name}get options(){return this.checkDestroyed(),this._options}get config(){return this.checkDestroyed(),this._config}get container(){return this._container}get isDeleted(){return this._isDeleted}set isDeleted(e){this._isDeleted=e}checkDestroyed(){if(this.isDeleted)throw ht.create("app-deleted",{appName:this._name})}}class dt extends ut{constructor(e,t,n,i){const r=void 0!==t.automaticDataCollectionEnabled&&t.automaticDataCollectionEnabled,s={name:n,automaticDataCollectionEnabled:r};void 0!==e.apiKey?super(e,s,i):super(e.options,s,i),this._serverConfig=Object.assign({automaticDataCollectionEnabled:r},t),this._finalizationRegistry=null,"undefined"!=typeof FinalizationRegistry&&(this._finalizationRegistry=new FinalizationRegistry((()=>{this.automaticCleanup()}))),this._refCount=0,this.incRefCount(this._serverConfig.releaseOnDeref),this._serverConfig.releaseOnDeref=void 0,t.releaseOnDeref=void 0,yt(Ie,Ce,"serverapp")}toJSON(){}get refCount(){return this._refCount}incRefCount(e){this.isDeleted||(this._refCount++,void 0!==e&&null!==this._finalizationRegistry&&this._finalizationRegistry.register(e,this))}decRefCount(){return this.isDeleted?0:--this._refCount}automaticCleanup(){vt(this)}get settings(){return this.checkDestroyed(),this._serverConfig}checkDestroyed(){if(this.isDeleted)throw ht.create("server-app-deleted")}}const pt="10.14.1";function ft(e,t={}){let n=e;"object"!=typeof t&&(t={name:t});const i=Object.assign({name:Qe,automaticDataCollectionEnabled:!1},t),r=i.name;if("string"!=typeof r||!r)throw ht.create("bad-app-name",{appName:String(r)});if(n||(n=p()),!n)throw ht.create("no-options");const s=Ze.get(r);if(s){if(D(n,s.options)&&D(i,s.config))return s;throw ht.create("duplicate-app",{appName:r})}const o=new Q(r);for(const e of tt.values())o.addComponent(e);const a=new ut(n,i,o);return Ze.set(r,a),a}function _t(e,t){if(("undefined"!=typeof window||v())&&!v())throw ht.create("invalid-server-app-environment");let n;void 0===t.automaticDataCollectionEnabled&&(t.automaticDataCollectionEnabled=!1),n=at(e)?e.options:e;const i=Object.assign(Object.assign({},t),n);if(void 0!==i.releaseOnDeref&&delete i.releaseOnDeref,void 0!==t.releaseOnDeref&&"undefined"==typeof FinalizationRegistry)throw ht.create("finalization-registry-not-supported",{});const r=""+(s=JSON.stringify(i),[...s].reduce(((e,t)=>Math.imul(31,e)+t.charCodeAt(0)|0),0));var s;const o=et.get(r);if(o)return o.incRefCount(t.releaseOnDeref),o;const a=new Q(r);for(const e of tt.values())a.addComponent(e);const c=new dt(n,t,r,a);return et.set(r,c),c}function mt(e=Qe){const t=Ze.get(e);if(!t&&e===Qe&&p())return ft();if(!t)throw ht.create("no-app",{appName:e});return t}function gt(){return Array.from(Ze.values())}async function vt(e){let t=!1;const n=e.name;Ze.has(n)?(t=!0,Ze.delete(n)):et.has(n)&&e.decRefCount()<=0&&(et.delete(n),t=!0),t&&(await Promise.all(e.container.getProviders().map((e=>e.delete()))),e.isDeleted=!0)}function yt(e,t,n){var i;let r=null!==(i=Xe[e])&&void 0!==i?i:e;n&&(r+=`-${n}`);const s=r.match(/\s|\//),o=t.match(/\s|\//);if(s||o){const e=[`Unable to register library "${r}" with version "${t}":`];return s&&e.push(`library name "${r}" contains illegal characters (whitespace or "/")`),s&&o&&e.push("and"),o&&e.push(`version name "${t}" contains illegal characters (whitespace or "/")`),void Te.warn(e.join(" "))}rt(new G(`${r}-version`,(()=>({library:r,version:t})),"VERSION"))}function wt(e,t){if(null!==e&&"function"!=typeof e)throw ht.create("invalid-log-argument");!function(e,t){for(const n of X){let i=null;t&&t.level&&(i=ee[t.level]),n.userLogHandler=null===e?null:(t,n,...r)=>{const s=r.map((e=>{if(null==e)return null;if("string"==typeof e)return e;if("number"==typeof e||"boolean"==typeof e)return e.toString();if(e instanceof Error)return e.message;try{return JSON.stringify(e)}catch(e){return null}})).filter((e=>e)).join(" ");n>=(null!=i?i:t.logLevel)&&e({level:Z[n].toLowerCase(),message:s,args:r,type:t.name})}}}(e,t)}function bt(e){var t;t=e,X.forEach((e=>{e.setLogLevel(t)}))}const It="firebase-heartbeat-store";let Ct=null;function Tt(){return Ct||(Ct=function(e,t,{blocked:n,upgrade:i,blocking:r,terminated:s}={}){const o=indexedDB.open(e,t),a=fe(o);return i&&o.addEventListener("upgradeneeded",(e=>{i(fe(o.result),e.oldVersion,e.newVersion,fe(o.transaction),e)})),n&&o.addEventListener("blocked",(e=>n(e.oldVersion,e.newVersion,e))),a.then((e=>{s&&e.addEventListener("close",(()=>s())),r&&e.addEventListener("versionchange",(e=>r(e.oldVersion,e.newVersion,e)))})).catch((()=>{})),a}("firebase-heartbeat-database",1,{upgrade:(e,t)=>{if(0===t)try{e.createObjectStore(It)}catch(e){console.warn(e)}}}).catch((e=>{throw ht.create("idb-open",{originalErrorMessage:e.message})}))),Ct}async function kt(e,t){try{const n=(await Tt()).transaction(It,"readwrite"),i=n.objectStore(It);await i.put(t,Et(e)),await n.done}catch(e){if(e instanceof C)Te.warn(e.message);else{const t=ht.create("idb-set",{originalErrorMessage:null==e?void 0:e.message});Te.warn(t.message)}}}function Et(e){return`${e.name}!${e.options.appId}`}class St{constructor(e){this.container=e,this._heartbeatsCache=null;const t=this.container.getProvider("app").getImmediate();this._storage=new Rt(t),this._heartbeatsCachePromise=this._storage.read().then((e=>(this._heartbeatsCache=e,e)))}async triggerHeartbeat(){var e,t;try{const n=this.container.getProvider("platform-logger").getImmediate().getPlatformInfoString(),i=Pt();if(null==(null===(e=this._heartbeatsCache)||void 0===e?void 0:e.heartbeats)&&(this._heartbeatsCache=await this._heartbeatsCachePromise,null==(null===(t=this._heartbeatsCache)||void 0===t?void 0:t.heartbeats)))return;if(this._heartbeatsCache.lastSentHeartbeatDate===i||this._heartbeatsCache.heartbeats.some((e=>e.date===i)))return;return this._heartbeatsCache.heartbeats.push({date:i,agent:n}),this._heartbeatsCache.heartbeats=this._heartbeatsCache.heartbeats.filter((e=>{const t=new Date(e.date).valueOf();return Date.now()-t<=2592e6})),this._storage.overwrite(this._heartbeatsCache)}catch(e){Te.warn(e)}}async getHeartbeatsHeader(){var e;try{if(null===this._heartbeatsCache&&await this._heartbeatsCachePromise,null==(null===(e=this._heartbeatsCache)||void 0===e?void 0:e.heartbeats)||0===this._heartbeatsCache.heartbeats.length)return"";const t=Pt(),{heartbeatsToSend:n,unsentEntries:i}=function(e,t=1024){const n=[];let i=e.slice();for(const r of e){const e=n.find((e=>e.agent===r.agent));if(e){if(e.dates.push(r.date),Nt(n)>t){e.dates.pop();break}}else if(n.push({agent:r.agent,dates:[r.date]}),Nt(n)>t){n.pop();break}i=i.slice(1)}return{heartbeatsToSend:n,unsentEntries:i}}(this._heartbeatsCache.heartbeats),r=c(JSON.stringify({version:2,heartbeats:n}));return this._heartbeatsCache.lastSentHeartbeatDate=t,i.length>0?(this._heartbeatsCache.heartbeats=i,await this._storage.overwrite(this._heartbeatsCache)):(this._heartbeatsCache.heartbeats=[],this._storage.overwrite(this._heartbeatsCache)),r}catch(e){return Te.warn(e),""}}}function Pt(){return(new Date).toISOString().substring(0,10)}class Rt{constructor(e){this.app=e,this._canUseIndexedDBPromise=this.runIndexedDBEnvironmentCheck()}async runIndexedDBEnvironmentCheck(){return!!I()&&new Promise(((e,t)=>{try{let n=!0;const i="validate-browser-context-for-indexeddb-analytics-module",r=self.indexedDB.open(i);r.onsuccess=()=>{r.result.close(),n||self.indexedDB.deleteDatabase(i),e(!0)},r.onupgradeneeded=()=>{n=!1},r.onerror=()=>{var e;t((null===(e=r.error)||void 0===e?void 0:e.message)||"")}}catch(e){t(e)}})).then((()=>!0)).catch((()=>!1))}async read(){if(await this._canUseIndexedDBPromise){const e=await async function(e){try{const t=(await Tt()).transaction(It),n=await t.objectStore(It).get(Et(e));return await t.done,n}catch(e){if(e instanceof C)Te.warn(e.message);else{const t=ht.create("idb-get",{originalErrorMessage:null==e?void 0:e.message});Te.warn(t.message)}}}(this.app);return(null==e?void 0:e.heartbeats)?e:{heartbeats:[]}}return{heartbeats:[]}}async overwrite(e){var t;if(await this._canUseIndexedDBPromise){const n=await this.read();return kt(this.app,{lastSentHeartbeatDate:null!==(t=e.lastSentHeartbeatDate)&&void 0!==t?t:n.lastSentHeartbeatDate,heartbeats:e.heartbeats})}}async add(e){var t;if(await this._canUseIndexedDBPromise){const n=await this.read();return kt(this.app,{lastSentHeartbeatDate:null!==(t=e.lastSentHeartbeatDate)&&void 0!==t?t:n.lastSentHeartbeatDate,heartbeats:[...n.heartbeats,...e.heartbeats]})}}}function Nt(e){return c(JSON.stringify({version:2,heartbeats:e})).length}rt(new G("platform-logger",(e=>new be(e)),"PRIVATE")),rt(new G("heartbeat",(e=>new St(e)),"PRIVATE")),yt(Ie,Ce,""),yt(Ie,Ce,"esm2017"),yt("fire-js","");class At{constructor(e,t){this._delegate=e,this.firebase=t,nt(e,new G("app-compat",(()=>this),"PUBLIC")),this.container=e.container}get automaticDataCollectionEnabled(){return this._delegate.automaticDataCollectionEnabled}set automaticDataCollectionEnabled(e){this._delegate.automaticDataCollectionEnabled=e}get name(){return this._delegate.name}get options(){return this._delegate.options}delete(){return new Promise((e=>{this._delegate.checkDestroyed(),e()})).then((()=>(this.firebase.INTERNAL.removeApp(this.name),vt(this._delegate))))}_getService(e,t=Qe){var n;this._delegate.checkDestroyed();const i=this._delegate.container.getProvider(e);return i.isInitialized()||"EXPLICIT"!==(null===(n=i.getComponent())||void 0===n?void 0:n.instantiationMode)||i.initialize(),i.getImmediate({identifier:t})}_removeServiceInstance(e,t=Qe){this._delegate.container.getProvider(e).clearInstance(t)}_addComponent(e){nt(this._delegate,e)}_addOrOverwriteComponent(e){it(this._delegate,e)}toJSON(){return{name:this.name,automaticDataCollectionEnabled:this.automaticDataCollectionEnabled,options:this.options}}}const Ot=new T("app-compat","Firebase",{"no-app":"No Firebase App '{$appName}' has been created - call Firebase App.initializeApp()","invalid-app-argument":"firebase.{$appName}() takes either no argument or a Firebase App instance."}),Dt=function e(){const n=function(e){const n={},i={__esModule:!0,initializeApp:function(t,r={}){const s=ft(t,r);if(R(n,s.name))return n[s.name];const o=new e(s,i);return n[s.name]=o,o},app:r,registerVersion:yt,setLogLevel:bt,onLog:wt,apps:null,SDK_VERSION:pt,INTERNAL:{registerComponent:function(t){const n=t.name,s=n.replace("-compat","");if(rt(t)&&"PUBLIC"===t.type){const o=(e=r())=>{if("function"!=typeof e[s])throw Ot.create("invalid-app-argument",{appName:n});return e[s]()};void 0!==t.serviceProps&&h(o,t.serviceProps),i[s]=o,e.prototype[s]=function(...e){return this._getService.bind(this,n).apply(this,t.multipleInstances?e:[])}}return"PUBLIC"===t.type?i[s]:null},removeApp:function(e){delete n[e]},useAsService:function(e,t){return"serverAuth"===t?null:t},modularAPIs:t}};function r(e){if(!R(n,e=e||Qe))throw Ot.create("no-app",{appName:e});return n[e]}return i.default=i,Object.defineProperty(i,"apps",{get:function(){return Object.keys(n).map((e=>n[e]))}}),r.App=e,i}(At);return n.INTERNAL=Object.assign(Object.assign({},n.INTERNAL),{createFirebaseNamespace:e,extendNamespace:function(e){h(n,e)},createSubscribe:q,ErrorFactory:T,deepExtend:h}),n}(),xt=new re("@firebase/app-compat");try{const e=u();if(void 0!==e.firebase){xt.warn("\n Warning: Firebase is already defined in the global scope. Please make sure\n Firebase library is only loaded once.\n ");const t=e.firebase.SDK_VERSION;t&&t.indexOf("LITE")>=0&&xt.warn("\n Warning: You are trying to load Firebase while using Firebase Performance standalone script.\n You should load Firebase Performance with this instance of Firebase to avoid loading duplicate code.\n ")}}catch(Vu){}const Lt=Dt;yt("@firebase/app-compat","0.2.43",void 0),Lt.registerVersion("firebase","10.14.1","app-compat");const Mt="@firebase/database",Ft="1.0.8";let Ut="";function qt(e){Ut=e}class jt{constructor(e){this.domStorage_=e,this.prefix_="firebase:"}set(e,t){null==t?this.domStorage_.removeItem(this.prefixedName_(e)):this.domStorage_.setItem(this.prefixedName_(e),S(t))}get(e){const t=this.domStorage_.getItem(this.prefixedName_(e));return null==t?null:E(t)}remove(e){this.domStorage_.removeItem(this.prefixedName_(e))}prefixedName_(e){return this.prefix_+e}toString(){return this.domStorage_.toString()}}class Wt{constructor(){this.cache_={},this.isInMemoryStorage=!0}set(e,t){null==t?delete this.cache_[e]:this.cache_[e]=t}get(e){return R(this.cache_,e)?this.cache_[e]:null}remove(e){delete this.cache_[e]}}const Vt=function(e){try{if("undefined"!=typeof window&&void 0!==window[e]){const t=window[e];return t.setItem("firebase:sentinel","cache"),t.removeItem("firebase:sentinel"),new jt(t)}}catch(e){}return new Wt},Bt=Vt("localStorage"),zt=Vt("sessionStorage"),Ht=new re("@firebase/database"),$t=function(){let e=1;return function(){return e++}}(),Kt=function(e){const t=function(e){const t=[];let i=0;for(let r=0;r=55296&&s<=56319){const t=s-55296;r++,n(r>6|192,t[i++]=63&s|128):s<65536?(t[i++]=s>>12|224,t[i++]=s>>6&63|128,t[i++]=63&s|128):(t[i++]=s>>18|240,t[i++]=s>>12&63|128,t[i++]=s>>6&63|128,t[i++]=63&s|128)}return t}(e),i=new U;i.update(t);const r=i.digest();return s.encodeByteArray(r)},Gt=function(...e){let t="";for(let n=0;nn?i.push(e.substring(r,n)):i.push(e.substring(r,r+t));return i};function dn(e,t){for(const n in e)e.hasOwnProperty(n)&&t(n,e[n])}const pn=function(e){n(!rn(e),"Invalid JSON number");let t,i,r,s,o;0===e?(i=0,r=0,t=1/e==-1/0?1:0):(t=e<0,(e=Math.abs(e))>=Math.pow(2,-1022)?(s=Math.min(Math.floor(Math.log(e)/Math.LN2),1023),i=s+1023,r=Math.round(e*Math.pow(2,52-s)-Math.pow(2,52))):(i=0,r=Math.round(e/Math.pow(2,-1074))));const a=[];for(o=52;o;o-=1)a.push(r%2?1:0),r=Math.floor(r/2);for(o=11;o;o-=1)a.push(i%2?1:0),i=Math.floor(i/2);a.push(t?1:0),a.reverse();const c=a.join("");let l="";for(o=0;o<64;o+=8){let e=parseInt(c.substr(o,8),2).toString(16);1===e.length&&(e="0"+e),l+=e}return l.toLowerCase()},fn=new RegExp("^-?(0*)\\d{1,10}$"),mn=function(e){if(fn.test(e)){const t=Number(e);if(t>=-2147483648&&t<=2147483647)return t}return null},gn=function(e){try{e()}catch(e){setTimeout((()=>{const t=e.stack||"";throw nn("Exception was thrown by user callback.",t),e}),Math.floor(0))}},vn=function(e,t){const n=setTimeout(e,t);return"number"==typeof n&&"undefined"!=typeof Deno&&Deno.unrefTimer?Deno.unrefTimer(n):"object"==typeof n&&n.unref&&n.unref(),n};class yn{constructor(e,t){this.appName_=e,this.appCheckProvider=t,this.appCheck=null==t?void 0:t.getImmediate({optional:!0}),this.appCheck||null==t||t.get().then((e=>this.appCheck=e))}getToken(e){return this.appCheck?this.appCheck.getToken(e):new Promise(((t,n)=>{setTimeout((()=>{this.appCheck?this.getToken(e).then(t,n):t(null)}),0)}))}addTokenChangeListener(e){var t;null===(t=this.appCheckProvider)||void 0===t||t.get().then((t=>t.addTokenListener(e)))}notifyForInvalidToken(){nn(`Provided AppCheck credentials for the app named "${this.appName_}" are invalid. This usually indicates your app was not initialized correctly.`)}}class wn{constructor(e,t,n){this.appName_=e,this.firebaseOptions_=t,this.authProvider_=n,this.auth_=null,this.auth_=n.getImmediate({optional:!0}),this.auth_||n.onInit((e=>this.auth_=e))}getToken(e){return this.auth_?this.auth_.getToken(e).catch((e=>e&&"auth/token-not-initialized"===e.code?(Xt("Got auth/token-not-initialized error. Treating as null token."),null):Promise.reject(e))):new Promise(((t,n)=>{setTimeout((()=>{this.auth_?this.getToken(e).then(t,n):t(null)}),0)}))}addTokenChangeListener(e){this.auth_?this.auth_.addAuthTokenListener(e):this.authProvider_.get().then((t=>t.addAuthTokenListener(e)))}removeTokenChangeListener(e){this.authProvider_.get().then((t=>t.removeAuthTokenListener(e)))}notifyForInvalidToken(){let e='Provided authentication credentials for the app named "'+this.appName_+'" are invalid. This usually indicates your app was not initialized correctly. ';"credential"in this.firebaseOptions_?e+='Make sure the "credential" property provided to initializeApp() is authorized to access the specified "databaseURL" and is from the correct project.':"serviceAccount"in this.firebaseOptions_?e+='Make sure the "serviceAccount" property provided to initializeApp() is authorized to access the specified "databaseURL" and is from the correct project.':e+='Make sure the "apiKey" and "databaseURL" properties provided to initializeApp() match the values provided for your app at https://console.firebase.google.com/.',nn(e)}}class bn{constructor(e){this.accessToken=e}getToken(e){return Promise.resolve({accessToken:this.accessToken})}addTokenChangeListener(e){e(this.accessToken)}removeTokenChangeListener(e){}notifyForInvalidToken(){}}bn.OWNER="owner";const In="5",Cn=/(console\.firebase|firebase-console-\w+\.corp|firebase\.corp)\.google\.com/,Tn="ac",kn="websocket",En="long_polling";class Sn{constructor(e,t,n,i,r=!1,s="",o=!1,a=!1){this.secure=t,this.namespace=n,this.webSocketOnly=i,this.nodeAdmin=r,this.persistenceKey=s,this.includeNamespaceInQueryParams=o,this.isUsingEmulator=a,this._host=e.toLowerCase(),this._domain=this._host.substr(this._host.indexOf(".")+1),this.internalHost=Bt.get("host:"+e)||this._host}isCacheableHost(){return"s-"===this.internalHost.substr(0,2)}isCustomHost(){return"firebaseio.com"!==this._domain&&"firebaseio-demo.com"!==this._domain}get host(){return this._host}set host(e){e!==this.internalHost&&(this.internalHost=e,this.isCacheableHost()&&Bt.set("host:"+this._host,this.internalHost))}toString(){let e=this.toURLString();return this.persistenceKey&&(e+="<"+this.persistenceKey+">"),e}toURLString(){const e=this.secure?"https://":"http://",t=this.includeNamespaceInQueryParams?`?ns=${this.namespace}`:"";return`${e}${this.host}/${t}`}}function Pn(e,t,i){let r;if(n("string"==typeof t,"typeof type must == string"),n("object"==typeof i,"typeof params must == object"),t===kn)r=(e.secure?"wss://":"ws://")+e.internalHost+"/.ws?";else{if(t!==En)throw new Error("Unknown connection type: "+t);r=(e.secure?"https://":"http://")+e.internalHost+"/.lp?"}(function(e){return e.host!==e.internalHost||e.isCustomHost()||e.includeNamespaceInQueryParams})(e)&&(i.ns=e.namespace);const s=[];return dn(i,((e,t)=>{s.push(e+"="+t)})),r+s.join("&")}class Rn{constructor(){this.counters_={}}incrementCounter(e,t=1){R(this.counters_,e)||(this.counters_[e]=0),this.counters_[e]+=t}get(){return h(void 0,this.counters_)}}const Nn={},An={};function On(e){const t=e.toString();return Nn[t]||(Nn[t]=new Rn),Nn[t]}class Dn{constructor(e){this.onMessage_=e,this.pendingResponses=[],this.currentResponseNum=0,this.closeAfterResponse=-1,this.onClose=null}closeAfter(e,t){this.closeAfterResponse=e,this.onClose=t,this.closeAfterResponse{this.onMessage_(e[t])}));if(this.currentResponseNum===this.closeAfterResponse){this.onClose&&(this.onClose(),this.onClose=null);break}this.currentResponseNum++}}}const xn="start";class Ln{constructor(e,t,n,i,r,s,o){this.connId=e,this.repoInfo=t,this.applicationId=n,this.appCheckToken=i,this.authToken=r,this.transportSessionId=s,this.lastSessionId=o,this.bytesSent=0,this.bytesReceived=0,this.everConnected_=!1,this.log_=Zt(e),this.stats_=On(t),this.urlFn=e=>(this.appCheckToken&&(e[Tn]=this.appCheckToken),Pn(t,En,e))}open(e,t){this.curSegmentNum=0,this.onDisconnect_=t,this.myPacketOrderer=new Dn(e),this.isClosed_=!1,this.connectTimeoutTimer_=setTimeout((()=>{this.log_("Timed out trying to connect."),this.onClosed_(),this.connectTimeoutTimer_=null}),Math.floor(3e4)),function(e){if("complete"===document.readyState)e();else{let t=!1;const n=function(){document.body?t||(t=!0,e()):setTimeout(n,Math.floor(10))};document.addEventListener?(document.addEventListener("DOMContentLoaded",n,!1),window.addEventListener("load",n,!1)):document.attachEvent&&(document.attachEvent("onreadystatechange",(()=>{"complete"===document.readyState&&n()})),window.attachEvent("onload",n))}}((()=>{if(this.isClosed_)return;this.scriptTagHolder=new Mn(((...e)=>{const[t,n,i,r,s]=e;if(this.incrementIncomingBytes_(e),this.scriptTagHolder)if(this.connectTimeoutTimer_&&(clearTimeout(this.connectTimeoutTimer_),this.connectTimeoutTimer_=null),this.everConnected_=!0,t===xn)this.id=n,this.password=i;else{if("close"!==t)throw new Error("Unrecognized command received: "+t);n?(this.scriptTagHolder.sendNewPolls=!1,this.myPacketOrderer.closeAfter(n,(()=>{this.onClosed_()}))):this.onClosed_()}}),((...e)=>{const[t,n]=e;this.incrementIncomingBytes_(e),this.myPacketOrderer.handleResponse(t,n)}),(()=>{this.onClosed_()}),this.urlFn);const e={};e[xn]="t",e.ser=Math.floor(1e8*Math.random()),this.scriptTagHolder.uniqueCallbackIdentifier&&(e.cb=this.scriptTagHolder.uniqueCallbackIdentifier),e.v=In,this.transportSessionId&&(e.s=this.transportSessionId),this.lastSessionId&&(e.ls=this.lastSessionId),this.applicationId&&(e.p=this.applicationId),this.appCheckToken&&(e[Tn]=this.appCheckToken),"undefined"!=typeof location&&location.hostname&&Cn.test(location.hostname)&&(e.r="f");const t=this.urlFn(e);this.log_("Connecting via long-poll to "+t),this.scriptTagHolder.addTag(t,(()=>{}))}))}start(){this.scriptTagHolder.startLongPoll(this.id,this.password),this.addDisconnectPingFrame(this.id,this.password)}static forceAllow(){Ln.forceAllow_=!0}static forceDisallow(){Ln.forceDisallow_=!0}static isAvailable(){return!(!Ln.forceAllow_&&(Ln.forceDisallow_||"undefined"==typeof document||null==document.createElement||"object"==typeof window&&window.chrome&&window.chrome.extension&&!/^chrome/.test(window.location.href)||"object"==typeof Windows&&"object"==typeof Windows.UI))}markConnectionHealthy(){}shutdown_(){this.isClosed_=!0,this.scriptTagHolder&&(this.scriptTagHolder.close(),this.scriptTagHolder=null),this.myDisconnFrame&&(document.body.removeChild(this.myDisconnFrame),this.myDisconnFrame=null),this.connectTimeoutTimer_&&(clearTimeout(this.connectTimeoutTimer_),this.connectTimeoutTimer_=null)}onClosed_(){this.isClosed_||(this.log_("Longpoll is closing itself"),this.shutdown_(),this.onDisconnect_&&(this.onDisconnect_(this.everConnected_),this.onDisconnect_=null))}close(){this.isClosed_||(this.log_("Longpoll is being closed."),this.shutdown_())}send(e){const t=S(e);this.bytesSent+=t.length,this.stats_.incrementCounter("bytes_sent",t.length);const n=a(t),i=un(n,1840);for(let e=0;edocument.domain="'+document.domain+'";<\/script>');const i=""+n+"";try{this.myIFrame.doc.open(),this.myIFrame.doc.write(i),this.myIFrame.doc.close()}catch(e){Xt("frame writing exception"),e.stack&&Xt(e.stack),Xt(e)}}}static createIFrame_(){const e=document.createElement("iframe");if(e.style.display="none",!document.body)throw"Document body has not initialized. Wait to initialize Firebase until after the document is ready.";document.body.appendChild(e);try{e.contentWindow.document||Xt("No IE domain setting required")}catch(t){const n=document.domain;e.src="javascript:void((function(){document.open();document.domain='"+n+"';document.close();})())"}return e.contentDocument?e.doc=e.contentDocument:e.contentWindow?e.doc=e.contentWindow.document:e.document&&(e.doc=e.document),e}close(){this.alive=!1,this.myIFrame&&(this.myIFrame.doc.body.textContent="",setTimeout((()=>{null!==this.myIFrame&&(document.body.removeChild(this.myIFrame),this.myIFrame=null)}),Math.floor(0)));const e=this.onDisconnect;e&&(this.onDisconnect=null,e())}startLongPoll(e,t){for(this.myID=e,this.myPW=t,this.alive=!0;this.newRequest_(););}newRequest_(){if(this.alive&&this.sendNewPolls&&this.outstandingRequests.size<(this.pendingSegs.length>0?2:1)){this.currentSerial++;const e={};e.id=this.myID,e.pw=this.myPW,e.ser=this.currentSerial;let t=this.urlFn(e),n="",i=0;for(;this.pendingSegs.length>0&&this.pendingSegs[0].d.length+30+n.length<=1870;){const e=this.pendingSegs.shift();n=n+"&seg"+i+"="+e.seg+"&ts"+i+"="+e.ts+"&d"+i+"="+e.d,i++}return t+=n,this.addLongPollTag_(t,this.currentSerial),!0}return!1}enqueueSegment(e,t,n){this.pendingSegs.push({seg:e,ts:t,d:n}),this.alive&&this.newRequest_()}addLongPollTag_(e,t){this.outstandingRequests.add(t);const n=()=>{this.outstandingRequests.delete(t),this.newRequest_()},i=setTimeout(n,Math.floor(25e3));this.addTag(e,(()=>{clearTimeout(i),n()}))}addTag(e,t){setTimeout((()=>{try{if(!this.sendNewPolls)return;const n=this.myIFrame.doc.createElement("script");n.type="text/javascript",n.async=!0,n.src=e,n.onload=n.onreadystatechange=function(){const e=n.readyState;e&&"loaded"!==e&&"complete"!==e||(n.onload=n.onreadystatechange=null,n.parentNode&&n.parentNode.removeChild(n),t())},n.onerror=()=>{Xt("Long-poll script failed to load: "+e),this.sendNewPolls=!1,this.close()},this.myIFrame.doc.body.appendChild(n)}catch(e){}}),Math.floor(1))}}let Fn=null;"undefined"!=typeof MozWebSocket?Fn=MozWebSocket:"undefined"!=typeof WebSocket&&(Fn=WebSocket);class Un{constructor(e,t,n,i,r,s,o){this.connId=e,this.applicationId=n,this.appCheckToken=i,this.authToken=r,this.keepaliveTimer=null,this.frames=null,this.totalFrames=0,this.bytesSent=0,this.bytesReceived=0,this.log_=Zt(this.connId),this.stats_=On(t),this.connURL=Un.connectionURL_(t,s,o,i,n),this.nodeAdmin=t.nodeAdmin}static connectionURL_(e,t,n,i,r){const s={};return s.v=In,"undefined"!=typeof location&&location.hostname&&Cn.test(location.hostname)&&(s.r="f"),t&&(s.s=t),n&&(s.ls=n),i&&(s[Tn]=i),r&&(s.p=r),Pn(e,kn,s)}open(e,t){this.onDisconnect=t,this.onMessage=e,this.log_("Websocket connecting to "+this.connURL),this.everConnected_=!1,Bt.set("previous_websocket_failure",!0);try{let e;0,this.mySock=new Fn(this.connURL,[],e)}catch(e){this.log_("Error instantiating WebSocket.");const t=e.message||e.data;return t&&this.log_(t),void this.onClosed_()}this.mySock.onopen=()=>{this.log_("Websocket connected."),this.everConnected_=!0},this.mySock.onclose=()=>{this.log_("Websocket connection was disconnected."),this.mySock=null,this.onClosed_()},this.mySock.onmessage=e=>{this.handleIncomingFrame(e)},this.mySock.onerror=e=>{this.log_("WebSocket error. Closing connection.");const t=e.message||e.data;t&&this.log_(t),this.onClosed_()}}start(){}static forceDisallow(){Un.forceDisallow_=!0}static isAvailable(){let e=!1;if("undefined"!=typeof navigator&&navigator.userAgent){const t=/Android ([0-9]{0,}\.[0-9]{0,})/,n=navigator.userAgent.match(t);n&&n.length>1&&parseFloat(n[1])<4.4&&(e=!0)}return!e&&null!==Fn&&!Un.forceDisallow_}static previouslyFailed(){return Bt.isInMemoryStorage||!0===Bt.get("previous_websocket_failure")}markConnectionHealthy(){Bt.remove("previous_websocket_failure")}appendFrame_(e){if(this.frames.push(e),this.frames.length===this.totalFrames){const e=this.frames.join("");this.frames=null;const t=E(e);this.onMessage(t)}}handleNewFrameCount_(e){this.totalFrames=e,this.frames=[]}extractFrameCount_(e){if(n(null===this.frames,"We already have a frame buffer"),e.length<=6){const t=Number(e);if(!isNaN(t))return this.handleNewFrameCount_(t),null}return this.handleNewFrameCount_(1),e}handleIncomingFrame(e){if(null===this.mySock)return;const t=e.data;if(this.bytesReceived+=t.length,this.stats_.incrementCounter("bytes_received",t.length),this.resetKeepAlive(),null!==this.frames)this.appendFrame_(t);else{const e=this.extractFrameCount_(t);null!==e&&this.appendFrame_(e)}}send(e){this.resetKeepAlive();const t=S(e);this.bytesSent+=t.length,this.stats_.incrementCounter("bytes_sent",t.length);const n=un(t,16384);n.length>1&&this.sendString_(String(n.length));for(let e=0;e{this.mySock&&this.sendString_("0"),this.resetKeepAlive()}),Math.floor(45e3))}sendString_(e){try{this.mySock.send(e)}catch(e){this.log_("Exception thrown from WebSocket.send():",e.message||e.data,"Closing connection."),setTimeout(this.onClosed_.bind(this),0)}}}Un.responsesRequiredToBeHealthy=2,Un.healthyTimeout=3e4;class qn{constructor(e){this.initTransports_(e)}static get ALL_TRANSPORTS(){return[Ln,Un]}static get IS_TRANSPORT_INITIALIZED(){return this.globalTransportInitialized_}initTransports_(e){const t=Un&&Un.isAvailable();let n=t&&!Un.previouslyFailed();if(e.webSocketOnly&&(t||nn("wss:// URL used, but browser isn't known to support websockets. Trying anyway."),n=!0),n)this.transports_=[Un];else{const e=this.transports_=[];for(const t of qn.ALL_TRANSPORTS)t&&t.isAvailable()&&e.push(t);qn.globalTransportInitialized_=!0}}initialTransport(){if(this.transports_.length>0)return this.transports_[0];throw new Error("No transports available")}upgradeTransport(){return this.transports_.length>1?this.transports_[1]:null}}qn.globalTransportInitialized_=!1;class jn{constructor(e,t,n,i,r,s,o,a,c,l){this.id=e,this.repoInfo_=t,this.applicationId_=n,this.appCheckToken_=i,this.authToken_=r,this.onMessage_=s,this.onReady_=o,this.onDisconnect_=a,this.onKill_=c,this.lastSessionId=l,this.connectionCount=0,this.pendingDataMessages=[],this.state_=0,this.log_=Zt("c:"+this.id+":"),this.transportManager_=new qn(t),this.log_("Connection created"),this.start_()}start_(){const e=this.transportManager_.initialTransport();this.conn_=new e(this.nextTransportId_(),this.repoInfo_,this.applicationId_,this.appCheckToken_,this.authToken_,null,this.lastSessionId),this.primaryResponsesRequired_=e.responsesRequiredToBeHealthy||0;const t=this.connReceiver_(this.conn_),n=this.disconnReceiver_(this.conn_);this.tx_=this.conn_,this.rx_=this.conn_,this.secondaryConn_=null,this.isHealthy_=!1,setTimeout((()=>{this.conn_&&this.conn_.open(t,n)}),Math.floor(0));const i=e.healthyTimeout||0;i>0&&(this.healthyTimeout_=vn((()=>{this.healthyTimeout_=null,this.isHealthy_||(this.conn_&&this.conn_.bytesReceived>102400?(this.log_("Connection exceeded healthy timeout but has received "+this.conn_.bytesReceived+" bytes. Marking connection healthy."),this.isHealthy_=!0,this.conn_.markConnectionHealthy()):this.conn_&&this.conn_.bytesSent>10240?this.log_("Connection exceeded healthy timeout but has sent "+this.conn_.bytesSent+" bytes. Leaving connection alive."):(this.log_("Closing unhealthy connection after timeout."),this.close()))}),Math.floor(i)))}nextTransportId_(){return"c:"+this.id+":"+this.connectionCount++}disconnReceiver_(e){return t=>{e===this.conn_?this.onConnectionLost_(t):e===this.secondaryConn_?(this.log_("Secondary connection lost."),this.onSecondaryConnectionLost_()):this.log_("closing an old connection")}}connReceiver_(e){return t=>{2!==this.state_&&(e===this.rx_?this.onPrimaryMessageReceived_(t):e===this.secondaryConn_?this.onSecondaryMessageReceived_(t):this.log_("message on old connection"))}}sendRequest(e){const t={t:"d",d:e};this.sendData_(t)}tryCleanupConnection(){this.tx_===this.secondaryConn_&&this.rx_===this.secondaryConn_&&(this.log_("cleaning up and promoting a connection: "+this.secondaryConn_.connId),this.conn_=this.secondaryConn_,this.secondaryConn_=null)}onSecondaryControl_(e){if("t"in e){const t=e.t;"a"===t?this.upgradeIfSecondaryHealthy_():"r"===t?(this.log_("Got a reset on secondary, closing it"),this.secondaryConn_.close(),this.tx_!==this.secondaryConn_&&this.rx_!==this.secondaryConn_||this.close()):"o"===t&&(this.log_("got pong on secondary."),this.secondaryResponsesRequired_--,this.upgradeIfSecondaryHealthy_())}}onSecondaryMessageReceived_(e){const t=ln("t",e),n=ln("d",e);if("c"===t)this.onSecondaryControl_(n);else{if("d"!==t)throw new Error("Unknown protocol layer: "+t);this.pendingDataMessages.push(n)}}upgradeIfSecondaryHealthy_(){this.secondaryResponsesRequired_<=0?(this.log_("Secondary connection is healthy."),this.isHealthy_=!0,this.secondaryConn_.markConnectionHealthy(),this.proceedWithUpgrade_()):(this.log_("sending ping on secondary."),this.secondaryConn_.send({t:"c",d:{t:"p",d:{}}}))}proceedWithUpgrade_(){this.secondaryConn_.start(),this.log_("sending client ack on secondary"),this.secondaryConn_.send({t:"c",d:{t:"a",d:{}}}),this.log_("Ending transmission on primary"),this.conn_.send({t:"c",d:{t:"n",d:{}}}),this.tx_=this.secondaryConn_,this.tryCleanupConnection()}onPrimaryMessageReceived_(e){const t=ln("t",e),n=ln("d",e);"c"===t?this.onControl_(n):"d"===t&&this.onDataMessage_(n)}onDataMessage_(e){this.onPrimaryResponse_(),this.onMessage_(e)}onPrimaryResponse_(){this.isHealthy_||(this.primaryResponsesRequired_--,this.primaryResponsesRequired_<=0&&(this.log_("Primary connection is healthy."),this.isHealthy_=!0,this.conn_.markConnectionHealthy()))}onControl_(e){const t=ln("t",e);if("d"in e){const n=e.d;if("h"===t){const e=Object.assign({},n);this.repoInfo_.isUsingEmulator&&(e.h=this.repoInfo_.host),this.onHandshake_(e)}else if("n"===t){this.log_("recvd end transmission on primary"),this.rx_=this.secondaryConn_;for(let e=0;e{this.secondaryConn_&&(this.log_("Timed out trying to upgrade."),this.secondaryConn_.close())}),Math.floor(6e4))}onReset_(e){this.log_("Reset packet received. New host: "+e),this.repoInfo_.host=e,1===this.state_?this.close():(this.closeConnections_(),this.start_())}onConnectionEstablished_(e,t){this.log_("Realtime connection established."),this.conn_=e,this.state_=1,this.onReady_&&(this.onReady_(t,this.sessionId),this.onReady_=null),0===this.primaryResponsesRequired_?(this.log_("Primary connection is healthy."),this.isHealthy_=!0):vn((()=>{this.sendPingOnPrimaryIfNecessary_()}),Math.floor(5e3))}sendPingOnPrimaryIfNecessary_(){this.isHealthy_||1!==this.state_||(this.log_("sending ping on primary."),this.sendData_({t:"c",d:{t:"p",d:{}}}))}onSecondaryConnectionLost_(){const e=this.secondaryConn_;this.secondaryConn_=null,this.tx_!==e&&this.rx_!==e||this.close()}onConnectionLost_(e){this.conn_=null,e||0!==this.state_?1===this.state_&&this.log_("Realtime connection lost."):(this.log_("Realtime connection failed."),this.repoInfo_.isCacheableHost()&&(Bt.remove("host:"+this.repoInfo_.host),this.repoInfo_.internalHost=this.repoInfo_.host)),this.close()}onConnectionShutdown_(e){this.log_("Connection shutdown command received. Shutting down..."),this.onKill_&&(this.onKill_(e),this.onKill_=null),this.onDisconnect_=null,this.close()}sendData_(e){if(1!==this.state_)throw"Connection is not connected";this.tx_.send(e)}close(){2!==this.state_&&(this.log_("Closing realtime connection."),this.state_=2,this.closeConnections_(),this.onDisconnect_&&(this.onDisconnect_(),this.onDisconnect_=null))}closeConnections_(){this.log_("Shutting down all connections"),this.conn_&&(this.conn_.close(),this.conn_=null),this.secondaryConn_&&(this.secondaryConn_.close(),this.secondaryConn_=null),this.healthyTimeout_&&(clearTimeout(this.healthyTimeout_),this.healthyTimeout_=null)}}class Wn{put(e,t,n,i){}merge(e,t,n,i){}refreshAuthToken(e){}refreshAppCheckToken(e){}onDisconnectPut(e,t,n){}onDisconnectMerge(e,t,n){}onDisconnectCancel(e,t){}reportStats(e){}}class Vn{constructor(e){this.allowedEvents_=e,this.listeners_={},n(Array.isArray(e)&&e.length>0,"Requires a non-empty array")}trigger(e,...t){if(Array.isArray(this.listeners_[e])){const n=[...this.listeners_[e]];for(let e=0;et===e)),"Unknown event: "+e)}}class Bn extends Vn{constructor(){super(["online"]),this.online_=!0,"undefined"==typeof window||void 0===window.addEventListener||m()||(window.addEventListener("online",(()=>{this.online_||(this.online_=!0,this.trigger("online",!0))}),!1),window.addEventListener("offline",(()=>{this.online_&&(this.online_=!1,this.trigger("online",!1))}),!1))}static getInstance(){return new Bn}getInitialEvent(e){return n("online"===e,"Unknown event type: "+e),[this.online_]}currentlyOnline(){return this.online_}}class zn{constructor(e,t){if(void 0===t){this.pieces_=e.split("/");let t=0;for(let e=0;e0&&(this.pieces_[t]=this.pieces_[e],t++);this.pieces_.length=t,this.pieceNum_=0}else this.pieces_=e,this.pieceNum_=t}toString(){let e="";for(let t=this.pieceNum_;t=e.pieces_.length?null:e.pieces_[e.pieceNum_]}function Kn(e){return e.pieces_.length-e.pieceNum_}function Gn(e){let t=e.pieceNum_;return t=e.pieces_.length)return null;const t=[];for(let n=e.pieceNum_;n0&&n.push(e[t])}return new zn(n,0)}function Zn(e){return e.pieceNum_>=e.pieces_.length}function ei(e,t){const n=$n(e),i=$n(t);if(null===n)return t;if(n===i)return ei(Gn(e),Gn(t));throw new Error("INTERNAL ERROR: innerPath ("+t+") is not within outerPath ("+e+")")}function ti(e,t){const n=Jn(e,0),i=Jn(t,0);for(let e=0;eKn(t))return!1;for(;n768)throw new Error(e.errorPrefix_+"has a key path longer than 768 bytes ("+e.byteLength_+").");if(e.parts_.length>32)throw new Error(e.errorPrefix_+"path specified exceeds the maximum depth that can be written (32) or object contains a cycle "+oi(e))}function oi(e){return 0===e.parts_.length?"":"in property '"+e.parts_.join(".")+"'"}class ai extends Vn{constructor(){let e,t;super(["visible"]),"undefined"!=typeof document&&void 0!==document.addEventListener&&(void 0!==document.hidden?(t="visibilitychange",e="hidden"):void 0!==document.mozHidden?(t="mozvisibilitychange",e="mozHidden"):void 0!==document.msHidden?(t="msvisibilitychange",e="msHidden"):void 0!==document.webkitHidden&&(t="webkitvisibilitychange",e="webkitHidden")),this.visible_=!0,t&&document.addEventListener(t,(()=>{const t=!document[e];t!==this.visible_&&(this.visible_=t,this.trigger("visible",t))}),!1)}static getInstance(){return new ai}getInitialEvent(e){return n("visible"===e,"Unknown event type: "+e),[this.visible_]}}const ci=1e3;class li extends Wn{constructor(e,t,n,i,r,s,o,a){if(super(),this.repoInfo_=e,this.applicationId_=t,this.onDataUpdate_=n,this.onConnectStatus_=i,this.onServerInfoUpdate_=r,this.authTokenProvider_=s,this.appCheckTokenProvider_=o,this.authOverride_=a,this.id=li.nextPersistentConnectionId_++,this.log_=Zt("p:"+this.id+":"),this.interruptReasons_={},this.listens=new Map,this.outstandingPuts_=[],this.outstandingGets_=[],this.outstandingPutCount_=0,this.outstandingGetCount_=0,this.onDisconnectRequestQueue_=[],this.connected_=!1,this.reconnectDelay_=ci,this.maxReconnectDelay_=3e5,this.securityDebugCallback_=null,this.lastSessionId=null,this.establishConnectionTimer_=null,this.visible_=!1,this.requestCBHash_={},this.requestNumber_=0,this.realtime_=null,this.authToken_=null,this.appCheckToken_=null,this.forceTokenRefresh_=!1,this.invalidAuthTokenCount_=0,this.invalidAppCheckTokenCount_=0,this.firstConnection_=!0,this.lastConnectionAttemptTime_=null,this.lastConnectionEstablishedTime_=null,a)throw new Error("Auth override specified in options, but not supported on non Node.js platforms");ai.getInstance().on("visible",this.onVisible_,this),-1===e.host.indexOf("fblocal")&&Bn.getInstance().on("online",this.onOnline_,this)}sendRequest(e,t,i){const r=++this.requestNumber_,s={r,a:e,b:t};this.log_(S(s)),n(this.connected_,"sendRequest call when we're not connected not allowed."),this.realtime_.sendRequest(s),i&&(this.requestCBHash_[r]=i)}get(e){this.initConnection_();const t=new f,n={action:"g",request:{p:e._path.toString(),q:e._queryObject},onComplete:e=>{const n=e.d;"ok"===e.s?t.resolve(n):t.reject(n)}};this.outstandingGets_.push(n),this.outstandingGetCount_++;const i=this.outstandingGets_.length-1;return this.connected_&&this.sendGet_(i),t.promise}listen(e,t,i,r){this.initConnection_();const s=e._queryIdentifier,o=e._path.toString();this.log_("Listen called for "+o+" "+s),this.listens.has(o)||this.listens.set(o,new Map),n(e._queryParams.isDefault()||!e._queryParams.loadsAllData(),"listen() called for non-default but complete query"),n(!this.listens.get(o).has(s),"listen() called twice for same path/queryId.");const a={onComplete:r,hashFn:t,query:e,tag:i};this.listens.get(o).set(s,a),this.connected_&&this.sendListen_(a)}sendGet_(e){const t=this.outstandingGets_[e];this.sendRequest("g",t.request,(n=>{delete this.outstandingGets_[e],this.outstandingGetCount_--,0===this.outstandingGetCount_&&(this.outstandingGets_=[]),t.onComplete&&t.onComplete(n)}))}sendListen_(e){const t=e.query,n=t._path.toString(),i=t._queryIdentifier;this.log_("Listen on "+n+" for "+i);const r={p:n};e.tag&&(r.q=t._queryObject,r.t=e.tag),r.h=e.hashFn(),this.sendRequest("q",r,(r=>{const s=r.d,o=r.s;li.warnOnListenWarnings_(s,t),(this.listens.get(n)&&this.listens.get(n).get(i))===e&&(this.log_("listen response",r),"ok"!==o&&this.removeListen_(n,i),e.onComplete&&e.onComplete(o,s))}))}static warnOnListenWarnings_(e,t){if(e&&"object"==typeof e&&R(e,"w")){const n=N(e,"w");if(Array.isArray(n)&&~n.indexOf("no_index")){const e='".indexOn": "'+t._queryParams.getIndex().toString()+'"',n=t._path.toString();nn(`Using an unspecified index. Your data will be downloaded and filtered on the client. Consider adding ${e} at ${n} to your security rules for better performance.`)}}}refreshAuthToken(e){this.authToken_=e,this.log_("Auth token refreshed"),this.authToken_?this.tryAuth():this.connected_&&this.sendRequest("unauth",{},(()=>{})),this.reduceReconnectDelayIfAdminCredential_(e)}reduceReconnectDelayIfAdminCredential_(e){(e&&40===e.length||function(e){const t=P(e).claims;return"object"==typeof t&&!0===t.admin}(e))&&(this.log_("Admin auth credential detected. Reducing max reconnect time."),this.maxReconnectDelay_=3e4)}refreshAppCheckToken(e){this.appCheckToken_=e,this.log_("App check token refreshed"),this.appCheckToken_?this.tryAppCheck():this.connected_&&this.sendRequest("unappeck",{},(()=>{}))}tryAuth(){if(this.connected_&&this.authToken_){const e=this.authToken_,t=function(e){const t=P(e).claims;return!!t&&"object"==typeof t&&t.hasOwnProperty("iat")}(e)?"auth":"gauth",n={cred:e};null===this.authOverride_?n.noauth=!0:"object"==typeof this.authOverride_&&(n.authvar=this.authOverride_),this.sendRequest(t,n,(t=>{const n=t.s,i=t.d||"error";this.authToken_===e&&("ok"===n?this.invalidAuthTokenCount_=0:this.onAuthRevoked_(n,i))}))}}tryAppCheck(){this.connected_&&this.appCheckToken_&&this.sendRequest("appcheck",{token:this.appCheckToken_},(e=>{const t=e.s,n=e.d||"error";"ok"===t?this.invalidAppCheckTokenCount_=0:this.onAppCheckRevoked_(t,n)}))}unlisten(e,t){const i=e._path.toString(),r=e._queryIdentifier;this.log_("Unlisten called for "+i+" "+r),n(e._queryParams.isDefault()||!e._queryParams.loadsAllData(),"unlisten() called for non-default but complete query"),this.removeListen_(i,r)&&this.connected_&&this.sendUnlisten_(i,r,e._queryObject,t)}sendUnlisten_(e,t,n,i){this.log_("Unlisten on "+e+" for "+t);const r={p:e};i&&(r.q=n,r.t=i),this.sendRequest("n",r)}onDisconnectPut(e,t,n){this.initConnection_(),this.connected_?this.sendOnDisconnect_("o",e,t,n):this.onDisconnectRequestQueue_.push({pathString:e,action:"o",data:t,onComplete:n})}onDisconnectMerge(e,t,n){this.initConnection_(),this.connected_?this.sendOnDisconnect_("om",e,t,n):this.onDisconnectRequestQueue_.push({pathString:e,action:"om",data:t,onComplete:n})}onDisconnectCancel(e,t){this.initConnection_(),this.connected_?this.sendOnDisconnect_("oc",e,null,t):this.onDisconnectRequestQueue_.push({pathString:e,action:"oc",data:null,onComplete:t})}sendOnDisconnect_(e,t,n,i){const r={p:t,d:n};this.log_("onDisconnect "+e,r),this.sendRequest(e,r,(e=>{i&&setTimeout((()=>{i(e.s,e.d)}),Math.floor(0))}))}put(e,t,n,i){this.putInternal("p",e,t,n,i)}merge(e,t,n,i){this.putInternal("m",e,t,n,i)}putInternal(e,t,n,i,r){this.initConnection_();const s={p:t,d:n};void 0!==r&&(s.h=r),this.outstandingPuts_.push({action:e,request:s,onComplete:i}),this.outstandingPutCount_++;const o=this.outstandingPuts_.length-1;this.connected_?this.sendPut_(o):this.log_("Buffering put: "+t)}sendPut_(e){const t=this.outstandingPuts_[e].action,n=this.outstandingPuts_[e].request,i=this.outstandingPuts_[e].onComplete;this.outstandingPuts_[e].queued=this.connected_,this.sendRequest(t,n,(n=>{this.log_(t+" response",n),delete this.outstandingPuts_[e],this.outstandingPutCount_--,0===this.outstandingPutCount_&&(this.outstandingPuts_=[]),i&&i(n.s,n.d)}))}reportStats(e){if(this.connected_){const t={c:e};this.log_("reportStats",t),this.sendRequest("s",t,(e=>{if("ok"!==e.s){const t=e.d;this.log_("reportStats","Error sending stats: "+t)}}))}}onDataMessage_(e){if("r"in e){this.log_("from server: "+S(e));const t=e.r,n=this.requestCBHash_[t];n&&(delete this.requestCBHash_[t],n(e.b))}else{if("error"in e)throw"A server-side error has occurred: "+e.error;"a"in e&&this.onDataPush_(e.a,e.b)}}onDataPush_(e,t){this.log_("handleServerMessage",e,t),"d"===e?this.onDataUpdate_(t.p,t.d,!1,t.t):"m"===e?this.onDataUpdate_(t.p,t.d,!0,t.t):"c"===e?this.onListenRevoked_(t.p,t.q):"ac"===e?this.onAuthRevoked_(t.s,t.d):"apc"===e?this.onAppCheckRevoked_(t.s,t.d):"sd"===e?this.onSecurityDebugPacket_(t):en("Unrecognized action received from server: "+S(e)+"\nAre you using the latest client?")}onReady_(e,t){this.log_("connection ready"),this.connected_=!0,this.lastConnectionEstablishedTime_=(new Date).getTime(),this.handleTimestamp_(e),this.lastSessionId=t,this.firstConnection_&&this.sendConnectStats_(),this.restoreState_(),this.firstConnection_=!1,this.onConnectStatus_(!0)}scheduleConnect_(e){n(!this.realtime_,"Scheduling a connect when we're already connected/ing?"),this.establishConnectionTimer_&&clearTimeout(this.establishConnectionTimer_),this.establishConnectionTimer_=setTimeout((()=>{this.establishConnectionTimer_=null,this.establishConnection_()}),Math.floor(e))}initConnection_(){!this.realtime_&&this.firstConnection_&&this.scheduleConnect_(0)}onVisible_(e){e&&!this.visible_&&this.reconnectDelay_===this.maxReconnectDelay_&&(this.log_("Window became visible. Reducing delay."),this.reconnectDelay_=ci,this.realtime_||this.scheduleConnect_(0)),this.visible_=e}onOnline_(e){e?(this.log_("Browser went online."),this.reconnectDelay_=ci,this.realtime_||this.scheduleConnect_(0)):(this.log_("Browser went offline. Killing connection."),this.realtime_&&this.realtime_.close())}onRealtimeDisconnect_(){if(this.log_("data client disconnected"),this.connected_=!1,this.realtime_=null,this.cancelSentTransactions_(),this.requestCBHash_={},this.shouldReconnect_()){this.visible_?this.lastConnectionEstablishedTime_&&((new Date).getTime()-this.lastConnectionEstablishedTime_>3e4&&(this.reconnectDelay_=ci),this.lastConnectionEstablishedTime_=null):(this.log_("Window isn't visible. Delaying reconnect."),this.reconnectDelay_=this.maxReconnectDelay_,this.lastConnectionAttemptTime_=(new Date).getTime());const e=(new Date).getTime()-this.lastConnectionAttemptTime_;let t=Math.max(0,this.reconnectDelay_-e);t=Math.random()*t,this.log_("Trying to reconnect in "+t+"ms"),this.scheduleConnect_(t),this.reconnectDelay_=Math.min(this.maxReconnectDelay_,1.3*this.reconnectDelay_)}this.onConnectStatus_(!1)}async establishConnection_(){if(this.shouldReconnect_()){this.log_("Making a connection attempt"),this.lastConnectionAttemptTime_=(new Date).getTime(),this.lastConnectionEstablishedTime_=null;const e=this.onDataMessage_.bind(this),t=this.onReady_.bind(this),i=this.onRealtimeDisconnect_.bind(this),r=this.id+":"+li.nextConnectionId_++,s=this.lastSessionId;let o=!1,a=null;const c=function(){a?a.close():(o=!0,i())},l=function(e){n(a,"sendRequest call when we're not connected not allowed."),a.sendRequest(e)};this.realtime_={close:c,sendRequest:l};const h=this.forceTokenRefresh_;this.forceTokenRefresh_=!1;try{const[n,c]=await Promise.all([this.authTokenProvider_.getToken(h),this.appCheckTokenProvider_.getToken(h)]);o?Xt("getToken() completed but was canceled"):(Xt("getToken() completed. Creating connection."),this.authToken_=n&&n.accessToken,this.appCheckToken_=c&&c.token,a=new jn(r,this.repoInfo_,this.applicationId_,this.appCheckToken_,this.authToken_,e,t,i,(e=>{nn(e+" ("+this.repoInfo_.toString()+")"),this.interrupt("server_kill")}),s))}catch(e){this.log_("Failed to get token: "+e),o||(this.repoInfo_.nodeAdmin&&nn(e),c())}}}interrupt(e){Xt("Interrupting connection for reason: "+e),this.interruptReasons_[e]=!0,this.realtime_?this.realtime_.close():(this.establishConnectionTimer_&&(clearTimeout(this.establishConnectionTimer_),this.establishConnectionTimer_=null),this.connected_&&this.onRealtimeDisconnect_())}resume(e){Xt("Resuming connection for reason: "+e),delete this.interruptReasons_[e],A(this.interruptReasons_)&&(this.reconnectDelay_=ci,this.realtime_||this.scheduleConnect_(0))}handleTimestamp_(e){const t=e-(new Date).getTime();this.onServerInfoUpdate_({serverTimeOffset:t})}cancelSentTransactions_(){for(let e=0;ehn(e))).join("$"):"default";const i=this.removeListen_(e,n);i&&i.onComplete&&i.onComplete("permission_denied")}removeListen_(e,t){const n=new zn(e).toString();let i;if(this.listens.has(n)){const e=this.listens.get(n);i=e.get(t),e.delete(t),0===e.size&&this.listens.delete(n)}else i=void 0;return i}onAuthRevoked_(e,t){Xt("Auth token revoked: "+e+"/"+t),this.authToken_=null,this.forceTokenRefresh_=!0,this.realtime_.close(),"invalid_token"!==e&&"permission_denied"!==e||(this.invalidAuthTokenCount_++,this.invalidAuthTokenCount_>=3&&(this.reconnectDelay_=3e4,this.authTokenProvider_.notifyForInvalidToken()))}onAppCheckRevoked_(e,t){Xt("App check token revoked: "+e+"/"+t),this.appCheckToken_=null,this.forceTokenRefresh_=!0,"invalid_token"!==e&&"permission_denied"!==e||(this.invalidAppCheckTokenCount_++,this.invalidAppCheckTokenCount_>=3&&this.appCheckTokenProvider_.notifyForInvalidToken())}onSecurityDebugPacket_(e){this.securityDebugCallback_?this.securityDebugCallback_(e):"msg"in e&&console.log("FIREBASE: "+e.msg.replace("\n","\nFIREBASE: "))}restoreState_(){this.tryAuth(),this.tryAppCheck();for(const e of this.listens.values())for(const t of e.values())this.sendListen_(t);for(let e=0;e0}peek(){if(0===this.nodeStack_.length)return null;const e=this.nodeStack_[this.nodeStack_.length-1];return this.resultGenerator_?this.resultGenerator_(e.key,e.value):{key:e.key,value:e.value}}}class mi{constructor(e,t,n,i,r){this.key=e,this.value=t,this.color=null!=n?n:mi.RED,this.left=null!=i?i:gi.EMPTY_NODE,this.right=null!=r?r:gi.EMPTY_NODE}copy(e,t,n,i,r){return new mi(null!=e?e:this.key,null!=t?t:this.value,null!=n?n:this.color,null!=i?i:this.left,null!=r?r:this.right)}count(){return this.left.count()+1+this.right.count()}isEmpty(){return!1}inorderTraversal(e){return this.left.inorderTraversal(e)||!!e(this.key,this.value)||this.right.inorderTraversal(e)}reverseTraversal(e){return this.right.reverseTraversal(e)||e(this.key,this.value)||this.left.reverseTraversal(e)}min_(){return this.left.isEmpty()?this:this.left.min_()}minKey(){return this.min_().key}maxKey(){return this.right.isEmpty()?this.key:this.right.maxKey()}insert(e,t,n){let i=this;const r=n(e,i.key);return i=r<0?i.copy(null,null,null,i.left.insert(e,t,n),null):0===r?i.copy(null,t,null,null,null):i.copy(null,null,null,null,i.right.insert(e,t,n)),i.fixUp_()}removeMin_(){if(this.left.isEmpty())return gi.EMPTY_NODE;let e=this;return e.left.isRed_()||e.left.left.isRed_()||(e=e.moveRedLeft_()),e=e.copy(null,null,null,e.left.removeMin_(),null),e.fixUp_()}remove(e,t){let n,i;if(n=this,t(e,n.key)<0)n.left.isEmpty()||n.left.isRed_()||n.left.left.isRed_()||(n=n.moveRedLeft_()),n=n.copy(null,null,null,n.left.remove(e,t),null);else{if(n.left.isRed_()&&(n=n.rotateRight_()),n.right.isEmpty()||n.right.isRed_()||n.right.left.isRed_()||(n=n.moveRedRight_()),0===t(e,n.key)){if(n.right.isEmpty())return gi.EMPTY_NODE;i=n.right.min_(),n=n.copy(i.key,i.value,null,null,n.right.removeMin_())}n=n.copy(null,null,null,null,n.right.remove(e,t))}return n.fixUp_()}isRed_(){return this.color}fixUp_(){let e=this;return e.right.isRed_()&&!e.left.isRed_()&&(e=e.rotateLeft_()),e.left.isRed_()&&e.left.left.isRed_()&&(e=e.rotateRight_()),e.left.isRed_()&&e.right.isRed_()&&(e=e.colorFlip_()),e}moveRedLeft_(){let e=this.colorFlip_();return e.right.left.isRed_()&&(e=e.copy(null,null,null,null,e.right.rotateRight_()),e=e.rotateLeft_(),e=e.colorFlip_()),e}moveRedRight_(){let e=this.colorFlip_();return e.left.left.isRed_()&&(e=e.rotateRight_(),e=e.colorFlip_()),e}rotateLeft_(){const e=this.copy(null,null,mi.RED,null,this.right.left);return this.right.copy(null,null,this.color,e,null)}rotateRight_(){const e=this.copy(null,null,mi.RED,this.left.right,null);return this.left.copy(null,null,this.color,null,e)}colorFlip_(){const e=this.left.copy(null,null,!this.left.color,null,null),t=this.right.copy(null,null,!this.right.color,null,null);return this.copy(null,null,!this.color,e,t)}checkMaxDepth_(){const e=this.check_();return Math.pow(2,e)<=this.count()+1}check_(){if(this.isRed_()&&this.left.isRed_())throw new Error("Red node has red child("+this.key+","+this.value+")");if(this.right.isRed_())throw new Error("Right child of ("+this.key+","+this.value+") is red");const e=this.left.check_();if(e!==this.right.check_())throw new Error("Black depths differ");return e+(this.isRed_()?0:1)}}mi.RED=!0,mi.BLACK=!1;class gi{constructor(e,t=gi.EMPTY_NODE){this.comparator_=e,this.root_=t}insert(e,t){return new gi(this.comparator_,this.root_.insert(e,t,this.comparator_).copy(null,null,mi.BLACK,null,null))}remove(e){return new gi(this.comparator_,this.root_.remove(e,this.comparator_).copy(null,null,mi.BLACK,null,null))}get(e){let t,n=this.root_;for(;!n.isEmpty();){if(t=this.comparator_(e,n.key),0===t)return n.value;t<0?n=n.left:t>0&&(n=n.right)}return null}getPredecessorKey(e){let t,n=this.root_,i=null;for(;!n.isEmpty();){if(t=this.comparator_(e,n.key),0===t){if(n.left.isEmpty())return i?i.key:null;for(n=n.left;!n.right.isEmpty();)n=n.right;return n.key}t<0?n=n.left:t>0&&(i=n,n=n.right)}throw new Error("Attempted to find predecessor key for a nonexistent key. What gives?")}isEmpty(){return this.root_.isEmpty()}count(){return this.root_.count()}minKey(){return this.root_.minKey()}maxKey(){return this.root_.maxKey()}inorderTraversal(e){return this.root_.inorderTraversal(e)}reverseTraversal(e){return this.root_.reverseTraversal(e)}getIterator(e){return new _i(this.root_,null,this.comparator_,!1,e)}getIteratorFrom(e,t){return new _i(this.root_,e,this.comparator_,!1,t)}getReverseIteratorFrom(e,t){return new _i(this.root_,e,this.comparator_,!0,t)}getReverseIterator(e){return new _i(this.root_,null,this.comparator_,!0,e)}}function vi(e,t){return an(e.name,t.name)}function yi(e,t){return an(e,t)}let wi;gi.EMPTY_NODE=new class{copy(e,t,n,i,r){return this}insert(e,t,n){return new mi(e,t,null)}remove(e,t){return this}count(){return 0}isEmpty(){return!0}inorderTraversal(e){return!1}reverseTraversal(e){return!1}minKey(){return null}maxKey(){return null}check_(){return 0}isRed_(){return!1}};const bi=function(e){return"number"==typeof e?"number:"+pn(e):"string:"+e},Ii=function(e){if(e.isLeafNode()){const t=e.val();n("string"==typeof t||"number"==typeof t||"object"==typeof t&&R(t,".sv"),"Priority must be a string or number.")}else n(e===wi||e.isEmpty(),"priority of unexpected type.");n(e===wi||e.getPriority().isEmpty(),"Priority nodes can't have a priority of their own.")};let Ci,Ti,ki;class Ei{constructor(e,t=Ei.__childrenNodeConstructor.EMPTY_NODE){this.value_=e,this.priorityNode_=t,this.lazyHash_=null,n(void 0!==this.value_&&null!==this.value_,"LeafNode shouldn't be created with null/undefined value."),Ii(this.priorityNode_)}static set __childrenNodeConstructor(e){Ci=e}static get __childrenNodeConstructor(){return Ci}isLeafNode(){return!0}getPriority(){return this.priorityNode_}updatePriority(e){return new Ei(this.value_,e)}getImmediateChild(e){return".priority"===e?this.priorityNode_:Ei.__childrenNodeConstructor.EMPTY_NODE}getChild(e){return Zn(e)?this:".priority"===$n(e)?this.priorityNode_:Ei.__childrenNodeConstructor.EMPTY_NODE}hasChild(){return!1}getPredecessorChildName(e,t){return null}updateImmediateChild(e,t){return".priority"===e?this.updatePriority(t):t.isEmpty()&&".priority"!==e?this:Ei.__childrenNodeConstructor.EMPTY_NODE.updateImmediateChild(e,t).updatePriority(this.priorityNode_)}updateChild(e,t){const i=$n(e);return null===i?t:t.isEmpty()&&".priority"!==i?this:(n(".priority"!==i||1===Kn(e),".priority must be the last token in a path"),this.updateImmediateChild(i,Ei.__childrenNodeConstructor.EMPTY_NODE.updateChild(Gn(e),t)))}isEmpty(){return!1}numChildren(){return 0}forEachChild(e,t){return!1}val(e){return e&&!this.getPriority().isEmpty()?{".value":this.getValue(),".priority":this.getPriority().val()}:this.getValue()}hash(){if(null===this.lazyHash_){let e="";this.priorityNode_.isEmpty()||(e+="priority:"+bi(this.priorityNode_.val())+":");const t=typeof this.value_;e+=t+":",e+="number"===t?pn(this.value_):this.value_,this.lazyHash_=Kt(e)}return this.lazyHash_}getValue(){return this.value_}compareTo(e){return e===Ei.__childrenNodeConstructor.EMPTY_NODE?1:e instanceof Ei.__childrenNodeConstructor?-1:(n(e.isLeafNode(),"Unknown node type"),this.compareToLeafNode_(e))}compareToLeafNode_(e){const t=typeof e.value_,i=typeof this.value_,r=Ei.VALUE_TYPE_ORDER.indexOf(t),s=Ei.VALUE_TYPE_ORDER.indexOf(i);return n(r>=0,"Unknown leaf type: "+t),n(s>=0,"Unknown leaf type: "+i),r===s?"object"===i?0:this.value_{const s=N(this.indexSet_,r);if(n(s,"Missing index implementation for "+r),i===Oi){if(s.isDefinedOn(e.node)){const n=[],i=t.getIterator(hi.Wrap);let r=i.getNext();for(;r;)r.name!==e.name&&n.push(r),r=i.getNext();return n.push(e),Ni(n,s.getCompare())}return Oi}{const n=t.get(e.name);let r=i;return n&&(r=r.remove(new hi(e.name,n))),r.insert(e,e.node)}}));return new Di(i,this.indexSet_)}removeFromIndexes(e,t){const n=O(this.indexes_,(n=>{if(n===Oi)return n;{const i=t.get(e.name);return i?n.remove(new hi(e.name,i)):n}}));return new Di(n,this.indexSet_)}}let xi;class Li{constructor(e,t,i){this.children_=e,this.priorityNode_=t,this.indexMap_=i,this.lazyHash_=null,this.priorityNode_&&Ii(this.priorityNode_),this.children_.isEmpty()&&n(!this.priorityNode_||this.priorityNode_.isEmpty(),"An empty node cannot have a priority")}static get EMPTY_NODE(){return xi||(xi=new Li(new gi(yi),null,Di.Default))}isLeafNode(){return!1}getPriority(){return this.priorityNode_||xi}updatePriority(e){return this.children_.isEmpty()?this:new Li(this.children_,e,this.indexMap_)}getImmediateChild(e){if(".priority"===e)return this.getPriority();{const t=this.children_.get(e);return null===t?xi:t}}getChild(e){const t=$n(e);return null===t?this:this.getImmediateChild(t).getChild(Gn(e))}hasChild(e){return null!==this.children_.get(e)}updateImmediateChild(e,t){if(n(t,"We should always be passing snapshot nodes"),".priority"===e)return this.updatePriority(t);{const n=new hi(e,t);let i,r;t.isEmpty()?(i=this.children_.remove(e),r=this.indexMap_.removeFromIndexes(n,this.children_)):(i=this.children_.insert(e,t),r=this.indexMap_.addToIndexes(n,this.children_));const s=i.isEmpty()?xi:this.priorityNode_;return new Li(i,s,r)}}updateChild(e,t){const i=$n(e);if(null===i)return t;{n(".priority"!==$n(e)||1===Kn(e),".priority must be the last token in a path");const r=this.getImmediateChild(i).updateChild(Gn(e),t);return this.updateImmediateChild(i,r)}}isEmpty(){return this.children_.isEmpty()}numChildren(){return this.children_.count()}val(e){if(this.isEmpty())return null;const t={};let n=0,i=0,r=!0;if(this.forEachChild(Si,((s,o)=>{t[s]=o.val(e),n++,r&&Li.INTEGER_REGEXP_.test(s)?i=Math.max(i,Number(s)):r=!1})),!e&&r&&i<2*n){const e=[];for(const n in t)e[n]=t[n];return e}return e&&!this.getPriority().isEmpty()&&(t[".priority"]=this.getPriority().val()),t}hash(){if(null===this.lazyHash_){let e="";this.getPriority().isEmpty()||(e+="priority:"+bi(this.getPriority().val())+":"),this.forEachChild(Si,((t,n)=>{const i=n.hash();""!==i&&(e+=":"+t+":"+i)})),this.lazyHash_=""===e?"":Kt(e)}return this.lazyHash_}getPredecessorChildName(e,t,n){const i=this.resolveIndex_(n);if(i){const n=i.getPredecessorKey(new hi(e,t));return n?n.name:null}return this.children_.getPredecessorKey(e)}getFirstChildName(e){const t=this.resolveIndex_(e);if(t){const e=t.minKey();return e&&e.name}return this.children_.minKey()}getFirstChild(e){const t=this.getFirstChildName(e);return t?new hi(t,this.children_.get(t)):null}getLastChildName(e){const t=this.resolveIndex_(e);if(t){const e=t.maxKey();return e&&e.name}return this.children_.maxKey()}getLastChild(e){const t=this.getLastChildName(e);return t?new hi(t,this.children_.get(t)):null}forEachChild(e,t){const n=this.resolveIndex_(e);return n?n.inorderTraversal((e=>t(e.name,e.node))):this.children_.inorderTraversal(t)}getIterator(e){return this.getIteratorFrom(e.minPost(),e)}getIteratorFrom(e,t){const n=this.resolveIndex_(t);if(n)return n.getIteratorFrom(e,(e=>e));{const n=this.children_.getIteratorFrom(e.name,hi.Wrap);let i=n.peek();for(;null!=i&&t.compare(i,e)<0;)n.getNext(),i=n.peek();return n}}getReverseIterator(e){return this.getReverseIteratorFrom(e.maxPost(),e)}getReverseIteratorFrom(e,t){const n=this.resolveIndex_(t);if(n)return n.getReverseIteratorFrom(e,(e=>e));{const n=this.children_.getReverseIteratorFrom(e.name,hi.Wrap);let i=n.peek();for(;null!=i&&t.compare(i,e)>0;)n.getNext(),i=n.peek();return n}}compareTo(e){return this.isEmpty()?e.isEmpty()?0:-1:e.isLeafNode()||e.isEmpty()?1:e===Mi?-1:0}withIndex(e){if(e===fi||this.indexMap_.hasIndex(e))return this;{const t=this.indexMap_.addIndex(e,this.children_);return new Li(this.children_,this.priorityNode_,t)}}isIndexed(e){return e===fi||this.indexMap_.hasIndex(e)}equals(e){if(e===this)return!0;if(e.isLeafNode())return!1;{const t=e;if(this.getPriority().equals(t.getPriority())){if(this.children_.count()===t.children_.count()){const e=this.getIterator(Si),n=t.getIterator(Si);let i=e.getNext(),r=n.getNext();for(;i&&r;){if(i.name!==r.name||!i.node.equals(r.node))return!1;i=e.getNext(),r=n.getNext()}return null===i&&null===r}return!1}return!1}}resolveIndex_(e){return e===fi?null:this.indexMap_.get(e.toString())}}Li.INTEGER_REGEXP_=/^(0|[1-9]\d*)$/;const Mi=new class extends Li{constructor(){super(new gi(yi),Li.EMPTY_NODE,Di.Default)}compareTo(e){return e===this?0:1}equals(e){return e===this}getPriority(){return this}getImmediateChild(e){return Li.EMPTY_NODE}isEmpty(){return!1}};function Fi(e,t=null){if(null===e)return Li.EMPTY_NODE;if("object"==typeof e&&".priority"in e&&(t=e[".priority"]),n(null===t||"string"==typeof t||"number"==typeof t||"object"==typeof t&&".sv"in t,"Invalid priority type found: "+typeof t),"object"==typeof e&&".value"in e&&null!==e[".value"]&&(e=e[".value"]),"object"!=typeof e||".sv"in e)return new Ei(e,Fi(t));if(e instanceof Array){let n=Li.EMPTY_NODE;return dn(e,((t,i)=>{if(R(e,t)&&"."!==t.substring(0,1)){const e=Fi(i);!e.isLeafNode()&&e.isEmpty()||(n=n.updateImmediateChild(t,e))}})),n.updatePriority(Fi(t))}{const n=[];let i=!1;if(dn(e,((e,t)=>{if("."!==e.substring(0,1)){const r=Fi(t);r.isEmpty()||(i=i||!r.getPriority().isEmpty(),n.push(new hi(e,r)))}})),0===n.length)return Li.EMPTY_NODE;const r=Ni(n,vi,(e=>e.name),yi);if(i){const e=Ni(n,Si.getCompare());return new Li(r,Fi(t),new Di({".priority":e},{".priority":Si}))}return new Li(r,Fi(t),Di.Default)}}Object.defineProperties(hi,{MIN:{value:new hi(sn,Li.EMPTY_NODE)},MAX:{value:new hi(on,Mi)}}),pi.__EMPTY_NODE=Li.EMPTY_NODE,Ei.__childrenNodeConstructor=Li,wi=Mi,ki=Mi,function(e){Ti=e}(Fi);class Ui extends ui{constructor(e){super(),this.indexPath_=e,n(!Zn(e)&&".priority"!==$n(e),"Can't create PathIndex with empty path or .priority key")}extractChild(e){return e.getChild(this.indexPath_)}isDefinedOn(e){return!e.getChild(this.indexPath_).isEmpty()}compare(e,t){const n=this.extractChild(e.node),i=this.extractChild(t.node),r=n.compareTo(i);return 0===r?an(e.name,t.name):r}makePost(e,t){const n=Fi(e),i=Li.EMPTY_NODE.updateChild(this.indexPath_,n);return new hi(t,i)}maxPost(){const e=Li.EMPTY_NODE.updateChild(this.indexPath_,Mi);return new hi(on,e)}toString(){return Jn(this.indexPath_,0).join("/")}}const qi=new class extends ui{compare(e,t){const n=e.node.compareTo(t.node);return 0===n?an(e.name,t.name):n}isDefinedOn(e){return!0}indexedValueChanged(e,t){return!e.equals(t)}minPost(){return hi.MIN}maxPost(){return hi.MAX}makePost(e,t){const n=Fi(e);return new hi(t,n)}toString(){return".value"}};function ji(e){return{type:"value",snapshotNode:e}}function Wi(e,t){return{type:"child_added",snapshotNode:t,childName:e}}function Vi(e,t){return{type:"child_removed",snapshotNode:t,childName:e}}function Bi(e,t,n){return{type:"child_changed",snapshotNode:t,childName:e,oldSnap:n}}class zi{constructor(e){this.index_=e}updateChild(e,t,i,r,s,o){n(e.isIndexed(this.index_),"A node must be indexed if only a child is updated");const a=e.getImmediateChild(t);return a.getChild(r).equals(i.getChild(r))&&a.isEmpty()===i.isEmpty()?e:(null!=o&&(i.isEmpty()?e.hasChild(t)?o.trackChildChange(Vi(t,a)):n(e.isLeafNode(),"A child remove without an old child only makes sense on a leaf node"):a.isEmpty()?o.trackChildChange(Wi(t,i)):o.trackChildChange(Bi(t,i,a))),e.isLeafNode()&&i.isEmpty()?e:e.updateImmediateChild(t,i).withIndex(this.index_))}updateFullNode(e,t,n){return null!=n&&(e.isLeafNode()||e.forEachChild(Si,((e,i)=>{t.hasChild(e)||n.trackChildChange(Vi(e,i))})),t.isLeafNode()||t.forEachChild(Si,((t,i)=>{if(e.hasChild(t)){const r=e.getImmediateChild(t);r.equals(i)||n.trackChildChange(Bi(t,i,r))}else n.trackChildChange(Wi(t,i))}))),t.withIndex(this.index_)}updatePriority(e,t){return e.isEmpty()?Li.EMPTY_NODE:e.updatePriority(t)}filtersNodes(){return!1}getIndexedFilter(){return this}getIndex(){return this.index_}}class Hi{constructor(e){this.indexedFilter_=new zi(e.getIndex()),this.index_=e.getIndex(),this.startPost_=Hi.getStartPost_(e),this.endPost_=Hi.getEndPost_(e),this.startIsInclusive_=!e.startAfterSet_,this.endIsInclusive_=!e.endBeforeSet_}getStartPost(){return this.startPost_}getEndPost(){return this.endPost_}matches(e){const t=this.startIsInclusive_?this.index_.compare(this.getStartPost(),e)<=0:this.index_.compare(this.getStartPost(),e)<0,n=this.endIsInclusive_?this.index_.compare(e,this.getEndPost())<=0:this.index_.compare(e,this.getEndPost())<0;return t&&n}updateChild(e,t,n,i,r,s){return this.matches(new hi(t,n))||(n=Li.EMPTY_NODE),this.indexedFilter_.updateChild(e,t,n,i,r,s)}updateFullNode(e,t,n){t.isLeafNode()&&(t=Li.EMPTY_NODE);let i=t.withIndex(this.index_);i=i.updatePriority(Li.EMPTY_NODE);const r=this;return t.forEachChild(Si,((e,t)=>{r.matches(new hi(e,t))||(i=i.updateImmediateChild(e,Li.EMPTY_NODE))})),this.indexedFilter_.updateFullNode(e,i,n)}updatePriority(e,t){return e}filtersNodes(){return!0}getIndexedFilter(){return this.indexedFilter_}getIndex(){return this.index_}static getStartPost_(e){if(e.hasStart()){const t=e.getIndexStartName();return e.getIndex().makePost(e.getIndexStartValue(),t)}return e.getIndex().minPost()}static getEndPost_(e){if(e.hasEnd()){const t=e.getIndexEndName();return e.getIndex().makePost(e.getIndexEndValue(),t)}return e.getIndex().maxPost()}}class $i{constructor(e){this.withinDirectionalStart=e=>this.reverse_?this.withinEndPost(e):this.withinStartPost(e),this.withinDirectionalEnd=e=>this.reverse_?this.withinStartPost(e):this.withinEndPost(e),this.withinStartPost=e=>{const t=this.index_.compare(this.rangedFilter_.getStartPost(),e);return this.startIsInclusive_?t<=0:t<0},this.withinEndPost=e=>{const t=this.index_.compare(e,this.rangedFilter_.getEndPost());return this.endIsInclusive_?t<=0:t<0},this.rangedFilter_=new Hi(e),this.index_=e.getIndex(),this.limit_=e.getLimit(),this.reverse_=!e.isViewFromLeft(),this.startIsInclusive_=!e.startAfterSet_,this.endIsInclusive_=!e.endBeforeSet_}updateChild(e,t,n,i,r,s){return this.rangedFilter_.matches(new hi(t,n))||(n=Li.EMPTY_NODE),e.getImmediateChild(t).equals(n)?e:e.numChildren()e(n,t)}else o=this.index_.getCompare();const a=e;n(a.numChildren()===this.limit_,"");const c=new hi(t,i),l=this.reverse_?a.getFirstChild(this.index_):a.getLastChild(this.index_),h=this.rangedFilter_.matches(c);if(a.hasChild(t)){const e=a.getImmediateChild(t);let n=r.getChildAfterChild(this.index_,l,this.reverse_);for(;null!=n&&(n.name===t||a.hasChild(n.name));)n=r.getChildAfterChild(this.index_,n,this.reverse_);const u=null==n?1:o(n,c);if(h&&!i.isEmpty()&&u>=0)return null!=s&&s.trackChildChange(Bi(t,i,e)),a.updateImmediateChild(t,i);{null!=s&&s.trackChildChange(Vi(t,e));const i=a.updateImmediateChild(t,Li.EMPTY_NODE);return null!=n&&this.rangedFilter_.matches(n)?(null!=s&&s.trackChildChange(Wi(n.name,n.node)),i.updateImmediateChild(n.name,n.node)):i}}return i.isEmpty()?e:h&&o(l,c)>=0?(null!=s&&(s.trackChildChange(Vi(l.name,l.node)),s.trackChildChange(Wi(t,i))),a.updateImmediateChild(t,i).updateImmediateChild(l.name,Li.EMPTY_NODE)):e}}class Ki{constructor(){this.limitSet_=!1,this.startSet_=!1,this.startNameSet_=!1,this.startAfterSet_=!1,this.endSet_=!1,this.endNameSet_=!1,this.endBeforeSet_=!1,this.limit_=0,this.viewFrom_="",this.indexStartValue_=null,this.indexStartName_="",this.indexEndValue_=null,this.indexEndName_="",this.index_=Si}hasStart(){return this.startSet_}isViewFromLeft(){return""===this.viewFrom_?this.startSet_:"l"===this.viewFrom_}getIndexStartValue(){return n(this.startSet_,"Only valid if start has been set"),this.indexStartValue_}getIndexStartName(){return n(this.startSet_,"Only valid if start has been set"),this.startNameSet_?this.indexStartName_:sn}hasEnd(){return this.endSet_}getIndexEndValue(){return n(this.endSet_,"Only valid if end has been set"),this.indexEndValue_}getIndexEndName(){return n(this.endSet_,"Only valid if end has been set"),this.endNameSet_?this.indexEndName_:on}hasLimit(){return this.limitSet_}hasAnchoredLimit(){return this.limitSet_&&""!==this.viewFrom_}getLimit(){return n(this.limitSet_,"Only valid if limit has been set"),this.limit_}getIndex(){return this.index_}loadsAllData(){return!(this.startSet_||this.endSet_||this.limitSet_)}isDefault(){return this.loadsAllData()&&this.index_===Si}copy(){const e=new Ki;return e.limitSet_=this.limitSet_,e.limit_=this.limit_,e.startSet_=this.startSet_,e.startAfterSet_=this.startAfterSet_,e.indexStartValue_=this.indexStartValue_,e.startNameSet_=this.startNameSet_,e.indexStartName_=this.indexStartName_,e.endSet_=this.endSet_,e.endBeforeSet_=this.endBeforeSet_,e.indexEndValue_=this.indexEndValue_,e.endNameSet_=this.endNameSet_,e.indexEndName_=this.indexEndName_,e.index_=this.index_,e.viewFrom_=this.viewFrom_,e}}function Gi(e,t,n){const i=e.copy();return i.startSet_=!0,void 0===t&&(t=null),i.indexStartValue_=t,null!=n?(i.startNameSet_=!0,i.indexStartName_=n):(i.startNameSet_=!1,i.indexStartName_=""),i}function Yi(e,t,n){const i=e.copy();return i.endSet_=!0,void 0===t&&(t=null),i.indexEndValue_=t,void 0!==n?(i.endNameSet_=!0,i.indexEndName_=n):(i.endNameSet_=!1,i.indexEndName_=""),i}function Ji(e,t){const n=e.copy();return n.index_=t,n}function Qi(e){const t={};if(e.isDefault())return t;let i;if(e.index_===Si?i="$priority":e.index_===qi?i="$value":e.index_===fi?i="$key":(n(e.index_ instanceof Ui,"Unrecognized index type!"),i=e.index_.toString()),t.orderBy=S(i),e.startSet_){const n=e.startAfterSet_?"startAfter":"startAt";t[n]=S(e.indexStartValue_),e.startNameSet_&&(t[n]+=","+S(e.indexStartName_))}if(e.endSet_){const n=e.endBeforeSet_?"endBefore":"endAt";t[n]=S(e.indexEndValue_),e.endNameSet_&&(t[n]+=","+S(e.indexEndName_))}return e.limitSet_&&(e.isViewFromLeft()?t.limitToFirst=e.limit_:t.limitToLast=e.limit_),t}function Xi(e){const t={};if(e.startSet_&&(t.sp=e.indexStartValue_,e.startNameSet_&&(t.sn=e.indexStartName_),t.sin=!e.startAfterSet_),e.endSet_&&(t.ep=e.indexEndValue_,e.endNameSet_&&(t.en=e.indexEndName_),t.ein=!e.endBeforeSet_),e.limitSet_){t.l=e.limit_;let n=e.viewFrom_;""===n&&(n=e.isViewFromLeft()?"l":"r"),t.vf=n}return e.index_!==Si&&(t.i=e.index_.toString()),t}class Zi extends Wn{constructor(e,t,n,i){super(),this.repoInfo_=e,this.onDataUpdate_=t,this.authTokenProvider_=n,this.appCheckTokenProvider_=i,this.log_=Zt("p:rest:"),this.listens_={}}reportStats(e){throw new Error("Method not implemented.")}static getListenId_(e,t){return void 0!==t?"tag$"+t:(n(e._queryParams.isDefault(),"should have a tag if it's not a default query."),e._path.toString())}listen(e,t,n,i){const r=e._path.toString();this.log_("Listen called for "+r+" "+e._queryIdentifier);const s=Zi.getListenId_(e,n),o={};this.listens_[s]=o;const a=Qi(e._queryParams);this.restRequest_(r+".json",a,((e,t)=>{let a=t;if(404===e&&(a=null,e=null),null===e&&this.onDataUpdate_(r,a,!1,n),N(this.listens_,s)===o){let t;t=e?401===e?"permission_denied":"rest_error:"+e:"ok",i(t,null)}}))}unlisten(e,t){const n=Zi.getListenId_(e,t);delete this.listens_[n]}get(e){const t=Qi(e._queryParams),n=e._path.toString(),i=new f;return this.restRequest_(n+".json",t,((e,t)=>{let r=t;404===e&&(r=null,e=null),null===e?(this.onDataUpdate_(n,r,!1,null),i.resolve(r)):i.reject(new Error(r))})),i.promise}refreshAuthToken(e){}restRequest_(e,t={},n){return t.format="export",Promise.all([this.authTokenProvider_.getToken(!1),this.appCheckTokenProvider_.getToken(!1)]).then((([i,r])=>{i&&i.accessToken&&(t.auth=i.accessToken),r&&r.token&&(t.ac=r.token);const s=(this.repoInfo_.secure?"https://":"http://")+this.repoInfo_.host+e+"?ns="+this.repoInfo_.namespace+L(t);this.log_("Sending REST request for "+s);const o=new XMLHttpRequest;o.onreadystatechange=()=>{if(n&&4===o.readyState){this.log_("REST Response for "+s+" received. status:",o.status,"response:",o.responseText);let e=null;if(o.status>=200&&o.status<300){try{e=E(o.responseText)}catch(e){nn("Failed to parse JSON response for "+s+": "+o.responseText)}n(null,e)}else 401!==o.status&&404!==o.status&&nn("Got unsuccessful REST response for "+s+" Status: "+o.status),n(o.status);n=null}},o.open("GET",s,!0),o.send()}))}}class er{constructor(){this.rootNode_=Li.EMPTY_NODE}getNode(e){return this.rootNode_.getChild(e)}updateSnapshot(e,t){this.rootNode_=this.rootNode_.updateChild(e,t)}}function tr(){return{value:null,children:new Map}}function nr(e,t,n){if(Zn(t))e.value=n,e.children.clear();else if(null!==e.value)e.value=e.value.updateChild(t,n);else{const i=$n(t);e.children.has(i)||e.children.set(i,tr()),nr(e.children.get(i),t=Gn(t),n)}}function ir(e,t){if(Zn(t))return e.value=null,e.children.clear(),!0;if(null!==e.value){if(e.value.isLeafNode())return!1;{const n=e.value;return e.value=null,n.forEachChild(Si,((t,n)=>{nr(e,new zn(t),n)})),ir(e,t)}}if(e.children.size>0){const n=$n(t);return t=Gn(t),e.children.has(n)&&ir(e.children.get(n),t)&&e.children.delete(n),0===e.children.size}return!0}function rr(e,t,n){null!==e.value?n(t,e.value):function(e,t){e.children.forEach(((e,n)=>{t(n,e)}))}(e,((e,i)=>{rr(i,new zn(t.toString()+"/"+e),n)}))}class sr{constructor(e){this.collection_=e,this.last_=null}get(){const e=this.collection_.get(),t=Object.assign({},e);return this.last_&&dn(this.last_,((e,n)=>{t[e]=t[e]-n})),this.last_=e,t}}class or{constructor(e,t){this.server_=t,this.statsToReport_={},this.statsListener_=new sr(e);const n=1e4+2e4*Math.random();vn(this.reportStats_.bind(this),Math.floor(n))}reportStats_(){const e=this.statsListener_.get(),t={};let n=!1;dn(e,((e,i)=>{i>0&&R(this.statsToReport_,e)&&(t[e]=i,n=!0)})),n&&this.server_.reportStats(t),vn(this.reportStats_.bind(this),Math.floor(2*Math.random()*3e5))}}var ar;function cr(e){return{fromUser:!1,fromServer:!0,queryId:e,tagged:!0}}!function(e){e[e.OVERWRITE=0]="OVERWRITE",e[e.MERGE=1]="MERGE",e[e.ACK_USER_WRITE=2]="ACK_USER_WRITE",e[e.LISTEN_COMPLETE=3]="LISTEN_COMPLETE"}(ar||(ar={}));class lr{constructor(e,t,n){this.path=e,this.affectedTree=t,this.revert=n,this.type=ar.ACK_USER_WRITE,this.source={fromUser:!0,fromServer:!1,queryId:null,tagged:!1}}operationForChild(e){if(Zn(this.path)){if(null!=this.affectedTree.value)return n(this.affectedTree.children.isEmpty(),"affectedTree should not have overlapping affected paths."),this;{const t=this.affectedTree.subtree(new zn(e));return new lr(Hn(),t,this.revert)}}return n($n(this.path)===e,"operationForChild called for unrelated child."),new lr(Gn(this.path),this.affectedTree,this.revert)}}class hr{constructor(e,t){this.source=e,this.path=t,this.type=ar.LISTEN_COMPLETE}operationForChild(e){return Zn(this.path)?new hr(this.source,Hn()):new hr(this.source,Gn(this.path))}}class ur{constructor(e,t,n){this.source=e,this.path=t,this.snap=n,this.type=ar.OVERWRITE}operationForChild(e){return Zn(this.path)?new ur(this.source,Hn(),this.snap.getImmediateChild(e)):new ur(this.source,Gn(this.path),this.snap)}}class dr{constructor(e,t,n){this.source=e,this.path=t,this.children=n,this.type=ar.MERGE}operationForChild(e){if(Zn(this.path)){const t=this.children.subtree(new zn(e));return t.isEmpty()?null:t.value?new ur(this.source,Hn(),t.value):new dr(this.source,Hn(),t)}return n($n(this.path)===e,"Can't get a merge for a child not on the path of the operation"),new dr(this.source,Gn(this.path),this.children)}toString(){return"Operation("+this.path+": "+this.source.toString()+" merge: "+this.children.toString()+")"}}class pr{constructor(e,t,n){this.node_=e,this.fullyInitialized_=t,this.filtered_=n}isFullyInitialized(){return this.fullyInitialized_}isFiltered(){return this.filtered_}isCompleteForPath(e){if(Zn(e))return this.isFullyInitialized()&&!this.filtered_;const t=$n(e);return this.isCompleteForChild(t)}isCompleteForChild(e){return this.isFullyInitialized()&&!this.filtered_||this.node_.hasChild(e)}getNode(){return this.node_}}class fr{constructor(e){this.query_=e,this.index_=this.query_._queryParams.getIndex()}}function _r(e,t,n,r,s,o){const a=r.filter((e=>e.type===n));a.sort(((t,n)=>function(e,t,n){if(null==t.childName||null==n.childName)throw i("Should only compare child_ events.");const r=new hi(t.childName,t.snapshotNode),s=new hi(n.childName,n.snapshotNode);return e.index_.compare(r,s)}(e,t,n))),a.forEach((n=>{const i=function(e,t,n){return"value"===t.type||"child_removed"===t.type||(t.prevName=n.getPredecessorChildName(t.childName,t.snapshotNode,e.index_)),t}(e,n,o);s.forEach((r=>{r.respondsTo(n.type)&&t.push(r.createEvent(i,e.query_))}))}))}function mr(e,t){return{eventCache:e,serverCache:t}}function gr(e,t,n,i){return mr(new pr(t,n,i),e.serverCache)}function vr(e,t,n,i){return mr(e.eventCache,new pr(t,n,i))}function yr(e){return e.eventCache.isFullyInitialized()?e.eventCache.getNode():null}function wr(e){return e.serverCache.isFullyInitialized()?e.serverCache.getNode():null}let br;class Ir{constructor(e,t=(()=>(br||(br=new gi(cn)),br))()){this.value=e,this.children=t}static fromObject(e){let t=new Ir(null);return dn(e,((e,n)=>{t=t.set(new zn(e),n)})),t}isEmpty(){return null===this.value&&this.children.isEmpty()}findRootMostMatchingPathAndValue(e,t){if(null!=this.value&&t(this.value))return{path:Hn(),value:this.value};if(Zn(e))return null;{const n=$n(e),i=this.children.get(n);if(null!==i){const r=i.findRootMostMatchingPathAndValue(Gn(e),t);return null!=r?{path:Xn(new zn(n),r.path),value:r.value}:null}return null}}findRootMostValueAndPath(e){return this.findRootMostMatchingPathAndValue(e,(()=>!0))}subtree(e){if(Zn(e))return this;{const t=$n(e),n=this.children.get(t);return null!==n?n.subtree(Gn(e)):new Ir(null)}}set(e,t){if(Zn(e))return new Ir(t,this.children);{const n=$n(e),i=(this.children.get(n)||new Ir(null)).set(Gn(e),t),r=this.children.insert(n,i);return new Ir(this.value,r)}}remove(e){if(Zn(e))return this.children.isEmpty()?new Ir(null):new Ir(null,this.children);{const t=$n(e),n=this.children.get(t);if(n){const i=n.remove(Gn(e));let r;return r=i.isEmpty()?this.children.remove(t):this.children.insert(t,i),null===this.value&&r.isEmpty()?new Ir(null):new Ir(this.value,r)}return this}}get(e){if(Zn(e))return this.value;{const t=$n(e),n=this.children.get(t);return n?n.get(Gn(e)):null}}setTree(e,t){if(Zn(e))return t;{const n=$n(e),i=(this.children.get(n)||new Ir(null)).setTree(Gn(e),t);let r;return r=i.isEmpty()?this.children.remove(n):this.children.insert(n,i),new Ir(this.value,r)}}fold(e){return this.fold_(Hn(),e)}fold_(e,t){const n={};return this.children.inorderTraversal(((i,r)=>{n[i]=r.fold_(Xn(e,i),t)})),t(e,this.value,n)}findOnPath(e,t){return this.findOnPath_(e,Hn(),t)}findOnPath_(e,t,n){const i=!!this.value&&n(t,this.value);if(i)return i;if(Zn(e))return null;{const i=$n(e),r=this.children.get(i);return r?r.findOnPath_(Gn(e),Xn(t,i),n):null}}foreachOnPath(e,t){return this.foreachOnPath_(e,Hn(),t)}foreachOnPath_(e,t,n){if(Zn(e))return this;{this.value&&n(t,this.value);const i=$n(e),r=this.children.get(i);return r?r.foreachOnPath_(Gn(e),Xn(t,i),n):new Ir(null)}}foreach(e){this.foreach_(Hn(),e)}foreach_(e,t){this.children.inorderTraversal(((n,i)=>{i.foreach_(Xn(e,n),t)})),this.value&&t(e,this.value)}foreachChild(e){this.children.inorderTraversal(((t,n)=>{n.value&&e(t,n.value)}))}}class Cr{constructor(e){this.writeTree_=e}static empty(){return new Cr(new Ir(null))}}function Tr(e,t,n){if(Zn(t))return new Cr(new Ir(n));{const i=e.writeTree_.findRootMostValueAndPath(t);if(null!=i){const r=i.path;let s=i.value;const o=ei(r,t);return s=s.updateChild(o,n),new Cr(e.writeTree_.set(r,s))}{const i=new Ir(n),r=e.writeTree_.setTree(t,i);return new Cr(r)}}}function kr(e,t,n){let i=e;return dn(n,((e,n)=>{i=Tr(i,Xn(t,e),n)})),i}function Er(e,t){if(Zn(t))return Cr.empty();{const n=e.writeTree_.setTree(t,new Ir(null));return new Cr(n)}}function Sr(e,t){return null!=Pr(e,t)}function Pr(e,t){const n=e.writeTree_.findRootMostValueAndPath(t);return null!=n?e.writeTree_.get(n.path).getChild(ei(n.path,t)):null}function Rr(e){const t=[],n=e.writeTree_.value;return null!=n?n.isLeafNode()||n.forEachChild(Si,((e,n)=>{t.push(new hi(e,n))})):e.writeTree_.children.inorderTraversal(((e,n)=>{null!=n.value&&t.push(new hi(e,n.value))})),t}function Nr(e,t){if(Zn(t))return e;{const n=Pr(e,t);return new Cr(null!=n?new Ir(n):e.writeTree_.subtree(t))}}function Ar(e){return e.writeTree_.isEmpty()}function Or(e,t){return Dr(Hn(),e.writeTree_,t)}function Dr(e,t,i){if(null!=t.value)return i.updateChild(e,t.value);{let r=null;return t.children.inorderTraversal(((t,s)=>{".priority"===t?(n(null!==s.value,"Priority writes must always be leaf nodes"),r=s.value):i=Dr(Xn(e,t),s,i)})),i.getChild(e).isEmpty()||null===r||(i=i.updateChild(Xn(e,".priority"),r)),i}}function xr(e,t){return Hr(t,e)}function Lr(e,t){if(e.snap)return ii(e.path,t);for(const n in e.children)if(e.children.hasOwnProperty(n)&&ii(Xn(e.path,n),t))return!0;return!1}function Mr(e){return e.visible}function Fr(e,t,n){let r=Cr.empty();for(let s=0;s{i=i.updateImmediateChild(e,t)})),i;if(n){const r=Nr(e.visibleWrites,t);return n.forEachChild(Si,((e,t)=>{const n=Or(Nr(r,new zn(e)),t);i=i.updateImmediateChild(e,n)})),Rr(r).forEach((e=>{i=i.updateImmediateChild(e.name,e.node)})),i}return Rr(Nr(e.visibleWrites,t)).forEach((e=>{i=i.updateImmediateChild(e.name,e.node)})),i}(e.writeTree,e.treePath,t)}function Wr(e,t,i,r){return function(e,t,i,r,s){n(r||s,"Either existingEventSnap or existingServerSnap must exist");const o=Xn(t,i);if(Sr(e.visibleWrites,o))return null;{const t=Nr(e.visibleWrites,o);return Ar(t)?s.getChild(i):Or(t,s.getChild(i))}}(e.writeTree,e.treePath,t,i,r)}function Vr(e,t){return function(e,t){return Pr(e.visibleWrites,t)}(e.writeTree,Xn(e.treePath,t))}function Br(e,t,n){return function(e,t,n,i){const r=Xn(t,n),s=Pr(e.visibleWrites,r);return null!=s?s:i.isCompleteForChild(n)?Or(Nr(e.visibleWrites,r),i.getNode().getImmediateChild(n)):null}(e.writeTree,e.treePath,t,n)}function zr(e,t){return Hr(Xn(e.treePath,t),e.writeTree)}function Hr(e,t){return{treePath:e,writeTree:t}}class $r{constructor(){this.changeMap=new Map}trackChildChange(e){const t=e.type,r=e.childName;n("child_added"===t||"child_changed"===t||"child_removed"===t,"Only child changes supported for tracking"),n(".priority"!==r,"Only non-priority child changes can be tracked.");const s=this.changeMap.get(r);if(s){const n=s.type;if("child_added"===t&&"child_removed"===n)this.changeMap.set(r,Bi(r,e.snapshotNode,s.snapshotNode));else if("child_removed"===t&&"child_added"===n)this.changeMap.delete(r);else if("child_removed"===t&&"child_changed"===n)this.changeMap.set(r,Vi(r,s.oldSnap));else if("child_changed"===t&&"child_added"===n)this.changeMap.set(r,Wi(r,e.snapshotNode));else{if("child_changed"!==t||"child_changed"!==n)throw i("Illegal combination of changes: "+e+" occurred after "+s);this.changeMap.set(r,Bi(r,e.snapshotNode,s.oldSnap))}}else this.changeMap.set(r,e)}getChanges(){return Array.from(this.changeMap.values())}}const Kr=new class{getCompleteChild(e){return null}getChildAfterChild(e,t,n){return null}};class Gr{constructor(e,t,n=null){this.writes_=e,this.viewCache_=t,this.optCompleteServerCache_=n}getCompleteChild(e){const t=this.viewCache_.eventCache;if(t.isCompleteForChild(e))return t.getNode().getImmediateChild(e);{const t=null!=this.optCompleteServerCache_?new pr(this.optCompleteServerCache_,!0,!1):this.viewCache_.serverCache;return Br(this.writes_,e,t)}}getChildAfterChild(e,t,n){const i=null!=this.optCompleteServerCache_?this.optCompleteServerCache_:wr(this.viewCache_),r=function(e,t,n,i,r,s){return function(e,t,n,i,r,s,o){let a;const c=Nr(e.visibleWrites,t),l=Pr(c,Hn());if(null!=l)a=l;else{if(null==n)return[];a=Or(c,n)}if(a=a.withIndex(o),a.isEmpty()||a.isLeafNode())return[];{const e=[],t=o.getCompare(),n=s?a.getReverseIteratorFrom(i,o):a.getIteratorFrom(i,o);let c=n.getNext();for(;c&&e.length1)return t;const r=Gn(n),s=c.getNode().getImmediateChild(e).updateChild(r,i);l=".priority"===e?h.updatePriority(c.getNode(),s):h.updateChild(c.getNode(),e,s,r,Kr,null)}const u=vr(t,l,c.isFullyInitialized()||Zn(n),h.filtersNodes());return Yr(e,u,n,r,new Gr(r,u,s),a)}function Qr(e,t,n,i,r,s,o){const a=t.eventCache;let c,l;const h=new Gr(r,t,s);if(Zn(n))l=e.filter.updateFullNode(t.eventCache.getNode(),i,o),c=gr(t,l,!0,e.filter.filtersNodes());else{const r=$n(n);if(".priority"===r)l=e.filter.updatePriority(t.eventCache.getNode(),i),c=gr(t,l,a.isFullyInitialized(),a.isFiltered());else{const s=Gn(n),l=a.getNode().getImmediateChild(r);let u;if(Zn(s))u=i;else{const e=h.getCompleteChild(r);u=null!=e?".priority"===Yn(s)&&e.getChild(Qn(s)).isEmpty()?e:e.updateChild(s,i):Li.EMPTY_NODE}c=l.equals(u)?t:gr(t,e.filter.updateChild(a.getNode(),r,u,s,h,o),a.isFullyInitialized(),e.filter.filtersNodes())}}return c}function Xr(e,t){return e.eventCache.isCompleteForChild(t)}function Zr(e,t,n){return n.foreach(((e,n)=>{t=t.updateChild(e,n)})),t}function es(e,t,n,i,r,s,o,a){if(t.serverCache.getNode().isEmpty()&&!t.serverCache.isFullyInitialized())return t;let c,l=t;c=Zn(n)?i:new Ir(null).setTree(n,i);const h=t.serverCache.getNode();return c.children.inorderTraversal(((n,i)=>{if(h.hasChild(n)){const c=Zr(0,t.serverCache.getNode().getImmediateChild(n),i);l=Jr(e,l,new zn(n),c,r,s,o,a)}})),c.children.inorderTraversal(((n,i)=>{const c=!t.serverCache.isCompleteForChild(n)&&null===i.value;if(!h.hasChild(n)&&!c){const c=Zr(0,t.serverCache.getNode().getImmediateChild(n),i);l=Jr(e,l,new zn(n),c,r,s,o,a)}})),l}class ts{constructor(e,t){this.query_=e,this.eventRegistrations_=[];const n=this.query_._queryParams,i=new zi(n.getIndex()),r=(s=n).loadsAllData()?new zi(s.getIndex()):s.hasLimit()?new $i(s):new Hi(s);var s;this.processor_=function(e){return{filter:e}}(r);const o=t.serverCache,a=t.eventCache,c=i.updateFullNode(Li.EMPTY_NODE,o.getNode(),null),l=r.updateFullNode(Li.EMPTY_NODE,a.getNode(),null),h=new pr(c,o.isFullyInitialized(),i.filtersNodes()),u=new pr(l,a.isFullyInitialized(),r.filtersNodes());this.viewCache_=mr(u,h),this.eventGenerator_=new fr(this.query_)}get query(){return this.query_}}function ns(e,t){const n=wr(e.viewCache_);return n&&(e.query._queryParams.loadsAllData()||!Zn(t)&&!n.getImmediateChild($n(t)).isEmpty())?n.getChild(t):null}function is(e){return 0===e.eventRegistrations_.length}function rs(e,t,i){const r=[];if(i){n(null==t,"A cancel should cancel all event registrations.");const s=e.query._path;e.eventRegistrations_.forEach((e=>{const t=e.createCancelEvent(i,s);t&&r.push(t)}))}if(t){let n=[];for(let i=0;i{const l=Xn(n,i);Xr(t,$n(l))&&(a=Qr(e,a,l,c,r,s,o))})),i.foreach(((i,c)=>{const l=Xn(n,i);Xr(t,$n(l))||(a=Qr(e,a,l,c,r,s,o))})),a}(e,t,i.path,i.children,s,o,a):(n(i.source.fromServer,"Unknown source."),l=i.source.tagged||t.serverCache.isFiltered(),c=es(e,t,i.path,i.children,s,o,l,a))}else if(r.type===ar.ACK_USER_WRITE){const i=r;c=i.revert?function(e,t,i,r,s,o){let a;if(null!=Vr(r,i))return t;{const c=new Gr(r,t,s),l=t.eventCache.getNode();let h;if(Zn(i)||".priority"===$n(i)){let i;if(t.serverCache.isFullyInitialized())i=qr(r,wr(t));else{const e=t.serverCache.getNode();n(e instanceof Li,"serverChildren would be complete if leaf node"),i=jr(r,e)}h=e.filter.updateFullNode(l,i,o)}else{const n=$n(i);let s=Br(r,n,t.serverCache);null==s&&t.serverCache.isCompleteForChild(n)&&(s=l.getImmediateChild(n)),h=null!=s?e.filter.updateChild(l,n,s,Gn(i),c,o):t.eventCache.getNode().hasChild(n)?e.filter.updateChild(l,n,Li.EMPTY_NODE,Gn(i),c,o):l,h.isEmpty()&&t.serverCache.isFullyInitialized()&&(a=qr(r,wr(t)),a.isLeafNode()&&(h=e.filter.updateFullNode(h,a,o)))}return a=t.serverCache.isFullyInitialized()||null!=Vr(r,Hn()),gr(t,h,a,e.filter.filtersNodes())}}(e,t,i.path,s,o,a):function(e,t,n,i,r,s,o){if(null!=Vr(r,n))return t;const a=t.serverCache.isFiltered(),c=t.serverCache;if(null!=i.value){if(Zn(n)&&c.isFullyInitialized()||c.isCompleteForPath(n))return Jr(e,t,n,c.getNode().getChild(n),r,s,a,o);if(Zn(n)){let i=new Ir(null);return c.getNode().forEachChild(fi,((e,t)=>{i=i.set(new zn(e),t)})),es(e,t,n,i,r,s,a,o)}return t}{let l=new Ir(null);return i.foreach(((e,t)=>{const i=Xn(n,e);c.isCompleteForPath(i)&&(l=l.set(e,c.getNode().getChild(i)))})),es(e,t,n,l,r,s,a,o)}}(e,t,i.path,i.affectedTree,s,o,a)}else{if(r.type!==ar.LISTEN_COMPLETE)throw i("Unknown operation type: "+r.type);c=function(e,t,n,i,r){const s=t.serverCache;return Yr(e,vr(t,s.getNode(),s.isFullyInitialized()||Zn(n),s.isFiltered()),n,i,Kr,r)}(e,t,r.path,s,a)}const h=a.getChanges();return function(e,t,n){const i=t.eventCache;if(i.isFullyInitialized()){const r=i.getNode().isLeafNode()||i.getNode().isEmpty(),s=yr(e);(n.length>0||!e.eventCache.isFullyInitialized()||r&&!i.getNode().equals(s)||!i.getNode().getPriority().equals(s.getPriority()))&&n.push(ji(yr(t)))}}(t,c,h),{viewCache:c,changes:h}}(e.processor_,o,t,r,s);var c,l;return c=e.processor_,l=a.viewCache,n(l.eventCache.getNode().isIndexed(c.filter.getIndex()),"Event snap not indexed"),n(l.serverCache.getNode().isIndexed(c.filter.getIndex()),"Server snap not indexed"),n(a.viewCache.serverCache.isFullyInitialized()||!o.serverCache.isFullyInitialized(),"Once a server snap is complete, it should never go back"),e.viewCache_=a.viewCache,os(e,a.changes,a.viewCache.eventCache.getNode(),null)}function os(e,t,n,i){const r=i?[i]:e.eventRegistrations_;return function(e,t,n,i){const r=[],s=[];return t.forEach((t=>{var n;"child_changed"===t.type&&e.index_.indexedValueChanged(t.oldSnap,t.snapshotNode)&&s.push((n=t.childName,{type:"child_moved",snapshotNode:t.snapshotNode,childName:n}))})),_r(e,r,"child_removed",t,i,n),_r(e,r,"child_added",t,i,n),_r(e,r,"child_moved",s,i,n),_r(e,r,"child_changed",t,i,n),_r(e,r,"value",t,i,n),r}(e.eventGenerator_,t,n,r)}let as,cs;class ls{constructor(){this.views=new Map}}function hs(e,t,i,r){const s=t.source.queryId;if(null!==s){const o=e.views.get(s);return n(null!=o,"SyncTree gave us an op for an invalid query."),ss(o,t,i,r)}{let n=[];for(const s of e.views.values())n=n.concat(ss(s,t,i,r));return n}}function us(e,t,n,i,r){const s=t._queryIdentifier,o=e.views.get(s);if(!o){let e=qr(n,r?i:null),s=!1;e?s=!0:i instanceof Li?(e=jr(n,i),s=!1):(e=Li.EMPTY_NODE,s=!1);const o=mr(new pr(e,s,!1),new pr(i,r,!1));return new ts(t,o)}return o}function ds(e){const t=[];for(const n of e.views.values())n.query._queryParams.loadsAllData()||t.push(n);return t}function ps(e,t){let n=null;for(const i of e.views.values())n=n||ns(i,t);return n}function fs(e,t){if(t._queryParams.loadsAllData())return gs(e);{const n=t._queryIdentifier;return e.views.get(n)}}function _s(e,t){return null!=fs(e,t)}function ms(e){return null!=gs(e)}function gs(e){for(const t of e.views.values())if(t.query._queryParams.loadsAllData())return t;return null}let vs=1;class ys{constructor(e){this.listenProvider_=e,this.syncPointTree_=new Ir(null),this.pendingWriteTree_={visibleWrites:Cr.empty(),allWrites:[],lastWriteId:-1},this.tagToQueryMap=new Map,this.queryToTagMap=new Map}}function ws(e,t,i,r,s){return function(e,t,i,r,s){n(r>e.lastWriteId,"Stacking an older write on top of newer ones"),void 0===s&&(s=!0),e.allWrites.push({path:t,snap:i,writeId:r,visible:s}),s&&(e.visibleWrites=Tr(e.visibleWrites,t,i)),e.lastWriteId=r}(e.pendingWriteTree_,t,i,r,s),s?Ss(e,new ur({fromUser:!0,fromServer:!1,queryId:null,tagged:!1},t,i)):[]}function bs(e,t,i=!1){const r=function(e,t){for(let n=0;ne.writeId===t));n(i>=0,"removeWrite called with nonexistent writeId.");const r=e.allWrites[i];e.allWrites.splice(i,1);let s=r.visible,o=!1,a=e.allWrites.length-1;for(;s&&a>=0;){const t=e.allWrites[a];t.visible&&(a>=i&&Lr(t,r.path)?s=!1:ii(r.path,t.path)&&(o=!0)),a--}return!!s&&(o?(function(e){e.visibleWrites=Fr(e.allWrites,Mr,Hn()),e.allWrites.length>0?e.lastWriteId=e.allWrites[e.allWrites.length-1].writeId:e.lastWriteId=-1}(e),!0):(r.snap?e.visibleWrites=Er(e.visibleWrites,r.path):dn(r.children,(t=>{e.visibleWrites=Er(e.visibleWrites,Xn(r.path,t))})),!0))}(e.pendingWriteTree_,t)){let t=new Ir(null);return null!=r.snap?t=t.set(Hn(),!0):dn(r.children,(e=>{t=t.set(new zn(e),!0)})),Ss(e,new lr(r.path,t,i))}return[]}function Is(e,t,n){return Ss(e,new ur({fromUser:!1,fromServer:!0,queryId:null,tagged:!1},t,n))}function Cs(e,t,i,r,s=!1){const o=t._path,a=e.syncPointTree_.get(o);let c=[];if(a&&("default"===t._queryIdentifier||_s(a,t))){const l=function(e,t,i,r){const s=t._queryIdentifier,o=[];let a=[];const c=ms(e);if("default"===s)for(const[t,n]of e.views.entries())a=a.concat(rs(n,i,r)),is(n)&&(e.views.delete(t),n.query._queryParams.loadsAllData()||o.push(n.query));else{const t=e.views.get(s);t&&(a=a.concat(rs(t,i,r)),is(t)&&(e.views.delete(s),t.query._queryParams.loadsAllData()||o.push(t.query)))}return c&&!ms(e)&&o.push(new(n(as,"Reference.ts has not been loaded"),as)(t._repo,t._path)),{removed:o,events:a}}(a,t,i,r);0===a.views.size&&(e.syncPointTree_=e.syncPointTree_.remove(o));const h=l.removed;if(c=l.events,!s){const n=-1!==h.findIndex((e=>e._queryParams.loadsAllData())),i=e.syncPointTree_.findOnPath(o,((e,t)=>ms(t)));if(n&&!i){const t=e.syncPointTree_.subtree(o);if(!t.isEmpty()){const n=function(e){return e.fold(((e,t,n)=>{if(t&&ms(t))return[gs(t)];{let e=[];return t&&(e=ds(t)),dn(n,((t,n)=>{e=e.concat(n)})),e}}))}(t);for(let t=0;t0&&!r)if(n){const n=null;e.listenProvider_.stopListening(Ms(t),n)}else h.forEach((t=>{const n=e.queryToTagMap.get(Os(t));e.listenProvider_.stopListening(Ms(t),n)}))}!function(e,t){for(let n=0;n{const n=ei(e,s);o=o||ps(t,n),a=a||ms(t)}));let c,l=e.syncPointTree_.get(s);l?(a=a||ms(l),o=o||ps(l,Hn())):(l=new ls,e.syncPointTree_=e.syncPointTree_.set(s,l)),null!=o?c=!0:(c=!1,o=Li.EMPTY_NODE,e.syncPointTree_.subtree(s).foreachChild(((e,t)=>{const n=ps(t,Hn());n&&(o=o.updateImmediateChild(e,n))})));const h=_s(l,t);if(!h&&!t._queryParams.loadsAllData()){const i=Os(t);n(!e.queryToTagMap.has(i),"View does not exist, but we have a tag");const r=vs++;e.queryToTagMap.set(i,r),e.tagToQueryMap.set(r,i)}let u=function(e,t,n,i,r,s){const o=us(e,t,i,r,s);return e.views.has(t._queryIdentifier)||e.views.set(t._queryIdentifier,o),function(e,t){e.eventRegistrations_.push(t)}(o,n),function(e,t){const n=e.viewCache_.eventCache,i=[];return n.getNode().isLeafNode()||n.getNode().forEachChild(Si,((e,t)=>{i.push(Wi(e,t))})),n.isFullyInitialized()&&i.push(ji(n.getNode())),os(e,i,n.getNode(),t)}(o,n)}(l,t,i,xr(e.pendingWriteTree_,s),o,c);if(!h&&!a&&!r){const i=fs(l,t);u=u.concat(function(e,t,i){const r=t._path,s=As(e,t),o=Ns(e,i),a=e.listenProvider_.startListening(Ms(t),s,o.hashFn,o.onComplete),c=e.syncPointTree_.subtree(r);if(s)n(!ms(c.value),"If we're adding a query, it shouldn't be shadowed");else{const t=c.fold(((e,t,n)=>{if(!Zn(e)&&t&&ms(t))return[gs(t).query];{let e=[];return t&&(e=e.concat(ds(t).map((e=>e.query)))),dn(n,((t,n)=>{e=e.concat(n)})),e}}));for(let n=0;n{const i=ps(n,ei(e,t));if(i)return i}));return Ur(i,t,r,n,!0)}function Ss(e,t){return Ps(t,e.syncPointTree_,null,xr(e.pendingWriteTree_,Hn()))}function Ps(e,t,n,i){if(Zn(e.path))return Rs(e,t,n,i);{const r=t.get(Hn());null==n&&null!=r&&(n=ps(r,Hn()));let s=[];const o=$n(e.path),a=e.operationForChild(o),c=t.children.get(o);if(c&&a){const e=n?n.getImmediateChild(o):null,t=zr(i,o);s=s.concat(Ps(a,c,e,t))}return r&&(s=s.concat(hs(r,e,i,n))),s}}function Rs(e,t,n,i){const r=t.get(Hn());null==n&&null!=r&&(n=ps(r,Hn()));let s=[];return t.children.inorderTraversal(((t,r)=>{const o=n?n.getImmediateChild(t):null,a=zr(i,t),c=e.operationForChild(t);c&&(s=s.concat(Rs(c,r,o,a)))})),r&&(s=s.concat(hs(r,e,i,n))),s}function Ns(e,t){const n=t.query,i=As(e,n);return{hashFn:()=>{const e=function(e){return e.viewCache_.serverCache.getNode()}(t)||Li.EMPTY_NODE;return e.hash()},onComplete:t=>{if("ok"===t)return i?function(e,t,n){const i=Ds(e,n);if(i){const n=xs(i),r=n.path,s=n.queryId,o=ei(r,t);return Ls(e,r,new hr(cr(s),o))}return[]}(e,n._path,i):function(e,t){return Ss(e,new hr({fromUser:!1,fromServer:!0,queryId:null,tagged:!1},t))}(e,n._path);{const i=function(e,t){let n="Unknown Error";"too_big"===e?n="The data requested exceeds the maximum size that can be accessed with a single request.":"permission_denied"===e?n="Client doesn't have permission to access the desired data.":"unavailable"===e&&(n="The service is unavailable");const i=new Error(e+" at "+t._path.toString()+": "+n);return i.code=e.toUpperCase(),i}(t,n);return Cs(e,n,null,i)}}}}function As(e,t){const n=Os(t);return e.queryToTagMap.get(n)}function Os(e){return e._path.toString()+"$"+e._queryIdentifier}function Ds(e,t){return e.tagToQueryMap.get(t)}function xs(e){const t=e.indexOf("$");return n(-1!==t&&t{const r=zs(i,t.getImmediateChild(e),n);r!==i&&(s=s.updateImmediateChild(e,r))})),s}}class Hs{constructor(e="",t=null,n={children:{},childCount:0}){this.name=e,this.parent=t,this.node=n}}function $s(e,t){let n=t instanceof zn?t:new zn(t),i=e,r=$n(n);for(;null!==r;){const e=N(i.node.children,r)||{children:{},childCount:0};i=new Hs(r,i,e),n=Gn(n),r=$n(n)}return i}function Ks(e){return e.node.value}function Gs(e,t){e.node.value=t,Zs(e)}function Ys(e){return e.node.childCount>0}function Js(e,t){dn(e.node.children,((n,i)=>{t(new Hs(n,e,i))}))}function Qs(e,t,n,i){n&&!i&&t(e),Js(e,(e=>{Qs(e,t,!0,i)})),n&&i&&t(e)}function Xs(e){return new zn(null===e.parent?e.name:Xs(e.parent)+"/"+e.name)}function Zs(e){null!==e.parent&&function(e,t,n){const i=function(e){return void 0===Ks(e)&&!Ys(e)}(n),r=R(e.node.children,t);i&&r?(delete e.node.children[t],e.node.childCount--,Zs(e)):i||r||(e.node.children[t]=n.node,e.node.childCount++,Zs(e))}(e.parent,e.name,e)}const eo=/[\[\].#$\/\u0000-\u001F\u007F]/,to=/[\[\].#$\u0000-\u001F\u007F]/,no=10485760,io=function(e){return"string"==typeof e&&0!==e.length&&!eo.test(e)},ro=function(e){return"string"==typeof e&&0!==e.length&&!to.test(e)},so=function(e){return null===e||"string"==typeof e||"number"==typeof e&&!rn(e)||e&&"object"==typeof e&&R(e,".sv")},oo=function(e,t,n,i){i&&void 0===t||ao(B(e,"value"),t,n)},ao=function(e,t,n){const i=n instanceof zn?new ri(n,e):n;if(void 0===t)throw new Error(e+"contains undefined "+oi(i));if("function"==typeof t)throw new Error(e+"contains a function "+oi(i)+" with contents = "+t.toString());if(rn(t))throw new Error(e+"contains "+t.toString()+" "+oi(i));if("string"==typeof t&&t.length>no/3&&$(t)>no)throw new Error(e+"contains a string greater than "+no+" utf8 bytes "+oi(i)+" ('"+t.substring(0,50)+"...')");if(t&&"object"==typeof t){let n=!1,r=!1;if(dn(t,((t,s)=>{if(".value"===t)n=!0;else if(".priority"!==t&&".sv"!==t&&(r=!0,!io(t)))throw new Error(e+" contains an invalid key ("+t+") "+oi(i)+'. Keys must be non-empty strings and can\'t contain ".", "#", "$", "/", "[", or "]"');!function(e,t){e.parts_.length>0&&(e.byteLength_+=1),e.parts_.push(t),e.byteLength_+=$(t),si(e)}(i,t),ao(e,s,i),function(e){const t=e.parts_.pop();e.byteLength_-=$(t),e.parts_.length>0&&(e.byteLength_-=1)}(i)})),n&&r)throw new Error(e+' contains ".value" child '+oi(i)+" in addition to actual children.")}},co=function(e,t,n,i){if(i&&void 0===t)return;const r=B(e,"values");if(!t||"object"!=typeof t||Array.isArray(t))throw new Error(r+" must be an object containing the children to replace.");const s=[];dn(t,((e,t)=>{const i=new zn(e);if(ao(r,t,Xn(n,i)),".priority"===Yn(i)&&!so(t))throw new Error(r+"contains an invalid value for '"+i.toString()+"', which must be a valid Firebase priority (a string, finite number, server value, or null).");s.push(i)})),function(e,t){let n,i;for(n=0;nni(e,t)))}function vo(e,t,n){mo(e,n),yo(e,(e=>ii(e,t)||ii(t,e)))}function yo(e,t){e.recursionDepth_++;let n=!0;for(let i=0;i=0)e.server_=new Zi(e.repoInfo_,((t,n,i,r)=>{Eo(e,t,n,i,r)}),e.authTokenProvider_,e.appCheckProvider_),setTimeout((()=>So(e,!0)),0);else{if(null!=n){if("object"!=typeof n)throw new Error("Only objects are supported for option databaseAuthVariableOverride");try{S(n)}catch(e){throw new Error("Invalid authOverride provided: "+e)}}e.persistentConnection_=new li(e.repoInfo_,t,((t,n,i,r)=>{Eo(e,t,n,i,r)}),(t=>{So(e,t)}),(t=>{!function(e,t){dn(t,((t,n)=>{Po(e,t,n)}))}(e,t)}),e.authTokenProvider_,e.appCheckProvider_,n),e.server_=e.persistentConnection_}e.authTokenProvider_.addTokenChangeListener((t=>{e.server_.refreshAuthToken(t)})),e.appCheckProvider_.addTokenChangeListener((t=>{e.server_.refreshAppCheckToken(t.token)})),e.statsReporter_=function(t){const n=t.toString();return An[n]||(An[n]=new or(e.stats_,e.server_)),An[n]}(e.repoInfo_),e.infoData_=new er,e.infoSyncTree_=new ys({startListening:(t,n,i,r)=>{let s=[];const o=e.infoData_.getNode(t._path);return o.isEmpty()||(s=Is(e.infoSyncTree_,t._path,o),setTimeout((()=>{r("ok")}),0)),s},stopListening:()=>{}}),Po(e,"connected",!1),e.serverSyncTree_=new ys({startListening:(t,n,i,r)=>(e.server_.listen(t,i,n,((n,i)=>{const s=r(n,i);vo(e.eventQueue_,t._path,s)})),[]),stopListening:(t,n)=>{e.server_.unlisten(t,n)}})}function To(e){const t=e.infoData_.getNode(new zn(".info/serverTimeOffset")).val()||0;return(new Date).getTime()+t}function ko(e){return(t=(t={timestamp:To(e)})||{}).timestamp=t.timestamp||(new Date).getTime(),t;var t}function Eo(e,t,n,i,r){e.dataUpdateCount++;const s=new zn(t);n=e.interceptServerDataCallback_?e.interceptServerDataCallback_(t,n):n;let o=[];if(r)if(i){const t=O(n,(e=>Fi(e)));o=function(e,t,n,i){const r=Ds(e,i);if(r){const i=xs(r),s=i.path,o=i.queryId,a=ei(s,t),c=Ir.fromObject(n);return Ls(e,s,new dr(cr(o),a,c))}return[]}(e.serverSyncTree_,s,t,r)}else{const t=Fi(n);o=Ts(e.serverSyncTree_,s,t,r)}else if(i){const t=O(n,(e=>Fi(e)));o=function(e,t,n){const i=Ir.fromObject(n);return Ss(e,new dr({fromUser:!1,fromServer:!0,queryId:null,tagged:!1},t,i))}(e.serverSyncTree_,s,t)}else{const t=Fi(n);o=Is(e.serverSyncTree_,s,t)}let a=s;o.length>0&&(a=qo(e,s)),vo(e.eventQueue_,a,o)}function So(e,t){Po(e,"connected",t),!1===t&&function(e){Lo(e,"onDisconnectEvents");const t=ko(e),n=tr();rr(e.onDisconnect_,Hn(),((i,r)=>{const s=Vs(i,r,e.serverSyncTree_,t);nr(n,i,s)}));let i=[];rr(n,Hn(),((t,n)=>{i=i.concat(Is(e.serverSyncTree_,t,n));const r=zo(e,t);qo(e,r)})),e.onDisconnect_=tr(),vo(e.eventQueue_,Hn(),i)}(e)}function Po(e,t,n){const i=new zn("/.info/"+t),r=Fi(n);e.infoData_.updateSnapshot(i,r);const s=Is(e.infoSyncTree_,i,r);vo(e.eventQueue_,i,s)}function Ro(e){return e.nextWriteId_++}function No(e,t,n,i,r){Lo(e,"set",{path:t.toString(),value:n,priority:i});const s=ko(e),o=Fi(n,i),a=Es(e.serverSyncTree_,t),c=Bs(o,a,s),l=Ro(e),h=ws(e.serverSyncTree_,t,c,l,!0);mo(e.eventQueue_,h),e.server_.put(t.toString(),o.val(!0),((n,i)=>{const s="ok"===n;s||nn("set at "+t+" failed: "+n);const o=bs(e.serverSyncTree_,l,!s);vo(e.eventQueue_,t,o),Mo(0,r,n,i)}));const u=zo(e,t);qo(e,u),vo(e.eventQueue_,u,[])}function Ao(e,t,n){e.server_.onDisconnectCancel(t.toString(),((i,r)=>{"ok"===i&&ir(e.onDisconnect_,t),Mo(0,n,i,r)}))}function Oo(e,t,n,i){const r=Fi(n);e.server_.onDisconnectPut(t.toString(),r.val(!0),((n,s)=>{"ok"===n&&nr(e.onDisconnect_,t,r),Mo(0,i,n,s)}))}function Do(e,t,n){let i;i=".info"===$n(t._path)?Cs(e.infoSyncTree_,t,n):Cs(e.serverSyncTree_,t,n),go(e.eventQueue_,t._path,i)}function xo(e){e.persistentConnection_&&e.persistentConnection_.interrupt(bo)}function Lo(e,...t){let n="";e.persistentConnection_&&(n=e.persistentConnection_.id+":"),Xt(n,...t)}function Mo(e,t,n,i){t&&gn((()=>{if("ok"===n)t(null);else{const e=(n||"error").toUpperCase();let r=e;i&&(r+=": "+i);const s=new Error(r);s.code=e,t(s)}}))}function Fo(e,t,n){return Es(e.serverSyncTree_,t,n)||Li.EMPTY_NODE}function Uo(e,t=e.transactionQueueTree_){if(t||Bo(e,t),Ks(t)){const i=Wo(e,t);n(i.length>0,"Sending zero length transaction queue"),i.every((e=>0===e.status))&&function(e,t,i){const r=i.map((e=>e.currentWriteId)),s=Fo(e,t,r);let o=s;const a=s.hash();for(let e=0;e{Lo(e,"transaction put response",{path:l.toString(),status:n});let r=[];if("ok"===n){const n=[];for(let t=0;ti[t].onComplete(null,!0,i[t].currentOutputSnapshotResolved))),i[t].unwatcher();Bo(e,$s(e.transactionQueueTree_,t)),Uo(e,e.transactionQueueTree_),vo(e.eventQueue_,t,r);for(let e=0;e{Uo(e,t)}))}function qo(e,t){const i=jo(e,t),r=Xs(i);return function(e,t,i){if(0===t.length)return;const r=[];let s=[];const o=t.filter((e=>0===e.status)).map((e=>e.currentWriteId));for(let c=0;c=25)d=!0,u="maxretry",s=s.concat(bs(e.serverSyncTree_,l.currentWriteId,!0));else{const n=Fo(e,l.path,o);l.currentInputSnapshot=n;const i=t[c].update(n.val());if(void 0!==i){ao("transaction failed: Data returned ",i,l.path);let t=Fi(i);"object"==typeof i&&null!=i&&R(i,".priority")||(t=t.updatePriority(n.getPriority()));const r=l.currentWriteId,a=ko(e),c=Bs(t,n,a);l.currentOutputSnapshotRaw=t,l.currentOutputSnapshotResolved=c,l.currentWriteId=Ro(e),o.splice(o.indexOf(r),1),s=s.concat(ws(e.serverSyncTree_,l.path,c,l.currentWriteId,l.applyLocally)),s=s.concat(bs(e.serverSyncTree_,r,!0))}else d=!0,u="nodata",s=s.concat(bs(e.serverSyncTree_,l.currentWriteId,!0))}vo(e.eventQueue_,i,s),s=[],d&&(t[c].status=2,a=t[c].unwatcher,setTimeout(a,Math.floor(0)),t[c].onComplete&&("nodata"===u?r.push((()=>t[c].onComplete(null,!1,t[c].currentInputSnapshot))):r.push((()=>t[c].onComplete(new Error(u),!1,null)))))}var a;Bo(e,e.transactionQueueTree_);for(let e=0;ee.order-t.order)),n}function Vo(e,t,n){const i=Ks(t);if(i)for(let e=0;e{Vo(e,t,n)}))}function Bo(e,t){const n=Ks(t);if(n){let e=0;for(let t=0;t0?n:void 0)}Js(t,(t=>{Bo(e,t)}))}function zo(e,t){const n=Xs(jo(e,t)),i=$s(e.transactionQueueTree_,t);return function(e,t){let n=e.parent;for(;null!==n;){if(t(n))return!0;n=n.parent}}(i,(t=>{Ho(e,t)})),Ho(e,i),Qs(i,(t=>{Ho(e,t)})),n}function Ho(e,t){const i=Ks(t);if(i){const r=[];let s=[],o=-1;for(let t=0;t.firebaseio.com instead"),i&&"undefined"!==i||"localhost"===n.domain||tn("Cannot parse Firebase url. Please use https://.firebaseio.com"),n.secure||"undefined"!=typeof window&&window.location&&window.location.protocol&&-1!==window.location.protocol.indexOf("https:")&&nn("Insecure Firebase access from a secure page. Please use https in calls to new Firebase().");const r="ws"===n.scheme||"wss"===n.scheme;return{repoInfo:new Sn(n.host,n.secure,i,r,t,"",i!==n.subdomain),path:new zn(n.pathString)}},Ko=function(e){let t="",n="",i="",r="",s="",o=!0,a="https",c=443;if("string"==typeof e){let l=e.indexOf("//");l>=0&&(a=e.substring(0,l-1),e=e.substring(l+2));let h=e.indexOf("/");-1===h&&(h=e.length);let u=e.indexOf("?");-1===u&&(u=e.length),t=e.substring(0,Math.min(h,u)),h0){let i=n[e];try{i=decodeURIComponent(i.replace(/\+/g," "))}catch(e){}t+="/"+i}return t}(e.substring(h,u)));const d=function(e){const t={};"?"===e.charAt(0)&&(e=e.substring(1));for(const n of e.split("&")){if(0===n.length)continue;const i=n.split("=");2===i.length?t[decodeURIComponent(i[0])]=decodeURIComponent(i[1]):nn(`Invalid query segment '${n}' in query '${e}'`)}return t}(e.substring(Math.min(e.length,u)));l=t.indexOf(":"),l>=0?(o="https"===a||"wss"===a,c=parseInt(t.substring(l+1),10)):l=t.length;const p=t.slice(0,l);if("localhost"===p.toLowerCase())n="localhost";else if(p.split(".").length<=2)n=p;else{const e=t.indexOf(".");i=t.substring(0,e).toLowerCase(),n=t.substring(e+1),s=i}"ns"in d&&(s=d.ns)}return{host:t,port:c,domain:n,subdomain:i,secure:o,scheme:a,pathString:r,namespace:s}},Go="-0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz",Yo=function(){let e=0;const t=[];return function(i){const r=i===e;let s;e=i;const o=new Array(8);for(s=7;s>=0;s--)o[s]=Go.charAt(i%64),i=Math.floor(i/64);n(0===i,"Cannot push at time == 0");let a=o.join("");if(r){for(s=11;s>=0&&63===t[s];s--)t[s]=0;t[s]++}else for(s=0;s<12;s++)t[s]=Math.floor(64*Math.random());for(s=0;s<12;s++)a+=Go.charAt(t[s]);return n(20===a.length,"nextPushId: Length should be 20."),a}}();class Jo{constructor(e,t,n,i){this.eventType=e,this.eventRegistration=t,this.snapshot=n,this.prevName=i}getPath(){const e=this.snapshot.ref;return"value"===this.eventType?e._path:e.parent._path}getEventType(){return this.eventType}getEventRunner(){return this.eventRegistration.getEventRunner(this)}toString(){return this.getPath().toString()+":"+this.eventType+":"+S(this.snapshot.exportVal())}}class Qo{constructor(e,t,n){this.eventRegistration=e,this.error=t,this.path=n}getPath(){return this.path}getEventType(){return"cancel"}getEventRunner(){return this.eventRegistration.getEventRunner(this)}toString(){return this.path.toString()+":cancel"}}class Xo{constructor(e,t){this.snapshotCallback=e,this.cancelCallback=t}onValue(e,t){this.snapshotCallback.call(null,e,t)}onCancel(e){return n(this.hasCancelCallback,"Raising a cancel event on a listener with no cancel callback"),this.cancelCallback.call(null,e)}get hasCancelCallback(){return!!this.cancelCallback}matches(e){return this.snapshotCallback===e.snapshotCallback||void 0!==this.snapshotCallback.userCallback&&this.snapshotCallback.userCallback===e.snapshotCallback.userCallback&&this.snapshotCallback.context===e.snapshotCallback.context}}class Zo{constructor(e,t){this._repo=e,this._path=t}cancel(){const e=new f;return Ao(this._repo,this._path,e.wrapCallback((()=>{}))),e.promise}remove(){po("OnDisconnect.remove",this._path);const e=new f;return Oo(this._repo,this._path,null,e.wrapCallback((()=>{}))),e.promise}set(e){po("OnDisconnect.set",this._path),oo("OnDisconnect.set",e,this._path,!1);const t=new f;return Oo(this._repo,this._path,e,t.wrapCallback((()=>{}))),t.promise}setWithPriority(e,t){po("OnDisconnect.setWithPriority",this._path),oo("OnDisconnect.setWithPriority",e,this._path,!1),lo("OnDisconnect.setWithPriority",t,!1);const n=new f;return function(e,t,n,i,r){const s=Fi(n,i);e.server_.onDisconnectPut(t.toString(),s.val(!0),((n,i)=>{"ok"===n&&nr(e.onDisconnect_,t,s),Mo(0,r,n,i)}))}(this._repo,this._path,e,t,n.wrapCallback((()=>{}))),n.promise}update(e){po("OnDisconnect.update",this._path),co("OnDisconnect.update",e,this._path,!1);const t=new f;return function(e,t,n,i){if(A(n))return Xt("onDisconnect().update() called with empty data. Don't do anything."),void Mo(0,i,"ok",void 0);e.server_.onDisconnectMerge(t.toString(),n,((r,s)=>{"ok"===r&&dn(n,((n,i)=>{const r=Fi(i);nr(e.onDisconnect_,Xn(t,n),r)})),Mo(0,i,r,s)}))}(this._repo,this._path,e,t.wrapCallback((()=>{}))),t.promise}}class ea{constructor(e,t,n,i){this._repo=e,this._path=t,this._queryParams=n,this._orderByCalled=i}get key(){return Zn(this._path)?null:Yn(this._path)}get ref(){return new ra(this._repo,this._path)}get _queryIdentifier(){const e=Xi(this._queryParams),t=hn(e);return"{}"===t?"default":t}get _queryObject(){return Xi(this._queryParams)}isEqual(e){if(!((e=K(e))instanceof ea))return!1;const t=this._repo===e._repo,n=ni(this._path,e._path),i=this._queryIdentifier===e._queryIdentifier;return t&&n&&i}toJSON(){return this.toString()}toString(){return this._repo.toString()+function(e){let t="";for(let n=e.pieceNum_;ne(new sa(n,ca(this.ref,t),Si))))}hasChild(e){const t=new zn(e);return!this._node.getChild(t).isEmpty()}hasChildren(){return!this._node.isLeafNode()&&!this._node.isEmpty()}toJSON(){return this.exportVal()}val(){return this._node.val()}}function oa(e,t){return(e=K(e))._checkNotDeleted("ref"),void 0!==t?ca(e._root,t):e._root}function aa(e,t){(e=K(e))._checkNotDeleted("refFromURL");const n=$o(t,e._repo.repoInfo_.nodeAdmin);fo("refFromURL",n);const i=n.repoInfo;return e._repo.repoInfo_.isCustomHost()||i.host===e._repo.repoInfo_.host||tn("refFromURL: Host name does not match the current database: (found "+i.host+" but expected "+e._repo.repoInfo_.host+")"),oa(e,n.path.toString())}function ca(e,t){var n;return null===$n((e=K(e))._path)?((n=t)&&(n=n.replace(/^\/*\.info(\/|$)/,"/")),uo("child","path",n,false)):uo("child","path",t,!1),new ra(e._repo,Xn(e._path,t))}function la(e,t){e=K(e),po("set",e._path),oo("set",t,e._path,!1);const n=new f;return No(e._repo,e._path,t,null,n.wrapCallback((()=>{}))),n.promise}function ha(e,t){co("update",t,e._path,!1);const i=new f;return function(e,t,i,r){Lo(e,"update",{path:t.toString(),value:i});let s=!0;const o=ko(e),a={};if(dn(i,((n,i)=>{s=!1,a[n]=Vs(Xn(t,n),Fi(i),e.serverSyncTree_,o)})),s)Xt("update() called with empty data. Don't do anything."),Mo(0,r,"ok",void 0);else{const s=Ro(e),o=function(e,t,i,r){!function(e,t,i,r){n(r>e.lastWriteId,"Stacking an older merge on top of newer ones"),e.allWrites.push({path:t,children:i,writeId:r,visible:!0}),e.visibleWrites=kr(e.visibleWrites,t,i),e.lastWriteId=r}(e.pendingWriteTree_,t,i,r);const s=Ir.fromObject(i);return Ss(e,new dr({fromUser:!0,fromServer:!1,queryId:null,tagged:!1},t,s))}(e.serverSyncTree_,t,a,s);mo(e.eventQueue_,o),e.server_.merge(t.toString(),i,((n,i)=>{const o="ok"===n;o||nn("update at "+t+" failed: "+n);const a=bs(e.serverSyncTree_,s,!o),c=a.length>0?qo(e,t):t;vo(e.eventQueue_,c,a),Mo(0,r,n,i)})),dn(i,(n=>{const i=zo(e,Xn(t,n));qo(e,i)})),vo(e.eventQueue_,t,[])}}(e._repo,e._path,t,i.wrapCallback((()=>{}))),i.promise}function ua(e){e=K(e);const t=new Xo((()=>{})),n=new da(t);return function(e,t,n){const i=function(e,t){const n=t._path;let i=null;e.syncPointTree_.foreachOnPath(n,((e,t)=>{const r=ei(e,n);i=i||ps(t,r)}));let r=e.syncPointTree_.get(n);r?i=i||ps(r,Hn()):(r=new ls,e.syncPointTree_=e.syncPointTree_.set(n,r));const s=null!=i,o=s?new pr(i,!0,!1):null;return yr(us(r,t,xr(e.pendingWriteTree_,t._path),s?o.getNode():Li.EMPTY_NODE,s).viewCache_)}(e.serverSyncTree_,t);return null!=i?Promise.resolve(i):e.server_.get(t).then((i=>{const r=Fi(i).withIndex(t._queryParams.getIndex());let s;if(ks(e.serverSyncTree_,t,n,!0),t._queryParams.loadsAllData())s=Is(e.serverSyncTree_,t._path,r);else{const n=As(e.serverSyncTree_,t);s=Ts(e.serverSyncTree_,t._path,r,n)}return vo(e.eventQueue_,t._path,s),Cs(e.serverSyncTree_,t,n,null,!0),r}),(n=>(Lo(e,"get for query "+S(t)+" failed: "+n),Promise.reject(new Error(n)))))}(e._repo,e,n).then((t=>new sa(t,new ra(e._repo,e._path),e._queryParams.getIndex())))}class da{constructor(e){this.callbackContext=e}respondsTo(e){return"value"===e}createEvent(e,t){const n=t._queryParams.getIndex();return new Jo("value",this,new sa(e.snapshotNode,new ra(t._repo,t._path),n))}getEventRunner(e){return"cancel"===e.getEventType()?()=>this.callbackContext.onCancel(e.error):()=>this.callbackContext.onValue(e.snapshot,null)}createCancelEvent(e,t){return this.callbackContext.hasCancelCallback?new Qo(this,e,t):null}matches(e){return e instanceof da&&(!e.callbackContext||!this.callbackContext||e.callbackContext.matches(this.callbackContext))}hasAnyCallback(){return null!==this.callbackContext}}class pa{constructor(e,t){this.eventType=e,this.callbackContext=t}respondsTo(e){let t="children_added"===e?"child_added":e;return t="children_removed"===t?"child_removed":t,this.eventType===t}createCancelEvent(e,t){return this.callbackContext.hasCancelCallback?new Qo(this,e,t):null}createEvent(e,t){n(null!=e.childName,"Child events should have a childName.");const i=ca(new ra(t._repo,t._path),e.childName),r=t._queryParams.getIndex();return new Jo(e.type,this,new sa(e.snapshotNode,i,r),e.prevName)}getEventRunner(e){return"cancel"===e.getEventType()?()=>this.callbackContext.onCancel(e.error):()=>this.callbackContext.onValue(e.snapshot,e.prevName)}matches(e){return e instanceof pa&&this.eventType===e.eventType&&(!this.callbackContext||!e.callbackContext||this.callbackContext.matches(e.callbackContext))}hasAnyCallback(){return!!this.callbackContext}}function fa(e,t,n,i,r){let s;if("object"==typeof i&&(s=void 0,r=i),"function"==typeof i&&(s=i),r&&r.onlyOnce){const t=n,i=(n,i)=>{Do(e._repo,e,a),t(n,i)};i.userCallback=n.userCallback,i.context=n.context,n=i}const o=new Xo(n,s||void 0),a="value"===t?new da(o):new pa(t,o);return function(e,t,n){let i;i=".info"===$n(t._path)?ks(e.infoSyncTree_,t,n):ks(e.serverSyncTree_,t,n),go(e.eventQueue_,t._path,i)}(e._repo,e,a),()=>Do(e._repo,e,a)}function _a(e,t,n,i){return fa(e,"value",t,n,i)}function ma(e,t,n,i){return fa(e,"child_added",t,n,i)}function ga(e,t,n,i){return fa(e,"child_changed",t,n,i)}function va(e,t,n,i){return fa(e,"child_moved",t,n,i)}function ya(e,t,n,i){return fa(e,"child_removed",t,n,i)}function wa(e,t,n){let i=null;const r=n?new Xo(n):null;"value"===t?i=new da(r):t&&(i=new pa(t,r)),Do(e._repo,e,i)}class ba{}class Ia extends ba{constructor(e,t){super(),this._value=e,this._key=t,this.type="endAt"}_apply(e){oo("endAt",this._value,e._path,!0);const t=Yi(e._queryParams,this._value,this._key);if(ia(t),na(t),e._queryParams.hasEnd())throw new Error("endAt: Starting point was already set (by another call to endAt, endBefore or equalTo).");return new ea(e._repo,e._path,t,e._orderByCalled)}}class Ca extends ba{constructor(e,t){super(),this._value=e,this._key=t,this.type="endBefore"}_apply(e){oo("endBefore",this._value,e._path,!1);const t=function(e,t,n){let i;return i=e.index_===fi||n?Yi(e,t,n):Yi(e,t,sn),i.endBeforeSet_=!0,i}(e._queryParams,this._value,this._key);if(ia(t),na(t),e._queryParams.hasEnd())throw new Error("endBefore: Starting point was already set (by another call to endAt, endBefore or equalTo).");return new ea(e._repo,e._path,t,e._orderByCalled)}}class Ta extends ba{constructor(e,t){super(),this._value=e,this._key=t,this.type="startAt"}_apply(e){oo("startAt",this._value,e._path,!0);const t=Gi(e._queryParams,this._value,this._key);if(ia(t),na(t),e._queryParams.hasStart())throw new Error("startAt: Starting point was already set (by another call to startAt, startBefore or equalTo).");return new ea(e._repo,e._path,t,e._orderByCalled)}}class ka extends ba{constructor(e,t){super(),this._value=e,this._key=t,this.type="startAfter"}_apply(e){oo("startAfter",this._value,e._path,!1);const t=function(e,t,n){let i;return i=e.index_===fi||n?Gi(e,t,n):Gi(e,t,on),i.startAfterSet_=!0,i}(e._queryParams,this._value,this._key);if(ia(t),na(t),e._queryParams.hasStart())throw new Error("startAfter: Starting point was already set (by another call to startAt, startAfter, or equalTo).");return new ea(e._repo,e._path,t,e._orderByCalled)}}class Ea extends ba{constructor(e){super(),this._limit=e,this.type="limitToFirst"}_apply(e){if(e._queryParams.hasLimit())throw new Error("limitToFirst: Limit was already set (by another call to limitToFirst or limitToLast).");return new ea(e._repo,e._path,function(e,t){const n=e.copy();return n.limitSet_=!0,n.limit_=t,n.viewFrom_="l",n}(e._queryParams,this._limit),e._orderByCalled)}}class Sa extends ba{constructor(e){super(),this._limit=e,this.type="limitToLast"}_apply(e){if(e._queryParams.hasLimit())throw new Error("limitToLast: Limit was already set (by another call to limitToFirst or limitToLast).");return new ea(e._repo,e._path,function(e,t){const n=e.copy();return n.limitSet_=!0,n.limit_=t,n.viewFrom_="r",n}(e._queryParams,this._limit),e._orderByCalled)}}class Pa extends ba{constructor(e){super(),this._path=e,this.type="orderByChild"}_apply(e){ta(e,"orderByChild");const t=new zn(this._path);if(Zn(t))throw new Error("orderByChild: cannot pass in empty path. Use orderByValue() instead.");const n=new Ui(t),i=Ji(e._queryParams,n);return na(i),new ea(e._repo,e._path,i,!0)}}class Ra extends ba{constructor(){super(...arguments),this.type="orderByKey"}_apply(e){ta(e,"orderByKey");const t=Ji(e._queryParams,fi);return na(t),new ea(e._repo,e._path,t,!0)}}class Na extends ba{constructor(){super(...arguments),this.type="orderByPriority"}_apply(e){ta(e,"orderByPriority");const t=Ji(e._queryParams,Si);return na(t),new ea(e._repo,e._path,t,!0)}}class Aa extends ba{constructor(){super(...arguments),this.type="orderByValue"}_apply(e){ta(e,"orderByValue");const t=Ji(e._queryParams,qi);return na(t),new ea(e._repo,e._path,t,!0)}}class Oa extends ba{constructor(e,t){super(),this._value=e,this._key=t,this.type="equalTo"}_apply(e){if(oo("equalTo",this._value,e._path,!1),e._queryParams.hasStart())throw new Error("equalTo: Starting point was already set (by another call to startAt/startAfter or equalTo).");if(e._queryParams.hasEnd())throw new Error("equalTo: Ending point was already set (by another call to endAt/endBefore or equalTo).");return new Ia(this._value,this._key)._apply(new Ta(this._value,this._key)._apply(e))}}function Da(e,...t){let n=K(e);for(const e of t)n=e._apply(n);return n}!function(e){n(!as,"__referenceConstructor has already been defined"),as=e}(ra),function(e){n(!cs,"__referenceConstructor has already been defined"),cs=e}(ra);const xa={};function La(e,t,n,i,r){let s=i||e.options.databaseURL;void 0===s&&(e.options.projectId||tn("Can't determine Firebase Database URL. Be sure to include a Project ID when calling firebase.initializeApp()."),Xt("Using default host for project ",e.options.projectId),s=`${e.options.projectId}-default-rtdb.firebaseio.com`);let o,a,c=$o(s,r),l=c.repoInfo;"undefined"!=typeof process&&process.env&&(a=process.env.FIREBASE_DATABASE_EMULATOR_HOST),a?(o=!0,s=`http://${a}?ns=${l.namespace}`,c=$o(s,r),l=c.repoInfo):o=!c.repoInfo.secure;const h=r&&o?new bn(bn.OWNER):new wn(e.name,e.options,t);fo("Invalid Firebase Database URL",c),Zn(c.path)||tn("Database URL must point to the root of a Firebase Database (not including a child path).");const u=function(e,t,n,i){let r=xa[t.name];r||(r={},xa[t.name]=r);let s=r[e.toURLString()];return s&&tn("Database initialized multiple times. Please make sure the format of the database URL matches with each database() call."),s=new Io(e,false,n,i),r[e.toURLString()]=s,s}(l,e,h,new yn(e.name,n));return new Ma(u,e)}class Ma{constructor(e,t){this._repoInternal=e,this.app=t,this.type="database",this._instanceStarted=!1}get _repo(){return this._instanceStarted||(Co(this._repoInternal,this.app.options.appId,this.app.options.databaseAuthVariableOverride),this._instanceStarted=!0),this._repoInternal}get _root(){return this._rootInternal||(this._rootInternal=new ra(this._repo,Hn())),this._rootInternal}_delete(){return null!==this._rootInternal&&(function(e,t){const n=xa[t];n&&n[e.key]===e||tn(`Database ${t}(${e.repoInfo_}) has already been deleted.`),xo(e),delete n[e.key]}(this._repo,this.app.name),this._repoInternal=null,this._rootInternal=null),Promise.resolve()}_checkNotDeleted(e){null===this._rootInternal&&tn("Cannot call "+e+" on a deleted database.")}}function Fa(){qn.IS_TRANSPORT_INITIALIZED&&nn("Transport has already been initialized. Please call this function before calling ref or setting up a listener")}function Ua(){Fa(),Ln.forceDisallow()}function qa(){Fa(),Un.forceDisallow(),Ln.forceAllow()}class ja{constructor(e,t){this.committed=e,this.snapshot=t}toJSON(){return{committed:this.committed,snapshot:this.snapshot.toJSON()}}}function Wa(e,t,i){var r;if(e=K(e),po("Reference.transaction",e._path),".length"===e.key||".keys"===e.key)throw"Reference.transaction failed: "+e.key+" is a read-only object.";const s=null===(r=null==i?void 0:i.applyLocally)||void 0===r||r,o=new f,a=_a(e,(()=>{}));return function(t,i,r,s,a,c){Lo(t,"transaction on "+i);const l={path:i,update:r,onComplete:(t,n,i)=>{let r=null;t?o.reject(t):(r=new sa(i,new ra(e._repo,e._path),Si),o.resolve(new ja(n,r)))},status:null,order:$t(),applyLocally:c,retryCount:0,unwatcher:a,abortReason:null,currentWriteId:null,currentInputSnapshot:null,currentOutputSnapshotRaw:null,currentOutputSnapshotResolved:null},h=Fo(t,i,void 0);l.currentInputSnapshot=h;const u=l.update(h.val());if(void 0===u)l.unwatcher(),l.currentOutputSnapshotRaw=null,l.currentOutputSnapshotResolved=null,l.onComplete&&l.onComplete(null,!1,l.currentInputSnapshot);else{ao("transaction failed: Data returned ",u,l.path),l.status=0;const e=$s(t.transactionQueueTree_,i),r=Ks(e)||[];let s;r.push(l),Gs(e,r),"object"==typeof u&&null!==u&&R(u,".priority")?(s=N(u,".priority"),n(so(s),"Invalid priority returned by transaction. Priority must be a valid string, finite number, server value, or null.")):s=(Es(t.serverSyncTree_,i)||Li.EMPTY_NODE).getPriority().val();const o=ko(t),a=Fi(u,s),c=Bs(a,h,o);l.currentOutputSnapshotRaw=a,l.currentOutputSnapshotResolved=c,l.currentWriteId=Ro(t);const d=ws(t.serverSyncTree_,i,c,l.currentWriteId,l.applyLocally);vo(t.eventQueue_,i,d),Uo(t,t.transactionQueueTree_)}}(e._repo,e._path,t,0,a,s),o.promise}li.prototype.simpleListen=function(e,t){this.sendRequest("q",{p:e},t)},li.prototype.echo=function(e,t){this.sendRequest("echo",{d:e},t)},qt(pt),rt(new G("database",((e,{instanceIdentifier:t})=>La(e.getProvider("app").getImmediate(),e.getProvider("auth-internal"),e.getProvider("app-check-internal"),t)),"PUBLIC").setMultipleInstances(!0)),yt(Mt,Ft,void 0),yt(Mt,Ft,"esm2017");const Va=new re("@firebase/database-compat"),Ba=function(e){const t="FIREBASE WARNING: "+e;Va.warn(t)};class za{constructor(e){this._delegate=e}cancel(e){V("OnDisconnect.cancel",0,1,arguments.length),z("OnDisconnect.cancel","onComplete",e,!0);const t=this._delegate.cancel();return e&&t.then((()=>e(null)),(t=>e(t))),t}remove(e){V("OnDisconnect.remove",0,1,arguments.length),z("OnDisconnect.remove","onComplete",e,!0);const t=this._delegate.remove();return e&&t.then((()=>e(null)),(t=>e(t))),t}set(e,t){V("OnDisconnect.set",1,2,arguments.length),z("OnDisconnect.set","onComplete",t,!0);const n=this._delegate.set(e);return t&&n.then((()=>t(null)),(e=>t(e))),n}setWithPriority(e,t,n){V("OnDisconnect.setWithPriority",2,3,arguments.length),z("OnDisconnect.setWithPriority","onComplete",n,!0);const i=this._delegate.setWithPriority(e,t);return n&&i.then((()=>n(null)),(e=>n(e))),i}update(e,t){if(V("OnDisconnect.update",1,2,arguments.length),Array.isArray(e)){const t={};for(let n=0;nt(null)),(e=>t(e))),n}}class Ha{constructor(e,t){this.committed=e,this.snapshot=t}toJSON(){return V("TransactionResult.toJSON",0,1,arguments.length),{committed:this.committed,snapshot:this.snapshot.toJSON()}}}class $a{constructor(e,t){this._database=e,this._delegate=t}val(){return V("DataSnapshot.val",0,0,arguments.length),this._delegate.val()}exportVal(){return V("DataSnapshot.exportVal",0,0,arguments.length),this._delegate.exportVal()}toJSON(){return V("DataSnapshot.toJSON",0,1,arguments.length),this._delegate.toJSON()}exists(){return V("DataSnapshot.exists",0,0,arguments.length),this._delegate.exists()}child(e){return V("DataSnapshot.child",0,1,arguments.length),e=String(e),uo("DataSnapshot.child","path",e,!1),new $a(this._database,this._delegate.child(e))}hasChild(e){return V("DataSnapshot.hasChild",1,1,arguments.length),uo("DataSnapshot.hasChild","path",e,!1),this._delegate.hasChild(e)}getPriority(){return V("DataSnapshot.getPriority",0,0,arguments.length),this._delegate.priority}forEach(e){return V("DataSnapshot.forEach",1,1,arguments.length),z("DataSnapshot.forEach","action",e,!1),this._delegate.forEach((t=>e(new $a(this._database,t))))}hasChildren(){return V("DataSnapshot.hasChildren",0,0,arguments.length),this._delegate.hasChildren()}get key(){return this._delegate.key}numChildren(){return V("DataSnapshot.numChildren",0,0,arguments.length),this._delegate.size}getRef(){return V("DataSnapshot.ref",0,0,arguments.length),new Ga(this._database,this._delegate.ref)}get ref(){return this.getRef()}}class Ka{constructor(e,t){this.database=e,this._delegate=t}on(e,t,n,i){var r;V("Query.on",2,4,arguments.length),z("Query.on","callback",t,!1);const s=Ka.getCancelAndContextArgs_("Query.on",n,i),o=(e,n)=>{t.call(s.context,new $a(this.database,e),n)};o.userCallback=t,o.context=s.context;const a=null===(r=s.cancel)||void 0===r?void 0:r.bind(s.context);switch(e){case"value":return _a(this._delegate,o,a),t;case"child_added":return ma(this._delegate,o,a),t;case"child_removed":return ya(this._delegate,o,a),t;case"child_changed":return ga(this._delegate,o,a),t;case"child_moved":return va(this._delegate,o,a),t;default:throw new Error(B("Query.on","eventType")+'must be a valid event type = "value", "child_added", "child_removed", "child_changed", or "child_moved".')}}off(e,t,n){if(V("Query.off",0,3,arguments.length),function(e,t){if(void 0!==t)switch(t){case"value":case"child_added":case"child_removed":case"child_changed":case"child_moved":break;default:throw new Error(B("Query.off","eventType")+'must be a valid event type = "value", "child_added", "child_removed", "child_changed", or "child_moved".')}}(0,e),z("Query.off","callback",t,!0),H("Query.off","context",n,!0),t){const i=()=>{};i.userCallback=t,i.context=n,wa(this._delegate,e,i)}else wa(this._delegate,e)}get(){return ua(this._delegate).then((e=>new $a(this.database,e)))}once(e,t,n,i){V("Query.once",1,4,arguments.length),z("Query.once","callback",t,!0);const r=Ka.getCancelAndContextArgs_("Query.once",n,i),s=new f,o=(e,n)=>{const i=new $a(this.database,e);t&&t.call(r.context,i,n),s.resolve(i)};o.userCallback=t,o.context=r.context;const a=e=>{r.cancel&&r.cancel.call(r.context,e),s.reject(e)};switch(e){case"value":_a(this._delegate,o,a,{onlyOnce:!0});break;case"child_added":ma(this._delegate,o,a,{onlyOnce:!0});break;case"child_removed":ya(this._delegate,o,a,{onlyOnce:!0});break;case"child_changed":ga(this._delegate,o,a,{onlyOnce:!0});break;case"child_moved":va(this._delegate,o,a,{onlyOnce:!0});break;default:throw new Error(B("Query.once","eventType")+'must be a valid event type = "value", "child_added", "child_removed", "child_changed", or "child_moved".')}return s.promise}limitToFirst(e){return V("Query.limitToFirst",1,1,arguments.length),new Ka(this.database,Da(this._delegate,function(e){if("number"!=typeof e||Math.floor(e)!==e||e<=0)throw new Error("limitToFirst: First argument must be a positive integer.");return new Ea(e)}(e)))}limitToLast(e){return V("Query.limitToLast",1,1,arguments.length),new Ka(this.database,Da(this._delegate,function(e){if("number"!=typeof e||Math.floor(e)!==e||e<=0)throw new Error("limitToLast: First argument must be a positive integer.");return new Sa(e)}(e)))}orderByChild(e){return V("Query.orderByChild",1,1,arguments.length),new Ka(this.database,Da(this._delegate,function(e){if("$key"===e)throw new Error('orderByChild: "$key" is invalid. Use orderByKey() instead.');if("$priority"===e)throw new Error('orderByChild: "$priority" is invalid. Use orderByPriority() instead.');if("$value"===e)throw new Error('orderByChild: "$value" is invalid. Use orderByValue() instead.');return uo("orderByChild","path",e,!1),new Pa(e)}(e)))}orderByKey(){return V("Query.orderByKey",0,0,arguments.length),new Ka(this.database,Da(this._delegate,new Ra))}orderByPriority(){return V("Query.orderByPriority",0,0,arguments.length),new Ka(this.database,Da(this._delegate,new Na))}orderByValue(){return V("Query.orderByValue",0,0,arguments.length),new Ka(this.database,Da(this._delegate,new Aa))}startAt(e=null,t){return V("Query.startAt",0,2,arguments.length),new Ka(this.database,Da(this._delegate,function(e=null,t){return ho("startAt","key",t,!0),new Ta(e,t)}(e,t)))}startAfter(e=null,t){return V("Query.startAfter",0,2,arguments.length),new Ka(this.database,Da(this._delegate,function(e,t){return ho("startAfter","key",t,!0),new ka(e,t)}(e,t)))}endAt(e=null,t){return V("Query.endAt",0,2,arguments.length),new Ka(this.database,Da(this._delegate,function(e,t){return ho("endAt","key",t,!0),new Ia(e,t)}(e,t)))}endBefore(e=null,t){return V("Query.endBefore",0,2,arguments.length),new Ka(this.database,Da(this._delegate,function(e,t){return ho("endBefore","key",t,!0),new Ca(e,t)}(e,t)))}equalTo(e,t){return V("Query.equalTo",1,2,arguments.length),new Ka(this.database,Da(this._delegate,function(e,t){return ho("equalTo","key",t,!0),new Oa(e,t)}(e,t)))}toString(){return V("Query.toString",0,0,arguments.length),this._delegate.toString()}toJSON(){return V("Query.toJSON",0,1,arguments.length),this._delegate.toJSON()}isEqual(e){if(V("Query.isEqual",1,1,arguments.length),!(e instanceof Ka))throw new Error("Query.isEqual failed: First argument must be an instance of firebase.database.Query.");return this._delegate.isEqual(e._delegate)}static getCancelAndContextArgs_(e,t,n){const i={cancel:void 0,context:void 0};if(t&&n)i.cancel=t,z(e,"cancel",i.cancel,!0),i.context=n,H(e,"context",i.context,!0);else if(t)if("object"==typeof t&&null!==t)i.context=t;else{if("function"!=typeof t)throw new Error(B(e,"cancelOrContext")+" must either be a cancel callback or a context object.");i.cancel=t}return i}get ref(){return new Ga(this.database,new ra(this._delegate._repo,this._delegate._path))}}class Ga extends Ka{constructor(e,t){super(e,new ea(t._repo,t._path,new Ki,!1)),this.database=e,this._delegate=t}getKey(){return V("Reference.key",0,0,arguments.length),this._delegate.key}child(e){return V("Reference.child",1,1,arguments.length),"number"==typeof e&&(e=String(e)),new Ga(this.database,ca(this._delegate,e))}getParent(){V("Reference.parent",0,0,arguments.length);const e=this._delegate.parent;return e?new Ga(this.database,e):null}getRoot(){return V("Reference.root",0,0,arguments.length),new Ga(this.database,this._delegate.root)}set(e,t){V("Reference.set",1,2,arguments.length),z("Reference.set","onComplete",t,!0);const n=la(this._delegate,e);return t&&n.then((()=>t(null)),(e=>t(e))),n}update(e,t){if(V("Reference.update",1,2,arguments.length),Array.isArray(e)){const t={};for(let n=0;nt(null)),(e=>t(e))),n}setWithPriority(e,t,n){V("Reference.setWithPriority",2,3,arguments.length),z("Reference.setWithPriority","onComplete",n,!0);const i=function(e,t,n){if(po("setWithPriority",e._path),oo("setWithPriority",t,e._path,!1),lo("setWithPriority",n,!1),".length"===e.key||".keys"===e.key)throw"setWithPriority failed: "+e.key+" is a read-only object.";const i=new f;return No(e._repo,e._path,t,n,i.wrapCallback((()=>{}))),i.promise}(this._delegate,e,t);return n&&i.then((()=>n(null)),(e=>n(e))),i}remove(e){V("Reference.remove",0,1,arguments.length),z("Reference.remove","onComplete",e,!0);const t=function(e){return po("remove",e._path),la(e,null)}(this._delegate);return e&&t.then((()=>e(null)),(t=>e(t))),t}transaction(e,t,n){V("Reference.transaction",1,3,arguments.length),z("Reference.transaction","transactionUpdate",e,!1),z("Reference.transaction","onComplete",t,!0),function(e,t,n){if(void 0!==n&&"boolean"!=typeof n)throw new Error(B("Reference.transaction","applyLocally")+"must be a boolean.")}(0,0,n);const i=Wa(this._delegate,e,{applyLocally:n}).then((e=>new Ha(e.committed,new $a(this.database,e.snapshot))));return t&&i.then((e=>t(null,e.committed,e.snapshot)),(e=>t(e,!1,null))),i}setPriority(e,t){V("Reference.setPriority",1,2,arguments.length),z("Reference.setPriority","onComplete",t,!0);const n=function(e,t){e=K(e),po("setPriority",e._path),lo("setPriority",t,!1);const n=new f;return No(e._repo,Xn(e._path,".priority"),t,null,n.wrapCallback((()=>{}))),n.promise}(this._delegate,e);return t&&n.then((()=>t(null)),(e=>t(e))),n}push(e,t){V("Reference.push",0,2,arguments.length),z("Reference.push","onComplete",t,!0);const n=function(e,t){e=K(e),po("push",e._path),oo("push",t,e._path,!0);const n=To(e._repo),i=Yo(n),r=ca(e,i),s=ca(e,i);let o;return o=null!=t?la(s,t).then((()=>s)):Promise.resolve(s),r.then=o.then.bind(o),r.catch=o.then.bind(o,void 0),r}(this._delegate,e),i=n.then((e=>new Ga(this.database,e)));t&&i.then((()=>t(null)),(e=>t(e)));const r=new Ga(this.database,n);return r.then=i.then.bind(i),r.catch=i.catch.bind(i,void 0),r}onDisconnect(){return po("Reference.onDisconnect",this._delegate._path),new za(new Zo(this._delegate._repo,this._delegate._path))}get key(){return this.getKey()}get parent(){return this.getParent()}get root(){return this.getRoot()}}class Ya{constructor(e,t){this._delegate=e,this.app=t,this.INTERNAL={delete:()=>this._delegate._delete(),forceWebSockets:Ua,forceLongPolling:qa}}useEmulator(e,t,n={}){!function(e,t,n,i={}){(e=K(e))._checkNotDeleted("useEmulator"),e._instanceStarted&&tn("Cannot call useEmulator() after instance has already been initialized.");const r=e._repoInternal;let s;if(r.repoInfo_.nodeAdmin)i.mockUserToken&&tn('mockUserToken is not supported by the Admin SDK. For client access with mock users, please use the "firebase" package instead of "firebase-admin".'),s=new bn(bn.OWNER);else if(i.mockUserToken){const t="string"==typeof i.mockUserToken?i.mockUserToken:function(e,t){if(e.uid)throw new Error('The "uid" field is no longer supported by mockUserToken. Please use "sub" instead for Firebase Auth User ID.');const n=t||"demo-project",i=e.iat||0,r=e.sub||e.user_id;if(!r)throw new Error("mockUserToken must contain 'sub' or 'user_id' field!");const s=Object.assign({iss:`https://securetoken.google.com/${n}`,aud:n,iat:i,exp:i+3600,auth_time:i,sub:r,user_id:r,firebase:{sign_in_provider:"custom",identities:{}}},e);return[c(JSON.stringify({alg:"none",type:"JWT"})),c(JSON.stringify(s)),""].join(".")}(i.mockUserToken,e.app.options.projectId);s=new bn(t)}!function(e,t,n,i){e.repoInfo_=new Sn(`${t}:${n}`,!1,e.repoInfo_.namespace,e.repoInfo_.webSocketOnly,e.repoInfo_.nodeAdmin,e.repoInfo_.persistenceKey,e.repoInfo_.includeNamespaceInQueryParams,!0),i&&(e.authTokenProvider_=i)}(r,t,n,s)}(this._delegate,e,t,n)}ref(e){if(V("database.ref",0,1,arguments.length),e instanceof Ga){const t=aa(this._delegate,e.toString());return new Ga(this,t)}{const t=oa(this._delegate,e);return new Ga(this,t)}}refFromURL(e){V("database.refFromURL",1,1,arguments.length);const t=aa(this._delegate,e);return new Ga(this,t)}goOffline(){return V("database.goOffline",0,0,arguments.length),(e=K(e=this._delegate))._checkNotDeleted("goOffline"),void xo(e._repo);var e}goOnline(){return V("database.goOnline",0,0,arguments.length),(e=K(e=this._delegate))._checkNotDeleted("goOnline"),void((t=e._repo).persistentConnection_&&t.persistentConnection_.resume(bo));var e,t}}Ya.ServerValue={TIMESTAMP:{".sv":"timestamp"},increment:e=>function(e){return{".sv":{increment:e}}}(e)};var Ja=Object.freeze({__proto__:null,initStandalone:function({app:e,url:t,version:n,customAuthImpl:i,customAppCheckImpl:r,namespace:s,nodeAdmin:o=!1}){qt(n);const a=new Q("database-standalone"),c=new J("auth-internal",a);let l;return c.setComponent(new G("auth-internal",(()=>i),"PRIVATE")),r&&(l=new J("app-check-internal",a),l.setComponent(new G("app-check-internal",(()=>r),"PRIVATE"))),{instance:new Ya(La(e,c,l,t,o),e),namespace:s}}});const Qa=Ya.ServerValue;var Xa;function Za(e,t){var n={};for(var i in e)Object.prototype.hasOwnProperty.call(e,i)&&t.indexOf(i)<0&&(n[i]=e[i]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var r=0;for(i=Object.getOwnPropertySymbols(e);r{const n=e.getProvider("app-compat").getImmediate(),i=e.getProvider("database").getImmediate({identifier:t});return new Ya(i,n)}),"PUBLIC").setServiceProps({Reference:Ga,Query:Ka,Database:Ya,DataSnapshot:$a,enableLogging:function(e,t){Qt(e,t)},INTERNAL:Ja,ServerValue:Qa}).setMultipleInstances(!0)),Xa.registerVersion("@firebase/database-compat","1.0.8"),Object.create,Object.create,"function"==typeof SuppressedError&&SuppressedError;const ec=function(){return{"admin-restricted-operation":"This operation is restricted to administrators only.","argument-error":"","app-not-authorized":"This app, identified by the domain where it's hosted, is not authorized to use Firebase Authentication with the provided API key. Review your key configuration in the Google API console.","app-not-installed":"The requested mobile application corresponding to the identifier (Android package name or iOS bundle ID) provided is not installed on this device.","captcha-check-failed":"The reCAPTCHA response token provided is either invalid, expired, already used or the domain associated with it does not match the list of whitelisted domains.","code-expired":"The SMS code has expired. Please re-send the verification code to try again.","cordova-not-ready":"Cordova framework is not ready.","cors-unsupported":"This browser is not supported.","credential-already-in-use":"This credential is already associated with a different user account.","custom-token-mismatch":"The custom token corresponds to a different audience.","requires-recent-login":"This operation is sensitive and requires recent authentication. Log in again before retrying this request.","dependent-sdk-initialized-before-auth":"Another Firebase SDK was initialized and is trying to use Auth before Auth is initialized. Please be sure to call `initializeAuth` or `getAuth` before starting any other Firebase SDK.","dynamic-link-not-activated":"Please activate Dynamic Links in the Firebase Console and agree to the terms and conditions.","email-change-needs-verification":"Multi-factor users must always have a verified email.","email-already-in-use":"The email address is already in use by another account.","emulator-config-failed":'Auth instance has already been used to make a network call. Auth can no longer be configured to use the emulator. Try calling "connectAuthEmulator()" sooner.',"expired-action-code":"The action code has expired.","cancelled-popup-request":"This operation has been cancelled due to another conflicting popup being opened.","internal-error":"An internal AuthError has occurred.","invalid-app-credential":"The phone verification request contains an invalid application verifier. The reCAPTCHA token response is either invalid or expired.","invalid-app-id":"The mobile app identifier is not registered for the current project.","invalid-user-token":"This user's credential isn't valid for this project. This can happen if the user's token has been tampered with, or if the user isn't for the project associated with this API key.","invalid-auth-event":"An internal AuthError has occurred.","invalid-verification-code":"The SMS verification code used to create the phone auth credential is invalid. Please resend the verification code sms and be sure to use the verification code provided by the user.","invalid-continue-uri":"The continue URL provided in the request is invalid.","invalid-cordova-configuration":"The following Cordova plugins must be installed to enable OAuth sign-in: cordova-plugin-buildinfo, cordova-universal-links-plugin, cordova-plugin-browsertab, cordova-plugin-inappbrowser and cordova-plugin-customurlscheme.","invalid-custom-token":"The custom token format is incorrect. Please check the documentation.","invalid-dynamic-link-domain":"The provided dynamic link domain is not configured or authorized for the current project.","invalid-email":"The email address is badly formatted.","invalid-emulator-scheme":"Emulator URL must start with a valid scheme (http:// or https://).","invalid-api-key":"Your API key is invalid, please check you have copied it correctly.","invalid-cert-hash":"The SHA-1 certificate hash provided is invalid.","invalid-credential":"The supplied auth credential is incorrect, malformed or has expired.","invalid-message-payload":"The email template corresponding to this action contains invalid characters in its message. Please fix by going to the Auth email templates section in the Firebase Console.","invalid-multi-factor-session":"The request does not contain a valid proof of first factor successful sign-in.","invalid-oauth-provider":"EmailAuthProvider is not supported for this operation. This operation only supports OAuth providers.","invalid-oauth-client-id":"The OAuth client ID provided is either invalid or does not match the specified API key.","unauthorized-domain":"This domain is not authorized for OAuth operations for your Firebase project. Edit the list of authorized domains from the Firebase console.","invalid-action-code":"The action code is invalid. This can happen if the code is malformed, expired, or has already been used.","wrong-password":"The password is invalid or the user does not have a password.","invalid-persistence-type":"The specified persistence type is invalid. It can only be local, session or none.","invalid-phone-number":"The format of the phone number provided is incorrect. Please enter the phone number in a format that can be parsed into E.164 format. E.164 phone numbers are written in the format [+][country code][subscriber number including area code].","invalid-provider-id":"The specified provider ID is invalid.","invalid-recipient-email":"The email corresponding to this action failed to send as the provided recipient email address is invalid.","invalid-sender":"The email template corresponding to this action contains an invalid sender email or name. Please fix by going to the Auth email templates section in the Firebase Console.","invalid-verification-id":"The verification ID used to create the phone auth credential is invalid.","invalid-tenant-id":"The Auth instance's tenant ID is invalid.","login-blocked":"Login blocked by user-provided method: {$originalMessage}","missing-android-pkg-name":"An Android Package Name must be provided if the Android App is required to be installed.","auth-domain-config-required":"Be sure to include authDomain when calling firebase.initializeApp(), by following the instructions in the Firebase console.","missing-app-credential":"The phone verification request is missing an application verifier assertion. A reCAPTCHA response token needs to be provided.","missing-verification-code":"The phone auth credential was created with an empty SMS verification code.","missing-continue-uri":"A continue URL must be provided in the request.","missing-iframe-start":"An internal AuthError has occurred.","missing-ios-bundle-id":"An iOS Bundle ID must be provided if an App Store ID is provided.","missing-or-invalid-nonce":"The request does not contain a valid nonce. This can occur if the SHA-256 hash of the provided raw nonce does not match the hashed nonce in the ID token payload.","missing-password":"A non-empty password must be provided","missing-multi-factor-info":"No second factor identifier is provided.","missing-multi-factor-session":"The request is missing proof of first factor successful sign-in.","missing-phone-number":"To send verification codes, provide a phone number for the recipient.","missing-verification-id":"The phone auth credential was created with an empty verification ID.","app-deleted":"This instance of FirebaseApp has been deleted.","multi-factor-info-not-found":"The user does not have a second factor matching the identifier provided.","multi-factor-auth-required":"Proof of ownership of a second factor is required to complete sign-in.","account-exists-with-different-credential":"An account already exists with the same email address but different sign-in credentials. Sign in using a provider associated with this email address.","network-request-failed":"A network AuthError (such as timeout, interrupted connection or unreachable host) has occurred.","no-auth-event":"An internal AuthError has occurred.","no-such-provider":"User was not linked to an account with the given provider.","null-user":"A null user object was provided as the argument for an operation which requires a non-null user object.","operation-not-allowed":"The given sign-in provider is disabled for this Firebase project. Enable it in the Firebase console, under the sign-in method tab of the Auth section.","operation-not-supported-in-this-environment":'This operation is not supported in the environment this application is running on. "location.protocol" must be http, https or chrome-extension and web storage must be enabled.',"popup-blocked":"Unable to establish a connection with the popup. It may have been blocked by the browser.","popup-closed-by-user":"The popup has been closed by the user before finalizing the operation.","provider-already-linked":"User can only be linked to one identity for the given provider.","quota-exceeded":"The project's quota for this operation has been exceeded.","redirect-cancelled-by-user":"The redirect operation has been cancelled by the user before finalizing.","redirect-operation-pending":"A redirect sign-in operation is already pending.","rejected-credential":"The request contains malformed or mismatching credentials.","second-factor-already-in-use":"The second factor is already enrolled on this account.","maximum-second-factor-count-exceeded":"The maximum allowed number of second factors on a user has been exceeded.","tenant-id-mismatch":"The provided tenant ID does not match the Auth instance's tenant ID",timeout:"The operation has timed out.","user-token-expired":"The user's credential is no longer valid. The user must sign in again.","too-many-requests":"We have blocked all requests from this device due to unusual activity. Try again later.","unauthorized-continue-uri":"The domain of the continue URL is not whitelisted. Please whitelist the domain in the Firebase console.","unsupported-first-factor":"Enrolling a second factor or signing in with a multi-factor account requires sign-in with a supported first factor.","unsupported-persistence-type":"The current environment does not support the specified persistence type.","unsupported-tenant-operation":"This operation is not supported in a multi-tenant context.","unverified-email":"The operation requires a verified email.","user-cancelled":"The user did not grant your application the permissions it requested.","user-not-found":"There is no user record corresponding to this identifier. The user may have been deleted.","user-disabled":"The user account has been disabled by an administrator.","user-mismatch":"The supplied credentials do not correspond to the previously signed in user.","user-signed-out":"","weak-password":"The password must be 6 characters long or more.","web-storage-unsupported":"This browser is not supported or 3rd party cookies and data may be disabled.","already-initialized":"initializeAuth() has already been called with different options. To avoid this error, call initializeAuth() with the same options as when it was originally called, or call getAuth() to return the already initialized instance.","missing-recaptcha-token":"The reCAPTCHA token is missing when sending request to the backend.","invalid-recaptcha-token":"The reCAPTCHA token is invalid when sending request to the backend.","invalid-recaptcha-action":"The reCAPTCHA action is invalid when sending request to the backend.","recaptcha-not-enabled":"reCAPTCHA Enterprise integration is not enabled for this project.","missing-client-type":"The reCAPTCHA client type is missing when sending request to the backend.","missing-recaptcha-version":"The reCAPTCHA version is missing when sending request to the backend.","invalid-req-type":"Invalid request parameters.","invalid-recaptcha-version":"The reCAPTCHA version is invalid when sending request to the backend.","unsupported-password-policy-schema-version":"The password policy received from the backend uses a schema version that is not supported by this version of the Firebase SDK.","password-does-not-meet-requirements":"The password does not meet the requirements."}},tc=function(){return{"dependent-sdk-initialized-before-auth":"Another Firebase SDK was initialized and is trying to use Auth before Auth is initialized. Please be sure to call `initializeAuth` or `getAuth` before starting any other Firebase SDK."}},nc=new T("auth","Firebase",{"dependent-sdk-initialized-before-auth":"Another Firebase SDK was initialized and is trying to use Auth before Auth is initialized. Please be sure to call `initializeAuth` or `getAuth` before starting any other Firebase SDK."}),ic=new re("@firebase/auth");function rc(e,...t){ic.logLevel<=Z.ERROR&&ic.error(`Auth (${pt}): ${e}`,...t)}function sc(e,...t){throw hc(e,...t)}function oc(e,...t){return hc(e,...t)}function ac(e,t,n){const i=Object.assign(Object.assign({},tc()),{[t]:n});return new T("auth","Firebase",i).create(t,{appName:e.name})}function cc(e){return ac(e,"operation-not-supported-in-this-environment","Operations that alter the current user are not supported in conjunction with FirebaseServerApp")}function lc(e,t,n){if(!(t instanceof n))throw n.name!==t.constructor.name&&sc(e,"argument-error"),ac(e,"argument-error",`Type of ${t.constructor.name} does not match expected instance.Did you pass a reference from a different Auth SDK?`)}function hc(e,...t){if("string"!=typeof e){const n=t[0],i=[...t.slice(1)];return i[0]&&(i[0].appName=e.name),e._errorFactory.create(n,...i)}return nc.create(e,...t)}function uc(e,t,...n){if(!e)throw hc(t,...n)}function dc(e){const t="INTERNAL ASSERTION FAILED: "+e;throw rc(t),new Error(t)}function pc(e,t){e||dc(t)}function fc(){var e;return"undefined"!=typeof self&&(null===(e=self.location)||void 0===e?void 0:e.href)||""}function _c(){return"http:"===mc()||"https:"===mc()}function mc(){var e;return"undefined"!=typeof self&&(null===(e=self.location)||void 0===e?void 0:e.protocol)||null}class gc{constructor(e,t){this.shortDelay=e,this.longDelay=t,pc(t>e,"Short delay should be less than long delay!"),this.isMobile=m()||w()}get(){return"undefined"!=typeof navigator&&navigator&&"onLine"in navigator&&"boolean"==typeof navigator.onLine&&(_c()||y()||"connection"in navigator)&&!navigator.onLine?Math.min(5e3,this.shortDelay):this.isMobile?this.longDelay:this.shortDelay}}function vc(e,t){pc(e.emulator,"Emulator should always be set here");const{url:n}=e.emulator;return t?`${n}${t.startsWith("/")?t.slice(1):t}`:n}class yc{static initialize(e,t,n){this.fetchImpl=e,t&&(this.headersImpl=t),n&&(this.responseImpl=n)}static fetch(){return this.fetchImpl?this.fetchImpl:"undefined"!=typeof self&&"fetch"in self?self.fetch:"undefined"!=typeof globalThis&&globalThis.fetch?globalThis.fetch:"undefined"!=typeof fetch?fetch:void dc("Could not find fetch implementation, make sure you call FetchProvider.initialize() with an appropriate polyfill")}static headers(){return this.headersImpl?this.headersImpl:"undefined"!=typeof self&&"Headers"in self?self.Headers:"undefined"!=typeof globalThis&&globalThis.Headers?globalThis.Headers:"undefined"!=typeof Headers?Headers:void dc("Could not find Headers implementation, make sure you call FetchProvider.initialize() with an appropriate polyfill")}static response(){return this.responseImpl?this.responseImpl:"undefined"!=typeof self&&"Response"in self?self.Response:"undefined"!=typeof globalThis&&globalThis.Response?globalThis.Response:"undefined"!=typeof Response?Response:void dc("Could not find Response implementation, make sure you call FetchProvider.initialize() with an appropriate polyfill")}}const wc={CREDENTIAL_MISMATCH:"custom-token-mismatch",MISSING_CUSTOM_TOKEN:"internal-error",INVALID_IDENTIFIER:"invalid-email",MISSING_CONTINUE_URI:"internal-error",INVALID_PASSWORD:"wrong-password",MISSING_PASSWORD:"missing-password",INVALID_LOGIN_CREDENTIALS:"invalid-credential",EMAIL_EXISTS:"email-already-in-use",PASSWORD_LOGIN_DISABLED:"operation-not-allowed",INVALID_IDP_RESPONSE:"invalid-credential",INVALID_PENDING_TOKEN:"invalid-credential",FEDERATED_USER_ID_ALREADY_LINKED:"credential-already-in-use",MISSING_REQ_TYPE:"internal-error",EMAIL_NOT_FOUND:"user-not-found",RESET_PASSWORD_EXCEED_LIMIT:"too-many-requests",EXPIRED_OOB_CODE:"expired-action-code",INVALID_OOB_CODE:"invalid-action-code",MISSING_OOB_CODE:"internal-error",CREDENTIAL_TOO_OLD_LOGIN_AGAIN:"requires-recent-login",INVALID_ID_TOKEN:"invalid-user-token",TOKEN_EXPIRED:"user-token-expired",USER_NOT_FOUND:"user-token-expired",TOO_MANY_ATTEMPTS_TRY_LATER:"too-many-requests",PASSWORD_DOES_NOT_MEET_REQUIREMENTS:"password-does-not-meet-requirements",INVALID_CODE:"invalid-verification-code",INVALID_SESSION_INFO:"invalid-verification-id",INVALID_TEMPORARY_PROOF:"invalid-credential",MISSING_SESSION_INFO:"missing-verification-id",SESSION_EXPIRED:"code-expired",MISSING_ANDROID_PACKAGE_NAME:"missing-android-pkg-name",UNAUTHORIZED_DOMAIN:"unauthorized-continue-uri",INVALID_OAUTH_CLIENT_ID:"invalid-oauth-client-id",ADMIN_ONLY_OPERATION:"admin-restricted-operation",INVALID_MFA_PENDING_CREDENTIAL:"invalid-multi-factor-session",MFA_ENROLLMENT_NOT_FOUND:"multi-factor-info-not-found",MISSING_MFA_ENROLLMENT_ID:"missing-multi-factor-info",MISSING_MFA_PENDING_CREDENTIAL:"missing-multi-factor-session",SECOND_FACTOR_EXISTS:"second-factor-already-in-use",SECOND_FACTOR_LIMIT_EXCEEDED:"maximum-second-factor-count-exceeded",BLOCKING_FUNCTION_ERROR_RESPONSE:"internal-error",RECAPTCHA_NOT_ENABLED:"recaptcha-not-enabled",MISSING_RECAPTCHA_TOKEN:"missing-recaptcha-token",INVALID_RECAPTCHA_TOKEN:"invalid-recaptcha-token",INVALID_RECAPTCHA_ACTION:"invalid-recaptcha-action",MISSING_CLIENT_TYPE:"missing-client-type",MISSING_RECAPTCHA_VERSION:"missing-recaptcha-version",INVALID_RECAPTCHA_VERSION:"invalid-recaptcha-version",INVALID_REQ_TYPE:"invalid-req-type"},bc=new gc(3e4,6e4);function Ic(e,t){return e.tenantId&&!t.tenantId?Object.assign(Object.assign({},t),{tenantId:e.tenantId}):t}async function Cc(e,t,n,i,r={}){return Tc(e,r,(async()=>{let r={},s={};i&&("GET"===t?s=i:r={body:JSON.stringify(i)});const o=L(Object.assign({key:e.config.apiKey},s)).slice(1),a=await e._getAdditionalHeaders();a["Content-Type"]="application/json",e.languageCode&&(a["X-Firebase-Locale"]=e.languageCode);const c=Object.assign({method:t,headers:a},r);return"undefined"!=typeof navigator&&"Cloudflare-Workers"===navigator.userAgent||(c.referrerPolicy="no-referrer"),yc.fetch()(Ec(e,e.config.apiHost,n,o),c)}))}async function Tc(e,t,n){e._canInitEmulator=!1;const i=Object.assign(Object.assign({},wc),t);try{const t=new Pc(e),r=await Promise.race([n(),t.promise]);t.clearNetworkTimeout();const s=await r.json();if("needConfirmation"in s)throw Rc(e,"account-exists-with-different-credential",s);if(r.ok&&!("errorMessage"in s))return s;{const t=r.ok?s.errorMessage:s.error.message,[n,o]=t.split(" : ");if("FEDERATED_USER_ID_ALREADY_LINKED"===n)throw Rc(e,"credential-already-in-use",s);if("EMAIL_EXISTS"===n)throw Rc(e,"email-already-in-use",s);if("USER_DISABLED"===n)throw Rc(e,"user-disabled",s);const a=i[n]||n.toLowerCase().replace(/[_\s]+/g,"-");if(o)throw ac(e,a,o);sc(e,a)}}catch(t){if(t instanceof C)throw t;sc(e,"network-request-failed",{message:String(t)})}}async function kc(e,t,n,i,r={}){const s=await Cc(e,t,n,i,r);return"mfaPendingCredential"in s&&sc(e,"multi-factor-auth-required",{_serverResponse:s}),s}function Ec(e,t,n,i){const r=`${t}${n}?${i}`;return e.config.emulator?vc(e.config,r):`${e.config.apiScheme}://${r}`}function Sc(e){switch(e){case"ENFORCE":return"ENFORCE";case"AUDIT":return"AUDIT";case"OFF":return"OFF";default:return"ENFORCEMENT_STATE_UNSPECIFIED"}}class Pc{constructor(e){this.auth=e,this.timer=null,this.promise=new Promise(((e,t)=>{this.timer=setTimeout((()=>t(oc(this.auth,"network-request-failed"))),bc.get())}))}clearNetworkTimeout(){clearTimeout(this.timer)}}function Rc(e,t,n){const i={appName:e.name};n.email&&(i.email=n.email),n.phoneNumber&&(i.phoneNumber=n.phoneNumber);const r=oc(e,t,i);return r.customData._tokenResponse=n,r}function Nc(e){return void 0!==e&&void 0!==e.getResponse}function Ac(e){return void 0!==e&&void 0!==e.enterprise}class Oc{constructor(e){if(this.siteKey="",this.recaptchaEnforcementState=[],void 0===e.recaptchaKey)throw new Error("recaptchaKey undefined");this.siteKey=e.recaptchaKey.split("/")[3],this.recaptchaEnforcementState=e.recaptchaEnforcementState}getProviderEnforcementState(e){if(!this.recaptchaEnforcementState||0===this.recaptchaEnforcementState.length)return null;for(const t of this.recaptchaEnforcementState)if(t.provider&&t.provider===e)return Sc(t.enforcementState);return null}isProviderEnabled(e){return"ENFORCE"===this.getProviderEnforcementState(e)||"AUDIT"===this.getProviderEnforcementState(e)}}async function Dc(e,t){return Cc(e,"POST","/v1/accounts:lookup",t)}function xc(e){if(e)try{const t=new Date(Number(e));if(!isNaN(t.getTime()))return t.toUTCString()}catch(e){}}function Lc(e){return 1e3*Number(e)}function Mc(e){const[t,n,i]=e.split(".");if(void 0===t||void 0===n||void 0===i)return rc("JWT malformed, contained fewer than 3 sections"),null;try{const e=l(n);return e?JSON.parse(e):(rc("Failed to decode base64 JWT payload"),null)}catch(e){return rc("Caught error parsing JWT payload as JSON",null==e?void 0:e.toString()),null}}function Fc(e){const t=Mc(e);return uc(t,"internal-error"),uc(void 0!==t.exp,"internal-error"),uc(void 0!==t.iat,"internal-error"),Number(t.exp)-Number(t.iat)}async function Uc(e,t,n=!1){if(n)return t;try{return await t}catch(t){throw t instanceof C&&function({code:e}){return"auth/user-disabled"===e||"auth/user-token-expired"===e}(t)&&e.auth.currentUser===e&&await e.auth.signOut(),t}}class qc{constructor(e){this.user=e,this.isRunning=!1,this.timerId=null,this.errorBackoff=3e4}_start(){this.isRunning||(this.isRunning=!0,this.schedule())}_stop(){this.isRunning&&(this.isRunning=!1,null!==this.timerId&&clearTimeout(this.timerId))}getInterval(e){var t;if(e){const e=this.errorBackoff;return this.errorBackoff=Math.min(2*this.errorBackoff,96e4),e}{this.errorBackoff=3e4;const e=(null!==(t=this.user.stsTokenManager.expirationTime)&&void 0!==t?t:0)-Date.now()-3e5;return Math.max(0,e)}}schedule(e=!1){if(!this.isRunning)return;const t=this.getInterval(e);this.timerId=setTimeout((async()=>{await this.iteration()}),t)}async iteration(){try{await this.user.getIdToken(!0)}catch(e){return void("auth/network-request-failed"===(null==e?void 0:e.code)&&this.schedule(!0))}this.schedule()}}class jc{constructor(e,t){this.createdAt=e,this.lastLoginAt=t,this._initializeTime()}_initializeTime(){this.lastSignInTime=xc(this.lastLoginAt),this.creationTime=xc(this.createdAt)}_copy(e){this.createdAt=e.createdAt,this.lastLoginAt=e.lastLoginAt,this._initializeTime()}toJSON(){return{createdAt:this.createdAt,lastLoginAt:this.lastLoginAt}}}async function Wc(e){var t;const n=e.auth,i=await e.getIdToken(),r=await Uc(e,Dc(n,{idToken:i}));uc(null==r?void 0:r.users.length,n,"internal-error");const s=r.users[0];e._notifyReloadListener(s);const o=(null===(t=s.providerUserInfo)||void 0===t?void 0:t.length)?Vc(s.providerUserInfo):[],a=(c=e.providerData,l=o,[...c.filter((e=>!l.some((t=>t.providerId===e.providerId)))),...l]);var c,l;const h=e.isAnonymous,u=!(e.email&&s.passwordHash||(null==a?void 0:a.length)),d=!!h&&u,p={uid:s.localId,displayName:s.displayName||null,photoURL:s.photoUrl||null,email:s.email||null,emailVerified:s.emailVerified||!1,phoneNumber:s.phoneNumber||null,tenantId:s.tenantId||null,providerData:a,metadata:new jc(s.createdAt,s.lastLoginAt),isAnonymous:d};Object.assign(e,p)}function Vc(e){return e.map((e=>{var{providerId:t}=e,n=Za(e,["providerId"]);return{providerId:t,uid:n.rawId||"",displayName:n.displayName||null,email:n.email||null,phoneNumber:n.phoneNumber||null,photoURL:n.photoUrl||null}}))}class Bc{constructor(){this.refreshToken=null,this.accessToken=null,this.expirationTime=null}get isExpired(){return!this.expirationTime||Date.now()>this.expirationTime-3e4}updateFromServerResponse(e){uc(e.idToken,"internal-error"),uc(void 0!==e.idToken,"internal-error"),uc(void 0!==e.refreshToken,"internal-error");const t="expiresIn"in e&&void 0!==e.expiresIn?Number(e.expiresIn):Fc(e.idToken);this.updateTokensAndExpiration(e.idToken,e.refreshToken,t)}updateFromIdToken(e){uc(0!==e.length,"internal-error");const t=Fc(e);this.updateTokensAndExpiration(e,null,t)}async getToken(e,t=!1){return t||!this.accessToken||this.isExpired?(uc(this.refreshToken,e,"user-token-expired"),this.refreshToken?(await this.refresh(e,this.refreshToken),this.accessToken):null):this.accessToken}clearRefreshToken(){this.refreshToken=null}async refresh(e,t){const{accessToken:n,refreshToken:i,expiresIn:r}=await async function(e,t){const n=await Tc(e,{},(async()=>{const n=L({grant_type:"refresh_token",refresh_token:t}).slice(1),{tokenApiHost:i,apiKey:r}=e.config,s=Ec(e,i,"/v1/token",`key=${r}`),o=await e._getAdditionalHeaders();return o["Content-Type"]="application/x-www-form-urlencoded",yc.fetch()(s,{method:"POST",headers:o,body:n})}));return{accessToken:n.access_token,expiresIn:n.expires_in,refreshToken:n.refresh_token}}(e,t);this.updateTokensAndExpiration(n,i,Number(r))}updateTokensAndExpiration(e,t,n){this.refreshToken=t||null,this.accessToken=e||null,this.expirationTime=Date.now()+1e3*n}static fromJSON(e,t){const{refreshToken:n,accessToken:i,expirationTime:r}=t,s=new Bc;return n&&(uc("string"==typeof n,"internal-error",{appName:e}),s.refreshToken=n),i&&(uc("string"==typeof i,"internal-error",{appName:e}),s.accessToken=i),r&&(uc("number"==typeof r,"internal-error",{appName:e}),s.expirationTime=r),s}toJSON(){return{refreshToken:this.refreshToken,accessToken:this.accessToken,expirationTime:this.expirationTime}}_assign(e){this.accessToken=e.accessToken,this.refreshToken=e.refreshToken,this.expirationTime=e.expirationTime}_clone(){return Object.assign(new Bc,this.toJSON())}_performRefresh(){return dc("not implemented")}}function zc(e,t){uc("string"==typeof e||void 0===e,"internal-error",{appName:t})}class Hc{constructor(e){var{uid:t,auth:n,stsTokenManager:i}=e,r=Za(e,["uid","auth","stsTokenManager"]);this.providerId="firebase",this.proactiveRefresh=new qc(this),this.reloadUserInfo=null,this.reloadListener=null,this.uid=t,this.auth=n,this.stsTokenManager=i,this.accessToken=i.accessToken,this.displayName=r.displayName||null,this.email=r.email||null,this.emailVerified=r.emailVerified||!1,this.phoneNumber=r.phoneNumber||null,this.photoURL=r.photoURL||null,this.isAnonymous=r.isAnonymous||!1,this.tenantId=r.tenantId||null,this.providerData=r.providerData?[...r.providerData]:[],this.metadata=new jc(r.createdAt||void 0,r.lastLoginAt||void 0)}async getIdToken(e){const t=await Uc(this,this.stsTokenManager.getToken(this.auth,e));return uc(t,this.auth,"internal-error"),this.accessToken!==t&&(this.accessToken=t,await this.auth._persistUserIfCurrent(this),this.auth._notifyListenersIfCurrent(this)),t}getIdTokenResult(e){return async function(e,t=!1){const n=K(e),i=await n.getIdToken(t),r=Mc(i);uc(r&&r.exp&&r.auth_time&&r.iat,n.auth,"internal-error");const s="object"==typeof r.firebase?r.firebase:void 0,o=null==s?void 0:s.sign_in_provider;return{claims:r,token:i,authTime:xc(Lc(r.auth_time)),issuedAtTime:xc(Lc(r.iat)),expirationTime:xc(Lc(r.exp)),signInProvider:o||null,signInSecondFactor:(null==s?void 0:s.sign_in_second_factor)||null}}(this,e)}reload(){return async function(e){const t=K(e);await Wc(t),await t.auth._persistUserIfCurrent(t),t.auth._notifyListenersIfCurrent(t)}(this)}_assign(e){this!==e&&(uc(this.uid===e.uid,this.auth,"internal-error"),this.displayName=e.displayName,this.photoURL=e.photoURL,this.email=e.email,this.emailVerified=e.emailVerified,this.phoneNumber=e.phoneNumber,this.isAnonymous=e.isAnonymous,this.tenantId=e.tenantId,this.providerData=e.providerData.map((e=>Object.assign({},e))),this.metadata._copy(e.metadata),this.stsTokenManager._assign(e.stsTokenManager))}_clone(e){const t=new Hc(Object.assign(Object.assign({},this),{auth:e,stsTokenManager:this.stsTokenManager._clone()}));return t.metadata._copy(this.metadata),t}_onReload(e){uc(!this.reloadListener,this.auth,"internal-error"),this.reloadListener=e,this.reloadUserInfo&&(this._notifyReloadListener(this.reloadUserInfo),this.reloadUserInfo=null)}_notifyReloadListener(e){this.reloadListener?this.reloadListener(e):this.reloadUserInfo=e}_startProactiveRefresh(){this.proactiveRefresh._start()}_stopProactiveRefresh(){this.proactiveRefresh._stop()}async _updateTokensIfNecessary(e,t=!1){let n=!1;e.idToken&&e.idToken!==this.stsTokenManager.accessToken&&(this.stsTokenManager.updateFromServerResponse(e),n=!0),t&&await Wc(this),await this.auth._persistUserIfCurrent(this),n&&this.auth._notifyListenersIfCurrent(this)}async delete(){if(ct(this.auth.app))return Promise.reject(cc(this.auth));const e=await this.getIdToken();return await Uc(this,async function(e,t){return Cc(e,"POST","/v1/accounts:delete",t)}(this.auth,{idToken:e})),this.stsTokenManager.clearRefreshToken(),this.auth.signOut()}toJSON(){return Object.assign(Object.assign({uid:this.uid,email:this.email||void 0,emailVerified:this.emailVerified,displayName:this.displayName||void 0,isAnonymous:this.isAnonymous,photoURL:this.photoURL||void 0,phoneNumber:this.phoneNumber||void 0,tenantId:this.tenantId||void 0,providerData:this.providerData.map((e=>Object.assign({},e))),stsTokenManager:this.stsTokenManager.toJSON(),_redirectEventId:this._redirectEventId},this.metadata.toJSON()),{apiKey:this.auth.config.apiKey,appName:this.auth.name})}get refreshToken(){return this.stsTokenManager.refreshToken||""}static _fromJSON(e,t){var n,i,r,s,o,a,c,l;const h=null!==(n=t.displayName)&&void 0!==n?n:void 0,u=null!==(i=t.email)&&void 0!==i?i:void 0,d=null!==(r=t.phoneNumber)&&void 0!==r?r:void 0,p=null!==(s=t.photoURL)&&void 0!==s?s:void 0,f=null!==(o=t.tenantId)&&void 0!==o?o:void 0,_=null!==(a=t._redirectEventId)&&void 0!==a?a:void 0,m=null!==(c=t.createdAt)&&void 0!==c?c:void 0,g=null!==(l=t.lastLoginAt)&&void 0!==l?l:void 0,{uid:v,emailVerified:y,isAnonymous:w,providerData:b,stsTokenManager:I}=t;uc(v&&I,e,"internal-error");const C=Bc.fromJSON(this.name,I);uc("string"==typeof v,e,"internal-error"),zc(h,e.name),zc(u,e.name),uc("boolean"==typeof y,e,"internal-error"),uc("boolean"==typeof w,e,"internal-error"),zc(d,e.name),zc(p,e.name),zc(f,e.name),zc(_,e.name),zc(m,e.name),zc(g,e.name);const T=new Hc({uid:v,auth:e,email:u,emailVerified:y,displayName:h,isAnonymous:w,photoURL:p,phoneNumber:d,tenantId:f,stsTokenManager:C,createdAt:m,lastLoginAt:g});return b&&Array.isArray(b)&&(T.providerData=b.map((e=>Object.assign({},e)))),_&&(T._redirectEventId=_),T}static async _fromIdTokenResponse(e,t,n=!1){const i=new Bc;i.updateFromServerResponse(t);const r=new Hc({uid:t.localId,auth:e,stsTokenManager:i,isAnonymous:n});return await Wc(r),r}static async _fromGetAccountInfoResponse(e,t,n){const i=t.users[0];uc(void 0!==i.localId,"internal-error");const r=void 0!==i.providerUserInfo?Vc(i.providerUserInfo):[],s=!(i.email&&i.passwordHash||(null==r?void 0:r.length)),o=new Bc;o.updateFromIdToken(n);const a=new Hc({uid:i.localId,auth:e,stsTokenManager:o,isAnonymous:s}),c={uid:i.localId,displayName:i.displayName||null,photoURL:i.photoUrl||null,email:i.email||null,emailVerified:i.emailVerified||!1,phoneNumber:i.phoneNumber||null,tenantId:i.tenantId||null,providerData:r,metadata:new jc(i.createdAt,i.lastLoginAt),isAnonymous:!(i.email&&i.passwordHash||(null==r?void 0:r.length))};return Object.assign(a,c),a}}const $c=new Map;function Kc(e){pc(e instanceof Function,"Expected a class definition");let t=$c.get(e);return t?(pc(t instanceof e,"Instance stored in cache mismatched with class"),t):(t=new e,$c.set(e,t),t)}class Gc{constructor(){this.type="NONE",this.storage={}}async _isAvailable(){return!0}async _set(e,t){this.storage[e]=t}async _get(e){const t=this.storage[e];return void 0===t?null:t}async _remove(e){delete this.storage[e]}_addListener(e,t){}_removeListener(e,t){}}Gc.type="NONE";const Yc=Gc;function Jc(e,t,n){return`firebase:${e}:${t}:${n}`}class Qc{constructor(e,t,n){this.persistence=e,this.auth=t,this.userKey=n;const{config:i,name:r}=this.auth;this.fullUserKey=Jc(this.userKey,i.apiKey,r),this.fullPersistenceKey=Jc("persistence",i.apiKey,r),this.boundEventHandler=t._onStorageEvent.bind(t),this.persistence._addListener(this.fullUserKey,this.boundEventHandler)}setCurrentUser(e){return this.persistence._set(this.fullUserKey,e.toJSON())}async getCurrentUser(){const e=await this.persistence._get(this.fullUserKey);return e?Hc._fromJSON(this.auth,e):null}removeCurrentUser(){return this.persistence._remove(this.fullUserKey)}savePersistenceForRedirect(){return this.persistence._set(this.fullPersistenceKey,this.persistence.type)}async setPersistence(e){if(this.persistence===e)return;const t=await this.getCurrentUser();return await this.removeCurrentUser(),this.persistence=e,t?this.setCurrentUser(t):void 0}delete(){this.persistence._removeListener(this.fullUserKey,this.boundEventHandler)}static async create(e,t,n="authUser"){if(!t.length)return new Qc(Kc(Yc),e,n);const i=(await Promise.all(t.map((async e=>{if(await e._isAvailable())return e})))).filter((e=>e));let r=i[0]||Kc(Yc);const s=Jc(n,e.config.apiKey,e.name);let o=null;for(const n of t)try{const t=await n._get(s);if(t){const i=Hc._fromJSON(e,t);n!==r&&(o=i),r=n;break}}catch(e){}const a=i.filter((e=>e._shouldAllowMigration));return r._shouldAllowMigration&&a.length?(r=a[0],o&&await r._set(s,o.toJSON()),await Promise.all(t.map((async e=>{if(e!==r)try{await e._remove(s)}catch(e){}}))),new Qc(r,e,n)):new Qc(r,e,n)}}function Xc(e){const t=e.toLowerCase();if(t.includes("opera/")||t.includes("opr/")||t.includes("opios/"))return"Opera";if(nl(t))return"IEMobile";if(t.includes("msie")||t.includes("trident/"))return"IE";if(t.includes("edge/"))return"Edge";if(Zc(t))return"Firefox";if(t.includes("silk/"))return"Silk";if(rl(t))return"Blackberry";if(sl(t))return"Webos";if(el(t))return"Safari";if((t.includes("chrome/")||tl(t))&&!t.includes("edge/"))return"Chrome";if(il(t))return"Android";{const t=/([a-zA-Z\d\.]+)\/[a-zA-Z\d\.]*$/,n=e.match(t);if(2===(null==n?void 0:n.length))return n[1]}return"Other"}function Zc(e=_()){return/firefox\//i.test(e)}function el(e=_()){const t=e.toLowerCase();return t.includes("safari/")&&!t.includes("chrome/")&&!t.includes("crios/")&&!t.includes("android")}function tl(e=_()){return/crios\//i.test(e)}function nl(e=_()){return/iemobile/i.test(e)}function il(e=_()){return/android/i.test(e)}function rl(e=_()){return/blackberry/i.test(e)}function sl(e=_()){return/webos/i.test(e)}function ol(e=_()){return/iphone|ipad|ipod/i.test(e)||/macintosh/i.test(e)&&/mobile/i.test(e)}function al(e=_()){return ol(e)||il(e)||sl(e)||rl(e)||/windows phone/i.test(e)||nl(e)}function cl(e,t=[]){let n;switch(e){case"Browser":n=Xc(_());break;case"Worker":n=`${Xc(_())}-${e}`;break;default:n=e}const i=t.length?t.join(","):"FirebaseCore-web";return`${n}/JsCore/${pt}/${i}`}class ll{constructor(e){this.auth=e,this.queue=[]}pushCallback(e,t){const n=t=>new Promise(((n,i)=>{try{n(e(t))}catch(e){i(e)}}));n.onAbort=t,this.queue.push(n);const i=this.queue.length-1;return()=>{this.queue[i]=()=>Promise.resolve()}}async runMiddleware(e){if(this.auth.currentUser===e)return;const t=[];try{for(const n of this.queue)await n(e),n.onAbort&&t.push(n.onAbort)}catch(e){t.reverse();for(const e of t)try{e()}catch(e){}throw this.auth._errorFactory.create("login-blocked",{originalMessage:null==e?void 0:e.message})}}}class hl{constructor(e){var t,n,i,r;const s=e.customStrengthOptions;this.customStrengthOptions={},this.customStrengthOptions.minPasswordLength=null!==(t=s.minPasswordLength)&&void 0!==t?t:6,s.maxPasswordLength&&(this.customStrengthOptions.maxPasswordLength=s.maxPasswordLength),void 0!==s.containsLowercaseCharacter&&(this.customStrengthOptions.containsLowercaseLetter=s.containsLowercaseCharacter),void 0!==s.containsUppercaseCharacter&&(this.customStrengthOptions.containsUppercaseLetter=s.containsUppercaseCharacter),void 0!==s.containsNumericCharacter&&(this.customStrengthOptions.containsNumericCharacter=s.containsNumericCharacter),void 0!==s.containsNonAlphanumericCharacter&&(this.customStrengthOptions.containsNonAlphanumericCharacter=s.containsNonAlphanumericCharacter),this.enforcementState=e.enforcementState,"ENFORCEMENT_STATE_UNSPECIFIED"===this.enforcementState&&(this.enforcementState="OFF"),this.allowedNonAlphanumericCharacters=null!==(i=null===(n=e.allowedNonAlphanumericCharacters)||void 0===n?void 0:n.join(""))&&void 0!==i?i:"",this.forceUpgradeOnSignin=null!==(r=e.forceUpgradeOnSignin)&&void 0!==r&&r,this.schemaVersion=e.schemaVersion}validatePassword(e){var t,n,i,r,s,o;const a={isValid:!0,passwordPolicy:this};return this.validatePasswordLengthOptions(e,a),this.validatePasswordCharacterOptions(e,a),a.isValid&&(a.isValid=null===(t=a.meetsMinPasswordLength)||void 0===t||t),a.isValid&&(a.isValid=null===(n=a.meetsMaxPasswordLength)||void 0===n||n),a.isValid&&(a.isValid=null===(i=a.containsLowercaseLetter)||void 0===i||i),a.isValid&&(a.isValid=null===(r=a.containsUppercaseLetter)||void 0===r||r),a.isValid&&(a.isValid=null===(s=a.containsNumericCharacter)||void 0===s||s),a.isValid&&(a.isValid=null===(o=a.containsNonAlphanumericCharacter)||void 0===o||o),a}validatePasswordLengthOptions(e,t){const n=this.customStrengthOptions.minPasswordLength,i=this.customStrengthOptions.maxPasswordLength;n&&(t.meetsMinPasswordLength=e.length>=n),i&&(t.meetsMaxPasswordLength=e.length<=i)}validatePasswordCharacterOptions(e,t){let n;this.updatePasswordCharacterOptionsStatuses(t,!1,!1,!1,!1);for(let i=0;i="a"&&n<="z",n>="A"&&n<="Z",n>="0"&&n<="9",this.allowedNonAlphanumericCharacters.includes(n))}updatePasswordCharacterOptionsStatuses(e,t,n,i,r){this.customStrengthOptions.containsLowercaseLetter&&(e.containsLowercaseLetter||(e.containsLowercaseLetter=t)),this.customStrengthOptions.containsUppercaseLetter&&(e.containsUppercaseLetter||(e.containsUppercaseLetter=n)),this.customStrengthOptions.containsNumericCharacter&&(e.containsNumericCharacter||(e.containsNumericCharacter=i)),this.customStrengthOptions.containsNonAlphanumericCharacter&&(e.containsNonAlphanumericCharacter||(e.containsNonAlphanumericCharacter=r))}}class ul{constructor(e,t,n,i){this.app=e,this.heartbeatServiceProvider=t,this.appCheckServiceProvider=n,this.config=i,this.currentUser=null,this.emulatorConfig=null,this.operations=Promise.resolve(),this.authStateSubscription=new pl(this),this.idTokenSubscription=new pl(this),this.beforeStateQueue=new ll(this),this.redirectUser=null,this.isProactiveRefreshEnabled=!1,this.EXPECTED_PASSWORD_POLICY_SCHEMA_VERSION=1,this._canInitEmulator=!0,this._isInitialized=!1,this._deleted=!1,this._initializationPromise=null,this._popupRedirectResolver=null,this._errorFactory=nc,this._agentRecaptchaConfig=null,this._tenantRecaptchaConfigs={},this._projectPasswordPolicy=null,this._tenantPasswordPolicies={},this.lastNotifiedUid=void 0,this.languageCode=null,this.tenantId=null,this.settings={appVerificationDisabledForTesting:!1},this.frameworks=[],this.name=e.name,this.clientVersion=i.sdkClientVersion}_initializeWithPersistence(e,t){return t&&(this._popupRedirectResolver=Kc(t)),this._initializationPromise=this.queue((async()=>{var n,i;if(!this._deleted&&(this.persistenceManager=await Qc.create(this,e),!this._deleted)){if(null===(n=this._popupRedirectResolver)||void 0===n?void 0:n._shouldInitProactively)try{await this._popupRedirectResolver._initialize(this)}catch(e){}await this.initializeCurrentUser(t),this.lastNotifiedUid=(null===(i=this.currentUser)||void 0===i?void 0:i.uid)||null,this._deleted||(this._isInitialized=!0)}})),this._initializationPromise}async _onStorageEvent(){if(this._deleted)return;const e=await this.assertedPersistence.getCurrentUser();return this.currentUser||e?this.currentUser&&e&&this.currentUser.uid===e.uid?(this._currentUser._assign(e),void await this.currentUser.getIdToken()):void await this._updateCurrentUser(e,!0):void 0}async initializeCurrentUserFromIdToken(e){try{const t=await Dc(this,{idToken:e}),n=await Hc._fromGetAccountInfoResponse(this,t,e);await this.directlySetCurrentUser(n)}catch(e){console.warn("FirebaseServerApp could not login user with provided authIdToken: ",e),await this.directlySetCurrentUser(null)}}async initializeCurrentUser(e){var t;if(ct(this.app)){const e=this.app.settings.authIdToken;return e?new Promise((t=>{setTimeout((()=>this.initializeCurrentUserFromIdToken(e).then(t,t)))})):this.directlySetCurrentUser(null)}const n=await this.assertedPersistence.getCurrentUser();let i=n,r=!1;if(e&&this.config.authDomain){await this.getOrInitRedirectPersistenceManager();const n=null===(t=this.redirectUser)||void 0===t?void 0:t._redirectEventId,s=null==i?void 0:i._redirectEventId,o=await this.tryRedirectSignIn(e);n&&n!==s||!(null==o?void 0:o.user)||(i=o.user,r=!0)}if(!i)return this.directlySetCurrentUser(null);if(!i._redirectEventId){if(r)try{await this.beforeStateQueue.runMiddleware(i)}catch(e){i=n,this._popupRedirectResolver._overrideRedirectResult(this,(()=>Promise.reject(e)))}return i?this.reloadAndSetCurrentUserOrClear(i):this.directlySetCurrentUser(null)}return uc(this._popupRedirectResolver,this,"argument-error"),await this.getOrInitRedirectPersistenceManager(),this.redirectUser&&this.redirectUser._redirectEventId===i._redirectEventId?this.directlySetCurrentUser(i):this.reloadAndSetCurrentUserOrClear(i)}async tryRedirectSignIn(e){let t=null;try{t=await this._popupRedirectResolver._completeRedirectFn(this,e,!0)}catch(e){await this._setRedirectUser(null)}return t}async reloadAndSetCurrentUserOrClear(e){try{await Wc(e)}catch(e){if("auth/network-request-failed"!==(null==e?void 0:e.code))return this.directlySetCurrentUser(null)}return this.directlySetCurrentUser(e)}useDeviceLanguage(){this.languageCode=function(){if("undefined"==typeof navigator)return null;const e=navigator;return e.languages&&e.languages[0]||e.language||null}()}async _delete(){this._deleted=!0}async updateCurrentUser(e){if(ct(this.app))return Promise.reject(cc(this));const t=e?K(e):null;return t&&uc(t.auth.config.apiKey===this.config.apiKey,this,"invalid-user-token"),this._updateCurrentUser(t&&t._clone(this))}async _updateCurrentUser(e,t=!1){if(!this._deleted)return e&&uc(this.tenantId===e.tenantId,this,"tenant-id-mismatch"),t||await this.beforeStateQueue.runMiddleware(e),this.queue((async()=>{await this.directlySetCurrentUser(e),this.notifyAuthListeners()}))}async signOut(){return ct(this.app)?Promise.reject(cc(this)):(await this.beforeStateQueue.runMiddleware(null),(this.redirectPersistenceManager||this._popupRedirectResolver)&&await this._setRedirectUser(null),this._updateCurrentUser(null,!0))}setPersistence(e){return ct(this.app)?Promise.reject(cc(this)):this.queue((async()=>{await this.assertedPersistence.setPersistence(Kc(e))}))}_getRecaptchaConfig(){return null==this.tenantId?this._agentRecaptchaConfig:this._tenantRecaptchaConfigs[this.tenantId]}async validatePassword(e){this._getPasswordPolicyInternal()||await this._updatePasswordPolicy();const t=this._getPasswordPolicyInternal();return t.schemaVersion!==this.EXPECTED_PASSWORD_POLICY_SCHEMA_VERSION?Promise.reject(this._errorFactory.create("unsupported-password-policy-schema-version",{})):t.validatePassword(e)}_getPasswordPolicyInternal(){return null===this.tenantId?this._projectPasswordPolicy:this._tenantPasswordPolicies[this.tenantId]}async _updatePasswordPolicy(){const e=await async function(e,t={}){return Cc(e,"GET","/v2/passwordPolicy",Ic(e,t))}(this),t=new hl(e);null===this.tenantId?this._projectPasswordPolicy=t:this._tenantPasswordPolicies[this.tenantId]=t}_getPersistence(){return this.assertedPersistence.persistence.type}_updateErrorMap(e){this._errorFactory=new T("auth","Firebase",e())}onAuthStateChanged(e,t,n){return this.registerStateListener(this.authStateSubscription,e,t,n)}beforeAuthStateChanged(e,t){return this.beforeStateQueue.pushCallback(e,t)}onIdTokenChanged(e,t,n){return this.registerStateListener(this.idTokenSubscription,e,t,n)}authStateReady(){return new Promise(((e,t)=>{if(this.currentUser)e();else{const n=this.onAuthStateChanged((()=>{n(),e()}),t)}}))}async revokeAccessToken(e){if(this.currentUser){const t={providerId:"apple.com",tokenType:"ACCESS_TOKEN",token:e,idToken:await this.currentUser.getIdToken()};null!=this.tenantId&&(t.tenantId=this.tenantId),await async function(e,t){return Cc(e,"POST","/v2/accounts:revokeToken",Ic(e,t))}(this,t)}}toJSON(){var e;return{apiKey:this.config.apiKey,authDomain:this.config.authDomain,appName:this.name,currentUser:null===(e=this._currentUser)||void 0===e?void 0:e.toJSON()}}async _setRedirectUser(e,t){const n=await this.getOrInitRedirectPersistenceManager(t);return null===e?n.removeCurrentUser():n.setCurrentUser(e)}async getOrInitRedirectPersistenceManager(e){if(!this.redirectPersistenceManager){const t=e&&Kc(e)||this._popupRedirectResolver;uc(t,this,"argument-error"),this.redirectPersistenceManager=await Qc.create(this,[Kc(t._redirectPersistence)],"redirectUser"),this.redirectUser=await this.redirectPersistenceManager.getCurrentUser()}return this.redirectPersistenceManager}async _redirectUserForId(e){var t,n;return this._isInitialized&&await this.queue((async()=>{})),(null===(t=this._currentUser)||void 0===t?void 0:t._redirectEventId)===e?this._currentUser:(null===(n=this.redirectUser)||void 0===n?void 0:n._redirectEventId)===e?this.redirectUser:null}async _persistUserIfCurrent(e){if(e===this.currentUser)return this.queue((async()=>this.directlySetCurrentUser(e)))}_notifyListenersIfCurrent(e){e===this.currentUser&&this.notifyAuthListeners()}_key(){return`${this.config.authDomain}:${this.config.apiKey}:${this.name}`}_startProactiveRefresh(){this.isProactiveRefreshEnabled=!0,this.currentUser&&this._currentUser._startProactiveRefresh()}_stopProactiveRefresh(){this.isProactiveRefreshEnabled=!1,this.currentUser&&this._currentUser._stopProactiveRefresh()}get _currentUser(){return this.currentUser}notifyAuthListeners(){var e,t;if(!this._isInitialized)return;this.idTokenSubscription.next(this.currentUser);const n=null!==(t=null===(e=this.currentUser)||void 0===e?void 0:e.uid)&&void 0!==t?t:null;this.lastNotifiedUid!==n&&(this.lastNotifiedUid=n,this.authStateSubscription.next(this.currentUser))}registerStateListener(e,t,n,i){if(this._deleted)return()=>{};const r="function"==typeof t?t:t.next.bind(t);let s=!1;const o=this._isInitialized?Promise.resolve():this._initializationPromise;if(uc(o,this,"internal-error"),o.then((()=>{s||r(this.currentUser)})),"function"==typeof t){const r=e.addObserver(t,n,i);return()=>{s=!0,r()}}{const n=e.addObserver(t);return()=>{s=!0,n()}}}async directlySetCurrentUser(e){this.currentUser&&this.currentUser!==e&&this._currentUser._stopProactiveRefresh(),e&&this.isProactiveRefreshEnabled&&e._startProactiveRefresh(),this.currentUser=e,e?await this.assertedPersistence.setCurrentUser(e):await this.assertedPersistence.removeCurrentUser()}queue(e){return this.operations=this.operations.then(e,e),this.operations}get assertedPersistence(){return uc(this.persistenceManager,this,"internal-error"),this.persistenceManager}_logFramework(e){e&&!this.frameworks.includes(e)&&(this.frameworks.push(e),this.frameworks.sort(),this.clientVersion=cl(this.config.clientPlatform,this._getFrameworks()))}_getFrameworks(){return this.frameworks}async _getAdditionalHeaders(){var e;const t={"X-Client-Version":this.clientVersion};this.app.options.appId&&(t["X-Firebase-gmpid"]=this.app.options.appId);const n=await(null===(e=this.heartbeatServiceProvider.getImmediate({optional:!0}))||void 0===e?void 0:e.getHeartbeatsHeader());n&&(t["X-Firebase-Client"]=n);const i=await this._getAppCheckToken();return i&&(t["X-Firebase-AppCheck"]=i),t}async _getAppCheckToken(){var e;const t=await(null===(e=this.appCheckServiceProvider.getImmediate({optional:!0}))||void 0===e?void 0:e.getToken());return(null==t?void 0:t.error)&&function(e,...t){ic.logLevel<=Z.WARN&&ic.warn(`Auth (${pt}): ${e}`,...t)}(`Error while retrieving App Check token: ${t.error}`),null==t?void 0:t.token}}function dl(e){return K(e)}class pl{constructor(e){this.auth=e,this.observer=null,this.addObserver=q((e=>this.observer=e))}get next(){return uc(this.observer,this.auth,"internal-error"),this.observer.next.bind(this.observer)}}let fl={async loadJS(){throw new Error("Unable to load external scripts")},recaptchaV2Script:"",recaptchaEnterpriseScript:"",gapiScript:""};function _l(e){return fl.loadJS(e)}function ml(e){return`__${e}${Math.floor(1e6*Math.random())}`}class gl{constructor(e){this.type="recaptcha-enterprise",this.auth=dl(e)}async verify(e="verify",t=!1){function n(t,n,i){const r=window.grecaptcha;Ac(r)?r.enterprise.ready((()=>{r.enterprise.execute(t,{action:e}).then((e=>{n(e)})).catch((()=>{n("NO_RECAPTCHA")}))})):i(Error("No reCAPTCHA enterprise script loaded."))}return new Promise(((e,i)=>{(async function(e){if(!t){if(null==e.tenantId&&null!=e._agentRecaptchaConfig)return e._agentRecaptchaConfig.siteKey;if(null!=e.tenantId&&void 0!==e._tenantRecaptchaConfigs[e.tenantId])return e._tenantRecaptchaConfigs[e.tenantId].siteKey}return new Promise((async(t,n)=>{(async function(e,t){return Cc(e,"GET","/v2/recaptchaConfig",Ic(e,t))})(e,{clientType:"CLIENT_TYPE_WEB",version:"RECAPTCHA_ENTERPRISE"}).then((i=>{if(void 0!==i.recaptchaKey){const n=new Oc(i);return null==e.tenantId?e._agentRecaptchaConfig=n:e._tenantRecaptchaConfigs[e.tenantId]=n,t(n.siteKey)}n(new Error("recaptcha Enterprise site key undefined"))})).catch((e=>{n(e)}))}))})(this.auth).then((r=>{if(!t&&Ac(window.grecaptcha))n(r,e,i);else{if("undefined"==typeof window)return void i(new Error("RecaptchaVerifier is only supported in browser"));let t=fl.recaptchaEnterpriseScript;0!==t.length&&(t+=r),_l(t).then((()=>{n(r,e,i)})).catch((e=>{i(e)}))}})).catch((e=>{i(e)}))}))}}async function vl(e,t,n,i=!1){const r=new gl(e);let s;try{s=await r.verify(n)}catch(e){s=await r.verify(n,!0)}const o=Object.assign({},t);return i?Object.assign(o,{captchaResp:s}):Object.assign(o,{captchaResponse:s}),Object.assign(o,{clientType:"CLIENT_TYPE_WEB"}),Object.assign(o,{recaptchaVersion:"RECAPTCHA_ENTERPRISE"}),o}async function yl(e,t,n,i){var r;if(null===(r=e._getRecaptchaConfig())||void 0===r?void 0:r.isProviderEnabled("EMAIL_PASSWORD_PROVIDER")){const r=await vl(e,t,n,"getOobCode"===n);return i(e,r)}return i(e,t).catch((async r=>{if("auth/missing-recaptcha-token"===r.code){console.log(`${n} is protected by reCAPTCHA Enterprise for this project. Automatically triggering the reCAPTCHA flow and restarting the flow.`);const r=await vl(e,t,n,"getOobCode"===n);return i(e,r)}return Promise.reject(r)}))}function wl(e){const t=e.indexOf(":");return t<0?"":e.substr(0,t+1)}function bl(e){if(!e)return null;const t=Number(e);return isNaN(t)?null:t}class Il{constructor(e,t){this.providerId=e,this.signInMethod=t}toJSON(){return dc("not implemented")}_getIdTokenResponse(e){return dc("not implemented")}_linkToIdToken(e,t){return dc("not implemented")}_getReauthenticationResolver(e){return dc("not implemented")}}async function Cl(e,t){return Cc(e,"POST","/v1/accounts:resetPassword",Ic(e,t))}async function Tl(e,t){return Cc(e,"POST","/v1/accounts:signUp",t)}async function kl(e,t){return kc(e,"POST","/v1/accounts:signInWithPassword",Ic(e,t))}async function El(e,t){return Cc(e,"POST","/v1/accounts:sendOobCode",Ic(e,t))}async function Sl(e,t){return El(e,t)}async function Pl(e,t){return El(e,t)}class Rl extends Il{constructor(e,t,n,i=null){super("password",n),this._email=e,this._password=t,this._tenantId=i}static _fromEmailAndPassword(e,t){return new Rl(e,t,"password")}static _fromEmailAndCode(e,t,n=null){return new Rl(e,t,"emailLink",n)}toJSON(){return{email:this._email,password:this._password,signInMethod:this.signInMethod,tenantId:this._tenantId}}static fromJSON(e){const t="string"==typeof e?JSON.parse(e):e;if((null==t?void 0:t.email)&&(null==t?void 0:t.password)){if("password"===t.signInMethod)return this._fromEmailAndPassword(t.email,t.password);if("emailLink"===t.signInMethod)return this._fromEmailAndCode(t.email,t.password,t.tenantId)}return null}async _getIdTokenResponse(e){switch(this.signInMethod){case"password":return yl(e,{returnSecureToken:!0,email:this._email,password:this._password,clientType:"CLIENT_TYPE_WEB"},"signInWithPassword",kl);case"emailLink":return async function(e,t){return kc(e,"POST","/v1/accounts:signInWithEmailLink",Ic(e,t))}(e,{email:this._email,oobCode:this._password});default:sc(e,"internal-error")}}async _linkToIdToken(e,t){switch(this.signInMethod){case"password":return yl(e,{idToken:t,returnSecureToken:!0,email:this._email,password:this._password,clientType:"CLIENT_TYPE_WEB"},"signUpPassword",Tl);case"emailLink":return async function(e,t){return kc(e,"POST","/v1/accounts:signInWithEmailLink",Ic(e,t))}(e,{idToken:t,email:this._email,oobCode:this._password});default:sc(e,"internal-error")}}_getReauthenticationResolver(e){return this._getIdTokenResponse(e)}}async function Nl(e,t){return kc(e,"POST","/v1/accounts:signInWithIdp",Ic(e,t))}class Al extends Il{constructor(){super(...arguments),this.pendingToken=null}static _fromParams(e){const t=new Al(e.providerId,e.signInMethod);return e.idToken||e.accessToken?(e.idToken&&(t.idToken=e.idToken),e.accessToken&&(t.accessToken=e.accessToken),e.nonce&&!e.pendingToken&&(t.nonce=e.nonce),e.pendingToken&&(t.pendingToken=e.pendingToken)):e.oauthToken&&e.oauthTokenSecret?(t.accessToken=e.oauthToken,t.secret=e.oauthTokenSecret):sc("argument-error"),t}toJSON(){return{idToken:this.idToken,accessToken:this.accessToken,secret:this.secret,nonce:this.nonce,pendingToken:this.pendingToken,providerId:this.providerId,signInMethod:this.signInMethod}}static fromJSON(e){const t="string"==typeof e?JSON.parse(e):e,{providerId:n,signInMethod:i}=t,r=Za(t,["providerId","signInMethod"]);if(!n||!i)return null;const s=new Al(n,i);return s.idToken=r.idToken||void 0,s.accessToken=r.accessToken||void 0,s.secret=r.secret,s.nonce=r.nonce,s.pendingToken=r.pendingToken||null,s}_getIdTokenResponse(e){return Nl(e,this.buildRequest())}_linkToIdToken(e,t){const n=this.buildRequest();return n.idToken=t,Nl(e,n)}_getReauthenticationResolver(e){const t=this.buildRequest();return t.autoCreate=!1,Nl(e,t)}buildRequest(){const e={requestUri:"http://localhost",returnSecureToken:!0};if(this.pendingToken)e.pendingToken=this.pendingToken;else{const t={};this.idToken&&(t.id_token=this.idToken),this.accessToken&&(t.access_token=this.accessToken),this.secret&&(t.oauth_token_secret=this.secret),t.providerId=this.providerId,this.nonce&&!this.pendingToken&&(t.nonce=this.nonce),e.postBody=L(t)}return e}}const Ol={USER_NOT_FOUND:"user-not-found"};class Dl extends Il{constructor(e){super("phone","phone"),this.params=e}static _fromVerification(e,t){return new Dl({verificationId:e,verificationCode:t})}static _fromTokenResponse(e,t){return new Dl({phoneNumber:e,temporaryProof:t})}_getIdTokenResponse(e){return async function(e,t){return kc(e,"POST","/v1/accounts:signInWithPhoneNumber",Ic(e,t))}(e,this._makeVerificationRequest())}_linkToIdToken(e,t){return async function(e,t){const n=await kc(e,"POST","/v1/accounts:signInWithPhoneNumber",Ic(e,t));if(n.temporaryProof)throw Rc(e,"account-exists-with-different-credential",n);return n}(e,Object.assign({idToken:t},this._makeVerificationRequest()))}_getReauthenticationResolver(e){return async function(e,t){return kc(e,"POST","/v1/accounts:signInWithPhoneNumber",Ic(e,Object.assign(Object.assign({},t),{operation:"REAUTH"})),Ol)}(e,this._makeVerificationRequest())}_makeVerificationRequest(){const{temporaryProof:e,phoneNumber:t,verificationId:n,verificationCode:i}=this.params;return e&&t?{temporaryProof:e,phoneNumber:t}:{sessionInfo:n,code:i}}toJSON(){const e={providerId:this.providerId};return this.params.phoneNumber&&(e.phoneNumber=this.params.phoneNumber),this.params.temporaryProof&&(e.temporaryProof=this.params.temporaryProof),this.params.verificationCode&&(e.verificationCode=this.params.verificationCode),this.params.verificationId&&(e.verificationId=this.params.verificationId),e}static fromJSON(e){"string"==typeof e&&(e=JSON.parse(e));const{verificationId:t,verificationCode:n,phoneNumber:i,temporaryProof:r}=e;return n||t||i||r?new Dl({verificationId:t,verificationCode:n,phoneNumber:i,temporaryProof:r}):null}}class xl{constructor(e){var t,n,i,r,s,o;const a=M(F(e)),c=null!==(t=a.apiKey)&&void 0!==t?t:null,l=null!==(n=a.oobCode)&&void 0!==n?n:null,h=function(e){switch(e){case"recoverEmail":return"RECOVER_EMAIL";case"resetPassword":return"PASSWORD_RESET";case"signIn":return"EMAIL_SIGNIN";case"verifyEmail":return"VERIFY_EMAIL";case"verifyAndChangeEmail":return"VERIFY_AND_CHANGE_EMAIL";case"revertSecondFactorAddition":return"REVERT_SECOND_FACTOR_ADDITION";default:return null}}(null!==(i=a.mode)&&void 0!==i?i:null);uc(c&&l&&h,"argument-error"),this.apiKey=c,this.operation=h,this.code=l,this.continueUrl=null!==(r=a.continueUrl)&&void 0!==r?r:null,this.languageCode=null!==(s=a.languageCode)&&void 0!==s?s:null,this.tenantId=null!==(o=a.tenantId)&&void 0!==o?o:null}static parseLink(e){const t=function(e){const t=M(F(e)).link,n=t?M(F(t)).deep_link_id:null,i=M(F(e)).deep_link_id;return(i?M(F(i)).link:null)||i||n||t||e}(e);try{return new xl(t)}catch(e){return null}}}class Ll{constructor(){this.providerId=Ll.PROVIDER_ID}static credential(e,t){return Rl._fromEmailAndPassword(e,t)}static credentialWithLink(e,t){const n=xl.parseLink(t);return uc(n,"argument-error"),Rl._fromEmailAndCode(e,n.code,n.tenantId)}}Ll.PROVIDER_ID="password",Ll.EMAIL_PASSWORD_SIGN_IN_METHOD="password",Ll.EMAIL_LINK_SIGN_IN_METHOD="emailLink";class Ml{constructor(e){this.providerId=e,this.defaultLanguageCode=null,this.customParameters={}}setDefaultLanguage(e){this.defaultLanguageCode=e}setCustomParameters(e){return this.customParameters=e,this}getCustomParameters(){return this.customParameters}}class Fl extends Ml{constructor(){super(...arguments),this.scopes=[]}addScope(e){return this.scopes.includes(e)||this.scopes.push(e),this}getScopes(){return[...this.scopes]}}class Ul extends Fl{static credentialFromJSON(e){const t="string"==typeof e?JSON.parse(e):e;return uc("providerId"in t&&"signInMethod"in t,"argument-error"),Al._fromParams(t)}credential(e){return this._credential(Object.assign(Object.assign({},e),{nonce:e.rawNonce}))}_credential(e){return uc(e.idToken||e.accessToken,"argument-error"),Al._fromParams(Object.assign(Object.assign({},e),{providerId:this.providerId,signInMethod:this.providerId}))}static credentialFromResult(e){return Ul.oauthCredentialFromTaggedObject(e)}static credentialFromError(e){return Ul.oauthCredentialFromTaggedObject(e.customData||{})}static oauthCredentialFromTaggedObject({_tokenResponse:e}){if(!e)return null;const{oauthIdToken:t,oauthAccessToken:n,oauthTokenSecret:i,pendingToken:r,nonce:s,providerId:o}=e;if(!(n||i||t||r))return null;if(!o)return null;try{return new Ul(o)._credential({idToken:t,accessToken:n,nonce:s,pendingToken:r})}catch(e){return null}}}class ql extends Fl{constructor(){super("facebook.com")}static credential(e){return Al._fromParams({providerId:ql.PROVIDER_ID,signInMethod:ql.FACEBOOK_SIGN_IN_METHOD,accessToken:e})}static credentialFromResult(e){return ql.credentialFromTaggedObject(e)}static credentialFromError(e){return ql.credentialFromTaggedObject(e.customData||{})}static credentialFromTaggedObject({_tokenResponse:e}){if(!e||!("oauthAccessToken"in e))return null;if(!e.oauthAccessToken)return null;try{return ql.credential(e.oauthAccessToken)}catch(e){return null}}}ql.FACEBOOK_SIGN_IN_METHOD="facebook.com",ql.PROVIDER_ID="facebook.com";class jl extends Fl{constructor(){super("google.com"),this.addScope("profile")}static credential(e,t){return Al._fromParams({providerId:jl.PROVIDER_ID,signInMethod:jl.GOOGLE_SIGN_IN_METHOD,idToken:e,accessToken:t})}static credentialFromResult(e){return jl.credentialFromTaggedObject(e)}static credentialFromError(e){return jl.credentialFromTaggedObject(e.customData||{})}static credentialFromTaggedObject({_tokenResponse:e}){if(!e)return null;const{oauthIdToken:t,oauthAccessToken:n}=e;if(!t&&!n)return null;try{return jl.credential(t,n)}catch(e){return null}}}jl.GOOGLE_SIGN_IN_METHOD="google.com",jl.PROVIDER_ID="google.com";class Wl extends Fl{constructor(){super("github.com")}static credential(e){return Al._fromParams({providerId:Wl.PROVIDER_ID,signInMethod:Wl.GITHUB_SIGN_IN_METHOD,accessToken:e})}static credentialFromResult(e){return Wl.credentialFromTaggedObject(e)}static credentialFromError(e){return Wl.credentialFromTaggedObject(e.customData||{})}static credentialFromTaggedObject({_tokenResponse:e}){if(!e||!("oauthAccessToken"in e))return null;if(!e.oauthAccessToken)return null;try{return Wl.credential(e.oauthAccessToken)}catch(e){return null}}}Wl.GITHUB_SIGN_IN_METHOD="github.com",Wl.PROVIDER_ID="github.com";class Vl extends Il{constructor(e,t){super(e,e),this.pendingToken=t}_getIdTokenResponse(e){return Nl(e,this.buildRequest())}_linkToIdToken(e,t){const n=this.buildRequest();return n.idToken=t,Nl(e,n)}_getReauthenticationResolver(e){const t=this.buildRequest();return t.autoCreate=!1,Nl(e,t)}toJSON(){return{signInMethod:this.signInMethod,providerId:this.providerId,pendingToken:this.pendingToken}}static fromJSON(e){const t="string"==typeof e?JSON.parse(e):e,{providerId:n,signInMethod:i,pendingToken:r}=t;return n&&i&&r&&n===i?new Vl(n,r):null}static _create(e,t){return new Vl(e,t)}buildRequest(){return{requestUri:"http://localhost",returnSecureToken:!0,pendingToken:this.pendingToken}}}class Bl extends Ml{constructor(e){uc(e.startsWith("saml."),"argument-error"),super(e)}static credentialFromResult(e){return Bl.samlCredentialFromTaggedObject(e)}static credentialFromError(e){return Bl.samlCredentialFromTaggedObject(e.customData||{})}static credentialFromJSON(e){const t=Vl.fromJSON(e);return uc(t,"argument-error"),t}static samlCredentialFromTaggedObject({_tokenResponse:e}){if(!e)return null;const{pendingToken:t,providerId:n}=e;if(!t||!n)return null;try{return Vl._create(n,t)}catch(e){return null}}}class zl extends Fl{constructor(){super("twitter.com")}static credential(e,t){return Al._fromParams({providerId:zl.PROVIDER_ID,signInMethod:zl.TWITTER_SIGN_IN_METHOD,oauthToken:e,oauthTokenSecret:t})}static credentialFromResult(e){return zl.credentialFromTaggedObject(e)}static credentialFromError(e){return zl.credentialFromTaggedObject(e.customData||{})}static credentialFromTaggedObject({_tokenResponse:e}){if(!e)return null;const{oauthAccessToken:t,oauthTokenSecret:n}=e;if(!t||!n)return null;try{return zl.credential(t,n)}catch(e){return null}}}async function Hl(e,t){return kc(e,"POST","/v1/accounts:signUp",Ic(e,t))}zl.TWITTER_SIGN_IN_METHOD="twitter.com",zl.PROVIDER_ID="twitter.com";class $l{constructor(e){this.user=e.user,this.providerId=e.providerId,this._tokenResponse=e._tokenResponse,this.operationType=e.operationType}static async _fromIdTokenResponse(e,t,n,i=!1){const r=await Hc._fromIdTokenResponse(e,n,i),s=Kl(n);return new $l({user:r,providerId:s,_tokenResponse:n,operationType:t})}static async _forOperation(e,t,n){await e._updateTokensIfNecessary(n,!0);const i=Kl(n);return new $l({user:e,providerId:i,_tokenResponse:n,operationType:t})}}function Kl(e){return e.providerId?e.providerId:"phoneNumber"in e?"phone":null}class Gl extends C{constructor(e,t,n,i){var r;super(t.code,t.message),this.operationType=n,this.user=i,Object.setPrototypeOf(this,Gl.prototype),this.customData={appName:e.name,tenantId:null!==(r=e.tenantId)&&void 0!==r?r:void 0,_serverResponse:t.customData._serverResponse,operationType:n}}static _fromErrorAndOperation(e,t,n,i){return new Gl(e,t,n,i)}}function Yl(e,t,n,i){return("reauthenticate"===t?n._getReauthenticationResolver(e):n._getIdTokenResponse(e)).catch((n=>{if("auth/multi-factor-auth-required"===n.code)throw Gl._fromErrorAndOperation(e,n,t,i);throw n}))}function Jl(e){return new Set(e.map((({providerId:e})=>e)).filter((e=>!!e)))}async function Ql(e,t,n=!1){const i=await Uc(e,t._linkToIdToken(e.auth,await e.getIdToken()),n);return $l._forOperation(e,"link",i)}async function Xl(e,t,n){await Wc(t);const i=!1===e?"provider-already-linked":"no-such-provider";uc(Jl(t.providerData).has(n)===e,t.auth,i)}async function Zl(e,t,n=!1){const{auth:i}=e;if(ct(i.app))return Promise.reject(cc(i));const r="reauthenticate";try{const s=await Uc(e,Yl(i,r,t,e),n);uc(s.idToken,i,"internal-error");const o=Mc(s.idToken);uc(o,i,"internal-error");const{sub:a}=o;return uc(e.uid===a,i,"user-mismatch"),$l._forOperation(e,r,s)}catch(e){throw"auth/user-not-found"===(null==e?void 0:e.code)&&sc(i,"user-mismatch"),e}}async function eh(e,t,n=!1){if(ct(e.app))return Promise.reject(cc(e));const i="signIn",r=await Yl(e,i,t),s=await $l._fromIdTokenResponse(e,i,r);return n||await e._updateCurrentUser(s.user),s}async function th(e,t){return eh(dl(e),t)}async function nh(e,t){const n=K(e);return await Xl(!1,n,t.providerId),Ql(n,t)}async function ih(e,t){return Zl(K(e),t)}class rh{constructor(e,t){this.factorId=e,this.uid=t.mfaEnrollmentId,this.enrollmentTime=new Date(t.enrolledAt).toUTCString(),this.displayName=t.displayName}static _fromServerResponse(e,t){return"phoneInfo"in t?sh._fromServerResponse(e,t):"totpInfo"in t?oh._fromServerResponse(e,t):sc(e,"internal-error")}}class sh extends rh{constructor(e){super("phone",e),this.phoneNumber=e.phoneInfo}static _fromServerResponse(e,t){return new sh(t)}}class oh extends rh{constructor(e){super("totp",e)}static _fromServerResponse(e,t){return new oh(t)}}function ah(e,t,n){var i;uc((null===(i=n.url)||void 0===i?void 0:i.length)>0,e,"invalid-continue-uri"),uc(void 0===n.dynamicLinkDomain||n.dynamicLinkDomain.length>0,e,"invalid-dynamic-link-domain"),t.continueUrl=n.url,t.dynamicLinkDomain=n.dynamicLinkDomain,t.canHandleCodeInApp=n.handleCodeInApp,n.iOS&&(uc(n.iOS.bundleId.length>0,e,"missing-ios-bundle-id"),t.iOSBundleId=n.iOS.bundleId),n.android&&(uc(n.android.packageName.length>0,e,"missing-android-pkg-name"),t.androidInstallApp=n.android.installApp,t.androidMinimumVersionCode=n.android.minimumVersion,t.androidPackageName=n.android.packageName)}async function ch(e){const t=dl(e);t._getPasswordPolicyInternal()&&await t._updatePasswordPolicy()}async function lh(e,t){const n=K(e),i=await Cl(n,{oobCode:t}),r=i.requestType;switch(uc(r,n,"internal-error"),r){case"EMAIL_SIGNIN":break;case"VERIFY_AND_CHANGE_EMAIL":uc(i.newEmail,n,"internal-error");break;case"REVERT_SECOND_FACTOR_ADDITION":uc(i.mfaInfo,n,"internal-error");default:uc(i.email,n,"internal-error")}let s=null;return i.mfaInfo&&(s=rh._fromServerResponse(dl(n),i.mfaInfo)),{data:{email:("VERIFY_AND_CHANGE_EMAIL"===i.requestType?i.newEmail:i.email)||null,previousEmail:("VERIFY_AND_CHANGE_EMAIL"===i.requestType?i.email:i.newEmail)||null,multiFactorInfo:s},operation:r}}async function hh(e,t,n){const{auth:i}=e,r={idToken:await e.getIdToken(),returnSecureToken:!0};t&&(r.email=t),n&&(r.password=n);const s=await Uc(e,async function(e,t){return Cc(e,"POST","/v1/accounts:update",t)}(i,r));await e._updateTokensIfNecessary(s,!0)}class uh{constructor(e,t,n={}){this.isNewUser=e,this.providerId=t,this.profile=n}}class dh extends uh{constructor(e,t,n,i){super(e,t,n),this.username=i}}class ph extends uh{constructor(e,t){super(e,"facebook.com",t)}}class fh extends dh{constructor(e,t){super(e,"github.com",t,"string"==typeof(null==t?void 0:t.login)?null==t?void 0:t.login:null)}}class _h extends uh{constructor(e,t){super(e,"google.com",t)}}class mh extends dh{constructor(e,t,n){super(e,"twitter.com",t,n)}}function gh(e){const{user:t,_tokenResponse:n}=e;return t.isAnonymous&&!n?{providerId:null,isNewUser:!1,profile:null}:function(e){var t,n;if(!e)return null;const{providerId:i}=e,r=e.rawUserInfo?JSON.parse(e.rawUserInfo):{},s=e.isNewUser||"identitytoolkit#SignupNewUserResponse"===e.kind;if(!i&&(null==e?void 0:e.idToken)){const i=null===(n=null===(t=Mc(e.idToken))||void 0===t?void 0:t.firebase)||void 0===n?void 0:n.sign_in_provider;if(i)return new uh(s,"anonymous"!==i&&"custom"!==i?i:null)}if(!i)return null;switch(i){case"facebook.com":return new ph(s,r);case"github.com":return new fh(s,r);case"google.com":return new _h(s,r);case"twitter.com":return new mh(s,r,e.screenName||null);case"custom":case"anonymous":return new uh(s,null);default:return new uh(s,i,r)}}(n)}class vh{constructor(e,t,n){this.type=e,this.credential=t,this.user=n}static _fromIdtoken(e,t){return new vh("enroll",e,t)}static _fromMfaPendingCredential(e){return new vh("signin",e)}toJSON(){const e="enroll"===this.type?"idToken":"pendingCredential";return{multiFactorSession:{[e]:this.credential}}}static fromJSON(e){var t,n;if(null==e?void 0:e.multiFactorSession){if(null===(t=e.multiFactorSession)||void 0===t?void 0:t.pendingCredential)return vh._fromMfaPendingCredential(e.multiFactorSession.pendingCredential);if(null===(n=e.multiFactorSession)||void 0===n?void 0:n.idToken)return vh._fromIdtoken(e.multiFactorSession.idToken)}return null}}class yh{constructor(e,t,n){this.session=e,this.hints=t,this.signInResolver=n}static _fromError(e,t){const n=dl(e),i=t.customData._serverResponse,r=(i.mfaInfo||[]).map((e=>rh._fromServerResponse(n,e)));uc(i.mfaPendingCredential,n,"internal-error");const s=vh._fromMfaPendingCredential(i.mfaPendingCredential);return new yh(s,r,(async e=>{const r=await e._process(n,s);delete i.mfaInfo,delete i.mfaPendingCredential;const o=Object.assign(Object.assign({},i),{idToken:r.idToken,refreshToken:r.refreshToken});switch(t.operationType){case"signIn":const e=await $l._fromIdTokenResponse(n,t.operationType,o);return await n._updateCurrentUser(e.user),e;case"reauthenticate":return uc(t.user,n,"internal-error"),$l._forOperation(t.user,t.operationType,o);default:sc(n,"internal-error")}}))}async resolveSignIn(e){const t=e;return this.signInResolver(t)}}class wh{constructor(e){this.user=e,this.enrolledFactors=[],e._onReload((t=>{t.mfaInfo&&(this.enrolledFactors=t.mfaInfo.map((t=>rh._fromServerResponse(e.auth,t))))}))}static _fromUser(e){return new wh(e)}async getSession(){return vh._fromIdtoken(await this.user.getIdToken(),this.user)}async enroll(e,t){const n=e,i=await this.getSession(),r=await Uc(this.user,n._process(this.user.auth,i,t));return await this.user._updateTokensIfNecessary(r),this.user.reload()}async unenroll(e){const t="string"==typeof e?e:e.uid,n=await this.user.getIdToken();try{const e=await Uc(this.user,(i=this.user.auth,r={idToken:n,mfaEnrollmentId:t},Cc(i,"POST","/v2/accounts/mfaEnrollment:withdraw",Ic(i,r))));this.enrolledFactors=this.enrolledFactors.filter((({uid:e})=>e!==t)),await this.user._updateTokensIfNecessary(e),await this.user.reload()}catch(e){throw e}var i,r}}const bh=new WeakMap,Ih="__sak";class Ch{constructor(e,t){this.storageRetriever=e,this.type=t}_isAvailable(){try{return this.storage?(this.storage.setItem(Ih,"1"),this.storage.removeItem(Ih),Promise.resolve(!0)):Promise.resolve(!1)}catch(e){return Promise.resolve(!1)}}_set(e,t){return this.storage.setItem(e,JSON.stringify(t)),Promise.resolve()}_get(e){const t=this.storage.getItem(e);return Promise.resolve(t?JSON.parse(t):null)}_remove(e){return this.storage.removeItem(e),Promise.resolve()}get storage(){return this.storageRetriever()}}class Th extends Ch{constructor(){super((()=>window.localStorage),"LOCAL"),this.boundEventHandler=(e,t)=>this.onStorageEvent(e,t),this.listeners={},this.localCache={},this.pollTimer=null,this.fallbackToPolling=al(),this._shouldAllowMigration=!0}forAllChangedKeys(e){for(const t of Object.keys(this.listeners)){const n=this.storage.getItem(t),i=this.localCache[t];n!==i&&e(t,i,n)}}onStorageEvent(e,t=!1){if(!e.key)return void this.forAllChangedKeys(((e,t,n)=>{this.notifyListeners(e,n)}));const n=e.key;t?this.detachListener():this.stopPolling();const i=()=>{const e=this.storage.getItem(n);(t||this.localCache[n]!==e)&&this.notifyListeners(n,e)},r=this.storage.getItem(n);b()&&10===document.documentMode&&r!==e.newValue&&e.newValue!==e.oldValue?setTimeout(i,10):i()}notifyListeners(e,t){this.localCache[e]=t;const n=this.listeners[e];if(n)for(const e of Array.from(n))e(t?JSON.parse(t):t)}startPolling(){this.stopPolling(),this.pollTimer=setInterval((()=>{this.forAllChangedKeys(((e,t,n)=>{this.onStorageEvent(new StorageEvent("storage",{key:e,oldValue:t,newValue:n}),!0)}))}),1e3)}stopPolling(){this.pollTimer&&(clearInterval(this.pollTimer),this.pollTimer=null)}attachListener(){window.addEventListener("storage",this.boundEventHandler)}detachListener(){window.removeEventListener("storage",this.boundEventHandler)}_addListener(e,t){0===Object.keys(this.listeners).length&&(this.fallbackToPolling?this.startPolling():this.attachListener()),this.listeners[e]||(this.listeners[e]=new Set,this.localCache[e]=this.storage.getItem(e)),this.listeners[e].add(t)}_removeListener(e,t){this.listeners[e]&&(this.listeners[e].delete(t),0===this.listeners[e].size&&delete this.listeners[e]),0===Object.keys(this.listeners).length&&(this.detachListener(),this.stopPolling())}async _set(e,t){await super._set(e,t),this.localCache[e]=JSON.stringify(t)}async _get(e){const t=await super._get(e);return this.localCache[e]=JSON.stringify(t),t}async _remove(e){await super._remove(e),delete this.localCache[e]}}Th.type="LOCAL";const kh=Th;class Eh extends Ch{constructor(){super((()=>window.sessionStorage),"SESSION")}_addListener(e,t){}_removeListener(e,t){}}Eh.type="SESSION";const Sh=Eh;class Ph{constructor(e){this.eventTarget=e,this.handlersMap={},this.boundEventHandler=this.handleEvent.bind(this)}static _getInstance(e){const t=this.receivers.find((t=>t.isListeningto(e)));if(t)return t;const n=new Ph(e);return this.receivers.push(n),n}isListeningto(e){return this.eventTarget===e}async handleEvent(e){const t=e,{eventId:n,eventType:i,data:r}=t.data,s=this.handlersMap[i];if(!(null==s?void 0:s.size))return;t.ports[0].postMessage({status:"ack",eventId:n,eventType:i});const o=Array.from(s).map((async e=>e(t.origin,r))),a=await function(e){return Promise.all(e.map((async e=>{try{return{fulfilled:!0,value:await e}}catch(e){return{fulfilled:!1,reason:e}}})))}(o);t.ports[0].postMessage({status:"done",eventId:n,eventType:i,response:a})}_subscribe(e,t){0===Object.keys(this.handlersMap).length&&this.eventTarget.addEventListener("message",this.boundEventHandler),this.handlersMap[e]||(this.handlersMap[e]=new Set),this.handlersMap[e].add(t)}_unsubscribe(e,t){this.handlersMap[e]&&t&&this.handlersMap[e].delete(t),t&&0!==this.handlersMap[e].size||delete this.handlersMap[e],0===Object.keys(this.handlersMap).length&&this.eventTarget.removeEventListener("message",this.boundEventHandler)}}function Rh(e="",t=10){let n="";for(let e=0;e{const c=Rh("",20);i.port1.start();const l=setTimeout((()=>{a(new Error("unsupported_event"))}),n);s={messageChannel:i,onMessage(e){const t=e;if(t.data.eventId===c)switch(t.data.status){case"ack":clearTimeout(l),r=setTimeout((()=>{a(new Error("timeout"))}),3e3);break;case"done":clearTimeout(r),o(t.data.response);break;default:clearTimeout(l),clearTimeout(r),a(new Error("invalid_response"))}}},this.handlers.add(s),i.port1.addEventListener("message",s.onMessage),this.target.postMessage({eventType:e,eventId:c,data:t},[i.port2])})).finally((()=>{s&&this.removeMessageHandler(s)}))}}function Ah(){return window}function Oh(){return void 0!==Ah().WorkerGlobalScope&&"function"==typeof Ah().importScripts}const Dh="firebaseLocalStorageDb",xh="firebaseLocalStorage",Lh="fbase_key";class Mh{constructor(e){this.request=e}toPromise(){return new Promise(((e,t)=>{this.request.addEventListener("success",(()=>{e(this.request.result)})),this.request.addEventListener("error",(()=>{t(this.request.error)}))}))}}function Fh(e,t){return e.transaction([xh],t?"readwrite":"readonly").objectStore(xh)}function Uh(){const e=indexedDB.open(Dh,1);return new Promise(((t,n)=>{e.addEventListener("error",(()=>{n(e.error)})),e.addEventListener("upgradeneeded",(()=>{const t=e.result;try{t.createObjectStore(xh,{keyPath:Lh})}catch(e){n(e)}})),e.addEventListener("success",(async()=>{const n=e.result;n.objectStoreNames.contains(xh)?t(n):(n.close(),await function(){const e=indexedDB.deleteDatabase(Dh);return new Mh(e).toPromise()}(),t(await Uh()))}))}))}async function qh(e,t,n){const i=Fh(e,!0).put({[Lh]:t,value:n});return new Mh(i).toPromise()}function jh(e,t){const n=Fh(e,!0).delete(t);return new Mh(n).toPromise()}class Wh{constructor(){this.type="LOCAL",this._shouldAllowMigration=!0,this.listeners={},this.localCache={},this.pollTimer=null,this.pendingWrites=0,this.receiver=null,this.sender=null,this.serviceWorkerReceiverAvailable=!1,this.activeServiceWorker=null,this._workerInitializationPromise=this.initializeServiceWorkerMessaging().then((()=>{}),(()=>{}))}async _openDb(){return this.db||(this.db=await Uh()),this.db}async _withRetries(e){let t=0;for(;;)try{const t=await this._openDb();return await e(t)}catch(e){if(t++>3)throw e;this.db&&(this.db.close(),this.db=void 0)}}async initializeServiceWorkerMessaging(){return Oh()?this.initializeReceiver():this.initializeSender()}async initializeReceiver(){this.receiver=Ph._getInstance(Oh()?self:null),this.receiver._subscribe("keyChanged",(async(e,t)=>({keyProcessed:(await this._poll()).includes(t.key)}))),this.receiver._subscribe("ping",(async(e,t)=>["keyChanged"]))}async initializeSender(){var e,t;if(this.activeServiceWorker=await async function(){if(!(null===navigator||void 0===navigator?void 0:navigator.serviceWorker))return null;try{return(await navigator.serviceWorker.ready).active}catch(e){return null}}(),!this.activeServiceWorker)return;this.sender=new Nh(this.activeServiceWorker);const n=await this.sender._send("ping",{},800);n&&(null===(e=n[0])||void 0===e?void 0:e.fulfilled)&&(null===(t=n[0])||void 0===t?void 0:t.value.includes("keyChanged"))&&(this.serviceWorkerReceiverAvailable=!0)}async notifyServiceWorker(e){var t;if(this.sender&&this.activeServiceWorker&&((null===(t=null===navigator||void 0===navigator?void 0:navigator.serviceWorker)||void 0===t?void 0:t.controller)||null)===this.activeServiceWorker)try{await this.sender._send("keyChanged",{key:e},this.serviceWorkerReceiverAvailable?800:50)}catch(t){}}async _isAvailable(){try{if(!indexedDB)return!1;const e=await Uh();return await qh(e,Ih,"1"),await jh(e,Ih),!0}catch(e){}return!1}async _withPendingWrite(e){this.pendingWrites++;try{await e()}finally{this.pendingWrites--}}async _set(e,t){return this._withPendingWrite((async()=>(await this._withRetries((n=>qh(n,e,t))),this.localCache[e]=t,this.notifyServiceWorker(e))))}async _get(e){const t=await this._withRetries((t=>async function(e,t){const n=Fh(e,!1).get(t),i=await new Mh(n).toPromise();return void 0===i?null:i.value}(t,e)));return this.localCache[e]=t,t}async _remove(e){return this._withPendingWrite((async()=>(await this._withRetries((t=>jh(t,e))),delete this.localCache[e],this.notifyServiceWorker(e))))}async _poll(){const e=await this._withRetries((e=>{const t=Fh(e,!1).getAll();return new Mh(t).toPromise()}));if(!e)return[];if(0!==this.pendingWrites)return[];const t=[],n=new Set;if(0!==e.length)for(const{fbase_key:i,value:r}of e)n.add(i),JSON.stringify(this.localCache[i])!==JSON.stringify(r)&&(this.notifyListeners(i,r),t.push(i));for(const e of Object.keys(this.localCache))this.localCache[e]&&!n.has(e)&&(this.notifyListeners(e,null),t.push(e));return t}notifyListeners(e,t){this.localCache[e]=t;const n=this.listeners[e];if(n)for(const e of Array.from(n))e(t)}startPolling(){this.stopPolling(),this.pollTimer=setInterval((async()=>this._poll()),800)}stopPolling(){this.pollTimer&&(clearInterval(this.pollTimer),this.pollTimer=null)}_addListener(e,t){0===Object.keys(this.listeners).length&&this.startPolling(),this.listeners[e]||(this.listeners[e]=new Set,this._get(e)),this.listeners[e].add(t)}_removeListener(e,t){this.listeners[e]&&(this.listeners[e].delete(t),0===this.listeners[e].size&&delete this.listeners[e]),0===Object.keys(this.listeners).length&&this.stopPolling()}}Wh.type="LOCAL";const Vh=Wh,Bh=1e12;class zh{constructor(e){this.auth=e,this.counter=Bh,this._widgets=new Map}render(e,t){const n=this.counter;return this._widgets.set(n,new Hh(e,this.auth.name,t||{})),this.counter++,n}reset(e){var t;const n=e||Bh;null===(t=this._widgets.get(n))||void 0===t||t.delete(),this._widgets.delete(n)}getResponse(e){var t;const n=e||Bh;return(null===(t=this._widgets.get(n))||void 0===t?void 0:t.getResponse())||""}async execute(e){var t;const n=e||Bh;return null===(t=this._widgets.get(n))||void 0===t||t.execute(),""}}class Hh{constructor(e,t,n){this.params=n,this.timerId=null,this.deleted=!1,this.responseToken=null,this.clickHandler=()=>{this.execute()};const i="string"==typeof e?document.getElementById(e):e;uc(i,"argument-error",{appName:t}),this.container=i,this.isVisible="invisible"!==this.params.size,this.isVisible?this.execute():this.container.addEventListener("click",this.clickHandler)}getResponse(){return this.checkIfDeleted(),this.responseToken}delete(){this.checkIfDeleted(),this.deleted=!0,this.timerId&&(clearTimeout(this.timerId),this.timerId=null),this.container.removeEventListener("click",this.clickHandler)}execute(){this.checkIfDeleted(),this.timerId||(this.timerId=window.setTimeout((()=>{this.responseToken=function(){const e=[],t="1234567890abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";for(let n=0;n<50;n++)e.push(t.charAt(Math.floor(62*Math.random())));return e.join("")}();const{callback:e,"expired-callback":t}=this.params;if(e)try{e(this.responseToken)}catch(e){}this.timerId=window.setTimeout((()=>{if(this.timerId=null,this.responseToken=null,t)try{t()}catch(e){}this.isVisible&&this.execute()}),6e4)}),500))}checkIfDeleted(){if(this.deleted)throw new Error("reCAPTCHA mock was already deleted!")}}const $h=ml("rcb"),Kh=new gc(3e4,6e4);class Gh{constructor(){var e;this.hostLanguage="",this.counter=0,this.librarySeparatelyLoaded=!!(null===(e=Ah().grecaptcha)||void 0===e?void 0:e.render)}load(e,t=""){return uc(function(e){return e.length<=6&&/^\s*[a-zA-Z0-9\-]*\s*$/.test(e)}(t),e,"argument-error"),this.shouldResolveImmediately(t)&&Nc(Ah().grecaptcha)?Promise.resolve(Ah().grecaptcha):new Promise(((n,i)=>{const r=Ah().setTimeout((()=>{i(oc(e,"network-request-failed"))}),Kh.get());Ah()[$h]=()=>{Ah().clearTimeout(r),delete Ah()[$h];const s=Ah().grecaptcha;if(!s||!Nc(s))return void i(oc(e,"internal-error"));const o=s.render;s.render=(e,t)=>{const n=o(e,t);return this.counter++,n},this.hostLanguage=t,n(s)},_l(`${fl.recaptchaV2Script}?${L({onload:$h,render:"explicit",hl:t})}`).catch((()=>{clearTimeout(r),i(oc(e,"internal-error"))}))}))}clearedOneInstance(){this.counter--}shouldResolveImmediately(e){var t;return!!(null===(t=Ah().grecaptcha)||void 0===t?void 0:t.render)&&(e===this.hostLanguage||this.counter>0||this.librarySeparatelyLoaded)}}class Yh{async load(e){return new zh(e)}clearedOneInstance(){}}const Jh="recaptcha",Qh={theme:"light",type:"image"};class Xh{constructor(e,t,n=Object.assign({},Qh)){this.parameters=n,this.type=Jh,this.destroyed=!1,this.widgetId=null,this.tokenChangeListeners=new Set,this.renderPromise=null,this.recaptcha=null,this.auth=dl(e),this.isInvisible="invisible"===this.parameters.size,uc("undefined"!=typeof document,this.auth,"operation-not-supported-in-this-environment");const i="string"==typeof t?document.getElementById(t):t;uc(i,this.auth,"argument-error"),this.container=i,this.parameters.callback=this.makeTokenCallback(this.parameters.callback),this._recaptchaLoader=this.auth.settings.appVerificationDisabledForTesting?new Yh:new Gh,this.validateStartingState()}async verify(){this.assertNotDestroyed();const e=await this.render(),t=this.getAssertedRecaptcha();return t.getResponse(e)||new Promise((n=>{const i=e=>{e&&(this.tokenChangeListeners.delete(i),n(e))};this.tokenChangeListeners.add(i),this.isInvisible&&t.execute(e)}))}render(){try{this.assertNotDestroyed()}catch(e){return Promise.reject(e)}return this.renderPromise||(this.renderPromise=this.makeRenderPromise().catch((e=>{throw this.renderPromise=null,e}))),this.renderPromise}_reset(){this.assertNotDestroyed(),null!==this.widgetId&&this.getAssertedRecaptcha().reset(this.widgetId)}clear(){this.assertNotDestroyed(),this.destroyed=!0,this._recaptchaLoader.clearedOneInstance(),this.isInvisible||this.container.childNodes.forEach((e=>{this.container.removeChild(e)}))}validateStartingState(){uc(!this.parameters.sitekey,this.auth,"argument-error"),uc(this.isInvisible||!this.container.hasChildNodes(),this.auth,"argument-error"),uc("undefined"!=typeof document,this.auth,"operation-not-supported-in-this-environment")}makeTokenCallback(e){return t=>{if(this.tokenChangeListeners.forEach((e=>e(t))),"function"==typeof e)e(t);else if("string"==typeof e){const n=Ah()[e];"function"==typeof n&&n(t)}}}assertNotDestroyed(){uc(!this.destroyed,this.auth,"internal-error")}async makeRenderPromise(){if(await this.init(),!this.widgetId){let e=this.container;if(!this.isInvisible){const t=document.createElement("div");e.appendChild(t),e=t}this.widgetId=this.getAssertedRecaptcha().render(e,this.parameters)}return this.widgetId}async init(){uc(_c()&&!Oh(),this.auth,"internal-error"),await function(){let e=null;return new Promise((t=>{"complete"!==document.readyState?(e=()=>t(),window.addEventListener("load",e)):t()})).catch((t=>{throw e&&window.removeEventListener("load",e),t}))}(),this.recaptcha=await this._recaptchaLoader.load(this.auth,this.auth.languageCode||void 0);const e=await async function(e){return(await Cc(e,"GET","/v1/recaptchaParams")).recaptchaSiteKey||""}(this.auth);uc(e,this.auth,"internal-error"),this.parameters.sitekey=e}getAssertedRecaptcha(){return uc(this.recaptcha,this.auth,"internal-error"),this.recaptcha}}class Zh{constructor(e,t){this.verificationId=e,this.onConfirmation=t}confirm(e){const t=Dl._fromVerification(this.verificationId,e);return this.onConfirmation(t)}}async function eu(e,t,n){var i;const r=await n.verify();try{let s;if(uc("string"==typeof r,e,"argument-error"),uc(n.type===Jh,e,"argument-error"),s="string"==typeof t?{phoneNumber:t}:t,"session"in s){const t=s.session;if("phoneNumber"in s){uc("enroll"===t.type,e,"internal-error");const n=await function(e,t){return Cc(e,"POST","/v2/accounts/mfaEnrollment:start",Ic(e,t))}(e,{idToken:t.credential,phoneEnrollmentInfo:{phoneNumber:s.phoneNumber,recaptchaToken:r}});return n.phoneSessionInfo.sessionInfo}{uc("signin"===t.type,e,"internal-error");const n=(null===(i=s.multiFactorHint)||void 0===i?void 0:i.uid)||s.multiFactorUid;uc(n,e,"missing-multi-factor-info");const o=await function(e,t){return Cc(e,"POST","/v2/accounts/mfaSignIn:start",Ic(e,t))}(e,{mfaPendingCredential:t.credential,mfaEnrollmentId:n,phoneSignInInfo:{recaptchaToken:r}});return o.phoneResponseInfo.sessionInfo}}{const{sessionInfo:t}=await async function(e,t){return Cc(e,"POST","/v1/accounts:sendVerificationCode",Ic(e,t))}(e,{phoneNumber:s.phoneNumber,recaptchaToken:r});return t}}finally{n._reset()}}class tu{constructor(e){this.providerId=tu.PROVIDER_ID,this.auth=dl(e)}verifyPhoneNumber(e,t){return eu(this.auth,e,K(t))}static credential(e,t){return Dl._fromVerification(e,t)}static credentialFromResult(e){const t=e;return tu.credentialFromTaggedObject(t)}static credentialFromError(e){return tu.credentialFromTaggedObject(e.customData||{})}static credentialFromTaggedObject({_tokenResponse:e}){if(!e)return null;const{phoneNumber:t,temporaryProof:n}=e;return t&&n?Dl._fromTokenResponse(t,n):null}}function nu(e,t){return t?Kc(t):(uc(e._popupRedirectResolver,e,"argument-error"),e._popupRedirectResolver)}tu.PROVIDER_ID="phone",tu.PHONE_SIGN_IN_METHOD="phone";class iu extends Il{constructor(e){super("custom","custom"),this.params=e}_getIdTokenResponse(e){return Nl(e,this._buildIdpRequest())}_linkToIdToken(e,t){return Nl(e,this._buildIdpRequest(t))}_getReauthenticationResolver(e){return Nl(e,this._buildIdpRequest())}_buildIdpRequest(e){const t={requestUri:this.params.requestUri,sessionId:this.params.sessionId,postBody:this.params.postBody,tenantId:this.params.tenantId,pendingToken:this.params.pendingToken,returnSecureToken:!0,returnIdpCredential:!0};return e&&(t.idToken=e),t}}function ru(e){return eh(e.auth,new iu(e),e.bypassAuthState)}function su(e){const{auth:t,user:n}=e;return uc(n,t,"internal-error"),Zl(n,new iu(e),e.bypassAuthState)}async function ou(e){const{auth:t,user:n}=e;return uc(n,t,"internal-error"),Ql(n,new iu(e),e.bypassAuthState)}class au{constructor(e,t,n,i,r=!1){this.auth=e,this.resolver=n,this.user=i,this.bypassAuthState=r,this.pendingPromise=null,this.eventManager=null,this.filter=Array.isArray(t)?t:[t]}execute(){return new Promise((async(e,t)=>{this.pendingPromise={resolve:e,reject:t};try{this.eventManager=await this.resolver._initialize(this.auth),await this.onExecution(),this.eventManager.registerConsumer(this)}catch(e){this.reject(e)}}))}async onAuthEvent(e){const{urlResponse:t,sessionId:n,postBody:i,tenantId:r,error:s,type:o}=e;if(s)return void this.reject(s);const a={auth:this.auth,requestUri:t,sessionId:n,tenantId:r||void 0,postBody:i||void 0,user:this.user,bypassAuthState:this.bypassAuthState};try{this.resolve(await this.getIdpTask(o)(a))}catch(e){this.reject(e)}}onError(e){this.reject(e)}getIdpTask(e){switch(e){case"signInViaPopup":case"signInViaRedirect":return ru;case"linkViaPopup":case"linkViaRedirect":return ou;case"reauthViaPopup":case"reauthViaRedirect":return su;default:sc(this.auth,"internal-error")}}resolve(e){pc(this.pendingPromise,"Pending promise was never set"),this.pendingPromise.resolve(e),this.unregisterAndCleanUp()}reject(e){pc(this.pendingPromise,"Pending promise was never set"),this.pendingPromise.reject(e),this.unregisterAndCleanUp()}unregisterAndCleanUp(){this.eventManager&&this.eventManager.unregisterConsumer(this),this.pendingPromise=null,this.cleanUp()}}const cu=new gc(2e3,1e4);class lu extends au{constructor(e,t,n,i,r){super(e,t,i,r),this.provider=n,this.authWindow=null,this.pollId=null,lu.currentPopupAction&&lu.currentPopupAction.cancel(),lu.currentPopupAction=this}async executeNotNull(){const e=await this.execute();return uc(e,this.auth,"internal-error"),e}async onExecution(){pc(1===this.filter.length,"Popup operations only handle one event");const e=Rh();this.authWindow=await this.resolver._openPopup(this.auth,this.provider,this.filter[0],e),this.authWindow.associatedEvent=e,this.resolver._originValidation(this.auth).catch((e=>{this.reject(e)})),this.resolver._isIframeWebStorageSupported(this.auth,(e=>{e||this.reject(oc(this.auth,"web-storage-unsupported"))})),this.pollUserCancellation()}get eventId(){var e;return(null===(e=this.authWindow)||void 0===e?void 0:e.associatedEvent)||null}cancel(){this.reject(oc(this.auth,"cancelled-popup-request"))}cleanUp(){this.authWindow&&this.authWindow.close(),this.pollId&&window.clearTimeout(this.pollId),this.authWindow=null,this.pollId=null,lu.currentPopupAction=null}pollUserCancellation(){const e=()=>{var t,n;(null===(n=null===(t=this.authWindow)||void 0===t?void 0:t.window)||void 0===n?void 0:n.closed)?this.pollId=window.setTimeout((()=>{this.pollId=null,this.reject(oc(this.auth,"popup-closed-by-user"))}),8e3):this.pollId=window.setTimeout(e,cu.get())};e()}}lu.currentPopupAction=null;const hu=new Map;class uu extends au{constructor(e,t,n=!1){super(e,["signInViaRedirect","linkViaRedirect","reauthViaRedirect","unknown"],t,void 0,n),this.eventId=null}async execute(){let e=hu.get(this.auth._key());if(!e){try{const t=await async function(e,t){const n=_u(t),i=fu(e);if(!await i._isAvailable())return!1;const r="true"===await i._get(n);return await i._remove(n),r}(this.resolver,this.auth)?await super.execute():null;e=()=>Promise.resolve(t)}catch(t){e=()=>Promise.reject(t)}hu.set(this.auth._key(),e)}return this.bypassAuthState||hu.set(this.auth._key(),(()=>Promise.resolve(null))),e()}async onAuthEvent(e){if("signInViaRedirect"===e.type)return super.onAuthEvent(e);if("unknown"!==e.type){if(e.eventId){const t=await this.auth._redirectUserForId(e.eventId);if(t)return this.user=t,super.onAuthEvent(e);this.resolve(null)}}else this.resolve(null)}async onExecution(){}cleanUp(){}}async function du(e,t){return fu(e)._set(_u(t),"true")}function pu(e,t){hu.set(e._key(),t)}function fu(e){return Kc(e._redirectPersistence)}function _u(e){return Jc("pendingRedirect",e.config.apiKey,e.name)}async function mu(e,t,n=!1){if(ct(e.app))return Promise.reject(cc(e));const i=dl(e),r=nu(i,t),s=new uu(i,r,n),o=await s.execute();return o&&!n&&(delete o.user._redirectEventId,await i._persistUserIfCurrent(o.user),await i._setRedirectUser(null,t)),o}async function gu(e){const t=Rh(`${e.uid}:::`);return e._redirectEventId=t,await e.auth._setRedirectUser(e),await e.auth._persistUserIfCurrent(e),t}class vu{constructor(e){this.auth=e,this.cachedEventUids=new Set,this.consumers=new Set,this.queuedRedirectEvent=null,this.hasHandledPotentialRedirect=!1,this.lastProcessedEventTime=Date.now()}registerConsumer(e){this.consumers.add(e),this.queuedRedirectEvent&&this.isEventForConsumer(this.queuedRedirectEvent,e)&&(this.sendToConsumer(this.queuedRedirectEvent,e),this.saveEventToCache(this.queuedRedirectEvent),this.queuedRedirectEvent=null)}unregisterConsumer(e){this.consumers.delete(e)}onEvent(e){if(this.hasEventBeenHandled(e))return!1;let t=!1;return this.consumers.forEach((n=>{this.isEventForConsumer(e,n)&&(t=!0,this.sendToConsumer(e,n),this.saveEventToCache(e))})),this.hasHandledPotentialRedirect||!function(e){switch(e.type){case"signInViaRedirect":case"linkViaRedirect":case"reauthViaRedirect":return!0;case"unknown":return wu(e);default:return!1}}(e)||(this.hasHandledPotentialRedirect=!0,t||(this.queuedRedirectEvent=e,t=!0)),t}sendToConsumer(e,t){var n;if(e.error&&!wu(e)){const i=(null===(n=e.error.code)||void 0===n?void 0:n.split("auth/")[1])||"internal-error";t.onError(oc(this.auth,i))}else t.onAuthEvent(e)}isEventForConsumer(e,t){const n=null===t.eventId||!!e.eventId&&e.eventId===t.eventId;return t.filter.includes(e.type)&&n}hasEventBeenHandled(e){return Date.now()-this.lastProcessedEventTime>=6e5&&this.cachedEventUids.clear(),this.cachedEventUids.has(yu(e))}saveEventToCache(e){this.cachedEventUids.add(yu(e)),this.lastProcessedEventTime=Date.now()}}function yu(e){return[e.type,e.eventId,e.sessionId,e.tenantId].filter((e=>e)).join("-")}function wu({type:e,error:t}){return"unknown"===e&&"auth/no-auth-event"===(null==t?void 0:t.code)}async function bu(e,t={}){return Cc(e,"GET","/v1/projects",t)}const Iu=/^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}$/,Cu=/^https?/;function Tu(e){const t=fc(),{protocol:n,hostname:i}=new URL(t);if(e.startsWith("chrome-extension://")){const r=new URL(e);return""===r.hostname&&""===i?"chrome-extension:"===n&&e.replace("chrome-extension://","")===t.replace("chrome-extension://",""):"chrome-extension:"===n&&r.hostname===i}if(!Cu.test(n))return!1;if(Iu.test(e))return i===e;const r=e.replace(/\./g,"\\.");return new RegExp("^(.+\\."+r+"|"+r+")$","i").test(i)}const ku=new gc(3e4,6e4);function Eu(){const e=Ah().___jsl;if(null==e?void 0:e.H)for(const t of Object.keys(e.H))if(e.H[t].r=e.H[t].r||[],e.H[t].L=e.H[t].L||[],e.H[t].r=[...e.H[t].L],e.CP)for(let t=0;t{var i,r,s;function o(){Eu(),gapi.load("gapi.iframes",{callback:()=>{t(gapi.iframes.getContext())},ontimeout:()=>{Eu(),n(oc(e,"network-request-failed"))},timeout:ku.get()})}if(null===(r=null===(i=Ah().gapi)||void 0===i?void 0:i.iframes)||void 0===r?void 0:r.Iframe)t(gapi.iframes.getContext());else{if(!(null===(s=Ah().gapi)||void 0===s?void 0:s.load)){const t=ml("iframefcb");return Ah()[t]=()=>{gapi.load?o():n(oc(e,"network-request-failed"))},_l(`${fl.gapiScript}?onload=${t}`).catch((e=>n(e)))}o()}})).catch((e=>{throw Pu=null,e}))}let Pu=null;const Ru=new gc(5e3,15e3),Nu={style:{position:"absolute",top:"-100px",width:"1px",height:"1px"},"aria-hidden":"true",tabindex:"-1"},Au=new Map([["identitytoolkit.googleapis.com","p"],["staging-identitytoolkit.sandbox.googleapis.com","s"],["test-identitytoolkit.sandbox.googleapis.com","t"]]);function Ou(e){const t=e.config;uc(t.authDomain,e,"auth-domain-config-required");const n=t.emulator?vc(t,"emulator/auth/iframe"):`https://${e.config.authDomain}/__/auth/iframe`,i={apiKey:t.apiKey,appName:e.name,v:pt},r=Au.get(e.config.apiHost);r&&(i.eid=r);const s=e._getFrameworks();return s.length&&(i.fw=s.join(",")),`${n}?${L(i).slice(1)}`}const Du={location:"yes",resizable:"yes",statusbar:"yes",toolbar:"no"};class xu{constructor(e){this.window=e,this.associatedEvent=null}close(){if(this.window)try{this.window.close()}catch(e){}}}const Lu=encodeURIComponent("fac");async function Mu(e,t,n,i,r,s){uc(e.config.authDomain,e,"auth-domain-config-required"),uc(e.config.apiKey,e,"invalid-api-key");const o={apiKey:e.config.apiKey,appName:e.name,authType:n,redirectUrl:i,v:pt,eventId:r};if(t instanceof Ml){t.setDefaultLanguage(e.languageCode),o.providerId=t.providerId||"",A(t.getCustomParameters())||(o.customParameters=JSON.stringify(t.getCustomParameters()));for(const[e,t]of Object.entries(s||{}))o[e]=t}if(t instanceof Fl){const e=t.getScopes().filter((e=>""!==e));e.length>0&&(o.scopes=e.join(","))}e.tenantId&&(o.tid=e.tenantId);const a=o;for(const e of Object.keys(a))void 0===a[e]&&delete a[e];const c=await e._getAppCheckToken(),l=c?`#${Lu}=${encodeURIComponent(c)}`:"";return`${function({config:e}){return e.emulator?vc(e,"emulator/auth/handler"):`https://${e.authDomain}/__/auth/handler`}(e)}?${L(a).slice(1)}${l}`}const Fu="webStorageSupport",Uu=class{constructor(){this.eventManagers={},this.iframes={},this.originValidationPromises={},this._redirectPersistence=Sh,this._completeRedirectFn=mu,this._overrideRedirectResult=pu}async _openPopup(e,t,n,i){var r;return pc(null===(r=this.eventManagers[e._key()])||void 0===r?void 0:r.manager,"_initialize() not called before _openPopup()"),function(e,t,n,i=500,r=600){const s=Math.max((window.screen.availHeight-r)/2,0).toString(),o=Math.max((window.screen.availWidth-i)/2,0).toString();let a="";const c=Object.assign(Object.assign({},Du),{width:i.toString(),height:r.toString(),top:s,left:o}),l=_().toLowerCase();n&&(a=tl(l)?"_blank":n),Zc(l)&&(t=t||"http://localhost",c.scrollbars="yes");const h=Object.entries(c).reduce(((e,[t,n])=>`${e}${t}=${n},`),"");if(function(e=_()){var t;return ol(e)&&!!(null===(t=window.navigator)||void 0===t?void 0:t.standalone)}(l)&&"_self"!==a)return function(e,t){const n=document.createElement("a");n.href=e,n.target=t;const i=document.createEvent("MouseEvent");i.initMouseEvent("click",!0,!0,window,1,0,0,0,0,!1,!1,!1,!1,1,null),n.dispatchEvent(i)}(t||"",a),new xu(null);const u=window.open(t||"",a,h);uc(u,e,"popup-blocked");try{u.focus()}catch(e){}return new xu(u)}(e,await Mu(e,t,n,fc(),i),Rh())}async _openRedirect(e,t,n,i){return await this._originValidation(e),r=await Mu(e,t,n,fc(),i),Ah().location.href=r,new Promise((()=>{}));var r}_initialize(e){const t=e._key();if(this.eventManagers[t]){const{manager:e,promise:n}=this.eventManagers[t];return e?Promise.resolve(e):(pc(n,"If manager is not set, promise should be"),n)}const n=this.initAndGetManager(e);return this.eventManagers[t]={promise:n},n.catch((()=>{delete this.eventManagers[t]})),n}async initAndGetManager(e){const t=await async function(e){const t=await function(e){return Pu=Pu||Su(e),Pu}(e),n=Ah().gapi;return uc(n,e,"internal-error"),t.open({where:document.body,url:Ou(e),messageHandlersFilter:n.iframes.CROSS_ORIGIN_IFRAMES_FILTER,attributes:Nu,dontclear:!0},(t=>new Promise((async(n,i)=>{await t.restyle({setHideOnLeave:!1});const r=oc(e,"network-request-failed"),s=Ah().setTimeout((()=>{i(r)}),Ru.get());function o(){Ah().clearTimeout(s),n(t)}t.ping(o).then(o,(()=>{i(r)}))}))))}(e),n=new vu(e);return t.register("authEvent",(t=>(uc(null==t?void 0:t.authEvent,e,"invalid-auth-event"),{status:n.onEvent(t.authEvent)?"ACK":"ERROR"})),gapi.iframes.CROSS_ORIGIN_IFRAMES_FILTER),this.eventManagers[e._key()]={manager:n},this.iframes[e._key()]=t,n}_isIframeWebStorageSupported(e,t){this.iframes[e._key()].send(Fu,{type:Fu},(n=>{var i;const r=null===(i=null==n?void 0:n[0])||void 0===i?void 0:i[Fu];void 0!==r&&t(!!r),sc(e,"internal-error")}),gapi.iframes.CROSS_ORIGIN_IFRAMES_FILTER)}_originValidation(e){const t=e._key();return this.originValidationPromises[t]||(this.originValidationPromises[t]=async function(e){if(e.config.emulator)return;const{authorizedDomains:t}=await bu(e);for(const e of t)try{if(Tu(e))return}catch(e){}sc(e,"unauthorized-domain")}(e)),this.originValidationPromises[t]}get _shouldInitProactively(){return al()||el()||ol()}};class qu{constructor(e){this.factorId=e}_process(e,t,n){switch(t.type){case"enroll":return this._finalizeEnroll(e,t.credential,n);case"signin":return this._finalizeSignIn(e,t.credential);default:return dc("unexpected MultiFactorSessionType")}}}class ju extends qu{constructor(e){super("phone"),this.credential=e}static _fromCredential(e){return new ju(e)}_finalizeEnroll(e,t,n){return function(e,t){return Cc(e,"POST","/v2/accounts/mfaEnrollment:finalize",Ic(e,t))}(e,{idToken:t,displayName:n,phoneVerificationInfo:this.credential._makeVerificationRequest()})}_finalizeSignIn(e,t){return function(e,t){return Cc(e,"POST","/v2/accounts/mfaSignIn:finalize",Ic(e,t))}(e,{mfaPendingCredential:t,phoneVerificationInfo:this.credential._makeVerificationRequest()})}}class Wu{constructor(){}static assertion(e){return ju._fromCredential(e)}}Wu.FACTOR_ID="phone";var Vu,Bu,zu,Hu="@firebase/auth",$u="1.7.9";class Ku{constructor(e){this.auth=e,this.internalListeners=new Map}getUid(){var e;return this.assertAuthConfigured(),(null===(e=this.auth.currentUser)||void 0===e?void 0:e.uid)||null}async getToken(e){return this.assertAuthConfigured(),await this.auth._initializationPromise,this.auth.currentUser?{accessToken:await this.auth.currentUser.getIdToken(e)}:null}addAuthTokenListener(e){if(this.assertAuthConfigured(),this.internalListeners.has(e))return;const t=this.auth.onIdTokenChanged((t=>{e((null==t?void 0:t.stsTokenManager.accessToken)||null)}));this.internalListeners.set(e,t),this.updateProactiveRefresh()}removeAuthTokenListener(e){this.assertAuthConfigured();const t=this.internalListeners.get(e);t&&(this.internalListeners.delete(e),t(),this.updateProactiveRefresh())}assertAuthConfigured(){uc(this.auth._initializationPromise,"dependent-sdk-initialized-before-auth")}updateProactiveRefresh(){this.internalListeners.size>0?this.auth._startProactiveRefresh():this.auth._stopProactiveRefresh()}}function Gu(){return window}null===(Vu=d())||void 0===Vu||Vu._authIdTokenMaxAge,Bu={loadJS:e=>new Promise(((t,n)=>{const i=document.createElement("script");i.setAttribute("src",e),i.onload=t,i.onerror=e=>{const t=oc("internal-error");t.customData=e,n(t)},i.type="text/javascript",i.charset="UTF-8",function(){var e,t;return null!==(t=null===(e=document.getElementsByTagName("head"))||void 0===e?void 0:e[0])&&void 0!==t?t:document}().appendChild(i)})),gapiScript:"https://apis.google.com/js/api.js",recaptchaV2Script:"https://www.google.com/recaptcha/api.js",recaptchaEnterpriseScript:"https://www.google.com/recaptcha/enterprise.js?render="},fl=Bu,zu="Browser",rt(new G("auth",((e,{options:t})=>{const n=e.getProvider("app").getImmediate(),i=e.getProvider("heartbeat"),r=e.getProvider("app-check-internal"),{apiKey:s,authDomain:o}=n.options;uc(s&&!s.includes(":"),"invalid-api-key",{appName:n.name});const a={apiKey:s,authDomain:o,clientPlatform:zu,apiHost:"identitytoolkit.googleapis.com",tokenApiHost:"securetoken.googleapis.com",apiScheme:"https",sdkClientVersion:cl(zu)},c=new ul(n,i,r,a);return function(e,t){const n=(null==t?void 0:t.persistence)||[],i=(Array.isArray(n)?n:[n]).map(Kc);(null==t?void 0:t.errorMap)&&e._updateErrorMap(t.errorMap),e._initializeWithPersistence(i,null==t?void 0:t.popupRedirectResolver)}(c,t),c}),"PUBLIC").setInstantiationMode("EXPLICIT").setInstanceCreatedCallback(((e,t,n)=>{e.getProvider("auth-internal").initialize()}))),rt(new G("auth-internal",(e=>{return t=dl(e.getProvider("auth").getImmediate()),new Ku(t);var t}),"PRIVATE").setInstantiationMode("EXPLICIT")),yt(Hu,$u,function(e){switch(e){case"Node":return"node";case"ReactNative":return"rn";case"Worker":return"webworker";case"Cordova":return"cordova";case"WebExtension":return"web-extension";default:return}}(zu)),yt(Hu,$u,"esm2017");class Yu extends vu{constructor(){super(...arguments),this.passiveListeners=new Set,this.initPromise=new Promise((e=>{this.resolveInitialized=e}))}addPassiveListener(e){this.passiveListeners.add(e)}removePassiveListener(e){this.passiveListeners.delete(e)}resetRedirect(){this.queuedRedirectEvent=null,this.hasHandledPotentialRedirect=!1}onEvent(e){return this.resolveInitialized(),this.passiveListeners.forEach((t=>t(e))),super.onEvent(e)}async initialized(){await this.initPromise}}async function Ju(e){const t=await Xu()._get(Zu(e));return t&&await Xu()._remove(Zu(e)),t}function Qu(){const e=[];for(let t=0;t<20;t++){const t=Math.floor(62*Math.random());e.push("1234567890abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ".charAt(t))}return e.join("")}function Xu(){return Kc(kh)}function Zu(e){return Jc("authEvent",e.config.apiKey,e.name)}function ed(e){if(!(null==e?void 0:e.includes("?")))return{};const[t,...n]=e.split("?");return M(n.join("?"))}const td=class{constructor(){this._redirectPersistence=Sh,this._shouldInitProactively=!0,this.eventManagers=new Map,this.originValidationPromises={},this._completeRedirectFn=mu,this._overrideRedirectResult=pu}async _initialize(e){const t=e._key();let n=this.eventManagers.get(t);return n||(n=new Yu(e),this.eventManagers.set(t,n),this.attachCallbackListeners(e,n)),n}_openPopup(e){sc(e,"operation-not-supported-in-this-environment")}async _openRedirect(e,t,n,i){!function(e){var t,n,i,r,s,o,a,c,l,h;const u=Gu();uc("function"==typeof(null===(t=null==u?void 0:u.universalLinks)||void 0===t?void 0:t.subscribe),e,"invalid-cordova-configuration",{missingPlugin:"cordova-universal-links-plugin-fix"}),uc(void 0!==(null===(n=null==u?void 0:u.BuildInfo)||void 0===n?void 0:n.packageName),e,"invalid-cordova-configuration",{missingPlugin:"cordova-plugin-buildInfo"}),uc("function"==typeof(null===(s=null===(r=null===(i=null==u?void 0:u.cordova)||void 0===i?void 0:i.plugins)||void 0===r?void 0:r.browsertab)||void 0===s?void 0:s.openUrl),e,"invalid-cordova-configuration",{missingPlugin:"cordova-plugin-browsertab"}),uc("function"==typeof(null===(c=null===(a=null===(o=null==u?void 0:u.cordova)||void 0===o?void 0:o.plugins)||void 0===a?void 0:a.browsertab)||void 0===c?void 0:c.isAvailable),e,"invalid-cordova-configuration",{missingPlugin:"cordova-plugin-browsertab"}),uc("function"==typeof(null===(h=null===(l=null==u?void 0:u.cordova)||void 0===l?void 0:l.InAppBrowser)||void 0===h?void 0:h.open),e,"invalid-cordova-configuration",{missingPlugin:"cordova-plugin-inappbrowser"})}(e);const r=await this._initialize(e);await r.initialized(),r.resetRedirect(),hu.clear(),await this._originValidation(e);const s=function(e,t,n=null){return{type:t,eventId:n,urlResponse:null,sessionId:Qu(),postBody:null,tenantId:e.tenantId,error:oc(e,"no-auth-event")}}(e,n,i);await function(e,t){return Xu()._set(Zu(e),t)}(e,s);const o=await async function(e,t,n){var i;const{BuildInfo:r}=Gu();pc(t.sessionId,"AuthEvent did not contain a session ID");const s=await async function(e){const t=function(e){if(pc(/[0-9a-zA-Z]+/.test(e),"Can only convert alpha-numeric strings"),"undefined"!=typeof TextEncoder)return(new TextEncoder).encode(e);const t=new ArrayBuffer(e.length),n=new Uint8Array(t);for(let t=0;te.toString(16).padStart(2,"0"))).join("")}(t.sessionId),o={};return ol()?o.ibi=r.packageName:il()?o.apn=r.packageName:sc(e,"operation-not-supported-in-this-environment"),r.displayName&&(o.appDisplayName=r.displayName),o.sessionId=s,Mu(e,n,t.type,void 0,null!==(i=t.eventId)&&void 0!==i?i:void 0,o)}(e,s,t);return async function(e,t,n){const{cordova:i}=Gu();let r=()=>{};try{await new Promise(((s,o)=>{let a=null;function c(){var e;s();const t=null===(e=i.plugins.browsertab)||void 0===e?void 0:e.close;"function"==typeof t&&t(),"function"==typeof(null==n?void 0:n.close)&&n.close()}function l(){a||(a=window.setTimeout((()=>{o(oc(e,"redirect-cancelled-by-user"))}),2e3))}function h(){"visible"===(null===document||void 0===document?void 0:document.visibilityState)&&l()}t.addPassiveListener(c),document.addEventListener("resume",l,!1),il()&&document.addEventListener("visibilitychange",h,!1),r=()=>{t.removePassiveListener(c),document.removeEventListener("resume",l,!1),document.removeEventListener("visibilitychange",h,!1),a&&window.clearTimeout(a)}}))}finally{r()}}(e,r,await function(e){const{cordova:t}=Gu();return new Promise((n=>{t.plugins.browsertab.isAvailable((i=>{let r=null;i?t.plugins.browsertab.openUrl(e):r=t.InAppBrowser.open(e,function(e=_()){return/(iPad|iPhone|iPod).*OS 7_\d/i.test(e)||/(iPad|iPhone|iPod).*OS 8_\d/i.test(e)}()?"_blank":"_system","location=yes"),n(r)}))}))}(o))}_isIframeWebStorageSupported(e,t){throw new Error("Method not implemented.")}_originValidation(e){const t=e._key();return this.originValidationPromises[t]||(this.originValidationPromises[t]=async function(e){const{BuildInfo:t}=Gu(),n={};ol()?n.iosBundleId=t.packageName:il()?n.androidPackageName=t.packageName:sc(e,"operation-not-supported-in-this-environment"),await bu(e,n)}(e)),this.originValidationPromises[t]}attachCallbackListeners(e,t){const{universalLinks:n,handleOpenURL:i,BuildInfo:r}=Gu(),s=setTimeout((async()=>{await Ju(e),t.onEvent(nd())}),500),o=async n=>{clearTimeout(s);const i=await Ju(e);let r=null;i&&(null==n?void 0:n.url)&&(r=function(e,t){var n,i;const r=function(e){const t=ed(e),n=t.link?decodeURIComponent(t.link):void 0,i=ed(n).link,r=t.deep_link_id?decodeURIComponent(t.deep_link_id):void 0;return ed(r).link||r||i||n||e}(t);if(r.includes("/__/auth/callback")){const t=ed(r),s=t.firebaseError?function(e){try{return JSON.parse(e)}catch(e){return null}}(decodeURIComponent(t.firebaseError)):null,o=null===(i=null===(n=null==s?void 0:s.code)||void 0===n?void 0:n.split("auth/"))||void 0===i?void 0:i[1],a=o?oc(o):null;return a?{type:e.type,eventId:e.eventId,tenantId:e.tenantId,error:a,urlResponse:null,sessionId:null,postBody:null}:{type:e.type,eventId:e.eventId,tenantId:e.tenantId,sessionId:e.sessionId,urlResponse:r,postBody:null}}return null}(i,n.url)),t.onEvent(r||nd())};void 0!==n&&"function"==typeof n.subscribe&&n.subscribe(null,o);const a=i,c=`${r.packageName.toLowerCase()}://`;Gu().handleOpenURL=async e=>{if(e.toLowerCase().startsWith(c)&&o({url:e}),"function"==typeof a)try{a(e)}catch(e){console.error(e)}}}};function nd(){return{type:"unknown",eventId:null,sessionId:null,urlResponse:null,postBody:null,tenantId:null,error:oc("no-auth-event")}}function id(){var e;return(null===(e=null===self||void 0===self?void 0:self.location)||void 0===e?void 0:e.protocol)||null}function rd(e=_()){return!("file:"!==id()&&"ionic:"!==id()&&"capacitor:"!==id()||!e.toLowerCase().match(/iphone|ipad|ipod|android/))}function sd(){try{const e=self.localStorage,t=Rh();if(e)return e.setItem(t,"1"),e.removeItem(t),!function(e=_()){return b()&&11===(null===document||void 0===document?void 0:document.documentMode)||function(e=_()){return/Edge\/\d+/.test(e)}(e)}()||I()}catch(e){return od()&&I()}return!1}function od(){return void 0!==e.g&&"WorkerGlobalScope"in e.g&&"importScripts"in e.g}function ad(){return("http:"===id()||"https:"===id()||y()||rd())&&!(w()||g())&&sd()&&!od()}function cd(){return rd()&&"undefined"!=typeof document}const ld={LOCAL:"local",NONE:"none",SESSION:"session"},hd=uc,ud="persistence";async function dd(e){await e._initializationPromise;const t=pd(),n=Jc(ud,e.config.apiKey,e.name);t&&t.setItem(n,e._getPersistence())}function pd(){var e;try{return(null===(e="undefined"!=typeof window?window:null)||void 0===e?void 0:e.sessionStorage)||null}catch(e){return null}}const fd=uc;class _d{constructor(){this.browserResolver=Kc(Uu),this.cordovaResolver=Kc(td),this.underlyingResolver=null,this._redirectPersistence=Sh,this._completeRedirectFn=mu,this._overrideRedirectResult=pu}async _initialize(e){return await this.selectUnderlyingResolver(),this.assertedUnderlyingResolver._initialize(e)}async _openPopup(e,t,n,i){return await this.selectUnderlyingResolver(),this.assertedUnderlyingResolver._openPopup(e,t,n,i)}async _openRedirect(e,t,n,i){return await this.selectUnderlyingResolver(),this.assertedUnderlyingResolver._openRedirect(e,t,n,i)}_isIframeWebStorageSupported(e,t){this.assertedUnderlyingResolver._isIframeWebStorageSupported(e,t)}_originValidation(e){return this.assertedUnderlyingResolver._originValidation(e)}get _shouldInitProactively(){return cd()||this.browserResolver._shouldInitProactively}get assertedUnderlyingResolver(){return fd(this.underlyingResolver,"internal-error"),this.underlyingResolver}async selectUnderlyingResolver(){if(this.underlyingResolver)return;const e=await async function(){return!!cd()&&new Promise((e=>{const t=setTimeout((()=>{e(!1)}),1e3);document.addEventListener("deviceready",(()=>{clearTimeout(t),e(!0)}))}))}();this.underlyingResolver=e?this.cordovaResolver:this.browserResolver}}function md(e){return e.unwrap()}function gd(e){const{_tokenResponse:t}=e instanceof C?e.customData:e;if(!t)return null;if(!(e instanceof C)&&"temporaryProof"in t&&"phoneNumber"in t)return tu.credentialFromResult(e);const n=t.providerId;if(!n||"password"===n)return null;let i;switch(n){case"google.com":i=jl;break;case"facebook.com":i=ql;break;case"github.com":i=Wl;break;case"twitter.com":i=zl;break;default:const{oauthIdToken:e,oauthAccessToken:r,oauthTokenSecret:s,pendingToken:o,nonce:a}=t;return r||s||e||o?o?n.startsWith("saml.")?Vl._create(n,o):Al._fromParams({providerId:n,signInMethod:n,pendingToken:o,idToken:e,accessToken:r}):new Ul(n).credential({idToken:e,accessToken:r,rawNonce:a}):null}return e instanceof C?i.credentialFromError(e):i.credentialFromResult(e)}function vd(e,t){return t.catch((t=>{throw t instanceof C&&function(e,t){var n;const i=null===(n=t.customData)||void 0===n?void 0:n._tokenResponse;if("auth/multi-factor-auth-required"===(null==t?void 0:t.code))t.resolver=new wd(e,function(e,t){var n;const i=K(e),r=t;return uc(t.customData.operationType,i,"argument-error"),uc(null===(n=r.customData._serverResponse)||void 0===n?void 0:n.mfaPendingCredential,i,"argument-error"),yh._fromError(i,r)}(e,t));else if(i){const e=gd(t),n=t;e&&(n.credential=e,n.tenantId=i.tenantId||void 0,n.email=i.email||void 0,n.phoneNumber=i.phoneNumber||void 0)}}(e,t),t})).then((e=>{const t=e.operationType,n=e.user;return{operationType:t,credential:(i=e,gd(i)),additionalUserInfo:gh(e),user:bd.getOrCreate(n)};var i}))}async function yd(e,t){const n=await t;return{verificationId:n.verificationId,confirm:t=>vd(e,n.confirm(t))}}class wd{constructor(e,t){this.resolver=t,this.auth=e.wrapped()}get session(){return this.resolver.session}get hints(){return this.resolver.hints}resolveSignIn(e){return vd(md(this.auth),this.resolver.resolveSignIn(e))}}class bd{constructor(e){this._delegate=e,this.multiFactor=function(e){const t=K(e);return bh.has(t)||bh.set(t,wh._fromUser(t)),bh.get(t)}(e)}static getOrCreate(e){return bd.USER_MAP.has(e)||bd.USER_MAP.set(e,new bd(e)),bd.USER_MAP.get(e)}delete(){return this._delegate.delete()}reload(){return this._delegate.reload()}toJSON(){return this._delegate.toJSON()}getIdTokenResult(e){return this._delegate.getIdTokenResult(e)}getIdToken(e){return this._delegate.getIdToken(e)}linkAndRetrieveDataWithCredential(e){return this.linkWithCredential(e)}async linkWithCredential(e){return vd(this.auth,nh(this._delegate,e))}async linkWithPhoneNumber(e,t){return yd(this.auth,async function(e,t,n){const i=K(e);await Xl(!1,i,"phone");const r=await eu(i.auth,t,K(n));return new Zh(r,(e=>nh(i,e)))}(this._delegate,e,t))}async linkWithPopup(e){return vd(this.auth,async function(e,t,n){const i=K(e);lc(i.auth,t,Ml);const r=nu(i.auth,n);return new lu(i.auth,"linkViaPopup",t,r,i).executeNotNull()}(this._delegate,e,_d))}async linkWithRedirect(e){return await dd(dl(this.auth)),function(e,t,n){return async function(e,t,n){const i=K(e);lc(i.auth,t,Ml),await i.auth._initializationPromise;const r=nu(i.auth,n);await Xl(!1,i,t.providerId),await du(r,i.auth);const s=await gu(i);return r._openRedirect(i.auth,t,"linkViaRedirect",s)}(e,t,n)}(this._delegate,e,_d)}reauthenticateAndRetrieveDataWithCredential(e){return this.reauthenticateWithCredential(e)}async reauthenticateWithCredential(e){return vd(this.auth,ih(this._delegate,e))}reauthenticateWithPhoneNumber(e,t){return yd(this.auth,async function(e,t,n){const i=K(e);if(ct(i.auth.app))return Promise.reject(cc(i.auth));const r=await eu(i.auth,t,K(n));return new Zh(r,(e=>ih(i,e)))}(this._delegate,e,t))}reauthenticateWithPopup(e){return vd(this.auth,async function(e,t,n){const i=K(e);if(ct(i.auth.app))return Promise.reject(oc(i.auth,"operation-not-supported-in-this-environment"));lc(i.auth,t,Ml);const r=nu(i.auth,n);return new lu(i.auth,"reauthViaPopup",t,r,i).executeNotNull()}(this._delegate,e,_d))}async reauthenticateWithRedirect(e){return await dd(dl(this.auth)),function(e,t,n){return async function(e,t,n){const i=K(e);if(lc(i.auth,t,Ml),ct(i.auth.app))return Promise.reject(cc(i.auth));await i.auth._initializationPromise;const r=nu(i.auth,n);await du(r,i.auth);const s=await gu(i);return r._openRedirect(i.auth,t,"reauthViaRedirect",s)}(e,t,n)}(this._delegate,e,_d)}sendEmailVerification(e){return async function(e,t){const n=K(e),i={requestType:"VERIFY_EMAIL",idToken:await e.getIdToken()};t&&ah(n.auth,i,t);const{email:r}=await async function(e,t){return El(e,t)}(n.auth,i);r!==e.email&&await e.reload()}(this._delegate,e)}async unlink(e){return await async function(e,t){const n=K(e);await Xl(!0,n,t);const{providerUserInfo:i}=await async function(e,t){return Cc(e,"POST","/v1/accounts:update",t)}(n.auth,{idToken:await n.getIdToken(),deleteProvider:[t]}),r=Jl(i||[]);return n.providerData=n.providerData.filter((e=>r.has(e.providerId))),r.has("phone")||(n.phoneNumber=null),await n.auth._persistUserIfCurrent(n),n}(this._delegate,e),this}updateEmail(e){return function(e,t){const n=K(e);return ct(n.auth.app)?Promise.reject(cc(n.auth)):hh(n,t,null)}(this._delegate,e)}updatePassword(e){return function(e,t){return hh(K(e),null,t)}(this._delegate,e)}updatePhoneNumber(e){return async function(e,t){const n=K(e);if(ct(n.auth.app))return Promise.reject(cc(n.auth));await Ql(n,t)}(this._delegate,e)}updateProfile(e){return async function(e,{displayName:t,photoURL:n}){if(void 0===t&&void 0===n)return;const i=K(e),r={idToken:await i.getIdToken(),displayName:t,photoUrl:n,returnSecureToken:!0},s=await Uc(i,async function(e,t){return Cc(e,"POST","/v1/accounts:update",t)}(i.auth,r));i.displayName=s.displayName||null,i.photoURL=s.photoUrl||null;const o=i.providerData.find((({providerId:e})=>"password"===e));o&&(o.displayName=i.displayName,o.photoURL=i.photoURL),await i._updateTokensIfNecessary(s)}(this._delegate,e)}verifyBeforeUpdateEmail(e,t){return async function(e,t,n){const i=K(e),r={requestType:"VERIFY_AND_CHANGE_EMAIL",idToken:await e.getIdToken(),newEmail:t};n&&ah(i.auth,r,n);const{email:s}=await async function(e,t){return El(e,t)}(i.auth,r);s!==e.email&&await e.reload()}(this._delegate,e,t)}get emailVerified(){return this._delegate.emailVerified}get isAnonymous(){return this._delegate.isAnonymous}get metadata(){return this._delegate.metadata}get phoneNumber(){return this._delegate.phoneNumber}get providerData(){return this._delegate.providerData}get refreshToken(){return this._delegate.refreshToken}get tenantId(){return this._delegate.tenantId}get displayName(){return this._delegate.displayName}get email(){return this._delegate.email}get photoURL(){return this._delegate.photoURL}get providerId(){return this._delegate.providerId}get uid(){return this._delegate.uid}get auth(){return this._delegate.auth}}bd.USER_MAP=new WeakMap;const Id=uc;class Cd{constructor(e,t){if(this.app=e,t.isInitialized())return this._delegate=t.getImmediate(),void this.linkUnderlyingAuth();const{apiKey:n}=e.options;Id(n,"invalid-api-key",{appName:e.name}),Id(n,"invalid-api-key",{appName:e.name});const i="undefined"!=typeof window?_d:void 0;this._delegate=t.initialize({options:{persistence:kd(n,e.name),popupRedirectResolver:i}}),this._delegate._updateErrorMap(ec),this.linkUnderlyingAuth()}get emulatorConfig(){return this._delegate.emulatorConfig}get currentUser(){return this._delegate.currentUser?bd.getOrCreate(this._delegate.currentUser):null}get languageCode(){return this._delegate.languageCode}set languageCode(e){this._delegate.languageCode=e}get settings(){return this._delegate.settings}get tenantId(){return this._delegate.tenantId}set tenantId(e){this._delegate.tenantId=e}useDeviceLanguage(){this._delegate.useDeviceLanguage()}signOut(){return this._delegate.signOut()}useEmulator(e,t){!function(e,t,n){const i=dl(e);uc(i._canInitEmulator,i,"emulator-config-failed"),uc(/^https?:\/\//.test(t),i,"invalid-emulator-scheme");const r=!!(null==n?void 0:n.disableWarnings),s=wl(t),{host:o,port:a}=function(e){const t=wl(e),n=/(\/\/)?([^?#/]+)/.exec(e.substr(t.length));if(!n)return{host:"",port:null};const i=n[2].split("@").pop()||"",r=/^(\[[^\]]+\])(:|$)/.exec(i);if(r){const e=r[1];return{host:e,port:bl(i.substr(e.length+1))}}{const[e,t]=i.split(":");return{host:e,port:bl(t)}}}(t),c=null===a?"":`:${a}`;i.config.emulator={url:`${s}//${o}${c}/`},i.settings.appVerificationDisabledForTesting=!0,i.emulatorConfig=Object.freeze({host:o,port:a,protocol:s.replace(":",""),options:Object.freeze({disableWarnings:r})}),r||function(){function e(){const e=document.createElement("p"),t=e.style;e.innerText="Running in emulator mode. Do not use with production credentials.",t.position="fixed",t.width="100%",t.backgroundColor="#ffffff",t.border=".1em solid #000000",t.color="#b50000",t.bottom="0px",t.left="0px",t.margin="0px",t.zIndex="10000",t.textAlign="center",e.classList.add("firebase-emulator-warning"),document.body.appendChild(e)}"undefined"!=typeof console&&"function"==typeof console.info&&console.info("WARNING: You are using the Auth Emulator, which is intended for local testing only. Do not use with production credentials."),"undefined"!=typeof window&&"undefined"!=typeof document&&("loading"===document.readyState?window.addEventListener("DOMContentLoaded",e):e())}()}(this._delegate,e,t)}applyActionCode(e){return async function(e,t){await async function(e,t){return Cc(e,"POST","/v1/accounts:update",Ic(e,t))}(K(e),{oobCode:t})}(this._delegate,e)}checkActionCode(e){return lh(this._delegate,e)}confirmPasswordReset(e,t){return async function(e,t,n){await Cl(K(e),{oobCode:t,newPassword:n}).catch((async t=>{throw"auth/password-does-not-meet-requirements"===t.code&&ch(e),t}))}(this._delegate,e,t)}async createUserWithEmailAndPassword(e,t){return vd(this._delegate,async function(e,t,n){if(ct(e.app))return Promise.reject(cc(e));const i=dl(e),r=yl(i,{returnSecureToken:!0,email:t,password:n,clientType:"CLIENT_TYPE_WEB"},"signUpPassword",Hl),s=await r.catch((t=>{throw"auth/password-does-not-meet-requirements"===t.code&&ch(e),t})),o=await $l._fromIdTokenResponse(i,"signIn",s);return await i._updateCurrentUser(o.user),o}(this._delegate,e,t))}fetchProvidersForEmail(e){return this.fetchSignInMethodsForEmail(e)}fetchSignInMethodsForEmail(e){return async function(e,t){const n={identifier:t,continueUri:_c()?fc():"http://localhost"},{signinMethods:i}=await async function(e,t){return Cc(e,"POST","/v1/accounts:createAuthUri",Ic(e,t))}(K(e),n);return i||[]}(this._delegate,e)}isSignInWithEmailLink(e){return function(e,t){const n=xl.parseLink(t);return"EMAIL_SIGNIN"===(null==n?void 0:n.operation)}(this._delegate,e)}async getRedirectResult(){Id(ad(),this._delegate,"operation-not-supported-in-this-environment");const e=await async function(e,t){return await dl(e)._initializationPromise,mu(e,t,!1)}(this._delegate,_d);return e?vd(this._delegate,Promise.resolve(e)):{credential:null,user:null}}addFrameworkForLogging(e){!function(e,t){dl(e)._logFramework(t)}(this._delegate,e)}onAuthStateChanged(e,t,n){const{next:i,error:r,complete:s}=Td(e,t,n);return this._delegate.onAuthStateChanged(i,r,s)}onIdTokenChanged(e,t,n){const{next:i,error:r,complete:s}=Td(e,t,n);return this._delegate.onIdTokenChanged(i,r,s)}sendSignInLinkToEmail(e,t){return async function(e,t,n){const i=dl(e),r={requestType:"EMAIL_SIGNIN",email:t,clientType:"CLIENT_TYPE_WEB"};!function(e,t){uc(t.handleCodeInApp,i,"argument-error"),t&&ah(i,e,t)}(r,n),await yl(i,r,"getOobCode",Pl)}(this._delegate,e,t)}sendPasswordResetEmail(e,t){return async function(e,t,n){const i=dl(e),r={requestType:"PASSWORD_RESET",email:t,clientType:"CLIENT_TYPE_WEB"};n&&ah(i,r,n),await yl(i,r,"getOobCode",Sl)}(this._delegate,e,t||void 0)}async setPersistence(e){let t;switch(function(e,t){hd(Object.values(ld).includes(t),e,"invalid-persistence-type"),w()?hd(t!==ld.SESSION,e,"unsupported-persistence-type"):g()?hd(t===ld.NONE,e,"unsupported-persistence-type"):od()?hd(t===ld.NONE||t===ld.LOCAL&&I(),e,"unsupported-persistence-type"):hd(t===ld.NONE||sd(),e,"unsupported-persistence-type")}(this._delegate,e),e){case ld.SESSION:t=Sh;break;case ld.LOCAL:t=await Kc(Vh)._isAvailable()?Vh:kh;break;case ld.NONE:t=Yc;break;default:return sc("argument-error",{appName:this._delegate.name})}return this._delegate.setPersistence(t)}signInAndRetrieveDataWithCredential(e){return this.signInWithCredential(e)}signInAnonymously(){return vd(this._delegate,async function(e){var t;if(ct(e.app))return Promise.reject(cc(e));const n=dl(e);if(await n._initializationPromise,null===(t=n.currentUser)||void 0===t?void 0:t.isAnonymous)return new $l({user:n.currentUser,providerId:null,operationType:"signIn"});const i=await Hl(n,{returnSecureToken:!0}),r=await $l._fromIdTokenResponse(n,"signIn",i,!0);return await n._updateCurrentUser(r.user),r}(this._delegate))}signInWithCredential(e){return vd(this._delegate,th(this._delegate,e))}signInWithCustomToken(e){return vd(this._delegate,async function(e,t){if(ct(e.app))return Promise.reject(cc(e));const n=dl(e),i=await async function(e,t){return kc(e,"POST","/v1/accounts:signInWithCustomToken",Ic(e,t))}(n,{token:t,returnSecureToken:!0}),r=await $l._fromIdTokenResponse(n,"signIn",i);return await n._updateCurrentUser(r.user),r}(this._delegate,e))}signInWithEmailAndPassword(e,t){return vd(this._delegate,function(e,t,n){return ct(e.app)?Promise.reject(cc(e)):th(K(e),Ll.credential(t,n)).catch((async t=>{throw"auth/password-does-not-meet-requirements"===t.code&&ch(e),t}))}(this._delegate,e,t))}signInWithEmailLink(e,t){return vd(this._delegate,async function(e,t,n){if(ct(e.app))return Promise.reject(cc(e));const i=K(e),r=Ll.credentialWithLink(t,n||fc());return uc(r._tenantId===(i.tenantId||null),i,"tenant-id-mismatch"),th(i,r)}(this._delegate,e,t))}signInWithPhoneNumber(e,t){return yd(this._delegate,async function(e,t,n){if(ct(e.app))return Promise.reject(cc(e));const i=dl(e),r=await eu(i,t,K(n));return new Zh(r,(e=>th(i,e)))}(this._delegate,e,t))}async signInWithPopup(e){return Id(ad(),this._delegate,"operation-not-supported-in-this-environment"),vd(this._delegate,async function(e,t,n){if(ct(e.app))return Promise.reject(oc(e,"operation-not-supported-in-this-environment"));const i=dl(e);lc(e,t,Ml);const r=nu(i,n);return new lu(i,"signInViaPopup",t,r).executeNotNull()}(this._delegate,e,_d))}async signInWithRedirect(e){return Id(ad(),this._delegate,"operation-not-supported-in-this-environment"),await dd(this._delegate),function(e,t,n){return async function(e,t,n){if(ct(e.app))return Promise.reject(cc(e));const i=dl(e);lc(e,t,Ml),await i._initializationPromise;const r=nu(i,n);return await du(r,i),r._openRedirect(i,t,"signInViaRedirect")}(e,t,n)}(this._delegate,e,_d)}updateCurrentUser(e){return this._delegate.updateCurrentUser(e)}verifyPasswordResetCode(e){return async function(e,t){const{data:n}=await lh(K(e),t);return n.email}(this._delegate,e)}unwrap(){return this._delegate}_delete(){return this._delegate._delete()}linkUnderlyingAuth(){this._delegate.wrapped=()=>this}}function Td(e,t,n){let i=e;"function"!=typeof e&&({next:i,error:t,complete:n}=e);const r=i;return{next:e=>r(e&&bd.getOrCreate(e)),error:t,complete:n}}function kd(e,t){const n=function(e,t){const n=pd();if(!n)return[];const i=Jc(ud,e,t);switch(n.getItem(i)){case ld.NONE:return[Yc];case ld.LOCAL:return[Vh,Sh];case ld.SESSION:return[Sh];default:return[]}}(e,t);if("undefined"==typeof self||n.includes(Vh)||n.push(Vh),"undefined"!=typeof window)for(const e of[kh,Sh])n.includes(e)||n.push(e);return n.includes(Yc)||n.push(Yc),n}Cd.Persistence=ld;class Ed{constructor(){this.providerId="phone",this._delegate=new tu(md(Lt.auth()))}static credential(e,t){return tu.credential(e,t)}verifyPhoneNumber(e,t){return this._delegate.verifyPhoneNumber(e,t)}unwrap(){return this._delegate}}Ed.PHONE_SIGN_IN_METHOD=tu.PHONE_SIGN_IN_METHOD,Ed.PROVIDER_ID=tu.PROVIDER_ID;const Sd=uc;class Pd{constructor(e,t,n=Lt.app()){var i;Sd(null===(i=n.options)||void 0===i?void 0:i.apiKey,"invalid-api-key",{appName:n.name}),this._delegate=new Xh(n.auth(),e,t),this.type=this._delegate.type}clear(){this._delegate.clear()}render(){return this._delegate.render()}verify(){return this._delegate.verify()}}function Rd(e,t){window[e]||(window[e]=t)}!function(e){e.INTERNAL.registerComponent(new G("auth-compat",(e=>{const t=e.getProvider("app-compat").getImmediate(),n=e.getProvider("auth");return new Cd(t,n)}),"PUBLIC").setServiceProps({ActionCodeInfo:{Operation:{EMAIL_SIGNIN:"EMAIL_SIGNIN",PASSWORD_RESET:"PASSWORD_RESET",RECOVER_EMAIL:"RECOVER_EMAIL",REVERT_SECOND_FACTOR_ADDITION:"REVERT_SECOND_FACTOR_ADDITION",VERIFY_AND_CHANGE_EMAIL:"VERIFY_AND_CHANGE_EMAIL",VERIFY_EMAIL:"VERIFY_EMAIL"}},EmailAuthProvider:Ll,FacebookAuthProvider:ql,GithubAuthProvider:Wl,GoogleAuthProvider:jl,OAuthProvider:Ul,SAMLAuthProvider:Bl,PhoneAuthProvider:Ed,PhoneMultiFactorGenerator:Wu,RecaptchaVerifier:Pd,TwitterAuthProvider:zl,Auth:Cd,AuthCredential:Il,Error:C}).setInstantiationMode("LAZY").setMultipleInstances(!1)),e.registerVersion("@firebase/auth-compat","0.5.14")}(Lt);const{prcFirebaseConfig:Nd,prcFirebaseInteractivesConfig:Ad}=window;Rd("firebase",Lt.initializeApp(Nd)),Rd("firebaseDb",Lt.database()),Rd("firebaseAuth",Lt.auth()),Rd("interactivesDb",Lt.initializeApp(Ad,"interactivesDb")),window.interactivesDB=window.interactivesDb})();; (()=>{"use strict";var e={n:r=>{var t=r&&r.__esModule?()=>r.default:()=>r;return e.d(t,{a:t}),t},d:(r,t)=>{for(var o in t)e.o(t,o)&&!e.o(r,o)&&Object.defineProperty(r,o,{enumerable:!0,get:t[o]})},o:(e,r)=>Object.prototype.hasOwnProperty.call(e,r)};const r=window.wp.domReady;e.n(r)()((()=>{const e=new IntersectionObserver((r=>{r.forEach((r=>{r.isIntersecting&&(r.target.classList.add("visible"),e.unobserve(r.target))}))}),{rootMargin:"-25% 0px -25% 0px",threshold:.5});document.querySelectorAll(".prc-animations__fade-in-down").forEach((r=>{e.observe(r)}))}))})();; (()=>{"use strict";var e={d:(t,r)=>{for(var n in r)e.o(r,n)&&!e.o(t,n)&&Object.defineProperty(t,n,{enumerable:!0,get:r[n]})},o:(e,t)=>Object.prototype.hasOwnProperty.call(e,t),r:e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})}},t={};e.r(t),e.d(t,{escapeAmpersand:()=>n,escapeAttribute:()=>u,escapeEditableHTML:()=>i,escapeHTML:()=>c,escapeLessThan:()=>o,escapeQuotationMark:()=>a,isValidAttributeName:()=>p});const r=/[\u007F-\u009F "'>/="\uFDD0-\uFDEF]/;function n(e){return e.replace(/&(?!([a-z0-9]+|#[0-9]+|#x[a-f0-9]+);)/gi,"&")}function a(e){return e.replace(/"/g,""")}function o(e){return e.replace(//g,">")}(a(n(e)))}function c(e){return o(n(e))}function i(e){return o(e.replace(/&/g,"&"))}function p(e){return!r.test(e)}(window.wp=window.wp||{}).escapeHtml=t})(); //# sourceMappingURL=index.min.js.map; (()=>{"use strict";var e={4140:(e,t,n)=>{var r=n(5795);t.H=r.createRoot,t.c=r.hydrateRoot},5795:e=>{e.exports=window.ReactDOM}},t={};function n(r){var o=t[r];if(void 0!==o)return o.exports;var i=t[r]={exports:{}};return e[r](i,i.exports,n),i.exports}n.d=(e,t)=>{for(var r in t)n.o(t,r)&&!n.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},n.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),n.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var r={};n.r(r),n.d(r,{Children:()=>o.Children,Component:()=>o.Component,Fragment:()=>o.Fragment,Platform:()=>k,PureComponent:()=>o.PureComponent,RawHTML:()=>A,StrictMode:()=>o.StrictMode,Suspense:()=>o.Suspense,cloneElement:()=>o.cloneElement,concatChildren:()=>m,createContext:()=>o.createContext,createElement:()=>o.createElement,createInterpolateElement:()=>h,createPortal:()=>y.createPortal,createRef:()=>o.createRef,createRoot:()=>v.H,findDOMNode:()=>y.findDOMNode,flushSync:()=>y.flushSync,forwardRef:()=>o.forwardRef,hydrate:()=>y.hydrate,hydrateRoot:()=>v.c,isEmptyElement:()=>b,isValidElement:()=>o.isValidElement,lazy:()=>o.lazy,memo:()=>o.memo,render:()=>y.render,renderToString:()=>G,startTransition:()=>o.startTransition,switchChildrenNodeName:()=>g,unmountComponentAtNode:()=>y.unmountComponentAtNode,useCallback:()=>o.useCallback,useContext:()=>o.useContext,useDebugValue:()=>o.useDebugValue,useDeferredValue:()=>o.useDeferredValue,useEffect:()=>o.useEffect,useId:()=>o.useId,useImperativeHandle:()=>o.useImperativeHandle,useInsertionEffect:()=>o.useInsertionEffect,useLayoutEffect:()=>o.useLayoutEffect,useMemo:()=>o.useMemo,useReducer:()=>o.useReducer,useRef:()=>o.useRef,useState:()=>o.useState,useSyncExternalStore:()=>o.useSyncExternalStore,useTransition:()=>o.useTransition});const o=window.React;let i,a,s,l;const c=/<(\/)?(\w+)\s*(\/)?>/g;function u(e,t,n,r,o){return{element:e,tokenStart:t,tokenLength:n,prevOffset:r,leadingTextStart:o,children:[]}}function d(e){const t=function(){const e=c.exec(i);if(null===e)return["no-more-tokens"];const t=e.index,[n,r,o,a]=e,s=n.length;return a?["self-closed",o,t,s]:r?["closer",o,t,s]:["opener",o,t,s]}(),[n,r,d,h]=t,m=l.length,g=d>a?a:null;if(!e[r])return p(),!1;switch(n){case"no-more-tokens":if(0!==m){const{leadingTextStart:e,tokenStart:t}=l.pop();s.push(i.substr(e,t))}return p(),!1;case"self-closed":return 0===m?(null!==g&&s.push(i.substr(g,d-g)),s.push(e[r]),a=d+h,!0):(f(u(e[r],d,h)),a=d+h,!0);case"opener":return l.push(u(e[r],d,h,d+h,g)),a=d+h,!0;case"closer":if(1===m)return function(e){const{element:t,leadingTextStart:n,prevOffset:r,tokenStart:a,children:c}=l.pop(),u=e?i.substr(r,e-r):i.substr(r);u&&c.push(u),null!==n&&s.push(i.substr(n,a-n)),s.push((0,o.cloneElement)(t,null,...c))}(d),a=d+h,!0;const t=l.pop(),n=i.substr(t.prevOffset,d-t.prevOffset);t.children.push(n),t.prevOffset=d+h;const c=u(t.element,t.tokenStart,t.tokenLength,d+h);return c.children=t.children,f(c),a=d+h,!0;default:return p(),!1}}function p(){const e=i.length-a;0!==e&&s.push(i.substr(a,e))}function f(e){const{element:t,tokenStart:n,tokenLength:r,prevOffset:a,children:s}=e,c=l[l.length-1],u=i.substr(c.prevOffset,n-c.prevOffset);u&&c.children.push(u),c.children.push((0,o.cloneElement)(t,null,...s)),c.prevOffset=a||n+r}const h=(e,t)=>{if(i=e,a=0,s=[],l=[],c.lastIndex=0,!(e=>{const t="object"==typeof e,n=t&&Object.values(e);return t&&n.length&&n.every((e=>(0,o.isValidElement)(e)))})(t))throw new TypeError("The conversionMap provided is not valid. It must be an object with values that are React Elements");do{}while(d(t));return(0,o.createElement)(o.Fragment,null,...s)};function m(...e){return e.reduce(((e,t,n)=>(o.Children.forEach(t,((t,r)=>{t&&"string"!=typeof t&&(t=(0,o.cloneElement)(t,{key:[n,r].join()})),e.push(t)})),e)),[])}function g(e,t){return e&&o.Children.map(e,((e,n)=>{if("string"==typeof e?.valueOf())return(0,o.createElement)(t,{key:n},e);const{children:r,...i}=e.props;return(0,o.createElement)(t,{key:n,...i},r)}))}var y=n(5795),v=n(4140);const b=e=>"number"!=typeof e&&("string"==typeof e?.valueOf()||Array.isArray(e)?!e.length:!e),k={OS:"web",select:e=>"web"in e?e.web:e.default,isWeb:!0};function w(e){return"[object Object]"===Object.prototype.toString.call(e)}var S=function(){return S=Object.assign||function(e){for(var t,n=1,r=arguments.length;n{"string"==typeof e&&""!==e.trim()&&(n+=e)})),(0,o.createElement)("div",{dangerouslySetInnerHTML:{__html:n},...t})}const{Provider:M,Consumer:I}=(0,o.createContext)(void 0),L=(0,o.forwardRef)((()=>null)),P=new Set(["string","boolean","number"]),j=new Set(["area","base","br","col","command","embed","hr","img","input","keygen","link","meta","param","source","track","wbr"]),H=new Set(["allowfullscreen","allowpaymentrequest","allowusermedia","async","autofocus","autoplay","checked","controls","default","defer","disabled","download","formnovalidate","hidden","ismap","itemscope","loop","multiple","muted","nomodule","novalidate","open","playsinline","readonly","required","reversed","selected","typemustmatch"]),z=new Set(["autocapitalize","autocomplete","charset","contenteditable","crossorigin","decoding","dir","draggable","enctype","formenctype","formmethod","http-equiv","inputmode","kind","method","preload","scope","shape","spellcheck","translate","type","wrap"]),D=new Set(["animation","animationIterationCount","baselineShift","borderImageOutset","borderImageSlice","borderImageWidth","columnCount","cx","cy","fillOpacity","flexGrow","flexShrink","floodOpacity","fontWeight","gridColumnEnd","gridColumnStart","gridRowEnd","gridRowStart","lineHeight","opacity","order","orphans","r","rx","ry","shapeImageThreshold","stopOpacity","strokeDasharray","strokeDashoffset","strokeMiterlimit","strokeOpacity","strokeWidth","tabSize","widows","x","y","zIndex","zoom"]);function V(e,t){return t.some((t=>0===e.indexOf(t)))}function W(e){return"key"===e||"children"===e}function _(e,t){return"style"===e?function(e){if(!1===w(t=e)||void 0!==(n=t.constructor)&&(!1===w(r=n.prototype)||!1===r.hasOwnProperty("isPrototypeOf")))return e;var t,n,r;let o;for(const t in e){const n=e[t];null!=n&&(o?o+=";":o="",o+=q(t)+":"+X(t,n))}return o}(t):t}const F=["accentHeight","alignmentBaseline","arabicForm","baselineShift","capHeight","clipPath","clipRule","colorInterpolation","colorInterpolationFilters","colorProfile","colorRendering","dominantBaseline","enableBackground","fillOpacity","fillRule","floodColor","floodOpacity","fontFamily","fontSize","fontSizeAdjust","fontStretch","fontStyle","fontVariant","fontWeight","glyphName","glyphOrientationHorizontal","glyphOrientationVertical","horizAdvX","horizOriginX","imageRendering","letterSpacing","lightingColor","markerEnd","markerMid","markerStart","overlinePosition","overlineThickness","paintOrder","panose1","pointerEvents","renderingIntent","shapeRendering","stopColor","stopOpacity","strikethroughPosition","strikethroughThickness","strokeDasharray","strokeDashoffset","strokeLinecap","strokeLinejoin","strokeMiterlimit","strokeOpacity","strokeWidth","textAnchor","textDecoration","textRendering","underlinePosition","underlineThickness","unicodeBidi","unicodeRange","unitsPerEm","vAlphabetic","vHanging","vIdeographic","vMathematical","vectorEffect","vertAdvY","vertOriginX","vertOriginY","wordSpacing","writingMode","xmlnsXlink","xHeight"].reduce(((e,t)=>(e[t.toLowerCase()]=t,e)),{}),N=["allowReorder","attributeName","attributeType","autoReverse","baseFrequency","baseProfile","calcMode","clipPathUnits","contentScriptType","contentStyleType","diffuseConstant","edgeMode","externalResourcesRequired","filterRes","filterUnits","glyphRef","gradientTransform","gradientUnits","kernelMatrix","kernelUnitLength","keyPoints","keySplines","keyTimes","lengthAdjust","limitingConeAngle","markerHeight","markerUnits","markerWidth","maskContentUnits","maskUnits","numOctaves","pathLength","patternContentUnits","patternTransform","patternUnits","pointsAtX","pointsAtY","pointsAtZ","preserveAlpha","preserveAspectRatio","primitiveUnits","refX","refY","repeatCount","repeatDur","requiredExtensions","requiredFeatures","specularConstant","specularExponent","spreadMethod","startOffset","stdDeviation","stitchTiles","suppressContentEditableWarning","suppressHydrationWarning","surfaceScale","systemLanguage","tableValues","targetX","targetY","textLength","viewBox","viewTarget","xChannelSelector","yChannelSelector"].reduce(((e,t)=>(e[t.toLowerCase()]=t,e)),{}),U=["xlink:actuate","xlink:arcrole","xlink:href","xlink:role","xlink:show","xlink:title","xlink:type","xml:base","xml:lang","xml:space","xmlns:xlink"].reduce(((e,t)=>(e[t.replace(":","").toLowerCase()]=t,e)),{});function $(e){switch(e){case"htmlFor":return"for";case"className":return"class"}const t=e.toLowerCase();return N[t]?N[t]:F[t]?R(F[t]):U[t]?U[t]:t}function q(e){return e.startsWith("--")?e:V(e,["ms","O","Moz","Webkit"])?"-"+R(e):R(e)}function X(e,t){return"number"!=typeof t||0===t||D.has(e)?t:t+"px"}function B(e,t,n={}){if(null==e||!1===e)return"";if(Array.isArray(e))return Z(e,t,n);switch(typeof e){case"string":return(0,T.escapeHTML)(e);case"number":return e.toString()}const{type:r,props:i}=e;switch(r){case o.StrictMode:case o.Fragment:return Z(i.children,t,n);case A:const{children:e,...r}=i;return Y(Object.keys(r).length?"div":null,{...r,dangerouslySetInnerHTML:{__html:e}},t,n)}switch(typeof r){case"string":return Y(r,i,t,n);case"function":return r.prototype&&"function"==typeof r.prototype.render?function(e,t,n,r={}){const o=new e(t,r);"function"==typeof o.getChildContext&&Object.assign(r,o.getChildContext());return B(o.render(),n,r)}(r,i,t,n):B(r(i,n),t,n)}switch(r&&r.$$typeof){case M.$$typeof:return Z(i.children,i.value,n);case I.$$typeof:return B(i.children(t||r._currentValue),t,n);case L.$$typeof:return B(r.render(i),t,n)}return""}function Y(e,t,n,r={}){let o="";if("textarea"===e&&t.hasOwnProperty("value")){o=Z(t.value,n,r);const{value:e,...i}=t;t=i}else t.dangerouslySetInnerHTML&&"string"==typeof t.dangerouslySetInnerHTML.__html?o=t.dangerouslySetInnerHTML.__html:void 0!==t.children&&(o=Z(t.children,n,r));if(!e)return o;const i=function(e){let t="";for(const n in e){const r=$(n);if(!(0,T.isValidAttributeName)(r))continue;let o=_(n,e[n]);if(!P.has(typeof o))continue;if(W(n))continue;const i=H.has(r);if(i&&!1===o)continue;const a=i||V(n,["data-","aria-"])||z.has(r);("boolean"!=typeof o||a)&&(t+=" "+r,i||("string"==typeof o&&(o=(0,T.escapeAttribute)(o)),t+='="'+o+'"'))}return t}(t);return j.has(e)?"<"+e+i+"/>":"<"+e+i+">"+o+""}function Z(e,t,n={}){let r="";e=Array.isArray(e)?e:[e];for(let o=0;o{"use strict";var e,r={215:()=>{const e=window.wp.element,r=window.ReactJSXRuntime,a=["brands","duotone","light","regular","sharp","sharp-solid","sharp-regular","sharp-light","sharp-thin","solid","thin","custom-icons"],o=new Map,l=(()=>{const e=`${window.location.origin}/wp-content/plugins/prc-icon-library/build/icons/sprites`;return r=>`${e}/${r}.svg`})(),s=["px","em","rem","%","vw","vh","vmin","vmax","ex","ch","cm","mm","in","pt","pc"],i=(0,e.memo)((({library:i="solid",icon:t,size:c=1,color:n=null})=>{const u=a.includes(i)?i:"solid",d=(0,e.useMemo)((()=>{const e=`${u}#${t}`;return o.has(e)||o.set(e,`${l(u)}#${t}`),o.get(e)}),[u,t]),p=(0,e.useMemo)((()=>{return"number"==typeof c?`${c}em`:"string"==typeof c?(e=c,s.some((r=>e.endsWith(r)))?c:`${c}em`):void 0;var e}),[c]),h=(0,e.useMemo)((()=>n?{color:`${n} !important`}:{}),[n]),g=(0,e.useMemo)((()=>({width:p,height:p,...h})),[p,h]);return t&&"string"==typeof t?(0,r.jsx)("i",{className:"icon",children:(0,r.jsx)("svg",{style:g,children:(0,r.jsx)("use",{xlinkHref:d})})}):null}));i.displayName="Icon";const t=i,c=JSON.parse('{"brands":["42-group","500px","accessible-icon","accusoft","adn","adversal","affiliatetheme","airbnb","algolia","alipay","amazon","amazon-pay","amilia","android","angellist","angrycreative","angular","app-store","app-store-ios","apper","apple","apple-pay","artstation","asymmetrik","atlassian","audible","autoprefixer","avianex","aviato","aws","bandcamp","battle-net","behance","bilibili","bimobject","bitbucket","bitcoin","bity","black-tie","blackberry","blogger","blogger-b","bluesky","bluetooth","bluetooth-b","bootstrap","bots","brave","brave-reverse","btc","buffer","buromobelexperte","buy-n-large","buysellads","canadian-maple-leaf","cc-amazon-pay","cc-amex","cc-apple-pay","cc-diners-club","cc-discover","cc-jcb","cc-mastercard","cc-paypal","cc-stripe","cc-visa","centercode","centos","chrome","chromecast","cloudflare","cloudscale","cloudsmith","cloudversify","cmplid","codepen","codiepie","confluence","connectdevelop","contao","cotton-bureau","cpanel","creative-commons","creative-commons-by","creative-commons-nc","creative-commons-nc-eu","creative-commons-nc-jp","creative-commons-nd","creative-commons-pd","creative-commons-pd-alt","creative-commons-remix","creative-commons-sa","creative-commons-sampling","creative-commons-sampling-plus","creative-commons-share","creative-commons-zero","critical-role","css3","css3-alt","cuttlefish","d-and-d","d-and-d-beyond","dailymotion","dart-lang","dashcube","debian","deezer","delicious","deploydog","deskpro","dev","deviantart","dhl","diaspora","digg","digital-ocean","discord","discourse","dochub","docker","draft2digital","dribbble","dropbox","drupal","dyalog","earlybirds","ebay","edge","edge-legacy","elementor","ello","ember","empire","envira","erlang","ethereum","etsy","evernote","expeditedssl","facebook","facebook-f","facebook-messenger","fantasy-flight-games","fedex","fedora","figma","firefox","firefox-browser","first-order","first-order-alt","firstdraft","flickr","flipboard","flutter","fly","font-awesome","fonticons","fonticons-fi","fort-awesome","fort-awesome-alt","forumbee","foursquare","free-code-camp","freebsd","fulcrum","galactic-republic","galactic-senate","get-pocket","gg","gg-circle","git","git-alt","github","github-alt","gitkraken","gitlab","gitter","glide","glide-g","gofore","golang","goodreads","goodreads-g","google","google-drive","google-pay","google-play","google-plus","google-plus-g","google-scholar","google-wallet","gratipay","grav","gripfire","grunt","guilded","gulp","hacker-news","hackerrank","hashnode","hips","hire-a-helper","hive","hooli","hornbill","hotjar","houzz","html5","hubspot","ideal","imdb","instagram","instalod","intercom","internet-explorer","invision","ioxhost","itch-io","itunes","itunes-note","java","jedi-order","jenkins","jira","joget","joomla","js","jsfiddle","jxl","kaggle","keybase","keycdn","kickstarter","kickstarter-k","korvue","laravel","lastfm","leanpub","less","letterboxd","line","linkedin","linkedin-in","linode","linux","lyft","magento","mailchimp","mandalorian","markdown","mastodon","maxcdn","mdb","medapps","medium","medrt","meetup","megaport","mendeley","meta","microblog","microsoft","mintbit","mix","mixcloud","mixer","mizuni","modx","monero","napster","neos","nfc-directional","nfc-symbol","nimblr","node","node-js","npm","ns8","nutritionix","octopus-deploy","odnoklassniki","odysee","old-republic","opencart","openid","opensuse","opera","optin-monster","orcid","osi","padlet","page4","pagelines","palfed","patreon","paypal","perbyte","periscope","phabricator","phoenix-framework","phoenix-squadron","php","pied-piper","pied-piper-alt","pied-piper-hat","pied-piper-pp","pinterest","pinterest-p","pix","pixiv","playstation","product-hunt","pushed","python","qq","quinscape","quora","r-project","raspberry-pi","ravelry","react","reacteurope","readme","rebel","red-river","reddit","reddit-alien","redhat","renren","replyd","researchgate","resolving","rev","rocketchat","rockrms","rust","safari","salesforce","sass","schlix","screenpal","scribd","searchengin","sellcast","sellsy","servicestack","shirtsinbulk","shoelace","shopify","shopware","signal-messenger","simplybuilt","sistrix","sith","sitrox","sketch","skyatlas","skype","slack","slideshare","snapchat","soundcloud","sourcetree","space-awesome","speakap","speaker-deck","spotify","square-behance","square-dribbble","square-facebook","square-font-awesome","square-font-awesome-stroke","square-git","square-github","square-gitlab","square-google-plus","square-hacker-news","square-instagram","square-js","square-lastfm","square-letterboxd","square-odnoklassniki","square-pied-piper","square-pinterest","square-reddit","square-snapchat","square-steam","square-threads","square-tumblr","square-twitter","square-upwork","square-viadeo","square-vimeo","square-web-awesome","square-web-awesome-stroke","square-whatsapp","square-x-twitter","square-xing","square-youtube","squarespace","stack-exchange","stack-overflow","stackpath","staylinked","steam","steam-symbol","sticker-mule","strava","stripe","stripe-s","stubber","studiovinari","stumbleupon","stumbleupon-circle","superpowers","supple","suse","swift","symfony","teamspeak","telegram","tencent-weibo","the-red-yeti","themeco","themeisle","think-peaks","threads","tiktok","trade-federation","trello","tumblr","twitch","twitter","typo3","uber","ubuntu","uikit","umbraco","uncharted","uniregistry","unity","unsplash","untappd","ups","upwork","usb","usps","ussunnah","vaadin","viacoin","viadeo","viber","vimeo","vimeo-v","vine","vk","vnv","vuejs","watchman-monitoring","waze","web-awesome","webflow","weebly","weibo","weixin","whatsapp","whmcs","wikipedia-w","windows","wirsindhandwerk","wix","wizards-of-the-coast","wodu","wolf-pack-battalion","wordpress","wordpress-simple","wpbeginner","wpexplorer","wpforms","wpressr","x-twitter","xbox","xing","y-combinator","yahoo","yammer","yandex","yandex-international","yarn","yelp","yoast","youtube","zhihu"],"custom-icons":["column-chart","compare","table"],"duotone":["0","00","1","2","3","360-degrees","4","5","6","7","8","9","a","abacus","accent-grave","acorn","address-book","address-card","air-conditioner","airplay","alarm-clock","alarm-exclamation","alarm-plus","alarm-snooze","album","album-circle-plus","album-circle-user","album-collection","album-collection-circle-plus","album-collection-circle-user","alicorn","alien","alien-8bit","align-center","align-justify","align-left","align-right","align-slash","alt","amp-guitar","ampersand","anchor","anchor-circle-check","anchor-circle-exclamation","anchor-circle-xmark","anchor-lock","angel","angle","angle-90","angle-down","angle-left","angle-right","angle-up","angles-down","angles-left","angles-right","angles-up","angles-up-down","ankh","ant","apartment","aperture","apostrophe","apple-core","apple-whole","archway","arrow-down","arrow-down-1-9","arrow-down-9-1","arrow-down-a-z","arrow-down-arrow-up","arrow-down-big-small","arrow-down-from-arc","arrow-down-from-bracket","arrow-down-from-dotted-line","arrow-down-from-line","arrow-down-left","arrow-down-left-and-arrow-up-right-to-center","arrow-down-long","arrow-down-right","arrow-down-short-wide","arrow-down-small-big","arrow-down-square-triangle","arrow-down-to-arc","arrow-down-to-bracket","arrow-down-to-dotted-line","arrow-down-to-line","arrow-down-to-square","arrow-down-triangle-square","arrow-down-up-across-line","arrow-down-up-lock","arrow-down-wide-short","arrow-down-z-a","arrow-left","arrow-left-from-arc","arrow-left-from-bracket","arrow-left-from-line","arrow-left-long","arrow-left-long-to-line","arrow-left-to-arc","arrow-left-to-bracket","arrow-left-to-line","arrow-pointer","arrow-progress","arrow-right","arrow-right-arrow-left","arrow-right-from-arc","arrow-right-from-bracket","arrow-right-from-line","arrow-right-long","arrow-right-long-to-line","arrow-right-to-arc","arrow-right-to-bracket","arrow-right-to-city","arrow-right-to-line","arrow-rotate-left","arrow-rotate-right","arrow-trend-down","arrow-trend-up","arrow-turn-down","arrow-turn-down-left","arrow-turn-down-right","arrow-turn-left","arrow-turn-left-down","arrow-turn-left-up","arrow-turn-right","arrow-turn-up","arrow-up","arrow-up-1-9","arrow-up-9-1","arrow-up-a-z","arrow-up-arrow-down","arrow-up-big-small","arrow-up-from-arc","arrow-up-from-bracket","arrow-up-from-dotted-line","arrow-up-from-ground-water","arrow-up-from-line","arrow-up-from-square","arrow-up-from-water-pump","arrow-up-left","arrow-up-left-from-circle","arrow-up-long","arrow-up-right","arrow-up-right-and-arrow-down-left-from-center","arrow-up-right-dots","arrow-up-right-from-square","arrow-up-short-wide","arrow-up-small-big","arrow-up-square-triangle","arrow-up-to-arc","arrow-up-to-bracket","arrow-up-to-dotted-line","arrow-up-to-line","arrow-up-triangle-square","arrow-up-wide-short","arrow-up-z-a","arrows-cross","arrows-down-to-line","arrows-down-to-people","arrows-from-dotted-line","arrows-from-line","arrows-left-right","arrows-left-right-to-line","arrows-maximize","arrows-minimize","arrows-repeat","arrows-repeat-1","arrows-retweet","arrows-rotate","arrows-rotate-reverse","arrows-spin","arrows-split-up-and-left","arrows-to-circle","arrows-to-dot","arrows-to-dotted-line","arrows-to-eye","arrows-to-line","arrows-turn-right","arrows-turn-to-dots","arrows-up-down","arrows-up-down-left-right","arrows-up-to-line","asterisk","at","atom","atom-simple","audio-description","audio-description-slash","austral-sign","avocado","award","award-simple","axe","axe-battle","b","baby","baby-carriage","backpack","backward","backward-fast","backward-step","bacon","bacteria","bacterium","badge","badge-check","badge-dollar","badge-percent","badge-sheriff","badger-honey","badminton","bag-seedling","bag-shopping","bag-shopping-minus","bag-shopping-plus","bagel","bags-shopping","baguette","bahai","baht-sign","ball-pile","balloon","balloons","ballot","ballot-check","ban","ban-bug","ban-parking","ban-smoking","banana","bandage","bangladeshi-taka-sign","banjo","barcode","barcode-read","barcode-scan","bars","bars-filter","bars-progress","bars-sort","bars-staggered","baseball","baseball-bat-ball","basket-shopping","basket-shopping-minus","basket-shopping-plus","basket-shopping-simple","basketball","basketball-hoop","bat","bath","battery-bolt","battery-empty","battery-exclamation","battery-full","battery-half","battery-low","battery-quarter","battery-slash","battery-three-quarters","bed","bed-bunk","bed-empty","bed-front","bed-pulse","bee","beer-mug","beer-mug-empty","bell","bell-concierge","bell-exclamation","bell-on","bell-plus","bell-ring","bell-school","bell-school-slash","bell-slash","bells","bench-tree","bezier-curve","bicycle","billboard","bin-bottles","bin-bottles-recycle","bin-recycle","binary","binary-circle-check","binary-lock","binary-slash","binoculars","biohazard","bird","bitcoin-sign","blanket","blanket-fire","blender","blender-phone","blinds","blinds-open","blinds-raised","block","block-brick","block-brick-fire","block-question","block-quote","blog","blueberries","bluetooth","bold","bolt","bolt-auto","bolt-lightning","bolt-slash","bomb","bone","bone-break","bong","book","book-arrow-right","book-arrow-up","book-atlas","book-bible","book-blank","book-bookmark","book-circle-arrow-right","book-circle-arrow-up","book-copy","book-font","book-heart","book-journal-whills","book-medical","book-open","book-open-cover","book-open-reader","book-quran","book-section","book-skull","book-sparkles","book-tanakh","book-user","bookmark","bookmark-slash","books","books-medical","boombox","boot","boot-heeled","booth-curtain","border-all","border-bottom","border-bottom-right","border-center-h","border-center-v","border-inner","border-left","border-none","border-outer","border-right","border-top","border-top-left","bore-hole","bottle-baby","bottle-droplet","bottle-water","bow-arrow","bowl-chopsticks","bowl-chopsticks-noodles","bowl-food","bowl-hot","bowl-rice","bowl-scoop","bowl-scoops","bowl-soft-serve","bowl-spoon","bowling-ball","bowling-ball-pin","bowling-pins","box","box-archive","box-ballot","box-check","box-circle-check","box-dollar","box-heart","box-open","box-open-full","box-taped","box-tissue","boxes-packing","boxes-stacked","boxing-glove","bracket-curly","bracket-curly-right","bracket-round","bracket-round-right","bracket-square","bracket-square-right","brackets-curly","brackets-round","brackets-square","braille","brain","brain-arrow-curved-right","brain-circuit","brake-warning","brazilian-real-sign","bread-loaf","bread-slice","bread-slice-butter","bridge","bridge-circle-check","bridge-circle-exclamation","bridge-circle-xmark","bridge-lock","bridge-suspension","bridge-water","briefcase","briefcase-arrow-right","briefcase-blank","briefcase-medical","brightness","brightness-low","bring-forward","bring-front","broccoli","broom","broom-ball","broom-wide","browser","browsers","brush","bucket","bug","bug-slash","bugs","building","building-circle-arrow-right","building-circle-check","building-circle-exclamation","building-circle-xmark","building-columns","building-flag","building-lock","building-magnifying-glass","building-memo","building-ngo","building-shield","building-un","building-user","building-wheat","buildings","bulldozer","bullhorn","bullseye","bullseye-arrow","bullseye-pointer","buoy","buoy-mooring","burger","burger-cheese","burger-fries","burger-glass","burger-lettuce","burger-soda","burrito","burst","bus","bus-school","bus-simple","business-time","butter","c","cabin","cabinet-filing","cable-car","cactus","caduceus","cake-candles","cake-slice","calculator","calculator-simple","calendar","calendar-arrow-down","calendar-arrow-up","calendar-check","calendar-circle-exclamation","calendar-circle-minus","calendar-circle-plus","calendar-circle-user","calendar-clock","calendar-day","calendar-days","calendar-exclamation","calendar-heart","calendar-image","calendar-lines","calendar-lines-pen","calendar-minus","calendar-pen","calendar-plus","calendar-range","calendar-star","calendar-users","calendar-week","calendar-xmark","calendars","camcorder","camera","camera-cctv","camera-movie","camera-polaroid","camera-retro","camera-rotate","camera-security","camera-slash","camera-viewfinder","camera-web","camera-web-slash","campfire","campground","can-food","candle-holder","candy","candy-bar","candy-cane","candy-corn","cannabis","cannon","capsules","car","car-battery","car-bolt","car-building","car-bump","car-burst","car-bus","car-circle-bolt","car-garage","car-mirrors","car-on","car-rear","car-side","car-side-bolt","car-tilt","car-tunnel","car-wash","car-wrench","caravan","caravan-simple","card-club","card-diamond","card-heart","card-spade","cards","cards-blank","caret-down","caret-left","caret-right","caret-up","carrot","cars","cart-arrow-down","cart-arrow-up","cart-circle-arrow-down","cart-circle-arrow-up","cart-circle-check","cart-circle-exclamation","cart-circle-plus","cart-circle-xmark","cart-flatbed","cart-flatbed-boxes","cart-flatbed-empty","cart-flatbed-suitcase","cart-minus","cart-plus","cart-shopping","cart-shopping-fast","cart-xmark","cash-register","cassette-betamax","cassette-tape","cassette-vhs","castle","cat","cat-space","cauldron","cedi-sign","cent-sign","certificate","chair","chair-office","chalkboard","chalkboard-user","champagne-glass","champagne-glasses","charging-station","chart-area","chart-bar","chart-bullet","chart-candlestick","chart-column","chart-gantt","chart-kanban","chart-line","chart-line-down","chart-line-up","chart-line-up-down","chart-mixed","chart-mixed-up-circle-currency","chart-mixed-up-circle-dollar","chart-network","chart-pie","chart-pie-simple","chart-pie-simple-circle-currency","chart-pie-simple-circle-dollar","chart-pyramid","chart-radar","chart-scatter","chart-scatter-3d","chart-scatter-bubble","chart-simple","chart-simple-horizontal","chart-tree-map","chart-user","chart-waterfall","check","check-double","check-to-slot","cheese","cheese-swiss","cherries","chess","chess-bishop","chess-bishop-piece","chess-board","chess-clock","chess-clock-flip","chess-king","chess-king-piece","chess-knight","chess-knight-piece","chess-pawn","chess-pawn-piece","chess-queen","chess-queen-piece","chess-rook","chess-rook-piece","chestnut","chevron-down","chevron-left","chevron-right","chevron-up","chevrons-down","chevrons-left","chevrons-right","chevrons-up","chf-sign","child","child-combatant","child-dress","child-reaching","children","chimney","chopsticks","church","circle","circle-0","circle-1","circle-2","circle-3","circle-4","circle-5","circle-6","circle-7","circle-8","circle-9","circle-a","circle-ampersand","circle-arrow-down","circle-arrow-down-left","circle-arrow-down-right","circle-arrow-left","circle-arrow-right","circle-arrow-up","circle-arrow-up-left","circle-arrow-up-right","circle-b","circle-bolt","circle-book-open","circle-bookmark","circle-c","circle-calendar","circle-camera","circle-caret-down","circle-caret-left","circle-caret-right","circle-caret-up","circle-check","circle-chevron-down","circle-chevron-left","circle-chevron-right","circle-chevron-up","circle-d","circle-dashed","circle-divide","circle-dollar","circle-dollar-to-slot","circle-dot","circle-down","circle-down-left","circle-down-right","circle-e","circle-ellipsis","circle-ellipsis-vertical","circle-envelope","circle-euro","circle-exclamation","circle-exclamation-check","circle-f","circle-g","circle-gf","circle-h","circle-half","circle-half-stroke","circle-heart","circle-i","circle-info","circle-j","circle-k","circle-l","circle-left","circle-location-arrow","circle-m","circle-microphone","circle-microphone-lines","circle-minus","circle-n","circle-nodes","circle-notch","circle-o","circle-p","circle-parking","circle-pause","circle-phone","circle-phone-flip","circle-phone-hangup","circle-play","circle-plus","circle-q","circle-quarter","circle-quarter-stroke","circle-quarters","circle-question","circle-r","circle-radiation","circle-right","circle-s","circle-small","circle-sort","circle-sort-down","circle-sort-up","circle-star","circle-sterling","circle-stop","circle-t","circle-three-quarters","circle-three-quarters-stroke","circle-trash","circle-u","circle-up","circle-up-left","circle-up-right","circle-user","circle-v","circle-video","circle-w","circle-waveform-lines","circle-wifi","circle-wifi-circle-wifi","circle-x","circle-xmark","circle-y","circle-yen","circle-z","circles-overlap","citrus","citrus-slice","city","clapperboard","clapperboard-play","clarinet","claw-marks","clipboard","clipboard-check","clipboard-list","clipboard-list-check","clipboard-medical","clipboard-prescription","clipboard-question","clipboard-user","clock","clock-desk","clock-eight","clock-eight-thirty","clock-eleven","clock-eleven-thirty","clock-five","clock-five-thirty","clock-four-thirty","clock-nine","clock-nine-thirty","clock-one","clock-one-thirty","clock-rotate-left","clock-seven","clock-seven-thirty","clock-six","clock-six-thirty","clock-ten","clock-ten-thirty","clock-three","clock-three-thirty","clock-twelve","clock-twelve-thirty","clock-two","clock-two-thirty","clone","closed-captioning","closed-captioning-slash","clothes-hanger","cloud","cloud-arrow-down","cloud-arrow-up","cloud-binary","cloud-bolt","cloud-bolt-moon","cloud-bolt-sun","cloud-check","cloud-drizzle","cloud-exclamation","cloud-fog","cloud-hail","cloud-hail-mixed","cloud-meatball","cloud-minus","cloud-moon","cloud-moon-rain","cloud-music","cloud-plus","cloud-question","cloud-rain","cloud-rainbow","cloud-showers","cloud-showers-heavy","cloud-showers-water","cloud-slash","cloud-sleet","cloud-snow","cloud-sun","cloud-sun-rain","cloud-word","cloud-xmark","clouds","clouds-moon","clouds-sun","clover","club","coconut","code","code-branch","code-commit","code-compare","code-fork","code-merge","code-pull-request","code-pull-request-closed","code-pull-request-draft","code-simple","coffee-bean","coffee-beans","coffee-pot","coffin","coffin-cross","coin","coin-blank","coin-front","coin-vertical","coins","colon","colon-sign","columns-3","comet","comma","command","comment","comment-arrow-down","comment-arrow-up","comment-arrow-up-right","comment-captions","comment-check","comment-code","comment-dollar","comment-dots","comment-exclamation","comment-heart","comment-image","comment-lines","comment-medical","comment-middle","comment-middle-top","comment-minus","comment-music","comment-pen","comment-plus","comment-question","comment-quote","comment-slash","comment-smile","comment-sms","comment-text","comment-xmark","comments","comments-dollar","comments-question","comments-question-check","compact-disc","compass","compass-drafting","compass-slash","compress","compress-wide","computer","computer-classic","computer-mouse","computer-mouse-scrollwheel","computer-speaker","container-storage","conveyor-belt","conveyor-belt-arm","conveyor-belt-boxes","conveyor-belt-empty","cookie","cookie-bite","copy","copyright","corn","corner","couch","court-sport","cow","cowbell","cowbell-circle-plus","crab","crate-apple","crate-empty","credit-card","credit-card-blank","credit-card-front","cricket-bat-ball","croissant","crop","crop-simple","cross","crosshairs","crosshairs-simple","crow","crown","crutch","crutches","cruzeiro-sign","crystal-ball","cube","cubes","cubes-stacked","cucumber","cup-straw","cup-straw-swoosh","cup-togo","cupcake","curling-stone","custard","d","dagger","dash","database","deer","deer-rudolph","delete-left","delete-right","democrat","desktop","desktop-arrow-down","dharmachakra","diagram-cells","diagram-lean-canvas","diagram-nested","diagram-next","diagram-predecessor","diagram-previous","diagram-project","diagram-sankey","diagram-subtask","diagram-successor","diagram-venn","dial","dial-high","dial-low","dial-max","dial-med","dial-med-low","dial-min","dial-off","diamond","diamond-exclamation","diamond-half","diamond-half-stroke","diamond-turn-right","diamonds-4","dice","dice-d10","dice-d12","dice-d20","dice-d4","dice-d6","dice-d8","dice-five","dice-four","dice-one","dice-six","dice-three","dice-two","dinosaur","diploma","disc-drive","disease","display","display-arrow-down","display-chart-up","display-chart-up-circle-currency","display-chart-up-circle-dollar","display-code","display-medical","display-slash","distribute-spacing-horizontal","distribute-spacing-vertical","ditto","divide","dna","do-not-enter","dog","dog-leashed","dollar-sign","dolly","dolly-empty","dolphin","dong-sign","donut","door-closed","door-open","dove","down","down-from-bracket","down-from-dotted-line","down-from-line","down-left","down-left-and-up-right-to-center","down-long","down-right","down-to-bracket","down-to-dotted-line","down-to-line","download","dragon","draw-circle","draw-polygon","draw-square","dreidel","drone","drone-front","droplet","droplet-degree","droplet-percent","droplet-slash","drum","drum-steelpan","drumstick","drumstick-bite","dryer","dryer-heat","duck","dumbbell","dumpster","dumpster-fire","dungeon","e","ear","ear-deaf","ear-listen","ear-muffs","earth-africa","earth-americas","earth-asia","earth-europe","earth-oceania","eclipse","egg","egg-fried","eggplant","eject","elephant","elevator","ellipsis","ellipsis-stroke","ellipsis-stroke-vertical","ellipsis-vertical","empty-set","engine","engine-warning","envelope","envelope-circle-check","envelope-dot","envelope-open","envelope-open-dollar","envelope-open-text","envelopes","envelopes-bulk","equals","eraser","escalator","ethernet","euro-sign","excavator","exclamation","expand","expand-wide","explosion","eye","eye-dropper","eye-dropper-full","eye-dropper-half","eye-evil","eye-low-vision","eye-slash","eyes","f","face-angry","face-angry-horns","face-anguished","face-anxious-sweat","face-astonished","face-awesome","face-beam-hand-over-mouth","face-clouds","face-confounded","face-confused","face-cowboy-hat","face-diagonal-mouth","face-disappointed","face-disguise","face-dizzy","face-dotted","face-downcast-sweat","face-drooling","face-exhaling","face-explode","face-expressionless","face-eyes-xmarks","face-fearful","face-flushed","face-frown","face-frown-open","face-frown-slight","face-glasses","face-grimace","face-grin","face-grin-beam","face-grin-beam-sweat","face-grin-hearts","face-grin-squint","face-grin-squint-tears","face-grin-stars","face-grin-tears","face-grin-tongue","face-grin-tongue-squint","face-grin-tongue-wink","face-grin-wide","face-grin-wink","face-hand-over-mouth","face-hand-peeking","face-hand-yawn","face-head-bandage","face-holding-back-tears","face-hushed","face-icicles","face-kiss","face-kiss-beam","face-kiss-closed-eyes","face-kiss-wink-heart","face-laugh","face-laugh-beam","face-laugh-squint","face-laugh-wink","face-lying","face-mask","face-meh","face-meh-blank","face-melting","face-monocle","face-nauseated","face-nose-steam","face-party","face-pensive","face-persevering","face-pleading","face-pouting","face-raised-eyebrow","face-relieved","face-rolling-eyes","face-sad-cry","face-sad-sweat","face-sad-tear","face-saluting","face-scream","face-shush","face-sleeping","face-sleepy","face-smile","face-smile-beam","face-smile-halo","face-smile-hearts","face-smile-horns","face-smile-plus","face-smile-relaxed","face-smile-tear","face-smile-tongue","face-smile-upside-down","face-smile-wink","face-smiling-hands","face-smirking","face-spiral-eyes","face-sunglasses","face-surprise","face-swear","face-thermometer","face-thinking","face-tired","face-tissue","face-tongue-money","face-tongue-sweat","face-unamused","face-viewfinder","face-vomit","face-weary","face-woozy","face-worried","face-zany","face-zipper","falafel","family","family-dress","family-pants","fan","fan-table","farm","faucet","faucet-drip","fax","feather","feather-pointed","fence","ferris-wheel","ferry","field-hockey-stick-ball","file","file-arrow-down","file-arrow-up","file-audio","file-binary","file-cad","file-certificate","file-chart-column","file-chart-pie","file-check","file-circle-check","file-circle-exclamation","file-circle-info","file-circle-minus","file-circle-plus","file-circle-question","file-circle-xmark","file-code","file-contract","file-csv","file-dashed-line","file-doc","file-eps","file-excel","file-exclamation","file-export","file-gif","file-heart","file-image","file-import","file-invoice","file-invoice-dollar","file-jpg","file-lines","file-lock","file-magnifying-glass","file-medical","file-minus","file-mov","file-mp3","file-mp4","file-music","file-pdf","file-pen","file-plus","file-plus-minus","file-png","file-powerpoint","file-ppt","file-prescription","file-shield","file-signature","file-slash","file-spreadsheet","file-svg","file-user","file-vector","file-video","file-waveform","file-word","file-xls","file-xmark","file-xml","file-zip","file-zipper","files","files-medical","fill","fill-drip","film","film-canister","film-simple","film-slash","films","filter","filter-circle-dollar","filter-circle-xmark","filter-list","filter-slash","filters","fingerprint","fire","fire-burner","fire-extinguisher","fire-flame","fire-flame-curved","fire-flame-simple","fire-hydrant","fire-smoke","fireplace","fish","fish-bones","fish-cooked","fish-fins","fishing-rod","flag","flag-checkered","flag-pennant","flag-swallowtail","flag-usa","flashlight","flask","flask-gear","flask-round-poison","flask-round-potion","flask-vial","flatbread","flatbread-stuffed","floppy-disk","floppy-disk-circle-arrow-right","floppy-disk-circle-xmark","floppy-disk-pen","floppy-disks","florin-sign","flower","flower-daffodil","flower-tulip","flute","flux-capacitor","flying-disc","folder","folder-arrow-down","folder-arrow-up","folder-bookmark","folder-check","folder-closed","folder-gear","folder-grid","folder-heart","folder-image","folder-magnifying-glass","folder-medical","folder-minus","folder-music","folder-open","folder-plus","folder-tree","folder-user","folder-xmark","folders","fondue-pot","font","font-awesome","font-case","football","football-helmet","fork","fork-knife","forklift","fort","forward","forward-fast","forward-step","frame","franc-sign","french-fries","frog","function","futbol","g","galaxy","gallery-thumbnails","game-board","game-board-simple","game-console-handheld","game-console-handheld-crank","gamepad","gamepad-modern","garage","garage-car","garage-open","garlic","gas-pump","gas-pump-slash","gauge","gauge-circle-bolt","gauge-circle-minus","gauge-circle-plus","gauge-high","gauge-low","gauge-max","gauge-min","gauge-simple","gauge-simple-high","gauge-simple-low","gauge-simple-max","gauge-simple-min","gavel","gear","gear-code","gear-complex","gear-complex-code","gears","gem","genderless","ghost","gif","gift","gift-card","gifts","gingerbread-man","glass","glass-citrus","glass-empty","glass-half","glass-water","glass-water-droplet","glasses","glasses-round","globe","globe-pointer","globe-snow","globe-stand","globe-wifi","goal-net","golf-ball-tee","golf-club","golf-flag-hole","gopuram","graduation-cap","gramophone","grapes","grate","grate-droplet","greater-than","greater-than-equal","grid","grid-2","grid-2-plus","grid-4","grid-5","grid-dividers","grid-horizontal","grid-round","grid-round-2","grid-round-2-plus","grid-round-4","grid-round-5","grill","grill-fire","grill-hot","grip","grip-dots","grip-dots-vertical","grip-lines","grip-lines-vertical","grip-vertical","group-arrows-rotate","guarani-sign","guitar","guitar-electric","guitars","gun","gun-slash","gun-squirt","h","h1","h2","h3","h4","h5","h6","hammer","hammer-brush","hammer-crash","hammer-war","hamsa","hand","hand-back-fist","hand-back-point-down","hand-back-point-left","hand-back-point-ribbon","hand-back-point-right","hand-back-point-up","hand-dots","hand-fingers-crossed","hand-fist","hand-heart","hand-holding","hand-holding-box","hand-holding-circle-dollar","hand-holding-dollar","hand-holding-droplet","hand-holding-hand","hand-holding-heart","hand-holding-magic","hand-holding-medical","hand-holding-seedling","hand-holding-skull","hand-horns","hand-lizard","hand-love","hand-middle-finger","hand-peace","hand-point-down","hand-point-left","hand-point-ribbon","hand-point-right","hand-point-up","hand-pointer","hand-scissors","hand-sparkles","hand-spock","hand-wave","handcuffs","hands","hands-asl-interpreting","hands-bound","hands-bubbles","hands-clapping","hands-holding","hands-holding-child","hands-holding-circle","hands-holding-diamond","hands-holding-dollar","hands-holding-heart","hands-praying","handshake","handshake-angle","handshake-simple","handshake-simple-slash","handshake-slash","hanukiah","hard-drive","hashtag","hashtag-lock","hat-beach","hat-chef","hat-cowboy","hat-cowboy-side","hat-santa","hat-winter","hat-witch","hat-wizard","head-side","head-side-brain","head-side-cough","head-side-cough-slash","head-side-gear","head-side-goggles","head-side-headphones","head-side-heart","head-side-mask","head-side-medical","head-side-virus","heading","headphones","headphones-simple","headset","heart","heart-circle-bolt","heart-circle-check","heart-circle-exclamation","heart-circle-minus","heart-circle-plus","heart-circle-xmark","heart-crack","heart-half","heart-half-stroke","heart-pulse","heat","helicopter","helicopter-symbol","helmet-battle","helmet-safety","helmet-un","hexagon","hexagon-check","hexagon-divide","hexagon-exclamation","hexagon-image","hexagon-minus","hexagon-plus","hexagon-vertical-nft","hexagon-vertical-nft-slanted","hexagon-xmark","high-definition","highlighter","highlighter-line","hill-avalanche","hill-rockslide","hippo","hockey-mask","hockey-puck","hockey-stick-puck","hockey-sticks","holly-berry","honey-pot","hood-cloak","horizontal-rule","horse","horse-head","horse-saddle","hose","hose-reel","hospital","hospital-user","hospitals","hot-tub-person","hotdog","hotel","hourglass","hourglass-clock","hourglass-end","hourglass-half","hourglass-start","house","house-blank","house-building","house-chimney","house-chimney-blank","house-chimney-crack","house-chimney-heart","house-chimney-medical","house-chimney-user","house-chimney-window","house-circle-check","house-circle-exclamation","house-circle-xmark","house-crack","house-day","house-fire","house-flag","house-flood-water","house-flood-water-circle-arrow-right","house-heart","house-laptop","house-lock","house-medical","house-medical-circle-check","house-medical-circle-exclamation","house-medical-circle-xmark","house-medical-flag","house-night","house-person-leave","house-person-return","house-signal","house-tree","house-tsunami","house-turret","house-user","house-water","house-window","hryvnia-sign","hundred-points","hurricane","hydra","hyphen","i","i-cursor","ice-cream","ice-skate","icicles","icons","id-badge","id-card","id-card-clip","igloo","image","image-landscape","image-polaroid","image-polaroid-user","image-portrait","image-slash","image-user","images","images-user","inbox","inbox-full","inbox-in","inbox-out","inboxes","indent","indian-rupee-sign","industry","industry-windows","infinity","info","inhaler","input-numeric","input-pipe","input-text","integral","interrobang","intersection","island-tropical","italic","j","jack-o-lantern","jar","jar-wheat","jedi","jet-fighter","jet-fighter-up","joint","joystick","jug","jug-bottle","jug-detergent","k","kaaba","kazoo","kerning","key","key-skeleton","key-skeleton-left-right","keyboard","keyboard-brightness","keyboard-brightness-low","keyboard-down","keyboard-left","keynote","khanda","kidneys","kip-sign","kit-medical","kitchen-set","kite","kiwi-bird","kiwi-fruit","knife","knife-kitchen","l","lacrosse-stick","lacrosse-stick-ball","lambda","lamp","lamp-desk","lamp-floor","lamp-street","land-mine-on","landmark","landmark-dome","landmark-flag","landmark-magnifying-glass","language","laptop","laptop-arrow-down","laptop-binary","laptop-code","laptop-file","laptop-medical","laptop-mobile","laptop-slash","lari-sign","lasso","lasso-sparkles","layer-group","layer-minus","layer-plus","leaf","leaf-heart","leaf-maple","leaf-oak","leafy-green","left","left-from-bracket","left-from-line","left-long","left-long-to-line","left-right","left-to-bracket","left-to-line","lemon","less-than","less-than-equal","life-ring","light-ceiling","light-emergency","light-emergency-on","light-switch","light-switch-off","light-switch-on","lightbulb","lightbulb-cfl","lightbulb-cfl-on","lightbulb-dollar","lightbulb-exclamation","lightbulb-exclamation-on","lightbulb-gear","lightbulb-message","lightbulb-on","lightbulb-slash","lighthouse","lights-holiday","line-columns","line-height","lines-leaning","link","link-horizontal","link-horizontal-slash","link-simple","link-simple-slash","link-slash","lips","lira-sign","list","list-check","list-dropdown","list-music","list-ol","list-radio","list-timeline","list-tree","list-ul","litecoin-sign","loader","lobster","location-arrow","location-arrow-up","location-check","location-crosshairs","location-crosshairs-slash","location-dot","location-dot-slash","location-exclamation","location-minus","location-pen","location-pin","location-pin-lock","location-pin-slash","location-plus","location-question","location-smile","location-xmark","lock","lock-a","lock-hashtag","lock-keyhole","lock-keyhole-open","lock-open","locust","lollipop","loveseat","luchador-mask","lungs","lungs-virus","m","mace","magnet","magnifying-glass","magnifying-glass-arrow-right","magnifying-glass-arrows-rotate","magnifying-glass-chart","magnifying-glass-dollar","magnifying-glass-location","magnifying-glass-minus","magnifying-glass-music","magnifying-glass-play","magnifying-glass-plus","magnifying-glass-waveform","mailbox","mailbox-flag-up","manat-sign","mandolin","mango","manhole","map","map-location","map-location-dot","map-pin","marker","mars","mars-and-venus","mars-and-venus-burst","mars-double","mars-stroke","mars-stroke-right","mars-stroke-up","martini-glass","martini-glass-citrus","martini-glass-empty","mask","mask-face","mask-snorkel","mask-ventilator","masks-theater","mattress-pillow","maximize","meat","medal","megaphone","melon","melon-slice","memo","memo-circle-check","memo-circle-info","memo-pad","memory","menorah","mercury","merge","message","message-arrow-down","message-arrow-up","message-arrow-up-right","message-bot","message-captions","message-check","message-code","message-dollar","message-dots","message-exclamation","message-heart","message-image","message-lines","message-medical","message-middle","message-middle-top","message-minus","message-music","message-pen","message-plus","message-question","message-quote","message-slash","message-smile","message-sms","message-text","message-xmark","messages","messages-dollar","messages-question","meteor","meter","meter-bolt","meter-droplet","meter-fire","microchip","microchip-ai","microphone","microphone-lines","microphone-lines-slash","microphone-slash","microphone-stand","microscope","microwave","mill-sign","minimize","minus","mistletoe","mitten","mobile","mobile-button","mobile-notch","mobile-retro","mobile-screen","mobile-screen-button","mobile-signal","mobile-signal-out","money-bill","money-bill-1","money-bill-1-wave","money-bill-simple","money-bill-simple-wave","money-bill-transfer","money-bill-trend-up","money-bill-wave","money-bill-wheat","money-bills","money-bills-simple","money-check","money-check-dollar","money-check-dollar-pen","money-check-pen","money-from-bracket","money-simple-from-bracket","monitor-waveform","monkey","monument","moon","moon-cloud","moon-over-sun","moon-stars","moped","mortar-pestle","mosque","mosquito","mosquito-net","motorcycle","mound","mountain","mountain-city","mountain-sun","mountains","mouse-field","mp3-player","mug","mug-hot","mug-marshmallows","mug-saucer","mug-tea","mug-tea-saucer","mushroom","music","music-magnifying-glass","music-note","music-note-slash","music-slash","mustache","n","naira-sign","narwhal","nesting-dolls","network-wired","neuter","newspaper","nfc","nfc-lock","nfc-magnifying-glass","nfc-pen","nfc-signal","nfc-slash","nfc-symbol","nfc-trash","nose","not-equal","notdef","note","note-medical","note-sticky","notebook","notes","notes-medical","o","object-exclude","object-group","object-intersect","object-subtract","object-ungroup","object-union","objects-align-bottom","objects-align-center-horizontal","objects-align-center-vertical","objects-align-left","objects-align-right","objects-align-top","objects-column","octagon","octagon-check","octagon-divide","octagon-exclamation","octagon-minus","octagon-plus","octagon-xmark","octopus","oil-can","oil-can-drip","oil-temperature","oil-well","olive","olive-branch","om","omega","onion","option","ornament","otter","outdent","outlet","oven","overline","p","page","page-caret-down","page-caret-up","pager","paint-roller","paintbrush","paintbrush-fine","paintbrush-pencil","palette","pallet","pallet-box","pallet-boxes","pan-food","pan-frying","pancakes","panel-ews","panel-fire","panorama","paper-plane","paper-plane-top","paperclip","paperclip-vertical","parachute-box","paragraph","paragraph-left","party-bell","party-horn","passport","paste","pause","paw","paw-claws","paw-simple","peace","peach","peanut","peanuts","peapod","pear","pedestal","pegasus","pen","pen-circle","pen-clip","pen-clip-slash","pen-fancy","pen-fancy-slash","pen-field","pen-line","pen-nib","pen-nib-slash","pen-paintbrush","pen-ruler","pen-slash","pen-swirl","pen-to-square","pencil","pencil-mechanical","pencil-slash","people","people-arrows","people-carry-box","people-dress","people-dress-simple","people-group","people-line","people-pants","people-pants-simple","people-pulling","people-robbery","people-roof","people-simple","pepper","pepper-hot","percent","period","person","person-arrow-down-to-line","person-arrow-up-from-line","person-biking","person-biking-mountain","person-booth","person-breastfeeding","person-burst","person-cane","person-carry-box","person-chalkboard","person-circle-check","person-circle-exclamation","person-circle-minus","person-circle-plus","person-circle-question","person-circle-xmark","person-digging","person-dolly","person-dolly-empty","person-dots-from-line","person-dress","person-dress-burst","person-dress-fairy","person-dress-simple","person-drowning","person-fairy","person-falling","person-falling-burst","person-from-portal","person-half-dress","person-harassing","person-hiking","person-military-pointing","person-military-rifle","person-military-to-person","person-pinball","person-praying","person-pregnant","person-rays","person-rifle","person-running","person-running-fast","person-seat","person-seat-reclined","person-shelter","person-sign","person-simple","person-skating","person-ski-jumping","person-ski-lift","person-skiing","person-skiing-nordic","person-sledding","person-snowboarding","person-snowmobiling","person-swimming","person-through-window","person-to-door","person-to-portal","person-walking","person-walking-arrow-loop-left","person-walking-arrow-right","person-walking-dashed-line-arrow-right","person-walking-luggage","person-walking-with-cane","peseta-sign","peso-sign","phone","phone-arrow-down-left","phone-arrow-right","phone-arrow-up-right","phone-flip","phone-hangup","phone-intercom","phone-missed","phone-office","phone-plus","phone-rotary","phone-slash","phone-volume","phone-xmark","photo-film","photo-film-music","pi","piano","piano-keyboard","pickaxe","pickleball","pie","pig","piggy-bank","pills","pinata","pinball","pineapple","pipe","pipe-circle-check","pipe-collar","pipe-section","pipe-smoking","pipe-valve","pizza","pizza-slice","place-of-worship","plane","plane-arrival","plane-circle-check","plane-circle-exclamation","plane-circle-xmark","plane-departure","plane-engines","plane-lock","plane-prop","plane-slash","plane-tail","plane-up","plane-up-slash","planet-moon","planet-ringed","plant-wilt","plate-utensils","plate-wheat","play","play-pause","plug","plug-circle-bolt","plug-circle-check","plug-circle-exclamation","plug-circle-minus","plug-circle-plus","plug-circle-xmark","plus","plus-large","plus-minus","podcast","podium","podium-star","police-box","poll-people","pompebled","poo","poo-storm","pool-8-ball","poop","popcorn","popsicle","pot-food","potato","power-off","prescription","prescription-bottle","prescription-bottle-medical","prescription-bottle-pill","presentation-screen","pretzel","print","print-magnifying-glass","print-slash","projector","pump","pump-medical","pump-soap","pumpkin","puzzle","puzzle-piece","puzzle-piece-simple","q","qrcode","question","quote-left","quote-right","quotes","r","rabbit","rabbit-running","raccoon","racquet","radar","radiation","radio","radio-tuner","rainbow","raindrops","ram","ramp-loading","ranking-star","raygun","receipt","record-vinyl","rectangle","rectangle-ad","rectangle-barcode","rectangle-code","rectangle-history","rectangle-history-circle-plus","rectangle-history-circle-user","rectangle-list","rectangle-pro","rectangle-terminal","rectangle-vertical","rectangle-vertical-history","rectangle-wide","rectangle-xmark","rectangles-mixed","recycle","reel","reflect-both","reflect-horizontal","reflect-vertical","refrigerator","registered","repeat","repeat-1","reply","reply-all","reply-clock","republican","restroom","restroom-simple","retweet","rhombus","ribbon","right","right-from-bracket","right-from-line","right-left","right-left-large","right-long","right-long-to-line","right-to-bracket","right-to-line","ring","ring-diamond","rings-wedding","road","road-barrier","road-bridge","road-circle-check","road-circle-exclamation","road-circle-xmark","road-lock","road-spikes","robot","robot-astromech","rocket","rocket-launch","roller-coaster","rotate","rotate-exclamation","rotate-left","rotate-reverse","rotate-right","route","route-highway","route-interstate","router","rss","ruble-sign","rug","rugby-ball","ruler","ruler-combined","ruler-horizontal","ruler-triangle","ruler-vertical","rupee-sign","rupiah-sign","rv","s","sack","sack-dollar","sack-xmark","sailboat","salad","salt-shaker","sandwich","satellite","satellite-dish","sausage","saxophone","saxophone-fire","scale-balanced","scale-unbalanced","scale-unbalanced-flip","scalpel","scalpel-line-dashed","scanner-gun","scanner-image","scanner-keyboard","scanner-touchscreen","scarecrow","scarf","school","school-circle-check","school-circle-exclamation","school-circle-xmark","school-flag","school-lock","scissors","screen-users","screencast","screwdriver","screwdriver-wrench","scribble","scroll","scroll-old","scroll-torah","scrubber","scythe","sd-card","sd-cards","seal","seal-exclamation","seal-question","seat-airline","section","seedling","semicolon","send-back","send-backward","sensor","sensor-cloud","sensor-fire","sensor-on","sensor-triangle-exclamation","server","shapes","share","share-all","share-from-square","share-nodes","sheep","sheet-plastic","shekel-sign","shelves","shelves-empty","shield","shield-cat","shield-check","shield-cross","shield-dog","shield-exclamation","shield-halved","shield-heart","shield-keyhole","shield-minus","shield-plus","shield-quartered","shield-slash","shield-virus","shield-xmark","ship","shirt","shirt-long-sleeve","shirt-running","shirt-tank-top","shish-kebab","shoe-prints","shop","shop-lock","shop-slash","shovel","shovel-snow","shower","shower-down","shredder","shrimp","shuffle","shutters","shuttle-space","shuttlecock","sickle","sidebar","sidebar-flip","sigma","sign-hanging","sign-post","sign-posts","sign-posts-wrench","signal","signal-bars","signal-bars-fair","signal-bars-good","signal-bars-slash","signal-bars-weak","signal-fair","signal-good","signal-slash","signal-stream","signal-stream-slash","signal-strong","signal-weak","signature","signature-lock","signature-slash","signs-post","sim-card","sim-cards","sink","siren","siren-on","sitemap","skeleton","skeleton-ribs","ski-boot","ski-boot-ski","skull","skull-cow","skull-crossbones","slash","slash-back","slash-forward","sleigh","slider","sliders","sliders-simple","sliders-up","slot-machine","smog","smoke","smoking","snake","snooze","snow-blowing","snowflake","snowflake-droplets","snowflakes","snowman","snowman-head","snowplow","soap","socks","soft-serve","solar-panel","solar-system","sort","sort-down","sort-up","spa","space-station-moon","space-station-moon-construction","spade","spaghetti-monster-flying","sparkle","sparkles","speaker","speakers","spell-check","spider","spider-black-widow","spider-web","spinner","spinner-scale","spinner-third","split","splotch","spoon","sportsball","spray-can","spray-can-sparkles","sprinkler","sprinkler-ceiling","square","square-0","square-1","square-2","square-3","square-4","square-5","square-6","square-7","square-8","square-9","square-a","square-a-lock","square-ampersand","square-arrow-down","square-arrow-down-left","square-arrow-down-right","square-arrow-left","square-arrow-right","square-arrow-up","square-arrow-up-left","square-arrow-up-right","square-b","square-bolt","square-c","square-caret-down","square-caret-left","square-caret-right","square-caret-up","square-check","square-chevron-down","square-chevron-left","square-chevron-right","square-chevron-up","square-code","square-d","square-dashed","square-dashed-circle-plus","square-divide","square-dollar","square-down","square-down-left","square-down-right","square-e","square-ellipsis","square-ellipsis-vertical","square-envelope","square-exclamation","square-f","square-fragile","square-full","square-g","square-h","square-heart","square-i","square-info","square-j","square-k","square-kanban","square-l","square-left","square-list","square-m","square-minus","square-n","square-nfi","square-o","square-p","square-parking","square-parking-slash","square-pen","square-person-confined","square-phone","square-phone-flip","square-phone-hangup","square-plus","square-poll-horizontal","square-poll-vertical","square-q","square-quarters","square-question","square-quote","square-r","square-right","square-ring","square-root","square-root-variable","square-rss","square-s","square-share-nodes","square-sliders","square-sliders-vertical","square-small","square-star","square-t","square-terminal","square-this-way-up","square-u","square-up","square-up-left","square-up-right","square-user","square-v","square-virus","square-w","square-x","square-xmark","square-y","square-z","squid","squirrel","staff","staff-snake","stairs","stamp","standard-definition","stapler","star","star-and-crescent","star-christmas","star-exclamation","star-half","star-half-stroke","star-of-david","star-of-life","star-sharp","star-sharp-half","star-sharp-half-stroke","star-shooting","starfighter","starfighter-twin-ion-engine","starfighter-twin-ion-engine-advanced","stars","starship","starship-freighter","steak","steering-wheel","sterling-sign","stethoscope","stocking","stomach","stop","stopwatch","stopwatch-20","store","store-lock","store-slash","strawberry","street-view","stretcher","strikethrough","stroopwafel","subscript","subtitles","subtitles-slash","suitcase","suitcase-medical","suitcase-rolling","sun","sun-bright","sun-cloud","sun-dust","sun-haze","sun-plant-wilt","sunglasses","sunrise","sunset","superscript","sushi","sushi-roll","swap","swap-arrows","swatchbook","sword","sword-laser","sword-laser-alt","swords","swords-laser","symbols","synagogue","syringe","t","t-rex","table","table-cells","table-cells-column-lock","table-cells-column-unlock","table-cells-large","table-cells-lock","table-cells-row-lock","table-cells-row-unlock","table-cells-unlock","table-columns","table-layout","table-list","table-picnic","table-pivot","table-rows","table-tennis-paddle-ball","table-tree","tablet","tablet-button","tablet-rugged","tablet-screen","tablet-screen-button","tablets","tachograph-digital","taco","tag","tags","tally","tally-1","tally-2","tally-3","tally-4","tamale","tank-water","tape","tarp","tarp-droplet","taxi","taxi-bus","teddy-bear","teeth","teeth-open","telescope","temperature-arrow-down","temperature-arrow-up","temperature-empty","temperature-full","temperature-half","temperature-high","temperature-list","temperature-low","temperature-quarter","temperature-snow","temperature-sun","temperature-three-quarters","tenge-sign","tennis-ball","tent","tent-arrow-down-to-line","tent-arrow-left-right","tent-arrow-turn-left","tent-arrows-down","tent-double-peak","tents","terminal","text","text-height","text-size","text-slash","text-width","thermometer","theta","thought-bubble","thumbs-down","thumbs-up","thumbtack","thumbtack-slash","tick","ticket","ticket-airline","ticket-perforated","ticket-simple","tickets","tickets-airline","tickets-perforated","tickets-simple","tilde","timeline","timeline-arrow","timer","tire","tire-flat","tire-pressure-warning","tire-rugged","toggle-large-off","toggle-large-on","toggle-off","toggle-on","toilet","toilet-paper","toilet-paper-blank","toilet-paper-blank-under","toilet-paper-check","toilet-paper-slash","toilet-paper-under","toilet-paper-under-slash","toilet-paper-xmark","toilet-portable","toilets-portable","tomato","tombstone","tombstone-blank","toolbox","tooth","toothbrush","torii-gate","tornado","tower-broadcast","tower-cell","tower-control","tower-observation","tractor","trademark","traffic-cone","traffic-light","traffic-light-go","traffic-light-slow","traffic-light-stop","trailer","train","train-subway","train-subway-tunnel","train-track","train-tram","train-tunnel","transformer-bolt","transgender","transporter","transporter-1","transporter-2","transporter-3","transporter-4","transporter-5","transporter-6","transporter-7","transporter-empty","trash","trash-arrow-up","trash-can","trash-can-arrow-up","trash-can-check","trash-can-clock","trash-can-list","trash-can-plus","trash-can-slash","trash-can-undo","trash-can-xmark","trash-check","trash-clock","trash-list","trash-plus","trash-slash","trash-undo","trash-xmark","treasure-chest","tree","tree-christmas","tree-city","tree-deciduous","tree-decorated","tree-large","tree-palm","trees","triangle","triangle-exclamation","triangle-instrument","triangle-person-digging","tricycle","tricycle-adult","trillium","trophy","trophy-star","trowel","trowel-bricks","truck","truck-arrow-right","truck-bolt","truck-clock","truck-container","truck-container-empty","truck-droplet","truck-fast","truck-field","truck-field-un","truck-fire","truck-flatbed","truck-front","truck-ladder","truck-medical","truck-monster","truck-moving","truck-pickup","truck-plane","truck-plow","truck-ramp","truck-ramp-box","truck-ramp-couch","truck-tow","truck-utensils","trumpet","tty","tty-answer","tugrik-sign","turkey","turkish-lira-sign","turn-down","turn-down-left","turn-down-right","turn-left","turn-left-down","turn-left-up","turn-right","turn-up","turntable","turtle","tv","tv-music","tv-retro","typewriter","u","ufo","ufo-beam","umbrella","umbrella-beach","umbrella-simple","underline","unicorn","uniform-martial-arts","union","universal-access","unlock","unlock-keyhole","up","up-down","up-down-left-right","up-from-bracket","up-from-dotted-line","up-from-line","up-left","up-long","up-right","up-right-and-down-left-from-center","up-right-from-square","up-to-bracket","up-to-dotted-line","up-to-line","upload","usb-drive","user","user-alien","user-astronaut","user-beard-bolt","user-bounty-hunter","user-check","user-chef","user-clock","user-cowboy","user-crown","user-doctor","user-doctor-hair","user-doctor-hair-long","user-doctor-message","user-gear","user-graduate","user-group","user-group-crown","user-group-simple","user-hair","user-hair-buns","user-hair-long","user-hair-mullet","user-headset","user-helmet-safety","user-hoodie","user-injured","user-large","user-large-slash","user-lock","user-magnifying-glass","user-minus","user-music","user-ninja","user-nurse","user-nurse-hair","user-nurse-hair-long","user-pen","user-pilot","user-pilot-tie","user-plus","user-police","user-police-tie","user-robot","user-robot-xmarks","user-secret","user-shakespeare","user-shield","user-slash","user-tag","user-tie","user-tie-hair","user-tie-hair-long","user-unlock","user-visor","user-vneck","user-vneck-hair","user-vneck-hair-long","user-xmark","users","users-between-lines","users-gear","users-line","users-medical","users-rays","users-rectangle","users-slash","users-viewfinder","utensils","utensils-slash","utility-pole","utility-pole-double","v","vacuum","vacuum-robot","value-absolute","van-shuttle","vault","vector-circle","vector-polygon","vector-square","vent-damper","venus","venus-double","venus-mars","vest","vest-patches","vial","vial-circle-check","vial-virus","vials","video","video-arrow-down-left","video-arrow-up-right","video-plus","video-slash","vihara","violin","virus","virus-covid","virus-covid-slash","virus-slash","viruses","voicemail","volcano","volleyball","volume","volume-high","volume-low","volume-off","volume-slash","volume-xmark","vr-cardboard","w","waffle","wagon-covered","walker","walkie-talkie","wallet","wand","wand-magic","wand-magic-sparkles","wand-sparkles","warehouse","warehouse-full","washing-machine","watch","watch-apple","watch-calculator","watch-fitness","watch-smart","water","water-arrow-down","water-arrow-up","water-ladder","watermelon-slice","wave","wave-pulse","wave-sine","wave-square","wave-triangle","waveform","waveform-lines","waves-sine","web-awesome","webhook","weight-hanging","weight-scale","whale","wheat","wheat-awn","wheat-awn-circle-exclamation","wheat-awn-slash","wheat-slash","wheelchair","wheelchair-move","whiskey-glass","whiskey-glass-ice","whistle","wifi","wifi-exclamation","wifi-fair","wifi-slash","wifi-weak","wind","wind-turbine","wind-warning","window","window-flip","window-frame","window-frame-open","window-maximize","window-minimize","window-restore","windsock","wine-bottle","wine-glass","wine-glass-crack","wine-glass-empty","won-sign","worm","wreath","wreath-laurel","wrench","wrench-simple","x","x-ray","xmark","xmark-large","xmark-to-slot","xmarks-lines","y","yen-sign","yin-yang","z"],"light":["0","00","1","2","3","360-degrees","4","5","6","7","8","9","a","abacus","accent-grave","acorn","address-book","address-card","air-conditioner","airplay","alarm-clock","alarm-exclamation","alarm-plus","alarm-snooze","album","album-circle-plus","album-circle-user","album-collection","album-collection-circle-plus","album-collection-circle-user","alicorn","alien","alien-8bit","align-center","align-justify","align-left","align-right","align-slash","alt","amp-guitar","ampersand","anchor","anchor-circle-check","anchor-circle-exclamation","anchor-circle-xmark","anchor-lock","angel","angle","angle-90","angle-down","angle-left","angle-right","angle-up","angles-down","angles-left","angles-right","angles-up","angles-up-down","ankh","ant","apartment","aperture","apostrophe","apple-core","apple-whole","archway","arrow-down","arrow-down-1-9","arrow-down-9-1","arrow-down-a-z","arrow-down-arrow-up","arrow-down-big-small","arrow-down-from-arc","arrow-down-from-bracket","arrow-down-from-dotted-line","arrow-down-from-line","arrow-down-left","arrow-down-left-and-arrow-up-right-to-center","arrow-down-long","arrow-down-right","arrow-down-short-wide","arrow-down-small-big","arrow-down-square-triangle","arrow-down-to-arc","arrow-down-to-bracket","arrow-down-to-dotted-line","arrow-down-to-line","arrow-down-to-square","arrow-down-triangle-square","arrow-down-up-across-line","arrow-down-up-lock","arrow-down-wide-short","arrow-down-z-a","arrow-left","arrow-left-from-arc","arrow-left-from-bracket","arrow-left-from-line","arrow-left-long","arrow-left-long-to-line","arrow-left-to-arc","arrow-left-to-bracket","arrow-left-to-line","arrow-pointer","arrow-progress","arrow-right","arrow-right-arrow-left","arrow-right-from-arc","arrow-right-from-bracket","arrow-right-from-line","arrow-right-long","arrow-right-long-to-line","arrow-right-to-arc","arrow-right-to-bracket","arrow-right-to-city","arrow-right-to-line","arrow-rotate-left","arrow-rotate-right","arrow-trend-down","arrow-trend-up","arrow-turn-down","arrow-turn-down-left","arrow-turn-down-right","arrow-turn-left","arrow-turn-left-down","arrow-turn-left-up","arrow-turn-right","arrow-turn-up","arrow-up","arrow-up-1-9","arrow-up-9-1","arrow-up-a-z","arrow-up-arrow-down","arrow-up-big-small","arrow-up-from-arc","arrow-up-from-bracket","arrow-up-from-dotted-line","arrow-up-from-ground-water","arrow-up-from-line","arrow-up-from-square","arrow-up-from-water-pump","arrow-up-left","arrow-up-left-from-circle","arrow-up-long","arrow-up-right","arrow-up-right-and-arrow-down-left-from-center","arrow-up-right-dots","arrow-up-right-from-square","arrow-up-short-wide","arrow-up-small-big","arrow-up-square-triangle","arrow-up-to-arc","arrow-up-to-bracket","arrow-up-to-dotted-line","arrow-up-to-line","arrow-up-triangle-square","arrow-up-wide-short","arrow-up-z-a","arrows-cross","arrows-down-to-line","arrows-down-to-people","arrows-from-dotted-line","arrows-from-line","arrows-left-right","arrows-left-right-to-line","arrows-maximize","arrows-minimize","arrows-repeat","arrows-repeat-1","arrows-retweet","arrows-rotate","arrows-rotate-reverse","arrows-spin","arrows-split-up-and-left","arrows-to-circle","arrows-to-dot","arrows-to-dotted-line","arrows-to-eye","arrows-to-line","arrows-turn-right","arrows-turn-to-dots","arrows-up-down","arrows-up-down-left-right","arrows-up-to-line","asterisk","at","atom","atom-simple","audio-description","audio-description-slash","austral-sign","avocado","award","award-simple","axe","axe-battle","b","baby","baby-carriage","backpack","backward","backward-fast","backward-step","bacon","bacteria","bacterium","badge","badge-check","badge-dollar","badge-percent","badge-sheriff","badger-honey","badminton","bag-seedling","bag-shopping","bag-shopping-minus","bag-shopping-plus","bagel","bags-shopping","baguette","bahai","baht-sign","ball-pile","balloon","balloons","ballot","ballot-check","ban","ban-bug","ban-parking","ban-smoking","banana","bandage","bangladeshi-taka-sign","banjo","barcode","barcode-read","barcode-scan","bars","bars-filter","bars-progress","bars-sort","bars-staggered","baseball","baseball-bat-ball","basket-shopping","basket-shopping-minus","basket-shopping-plus","basket-shopping-simple","basketball","basketball-hoop","bat","bath","battery-bolt","battery-empty","battery-exclamation","battery-full","battery-half","battery-low","battery-quarter","battery-slash","battery-three-quarters","bed","bed-bunk","bed-empty","bed-front","bed-pulse","bee","beer-mug","beer-mug-empty","bell","bell-concierge","bell-exclamation","bell-on","bell-plus","bell-ring","bell-school","bell-school-slash","bell-slash","bells","bench-tree","bezier-curve","bicycle","billboard","bin-bottles","bin-bottles-recycle","bin-recycle","binary","binary-circle-check","binary-lock","binary-slash","binoculars","biohazard","bird","bitcoin-sign","blanket","blanket-fire","blender","blender-phone","blinds","blinds-open","blinds-raised","block","block-brick","block-brick-fire","block-question","block-quote","blog","blueberries","bluetooth","bold","bolt","bolt-auto","bolt-lightning","bolt-slash","bomb","bone","bone-break","bong","book","book-arrow-right","book-arrow-up","book-atlas","book-bible","book-blank","book-bookmark","book-circle-arrow-right","book-circle-arrow-up","book-copy","book-font","book-heart","book-journal-whills","book-medical","book-open","book-open-cover","book-open-reader","book-quran","book-section","book-skull","book-sparkles","book-tanakh","book-user","bookmark","bookmark-slash","books","books-medical","boombox","boot","boot-heeled","booth-curtain","border-all","border-bottom","border-bottom-right","border-center-h","border-center-v","border-inner","border-left","border-none","border-outer","border-right","border-top","border-top-left","bore-hole","bottle-baby","bottle-droplet","bottle-water","bow-arrow","bowl-chopsticks","bowl-chopsticks-noodles","bowl-food","bowl-hot","bowl-rice","bowl-scoop","bowl-scoops","bowl-soft-serve","bowl-spoon","bowling-ball","bowling-ball-pin","bowling-pins","box","box-archive","box-ballot","box-check","box-circle-check","box-dollar","box-heart","box-open","box-open-full","box-taped","box-tissue","boxes-packing","boxes-stacked","boxing-glove","bracket-curly","bracket-curly-right","bracket-round","bracket-round-right","bracket-square","bracket-square-right","brackets-curly","brackets-round","brackets-square","braille","brain","brain-arrow-curved-right","brain-circuit","brake-warning","brazilian-real-sign","bread-loaf","bread-slice","bread-slice-butter","bridge","bridge-circle-check","bridge-circle-exclamation","bridge-circle-xmark","bridge-lock","bridge-suspension","bridge-water","briefcase","briefcase-arrow-right","briefcase-blank","briefcase-medical","brightness","brightness-low","bring-forward","bring-front","broccoli","broom","broom-ball","broom-wide","browser","browsers","brush","bucket","bug","bug-slash","bugs","building","building-circle-arrow-right","building-circle-check","building-circle-exclamation","building-circle-xmark","building-columns","building-flag","building-lock","building-magnifying-glass","building-memo","building-ngo","building-shield","building-un","building-user","building-wheat","buildings","bulldozer","bullhorn","bullseye","bullseye-arrow","bullseye-pointer","buoy","buoy-mooring","burger","burger-cheese","burger-fries","burger-glass","burger-lettuce","burger-soda","burrito","burst","bus","bus-school","bus-simple","business-time","butter","c","cabin","cabinet-filing","cable-car","cactus","caduceus","cake-candles","cake-slice","calculator","calculator-simple","calendar","calendar-arrow-down","calendar-arrow-up","calendar-check","calendar-circle-exclamation","calendar-circle-minus","calendar-circle-plus","calendar-circle-user","calendar-clock","calendar-day","calendar-days","calendar-exclamation","calendar-heart","calendar-image","calendar-lines","calendar-lines-pen","calendar-minus","calendar-pen","calendar-plus","calendar-range","calendar-star","calendar-users","calendar-week","calendar-xmark","calendars","camcorder","camera","camera-cctv","camera-movie","camera-polaroid","camera-retro","camera-rotate","camera-security","camera-slash","camera-viewfinder","camera-web","camera-web-slash","campfire","campground","can-food","candle-holder","candy","candy-bar","candy-cane","candy-corn","cannabis","cannon","capsules","car","car-battery","car-bolt","car-building","car-bump","car-burst","car-bus","car-circle-bolt","car-garage","car-mirrors","car-on","car-rear","car-side","car-side-bolt","car-tilt","car-tunnel","car-wash","car-wrench","caravan","caravan-simple","card-club","card-diamond","card-heart","card-spade","cards","cards-blank","caret-down","caret-left","caret-right","caret-up","carrot","cars","cart-arrow-down","cart-arrow-up","cart-circle-arrow-down","cart-circle-arrow-up","cart-circle-check","cart-circle-exclamation","cart-circle-plus","cart-circle-xmark","cart-flatbed","cart-flatbed-boxes","cart-flatbed-empty","cart-flatbed-suitcase","cart-minus","cart-plus","cart-shopping","cart-shopping-fast","cart-xmark","cash-register","cassette-betamax","cassette-tape","cassette-vhs","castle","cat","cat-space","cauldron","cedi-sign","cent-sign","certificate","chair","chair-office","chalkboard","chalkboard-user","champagne-glass","champagne-glasses","charging-station","chart-area","chart-bar","chart-bullet","chart-candlestick","chart-column","chart-gantt","chart-kanban","chart-line","chart-line-down","chart-line-up","chart-line-up-down","chart-mixed","chart-mixed-up-circle-currency","chart-mixed-up-circle-dollar","chart-network","chart-pie","chart-pie-simple","chart-pie-simple-circle-currency","chart-pie-simple-circle-dollar","chart-pyramid","chart-radar","chart-scatter","chart-scatter-3d","chart-scatter-bubble","chart-simple","chart-simple-horizontal","chart-tree-map","chart-user","chart-waterfall","check","check-double","check-to-slot","cheese","cheese-swiss","cherries","chess","chess-bishop","chess-bishop-piece","chess-board","chess-clock","chess-clock-flip","chess-king","chess-king-piece","chess-knight","chess-knight-piece","chess-pawn","chess-pawn-piece","chess-queen","chess-queen-piece","chess-rook","chess-rook-piece","chestnut","chevron-down","chevron-left","chevron-right","chevron-up","chevrons-down","chevrons-left","chevrons-right","chevrons-up","chf-sign","child","child-combatant","child-dress","child-reaching","children","chimney","chopsticks","church","circle","circle-0","circle-1","circle-2","circle-3","circle-4","circle-5","circle-6","circle-7","circle-8","circle-9","circle-a","circle-ampersand","circle-arrow-down","circle-arrow-down-left","circle-arrow-down-right","circle-arrow-left","circle-arrow-right","circle-arrow-up","circle-arrow-up-left","circle-arrow-up-right","circle-b","circle-bolt","circle-book-open","circle-bookmark","circle-c","circle-calendar","circle-camera","circle-caret-down","circle-caret-left","circle-caret-right","circle-caret-up","circle-check","circle-chevron-down","circle-chevron-left","circle-chevron-right","circle-chevron-up","circle-d","circle-dashed","circle-divide","circle-dollar","circle-dollar-to-slot","circle-dot","circle-down","circle-down-left","circle-down-right","circle-e","circle-ellipsis","circle-ellipsis-vertical","circle-envelope","circle-euro","circle-exclamation","circle-exclamation-check","circle-f","circle-g","circle-gf","circle-h","circle-half","circle-half-stroke","circle-heart","circle-i","circle-info","circle-j","circle-k","circle-l","circle-left","circle-location-arrow","circle-m","circle-microphone","circle-microphone-lines","circle-minus","circle-n","circle-nodes","circle-notch","circle-o","circle-p","circle-parking","circle-pause","circle-phone","circle-phone-flip","circle-phone-hangup","circle-play","circle-plus","circle-q","circle-quarter","circle-quarter-stroke","circle-quarters","circle-question","circle-r","circle-radiation","circle-right","circle-s","circle-small","circle-sort","circle-sort-down","circle-sort-up","circle-star","circle-sterling","circle-stop","circle-t","circle-three-quarters","circle-three-quarters-stroke","circle-trash","circle-u","circle-up","circle-up-left","circle-up-right","circle-user","circle-v","circle-video","circle-w","circle-waveform-lines","circle-wifi","circle-wifi-circle-wifi","circle-x","circle-xmark","circle-y","circle-yen","circle-z","circles-overlap","citrus","citrus-slice","city","clapperboard","clapperboard-play","clarinet","claw-marks","clipboard","clipboard-check","clipboard-list","clipboard-list-check","clipboard-medical","clipboard-prescription","clipboard-question","clipboard-user","clock","clock-desk","clock-eight","clock-eight-thirty","clock-eleven","clock-eleven-thirty","clock-five","clock-five-thirty","clock-four-thirty","clock-nine","clock-nine-thirty","clock-one","clock-one-thirty","clock-rotate-left","clock-seven","clock-seven-thirty","clock-six","clock-six-thirty","clock-ten","clock-ten-thirty","clock-three","clock-three-thirty","clock-twelve","clock-twelve-thirty","clock-two","clock-two-thirty","clone","closed-captioning","closed-captioning-slash","clothes-hanger","cloud","cloud-arrow-down","cloud-arrow-up","cloud-binary","cloud-bolt","cloud-bolt-moon","cloud-bolt-sun","cloud-check","cloud-drizzle","cloud-exclamation","cloud-fog","cloud-hail","cloud-hail-mixed","cloud-meatball","cloud-minus","cloud-moon","cloud-moon-rain","cloud-music","cloud-plus","cloud-question","cloud-rain","cloud-rainbow","cloud-showers","cloud-showers-heavy","cloud-showers-water","cloud-slash","cloud-sleet","cloud-snow","cloud-sun","cloud-sun-rain","cloud-word","cloud-xmark","clouds","clouds-moon","clouds-sun","clover","club","coconut","code","code-branch","code-commit","code-compare","code-fork","code-merge","code-pull-request","code-pull-request-closed","code-pull-request-draft","code-simple","coffee-bean","coffee-beans","coffee-pot","coffin","coffin-cross","coin","coin-blank","coin-front","coin-vertical","coins","colon","colon-sign","columns-3","comet","comma","command","comment","comment-arrow-down","comment-arrow-up","comment-arrow-up-right","comment-captions","comment-check","comment-code","comment-dollar","comment-dots","comment-exclamation","comment-heart","comment-image","comment-lines","comment-medical","comment-middle","comment-middle-top","comment-minus","comment-music","comment-pen","comment-plus","comment-question","comment-quote","comment-slash","comment-smile","comment-sms","comment-text","comment-xmark","comments","comments-dollar","comments-question","comments-question-check","compact-disc","compass","compass-drafting","compass-slash","compress","compress-wide","computer","computer-classic","computer-mouse","computer-mouse-scrollwheel","computer-speaker","container-storage","conveyor-belt","conveyor-belt-arm","conveyor-belt-boxes","conveyor-belt-empty","cookie","cookie-bite","copy","copyright","corn","corner","couch","court-sport","cow","cowbell","cowbell-circle-plus","crab","crate-apple","crate-empty","credit-card","credit-card-blank","credit-card-front","cricket-bat-ball","croissant","crop","crop-simple","cross","crosshairs","crosshairs-simple","crow","crown","crutch","crutches","cruzeiro-sign","crystal-ball","cube","cubes","cubes-stacked","cucumber","cup-straw","cup-straw-swoosh","cup-togo","cupcake","curling-stone","custard","d","dagger","dash","database","deer","deer-rudolph","delete-left","delete-right","democrat","desktop","desktop-arrow-down","dharmachakra","diagram-cells","diagram-lean-canvas","diagram-nested","diagram-next","diagram-predecessor","diagram-previous","diagram-project","diagram-sankey","diagram-subtask","diagram-successor","diagram-venn","dial","dial-high","dial-low","dial-max","dial-med","dial-med-low","dial-min","dial-off","diamond","diamond-exclamation","diamond-half","diamond-half-stroke","diamond-turn-right","diamonds-4","dice","dice-d10","dice-d12","dice-d20","dice-d4","dice-d6","dice-d8","dice-five","dice-four","dice-one","dice-six","dice-three","dice-two","dinosaur","diploma","disc-drive","disease","display","display-arrow-down","display-chart-up","display-chart-up-circle-currency","display-chart-up-circle-dollar","display-code","display-medical","display-slash","distribute-spacing-horizontal","distribute-spacing-vertical","ditto","divide","dna","do-not-enter","dog","dog-leashed","dollar-sign","dolly","dolly-empty","dolphin","dong-sign","donut","door-closed","door-open","dove","down","down-from-bracket","down-from-dotted-line","down-from-line","down-left","down-left-and-up-right-to-center","down-long","down-right","down-to-bracket","down-to-dotted-line","down-to-line","download","dragon","draw-circle","draw-polygon","draw-square","dreidel","drone","drone-front","droplet","droplet-degree","droplet-percent","droplet-slash","drum","drum-steelpan","drumstick","drumstick-bite","dryer","dryer-heat","duck","dumbbell","dumpster","dumpster-fire","dungeon","e","ear","ear-deaf","ear-listen","ear-muffs","earth-africa","earth-americas","earth-asia","earth-europe","earth-oceania","eclipse","egg","egg-fried","eggplant","eject","elephant","elevator","ellipsis","ellipsis-stroke","ellipsis-stroke-vertical","ellipsis-vertical","empty-set","engine","engine-warning","envelope","envelope-circle-check","envelope-dot","envelope-open","envelope-open-dollar","envelope-open-text","envelopes","envelopes-bulk","equals","eraser","escalator","ethernet","euro-sign","excavator","exclamation","expand","expand-wide","explosion","eye","eye-dropper","eye-dropper-full","eye-dropper-half","eye-evil","eye-low-vision","eye-slash","eyes","f","face-angry","face-angry-horns","face-anguished","face-anxious-sweat","face-astonished","face-awesome","face-beam-hand-over-mouth","face-clouds","face-confounded","face-confused","face-cowboy-hat","face-diagonal-mouth","face-disappointed","face-disguise","face-dizzy","face-dotted","face-downcast-sweat","face-drooling","face-exhaling","face-explode","face-expressionless","face-eyes-xmarks","face-fearful","face-flushed","face-frown","face-frown-open","face-frown-slight","face-glasses","face-grimace","face-grin","face-grin-beam","face-grin-beam-sweat","face-grin-hearts","face-grin-squint","face-grin-squint-tears","face-grin-stars","face-grin-tears","face-grin-tongue","face-grin-tongue-squint","face-grin-tongue-wink","face-grin-wide","face-grin-wink","face-hand-over-mouth","face-hand-peeking","face-hand-yawn","face-head-bandage","face-holding-back-tears","face-hushed","face-icicles","face-kiss","face-kiss-beam","face-kiss-closed-eyes","face-kiss-wink-heart","face-laugh","face-laugh-beam","face-laugh-squint","face-laugh-wink","face-lying","face-mask","face-meh","face-meh-blank","face-melting","face-monocle","face-nauseated","face-nose-steam","face-party","face-pensive","face-persevering","face-pleading","face-pouting","face-raised-eyebrow","face-relieved","face-rolling-eyes","face-sad-cry","face-sad-sweat","face-sad-tear","face-saluting","face-scream","face-shush","face-sleeping","face-sleepy","face-smile","face-smile-beam","face-smile-halo","face-smile-hearts","face-smile-horns","face-smile-plus","face-smile-relaxed","face-smile-tear","face-smile-tongue","face-smile-upside-down","face-smile-wink","face-smiling-hands","face-smirking","face-spiral-eyes","face-sunglasses","face-surprise","face-swear","face-thermometer","face-thinking","face-tired","face-tissue","face-tongue-money","face-tongue-sweat","face-unamused","face-viewfinder","face-vomit","face-weary","face-woozy","face-worried","face-zany","face-zipper","falafel","family","family-dress","family-pants","fan","fan-table","farm","faucet","faucet-drip","fax","feather","feather-pointed","fence","ferris-wheel","ferry","field-hockey-stick-ball","file","file-arrow-down","file-arrow-up","file-audio","file-binary","file-cad","file-certificate","file-chart-column","file-chart-pie","file-check","file-circle-check","file-circle-exclamation","file-circle-info","file-circle-minus","file-circle-plus","file-circle-question","file-circle-xmark","file-code","file-contract","file-csv","file-dashed-line","file-doc","file-eps","file-excel","file-exclamation","file-export","file-gif","file-heart","file-image","file-import","file-invoice","file-invoice-dollar","file-jpg","file-lines","file-lock","file-magnifying-glass","file-medical","file-minus","file-mov","file-mp3","file-mp4","file-music","file-pdf","file-pen","file-plus","file-plus-minus","file-png","file-powerpoint","file-ppt","file-prescription","file-shield","file-signature","file-slash","file-spreadsheet","file-svg","file-user","file-vector","file-video","file-waveform","file-word","file-xls","file-xmark","file-xml","file-zip","file-zipper","files","files-medical","fill","fill-drip","film","film-canister","film-simple","film-slash","films","filter","filter-circle-dollar","filter-circle-xmark","filter-list","filter-slash","filters","fingerprint","fire","fire-burner","fire-extinguisher","fire-flame","fire-flame-curved","fire-flame-simple","fire-hydrant","fire-smoke","fireplace","fish","fish-bones","fish-cooked","fish-fins","fishing-rod","flag","flag-checkered","flag-pennant","flag-swallowtail","flag-usa","flashlight","flask","flask-gear","flask-round-poison","flask-round-potion","flask-vial","flatbread","flatbread-stuffed","floppy-disk","floppy-disk-circle-arrow-right","floppy-disk-circle-xmark","floppy-disk-pen","floppy-disks","florin-sign","flower","flower-daffodil","flower-tulip","flute","flux-capacitor","flying-disc","folder","folder-arrow-down","folder-arrow-up","folder-bookmark","folder-check","folder-closed","folder-gear","folder-grid","folder-heart","folder-image","folder-magnifying-glass","folder-medical","folder-minus","folder-music","folder-open","folder-plus","folder-tree","folder-user","folder-xmark","folders","fondue-pot","font","font-awesome","font-case","football","football-helmet","fork","fork-knife","forklift","fort","forward","forward-fast","forward-step","frame","franc-sign","french-fries","frog","function","futbol","g","galaxy","gallery-thumbnails","game-board","game-board-simple","game-console-handheld","game-console-handheld-crank","gamepad","gamepad-modern","garage","garage-car","garage-open","garlic","gas-pump","gas-pump-slash","gauge","gauge-circle-bolt","gauge-circle-minus","gauge-circle-plus","gauge-high","gauge-low","gauge-max","gauge-min","gauge-simple","gauge-simple-high","gauge-simple-low","gauge-simple-max","gauge-simple-min","gavel","gear","gear-code","gear-complex","gear-complex-code","gears","gem","genderless","ghost","gif","gift","gift-card","gifts","gingerbread-man","glass","glass-citrus","glass-empty","glass-half","glass-water","glass-water-droplet","glasses","glasses-round","globe","globe-pointer","globe-snow","globe-stand","globe-wifi","goal-net","golf-ball-tee","golf-club","golf-flag-hole","gopuram","graduation-cap","gramophone","grapes","grate","grate-droplet","greater-than","greater-than-equal","grid","grid-2","grid-2-plus","grid-4","grid-5","grid-dividers","grid-horizontal","grid-round","grid-round-2","grid-round-2-plus","grid-round-4","grid-round-5","grill","grill-fire","grill-hot","grip","grip-dots","grip-dots-vertical","grip-lines","grip-lines-vertical","grip-vertical","group-arrows-rotate","guarani-sign","guitar","guitar-electric","guitars","gun","gun-slash","gun-squirt","h","h1","h2","h3","h4","h5","h6","hammer","hammer-brush","hammer-crash","hammer-war","hamsa","hand","hand-back-fist","hand-back-point-down","hand-back-point-left","hand-back-point-ribbon","hand-back-point-right","hand-back-point-up","hand-dots","hand-fingers-crossed","hand-fist","hand-heart","hand-holding","hand-holding-box","hand-holding-circle-dollar","hand-holding-dollar","hand-holding-droplet","hand-holding-hand","hand-holding-heart","hand-holding-magic","hand-holding-medical","hand-holding-seedling","hand-holding-skull","hand-horns","hand-lizard","hand-love","hand-middle-finger","hand-peace","hand-point-down","hand-point-left","hand-point-ribbon","hand-point-right","hand-point-up","hand-pointer","hand-scissors","hand-sparkles","hand-spock","hand-wave","handcuffs","hands","hands-asl-interpreting","hands-bound","hands-bubbles","hands-clapping","hands-holding","hands-holding-child","hands-holding-circle","hands-holding-diamond","hands-holding-dollar","hands-holding-heart","hands-praying","handshake","handshake-angle","handshake-simple","handshake-simple-slash","handshake-slash","hanukiah","hard-drive","hashtag","hashtag-lock","hat-beach","hat-chef","hat-cowboy","hat-cowboy-side","hat-santa","hat-winter","hat-witch","hat-wizard","head-side","head-side-brain","head-side-cough","head-side-cough-slash","head-side-gear","head-side-goggles","head-side-headphones","head-side-heart","head-side-mask","head-side-medical","head-side-virus","heading","headphones","headphones-simple","headset","heart","heart-circle-bolt","heart-circle-check","heart-circle-exclamation","heart-circle-minus","heart-circle-plus","heart-circle-xmark","heart-crack","heart-half","heart-half-stroke","heart-pulse","heat","helicopter","helicopter-symbol","helmet-battle","helmet-safety","helmet-un","hexagon","hexagon-check","hexagon-divide","hexagon-exclamation","hexagon-image","hexagon-minus","hexagon-plus","hexagon-vertical-nft","hexagon-vertical-nft-slanted","hexagon-xmark","high-definition","highlighter","highlighter-line","hill-avalanche","hill-rockslide","hippo","hockey-mask","hockey-puck","hockey-stick-puck","hockey-sticks","holly-berry","honey-pot","hood-cloak","horizontal-rule","horse","horse-head","horse-saddle","hose","hose-reel","hospital","hospital-user","hospitals","hot-tub-person","hotdog","hotel","hourglass","hourglass-clock","hourglass-end","hourglass-half","hourglass-start","house","house-blank","house-building","house-chimney","house-chimney-blank","house-chimney-crack","house-chimney-heart","house-chimney-medical","house-chimney-user","house-chimney-window","house-circle-check","house-circle-exclamation","house-circle-xmark","house-crack","house-day","house-fire","house-flag","house-flood-water","house-flood-water-circle-arrow-right","house-heart","house-laptop","house-lock","house-medical","house-medical-circle-check","house-medical-circle-exclamation","house-medical-circle-xmark","house-medical-flag","house-night","house-person-leave","house-person-return","house-signal","house-tree","house-tsunami","house-turret","house-user","house-water","house-window","hryvnia-sign","hundred-points","hurricane","hydra","hyphen","i","i-cursor","ice-cream","ice-skate","icicles","icons","id-badge","id-card","id-card-clip","igloo","image","image-landscape","image-polaroid","image-polaroid-user","image-portrait","image-slash","image-user","images","images-user","inbox","inbox-full","inbox-in","inbox-out","inboxes","indent","indian-rupee-sign","industry","industry-windows","infinity","info","inhaler","input-numeric","input-pipe","input-text","integral","interrobang","intersection","island-tropical","italic","j","jack-o-lantern","jar","jar-wheat","jedi","jet-fighter","jet-fighter-up","joint","joystick","jug","jug-bottle","jug-detergent","k","kaaba","kazoo","kerning","key","key-skeleton","key-skeleton-left-right","keyboard","keyboard-brightness","keyboard-brightness-low","keyboard-down","keyboard-left","keynote","khanda","kidneys","kip-sign","kit-medical","kitchen-set","kite","kiwi-bird","kiwi-fruit","knife","knife-kitchen","l","lacrosse-stick","lacrosse-stick-ball","lambda","lamp","lamp-desk","lamp-floor","lamp-street","land-mine-on","landmark","landmark-dome","landmark-flag","landmark-magnifying-glass","language","laptop","laptop-arrow-down","laptop-binary","laptop-code","laptop-file","laptop-medical","laptop-mobile","laptop-slash","lari-sign","lasso","lasso-sparkles","layer-group","layer-minus","layer-plus","leaf","leaf-heart","leaf-maple","leaf-oak","leafy-green","left","left-from-bracket","left-from-line","left-long","left-long-to-line","left-right","left-to-bracket","left-to-line","lemon","less-than","less-than-equal","life-ring","light-ceiling","light-emergency","light-emergency-on","light-switch","light-switch-off","light-switch-on","lightbulb","lightbulb-cfl","lightbulb-cfl-on","lightbulb-dollar","lightbulb-exclamation","lightbulb-exclamation-on","lightbulb-gear","lightbulb-message","lightbulb-on","lightbulb-slash","lighthouse","lights-holiday","line-columns","line-height","lines-leaning","link","link-horizontal","link-horizontal-slash","link-simple","link-simple-slash","link-slash","lips","lira-sign","list","list-check","list-dropdown","list-music","list-ol","list-radio","list-timeline","list-tree","list-ul","litecoin-sign","loader","lobster","location-arrow","location-arrow-up","location-check","location-crosshairs","location-crosshairs-slash","location-dot","location-dot-slash","location-exclamation","location-minus","location-pen","location-pin","location-pin-lock","location-pin-slash","location-plus","location-question","location-smile","location-xmark","lock","lock-a","lock-hashtag","lock-keyhole","lock-keyhole-open","lock-open","locust","lollipop","loveseat","luchador-mask","lungs","lungs-virus","m","mace","magnet","magnifying-glass","magnifying-glass-arrow-right","magnifying-glass-arrows-rotate","magnifying-glass-chart","magnifying-glass-dollar","magnifying-glass-location","magnifying-glass-minus","magnifying-glass-music","magnifying-glass-play","magnifying-glass-plus","magnifying-glass-waveform","mailbox","mailbox-flag-up","manat-sign","mandolin","mango","manhole","map","map-location","map-location-dot","map-pin","marker","mars","mars-and-venus","mars-and-venus-burst","mars-double","mars-stroke","mars-stroke-right","mars-stroke-up","martini-glass","martini-glass-citrus","martini-glass-empty","mask","mask-face","mask-snorkel","mask-ventilator","masks-theater","mattress-pillow","maximize","meat","medal","megaphone","melon","melon-slice","memo","memo-circle-check","memo-circle-info","memo-pad","memory","menorah","mercury","merge","message","message-arrow-down","message-arrow-up","message-arrow-up-right","message-bot","message-captions","message-check","message-code","message-dollar","message-dots","message-exclamation","message-heart","message-image","message-lines","message-medical","message-middle","message-middle-top","message-minus","message-music","message-pen","message-plus","message-question","message-quote","message-slash","message-smile","message-sms","message-text","message-xmark","messages","messages-dollar","messages-question","meteor","meter","meter-bolt","meter-droplet","meter-fire","microchip","microchip-ai","microphone","microphone-lines","microphone-lines-slash","microphone-slash","microphone-stand","microscope","microwave","mill-sign","minimize","minus","mistletoe","mitten","mobile","mobile-button","mobile-notch","mobile-retro","mobile-screen","mobile-screen-button","mobile-signal","mobile-signal-out","money-bill","money-bill-1","money-bill-1-wave","money-bill-simple","money-bill-simple-wave","money-bill-transfer","money-bill-trend-up","money-bill-wave","money-bill-wheat","money-bills","money-bills-simple","money-check","money-check-dollar","money-check-dollar-pen","money-check-pen","money-from-bracket","money-simple-from-bracket","monitor-waveform","monkey","monument","moon","moon-cloud","moon-over-sun","moon-stars","moped","mortar-pestle","mosque","mosquito","mosquito-net","motorcycle","mound","mountain","mountain-city","mountain-sun","mountains","mouse-field","mp3-player","mug","mug-hot","mug-marshmallows","mug-saucer","mug-tea","mug-tea-saucer","mushroom","music","music-magnifying-glass","music-note","music-note-slash","music-slash","mustache","n","naira-sign","narwhal","nesting-dolls","network-wired","neuter","newspaper","nfc","nfc-lock","nfc-magnifying-glass","nfc-pen","nfc-signal","nfc-slash","nfc-symbol","nfc-trash","nose","not-equal","notdef","note","note-medical","note-sticky","notebook","notes","notes-medical","o","object-exclude","object-group","object-intersect","object-subtract","object-ungroup","object-union","objects-align-bottom","objects-align-center-horizontal","objects-align-center-vertical","objects-align-left","objects-align-right","objects-align-top","objects-column","octagon","octagon-check","octagon-divide","octagon-exclamation","octagon-minus","octagon-plus","octagon-xmark","octopus","oil-can","oil-can-drip","oil-temperature","oil-well","olive","olive-branch","om","omega","onion","option","ornament","otter","outdent","outlet","oven","overline","p","page","page-caret-down","page-caret-up","pager","paint-roller","paintbrush","paintbrush-fine","paintbrush-pencil","palette","pallet","pallet-box","pallet-boxes","pan-food","pan-frying","pancakes","panel-ews","panel-fire","panorama","paper-plane","paper-plane-top","paperclip","paperclip-vertical","parachute-box","paragraph","paragraph-left","party-bell","party-horn","passport","paste","pause","paw","paw-claws","paw-simple","peace","peach","peanut","peanuts","peapod","pear","pedestal","pegasus","pen","pen-circle","pen-clip","pen-clip-slash","pen-fancy","pen-fancy-slash","pen-field","pen-line","pen-nib","pen-nib-slash","pen-paintbrush","pen-ruler","pen-slash","pen-swirl","pen-to-square","pencil","pencil-mechanical","pencil-slash","people","people-arrows","people-carry-box","people-dress","people-dress-simple","people-group","people-line","people-pants","people-pants-simple","people-pulling","people-robbery","people-roof","people-simple","pepper","pepper-hot","percent","period","person","person-arrow-down-to-line","person-arrow-up-from-line","person-biking","person-biking-mountain","person-booth","person-breastfeeding","person-burst","person-cane","person-carry-box","person-chalkboard","person-circle-check","person-circle-exclamation","person-circle-minus","person-circle-plus","person-circle-question","person-circle-xmark","person-digging","person-dolly","person-dolly-empty","person-dots-from-line","person-dress","person-dress-burst","person-dress-fairy","person-dress-simple","person-drowning","person-fairy","person-falling","person-falling-burst","person-from-portal","person-half-dress","person-harassing","person-hiking","person-military-pointing","person-military-rifle","person-military-to-person","person-pinball","person-praying","person-pregnant","person-rays","person-rifle","person-running","person-running-fast","person-seat","person-seat-reclined","person-shelter","person-sign","person-simple","person-skating","person-ski-jumping","person-ski-lift","person-skiing","person-skiing-nordic","person-sledding","person-snowboarding","person-snowmobiling","person-swimming","person-through-window","person-to-door","person-to-portal","person-walking","person-walking-arrow-loop-left","person-walking-arrow-right","person-walking-dashed-line-arrow-right","person-walking-luggage","person-walking-with-cane","peseta-sign","peso-sign","phone","phone-arrow-down-left","phone-arrow-right","phone-arrow-up-right","phone-flip","phone-hangup","phone-intercom","phone-missed","phone-office","phone-plus","phone-rotary","phone-slash","phone-volume","phone-xmark","photo-film","photo-film-music","pi","piano","piano-keyboard","pickaxe","pickleball","pie","pig","piggy-bank","pills","pinata","pinball","pineapple","pipe","pipe-circle-check","pipe-collar","pipe-section","pipe-smoking","pipe-valve","pizza","pizza-slice","place-of-worship","plane","plane-arrival","plane-circle-check","plane-circle-exclamation","plane-circle-xmark","plane-departure","plane-engines","plane-lock","plane-prop","plane-slash","plane-tail","plane-up","plane-up-slash","planet-moon","planet-ringed","plant-wilt","plate-utensils","plate-wheat","play","play-pause","plug","plug-circle-bolt","plug-circle-check","plug-circle-exclamation","plug-circle-minus","plug-circle-plus","plug-circle-xmark","plus","plus-large","plus-minus","podcast","podium","podium-star","police-box","poll-people","pompebled","poo","poo-storm","pool-8-ball","poop","popcorn","popsicle","pot-food","potato","power-off","prescription","prescription-bottle","prescription-bottle-medical","prescription-bottle-pill","presentation-screen","pretzel","print","print-magnifying-glass","print-slash","projector","pump","pump-medical","pump-soap","pumpkin","puzzle","puzzle-piece","puzzle-piece-simple","q","qrcode","question","quote-left","quote-right","quotes","r","rabbit","rabbit-running","raccoon","racquet","radar","radiation","radio","radio-tuner","rainbow","raindrops","ram","ramp-loading","ranking-star","raygun","receipt","record-vinyl","rectangle","rectangle-ad","rectangle-barcode","rectangle-code","rectangle-history","rectangle-history-circle-plus","rectangle-history-circle-user","rectangle-list","rectangle-pro","rectangle-terminal","rectangle-vertical","rectangle-vertical-history","rectangle-wide","rectangle-xmark","rectangles-mixed","recycle","reel","reflect-both","reflect-horizontal","reflect-vertical","refrigerator","registered","repeat","repeat-1","reply","reply-all","reply-clock","republican","restroom","restroom-simple","retweet","rhombus","ribbon","right","right-from-bracket","right-from-line","right-left","right-left-large","right-long","right-long-to-line","right-to-bracket","right-to-line","ring","ring-diamond","rings-wedding","road","road-barrier","road-bridge","road-circle-check","road-circle-exclamation","road-circle-xmark","road-lock","road-spikes","robot","robot-astromech","rocket","rocket-launch","roller-coaster","rotate","rotate-exclamation","rotate-left","rotate-reverse","rotate-right","route","route-highway","route-interstate","router","rss","ruble-sign","rug","rugby-ball","ruler","ruler-combined","ruler-horizontal","ruler-triangle","ruler-vertical","rupee-sign","rupiah-sign","rv","s","sack","sack-dollar","sack-xmark","sailboat","salad","salt-shaker","sandwich","satellite","satellite-dish","sausage","saxophone","saxophone-fire","scale-balanced","scale-unbalanced","scale-unbalanced-flip","scalpel","scalpel-line-dashed","scanner-gun","scanner-image","scanner-keyboard","scanner-touchscreen","scarecrow","scarf","school","school-circle-check","school-circle-exclamation","school-circle-xmark","school-flag","school-lock","scissors","screen-users","screencast","screwdriver","screwdriver-wrench","scribble","scroll","scroll-old","scroll-torah","scrubber","scythe","sd-card","sd-cards","seal","seal-exclamation","seal-question","seat-airline","section","seedling","semicolon","send-back","send-backward","sensor","sensor-cloud","sensor-fire","sensor-on","sensor-triangle-exclamation","server","shapes","share","share-all","share-from-square","share-nodes","sheep","sheet-plastic","shekel-sign","shelves","shelves-empty","shield","shield-cat","shield-check","shield-cross","shield-dog","shield-exclamation","shield-halved","shield-heart","shield-keyhole","shield-minus","shield-plus","shield-quartered","shield-slash","shield-virus","shield-xmark","ship","shirt","shirt-long-sleeve","shirt-running","shirt-tank-top","shish-kebab","shoe-prints","shop","shop-lock","shop-slash","shovel","shovel-snow","shower","shower-down","shredder","shrimp","shuffle","shutters","shuttle-space","shuttlecock","sickle","sidebar","sidebar-flip","sigma","sign-hanging","sign-post","sign-posts","sign-posts-wrench","signal","signal-bars","signal-bars-fair","signal-bars-good","signal-bars-slash","signal-bars-weak","signal-fair","signal-good","signal-slash","signal-stream","signal-stream-slash","signal-strong","signal-weak","signature","signature-lock","signature-slash","signs-post","sim-card","sim-cards","sink","siren","siren-on","sitemap","skeleton","skeleton-ribs","ski-boot","ski-boot-ski","skull","skull-cow","skull-crossbones","slash","slash-back","slash-forward","sleigh","slider","sliders","sliders-simple","sliders-up","slot-machine","smog","smoke","smoking","snake","snooze","snow-blowing","snowflake","snowflake-droplets","snowflakes","snowman","snowman-head","snowplow","soap","socks","soft-serve","solar-panel","solar-system","sort","sort-down","sort-up","spa","space-station-moon","space-station-moon-construction","spade","spaghetti-monster-flying","sparkle","sparkles","speaker","speakers","spell-check","spider","spider-black-widow","spider-web","spinner","spinner-scale","spinner-third","split","splotch","spoon","sportsball","spray-can","spray-can-sparkles","sprinkler","sprinkler-ceiling","square","square-0","square-1","square-2","square-3","square-4","square-5","square-6","square-7","square-8","square-9","square-a","square-a-lock","square-ampersand","square-arrow-down","square-arrow-down-left","square-arrow-down-right","square-arrow-left","square-arrow-right","square-arrow-up","square-arrow-up-left","square-arrow-up-right","square-b","square-bolt","square-c","square-caret-down","square-caret-left","square-caret-right","square-caret-up","square-check","square-chevron-down","square-chevron-left","square-chevron-right","square-chevron-up","square-code","square-d","square-dashed","square-dashed-circle-plus","square-divide","square-dollar","square-down","square-down-left","square-down-right","square-e","square-ellipsis","square-ellipsis-vertical","square-envelope","square-exclamation","square-f","square-fragile","square-full","square-g","square-h","square-heart","square-i","square-info","square-j","square-k","square-kanban","square-l","square-left","square-list","square-m","square-minus","square-n","square-nfi","square-o","square-p","square-parking","square-parking-slash","square-pen","square-person-confined","square-phone","square-phone-flip","square-phone-hangup","square-plus","square-poll-horizontal","square-poll-vertical","square-q","square-quarters","square-question","square-quote","square-r","square-right","square-ring","square-root","square-root-variable","square-rss","square-s","square-share-nodes","square-sliders","square-sliders-vertical","square-small","square-star","square-t","square-terminal","square-this-way-up","square-u","square-up","square-up-left","square-up-right","square-user","square-v","square-virus","square-w","square-x","square-xmark","square-y","square-z","squid","squirrel","staff","staff-snake","stairs","stamp","standard-definition","stapler","star","star-and-crescent","star-christmas","star-exclamation","star-half","star-half-stroke","star-of-david","star-of-life","star-sharp","star-sharp-half","star-sharp-half-stroke","star-shooting","starfighter","starfighter-twin-ion-engine","starfighter-twin-ion-engine-advanced","stars","starship","starship-freighter","steak","steering-wheel","sterling-sign","stethoscope","stocking","stomach","stop","stopwatch","stopwatch-20","store","store-lock","store-slash","strawberry","street-view","stretcher","strikethrough","stroopwafel","subscript","subtitles","subtitles-slash","suitcase","suitcase-medical","suitcase-rolling","sun","sun-bright","sun-cloud","sun-dust","sun-haze","sun-plant-wilt","sunglasses","sunrise","sunset","superscript","sushi","sushi-roll","swap","swap-arrows","swatchbook","sword","sword-laser","sword-laser-alt","swords","swords-laser","symbols","synagogue","syringe","t","t-rex","table","table-cells","table-cells-column-lock","table-cells-column-unlock","table-cells-large","table-cells-lock","table-cells-row-lock","table-cells-row-unlock","table-cells-unlock","table-columns","table-layout","table-list","table-picnic","table-pivot","table-rows","table-tennis-paddle-ball","table-tree","tablet","tablet-button","tablet-rugged","tablet-screen","tablet-screen-button","tablets","tachograph-digital","taco","tag","tags","tally","tally-1","tally-2","tally-3","tally-4","tamale","tank-water","tape","tarp","tarp-droplet","taxi","taxi-bus","teddy-bear","teeth","teeth-open","telescope","temperature-arrow-down","temperature-arrow-up","temperature-empty","temperature-full","temperature-half","temperature-high","temperature-list","temperature-low","temperature-quarter","temperature-snow","temperature-sun","temperature-three-quarters","tenge-sign","tennis-ball","tent","tent-arrow-down-to-line","tent-arrow-left-right","tent-arrow-turn-left","tent-arrows-down","tent-double-peak","tents","terminal","text","text-height","text-size","text-slash","text-width","thermometer","theta","thought-bubble","thumbs-down","thumbs-up","thumbtack","thumbtack-slash","tick","ticket","ticket-airline","ticket-perforated","ticket-simple","tickets","tickets-airline","tickets-perforated","tickets-simple","tilde","timeline","timeline-arrow","timer","tire","tire-flat","tire-pressure-warning","tire-rugged","toggle-large-off","toggle-large-on","toggle-off","toggle-on","toilet","toilet-paper","toilet-paper-blank","toilet-paper-blank-under","toilet-paper-check","toilet-paper-slash","toilet-paper-under","toilet-paper-under-slash","toilet-paper-xmark","toilet-portable","toilets-portable","tomato","tombstone","tombstone-blank","toolbox","tooth","toothbrush","torii-gate","tornado","tower-broadcast","tower-cell","tower-control","tower-observation","tractor","trademark","traffic-cone","traffic-light","traffic-light-go","traffic-light-slow","traffic-light-stop","trailer","train","train-subway","train-subway-tunnel","train-track","train-tram","train-tunnel","transformer-bolt","transgender","transporter","transporter-1","transporter-2","transporter-3","transporter-4","transporter-5","transporter-6","transporter-7","transporter-empty","trash","trash-arrow-up","trash-can","trash-can-arrow-up","trash-can-check","trash-can-clock","trash-can-list","trash-can-plus","trash-can-slash","trash-can-undo","trash-can-xmark","trash-check","trash-clock","trash-list","trash-plus","trash-slash","trash-undo","trash-xmark","treasure-chest","tree","tree-christmas","tree-city","tree-deciduous","tree-decorated","tree-large","tree-palm","trees","triangle","triangle-exclamation","triangle-instrument","triangle-person-digging","tricycle","tricycle-adult","trillium","trophy","trophy-star","trowel","trowel-bricks","truck","truck-arrow-right","truck-bolt","truck-clock","truck-container","truck-container-empty","truck-droplet","truck-fast","truck-field","truck-field-un","truck-fire","truck-flatbed","truck-front","truck-ladder","truck-medical","truck-monster","truck-moving","truck-pickup","truck-plane","truck-plow","truck-ramp","truck-ramp-box","truck-ramp-couch","truck-tow","truck-utensils","trumpet","tty","tty-answer","tugrik-sign","turkey","turkish-lira-sign","turn-down","turn-down-left","turn-down-right","turn-left","turn-left-down","turn-left-up","turn-right","turn-up","turntable","turtle","tv","tv-music","tv-retro","typewriter","u","ufo","ufo-beam","umbrella","umbrella-beach","umbrella-simple","underline","unicorn","uniform-martial-arts","union","universal-access","unlock","unlock-keyhole","up","up-down","up-down-left-right","up-from-bracket","up-from-dotted-line","up-from-line","up-left","up-long","up-right","up-right-and-down-left-from-center","up-right-from-square","up-to-bracket","up-to-dotted-line","up-to-line","upload","usb-drive","user","user-alien","user-astronaut","user-beard-bolt","user-bounty-hunter","user-check","user-chef","user-clock","user-cowboy","user-crown","user-doctor","user-doctor-hair","user-doctor-hair-long","user-doctor-message","user-gear","user-graduate","user-group","user-group-crown","user-group-simple","user-hair","user-hair-buns","user-hair-long","user-hair-mullet","user-headset","user-helmet-safety","user-hoodie","user-injured","user-large","user-large-slash","user-lock","user-magnifying-glass","user-minus","user-music","user-ninja","user-nurse","user-nurse-hair","user-nurse-hair-long","user-pen","user-pilot","user-pilot-tie","user-plus","user-police","user-police-tie","user-robot","user-robot-xmarks","user-secret","user-shakespeare","user-shield","user-slash","user-tag","user-tie","user-tie-hair","user-tie-hair-long","user-unlock","user-visor","user-vneck","user-vneck-hair","user-vneck-hair-long","user-xmark","users","users-between-lines","users-gear","users-line","users-medical","users-rays","users-rectangle","users-slash","users-viewfinder","utensils","utensils-slash","utility-pole","utility-pole-double","v","vacuum","vacuum-robot","value-absolute","van-shuttle","vault","vector-circle","vector-polygon","vector-square","vent-damper","venus","venus-double","venus-mars","vest","vest-patches","vial","vial-circle-check","vial-virus","vials","video","video-arrow-down-left","video-arrow-up-right","video-plus","video-slash","vihara","violin","virus","virus-covid","virus-covid-slash","virus-slash","viruses","voicemail","volcano","volleyball","volume","volume-high","volume-low","volume-off","volume-slash","volume-xmark","vr-cardboard","w","waffle","wagon-covered","walker","walkie-talkie","wallet","wand","wand-magic","wand-magic-sparkles","wand-sparkles","warehouse","warehouse-full","washing-machine","watch","watch-apple","watch-calculator","watch-fitness","watch-smart","water","water-arrow-down","water-arrow-up","water-ladder","watermelon-slice","wave","wave-pulse","wave-sine","wave-square","wave-triangle","waveform","waveform-lines","waves-sine","web-awesome","webhook","weight-hanging","weight-scale","whale","wheat","wheat-awn","wheat-awn-circle-exclamation","wheat-awn-slash","wheat-slash","wheelchair","wheelchair-move","whiskey-glass","whiskey-glass-ice","whistle","wifi","wifi-exclamation","wifi-fair","wifi-slash","wifi-weak","wind","wind-turbine","wind-warning","window","window-flip","window-frame","window-frame-open","window-maximize","window-minimize","window-restore","windsock","wine-bottle","wine-glass","wine-glass-crack","wine-glass-empty","won-sign","worm","wreath","wreath-laurel","wrench","wrench-simple","x","x-ray","xmark","xmark-large","xmark-to-slot","xmarks-lines","y","yen-sign","yin-yang","z"],"regular":["0","00","1","2","3","360-degrees","4","5","6","7","8","9","a","abacus","accent-grave","acorn","address-book","address-card","air-conditioner","airplay","alarm-clock","alarm-exclamation","alarm-plus","alarm-snooze","album","album-circle-plus","album-circle-user","album-collection","album-collection-circle-plus","album-collection-circle-user","alicorn","alien","alien-8bit","align-center","align-justify","align-left","align-right","align-slash","alt","amp-guitar","ampersand","anchor","anchor-circle-check","anchor-circle-exclamation","anchor-circle-xmark","anchor-lock","angel","angle","angle-90","angle-down","angle-left","angle-right","angle-up","angles-down","angles-left","angles-right","angles-up","angles-up-down","ankh","ant","apartment","aperture","apostrophe","apple-core","apple-whole","archway","arrow-down","arrow-down-1-9","arrow-down-9-1","arrow-down-a-z","arrow-down-arrow-up","arrow-down-big-small","arrow-down-from-arc","arrow-down-from-bracket","arrow-down-from-dotted-line","arrow-down-from-line","arrow-down-left","arrow-down-left-and-arrow-up-right-to-center","arrow-down-long","arrow-down-right","arrow-down-short-wide","arrow-down-small-big","arrow-down-square-triangle","arrow-down-to-arc","arrow-down-to-bracket","arrow-down-to-dotted-line","arrow-down-to-line","arrow-down-to-square","arrow-down-triangle-square","arrow-down-up-across-line","arrow-down-up-lock","arrow-down-wide-short","arrow-down-z-a","arrow-left","arrow-left-from-arc","arrow-left-from-bracket","arrow-left-from-line","arrow-left-long","arrow-left-long-to-line","arrow-left-to-arc","arrow-left-to-bracket","arrow-left-to-line","arrow-pointer","arrow-progress","arrow-right","arrow-right-arrow-left","arrow-right-from-arc","arrow-right-from-bracket","arrow-right-from-line","arrow-right-long","arrow-right-long-to-line","arrow-right-to-arc","arrow-right-to-bracket","arrow-right-to-city","arrow-right-to-line","arrow-rotate-left","arrow-rotate-right","arrow-trend-down","arrow-trend-up","arrow-turn-down","arrow-turn-down-left","arrow-turn-down-right","arrow-turn-left","arrow-turn-left-down","arrow-turn-left-up","arrow-turn-right","arrow-turn-up","arrow-up","arrow-up-1-9","arrow-up-9-1","arrow-up-a-z","arrow-up-arrow-down","arrow-up-big-small","arrow-up-from-arc","arrow-up-from-bracket","arrow-up-from-dotted-line","arrow-up-from-ground-water","arrow-up-from-line","arrow-up-from-square","arrow-up-from-water-pump","arrow-up-left","arrow-up-left-from-circle","arrow-up-long","arrow-up-right","arrow-up-right-and-arrow-down-left-from-center","arrow-up-right-dots","arrow-up-right-from-square","arrow-up-short-wide","arrow-up-small-big","arrow-up-square-triangle","arrow-up-to-arc","arrow-up-to-bracket","arrow-up-to-dotted-line","arrow-up-to-line","arrow-up-triangle-square","arrow-up-wide-short","arrow-up-z-a","arrows-cross","arrows-down-to-line","arrows-down-to-people","arrows-from-dotted-line","arrows-from-line","arrows-left-right","arrows-left-right-to-line","arrows-maximize","arrows-minimize","arrows-repeat","arrows-repeat-1","arrows-retweet","arrows-rotate","arrows-rotate-reverse","arrows-spin","arrows-split-up-and-left","arrows-to-circle","arrows-to-dot","arrows-to-dotted-line","arrows-to-eye","arrows-to-line","arrows-turn-right","arrows-turn-to-dots","arrows-up-down","arrows-up-down-left-right","arrows-up-to-line","asterisk","at","atom","atom-simple","audio-description","audio-description-slash","austral-sign","avocado","award","award-simple","axe","axe-battle","b","baby","baby-carriage","backpack","backward","backward-fast","backward-step","bacon","bacteria","bacterium","badge","badge-check","badge-dollar","badge-percent","badge-sheriff","badger-honey","badminton","bag-seedling","bag-shopping","bag-shopping-minus","bag-shopping-plus","bagel","bags-shopping","baguette","bahai","baht-sign","ball-pile","balloon","balloons","ballot","ballot-check","ban","ban-bug","ban-parking","ban-smoking","banana","bandage","bangladeshi-taka-sign","banjo","barcode","barcode-read","barcode-scan","bars","bars-filter","bars-progress","bars-sort","bars-staggered","baseball","baseball-bat-ball","basket-shopping","basket-shopping-minus","basket-shopping-plus","basket-shopping-simple","basketball","basketball-hoop","bat","bath","battery-bolt","battery-empty","battery-exclamation","battery-full","battery-half","battery-low","battery-quarter","battery-slash","battery-three-quarters","bed","bed-bunk","bed-empty","bed-front","bed-pulse","bee","beer-mug","beer-mug-empty","bell","bell-concierge","bell-exclamation","bell-on","bell-plus","bell-ring","bell-school","bell-school-slash","bell-slash","bells","bench-tree","bezier-curve","bicycle","billboard","bin-bottles","bin-bottles-recycle","bin-recycle","binary","binary-circle-check","binary-lock","binary-slash","binoculars","biohazard","bird","bitcoin-sign","blanket","blanket-fire","blender","blender-phone","blinds","blinds-open","blinds-raised","block","block-brick","block-brick-fire","block-question","block-quote","blog","blueberries","bluetooth","bold","bolt","bolt-auto","bolt-lightning","bolt-slash","bomb","bone","bone-break","bong","book","book-arrow-right","book-arrow-up","book-atlas","book-bible","book-blank","book-bookmark","book-circle-arrow-right","book-circle-arrow-up","book-copy","book-font","book-heart","book-journal-whills","book-medical","book-open","book-open-cover","book-open-reader","book-quran","book-section","book-skull","book-sparkles","book-tanakh","book-user","bookmark","bookmark-slash","books","books-medical","boombox","boot","boot-heeled","booth-curtain","border-all","border-bottom","border-bottom-right","border-center-h","border-center-v","border-inner","border-left","border-none","border-outer","border-right","border-top","border-top-left","bore-hole","bottle-baby","bottle-droplet","bottle-water","bow-arrow","bowl-chopsticks","bowl-chopsticks-noodles","bowl-food","bowl-hot","bowl-rice","bowl-scoop","bowl-scoops","bowl-soft-serve","bowl-spoon","bowling-ball","bowling-ball-pin","bowling-pins","box","box-archive","box-ballot","box-check","box-circle-check","box-dollar","box-heart","box-open","box-open-full","box-taped","box-tissue","boxes-packing","boxes-stacked","boxing-glove","bracket-curly","bracket-curly-right","bracket-round","bracket-round-right","bracket-square","bracket-square-right","brackets-curly","brackets-round","brackets-square","braille","brain","brain-arrow-curved-right","brain-circuit","brake-warning","brazilian-real-sign","bread-loaf","bread-slice","bread-slice-butter","bridge","bridge-circle-check","bridge-circle-exclamation","bridge-circle-xmark","bridge-lock","bridge-suspension","bridge-water","briefcase","briefcase-arrow-right","briefcase-blank","briefcase-medical","brightness","brightness-low","bring-forward","bring-front","broccoli","broom","broom-ball","broom-wide","browser","browsers","brush","bucket","bug","bug-slash","bugs","building","building-circle-arrow-right","building-circle-check","building-circle-exclamation","building-circle-xmark","building-columns","building-flag","building-lock","building-magnifying-glass","building-memo","building-ngo","building-shield","building-un","building-user","building-wheat","buildings","bulldozer","bullhorn","bullseye","bullseye-arrow","bullseye-pointer","buoy","buoy-mooring","burger","burger-cheese","burger-fries","burger-glass","burger-lettuce","burger-soda","burrito","burst","bus","bus-school","bus-simple","business-time","butter","c","cabin","cabinet-filing","cable-car","cactus","caduceus","cake-candles","cake-slice","calculator","calculator-simple","calendar","calendar-arrow-down","calendar-arrow-up","calendar-check","calendar-circle-exclamation","calendar-circle-minus","calendar-circle-plus","calendar-circle-user","calendar-clock","calendar-day","calendar-days","calendar-exclamation","calendar-heart","calendar-image","calendar-lines","calendar-lines-pen","calendar-minus","calendar-pen","calendar-plus","calendar-range","calendar-star","calendar-users","calendar-week","calendar-xmark","calendars","camcorder","camera","camera-cctv","camera-movie","camera-polaroid","camera-retro","camera-rotate","camera-security","camera-slash","camera-viewfinder","camera-web","camera-web-slash","campfire","campground","can-food","candle-holder","candy","candy-bar","candy-cane","candy-corn","cannabis","cannon","capsules","car","car-battery","car-bolt","car-building","car-bump","car-burst","car-bus","car-circle-bolt","car-garage","car-mirrors","car-on","car-rear","car-side","car-side-bolt","car-tilt","car-tunnel","car-wash","car-wrench","caravan","caravan-simple","card-club","card-diamond","card-heart","card-spade","cards","cards-blank","caret-down","caret-left","caret-right","caret-up","carrot","cars","cart-arrow-down","cart-arrow-up","cart-circle-arrow-down","cart-circle-arrow-up","cart-circle-check","cart-circle-exclamation","cart-circle-plus","cart-circle-xmark","cart-flatbed","cart-flatbed-boxes","cart-flatbed-empty","cart-flatbed-suitcase","cart-minus","cart-plus","cart-shopping","cart-shopping-fast","cart-xmark","cash-register","cassette-betamax","cassette-tape","cassette-vhs","castle","cat","cat-space","cauldron","cedi-sign","cent-sign","certificate","chair","chair-office","chalkboard","chalkboard-user","champagne-glass","champagne-glasses","charging-station","chart-area","chart-bar","chart-bullet","chart-candlestick","chart-column","chart-gantt","chart-kanban","chart-line","chart-line-down","chart-line-up","chart-line-up-down","chart-mixed","chart-mixed-up-circle-currency","chart-mixed-up-circle-dollar","chart-network","chart-pie","chart-pie-simple","chart-pie-simple-circle-currency","chart-pie-simple-circle-dollar","chart-pyramid","chart-radar","chart-scatter","chart-scatter-3d","chart-scatter-bubble","chart-simple","chart-simple-horizontal","chart-tree-map","chart-user","chart-waterfall","check","check-double","check-to-slot","cheese","cheese-swiss","cherries","chess","chess-bishop","chess-bishop-piece","chess-board","chess-clock","chess-clock-flip","chess-king","chess-king-piece","chess-knight","chess-knight-piece","chess-pawn","chess-pawn-piece","chess-queen","chess-queen-piece","chess-rook","chess-rook-piece","chestnut","chevron-down","chevron-left","chevron-right","chevron-up","chevrons-down","chevrons-left","chevrons-right","chevrons-up","chf-sign","child","child-combatant","child-dress","child-reaching","children","chimney","chopsticks","church","circle","circle-0","circle-1","circle-2","circle-3","circle-4","circle-5","circle-6","circle-7","circle-8","circle-9","circle-a","circle-ampersand","circle-arrow-down","circle-arrow-down-left","circle-arrow-down-right","circle-arrow-left","circle-arrow-right","circle-arrow-up","circle-arrow-up-left","circle-arrow-up-right","circle-b","circle-bolt","circle-book-open","circle-bookmark","circle-c","circle-calendar","circle-camera","circle-caret-down","circle-caret-left","circle-caret-right","circle-caret-up","circle-check","circle-chevron-down","circle-chevron-left","circle-chevron-right","circle-chevron-up","circle-d","circle-dashed","circle-divide","circle-dollar","circle-dollar-to-slot","circle-dot","circle-down","circle-down-left","circle-down-right","circle-e","circle-ellipsis","circle-ellipsis-vertical","circle-envelope","circle-euro","circle-exclamation","circle-exclamation-check","circle-f","circle-g","circle-gf","circle-h","circle-half","circle-half-stroke","circle-heart","circle-i","circle-info","circle-j","circle-k","circle-l","circle-left","circle-location-arrow","circle-m","circle-microphone","circle-microphone-lines","circle-minus","circle-n","circle-nodes","circle-notch","circle-o","circle-p","circle-parking","circle-pause","circle-phone","circle-phone-flip","circle-phone-hangup","circle-play","circle-plus","circle-q","circle-quarter","circle-quarter-stroke","circle-quarters","circle-question","circle-r","circle-radiation","circle-right","circle-s","circle-small","circle-sort","circle-sort-down","circle-sort-up","circle-star","circle-sterling","circle-stop","circle-t","circle-three-quarters","circle-three-quarters-stroke","circle-trash","circle-u","circle-up","circle-up-left","circle-up-right","circle-user","circle-v","circle-video","circle-w","circle-waveform-lines","circle-wifi","circle-wifi-circle-wifi","circle-x","circle-xmark","circle-y","circle-yen","circle-z","circles-overlap","citrus","citrus-slice","city","clapperboard","clapperboard-play","clarinet","claw-marks","clipboard","clipboard-check","clipboard-list","clipboard-list-check","clipboard-medical","clipboard-prescription","clipboard-question","clipboard-user","clock","clock-desk","clock-eight","clock-eight-thirty","clock-eleven","clock-eleven-thirty","clock-five","clock-five-thirty","clock-four-thirty","clock-nine","clock-nine-thirty","clock-one","clock-one-thirty","clock-rotate-left","clock-seven","clock-seven-thirty","clock-six","clock-six-thirty","clock-ten","clock-ten-thirty","clock-three","clock-three-thirty","clock-twelve","clock-twelve-thirty","clock-two","clock-two-thirty","clone","closed-captioning","closed-captioning-slash","clothes-hanger","cloud","cloud-arrow-down","cloud-arrow-up","cloud-binary","cloud-bolt","cloud-bolt-moon","cloud-bolt-sun","cloud-check","cloud-drizzle","cloud-exclamation","cloud-fog","cloud-hail","cloud-hail-mixed","cloud-meatball","cloud-minus","cloud-moon","cloud-moon-rain","cloud-music","cloud-plus","cloud-question","cloud-rain","cloud-rainbow","cloud-showers","cloud-showers-heavy","cloud-showers-water","cloud-slash","cloud-sleet","cloud-snow","cloud-sun","cloud-sun-rain","cloud-word","cloud-xmark","clouds","clouds-moon","clouds-sun","clover","club","coconut","code","code-branch","code-commit","code-compare","code-fork","code-merge","code-pull-request","code-pull-request-closed","code-pull-request-draft","code-simple","coffee-bean","coffee-beans","coffee-pot","coffin","coffin-cross","coin","coin-blank","coin-front","coin-vertical","coins","colon","colon-sign","columns-3","comet","comma","command","comment","comment-arrow-down","comment-arrow-up","comment-arrow-up-right","comment-captions","comment-check","comment-code","comment-dollar","comment-dots","comment-exclamation","comment-heart","comment-image","comment-lines","comment-medical","comment-middle","comment-middle-top","comment-minus","comment-music","comment-pen","comment-plus","comment-question","comment-quote","comment-slash","comment-smile","comment-sms","comment-text","comment-xmark","comments","comments-dollar","comments-question","comments-question-check","compact-disc","compass","compass-drafting","compass-slash","compress","compress-wide","computer","computer-classic","computer-mouse","computer-mouse-scrollwheel","computer-speaker","container-storage","conveyor-belt","conveyor-belt-arm","conveyor-belt-boxes","conveyor-belt-empty","cookie","cookie-bite","copy","copyright","corn","corner","couch","court-sport","cow","cowbell","cowbell-circle-plus","crab","crate-apple","crate-empty","credit-card","credit-card-blank","credit-card-front","cricket-bat-ball","croissant","crop","crop-simple","cross","crosshairs","crosshairs-simple","crow","crown","crutch","crutches","cruzeiro-sign","crystal-ball","cube","cubes","cubes-stacked","cucumber","cup-straw","cup-straw-swoosh","cup-togo","cupcake","curling-stone","custard","d","dagger","dash","database","deer","deer-rudolph","delete-left","delete-right","democrat","desktop","desktop-arrow-down","dharmachakra","diagram-cells","diagram-lean-canvas","diagram-nested","diagram-next","diagram-predecessor","diagram-previous","diagram-project","diagram-sankey","diagram-subtask","diagram-successor","diagram-venn","dial","dial-high","dial-low","dial-max","dial-med","dial-med-low","dial-min","dial-off","diamond","diamond-exclamation","diamond-half","diamond-half-stroke","diamond-turn-right","diamonds-4","dice","dice-d10","dice-d12","dice-d20","dice-d4","dice-d6","dice-d8","dice-five","dice-four","dice-one","dice-six","dice-three","dice-two","dinosaur","diploma","disc-drive","disease","display","display-arrow-down","display-chart-up","display-chart-up-circle-currency","display-chart-up-circle-dollar","display-code","display-medical","display-slash","distribute-spacing-horizontal","distribute-spacing-vertical","ditto","divide","dna","do-not-enter","dog","dog-leashed","dollar-sign","dolly","dolly-empty","dolphin","dong-sign","donut","door-closed","door-open","dove","down","down-from-bracket","down-from-dotted-line","down-from-line","down-left","down-left-and-up-right-to-center","down-long","down-right","down-to-bracket","down-to-dotted-line","down-to-line","download","dragon","draw-circle","draw-polygon","draw-square","dreidel","drone","drone-front","droplet","droplet-degree","droplet-percent","droplet-slash","drum","drum-steelpan","drumstick","drumstick-bite","dryer","dryer-heat","duck","dumbbell","dumpster","dumpster-fire","dungeon","e","ear","ear-deaf","ear-listen","ear-muffs","earth-africa","earth-americas","earth-asia","earth-europe","earth-oceania","eclipse","egg","egg-fried","eggplant","eject","elephant","elevator","ellipsis","ellipsis-stroke","ellipsis-stroke-vertical","ellipsis-vertical","empty-set","engine","engine-warning","envelope","envelope-circle-check","envelope-dot","envelope-open","envelope-open-dollar","envelope-open-text","envelopes","envelopes-bulk","equals","eraser","escalator","ethernet","euro-sign","excavator","exclamation","expand","expand-wide","explosion","eye","eye-dropper","eye-dropper-full","eye-dropper-half","eye-evil","eye-low-vision","eye-slash","eyes","f","face-angry","face-angry-horns","face-anguished","face-anxious-sweat","face-astonished","face-awesome","face-beam-hand-over-mouth","face-clouds","face-confounded","face-confused","face-cowboy-hat","face-diagonal-mouth","face-disappointed","face-disguise","face-dizzy","face-dotted","face-downcast-sweat","face-drooling","face-exhaling","face-explode","face-expressionless","face-eyes-xmarks","face-fearful","face-flushed","face-frown","face-frown-open","face-frown-slight","face-glasses","face-grimace","face-grin","face-grin-beam","face-grin-beam-sweat","face-grin-hearts","face-grin-squint","face-grin-squint-tears","face-grin-stars","face-grin-tears","face-grin-tongue","face-grin-tongue-squint","face-grin-tongue-wink","face-grin-wide","face-grin-wink","face-hand-over-mouth","face-hand-peeking","face-hand-yawn","face-head-bandage","face-holding-back-tears","face-hushed","face-icicles","face-kiss","face-kiss-beam","face-kiss-closed-eyes","face-kiss-wink-heart","face-laugh","face-laugh-beam","face-laugh-squint","face-laugh-wink","face-lying","face-mask","face-meh","face-meh-blank","face-melting","face-monocle","face-nauseated","face-nose-steam","face-party","face-pensive","face-persevering","face-pleading","face-pouting","face-raised-eyebrow","face-relieved","face-rolling-eyes","face-sad-cry","face-sad-sweat","face-sad-tear","face-saluting","face-scream","face-shush","face-sleeping","face-sleepy","face-smile","face-smile-beam","face-smile-halo","face-smile-hearts","face-smile-horns","face-smile-plus","face-smile-relaxed","face-smile-tear","face-smile-tongue","face-smile-upside-down","face-smile-wink","face-smiling-hands","face-smirking","face-spiral-eyes","face-sunglasses","face-surprise","face-swear","face-thermometer","face-thinking","face-tired","face-tissue","face-tongue-money","face-tongue-sweat","face-unamused","face-viewfinder","face-vomit","face-weary","face-woozy","face-worried","face-zany","face-zipper","falafel","family","family-dress","family-pants","fan","fan-table","farm","faucet","faucet-drip","fax","feather","feather-pointed","fence","ferris-wheel","ferry","field-hockey-stick-ball","file","file-arrow-down","file-arrow-up","file-audio","file-binary","file-cad","file-certificate","file-chart-column","file-chart-pie","file-check","file-circle-check","file-circle-exclamation","file-circle-info","file-circle-minus","file-circle-plus","file-circle-question","file-circle-xmark","file-code","file-contract","file-csv","file-dashed-line","file-doc","file-eps","file-excel","file-exclamation","file-export","file-gif","file-heart","file-image","file-import","file-invoice","file-invoice-dollar","file-jpg","file-lines","file-lock","file-magnifying-glass","file-medical","file-minus","file-mov","file-mp3","file-mp4","file-music","file-pdf","file-pen","file-plus","file-plus-minus","file-png","file-powerpoint","file-ppt","file-prescription","file-shield","file-signature","file-slash","file-spreadsheet","file-svg","file-user","file-vector","file-video","file-waveform","file-word","file-xls","file-xmark","file-xml","file-zip","file-zipper","files","files-medical","fill","fill-drip","film","film-canister","film-simple","film-slash","films","filter","filter-circle-dollar","filter-circle-xmark","filter-list","filter-slash","filters","fingerprint","fire","fire-burner","fire-extinguisher","fire-flame","fire-flame-curved","fire-flame-simple","fire-hydrant","fire-smoke","fireplace","fish","fish-bones","fish-cooked","fish-fins","fishing-rod","flag","flag-checkered","flag-pennant","flag-swallowtail","flag-usa","flashlight","flask","flask-gear","flask-round-poison","flask-round-potion","flask-vial","flatbread","flatbread-stuffed","floppy-disk","floppy-disk-circle-arrow-right","floppy-disk-circle-xmark","floppy-disk-pen","floppy-disks","florin-sign","flower","flower-daffodil","flower-tulip","flute","flux-capacitor","flying-disc","folder","folder-arrow-down","folder-arrow-up","folder-bookmark","folder-check","folder-closed","folder-gear","folder-grid","folder-heart","folder-image","folder-magnifying-glass","folder-medical","folder-minus","folder-music","folder-open","folder-plus","folder-tree","folder-user","folder-xmark","folders","fondue-pot","font","font-awesome","font-case","football","football-helmet","fork","fork-knife","forklift","fort","forward","forward-fast","forward-step","frame","franc-sign","french-fries","frog","function","futbol","g","galaxy","gallery-thumbnails","game-board","game-board-simple","game-console-handheld","game-console-handheld-crank","gamepad","gamepad-modern","garage","garage-car","garage-open","garlic","gas-pump","gas-pump-slash","gauge","gauge-circle-bolt","gauge-circle-minus","gauge-circle-plus","gauge-high","gauge-low","gauge-max","gauge-min","gauge-simple","gauge-simple-high","gauge-simple-low","gauge-simple-max","gauge-simple-min","gavel","gear","gear-code","gear-complex","gear-complex-code","gears","gem","genderless","ghost","gif","gift","gift-card","gifts","gingerbread-man","glass","glass-citrus","glass-empty","glass-half","glass-water","glass-water-droplet","glasses","glasses-round","globe","globe-pointer","globe-snow","globe-stand","globe-wifi","goal-net","golf-ball-tee","golf-club","golf-flag-hole","gopuram","graduation-cap","gramophone","grapes","grate","grate-droplet","greater-than","greater-than-equal","grid","grid-2","grid-2-plus","grid-4","grid-5","grid-dividers","grid-horizontal","grid-round","grid-round-2","grid-round-2-plus","grid-round-4","grid-round-5","grill","grill-fire","grill-hot","grip","grip-dots","grip-dots-vertical","grip-lines","grip-lines-vertical","grip-vertical","group-arrows-rotate","guarani-sign","guitar","guitar-electric","guitars","gun","gun-slash","gun-squirt","h","h1","h2","h3","h4","h5","h6","hammer","hammer-brush","hammer-crash","hammer-war","hamsa","hand","hand-back-fist","hand-back-point-down","hand-back-point-left","hand-back-point-ribbon","hand-back-point-right","hand-back-point-up","hand-dots","hand-fingers-crossed","hand-fist","hand-heart","hand-holding","hand-holding-box","hand-holding-circle-dollar","hand-holding-dollar","hand-holding-droplet","hand-holding-hand","hand-holding-heart","hand-holding-magic","hand-holding-medical","hand-holding-seedling","hand-holding-skull","hand-horns","hand-lizard","hand-love","hand-middle-finger","hand-peace","hand-point-down","hand-point-left","hand-point-ribbon","hand-point-right","hand-point-up","hand-pointer","hand-scissors","hand-sparkles","hand-spock","hand-wave","handcuffs","hands","hands-asl-interpreting","hands-bound","hands-bubbles","hands-clapping","hands-holding","hands-holding-child","hands-holding-circle","hands-holding-diamond","hands-holding-dollar","hands-holding-heart","hands-praying","handshake","handshake-angle","handshake-simple","handshake-simple-slash","handshake-slash","hanukiah","hard-drive","hashtag","hashtag-lock","hat-beach","hat-chef","hat-cowboy","hat-cowboy-side","hat-santa","hat-winter","hat-witch","hat-wizard","head-side","head-side-brain","head-side-cough","head-side-cough-slash","head-side-gear","head-side-goggles","head-side-headphones","head-side-heart","head-side-mask","head-side-medical","head-side-virus","heading","headphones","headphones-simple","headset","heart","heart-circle-bolt","heart-circle-check","heart-circle-exclamation","heart-circle-minus","heart-circle-plus","heart-circle-xmark","heart-crack","heart-half","heart-half-stroke","heart-pulse","heat","helicopter","helicopter-symbol","helmet-battle","helmet-safety","helmet-un","hexagon","hexagon-check","hexagon-divide","hexagon-exclamation","hexagon-image","hexagon-minus","hexagon-plus","hexagon-vertical-nft","hexagon-vertical-nft-slanted","hexagon-xmark","high-definition","highlighter","highlighter-line","hill-avalanche","hill-rockslide","hippo","hockey-mask","hockey-puck","hockey-stick-puck","hockey-sticks","holly-berry","honey-pot","hood-cloak","horizontal-rule","horse","horse-head","horse-saddle","hose","hose-reel","hospital","hospital-user","hospitals","hot-tub-person","hotdog","hotel","hourglass","hourglass-clock","hourglass-end","hourglass-half","hourglass-start","house","house-blank","house-building","house-chimney","house-chimney-blank","house-chimney-crack","house-chimney-heart","house-chimney-medical","house-chimney-user","house-chimney-window","house-circle-check","house-circle-exclamation","house-circle-xmark","house-crack","house-day","house-fire","house-flag","house-flood-water","house-flood-water-circle-arrow-right","house-heart","house-laptop","house-lock","house-medical","house-medical-circle-check","house-medical-circle-exclamation","house-medical-circle-xmark","house-medical-flag","house-night","house-person-leave","house-person-return","house-signal","house-tree","house-tsunami","house-turret","house-user","house-water","house-window","hryvnia-sign","hundred-points","hurricane","hydra","hyphen","i","i-cursor","ice-cream","ice-skate","icicles","icons","id-badge","id-card","id-card-clip","igloo","image","image-landscape","image-polaroid","image-polaroid-user","image-portrait","image-slash","image-user","images","images-user","inbox","inbox-full","inbox-in","inbox-out","inboxes","indent","indian-rupee-sign","industry","industry-windows","infinity","info","inhaler","input-numeric","input-pipe","input-text","integral","interrobang","intersection","island-tropical","italic","j","jack-o-lantern","jar","jar-wheat","jedi","jet-fighter","jet-fighter-up","joint","joystick","jug","jug-bottle","jug-detergent","k","kaaba","kazoo","kerning","key","key-skeleton","key-skeleton-left-right","keyboard","keyboard-brightness","keyboard-brightness-low","keyboard-down","keyboard-left","keynote","khanda","kidneys","kip-sign","kit-medical","kitchen-set","kite","kiwi-bird","kiwi-fruit","knife","knife-kitchen","l","lacrosse-stick","lacrosse-stick-ball","lambda","lamp","lamp-desk","lamp-floor","lamp-street","land-mine-on","landmark","landmark-dome","landmark-flag","landmark-magnifying-glass","language","laptop","laptop-arrow-down","laptop-binary","laptop-code","laptop-file","laptop-medical","laptop-mobile","laptop-slash","lari-sign","lasso","lasso-sparkles","layer-group","layer-minus","layer-plus","leaf","leaf-heart","leaf-maple","leaf-oak","leafy-green","left","left-from-bracket","left-from-line","left-long","left-long-to-line","left-right","left-to-bracket","left-to-line","lemon","less-than","less-than-equal","life-ring","light-ceiling","light-emergency","light-emergency-on","light-switch","light-switch-off","light-switch-on","lightbulb","lightbulb-cfl","lightbulb-cfl-on","lightbulb-dollar","lightbulb-exclamation","lightbulb-exclamation-on","lightbulb-gear","lightbulb-message","lightbulb-on","lightbulb-slash","lighthouse","lights-holiday","line-columns","line-height","lines-leaning","link","link-horizontal","link-horizontal-slash","link-simple","link-simple-slash","link-slash","lips","lira-sign","list","list-check","list-dropdown","list-music","list-ol","list-radio","list-timeline","list-tree","list-ul","litecoin-sign","loader","lobster","location-arrow","location-arrow-up","location-check","location-crosshairs","location-crosshairs-slash","location-dot","location-dot-slash","location-exclamation","location-minus","location-pen","location-pin","location-pin-lock","location-pin-slash","location-plus","location-question","location-smile","location-xmark","lock","lock-a","lock-hashtag","lock-keyhole","lock-keyhole-open","lock-open","locust","lollipop","loveseat","luchador-mask","lungs","lungs-virus","m","mace","magnet","magnifying-glass","magnifying-glass-arrow-right","magnifying-glass-arrows-rotate","magnifying-glass-chart","magnifying-glass-dollar","magnifying-glass-location","magnifying-glass-minus","magnifying-glass-music","magnifying-glass-play","magnifying-glass-plus","magnifying-glass-waveform","mailbox","mailbox-flag-up","manat-sign","mandolin","mango","manhole","map","map-location","map-location-dot","map-pin","marker","mars","mars-and-venus","mars-and-venus-burst","mars-double","mars-stroke","mars-stroke-right","mars-stroke-up","martini-glass","martini-glass-citrus","martini-glass-empty","mask","mask-face","mask-snorkel","mask-ventilator","masks-theater","mattress-pillow","maximize","meat","medal","megaphone","melon","melon-slice","memo","memo-circle-check","memo-circle-info","memo-pad","memory","menorah","mercury","merge","message","message-arrow-down","message-arrow-up","message-arrow-up-right","message-bot","message-captions","message-check","message-code","message-dollar","message-dots","message-exclamation","message-heart","message-image","message-lines","message-medical","message-middle","message-middle-top","message-minus","message-music","message-pen","message-plus","message-question","message-quote","message-slash","message-smile","message-sms","message-text","message-xmark","messages","messages-dollar","messages-question","meteor","meter","meter-bolt","meter-droplet","meter-fire","microchip","microchip-ai","microphone","microphone-lines","microphone-lines-slash","microphone-slash","microphone-stand","microscope","microwave","mill-sign","minimize","minus","mistletoe","mitten","mobile","mobile-button","mobile-notch","mobile-retro","mobile-screen","mobile-screen-button","mobile-signal","mobile-signal-out","money-bill","money-bill-1","money-bill-1-wave","money-bill-simple","money-bill-simple-wave","money-bill-transfer","money-bill-trend-up","money-bill-wave","money-bill-wheat","money-bills","money-bills-simple","money-check","money-check-dollar","money-check-dollar-pen","money-check-pen","money-from-bracket","money-simple-from-bracket","monitor-waveform","monkey","monument","moon","moon-cloud","moon-over-sun","moon-stars","moped","mortar-pestle","mosque","mosquito","mosquito-net","motorcycle","mound","mountain","mountain-city","mountain-sun","mountains","mouse-field","mp3-player","mug","mug-hot","mug-marshmallows","mug-saucer","mug-tea","mug-tea-saucer","mushroom","music","music-magnifying-glass","music-note","music-note-slash","music-slash","mustache","n","naira-sign","narwhal","nesting-dolls","network-wired","neuter","newspaper","nfc","nfc-lock","nfc-magnifying-glass","nfc-pen","nfc-signal","nfc-slash","nfc-symbol","nfc-trash","nose","not-equal","notdef","note","note-medical","note-sticky","notebook","notes","notes-medical","o","object-exclude","object-group","object-intersect","object-subtract","object-ungroup","object-union","objects-align-bottom","objects-align-center-horizontal","objects-align-center-vertical","objects-align-left","objects-align-right","objects-align-top","objects-column","octagon","octagon-check","octagon-divide","octagon-exclamation","octagon-minus","octagon-plus","octagon-xmark","octopus","oil-can","oil-can-drip","oil-temperature","oil-well","olive","olive-branch","om","omega","onion","option","ornament","otter","outdent","outlet","oven","overline","p","page","page-caret-down","page-caret-up","pager","paint-roller","paintbrush","paintbrush-fine","paintbrush-pencil","palette","pallet","pallet-box","pallet-boxes","pan-food","pan-frying","pancakes","panel-ews","panel-fire","panorama","paper-plane","paper-plane-top","paperclip","paperclip-vertical","parachute-box","paragraph","paragraph-left","party-bell","party-horn","passport","paste","pause","paw","paw-claws","paw-simple","peace","peach","peanut","peanuts","peapod","pear","pedestal","pegasus","pen","pen-circle","pen-clip","pen-clip-slash","pen-fancy","pen-fancy-slash","pen-field","pen-line","pen-nib","pen-nib-slash","pen-paintbrush","pen-ruler","pen-slash","pen-swirl","pen-to-square","pencil","pencil-mechanical","pencil-slash","people","people-arrows","people-carry-box","people-dress","people-dress-simple","people-group","people-line","people-pants","people-pants-simple","people-pulling","people-robbery","people-roof","people-simple","pepper","pepper-hot","percent","period","person","person-arrow-down-to-line","person-arrow-up-from-line","person-biking","person-biking-mountain","person-booth","person-breastfeeding","person-burst","person-cane","person-carry-box","person-chalkboard","person-circle-check","person-circle-exclamation","person-circle-minus","person-circle-plus","person-circle-question","person-circle-xmark","person-digging","person-dolly","person-dolly-empty","person-dots-from-line","person-dress","person-dress-burst","person-dress-fairy","person-dress-simple","person-drowning","person-fairy","person-falling","person-falling-burst","person-from-portal","person-half-dress","person-harassing","person-hiking","person-military-pointing","person-military-rifle","person-military-to-person","person-pinball","person-praying","person-pregnant","person-rays","person-rifle","person-running","person-running-fast","person-seat","person-seat-reclined","person-shelter","person-sign","person-simple","person-skating","person-ski-jumping","person-ski-lift","person-skiing","person-skiing-nordic","person-sledding","person-snowboarding","person-snowmobiling","person-swimming","person-through-window","person-to-door","person-to-portal","person-walking","person-walking-arrow-loop-left","person-walking-arrow-right","person-walking-dashed-line-arrow-right","person-walking-luggage","person-walking-with-cane","peseta-sign","peso-sign","phone","phone-arrow-down-left","phone-arrow-right","phone-arrow-up-right","phone-flip","phone-hangup","phone-intercom","phone-missed","phone-office","phone-plus","phone-rotary","phone-slash","phone-volume","phone-xmark","photo-film","photo-film-music","pi","piano","piano-keyboard","pickaxe","pickleball","pie","pig","piggy-bank","pills","pinata","pinball","pineapple","pipe","pipe-circle-check","pipe-collar","pipe-section","pipe-smoking","pipe-valve","pizza","pizza-slice","place-of-worship","plane","plane-arrival","plane-circle-check","plane-circle-exclamation","plane-circle-xmark","plane-departure","plane-engines","plane-lock","plane-prop","plane-slash","plane-tail","plane-up","plane-up-slash","planet-moon","planet-ringed","plant-wilt","plate-utensils","plate-wheat","play","play-pause","plug","plug-circle-bolt","plug-circle-check","plug-circle-exclamation","plug-circle-minus","plug-circle-plus","plug-circle-xmark","plus","plus-large","plus-minus","podcast","podium","podium-star","police-box","poll-people","pompebled","poo","poo-storm","pool-8-ball","poop","popcorn","popsicle","pot-food","potato","power-off","prescription","prescription-bottle","prescription-bottle-medical","prescription-bottle-pill","presentation-screen","pretzel","print","print-magnifying-glass","print-slash","projector","pump","pump-medical","pump-soap","pumpkin","puzzle","puzzle-piece","puzzle-piece-simple","q","qrcode","question","quote-left","quote-right","quotes","r","rabbit","rabbit-running","raccoon","racquet","radar","radiation","radio","radio-tuner","rainbow","raindrops","ram","ramp-loading","ranking-star","raygun","receipt","record-vinyl","rectangle","rectangle-ad","rectangle-barcode","rectangle-code","rectangle-history","rectangle-history-circle-plus","rectangle-history-circle-user","rectangle-list","rectangle-pro","rectangle-terminal","rectangle-vertical","rectangle-vertical-history","rectangle-wide","rectangle-xmark","rectangles-mixed","recycle","reel","reflect-both","reflect-horizontal","reflect-vertical","refrigerator","registered","repeat","repeat-1","reply","reply-all","reply-clock","republican","restroom","restroom-simple","retweet","rhombus","ribbon","right","right-from-bracket","right-from-line","right-left","right-left-large","right-long","right-long-to-line","right-to-bracket","right-to-line","ring","ring-diamond","rings-wedding","road","road-barrier","road-bridge","road-circle-check","road-circle-exclamation","road-circle-xmark","road-lock","road-spikes","robot","robot-astromech","rocket","rocket-launch","roller-coaster","rotate","rotate-exclamation","rotate-left","rotate-reverse","rotate-right","route","route-highway","route-interstate","router","rss","ruble-sign","rug","rugby-ball","ruler","ruler-combined","ruler-horizontal","ruler-triangle","ruler-vertical","rupee-sign","rupiah-sign","rv","s","sack","sack-dollar","sack-xmark","sailboat","salad","salt-shaker","sandwich","satellite","satellite-dish","sausage","saxophone","saxophone-fire","scale-balanced","scale-unbalanced","scale-unbalanced-flip","scalpel","scalpel-line-dashed","scanner-gun","scanner-image","scanner-keyboard","scanner-touchscreen","scarecrow","scarf","school","school-circle-check","school-circle-exclamation","school-circle-xmark","school-flag","school-lock","scissors","screen-users","screencast","screwdriver","screwdriver-wrench","scribble","scroll","scroll-old","scroll-torah","scrubber","scythe","sd-card","sd-cards","seal","seal-exclamation","seal-question","seat-airline","section","seedling","semicolon","send-back","send-backward","sensor","sensor-cloud","sensor-fire","sensor-on","sensor-triangle-exclamation","server","shapes","share","share-all","share-from-square","share-nodes","sheep","sheet-plastic","shekel-sign","shelves","shelves-empty","shield","shield-cat","shield-check","shield-cross","shield-dog","shield-exclamation","shield-halved","shield-heart","shield-keyhole","shield-minus","shield-plus","shield-quartered","shield-slash","shield-virus","shield-xmark","ship","shirt","shirt-long-sleeve","shirt-running","shirt-tank-top","shish-kebab","shoe-prints","shop","shop-lock","shop-slash","shovel","shovel-snow","shower","shower-down","shredder","shrimp","shuffle","shutters","shuttle-space","shuttlecock","sickle","sidebar","sidebar-flip","sigma","sign-hanging","sign-post","sign-posts","sign-posts-wrench","signal","signal-bars","signal-bars-fair","signal-bars-good","signal-bars-slash","signal-bars-weak","signal-fair","signal-good","signal-slash","signal-stream","signal-stream-slash","signal-strong","signal-weak","signature","signature-lock","signature-slash","signs-post","sim-card","sim-cards","sink","siren","siren-on","sitemap","skeleton","skeleton-ribs","ski-boot","ski-boot-ski","skull","skull-cow","skull-crossbones","slash","slash-back","slash-forward","sleigh","slider","sliders","sliders-simple","sliders-up","slot-machine","smog","smoke","smoking","snake","snooze","snow-blowing","snowflake","snowflake-droplets","snowflakes","snowman","snowman-head","snowplow","soap","socks","soft-serve","solar-panel","solar-system","sort","sort-down","sort-up","spa","space-station-moon","space-station-moon-construction","spade","spaghetti-monster-flying","sparkle","sparkles","speaker","speakers","spell-check","spider","spider-black-widow","spider-web","spinner","spinner-scale","spinner-third","split","splotch","spoon","sportsball","spray-can","spray-can-sparkles","sprinkler","sprinkler-ceiling","square","square-0","square-1","square-2","square-3","square-4","square-5","square-6","square-7","square-8","square-9","square-a","square-a-lock","square-ampersand","square-arrow-down","square-arrow-down-left","square-arrow-down-right","square-arrow-left","square-arrow-right","square-arrow-up","square-arrow-up-left","square-arrow-up-right","square-b","square-bolt","square-c","square-caret-down","square-caret-left","square-caret-right","square-caret-up","square-check","square-chevron-down","square-chevron-left","square-chevron-right","square-chevron-up","square-code","square-d","square-dashed","square-dashed-circle-plus","square-divide","square-dollar","square-down","square-down-left","square-down-right","square-e","square-ellipsis","square-ellipsis-vertical","square-envelope","square-exclamation","square-f","square-fragile","square-full","square-g","square-h","square-heart","square-i","square-info","square-j","square-k","square-kanban","square-l","square-left","square-list","square-m","square-minus","square-n","square-nfi","square-o","square-p","square-parking","square-parking-slash","square-pen","square-person-confined","square-phone","square-phone-flip","square-phone-hangup","square-plus","square-poll-horizontal","square-poll-vertical","square-q","square-quarters","square-question","square-quote","square-r","square-right","square-ring","square-root","square-root-variable","square-rss","square-s","square-share-nodes","square-sliders","square-sliders-vertical","square-small","square-star","square-t","square-terminal","square-this-way-up","square-u","square-up","square-up-left","square-up-right","square-user","square-v","square-virus","square-w","square-x","square-xmark","square-y","square-z","squid","squirrel","staff","staff-snake","stairs","stamp","standard-definition","stapler","star","star-and-crescent","star-christmas","star-exclamation","star-half","star-half-stroke","star-of-david","star-of-life","star-sharp","star-sharp-half","star-sharp-half-stroke","star-shooting","starfighter","starfighter-twin-ion-engine","starfighter-twin-ion-engine-advanced","stars","starship","starship-freighter","steak","steering-wheel","sterling-sign","stethoscope","stocking","stomach","stop","stopwatch","stopwatch-20","store","store-lock","store-slash","strawberry","street-view","stretcher","strikethrough","stroopwafel","subscript","subtitles","subtitles-slash","suitcase","suitcase-medical","suitcase-rolling","sun","sun-bright","sun-cloud","sun-dust","sun-haze","sun-plant-wilt","sunglasses","sunrise","sunset","superscript","sushi","sushi-roll","swap","swap-arrows","swatchbook","sword","sword-laser","sword-laser-alt","swords","swords-laser","symbols","synagogue","syringe","t","t-rex","table","table-cells","table-cells-column-lock","table-cells-column-unlock","table-cells-large","table-cells-lock","table-cells-row-lock","table-cells-row-unlock","table-cells-unlock","table-columns","table-layout","table-list","table-picnic","table-pivot","table-rows","table-tennis-paddle-ball","table-tree","tablet","tablet-button","tablet-rugged","tablet-screen","tablet-screen-button","tablets","tachograph-digital","taco","tag","tags","tally","tally-1","tally-2","tally-3","tally-4","tamale","tank-water","tape","tarp","tarp-droplet","taxi","taxi-bus","teddy-bear","teeth","teeth-open","telescope","temperature-arrow-down","temperature-arrow-up","temperature-empty","temperature-full","temperature-half","temperature-high","temperature-list","temperature-low","temperature-quarter","temperature-snow","temperature-sun","temperature-three-quarters","tenge-sign","tennis-ball","tent","tent-arrow-down-to-line","tent-arrow-left-right","tent-arrow-turn-left","tent-arrows-down","tent-double-peak","tents","terminal","text","text-height","text-size","text-slash","text-width","thermometer","theta","thought-bubble","thumbs-down","thumbs-up","thumbtack","thumbtack-slash","tick","ticket","ticket-airline","ticket-perforated","ticket-simple","tickets","tickets-airline","tickets-perforated","tickets-simple","tilde","timeline","timeline-arrow","timer","tire","tire-flat","tire-pressure-warning","tire-rugged","toggle-large-off","toggle-large-on","toggle-off","toggle-on","toilet","toilet-paper","toilet-paper-blank","toilet-paper-blank-under","toilet-paper-check","toilet-paper-slash","toilet-paper-under","toilet-paper-under-slash","toilet-paper-xmark","toilet-portable","toilets-portable","tomato","tombstone","tombstone-blank","toolbox","tooth","toothbrush","torii-gate","tornado","tower-broadcast","tower-cell","tower-control","tower-observation","tractor","trademark","traffic-cone","traffic-light","traffic-light-go","traffic-light-slow","traffic-light-stop","trailer","train","train-subway","train-subway-tunnel","train-track","train-tram","train-tunnel","transformer-bolt","transgender","transporter","transporter-1","transporter-2","transporter-3","transporter-4","transporter-5","transporter-6","transporter-7","transporter-empty","trash","trash-arrow-up","trash-can","trash-can-arrow-up","trash-can-check","trash-can-clock","trash-can-list","trash-can-plus","trash-can-slash","trash-can-undo","trash-can-xmark","trash-check","trash-clock","trash-list","trash-plus","trash-slash","trash-undo","trash-xmark","treasure-chest","tree","tree-christmas","tree-city","tree-deciduous","tree-decorated","tree-large","tree-palm","trees","triangle","triangle-exclamation","triangle-instrument","triangle-person-digging","tricycle","tricycle-adult","trillium","trophy","trophy-star","trowel","trowel-bricks","truck","truck-arrow-right","truck-bolt","truck-clock","truck-container","truck-container-empty","truck-droplet","truck-fast","truck-field","truck-field-un","truck-fire","truck-flatbed","truck-front","truck-ladder","truck-medical","truck-monster","truck-moving","truck-pickup","truck-plane","truck-plow","truck-ramp","truck-ramp-box","truck-ramp-couch","truck-tow","truck-utensils","trumpet","tty","tty-answer","tugrik-sign","turkey","turkish-lira-sign","turn-down","turn-down-left","turn-down-right","turn-left","turn-left-down","turn-left-up","turn-right","turn-up","turntable","turtle","tv","tv-music","tv-retro","typewriter","u","ufo","ufo-beam","umbrella","umbrella-beach","umbrella-simple","underline","unicorn","uniform-martial-arts","union","universal-access","unlock","unlock-keyhole","up","up-down","up-down-left-right","up-from-bracket","up-from-dotted-line","up-from-line","up-left","up-long","up-right","up-right-and-down-left-from-center","up-right-from-square","up-to-bracket","up-to-dotted-line","up-to-line","upload","usb-drive","user","user-alien","user-astronaut","user-beard-bolt","user-bounty-hunter","user-check","user-chef","user-clock","user-cowboy","user-crown","user-doctor","user-doctor-hair","user-doctor-hair-long","user-doctor-message","user-gear","user-graduate","user-group","user-group-crown","user-group-simple","user-hair","user-hair-buns","user-hair-long","user-hair-mullet","user-headset","user-helmet-safety","user-hoodie","user-injured","user-large","user-large-slash","user-lock","user-magnifying-glass","user-minus","user-music","user-ninja","user-nurse","user-nurse-hair","user-nurse-hair-long","user-pen","user-pilot","user-pilot-tie","user-plus","user-police","user-police-tie","user-robot","user-robot-xmarks","user-secret","user-shakespeare","user-shield","user-slash","user-tag","user-tie","user-tie-hair","user-tie-hair-long","user-unlock","user-visor","user-vneck","user-vneck-hair","user-vneck-hair-long","user-xmark","users","users-between-lines","users-gear","users-line","users-medical","users-rays","users-rectangle","users-slash","users-viewfinder","utensils","utensils-slash","utility-pole","utility-pole-double","v","vacuum","vacuum-robot","value-absolute","van-shuttle","vault","vector-circle","vector-polygon","vector-square","vent-damper","venus","venus-double","venus-mars","vest","vest-patches","vial","vial-circle-check","vial-virus","vials","video","video-arrow-down-left","video-arrow-up-right","video-plus","video-slash","vihara","violin","virus","virus-covid","virus-covid-slash","virus-slash","viruses","voicemail","volcano","volleyball","volume","volume-high","volume-low","volume-off","volume-slash","volume-xmark","vr-cardboard","w","waffle","wagon-covered","walker","walkie-talkie","wallet","wand","wand-magic","wand-magic-sparkles","wand-sparkles","warehouse","warehouse-full","washing-machine","watch","watch-apple","watch-calculator","watch-fitness","watch-smart","water","water-arrow-down","water-arrow-up","water-ladder","watermelon-slice","wave","wave-pulse","wave-sine","wave-square","wave-triangle","waveform","waveform-lines","waves-sine","web-awesome","webhook","weight-hanging","weight-scale","whale","wheat","wheat-awn","wheat-awn-circle-exclamation","wheat-awn-slash","wheat-slash","wheelchair","wheelchair-move","whiskey-glass","whiskey-glass-ice","whistle","wifi","wifi-exclamation","wifi-fair","wifi-slash","wifi-weak","wind","wind-turbine","wind-warning","window","window-flip","window-frame","window-frame-open","window-maximize","window-minimize","window-restore","windsock","wine-bottle","wine-glass","wine-glass-crack","wine-glass-empty","won-sign","worm","wreath","wreath-laurel","wrench","wrench-simple","x","x-ray","xmark","xmark-large","xmark-to-slot","xmarks-lines","y","yen-sign","yin-yang","z"],"sharp-duotone-solid":["0","00","1","2","3","360-degrees","4","5","6","7","8","9","a","abacus","accent-grave","acorn","address-book","address-card","air-conditioner","airplay","alarm-clock","alarm-exclamation","alarm-plus","alarm-snooze","album","album-circle-plus","album-circle-user","album-collection","album-collection-circle-plus","album-collection-circle-user","alicorn","alien","alien-8bit","align-center","align-justify","align-left","align-right","align-slash","alt","amp-guitar","ampersand","anchor","anchor-circle-check","anchor-circle-exclamation","anchor-circle-xmark","anchor-lock","angel","angle","angle-90","angle-down","angle-left","angle-right","angle-up","angles-down","angles-left","angles-right","angles-up","angles-up-down","ankh","ant","apartment","aperture","apostrophe","apple-core","apple-whole","archway","arrow-down","arrow-down-1-9","arrow-down-9-1","arrow-down-a-z","arrow-down-arrow-up","arrow-down-big-small","arrow-down-from-arc","arrow-down-from-bracket","arrow-down-from-dotted-line","arrow-down-from-line","arrow-down-left","arrow-down-left-and-arrow-up-right-to-center","arrow-down-long","arrow-down-right","arrow-down-short-wide","arrow-down-small-big","arrow-down-square-triangle","arrow-down-to-arc","arrow-down-to-bracket","arrow-down-to-dotted-line","arrow-down-to-line","arrow-down-to-square","arrow-down-triangle-square","arrow-down-up-across-line","arrow-down-up-lock","arrow-down-wide-short","arrow-down-z-a","arrow-left","arrow-left-from-arc","arrow-left-from-bracket","arrow-left-from-line","arrow-left-long","arrow-left-long-to-line","arrow-left-to-arc","arrow-left-to-bracket","arrow-left-to-line","arrow-pointer","arrow-progress","arrow-right","arrow-right-arrow-left","arrow-right-from-arc","arrow-right-from-bracket","arrow-right-from-line","arrow-right-long","arrow-right-long-to-line","arrow-right-to-arc","arrow-right-to-bracket","arrow-right-to-city","arrow-right-to-line","arrow-rotate-left","arrow-rotate-right","arrow-trend-down","arrow-trend-up","arrow-turn-down","arrow-turn-down-left","arrow-turn-down-right","arrow-turn-left","arrow-turn-left-down","arrow-turn-left-up","arrow-turn-right","arrow-turn-up","arrow-up","arrow-up-1-9","arrow-up-9-1","arrow-up-a-z","arrow-up-arrow-down","arrow-up-big-small","arrow-up-from-arc","arrow-up-from-bracket","arrow-up-from-dotted-line","arrow-up-from-ground-water","arrow-up-from-line","arrow-up-from-square","arrow-up-from-water-pump","arrow-up-left","arrow-up-left-from-circle","arrow-up-long","arrow-up-right","arrow-up-right-and-arrow-down-left-from-center","arrow-up-right-dots","arrow-up-right-from-square","arrow-up-short-wide","arrow-up-small-big","arrow-up-square-triangle","arrow-up-to-arc","arrow-up-to-bracket","arrow-up-to-dotted-line","arrow-up-to-line","arrow-up-triangle-square","arrow-up-wide-short","arrow-up-z-a","arrows-cross","arrows-down-to-line","arrows-down-to-people","arrows-from-dotted-line","arrows-from-line","arrows-left-right","arrows-left-right-to-line","arrows-maximize","arrows-minimize","arrows-repeat","arrows-repeat-1","arrows-retweet","arrows-rotate","arrows-rotate-reverse","arrows-spin","arrows-split-up-and-left","arrows-to-circle","arrows-to-dot","arrows-to-dotted-line","arrows-to-eye","arrows-to-line","arrows-turn-right","arrows-turn-to-dots","arrows-up-down","arrows-up-down-left-right","arrows-up-to-line","asterisk","at","atom","atom-simple","audio-description","audio-description-slash","austral-sign","avocado","award","award-simple","axe","axe-battle","b","baby","baby-carriage","backpack","backward","backward-fast","backward-step","bacon","bacteria","bacterium","badge","badge-check","badge-dollar","badge-percent","badge-sheriff","badger-honey","badminton","bag-seedling","bag-shopping","bag-shopping-minus","bag-shopping-plus","bagel","bags-shopping","baguette","bahai","baht-sign","ball-pile","balloon","balloons","ballot","ballot-check","ban","ban-bug","ban-parking","ban-smoking","banana","bandage","bangladeshi-taka-sign","banjo","barcode","barcode-read","barcode-scan","bars","bars-filter","bars-progress","bars-sort","bars-staggered","baseball","baseball-bat-ball","basket-shopping","basket-shopping-minus","basket-shopping-plus","basket-shopping-simple","basketball","basketball-hoop","bat","bath","battery-bolt","battery-empty","battery-exclamation","battery-full","battery-half","battery-low","battery-quarter","battery-slash","battery-three-quarters","bed","bed-bunk","bed-empty","bed-front","bed-pulse","bee","beer-mug","beer-mug-empty","bell","bell-concierge","bell-exclamation","bell-on","bell-plus","bell-ring","bell-school","bell-school-slash","bell-slash","bells","bench-tree","bezier-curve","bicycle","billboard","bin-bottles","bin-bottles-recycle","bin-recycle","binary","binary-circle-check","binary-lock","binary-slash","binoculars","biohazard","bird","bitcoin-sign","blanket","blanket-fire","blender","blender-phone","blinds","blinds-open","blinds-raised","block","block-brick","block-brick-fire","block-question","block-quote","blog","blueberries","bluetooth","bold","bolt","bolt-auto","bolt-lightning","bolt-slash","bomb","bone","bone-break","bong","book","book-arrow-right","book-arrow-up","book-atlas","book-bible","book-blank","book-bookmark","book-circle-arrow-right","book-circle-arrow-up","book-copy","book-font","book-heart","book-journal-whills","book-medical","book-open","book-open-cover","book-open-reader","book-quran","book-section","book-skull","book-sparkles","book-tanakh","book-user","bookmark","bookmark-slash","books","books-medical","boombox","boot","boot-heeled","booth-curtain","border-all","border-bottom","border-bottom-right","border-center-h","border-center-v","border-inner","border-left","border-none","border-outer","border-right","border-top","border-top-left","bore-hole","bottle-baby","bottle-droplet","bottle-water","bow-arrow","bowl-chopsticks","bowl-chopsticks-noodles","bowl-food","bowl-hot","bowl-rice","bowl-scoop","bowl-scoops","bowl-soft-serve","bowl-spoon","bowling-ball","bowling-ball-pin","bowling-pins","box","box-archive","box-ballot","box-check","box-circle-check","box-dollar","box-heart","box-open","box-open-full","box-taped","box-tissue","boxes-packing","boxes-stacked","boxing-glove","bracket-curly","bracket-curly-right","bracket-round","bracket-round-right","bracket-square","bracket-square-right","brackets-curly","brackets-round","brackets-square","braille","brain","brain-arrow-curved-right","brain-circuit","brake-warning","brazilian-real-sign","bread-loaf","bread-slice","bread-slice-butter","bridge","bridge-circle-check","bridge-circle-exclamation","bridge-circle-xmark","bridge-lock","bridge-suspension","bridge-water","briefcase","briefcase-arrow-right","briefcase-blank","briefcase-medical","brightness","brightness-low","bring-forward","bring-front","broccoli","broom","broom-ball","broom-wide","browser","browsers","brush","bucket","bug","bug-slash","bugs","building","building-circle-arrow-right","building-circle-check","building-circle-exclamation","building-circle-xmark","building-columns","building-flag","building-lock","building-magnifying-glass","building-memo","building-ngo","building-shield","building-un","building-user","building-wheat","buildings","bulldozer","bullhorn","bullseye","bullseye-arrow","bullseye-pointer","buoy","buoy-mooring","burger","burger-cheese","burger-fries","burger-glass","burger-lettuce","burger-soda","burrito","burst","bus","bus-school","bus-simple","business-time","butter","c","cabin","cabinet-filing","cable-car","cactus","caduceus","cake-candles","cake-slice","calculator","calculator-simple","calendar","calendar-arrow-down","calendar-arrow-up","calendar-check","calendar-circle-exclamation","calendar-circle-minus","calendar-circle-plus","calendar-circle-user","calendar-clock","calendar-day","calendar-days","calendar-exclamation","calendar-heart","calendar-image","calendar-lines","calendar-lines-pen","calendar-minus","calendar-pen","calendar-plus","calendar-range","calendar-star","calendar-users","calendar-week","calendar-xmark","calendars","camcorder","camera","camera-cctv","camera-movie","camera-polaroid","camera-retro","camera-rotate","camera-security","camera-slash","camera-viewfinder","camera-web","camera-web-slash","campfire","campground","can-food","candle-holder","candy","candy-bar","candy-cane","candy-corn","cannabis","cannon","capsules","car","car-battery","car-bolt","car-building","car-bump","car-burst","car-bus","car-circle-bolt","car-garage","car-mirrors","car-on","car-rear","car-side","car-side-bolt","car-tilt","car-tunnel","car-wash","car-wrench","caravan","caravan-simple","card-club","card-diamond","card-heart","card-spade","cards","cards-blank","caret-down","caret-left","caret-right","caret-up","carrot","cars","cart-arrow-down","cart-arrow-up","cart-circle-arrow-down","cart-circle-arrow-up","cart-circle-check","cart-circle-exclamation","cart-circle-plus","cart-circle-xmark","cart-flatbed","cart-flatbed-boxes","cart-flatbed-empty","cart-flatbed-suitcase","cart-minus","cart-plus","cart-shopping","cart-shopping-fast","cart-xmark","cash-register","cassette-betamax","cassette-tape","cassette-vhs","castle","cat","cat-space","cauldron","cedi-sign","cent-sign","certificate","chair","chair-office","chalkboard","chalkboard-user","champagne-glass","champagne-glasses","charging-station","chart-area","chart-bar","chart-bullet","chart-candlestick","chart-column","chart-gantt","chart-kanban","chart-line","chart-line-down","chart-line-up","chart-line-up-down","chart-mixed","chart-mixed-up-circle-currency","chart-mixed-up-circle-dollar","chart-network","chart-pie","chart-pie-simple","chart-pie-simple-circle-currency","chart-pie-simple-circle-dollar","chart-pyramid","chart-radar","chart-scatter","chart-scatter-3d","chart-scatter-bubble","chart-simple","chart-simple-horizontal","chart-tree-map","chart-user","chart-waterfall","check","check-double","check-to-slot","cheese","cheese-swiss","cherries","chess","chess-bishop","chess-bishop-piece","chess-board","chess-clock","chess-clock-flip","chess-king","chess-king-piece","chess-knight","chess-knight-piece","chess-pawn","chess-pawn-piece","chess-queen","chess-queen-piece","chess-rook","chess-rook-piece","chestnut","chevron-down","chevron-left","chevron-right","chevron-up","chevrons-down","chevrons-left","chevrons-right","chevrons-up","chf-sign","child","child-combatant","child-dress","child-reaching","children","chimney","chopsticks","church","circle","circle-0","circle-1","circle-2","circle-3","circle-4","circle-5","circle-6","circle-7","circle-8","circle-9","circle-a","circle-ampersand","circle-arrow-down","circle-arrow-down-left","circle-arrow-down-right","circle-arrow-left","circle-arrow-right","circle-arrow-up","circle-arrow-up-left","circle-arrow-up-right","circle-b","circle-bolt","circle-book-open","circle-bookmark","circle-c","circle-calendar","circle-camera","circle-caret-down","circle-caret-left","circle-caret-right","circle-caret-up","circle-check","circle-chevron-down","circle-chevron-left","circle-chevron-right","circle-chevron-up","circle-d","circle-dashed","circle-divide","circle-dollar","circle-dollar-to-slot","circle-dot","circle-down","circle-down-left","circle-down-right","circle-e","circle-ellipsis","circle-ellipsis-vertical","circle-envelope","circle-euro","circle-exclamation","circle-exclamation-check","circle-f","circle-g","circle-gf","circle-h","circle-half","circle-half-stroke","circle-heart","circle-i","circle-info","circle-j","circle-k","circle-l","circle-left","circle-location-arrow","circle-m","circle-microphone","circle-microphone-lines","circle-minus","circle-n","circle-nodes","circle-notch","circle-o","circle-p","circle-parking","circle-pause","circle-phone","circle-phone-flip","circle-phone-hangup","circle-play","circle-plus","circle-q","circle-quarter","circle-quarter-stroke","circle-quarters","circle-question","circle-r","circle-radiation","circle-right","circle-s","circle-small","circle-sort","circle-sort-down","circle-sort-up","circle-star","circle-sterling","circle-stop","circle-t","circle-three-quarters","circle-three-quarters-stroke","circle-trash","circle-u","circle-up","circle-up-left","circle-up-right","circle-user","circle-v","circle-video","circle-w","circle-waveform-lines","circle-wifi","circle-wifi-circle-wifi","circle-x","circle-xmark","circle-y","circle-yen","circle-z","circles-overlap","citrus","citrus-slice","city","clapperboard","clapperboard-play","clarinet","claw-marks","clipboard","clipboard-check","clipboard-list","clipboard-list-check","clipboard-medical","clipboard-prescription","clipboard-question","clipboard-user","clock","clock-desk","clock-eight","clock-eight-thirty","clock-eleven","clock-eleven-thirty","clock-five","clock-five-thirty","clock-four-thirty","clock-nine","clock-nine-thirty","clock-one","clock-one-thirty","clock-rotate-left","clock-seven","clock-seven-thirty","clock-six","clock-six-thirty","clock-ten","clock-ten-thirty","clock-three","clock-three-thirty","clock-twelve","clock-twelve-thirty","clock-two","clock-two-thirty","clone","closed-captioning","closed-captioning-slash","clothes-hanger","cloud","cloud-arrow-down","cloud-arrow-up","cloud-binary","cloud-bolt","cloud-bolt-moon","cloud-bolt-sun","cloud-check","cloud-drizzle","cloud-exclamation","cloud-fog","cloud-hail","cloud-hail-mixed","cloud-meatball","cloud-minus","cloud-moon","cloud-moon-rain","cloud-music","cloud-plus","cloud-question","cloud-rain","cloud-rainbow","cloud-showers","cloud-showers-heavy","cloud-showers-water","cloud-slash","cloud-sleet","cloud-snow","cloud-sun","cloud-sun-rain","cloud-word","cloud-xmark","clouds","clouds-moon","clouds-sun","clover","club","coconut","code","code-branch","code-commit","code-compare","code-fork","code-merge","code-pull-request","code-pull-request-closed","code-pull-request-draft","code-simple","coffee-bean","coffee-beans","coffee-pot","coffin","coffin-cross","coin","coin-blank","coin-front","coin-vertical","coins","colon","colon-sign","columns-3","comet","comma","command","comment","comment-arrow-down","comment-arrow-up","comment-arrow-up-right","comment-captions","comment-check","comment-code","comment-dollar","comment-dots","comment-exclamation","comment-heart","comment-image","comment-lines","comment-medical","comment-middle","comment-middle-top","comment-minus","comment-music","comment-pen","comment-plus","comment-question","comment-quote","comment-slash","comment-smile","comment-sms","comment-text","comment-xmark","comments","comments-dollar","comments-question","comments-question-check","compact-disc","compass","compass-drafting","compass-slash","compress","compress-wide","computer","computer-classic","computer-mouse","computer-mouse-scrollwheel","computer-speaker","container-storage","conveyor-belt","conveyor-belt-arm","conveyor-belt-boxes","conveyor-belt-empty","cookie","cookie-bite","copy","copyright","corn","corner","couch","court-sport","cow","cowbell","cowbell-circle-plus","crab","crate-apple","crate-empty","credit-card","credit-card-blank","credit-card-front","cricket-bat-ball","croissant","crop","crop-simple","cross","crosshairs","crosshairs-simple","crow","crown","crutch","crutches","cruzeiro-sign","crystal-ball","cube","cubes","cubes-stacked","cucumber","cup-straw","cup-straw-swoosh","cup-togo","cupcake","curling-stone","custard","d","dagger","dash","database","deer","deer-rudolph","delete-left","delete-right","democrat","desktop","desktop-arrow-down","dharmachakra","diagram-cells","diagram-lean-canvas","diagram-nested","diagram-next","diagram-predecessor","diagram-previous","diagram-project","diagram-sankey","diagram-subtask","diagram-successor","diagram-venn","dial","dial-high","dial-low","dial-max","dial-med","dial-med-low","dial-min","dial-off","diamond","diamond-exclamation","diamond-half","diamond-half-stroke","diamond-turn-right","diamonds-4","dice","dice-d10","dice-d12","dice-d20","dice-d4","dice-d6","dice-d8","dice-five","dice-four","dice-one","dice-six","dice-three","dice-two","dinosaur","diploma","disc-drive","disease","display","display-arrow-down","display-chart-up","display-chart-up-circle-currency","display-chart-up-circle-dollar","display-code","display-medical","display-slash","distribute-spacing-horizontal","distribute-spacing-vertical","ditto","divide","dna","do-not-enter","dog","dog-leashed","dollar-sign","dolly","dolly-empty","dolphin","dong-sign","donut","door-closed","door-open","dove","down","down-from-bracket","down-from-dotted-line","down-from-line","down-left","down-left-and-up-right-to-center","down-long","down-right","down-to-bracket","down-to-dotted-line","down-to-line","download","dragon","draw-circle","draw-polygon","draw-square","dreidel","drone","drone-front","droplet","droplet-degree","droplet-percent","droplet-slash","drum","drum-steelpan","drumstick","drumstick-bite","dryer","dryer-heat","duck","dumbbell","dumpster","dumpster-fire","dungeon","e","ear","ear-deaf","ear-listen","ear-muffs","earth-africa","earth-americas","earth-asia","earth-europe","earth-oceania","eclipse","egg","egg-fried","eggplant","eject","elephant","elevator","ellipsis","ellipsis-stroke","ellipsis-stroke-vertical","ellipsis-vertical","empty-set","engine","engine-warning","envelope","envelope-circle-check","envelope-dot","envelope-open","envelope-open-dollar","envelope-open-text","envelopes","envelopes-bulk","equals","eraser","escalator","ethernet","euro-sign","excavator","exclamation","expand","expand-wide","explosion","eye","eye-dropper","eye-dropper-full","eye-dropper-half","eye-evil","eye-low-vision","eye-slash","eyes","f","face-angry","face-angry-horns","face-anguished","face-anxious-sweat","face-astonished","face-awesome","face-beam-hand-over-mouth","face-clouds","face-confounded","face-confused","face-cowboy-hat","face-diagonal-mouth","face-disappointed","face-disguise","face-dizzy","face-dotted","face-downcast-sweat","face-drooling","face-exhaling","face-explode","face-expressionless","face-eyes-xmarks","face-fearful","face-flushed","face-frown","face-frown-open","face-frown-slight","face-glasses","face-grimace","face-grin","face-grin-beam","face-grin-beam-sweat","face-grin-hearts","face-grin-squint","face-grin-squint-tears","face-grin-stars","face-grin-tears","face-grin-tongue","face-grin-tongue-squint","face-grin-tongue-wink","face-grin-wide","face-grin-wink","face-hand-over-mouth","face-hand-peeking","face-hand-yawn","face-head-bandage","face-holding-back-tears","face-hushed","face-icicles","face-kiss","face-kiss-beam","face-kiss-closed-eyes","face-kiss-wink-heart","face-laugh","face-laugh-beam","face-laugh-squint","face-laugh-wink","face-lying","face-mask","face-meh","face-meh-blank","face-melting","face-monocle","face-nauseated","face-nose-steam","face-party","face-pensive","face-persevering","face-pleading","face-pouting","face-raised-eyebrow","face-relieved","face-rolling-eyes","face-sad-cry","face-sad-sweat","face-sad-tear","face-saluting","face-scream","face-shush","face-sleeping","face-sleepy","face-smile","face-smile-beam","face-smile-halo","face-smile-hearts","face-smile-horns","face-smile-plus","face-smile-relaxed","face-smile-tear","face-smile-tongue","face-smile-upside-down","face-smile-wink","face-smiling-hands","face-smirking","face-spiral-eyes","face-sunglasses","face-surprise","face-swear","face-thermometer","face-thinking","face-tired","face-tissue","face-tongue-money","face-tongue-sweat","face-unamused","face-viewfinder","face-vomit","face-weary","face-woozy","face-worried","face-zany","face-zipper","falafel","family","family-dress","family-pants","fan","fan-table","farm","faucet","faucet-drip","fax","feather","feather-pointed","fence","ferris-wheel","ferry","field-hockey-stick-ball","file","file-arrow-down","file-arrow-up","file-audio","file-binary","file-cad","file-certificate","file-chart-column","file-chart-pie","file-check","file-circle-check","file-circle-exclamation","file-circle-info","file-circle-minus","file-circle-plus","file-circle-question","file-circle-xmark","file-code","file-contract","file-csv","file-dashed-line","file-doc","file-eps","file-excel","file-exclamation","file-export","file-gif","file-heart","file-image","file-import","file-invoice","file-invoice-dollar","file-jpg","file-lines","file-lock","file-magnifying-glass","file-medical","file-minus","file-mov","file-mp3","file-mp4","file-music","file-pdf","file-pen","file-plus","file-plus-minus","file-png","file-powerpoint","file-ppt","file-prescription","file-shield","file-signature","file-slash","file-spreadsheet","file-svg","file-user","file-vector","file-video","file-waveform","file-word","file-xls","file-xmark","file-xml","file-zip","file-zipper","files","files-medical","fill","fill-drip","film","film-canister","film-simple","film-slash","films","filter","filter-circle-dollar","filter-circle-xmark","filter-list","filter-slash","filters","fingerprint","fire","fire-burner","fire-extinguisher","fire-flame","fire-flame-curved","fire-flame-simple","fire-hydrant","fire-smoke","fireplace","fish","fish-bones","fish-cooked","fish-fins","fishing-rod","flag","flag-checkered","flag-pennant","flag-swallowtail","flag-usa","flashlight","flask","flask-gear","flask-round-poison","flask-round-potion","flask-vial","flatbread","flatbread-stuffed","floppy-disk","floppy-disk-circle-arrow-right","floppy-disk-circle-xmark","floppy-disk-pen","floppy-disks","florin-sign","flower","flower-daffodil","flower-tulip","flute","flux-capacitor","flying-disc","folder","folder-arrow-down","folder-arrow-up","folder-bookmark","folder-check","folder-closed","folder-gear","folder-grid","folder-heart","folder-image","folder-magnifying-glass","folder-medical","folder-minus","folder-music","folder-open","folder-plus","folder-tree","folder-user","folder-xmark","folders","fondue-pot","font","font-awesome","font-case","football","football-helmet","fork","fork-knife","forklift","fort","forward","forward-fast","forward-step","frame","franc-sign","french-fries","frog","function","futbol","g","galaxy","gallery-thumbnails","game-board","game-board-simple","game-console-handheld","game-console-handheld-crank","gamepad","gamepad-modern","garage","garage-car","garage-open","garlic","gas-pump","gas-pump-slash","gauge","gauge-circle-bolt","gauge-circle-minus","gauge-circle-plus","gauge-high","gauge-low","gauge-max","gauge-min","gauge-simple","gauge-simple-high","gauge-simple-low","gauge-simple-max","gauge-simple-min","gavel","gear","gear-code","gear-complex","gear-complex-code","gears","gem","genderless","ghost","gif","gift","gift-card","gifts","gingerbread-man","glass","glass-citrus","glass-empty","glass-half","glass-water","glass-water-droplet","glasses","glasses-round","globe","globe-pointer","globe-snow","globe-stand","globe-wifi","goal-net","golf-ball-tee","golf-club","golf-flag-hole","gopuram","graduation-cap","gramophone","grapes","grate","grate-droplet","greater-than","greater-than-equal","grid","grid-2","grid-2-plus","grid-4","grid-5","grid-dividers","grid-horizontal","grid-round","grid-round-2","grid-round-2-plus","grid-round-4","grid-round-5","grill","grill-fire","grill-hot","grip","grip-dots","grip-dots-vertical","grip-lines","grip-lines-vertical","grip-vertical","group-arrows-rotate","guarani-sign","guitar","guitar-electric","guitars","gun","gun-slash","gun-squirt","h","h1","h2","h3","h4","h5","h6","hammer","hammer-brush","hammer-crash","hammer-war","hamsa","hand","hand-back-fist","hand-back-point-down","hand-back-point-left","hand-back-point-ribbon","hand-back-point-right","hand-back-point-up","hand-dots","hand-fingers-crossed","hand-fist","hand-heart","hand-holding","hand-holding-box","hand-holding-circle-dollar","hand-holding-dollar","hand-holding-droplet","hand-holding-hand","hand-holding-heart","hand-holding-magic","hand-holding-medical","hand-holding-seedling","hand-holding-skull","hand-horns","hand-lizard","hand-love","hand-middle-finger","hand-peace","hand-point-down","hand-point-left","hand-point-ribbon","hand-point-right","hand-point-up","hand-pointer","hand-scissors","hand-sparkles","hand-spock","hand-wave","handcuffs","hands","hands-asl-interpreting","hands-bound","hands-bubbles","hands-clapping","hands-holding","hands-holding-child","hands-holding-circle","hands-holding-diamond","hands-holding-dollar","hands-holding-heart","hands-praying","handshake","handshake-angle","handshake-simple","handshake-simple-slash","handshake-slash","hanukiah","hard-drive","hashtag","hashtag-lock","hat-beach","hat-chef","hat-cowboy","hat-cowboy-side","hat-santa","hat-winter","hat-witch","hat-wizard","head-side","head-side-brain","head-side-cough","head-side-cough-slash","head-side-gear","head-side-goggles","head-side-headphones","head-side-heart","head-side-mask","head-side-medical","head-side-virus","heading","headphones","headphones-simple","headset","heart","heart-circle-bolt","heart-circle-check","heart-circle-exclamation","heart-circle-minus","heart-circle-plus","heart-circle-xmark","heart-crack","heart-half","heart-half-stroke","heart-pulse","heat","helicopter","helicopter-symbol","helmet-battle","helmet-safety","helmet-un","hexagon","hexagon-check","hexagon-divide","hexagon-exclamation","hexagon-image","hexagon-minus","hexagon-plus","hexagon-vertical-nft","hexagon-vertical-nft-slanted","hexagon-xmark","high-definition","highlighter","highlighter-line","hill-avalanche","hill-rockslide","hippo","hockey-mask","hockey-puck","hockey-stick-puck","hockey-sticks","holly-berry","honey-pot","hood-cloak","horizontal-rule","horse","horse-head","horse-saddle","hose","hose-reel","hospital","hospital-user","hospitals","hot-tub-person","hotdog","hotel","hourglass","hourglass-clock","hourglass-end","hourglass-half","hourglass-start","house","house-blank","house-building","house-chimney","house-chimney-blank","house-chimney-crack","house-chimney-heart","house-chimney-medical","house-chimney-user","house-chimney-window","house-circle-check","house-circle-exclamation","house-circle-xmark","house-crack","house-day","house-fire","house-flag","house-flood-water","house-flood-water-circle-arrow-right","house-heart","house-laptop","house-lock","house-medical","house-medical-circle-check","house-medical-circle-exclamation","house-medical-circle-xmark","house-medical-flag","house-night","house-person-leave","house-person-return","house-signal","house-tree","house-tsunami","house-turret","house-user","house-water","house-window","hryvnia-sign","hundred-points","hurricane","hydra","hyphen","i","i-cursor","ice-cream","ice-skate","icicles","icons","id-badge","id-card","id-card-clip","igloo","image","image-landscape","image-polaroid","image-polaroid-user","image-portrait","image-slash","image-user","images","images-user","inbox","inbox-full","inbox-in","inbox-out","inboxes","indent","indian-rupee-sign","industry","industry-windows","infinity","info","inhaler","input-numeric","input-pipe","input-text","integral","interrobang","intersection","island-tropical","italic","j","jack-o-lantern","jar","jar-wheat","jedi","jet-fighter","jet-fighter-up","joint","joystick","jug","jug-bottle","jug-detergent","k","kaaba","kazoo","kerning","key","key-skeleton","key-skeleton-left-right","keyboard","keyboard-brightness","keyboard-brightness-low","keyboard-down","keyboard-left","keynote","khanda","kidneys","kip-sign","kit-medical","kitchen-set","kite","kiwi-bird","kiwi-fruit","knife","knife-kitchen","l","lacrosse-stick","lacrosse-stick-ball","lambda","lamp","lamp-desk","lamp-floor","lamp-street","land-mine-on","landmark","landmark-dome","landmark-flag","landmark-magnifying-glass","language","laptop","laptop-arrow-down","laptop-binary","laptop-code","laptop-file","laptop-medical","laptop-mobile","laptop-slash","lari-sign","lasso","lasso-sparkles","layer-group","layer-minus","layer-plus","leaf","leaf-heart","leaf-maple","leaf-oak","leafy-green","left","left-from-bracket","left-from-line","left-long","left-long-to-line","left-right","left-to-bracket","left-to-line","lemon","less-than","less-than-equal","life-ring","light-ceiling","light-emergency","light-emergency-on","light-switch","light-switch-off","light-switch-on","lightbulb","lightbulb-cfl","lightbulb-cfl-on","lightbulb-dollar","lightbulb-exclamation","lightbulb-exclamation-on","lightbulb-gear","lightbulb-message","lightbulb-on","lightbulb-slash","lighthouse","lights-holiday","line-columns","line-height","lines-leaning","link","link-horizontal","link-horizontal-slash","link-simple","link-simple-slash","link-slash","lips","lira-sign","list","list-check","list-dropdown","list-music","list-ol","list-radio","list-timeline","list-tree","list-ul","litecoin-sign","loader","lobster","location-arrow","location-arrow-up","location-check","location-crosshairs","location-crosshairs-slash","location-dot","location-dot-slash","location-exclamation","location-minus","location-pen","location-pin","location-pin-lock","location-pin-slash","location-plus","location-question","location-smile","location-xmark","lock","lock-a","lock-hashtag","lock-keyhole","lock-keyhole-open","lock-open","locust","lollipop","loveseat","luchador-mask","lungs","lungs-virus","m","mace","magnet","magnifying-glass","magnifying-glass-arrow-right","magnifying-glass-arrows-rotate","magnifying-glass-chart","magnifying-glass-dollar","magnifying-glass-location","magnifying-glass-minus","magnifying-glass-music","magnifying-glass-play","magnifying-glass-plus","magnifying-glass-waveform","mailbox","mailbox-flag-up","manat-sign","mandolin","mango","manhole","map","map-location","map-location-dot","map-pin","marker","mars","mars-and-venus","mars-and-venus-burst","mars-double","mars-stroke","mars-stroke-right","mars-stroke-up","martini-glass","martini-glass-citrus","martini-glass-empty","mask","mask-face","mask-snorkel","mask-ventilator","masks-theater","mattress-pillow","maximize","meat","medal","megaphone","melon","melon-slice","memo","memo-circle-check","memo-circle-info","memo-pad","memory","menorah","mercury","merge","message","message-arrow-down","message-arrow-up","message-arrow-up-right","message-bot","message-captions","message-check","message-code","message-dollar","message-dots","message-exclamation","message-heart","message-image","message-lines","message-medical","message-middle","message-middle-top","message-minus","message-music","message-pen","message-plus","message-question","message-quote","message-slash","message-smile","message-sms","message-text","message-xmark","messages","messages-dollar","messages-question","meteor","meter","meter-bolt","meter-droplet","meter-fire","microchip","microchip-ai","microphone","microphone-lines","microphone-lines-slash","microphone-slash","microphone-stand","microscope","microwave","mill-sign","minimize","minus","mistletoe","mitten","mobile","mobile-button","mobile-notch","mobile-retro","mobile-screen","mobile-screen-button","mobile-signal","mobile-signal-out","money-bill","money-bill-1","money-bill-1-wave","money-bill-simple","money-bill-simple-wave","money-bill-transfer","money-bill-trend-up","money-bill-wave","money-bill-wheat","money-bills","money-bills-simple","money-check","money-check-dollar","money-check-dollar-pen","money-check-pen","money-from-bracket","money-simple-from-bracket","monitor-waveform","monkey","monument","moon","moon-cloud","moon-over-sun","moon-stars","moped","mortar-pestle","mosque","mosquito","mosquito-net","motorcycle","mound","mountain","mountain-city","mountain-sun","mountains","mouse-field","mp3-player","mug","mug-hot","mug-marshmallows","mug-saucer","mug-tea","mug-tea-saucer","mushroom","music","music-magnifying-glass","music-note","music-note-slash","music-slash","mustache","n","naira-sign","narwhal","nesting-dolls","network-wired","neuter","newspaper","nfc","nfc-lock","nfc-magnifying-glass","nfc-pen","nfc-signal","nfc-slash","nfc-symbol","nfc-trash","nose","not-equal","notdef","note","note-medical","note-sticky","notebook","notes","notes-medical","o","object-exclude","object-group","object-intersect","object-subtract","object-ungroup","object-union","objects-align-bottom","objects-align-center-horizontal","objects-align-center-vertical","objects-align-left","objects-align-right","objects-align-top","objects-column","octagon","octagon-check","octagon-divide","octagon-exclamation","octagon-minus","octagon-plus","octagon-xmark","octopus","oil-can","oil-can-drip","oil-temperature","oil-well","olive","olive-branch","om","omega","onion","option","ornament","otter","outdent","outlet","oven","overline","p","page","page-caret-down","page-caret-up","pager","paint-roller","paintbrush","paintbrush-fine","paintbrush-pencil","palette","pallet","pallet-box","pallet-boxes","pan-food","pan-frying","pancakes","panel-ews","panel-fire","panorama","paper-plane","paper-plane-top","paperclip","paperclip-vertical","parachute-box","paragraph","paragraph-left","party-bell","party-horn","passport","paste","pause","paw","paw-claws","paw-simple","peace","peach","peanut","peanuts","peapod","pear","pedestal","pegasus","pen","pen-circle","pen-clip","pen-clip-slash","pen-fancy","pen-fancy-slash","pen-field","pen-line","pen-nib","pen-nib-slash","pen-paintbrush","pen-ruler","pen-slash","pen-swirl","pen-to-square","pencil","pencil-mechanical","pencil-slash","people","people-arrows","people-carry-box","people-dress","people-dress-simple","people-group","people-line","people-pants","people-pants-simple","people-pulling","people-robbery","people-roof","people-simple","pepper","pepper-hot","percent","period","person","person-arrow-down-to-line","person-arrow-up-from-line","person-biking","person-biking-mountain","person-booth","person-breastfeeding","person-burst","person-cane","person-carry-box","person-chalkboard","person-circle-check","person-circle-exclamation","person-circle-minus","person-circle-plus","person-circle-question","person-circle-xmark","person-digging","person-dolly","person-dolly-empty","person-dots-from-line","person-dress","person-dress-burst","person-dress-fairy","person-dress-simple","person-drowning","person-fairy","person-falling","person-falling-burst","person-from-portal","person-half-dress","person-harassing","person-hiking","person-military-pointing","person-military-rifle","person-military-to-person","person-pinball","person-praying","person-pregnant","person-rays","person-rifle","person-running","person-running-fast","person-seat","person-seat-reclined","person-shelter","person-sign","person-simple","person-skating","person-ski-jumping","person-ski-lift","person-skiing","person-skiing-nordic","person-sledding","person-snowboarding","person-snowmobiling","person-swimming","person-through-window","person-to-door","person-to-portal","person-walking","person-walking-arrow-loop-left","person-walking-arrow-right","person-walking-dashed-line-arrow-right","person-walking-luggage","person-walking-with-cane","peseta-sign","peso-sign","phone","phone-arrow-down-left","phone-arrow-right","phone-arrow-up-right","phone-flip","phone-hangup","phone-intercom","phone-missed","phone-office","phone-plus","phone-rotary","phone-slash","phone-volume","phone-xmark","photo-film","photo-film-music","pi","piano","piano-keyboard","pickaxe","pickleball","pie","pig","piggy-bank","pills","pinata","pinball","pineapple","pipe","pipe-circle-check","pipe-collar","pipe-section","pipe-smoking","pipe-valve","pizza","pizza-slice","place-of-worship","plane","plane-arrival","plane-circle-check","plane-circle-exclamation","plane-circle-xmark","plane-departure","plane-engines","plane-lock","plane-prop","plane-slash","plane-tail","plane-up","plane-up-slash","planet-moon","planet-ringed","plant-wilt","plate-utensils","plate-wheat","play","play-pause","plug","plug-circle-bolt","plug-circle-check","plug-circle-exclamation","plug-circle-minus","plug-circle-plus","plug-circle-xmark","plus","plus-large","plus-minus","podcast","podium","podium-star","police-box","poll-people","pompebled","poo","poo-storm","pool-8-ball","poop","popcorn","popsicle","pot-food","potato","power-off","prescription","prescription-bottle","prescription-bottle-medical","prescription-bottle-pill","presentation-screen","pretzel","print","print-magnifying-glass","print-slash","projector","pump","pump-medical","pump-soap","pumpkin","puzzle","puzzle-piece","puzzle-piece-simple","q","qrcode","question","quote-left","quote-right","quotes","r","rabbit","rabbit-running","raccoon","racquet","radar","radiation","radio","radio-tuner","rainbow","raindrops","ram","ramp-loading","ranking-star","raygun","receipt","record-vinyl","rectangle","rectangle-ad","rectangle-barcode","rectangle-code","rectangle-history","rectangle-history-circle-plus","rectangle-history-circle-user","rectangle-list","rectangle-pro","rectangle-terminal","rectangle-vertical","rectangle-vertical-history","rectangle-wide","rectangle-xmark","rectangles-mixed","recycle","reel","reflect-both","reflect-horizontal","reflect-vertical","refrigerator","registered","repeat","repeat-1","reply","reply-all","reply-clock","republican","restroom","restroom-simple","retweet","rhombus","ribbon","right","right-from-bracket","right-from-line","right-left","right-left-large","right-long","right-long-to-line","right-to-bracket","right-to-line","ring","ring-diamond","rings-wedding","road","road-barrier","road-bridge","road-circle-check","road-circle-exclamation","road-circle-xmark","road-lock","road-spikes","robot","robot-astromech","rocket","rocket-launch","roller-coaster","rotate","rotate-exclamation","rotate-left","rotate-reverse","rotate-right","route","route-highway","route-interstate","router","rss","ruble-sign","rug","rugby-ball","ruler","ruler-combined","ruler-horizontal","ruler-triangle","ruler-vertical","rupee-sign","rupiah-sign","rv","s","sack","sack-dollar","sack-xmark","sailboat","salad","salt-shaker","sandwich","satellite","satellite-dish","sausage","saxophone","saxophone-fire","scale-balanced","scale-unbalanced","scale-unbalanced-flip","scalpel","scalpel-line-dashed","scanner-gun","scanner-image","scanner-keyboard","scanner-touchscreen","scarecrow","scarf","school","school-circle-check","school-circle-exclamation","school-circle-xmark","school-flag","school-lock","scissors","screen-users","screencast","screwdriver","screwdriver-wrench","scribble","scroll","scroll-old","scroll-torah","scrubber","scythe","sd-card","sd-cards","seal","seal-exclamation","seal-question","seat-airline","section","seedling","semicolon","send-back","send-backward","sensor","sensor-cloud","sensor-fire","sensor-on","sensor-triangle-exclamation","server","shapes","share","share-all","share-from-square","share-nodes","sheep","sheet-plastic","shekel-sign","shelves","shelves-empty","shield","shield-cat","shield-check","shield-cross","shield-dog","shield-exclamation","shield-halved","shield-heart","shield-keyhole","shield-minus","shield-plus","shield-quartered","shield-slash","shield-virus","shield-xmark","ship","shirt","shirt-long-sleeve","shirt-running","shirt-tank-top","shish-kebab","shoe-prints","shop","shop-lock","shop-slash","shovel","shovel-snow","shower","shower-down","shredder","shrimp","shuffle","shutters","shuttle-space","shuttlecock","sickle","sidebar","sidebar-flip","sigma","sign-hanging","sign-post","sign-posts","sign-posts-wrench","signal","signal-bars","signal-bars-fair","signal-bars-good","signal-bars-slash","signal-bars-weak","signal-fair","signal-good","signal-slash","signal-stream","signal-stream-slash","signal-strong","signal-weak","signature","signature-lock","signature-slash","signs-post","sim-card","sim-cards","sink","siren","siren-on","sitemap","skeleton","skeleton-ribs","ski-boot","ski-boot-ski","skull","skull-cow","skull-crossbones","slash","slash-back","slash-forward","sleigh","slider","sliders","sliders-simple","sliders-up","slot-machine","smog","smoke","smoking","snake","snooze","snow-blowing","snowflake","snowflake-droplets","snowflakes","snowman","snowman-head","snowplow","soap","socks","soft-serve","solar-panel","solar-system","sort","sort-down","sort-up","spa","space-station-moon","space-station-moon-construction","spade","spaghetti-monster-flying","sparkle","sparkles","speaker","speakers","spell-check","spider","spider-black-widow","spider-web","spinner","spinner-scale","spinner-third","split","splotch","spoon","sportsball","spray-can","spray-can-sparkles","sprinkler","sprinkler-ceiling","square","square-0","square-1","square-2","square-3","square-4","square-5","square-6","square-7","square-8","square-9","square-a","square-a-lock","square-ampersand","square-arrow-down","square-arrow-down-left","square-arrow-down-right","square-arrow-left","square-arrow-right","square-arrow-up","square-arrow-up-left","square-arrow-up-right","square-b","square-bolt","square-c","square-caret-down","square-caret-left","square-caret-right","square-caret-up","square-check","square-chevron-down","square-chevron-left","square-chevron-right","square-chevron-up","square-code","square-d","square-dashed","square-dashed-circle-plus","square-divide","square-dollar","square-down","square-down-left","square-down-right","square-e","square-ellipsis","square-ellipsis-vertical","square-envelope","square-exclamation","square-f","square-fragile","square-full","square-g","square-h","square-heart","square-i","square-info","square-j","square-k","square-kanban","square-l","square-left","square-list","square-m","square-minus","square-n","square-nfi","square-o","square-p","square-parking","square-parking-slash","square-pen","square-person-confined","square-phone","square-phone-flip","square-phone-hangup","square-plus","square-poll-horizontal","square-poll-vertical","square-q","square-quarters","square-question","square-quote","square-r","square-right","square-ring","square-root","square-root-variable","square-rss","square-s","square-share-nodes","square-sliders","square-sliders-vertical","square-small","square-star","square-t","square-terminal","square-this-way-up","square-u","square-up","square-up-left","square-up-right","square-user","square-v","square-virus","square-w","square-x","square-xmark","square-y","square-z","squid","squirrel","staff","staff-snake","stairs","stamp","standard-definition","stapler","star","star-and-crescent","star-christmas","star-exclamation","star-half","star-half-stroke","star-of-david","star-of-life","star-sharp","star-sharp-half","star-sharp-half-stroke","star-shooting","starfighter","starfighter-twin-ion-engine","starfighter-twin-ion-engine-advanced","stars","starship","starship-freighter","steak","steering-wheel","sterling-sign","stethoscope","stocking","stomach","stop","stopwatch","stopwatch-20","store","store-lock","store-slash","strawberry","street-view","stretcher","strikethrough","stroopwafel","subscript","subtitles","subtitles-slash","suitcase","suitcase-medical","suitcase-rolling","sun","sun-bright","sun-cloud","sun-dust","sun-haze","sun-plant-wilt","sunglasses","sunrise","sunset","superscript","sushi","sushi-roll","swap","swap-arrows","swatchbook","sword","sword-laser","sword-laser-alt","swords","swords-laser","symbols","synagogue","syringe","t","t-rex","table","table-cells","table-cells-column-lock","table-cells-column-unlock","table-cells-large","table-cells-lock","table-cells-row-lock","table-cells-row-unlock","table-cells-unlock","table-columns","table-layout","table-list","table-picnic","table-pivot","table-rows","table-tennis-paddle-ball","table-tree","tablet","tablet-button","tablet-rugged","tablet-screen","tablet-screen-button","tablets","tachograph-digital","taco","tag","tags","tally","tally-1","tally-2","tally-3","tally-4","tamale","tank-water","tape","tarp","tarp-droplet","taxi","taxi-bus","teddy-bear","teeth","teeth-open","telescope","temperature-arrow-down","temperature-arrow-up","temperature-empty","temperature-full","temperature-half","temperature-high","temperature-list","temperature-low","temperature-quarter","temperature-snow","temperature-sun","temperature-three-quarters","tenge-sign","tennis-ball","tent","tent-arrow-down-to-line","tent-arrow-left-right","tent-arrow-turn-left","tent-arrows-down","tent-double-peak","tents","terminal","text","text-height","text-size","text-slash","text-width","thermometer","theta","thought-bubble","thumbs-down","thumbs-up","thumbtack","thumbtack-slash","tick","ticket","ticket-airline","ticket-perforated","ticket-simple","tickets","tickets-airline","tickets-perforated","tickets-simple","tilde","timeline","timeline-arrow","timer","tire","tire-flat","tire-pressure-warning","tire-rugged","toggle-large-off","toggle-large-on","toggle-off","toggle-on","toilet","toilet-paper","toilet-paper-blank","toilet-paper-blank-under","toilet-paper-check","toilet-paper-slash","toilet-paper-under","toilet-paper-under-slash","toilet-paper-xmark","toilet-portable","toilets-portable","tomato","tombstone","tombstone-blank","toolbox","tooth","toothbrush","torii-gate","tornado","tower-broadcast","tower-cell","tower-control","tower-observation","tractor","trademark","traffic-cone","traffic-light","traffic-light-go","traffic-light-slow","traffic-light-stop","trailer","train","train-subway","train-subway-tunnel","train-track","train-tram","train-tunnel","transformer-bolt","transgender","transporter","transporter-1","transporter-2","transporter-3","transporter-4","transporter-5","transporter-6","transporter-7","transporter-empty","trash","trash-arrow-up","trash-can","trash-can-arrow-up","trash-can-check","trash-can-clock","trash-can-list","trash-can-plus","trash-can-slash","trash-can-undo","trash-can-xmark","trash-check","trash-clock","trash-list","trash-plus","trash-slash","trash-undo","trash-xmark","treasure-chest","tree","tree-christmas","tree-city","tree-deciduous","tree-decorated","tree-large","tree-palm","trees","triangle","triangle-exclamation","triangle-instrument","triangle-person-digging","tricycle","tricycle-adult","trillium","trophy","trophy-star","trowel","trowel-bricks","truck","truck-arrow-right","truck-bolt","truck-clock","truck-container","truck-container-empty","truck-droplet","truck-fast","truck-field","truck-field-un","truck-fire","truck-flatbed","truck-front","truck-ladder","truck-medical","truck-monster","truck-moving","truck-pickup","truck-plane","truck-plow","truck-ramp","truck-ramp-box","truck-ramp-couch","truck-tow","truck-utensils","trumpet","tty","tty-answer","tugrik-sign","turkey","turkish-lira-sign","turn-down","turn-down-left","turn-down-right","turn-left","turn-left-down","turn-left-up","turn-right","turn-up","turntable","turtle","tv","tv-music","tv-retro","typewriter","u","ufo","ufo-beam","umbrella","umbrella-beach","umbrella-simple","underline","unicorn","uniform-martial-arts","union","universal-access","unlock","unlock-keyhole","up","up-down","up-down-left-right","up-from-bracket","up-from-dotted-line","up-from-line","up-left","up-long","up-right","up-right-and-down-left-from-center","up-right-from-square","up-to-bracket","up-to-dotted-line","up-to-line","upload","usb-drive","user","user-alien","user-astronaut","user-beard-bolt","user-bounty-hunter","user-check","user-chef","user-clock","user-cowboy","user-crown","user-doctor","user-doctor-hair","user-doctor-hair-long","user-doctor-message","user-gear","user-graduate","user-group","user-group-crown","user-group-simple","user-hair","user-hair-buns","user-hair-long","user-hair-mullet","user-headset","user-helmet-safety","user-hoodie","user-injured","user-large","user-large-slash","user-lock","user-magnifying-glass","user-minus","user-music","user-ninja","user-nurse","user-nurse-hair","user-nurse-hair-long","user-pen","user-pilot","user-pilot-tie","user-plus","user-police","user-police-tie","user-robot","user-robot-xmarks","user-secret","user-shakespeare","user-shield","user-slash","user-tag","user-tie","user-tie-hair","user-tie-hair-long","user-unlock","user-visor","user-vneck","user-vneck-hair","user-vneck-hair-long","user-xmark","users","users-between-lines","users-gear","users-line","users-medical","users-rays","users-rectangle","users-slash","users-viewfinder","utensils","utensils-slash","utility-pole","utility-pole-double","v","vacuum","vacuum-robot","value-absolute","van-shuttle","vault","vector-circle","vector-polygon","vector-square","vent-damper","venus","venus-double","venus-mars","vest","vest-patches","vial","vial-circle-check","vial-virus","vials","video","video-arrow-down-left","video-arrow-up-right","video-plus","video-slash","vihara","violin","virus","virus-covid","virus-covid-slash","virus-slash","viruses","voicemail","volcano","volleyball","volume","volume-high","volume-low","volume-off","volume-slash","volume-xmark","vr-cardboard","w","waffle","wagon-covered","walker","walkie-talkie","wallet","wand","wand-magic","wand-magic-sparkles","wand-sparkles","warehouse","warehouse-full","washing-machine","watch","watch-apple","watch-calculator","watch-fitness","watch-smart","water","water-arrow-down","water-arrow-up","water-ladder","watermelon-slice","wave","wave-pulse","wave-sine","wave-square","wave-triangle","waveform","waveform-lines","waves-sine","web-awesome","webhook","weight-hanging","weight-scale","whale","wheat","wheat-awn","wheat-awn-circle-exclamation","wheat-awn-slash","wheat-slash","wheelchair","wheelchair-move","whiskey-glass","whiskey-glass-ice","whistle","wifi","wifi-exclamation","wifi-fair","wifi-slash","wifi-weak","wind","wind-turbine","wind-warning","window","window-flip","window-frame","window-frame-open","window-maximize","window-minimize","window-restore","windsock","wine-bottle","wine-glass","wine-glass-crack","wine-glass-empty","won-sign","worm","wreath","wreath-laurel","wrench","wrench-simple","x","x-ray","xmark","xmark-large","xmark-to-slot","xmarks-lines","y","yen-sign","yin-yang","z"],"sharp-light":["0","00","1","2","3","360-degrees","4","5","6","7","8","9","a","abacus","accent-grave","acorn","address-book","address-card","air-conditioner","airplay","alarm-clock","alarm-exclamation","alarm-plus","alarm-snooze","album","album-circle-plus","album-circle-user","album-collection","album-collection-circle-plus","album-collection-circle-user","alicorn","alien","alien-8bit","align-center","align-justify","align-left","align-right","align-slash","alt","amp-guitar","ampersand","anchor","anchor-circle-check","anchor-circle-exclamation","anchor-circle-xmark","anchor-lock","angel","angle","angle-90","angle-down","angle-left","angle-right","angle-up","angles-down","angles-left","angles-right","angles-up","angles-up-down","ankh","ant","apartment","aperture","apostrophe","apple-core","apple-whole","archway","arrow-down","arrow-down-1-9","arrow-down-9-1","arrow-down-a-z","arrow-down-arrow-up","arrow-down-big-small","arrow-down-from-arc","arrow-down-from-bracket","arrow-down-from-dotted-line","arrow-down-from-line","arrow-down-left","arrow-down-left-and-arrow-up-right-to-center","arrow-down-long","arrow-down-right","arrow-down-short-wide","arrow-down-small-big","arrow-down-square-triangle","arrow-down-to-arc","arrow-down-to-bracket","arrow-down-to-dotted-line","arrow-down-to-line","arrow-down-to-square","arrow-down-triangle-square","arrow-down-up-across-line","arrow-down-up-lock","arrow-down-wide-short","arrow-down-z-a","arrow-left","arrow-left-from-arc","arrow-left-from-bracket","arrow-left-from-line","arrow-left-long","arrow-left-long-to-line","arrow-left-to-arc","arrow-left-to-bracket","arrow-left-to-line","arrow-pointer","arrow-progress","arrow-right","arrow-right-arrow-left","arrow-right-from-arc","arrow-right-from-bracket","arrow-right-from-line","arrow-right-long","arrow-right-long-to-line","arrow-right-to-arc","arrow-right-to-bracket","arrow-right-to-city","arrow-right-to-line","arrow-rotate-left","arrow-rotate-right","arrow-trend-down","arrow-trend-up","arrow-turn-down","arrow-turn-down-left","arrow-turn-down-right","arrow-turn-left","arrow-turn-left-down","arrow-turn-left-up","arrow-turn-right","arrow-turn-up","arrow-up","arrow-up-1-9","arrow-up-9-1","arrow-up-a-z","arrow-up-arrow-down","arrow-up-big-small","arrow-up-from-arc","arrow-up-from-bracket","arrow-up-from-dotted-line","arrow-up-from-ground-water","arrow-up-from-line","arrow-up-from-square","arrow-up-from-water-pump","arrow-up-left","arrow-up-left-from-circle","arrow-up-long","arrow-up-right","arrow-up-right-and-arrow-down-left-from-center","arrow-up-right-dots","arrow-up-right-from-square","arrow-up-short-wide","arrow-up-small-big","arrow-up-square-triangle","arrow-up-to-arc","arrow-up-to-bracket","arrow-up-to-dotted-line","arrow-up-to-line","arrow-up-triangle-square","arrow-up-wide-short","arrow-up-z-a","arrows-cross","arrows-down-to-line","arrows-down-to-people","arrows-from-dotted-line","arrows-from-line","arrows-left-right","arrows-left-right-to-line","arrows-maximize","arrows-minimize","arrows-repeat","arrows-repeat-1","arrows-retweet","arrows-rotate","arrows-rotate-reverse","arrows-spin","arrows-split-up-and-left","arrows-to-circle","arrows-to-dot","arrows-to-dotted-line","arrows-to-eye","arrows-to-line","arrows-turn-right","arrows-turn-to-dots","arrows-up-down","arrows-up-down-left-right","arrows-up-to-line","asterisk","at","atom","atom-simple","audio-description","audio-description-slash","austral-sign","avocado","award","award-simple","axe","axe-battle","b","baby","baby-carriage","backpack","backward","backward-fast","backward-step","bacon","bacteria","bacterium","badge","badge-check","badge-dollar","badge-percent","badge-sheriff","badger-honey","badminton","bag-seedling","bag-shopping","bag-shopping-minus","bag-shopping-plus","bagel","bags-shopping","baguette","bahai","baht-sign","ball-pile","balloon","balloons","ballot","ballot-check","ban","ban-bug","ban-parking","ban-smoking","banana","bandage","bangladeshi-taka-sign","banjo","barcode","barcode-read","barcode-scan","bars","bars-filter","bars-progress","bars-sort","bars-staggered","baseball","baseball-bat-ball","basket-shopping","basket-shopping-minus","basket-shopping-plus","basket-shopping-simple","basketball","basketball-hoop","bat","bath","battery-bolt","battery-empty","battery-exclamation","battery-full","battery-half","battery-low","battery-quarter","battery-slash","battery-three-quarters","bed","bed-bunk","bed-empty","bed-front","bed-pulse","bee","beer-mug","beer-mug-empty","bell","bell-concierge","bell-exclamation","bell-on","bell-plus","bell-ring","bell-school","bell-school-slash","bell-slash","bells","bench-tree","bezier-curve","bicycle","billboard","bin-bottles","bin-bottles-recycle","bin-recycle","binary","binary-circle-check","binary-lock","binary-slash","binoculars","biohazard","bird","bitcoin-sign","blanket","blanket-fire","blender","blender-phone","blinds","blinds-open","blinds-raised","block","block-brick","block-brick-fire","block-question","block-quote","blog","blueberries","bluetooth","bold","bolt","bolt-auto","bolt-lightning","bolt-slash","bomb","bone","bone-break","bong","book","book-arrow-right","book-arrow-up","book-atlas","book-bible","book-blank","book-bookmark","book-circle-arrow-right","book-circle-arrow-up","book-copy","book-font","book-heart","book-journal-whills","book-medical","book-open","book-open-cover","book-open-reader","book-quran","book-section","book-skull","book-sparkles","book-tanakh","book-user","bookmark","bookmark-slash","books","books-medical","boombox","boot","boot-heeled","booth-curtain","border-all","border-bottom","border-bottom-right","border-center-h","border-center-v","border-inner","border-left","border-none","border-outer","border-right","border-top","border-top-left","bore-hole","bottle-baby","bottle-droplet","bottle-water","bow-arrow","bowl-chopsticks","bowl-chopsticks-noodles","bowl-food","bowl-hot","bowl-rice","bowl-scoop","bowl-scoops","bowl-soft-serve","bowl-spoon","bowling-ball","bowling-ball-pin","bowling-pins","box","box-archive","box-ballot","box-check","box-circle-check","box-dollar","box-heart","box-open","box-open-full","box-taped","box-tissue","boxes-packing","boxes-stacked","boxing-glove","bracket-curly","bracket-curly-right","bracket-round","bracket-round-right","bracket-square","bracket-square-right","brackets-curly","brackets-round","brackets-square","braille","brain","brain-arrow-curved-right","brain-circuit","brake-warning","brazilian-real-sign","bread-loaf","bread-slice","bread-slice-butter","bridge","bridge-circle-check","bridge-circle-exclamation","bridge-circle-xmark","bridge-lock","bridge-suspension","bridge-water","briefcase","briefcase-arrow-right","briefcase-blank","briefcase-medical","brightness","brightness-low","bring-forward","bring-front","broccoli","broom","broom-ball","broom-wide","browser","browsers","brush","bucket","bug","bug-slash","bugs","building","building-circle-arrow-right","building-circle-check","building-circle-exclamation","building-circle-xmark","building-columns","building-flag","building-lock","building-magnifying-glass","building-memo","building-ngo","building-shield","building-un","building-user","building-wheat","buildings","bulldozer","bullhorn","bullseye","bullseye-arrow","bullseye-pointer","buoy","buoy-mooring","burger","burger-cheese","burger-fries","burger-glass","burger-lettuce","burger-soda","burrito","burst","bus","bus-school","bus-simple","business-time","butter","c","cabin","cabinet-filing","cable-car","cactus","caduceus","cake-candles","cake-slice","calculator","calculator-simple","calendar","calendar-arrow-down","calendar-arrow-up","calendar-check","calendar-circle-exclamation","calendar-circle-minus","calendar-circle-plus","calendar-circle-user","calendar-clock","calendar-day","calendar-days","calendar-exclamation","calendar-heart","calendar-image","calendar-lines","calendar-lines-pen","calendar-minus","calendar-pen","calendar-plus","calendar-range","calendar-star","calendar-users","calendar-week","calendar-xmark","calendars","camcorder","camera","camera-cctv","camera-movie","camera-polaroid","camera-retro","camera-rotate","camera-security","camera-slash","camera-viewfinder","camera-web","camera-web-slash","campfire","campground","can-food","candle-holder","candy","candy-bar","candy-cane","candy-corn","cannabis","cannon","capsules","car","car-battery","car-bolt","car-building","car-bump","car-burst","car-bus","car-circle-bolt","car-garage","car-mirrors","car-on","car-rear","car-side","car-side-bolt","car-tilt","car-tunnel","car-wash","car-wrench","caravan","caravan-simple","card-club","card-diamond","card-heart","card-spade","cards","cards-blank","caret-down","caret-left","caret-right","caret-up","carrot","cars","cart-arrow-down","cart-arrow-up","cart-circle-arrow-down","cart-circle-arrow-up","cart-circle-check","cart-circle-exclamation","cart-circle-plus","cart-circle-xmark","cart-flatbed","cart-flatbed-boxes","cart-flatbed-empty","cart-flatbed-suitcase","cart-minus","cart-plus","cart-shopping","cart-shopping-fast","cart-xmark","cash-register","cassette-betamax","cassette-tape","cassette-vhs","castle","cat","cat-space","cauldron","cedi-sign","cent-sign","certificate","chair","chair-office","chalkboard","chalkboard-user","champagne-glass","champagne-glasses","charging-station","chart-area","chart-bar","chart-bullet","chart-candlestick","chart-column","chart-gantt","chart-kanban","chart-line","chart-line-down","chart-line-up","chart-line-up-down","chart-mixed","chart-mixed-up-circle-currency","chart-mixed-up-circle-dollar","chart-network","chart-pie","chart-pie-simple","chart-pie-simple-circle-currency","chart-pie-simple-circle-dollar","chart-pyramid","chart-radar","chart-scatter","chart-scatter-3d","chart-scatter-bubble","chart-simple","chart-simple-horizontal","chart-tree-map","chart-user","chart-waterfall","check","check-double","check-to-slot","cheese","cheese-swiss","cherries","chess","chess-bishop","chess-bishop-piece","chess-board","chess-clock","chess-clock-flip","chess-king","chess-king-piece","chess-knight","chess-knight-piece","chess-pawn","chess-pawn-piece","chess-queen","chess-queen-piece","chess-rook","chess-rook-piece","chestnut","chevron-down","chevron-left","chevron-right","chevron-up","chevrons-down","chevrons-left","chevrons-right","chevrons-up","chf-sign","child","child-combatant","child-dress","child-reaching","children","chimney","chopsticks","church","circle","circle-0","circle-1","circle-2","circle-3","circle-4","circle-5","circle-6","circle-7","circle-8","circle-9","circle-a","circle-ampersand","circle-arrow-down","circle-arrow-down-left","circle-arrow-down-right","circle-arrow-left","circle-arrow-right","circle-arrow-up","circle-arrow-up-left","circle-arrow-up-right","circle-b","circle-bolt","circle-book-open","circle-bookmark","circle-c","circle-calendar","circle-camera","circle-caret-down","circle-caret-left","circle-caret-right","circle-caret-up","circle-check","circle-chevron-down","circle-chevron-left","circle-chevron-right","circle-chevron-up","circle-d","circle-dashed","circle-divide","circle-dollar","circle-dollar-to-slot","circle-dot","circle-down","circle-down-left","circle-down-right","circle-e","circle-ellipsis","circle-ellipsis-vertical","circle-envelope","circle-euro","circle-exclamation","circle-exclamation-check","circle-f","circle-g","circle-gf","circle-h","circle-half","circle-half-stroke","circle-heart","circle-i","circle-info","circle-j","circle-k","circle-l","circle-left","circle-location-arrow","circle-m","circle-microphone","circle-microphone-lines","circle-minus","circle-n","circle-nodes","circle-notch","circle-o","circle-p","circle-parking","circle-pause","circle-phone","circle-phone-flip","circle-phone-hangup","circle-play","circle-plus","circle-q","circle-quarter","circle-quarter-stroke","circle-quarters","circle-question","circle-r","circle-radiation","circle-right","circle-s","circle-small","circle-sort","circle-sort-down","circle-sort-up","circle-star","circle-sterling","circle-stop","circle-t","circle-three-quarters","circle-three-quarters-stroke","circle-trash","circle-u","circle-up","circle-up-left","circle-up-right","circle-user","circle-v","circle-video","circle-w","circle-waveform-lines","circle-wifi","circle-wifi-circle-wifi","circle-x","circle-xmark","circle-y","circle-yen","circle-z","circles-overlap","citrus","citrus-slice","city","clapperboard","clapperboard-play","clarinet","claw-marks","clipboard","clipboard-check","clipboard-list","clipboard-list-check","clipboard-medical","clipboard-prescription","clipboard-question","clipboard-user","clock","clock-desk","clock-eight","clock-eight-thirty","clock-eleven","clock-eleven-thirty","clock-five","clock-five-thirty","clock-four-thirty","clock-nine","clock-nine-thirty","clock-one","clock-one-thirty","clock-rotate-left","clock-seven","clock-seven-thirty","clock-six","clock-six-thirty","clock-ten","clock-ten-thirty","clock-three","clock-three-thirty","clock-twelve","clock-twelve-thirty","clock-two","clock-two-thirty","clone","closed-captioning","closed-captioning-slash","clothes-hanger","cloud","cloud-arrow-down","cloud-arrow-up","cloud-binary","cloud-bolt","cloud-bolt-moon","cloud-bolt-sun","cloud-check","cloud-drizzle","cloud-exclamation","cloud-fog","cloud-hail","cloud-hail-mixed","cloud-meatball","cloud-minus","cloud-moon","cloud-moon-rain","cloud-music","cloud-plus","cloud-question","cloud-rain","cloud-rainbow","cloud-showers","cloud-showers-heavy","cloud-showers-water","cloud-slash","cloud-sleet","cloud-snow","cloud-sun","cloud-sun-rain","cloud-word","cloud-xmark","clouds","clouds-moon","clouds-sun","clover","club","coconut","code","code-branch","code-commit","code-compare","code-fork","code-merge","code-pull-request","code-pull-request-closed","code-pull-request-draft","code-simple","coffee-bean","coffee-beans","coffee-pot","coffin","coffin-cross","coin","coin-blank","coin-front","coin-vertical","coins","colon","colon-sign","columns-3","comet","comma","command","comment","comment-arrow-down","comment-arrow-up","comment-arrow-up-right","comment-captions","comment-check","comment-code","comment-dollar","comment-dots","comment-exclamation","comment-heart","comment-image","comment-lines","comment-medical","comment-middle","comment-middle-top","comment-minus","comment-music","comment-pen","comment-plus","comment-question","comment-quote","comment-slash","comment-smile","comment-sms","comment-text","comment-xmark","comments","comments-dollar","comments-question","comments-question-check","compact-disc","compass","compass-drafting","compass-slash","compress","compress-wide","computer","computer-classic","computer-mouse","computer-mouse-scrollwheel","computer-speaker","container-storage","conveyor-belt","conveyor-belt-arm","conveyor-belt-boxes","conveyor-belt-empty","cookie","cookie-bite","copy","copyright","corn","corner","couch","court-sport","cow","cowbell","cowbell-circle-plus","crab","crate-apple","crate-empty","credit-card","credit-card-blank","credit-card-front","cricket-bat-ball","croissant","crop","crop-simple","cross","crosshairs","crosshairs-simple","crow","crown","crutch","crutches","cruzeiro-sign","crystal-ball","cube","cubes","cubes-stacked","cucumber","cup-straw","cup-straw-swoosh","cup-togo","cupcake","curling-stone","custard","d","dagger","dash","database","deer","deer-rudolph","delete-left","delete-right","democrat","desktop","desktop-arrow-down","dharmachakra","diagram-cells","diagram-lean-canvas","diagram-nested","diagram-next","diagram-predecessor","diagram-previous","diagram-project","diagram-sankey","diagram-subtask","diagram-successor","diagram-venn","dial","dial-high","dial-low","dial-max","dial-med","dial-med-low","dial-min","dial-off","diamond","diamond-exclamation","diamond-half","diamond-half-stroke","diamond-turn-right","diamonds-4","dice","dice-d10","dice-d12","dice-d20","dice-d4","dice-d6","dice-d8","dice-five","dice-four","dice-one","dice-six","dice-three","dice-two","dinosaur","diploma","disc-drive","disease","display","display-arrow-down","display-chart-up","display-chart-up-circle-currency","display-chart-up-circle-dollar","display-code","display-medical","display-slash","distribute-spacing-horizontal","distribute-spacing-vertical","ditto","divide","dna","do-not-enter","dog","dog-leashed","dollar-sign","dolly","dolly-empty","dolphin","dong-sign","donut","door-closed","door-open","dove","down","down-from-bracket","down-from-dotted-line","down-from-line","down-left","down-left-and-up-right-to-center","down-long","down-right","down-to-bracket","down-to-dotted-line","down-to-line","download","dragon","draw-circle","draw-polygon","draw-square","dreidel","drone","drone-front","droplet","droplet-degree","droplet-percent","droplet-slash","drum","drum-steelpan","drumstick","drumstick-bite","dryer","dryer-heat","duck","dumbbell","dumpster","dumpster-fire","dungeon","e","ear","ear-deaf","ear-listen","ear-muffs","earth-africa","earth-americas","earth-asia","earth-europe","earth-oceania","eclipse","egg","egg-fried","eggplant","eject","elephant","elevator","ellipsis","ellipsis-stroke","ellipsis-stroke-vertical","ellipsis-vertical","empty-set","engine","engine-warning","envelope","envelope-circle-check","envelope-dot","envelope-open","envelope-open-dollar","envelope-open-text","envelopes","envelopes-bulk","equals","eraser","escalator","ethernet","euro-sign","excavator","exclamation","expand","expand-wide","explosion","eye","eye-dropper","eye-dropper-full","eye-dropper-half","eye-evil","eye-low-vision","eye-slash","eyes","f","face-angry","face-angry-horns","face-anguished","face-anxious-sweat","face-astonished","face-awesome","face-beam-hand-over-mouth","face-clouds","face-confounded","face-confused","face-cowboy-hat","face-diagonal-mouth","face-disappointed","face-disguise","face-dizzy","face-dotted","face-downcast-sweat","face-drooling","face-exhaling","face-explode","face-expressionless","face-eyes-xmarks","face-fearful","face-flushed","face-frown","face-frown-open","face-frown-slight","face-glasses","face-grimace","face-grin","face-grin-beam","face-grin-beam-sweat","face-grin-hearts","face-grin-squint","face-grin-squint-tears","face-grin-stars","face-grin-tears","face-grin-tongue","face-grin-tongue-squint","face-grin-tongue-wink","face-grin-wide","face-grin-wink","face-hand-over-mouth","face-hand-peeking","face-hand-yawn","face-head-bandage","face-holding-back-tears","face-hushed","face-icicles","face-kiss","face-kiss-beam","face-kiss-closed-eyes","face-kiss-wink-heart","face-laugh","face-laugh-beam","face-laugh-squint","face-laugh-wink","face-lying","face-mask","face-meh","face-meh-blank","face-melting","face-monocle","face-nauseated","face-nose-steam","face-party","face-pensive","face-persevering","face-pleading","face-pouting","face-raised-eyebrow","face-relieved","face-rolling-eyes","face-sad-cry","face-sad-sweat","face-sad-tear","face-saluting","face-scream","face-shush","face-sleeping","face-sleepy","face-smile","face-smile-beam","face-smile-halo","face-smile-hearts","face-smile-horns","face-smile-plus","face-smile-relaxed","face-smile-tear","face-smile-tongue","face-smile-upside-down","face-smile-wink","face-smiling-hands","face-smirking","face-spiral-eyes","face-sunglasses","face-surprise","face-swear","face-thermometer","face-thinking","face-tired","face-tissue","face-tongue-money","face-tongue-sweat","face-unamused","face-viewfinder","face-vomit","face-weary","face-woozy","face-worried","face-zany","face-zipper","falafel","family","family-dress","family-pants","fan","fan-table","farm","faucet","faucet-drip","fax","feather","feather-pointed","fence","ferris-wheel","ferry","field-hockey-stick-ball","file","file-arrow-down","file-arrow-up","file-audio","file-binary","file-cad","file-certificate","file-chart-column","file-chart-pie","file-check","file-circle-check","file-circle-exclamation","file-circle-info","file-circle-minus","file-circle-plus","file-circle-question","file-circle-xmark","file-code","file-contract","file-csv","file-dashed-line","file-doc","file-eps","file-excel","file-exclamation","file-export","file-gif","file-heart","file-image","file-import","file-invoice","file-invoice-dollar","file-jpg","file-lines","file-lock","file-magnifying-glass","file-medical","file-minus","file-mov","file-mp3","file-mp4","file-music","file-pdf","file-pen","file-plus","file-plus-minus","file-png","file-powerpoint","file-ppt","file-prescription","file-shield","file-signature","file-slash","file-spreadsheet","file-svg","file-user","file-vector","file-video","file-waveform","file-word","file-xls","file-xmark","file-xml","file-zip","file-zipper","files","files-medical","fill","fill-drip","film","film-canister","film-simple","film-slash","films","filter","filter-circle-dollar","filter-circle-xmark","filter-list","filter-slash","filters","fingerprint","fire","fire-burner","fire-extinguisher","fire-flame","fire-flame-curved","fire-flame-simple","fire-hydrant","fire-smoke","fireplace","fish","fish-bones","fish-cooked","fish-fins","fishing-rod","flag","flag-checkered","flag-pennant","flag-swallowtail","flag-usa","flashlight","flask","flask-gear","flask-round-poison","flask-round-potion","flask-vial","flatbread","flatbread-stuffed","floppy-disk","floppy-disk-circle-arrow-right","floppy-disk-circle-xmark","floppy-disk-pen","floppy-disks","florin-sign","flower","flower-daffodil","flower-tulip","flute","flux-capacitor","flying-disc","folder","folder-arrow-down","folder-arrow-up","folder-bookmark","folder-check","folder-closed","folder-gear","folder-grid","folder-heart","folder-image","folder-magnifying-glass","folder-medical","folder-minus","folder-music","folder-open","folder-plus","folder-tree","folder-user","folder-xmark","folders","fondue-pot","font","font-awesome","font-case","football","football-helmet","fork","fork-knife","forklift","fort","forward","forward-fast","forward-step","frame","franc-sign","french-fries","frog","function","futbol","g","galaxy","gallery-thumbnails","game-board","game-board-simple","game-console-handheld","game-console-handheld-crank","gamepad","gamepad-modern","garage","garage-car","garage-open","garlic","gas-pump","gas-pump-slash","gauge","gauge-circle-bolt","gauge-circle-minus","gauge-circle-plus","gauge-high","gauge-low","gauge-max","gauge-min","gauge-simple","gauge-simple-high","gauge-simple-low","gauge-simple-max","gauge-simple-min","gavel","gear","gear-code","gear-complex","gear-complex-code","gears","gem","genderless","ghost","gif","gift","gift-card","gifts","gingerbread-man","glass","glass-citrus","glass-empty","glass-half","glass-water","glass-water-droplet","glasses","glasses-round","globe","globe-pointer","globe-snow","globe-stand","globe-wifi","goal-net","golf-ball-tee","golf-club","golf-flag-hole","gopuram","graduation-cap","gramophone","grapes","grate","grate-droplet","greater-than","greater-than-equal","grid","grid-2","grid-2-plus","grid-4","grid-5","grid-dividers","grid-horizontal","grid-round","grid-round-2","grid-round-2-plus","grid-round-4","grid-round-5","grill","grill-fire","grill-hot","grip","grip-dots","grip-dots-vertical","grip-lines","grip-lines-vertical","grip-vertical","group-arrows-rotate","guarani-sign","guitar","guitar-electric","guitars","gun","gun-slash","gun-squirt","h","h1","h2","h3","h4","h5","h6","hammer","hammer-brush","hammer-crash","hammer-war","hamsa","hand","hand-back-fist","hand-back-point-down","hand-back-point-left","hand-back-point-ribbon","hand-back-point-right","hand-back-point-up","hand-dots","hand-fingers-crossed","hand-fist","hand-heart","hand-holding","hand-holding-box","hand-holding-circle-dollar","hand-holding-dollar","hand-holding-droplet","hand-holding-hand","hand-holding-heart","hand-holding-magic","hand-holding-medical","hand-holding-seedling","hand-holding-skull","hand-horns","hand-lizard","hand-love","hand-middle-finger","hand-peace","hand-point-down","hand-point-left","hand-point-ribbon","hand-point-right","hand-point-up","hand-pointer","hand-scissors","hand-sparkles","hand-spock","hand-wave","handcuffs","hands","hands-asl-interpreting","hands-bound","hands-bubbles","hands-clapping","hands-holding","hands-holding-child","hands-holding-circle","hands-holding-diamond","hands-holding-dollar","hands-holding-heart","hands-praying","handshake","handshake-angle","handshake-simple","handshake-simple-slash","handshake-slash","hanukiah","hard-drive","hashtag","hashtag-lock","hat-beach","hat-chef","hat-cowboy","hat-cowboy-side","hat-santa","hat-winter","hat-witch","hat-wizard","head-side","head-side-brain","head-side-cough","head-side-cough-slash","head-side-gear","head-side-goggles","head-side-headphones","head-side-heart","head-side-mask","head-side-medical","head-side-virus","heading","headphones","headphones-simple","headset","heart","heart-circle-bolt","heart-circle-check","heart-circle-exclamation","heart-circle-minus","heart-circle-plus","heart-circle-xmark","heart-crack","heart-half","heart-half-stroke","heart-pulse","heat","helicopter","helicopter-symbol","helmet-battle","helmet-safety","helmet-un","hexagon","hexagon-check","hexagon-divide","hexagon-exclamation","hexagon-image","hexagon-minus","hexagon-plus","hexagon-vertical-nft","hexagon-vertical-nft-slanted","hexagon-xmark","high-definition","highlighter","highlighter-line","hill-avalanche","hill-rockslide","hippo","hockey-mask","hockey-puck","hockey-stick-puck","hockey-sticks","holly-berry","honey-pot","hood-cloak","horizontal-rule","horse","horse-head","horse-saddle","hose","hose-reel","hospital","hospital-user","hospitals","hot-tub-person","hotdog","hotel","hourglass","hourglass-clock","hourglass-end","hourglass-half","hourglass-start","house","house-blank","house-building","house-chimney","house-chimney-blank","house-chimney-crack","house-chimney-heart","house-chimney-medical","house-chimney-user","house-chimney-window","house-circle-check","house-circle-exclamation","house-circle-xmark","house-crack","house-day","house-fire","house-flag","house-flood-water","house-flood-water-circle-arrow-right","house-heart","house-laptop","house-lock","house-medical","house-medical-circle-check","house-medical-circle-exclamation","house-medical-circle-xmark","house-medical-flag","house-night","house-person-leave","house-person-return","house-signal","house-tree","house-tsunami","house-turret","house-user","house-water","house-window","hryvnia-sign","hundred-points","hurricane","hydra","hyphen","i","i-cursor","ice-cream","ice-skate","icicles","icons","id-badge","id-card","id-card-clip","igloo","image","image-landscape","image-polaroid","image-polaroid-user","image-portrait","image-slash","image-user","images","images-user","inbox","inbox-full","inbox-in","inbox-out","inboxes","indent","indian-rupee-sign","industry","industry-windows","infinity","info","inhaler","input-numeric","input-pipe","input-text","integral","interrobang","intersection","island-tropical","italic","j","jack-o-lantern","jar","jar-wheat","jedi","jet-fighter","jet-fighter-up","joint","joystick","jug","jug-bottle","jug-detergent","k","kaaba","kazoo","kerning","key","key-skeleton","key-skeleton-left-right","keyboard","keyboard-brightness","keyboard-brightness-low","keyboard-down","keyboard-left","keynote","khanda","kidneys","kip-sign","kit-medical","kitchen-set","kite","kiwi-bird","kiwi-fruit","knife","knife-kitchen","l","lacrosse-stick","lacrosse-stick-ball","lambda","lamp","lamp-desk","lamp-floor","lamp-street","land-mine-on","landmark","landmark-dome","landmark-flag","landmark-magnifying-glass","language","laptop","laptop-arrow-down","laptop-binary","laptop-code","laptop-file","laptop-medical","laptop-mobile","laptop-slash","lari-sign","lasso","lasso-sparkles","layer-group","layer-minus","layer-plus","leaf","leaf-heart","leaf-maple","leaf-oak","leafy-green","left","left-from-bracket","left-from-line","left-long","left-long-to-line","left-right","left-to-bracket","left-to-line","lemon","less-than","less-than-equal","life-ring","light-ceiling","light-emergency","light-emergency-on","light-switch","light-switch-off","light-switch-on","lightbulb","lightbulb-cfl","lightbulb-cfl-on","lightbulb-dollar","lightbulb-exclamation","lightbulb-exclamation-on","lightbulb-gear","lightbulb-message","lightbulb-on","lightbulb-slash","lighthouse","lights-holiday","line-columns","line-height","lines-leaning","link","link-horizontal","link-horizontal-slash","link-simple","link-simple-slash","link-slash","lips","lira-sign","list","list-check","list-dropdown","list-music","list-ol","list-radio","list-timeline","list-tree","list-ul","litecoin-sign","loader","lobster","location-arrow","location-arrow-up","location-check","location-crosshairs","location-crosshairs-slash","location-dot","location-dot-slash","location-exclamation","location-minus","location-pen","location-pin","location-pin-lock","location-pin-slash","location-plus","location-question","location-smile","location-xmark","lock","lock-a","lock-hashtag","lock-keyhole","lock-keyhole-open","lock-open","locust","lollipop","loveseat","luchador-mask","lungs","lungs-virus","m","mace","magnet","magnifying-glass","magnifying-glass-arrow-right","magnifying-glass-arrows-rotate","magnifying-glass-chart","magnifying-glass-dollar","magnifying-glass-location","magnifying-glass-minus","magnifying-glass-music","magnifying-glass-play","magnifying-glass-plus","magnifying-glass-waveform","mailbox","mailbox-flag-up","manat-sign","mandolin","mango","manhole","map","map-location","map-location-dot","map-pin","marker","mars","mars-and-venus","mars-and-venus-burst","mars-double","mars-stroke","mars-stroke-right","mars-stroke-up","martini-glass","martini-glass-citrus","martini-glass-empty","mask","mask-face","mask-snorkel","mask-ventilator","masks-theater","mattress-pillow","maximize","meat","medal","megaphone","melon","melon-slice","memo","memo-circle-check","memo-circle-info","memo-pad","memory","menorah","mercury","merge","message","message-arrow-down","message-arrow-up","message-arrow-up-right","message-bot","message-captions","message-check","message-code","message-dollar","message-dots","message-exclamation","message-heart","message-image","message-lines","message-medical","message-middle","message-middle-top","message-minus","message-music","message-pen","message-plus","message-question","message-quote","message-slash","message-smile","message-sms","message-text","message-xmark","messages","messages-dollar","messages-question","meteor","meter","meter-bolt","meter-droplet","meter-fire","microchip","microchip-ai","microphone","microphone-lines","microphone-lines-slash","microphone-slash","microphone-stand","microscope","microwave","mill-sign","minimize","minus","mistletoe","mitten","mobile","mobile-button","mobile-notch","mobile-retro","mobile-screen","mobile-screen-button","mobile-signal","mobile-signal-out","money-bill","money-bill-1","money-bill-1-wave","money-bill-simple","money-bill-simple-wave","money-bill-transfer","money-bill-trend-up","money-bill-wave","money-bill-wheat","money-bills","money-bills-simple","money-check","money-check-dollar","money-check-dollar-pen","money-check-pen","money-from-bracket","money-simple-from-bracket","monitor-waveform","monkey","monument","moon","moon-cloud","moon-over-sun","moon-stars","moped","mortar-pestle","mosque","mosquito","mosquito-net","motorcycle","mound","mountain","mountain-city","mountain-sun","mountains","mouse-field","mp3-player","mug","mug-hot","mug-marshmallows","mug-saucer","mug-tea","mug-tea-saucer","mushroom","music","music-magnifying-glass","music-note","music-note-slash","music-slash","mustache","n","naira-sign","narwhal","nesting-dolls","network-wired","neuter","newspaper","nfc","nfc-lock","nfc-magnifying-glass","nfc-pen","nfc-signal","nfc-slash","nfc-symbol","nfc-trash","nose","not-equal","notdef","note","note-medical","note-sticky","notebook","notes","notes-medical","o","object-exclude","object-group","object-intersect","object-subtract","object-ungroup","object-union","objects-align-bottom","objects-align-center-horizontal","objects-align-center-vertical","objects-align-left","objects-align-right","objects-align-top","objects-column","octagon","octagon-check","octagon-divide","octagon-exclamation","octagon-minus","octagon-plus","octagon-xmark","octopus","oil-can","oil-can-drip","oil-temperature","oil-well","olive","olive-branch","om","omega","onion","option","ornament","otter","outdent","outlet","oven","overline","p","page","page-caret-down","page-caret-up","pager","paint-roller","paintbrush","paintbrush-fine","paintbrush-pencil","palette","pallet","pallet-box","pallet-boxes","pan-food","pan-frying","pancakes","panel-ews","panel-fire","panorama","paper-plane","paper-plane-top","paperclip","paperclip-vertical","parachute-box","paragraph","paragraph-left","party-bell","party-horn","passport","paste","pause","paw","paw-claws","paw-simple","peace","peach","peanut","peanuts","peapod","pear","pedestal","pegasus","pen","pen-circle","pen-clip","pen-clip-slash","pen-fancy","pen-fancy-slash","pen-field","pen-line","pen-nib","pen-nib-slash","pen-paintbrush","pen-ruler","pen-slash","pen-swirl","pen-to-square","pencil","pencil-mechanical","pencil-slash","people","people-arrows","people-carry-box","people-dress","people-dress-simple","people-group","people-line","people-pants","people-pants-simple","people-pulling","people-robbery","people-roof","people-simple","pepper","pepper-hot","percent","period","person","person-arrow-down-to-line","person-arrow-up-from-line","person-biking","person-biking-mountain","person-booth","person-breastfeeding","person-burst","person-cane","person-carry-box","person-chalkboard","person-circle-check","person-circle-exclamation","person-circle-minus","person-circle-plus","person-circle-question","person-circle-xmark","person-digging","person-dolly","person-dolly-empty","person-dots-from-line","person-dress","person-dress-burst","person-dress-fairy","person-dress-simple","person-drowning","person-fairy","person-falling","person-falling-burst","person-from-portal","person-half-dress","person-harassing","person-hiking","person-military-pointing","person-military-rifle","person-military-to-person","person-pinball","person-praying","person-pregnant","person-rays","person-rifle","person-running","person-running-fast","person-seat","person-seat-reclined","person-shelter","person-sign","person-simple","person-skating","person-ski-jumping","person-ski-lift","person-skiing","person-skiing-nordic","person-sledding","person-snowboarding","person-snowmobiling","person-swimming","person-through-window","person-to-door","person-to-portal","person-walking","person-walking-arrow-loop-left","person-walking-arrow-right","person-walking-dashed-line-arrow-right","person-walking-luggage","person-walking-with-cane","peseta-sign","peso-sign","phone","phone-arrow-down-left","phone-arrow-right","phone-arrow-up-right","phone-flip","phone-hangup","phone-intercom","phone-missed","phone-office","phone-plus","phone-rotary","phone-slash","phone-volume","phone-xmark","photo-film","photo-film-music","pi","piano","piano-keyboard","pickaxe","pickleball","pie","pig","piggy-bank","pills","pinata","pinball","pineapple","pipe","pipe-circle-check","pipe-collar","pipe-section","pipe-smoking","pipe-valve","pizza","pizza-slice","place-of-worship","plane","plane-arrival","plane-circle-check","plane-circle-exclamation","plane-circle-xmark","plane-departure","plane-engines","plane-lock","plane-prop","plane-slash","plane-tail","plane-up","plane-up-slash","planet-moon","planet-ringed","plant-wilt","plate-utensils","plate-wheat","play","play-pause","plug","plug-circle-bolt","plug-circle-check","plug-circle-exclamation","plug-circle-minus","plug-circle-plus","plug-circle-xmark","plus","plus-large","plus-minus","podcast","podium","podium-star","police-box","poll-people","pompebled","poo","poo-storm","pool-8-ball","poop","popcorn","popsicle","pot-food","potato","power-off","prescription","prescription-bottle","prescription-bottle-medical","prescription-bottle-pill","presentation-screen","pretzel","print","print-magnifying-glass","print-slash","projector","pump","pump-medical","pump-soap","pumpkin","puzzle","puzzle-piece","puzzle-piece-simple","q","qrcode","question","quote-left","quote-right","quotes","r","rabbit","rabbit-running","raccoon","racquet","radar","radiation","radio","radio-tuner","rainbow","raindrops","ram","ramp-loading","ranking-star","raygun","receipt","record-vinyl","rectangle","rectangle-ad","rectangle-barcode","rectangle-code","rectangle-history","rectangle-history-circle-plus","rectangle-history-circle-user","rectangle-list","rectangle-pro","rectangle-terminal","rectangle-vertical","rectangle-vertical-history","rectangle-wide","rectangle-xmark","rectangles-mixed","recycle","reel","reflect-both","reflect-horizontal","reflect-vertical","refrigerator","registered","repeat","repeat-1","reply","reply-all","reply-clock","republican","restroom","restroom-simple","retweet","rhombus","ribbon","right","right-from-bracket","right-from-line","right-left","right-left-large","right-long","right-long-to-line","right-to-bracket","right-to-line","ring","ring-diamond","rings-wedding","road","road-barrier","road-bridge","road-circle-check","road-circle-exclamation","road-circle-xmark","road-lock","road-spikes","robot","robot-astromech","rocket","rocket-launch","roller-coaster","rotate","rotate-exclamation","rotate-left","rotate-reverse","rotate-right","route","route-highway","route-interstate","router","rss","ruble-sign","rug","rugby-ball","ruler","ruler-combined","ruler-horizontal","ruler-triangle","ruler-vertical","rupee-sign","rupiah-sign","rv","s","sack","sack-dollar","sack-xmark","sailboat","salad","salt-shaker","sandwich","satellite","satellite-dish","sausage","saxophone","saxophone-fire","scale-balanced","scale-unbalanced","scale-unbalanced-flip","scalpel","scalpel-line-dashed","scanner-gun","scanner-image","scanner-keyboard","scanner-touchscreen","scarecrow","scarf","school","school-circle-check","school-circle-exclamation","school-circle-xmark","school-flag","school-lock","scissors","screen-users","screencast","screwdriver","screwdriver-wrench","scribble","scroll","scroll-old","scroll-torah","scrubber","scythe","sd-card","sd-cards","seal","seal-exclamation","seal-question","seat-airline","section","seedling","semicolon","send-back","send-backward","sensor","sensor-cloud","sensor-fire","sensor-on","sensor-triangle-exclamation","server","shapes","share","share-all","share-from-square","share-nodes","sheep","sheet-plastic","shekel-sign","shelves","shelves-empty","shield","shield-cat","shield-check","shield-cross","shield-dog","shield-exclamation","shield-halved","shield-heart","shield-keyhole","shield-minus","shield-plus","shield-quartered","shield-slash","shield-virus","shield-xmark","ship","shirt","shirt-long-sleeve","shirt-running","shirt-tank-top","shish-kebab","shoe-prints","shop","shop-lock","shop-slash","shovel","shovel-snow","shower","shower-down","shredder","shrimp","shuffle","shutters","shuttle-space","shuttlecock","sickle","sidebar","sidebar-flip","sigma","sign-hanging","sign-post","sign-posts","sign-posts-wrench","signal","signal-bars","signal-bars-fair","signal-bars-good","signal-bars-slash","signal-bars-weak","signal-fair","signal-good","signal-slash","signal-stream","signal-stream-slash","signal-strong","signal-weak","signature","signature-lock","signature-slash","signs-post","sim-card","sim-cards","sink","siren","siren-on","sitemap","skeleton","skeleton-ribs","ski-boot","ski-boot-ski","skull","skull-cow","skull-crossbones","slash","slash-back","slash-forward","sleigh","slider","sliders","sliders-simple","sliders-up","slot-machine","smog","smoke","smoking","snake","snooze","snow-blowing","snowflake","snowflake-droplets","snowflakes","snowman","snowman-head","snowplow","soap","socks","soft-serve","solar-panel","solar-system","sort","sort-down","sort-up","spa","space-station-moon","space-station-moon-construction","spade","spaghetti-monster-flying","sparkle","sparkles","speaker","speakers","spell-check","spider","spider-black-widow","spider-web","spinner","spinner-scale","spinner-third","split","splotch","spoon","sportsball","spray-can","spray-can-sparkles","sprinkler","sprinkler-ceiling","square","square-0","square-1","square-2","square-3","square-4","square-5","square-6","square-7","square-8","square-9","square-a","square-a-lock","square-ampersand","square-arrow-down","square-arrow-down-left","square-arrow-down-right","square-arrow-left","square-arrow-right","square-arrow-up","square-arrow-up-left","square-arrow-up-right","square-b","square-bolt","square-c","square-caret-down","square-caret-left","square-caret-right","square-caret-up","square-check","square-chevron-down","square-chevron-left","square-chevron-right","square-chevron-up","square-code","square-d","square-dashed","square-dashed-circle-plus","square-divide","square-dollar","square-down","square-down-left","square-down-right","square-e","square-ellipsis","square-ellipsis-vertical","square-envelope","square-exclamation","square-f","square-fragile","square-full","square-g","square-h","square-heart","square-i","square-info","square-j","square-k","square-kanban","square-l","square-left","square-list","square-m","square-minus","square-n","square-nfi","square-o","square-p","square-parking","square-parking-slash","square-pen","square-person-confined","square-phone","square-phone-flip","square-phone-hangup","square-plus","square-poll-horizontal","square-poll-vertical","square-q","square-quarters","square-question","square-quote","square-r","square-right","square-ring","square-root","square-root-variable","square-rss","square-s","square-share-nodes","square-sliders","square-sliders-vertical","square-small","square-star","square-t","square-terminal","square-this-way-up","square-u","square-up","square-up-left","square-up-right","square-user","square-v","square-virus","square-w","square-x","square-xmark","square-y","square-z","squid","squirrel","staff","staff-snake","stairs","stamp","standard-definition","stapler","star","star-and-crescent","star-christmas","star-exclamation","star-half","star-half-stroke","star-of-david","star-of-life","star-sharp","star-sharp-half","star-sharp-half-stroke","star-shooting","starfighter","starfighter-twin-ion-engine","starfighter-twin-ion-engine-advanced","stars","starship","starship-freighter","steak","steering-wheel","sterling-sign","stethoscope","stocking","stomach","stop","stopwatch","stopwatch-20","store","store-lock","store-slash","strawberry","street-view","stretcher","strikethrough","stroopwafel","subscript","subtitles","subtitles-slash","suitcase","suitcase-medical","suitcase-rolling","sun","sun-bright","sun-cloud","sun-dust","sun-haze","sun-plant-wilt","sunglasses","sunrise","sunset","superscript","sushi","sushi-roll","swap","swap-arrows","swatchbook","sword","sword-laser","sword-laser-alt","swords","swords-laser","symbols","synagogue","syringe","t","t-rex","table","table-cells","table-cells-column-lock","table-cells-column-unlock","table-cells-large","table-cells-lock","table-cells-row-lock","table-cells-row-unlock","table-cells-unlock","table-columns","table-layout","table-list","table-picnic","table-pivot","table-rows","table-tennis-paddle-ball","table-tree","tablet","tablet-button","tablet-rugged","tablet-screen","tablet-screen-button","tablets","tachograph-digital","taco","tag","tags","tally","tally-1","tally-2","tally-3","tally-4","tamale","tank-water","tape","tarp","tarp-droplet","taxi","taxi-bus","teddy-bear","teeth","teeth-open","telescope","temperature-arrow-down","temperature-arrow-up","temperature-empty","temperature-full","temperature-half","temperature-high","temperature-list","temperature-low","temperature-quarter","temperature-snow","temperature-sun","temperature-three-quarters","tenge-sign","tennis-ball","tent","tent-arrow-down-to-line","tent-arrow-left-right","tent-arrow-turn-left","tent-arrows-down","tent-double-peak","tents","terminal","text","text-height","text-size","text-slash","text-width","thermometer","theta","thought-bubble","thumbs-down","thumbs-up","thumbtack","thumbtack-slash","tick","ticket","ticket-airline","ticket-perforated","ticket-simple","tickets","tickets-airline","tickets-perforated","tickets-simple","tilde","timeline","timeline-arrow","timer","tire","tire-flat","tire-pressure-warning","tire-rugged","toggle-large-off","toggle-large-on","toggle-off","toggle-on","toilet","toilet-paper","toilet-paper-blank","toilet-paper-blank-under","toilet-paper-check","toilet-paper-slash","toilet-paper-under","toilet-paper-under-slash","toilet-paper-xmark","toilet-portable","toilets-portable","tomato","tombstone","tombstone-blank","toolbox","tooth","toothbrush","torii-gate","tornado","tower-broadcast","tower-cell","tower-control","tower-observation","tractor","trademark","traffic-cone","traffic-light","traffic-light-go","traffic-light-slow","traffic-light-stop","trailer","train","train-subway","train-subway-tunnel","train-track","train-tram","train-tunnel","transformer-bolt","transgender","transporter","transporter-1","transporter-2","transporter-3","transporter-4","transporter-5","transporter-6","transporter-7","transporter-empty","trash","trash-arrow-up","trash-can","trash-can-arrow-up","trash-can-check","trash-can-clock","trash-can-list","trash-can-plus","trash-can-slash","trash-can-undo","trash-can-xmark","trash-check","trash-clock","trash-list","trash-plus","trash-slash","trash-undo","trash-xmark","treasure-chest","tree","tree-christmas","tree-city","tree-deciduous","tree-decorated","tree-large","tree-palm","trees","triangle","triangle-exclamation","triangle-instrument","triangle-person-digging","tricycle","tricycle-adult","trillium","trophy","trophy-star","trowel","trowel-bricks","truck","truck-arrow-right","truck-bolt","truck-clock","truck-container","truck-container-empty","truck-droplet","truck-fast","truck-field","truck-field-un","truck-fire","truck-flatbed","truck-front","truck-ladder","truck-medical","truck-monster","truck-moving","truck-pickup","truck-plane","truck-plow","truck-ramp","truck-ramp-box","truck-ramp-couch","truck-tow","truck-utensils","trumpet","tty","tty-answer","tugrik-sign","turkey","turkish-lira-sign","turn-down","turn-down-left","turn-down-right","turn-left","turn-left-down","turn-left-up","turn-right","turn-up","turntable","turtle","tv","tv-music","tv-retro","typewriter","u","ufo","ufo-beam","umbrella","umbrella-beach","umbrella-simple","underline","unicorn","uniform-martial-arts","union","universal-access","unlock","unlock-keyhole","up","up-down","up-down-left-right","up-from-bracket","up-from-dotted-line","up-from-line","up-left","up-long","up-right","up-right-and-down-left-from-center","up-right-from-square","up-to-bracket","up-to-dotted-line","up-to-line","upload","usb-drive","user","user-alien","user-astronaut","user-beard-bolt","user-bounty-hunter","user-check","user-chef","user-clock","user-cowboy","user-crown","user-doctor","user-doctor-hair","user-doctor-hair-long","user-doctor-message","user-gear","user-graduate","user-group","user-group-crown","user-group-simple","user-hair","user-hair-buns","user-hair-long","user-hair-mullet","user-headset","user-helmet-safety","user-hoodie","user-injured","user-large","user-large-slash","user-lock","user-magnifying-glass","user-minus","user-music","user-ninja","user-nurse","user-nurse-hair","user-nurse-hair-long","user-pen","user-pilot","user-pilot-tie","user-plus","user-police","user-police-tie","user-robot","user-robot-xmarks","user-secret","user-shakespeare","user-shield","user-slash","user-tag","user-tie","user-tie-hair","user-tie-hair-long","user-unlock","user-visor","user-vneck","user-vneck-hair","user-vneck-hair-long","user-xmark","users","users-between-lines","users-gear","users-line","users-medical","users-rays","users-rectangle","users-slash","users-viewfinder","utensils","utensils-slash","utility-pole","utility-pole-double","v","vacuum","vacuum-robot","value-absolute","van-shuttle","vault","vector-circle","vector-polygon","vector-square","vent-damper","venus","venus-double","venus-mars","vest","vest-patches","vial","vial-circle-check","vial-virus","vials","video","video-arrow-down-left","video-arrow-up-right","video-plus","video-slash","vihara","violin","virus","virus-covid","virus-covid-slash","virus-slash","viruses","voicemail","volcano","volleyball","volume","volume-high","volume-low","volume-off","volume-slash","volume-xmark","vr-cardboard","w","waffle","wagon-covered","walker","walkie-talkie","wallet","wand","wand-magic","wand-magic-sparkles","wand-sparkles","warehouse","warehouse-full","washing-machine","watch","watch-apple","watch-calculator","watch-fitness","watch-smart","water","water-arrow-down","water-arrow-up","water-ladder","watermelon-slice","wave","wave-pulse","wave-sine","wave-square","wave-triangle","waveform","waveform-lines","waves-sine","web-awesome","webhook","weight-hanging","weight-scale","whale","wheat","wheat-awn","wheat-awn-circle-exclamation","wheat-awn-slash","wheat-slash","wheelchair","wheelchair-move","whiskey-glass","whiskey-glass-ice","whistle","wifi","wifi-exclamation","wifi-fair","wifi-slash","wifi-weak","wind","wind-turbine","wind-warning","window","window-flip","window-frame","window-frame-open","window-maximize","window-minimize","window-restore","windsock","wine-bottle","wine-glass","wine-glass-crack","wine-glass-empty","won-sign","worm","wreath","wreath-laurel","wrench","wrench-simple","x","x-ray","xmark","xmark-large","xmark-to-slot","xmarks-lines","y","yen-sign","yin-yang","z"],"sharp-regular":["0","00","1","2","3","360-degrees","4","5","6","7","8","9","a","abacus","accent-grave","acorn","address-book","address-card","air-conditioner","airplay","alarm-clock","alarm-exclamation","alarm-plus","alarm-snooze","album","album-circle-plus","album-circle-user","album-collection","album-collection-circle-plus","album-collection-circle-user","alicorn","alien","alien-8bit","align-center","align-justify","align-left","align-right","align-slash","alt","amp-guitar","ampersand","anchor","anchor-circle-check","anchor-circle-exclamation","anchor-circle-xmark","anchor-lock","angel","angle","angle-90","angle-down","angle-left","angle-right","angle-up","angles-down","angles-left","angles-right","angles-up","angles-up-down","ankh","ant","apartment","aperture","apostrophe","apple-core","apple-whole","archway","arrow-down","arrow-down-1-9","arrow-down-9-1","arrow-down-a-z","arrow-down-arrow-up","arrow-down-big-small","arrow-down-from-arc","arrow-down-from-bracket","arrow-down-from-dotted-line","arrow-down-from-line","arrow-down-left","arrow-down-left-and-arrow-up-right-to-center","arrow-down-long","arrow-down-right","arrow-down-short-wide","arrow-down-small-big","arrow-down-square-triangle","arrow-down-to-arc","arrow-down-to-bracket","arrow-down-to-dotted-line","arrow-down-to-line","arrow-down-to-square","arrow-down-triangle-square","arrow-down-up-across-line","arrow-down-up-lock","arrow-down-wide-short","arrow-down-z-a","arrow-left","arrow-left-from-arc","arrow-left-from-bracket","arrow-left-from-line","arrow-left-long","arrow-left-long-to-line","arrow-left-to-arc","arrow-left-to-bracket","arrow-left-to-line","arrow-pointer","arrow-progress","arrow-right","arrow-right-arrow-left","arrow-right-from-arc","arrow-right-from-bracket","arrow-right-from-line","arrow-right-long","arrow-right-long-to-line","arrow-right-to-arc","arrow-right-to-bracket","arrow-right-to-city","arrow-right-to-line","arrow-rotate-left","arrow-rotate-right","arrow-trend-down","arrow-trend-up","arrow-turn-down","arrow-turn-down-left","arrow-turn-down-right","arrow-turn-left","arrow-turn-left-down","arrow-turn-left-up","arrow-turn-right","arrow-turn-up","arrow-up","arrow-up-1-9","arrow-up-9-1","arrow-up-a-z","arrow-up-arrow-down","arrow-up-big-small","arrow-up-from-arc","arrow-up-from-bracket","arrow-up-from-dotted-line","arrow-up-from-ground-water","arrow-up-from-line","arrow-up-from-square","arrow-up-from-water-pump","arrow-up-left","arrow-up-left-from-circle","arrow-up-long","arrow-up-right","arrow-up-right-and-arrow-down-left-from-center","arrow-up-right-dots","arrow-up-right-from-square","arrow-up-short-wide","arrow-up-small-big","arrow-up-square-triangle","arrow-up-to-arc","arrow-up-to-bracket","arrow-up-to-dotted-line","arrow-up-to-line","arrow-up-triangle-square","arrow-up-wide-short","arrow-up-z-a","arrows-cross","arrows-down-to-line","arrows-down-to-people","arrows-from-dotted-line","arrows-from-line","arrows-left-right","arrows-left-right-to-line","arrows-maximize","arrows-minimize","arrows-repeat","arrows-repeat-1","arrows-retweet","arrows-rotate","arrows-rotate-reverse","arrows-spin","arrows-split-up-and-left","arrows-to-circle","arrows-to-dot","arrows-to-dotted-line","arrows-to-eye","arrows-to-line","arrows-turn-right","arrows-turn-to-dots","arrows-up-down","arrows-up-down-left-right","arrows-up-to-line","asterisk","at","atom","atom-simple","audio-description","audio-description-slash","austral-sign","avocado","award","award-simple","axe","axe-battle","b","baby","baby-carriage","backpack","backward","backward-fast","backward-step","bacon","bacteria","bacterium","badge","badge-check","badge-dollar","badge-percent","badge-sheriff","badger-honey","badminton","bag-seedling","bag-shopping","bag-shopping-minus","bag-shopping-plus","bagel","bags-shopping","baguette","bahai","baht-sign","ball-pile","balloon","balloons","ballot","ballot-check","ban","ban-bug","ban-parking","ban-smoking","banana","bandage","bangladeshi-taka-sign","banjo","barcode","barcode-read","barcode-scan","bars","bars-filter","bars-progress","bars-sort","bars-staggered","baseball","baseball-bat-ball","basket-shopping","basket-shopping-minus","basket-shopping-plus","basket-shopping-simple","basketball","basketball-hoop","bat","bath","battery-bolt","battery-empty","battery-exclamation","battery-full","battery-half","battery-low","battery-quarter","battery-slash","battery-three-quarters","bed","bed-bunk","bed-empty","bed-front","bed-pulse","bee","beer-mug","beer-mug-empty","bell","bell-concierge","bell-exclamation","bell-on","bell-plus","bell-ring","bell-school","bell-school-slash","bell-slash","bells","bench-tree","bezier-curve","bicycle","billboard","bin-bottles","bin-bottles-recycle","bin-recycle","binary","binary-circle-check","binary-lock","binary-slash","binoculars","biohazard","bird","bitcoin-sign","blanket","blanket-fire","blender","blender-phone","blinds","blinds-open","blinds-raised","block","block-brick","block-brick-fire","block-question","block-quote","blog","blueberries","bluetooth","bold","bolt","bolt-auto","bolt-lightning","bolt-slash","bomb","bone","bone-break","bong","book","book-arrow-right","book-arrow-up","book-atlas","book-bible","book-blank","book-bookmark","book-circle-arrow-right","book-circle-arrow-up","book-copy","book-font","book-heart","book-journal-whills","book-medical","book-open","book-open-cover","book-open-reader","book-quran","book-section","book-skull","book-sparkles","book-tanakh","book-user","bookmark","bookmark-slash","books","books-medical","boombox","boot","boot-heeled","booth-curtain","border-all","border-bottom","border-bottom-right","border-center-h","border-center-v","border-inner","border-left","border-none","border-outer","border-right","border-top","border-top-left","bore-hole","bottle-baby","bottle-droplet","bottle-water","bow-arrow","bowl-chopsticks","bowl-chopsticks-noodles","bowl-food","bowl-hot","bowl-rice","bowl-scoop","bowl-scoops","bowl-soft-serve","bowl-spoon","bowling-ball","bowling-ball-pin","bowling-pins","box","box-archive","box-ballot","box-check","box-circle-check","box-dollar","box-heart","box-open","box-open-full","box-taped","box-tissue","boxes-packing","boxes-stacked","boxing-glove","bracket-curly","bracket-curly-right","bracket-round","bracket-round-right","bracket-square","bracket-square-right","brackets-curly","brackets-round","brackets-square","braille","brain","brain-arrow-curved-right","brain-circuit","brake-warning","brazilian-real-sign","bread-loaf","bread-slice","bread-slice-butter","bridge","bridge-circle-check","bridge-circle-exclamation","bridge-circle-xmark","bridge-lock","bridge-suspension","bridge-water","briefcase","briefcase-arrow-right","briefcase-blank","briefcase-medical","brightness","brightness-low","bring-forward","bring-front","broccoli","broom","broom-ball","broom-wide","browser","browsers","brush","bucket","bug","bug-slash","bugs","building","building-circle-arrow-right","building-circle-check","building-circle-exclamation","building-circle-xmark","building-columns","building-flag","building-lock","building-magnifying-glass","building-memo","building-ngo","building-shield","building-un","building-user","building-wheat","buildings","bulldozer","bullhorn","bullseye","bullseye-arrow","bullseye-pointer","buoy","buoy-mooring","burger","burger-cheese","burger-fries","burger-glass","burger-lettuce","burger-soda","burrito","burst","bus","bus-school","bus-simple","business-time","butter","c","cabin","cabinet-filing","cable-car","cactus","caduceus","cake-candles","cake-slice","calculator","calculator-simple","calendar","calendar-arrow-down","calendar-arrow-up","calendar-check","calendar-circle-exclamation","calendar-circle-minus","calendar-circle-plus","calendar-circle-user","calendar-clock","calendar-day","calendar-days","calendar-exclamation","calendar-heart","calendar-image","calendar-lines","calendar-lines-pen","calendar-minus","calendar-pen","calendar-plus","calendar-range","calendar-star","calendar-users","calendar-week","calendar-xmark","calendars","camcorder","camera","camera-cctv","camera-movie","camera-polaroid","camera-retro","camera-rotate","camera-security","camera-slash","camera-viewfinder","camera-web","camera-web-slash","campfire","campground","can-food","candle-holder","candy","candy-bar","candy-cane","candy-corn","cannabis","cannon","capsules","car","car-battery","car-bolt","car-building","car-bump","car-burst","car-bus","car-circle-bolt","car-garage","car-mirrors","car-on","car-rear","car-side","car-side-bolt","car-tilt","car-tunnel","car-wash","car-wrench","caravan","caravan-simple","card-club","card-diamond","card-heart","card-spade","cards","cards-blank","caret-down","caret-left","caret-right","caret-up","carrot","cars","cart-arrow-down","cart-arrow-up","cart-circle-arrow-down","cart-circle-arrow-up","cart-circle-check","cart-circle-exclamation","cart-circle-plus","cart-circle-xmark","cart-flatbed","cart-flatbed-boxes","cart-flatbed-empty","cart-flatbed-suitcase","cart-minus","cart-plus","cart-shopping","cart-shopping-fast","cart-xmark","cash-register","cassette-betamax","cassette-tape","cassette-vhs","castle","cat","cat-space","cauldron","cedi-sign","cent-sign","certificate","chair","chair-office","chalkboard","chalkboard-user","champagne-glass","champagne-glasses","charging-station","chart-area","chart-bar","chart-bullet","chart-candlestick","chart-column","chart-gantt","chart-kanban","chart-line","chart-line-down","chart-line-up","chart-line-up-down","chart-mixed","chart-mixed-up-circle-currency","chart-mixed-up-circle-dollar","chart-network","chart-pie","chart-pie-simple","chart-pie-simple-circle-currency","chart-pie-simple-circle-dollar","chart-pyramid","chart-radar","chart-scatter","chart-scatter-3d","chart-scatter-bubble","chart-simple","chart-simple-horizontal","chart-tree-map","chart-user","chart-waterfall","check","check-double","check-to-slot","cheese","cheese-swiss","cherries","chess","chess-bishop","chess-bishop-piece","chess-board","chess-clock","chess-clock-flip","chess-king","chess-king-piece","chess-knight","chess-knight-piece","chess-pawn","chess-pawn-piece","chess-queen","chess-queen-piece","chess-rook","chess-rook-piece","chestnut","chevron-down","chevron-left","chevron-right","chevron-up","chevrons-down","chevrons-left","chevrons-right","chevrons-up","chf-sign","child","child-combatant","child-dress","child-reaching","children","chimney","chopsticks","church","circle","circle-0","circle-1","circle-2","circle-3","circle-4","circle-5","circle-6","circle-7","circle-8","circle-9","circle-a","circle-ampersand","circle-arrow-down","circle-arrow-down-left","circle-arrow-down-right","circle-arrow-left","circle-arrow-right","circle-arrow-up","circle-arrow-up-left","circle-arrow-up-right","circle-b","circle-bolt","circle-book-open","circle-bookmark","circle-c","circle-calendar","circle-camera","circle-caret-down","circle-caret-left","circle-caret-right","circle-caret-up","circle-check","circle-chevron-down","circle-chevron-left","circle-chevron-right","circle-chevron-up","circle-d","circle-dashed","circle-divide","circle-dollar","circle-dollar-to-slot","circle-dot","circle-down","circle-down-left","circle-down-right","circle-e","circle-ellipsis","circle-ellipsis-vertical","circle-envelope","circle-euro","circle-exclamation","circle-exclamation-check","circle-f","circle-g","circle-gf","circle-h","circle-half","circle-half-stroke","circle-heart","circle-i","circle-info","circle-j","circle-k","circle-l","circle-left","circle-location-arrow","circle-m","circle-microphone","circle-microphone-lines","circle-minus","circle-n","circle-nodes","circle-notch","circle-o","circle-p","circle-parking","circle-pause","circle-phone","circle-phone-flip","circle-phone-hangup","circle-play","circle-plus","circle-q","circle-quarter","circle-quarter-stroke","circle-quarters","circle-question","circle-r","circle-radiation","circle-right","circle-s","circle-small","circle-sort","circle-sort-down","circle-sort-up","circle-star","circle-sterling","circle-stop","circle-t","circle-three-quarters","circle-three-quarters-stroke","circle-trash","circle-u","circle-up","circle-up-left","circle-up-right","circle-user","circle-v","circle-video","circle-w","circle-waveform-lines","circle-wifi","circle-wifi-circle-wifi","circle-x","circle-xmark","circle-y","circle-yen","circle-z","circles-overlap","citrus","citrus-slice","city","clapperboard","clapperboard-play","clarinet","claw-marks","clipboard","clipboard-check","clipboard-list","clipboard-list-check","clipboard-medical","clipboard-prescription","clipboard-question","clipboard-user","clock","clock-desk","clock-eight","clock-eight-thirty","clock-eleven","clock-eleven-thirty","clock-five","clock-five-thirty","clock-four-thirty","clock-nine","clock-nine-thirty","clock-one","clock-one-thirty","clock-rotate-left","clock-seven","clock-seven-thirty","clock-six","clock-six-thirty","clock-ten","clock-ten-thirty","clock-three","clock-three-thirty","clock-twelve","clock-twelve-thirty","clock-two","clock-two-thirty","clone","closed-captioning","closed-captioning-slash","clothes-hanger","cloud","cloud-arrow-down","cloud-arrow-up","cloud-binary","cloud-bolt","cloud-bolt-moon","cloud-bolt-sun","cloud-check","cloud-drizzle","cloud-exclamation","cloud-fog","cloud-hail","cloud-hail-mixed","cloud-meatball","cloud-minus","cloud-moon","cloud-moon-rain","cloud-music","cloud-plus","cloud-question","cloud-rain","cloud-rainbow","cloud-showers","cloud-showers-heavy","cloud-showers-water","cloud-slash","cloud-sleet","cloud-snow","cloud-sun","cloud-sun-rain","cloud-word","cloud-xmark","clouds","clouds-moon","clouds-sun","clover","club","coconut","code","code-branch","code-commit","code-compare","code-fork","code-merge","code-pull-request","code-pull-request-closed","code-pull-request-draft","code-simple","coffee-bean","coffee-beans","coffee-pot","coffin","coffin-cross","coin","coin-blank","coin-front","coin-vertical","coins","colon","colon-sign","columns-3","comet","comma","command","comment","comment-arrow-down","comment-arrow-up","comment-arrow-up-right","comment-captions","comment-check","comment-code","comment-dollar","comment-dots","comment-exclamation","comment-heart","comment-image","comment-lines","comment-medical","comment-middle","comment-middle-top","comment-minus","comment-music","comment-pen","comment-plus","comment-question","comment-quote","comment-slash","comment-smile","comment-sms","comment-text","comment-xmark","comments","comments-dollar","comments-question","comments-question-check","compact-disc","compass","compass-drafting","compass-slash","compress","compress-wide","computer","computer-classic","computer-mouse","computer-mouse-scrollwheel","computer-speaker","container-storage","conveyor-belt","conveyor-belt-arm","conveyor-belt-boxes","conveyor-belt-empty","cookie","cookie-bite","copy","copyright","corn","corner","couch","court-sport","cow","cowbell","cowbell-circle-plus","crab","crate-apple","crate-empty","credit-card","credit-card-blank","credit-card-front","cricket-bat-ball","croissant","crop","crop-simple","cross","crosshairs","crosshairs-simple","crow","crown","crutch","crutches","cruzeiro-sign","crystal-ball","cube","cubes","cubes-stacked","cucumber","cup-straw","cup-straw-swoosh","cup-togo","cupcake","curling-stone","custard","d","dagger","dash","database","deer","deer-rudolph","delete-left","delete-right","democrat","desktop","desktop-arrow-down","dharmachakra","diagram-cells","diagram-lean-canvas","diagram-nested","diagram-next","diagram-predecessor","diagram-previous","diagram-project","diagram-sankey","diagram-subtask","diagram-successor","diagram-venn","dial","dial-high","dial-low","dial-max","dial-med","dial-med-low","dial-min","dial-off","diamond","diamond-exclamation","diamond-half","diamond-half-stroke","diamond-turn-right","diamonds-4","dice","dice-d10","dice-d12","dice-d20","dice-d4","dice-d6","dice-d8","dice-five","dice-four","dice-one","dice-six","dice-three","dice-two","dinosaur","diploma","disc-drive","disease","display","display-arrow-down","display-chart-up","display-chart-up-circle-currency","display-chart-up-circle-dollar","display-code","display-medical","display-slash","distribute-spacing-horizontal","distribute-spacing-vertical","ditto","divide","dna","do-not-enter","dog","dog-leashed","dollar-sign","dolly","dolly-empty","dolphin","dong-sign","donut","door-closed","door-open","dove","down","down-from-bracket","down-from-dotted-line","down-from-line","down-left","down-left-and-up-right-to-center","down-long","down-right","down-to-bracket","down-to-dotted-line","down-to-line","download","dragon","draw-circle","draw-polygon","draw-square","dreidel","drone","drone-front","droplet","droplet-degree","droplet-percent","droplet-slash","drum","drum-steelpan","drumstick","drumstick-bite","dryer","dryer-heat","duck","dumbbell","dumpster","dumpster-fire","dungeon","e","ear","ear-deaf","ear-listen","ear-muffs","earth-africa","earth-americas","earth-asia","earth-europe","earth-oceania","eclipse","egg","egg-fried","eggplant","eject","elephant","elevator","ellipsis","ellipsis-stroke","ellipsis-stroke-vertical","ellipsis-vertical","empty-set","engine","engine-warning","envelope","envelope-circle-check","envelope-dot","envelope-open","envelope-open-dollar","envelope-open-text","envelopes","envelopes-bulk","equals","eraser","escalator","ethernet","euro-sign","excavator","exclamation","expand","expand-wide","explosion","eye","eye-dropper","eye-dropper-full","eye-dropper-half","eye-evil","eye-low-vision","eye-slash","eyes","f","face-angry","face-angry-horns","face-anguished","face-anxious-sweat","face-astonished","face-awesome","face-beam-hand-over-mouth","face-clouds","face-confounded","face-confused","face-cowboy-hat","face-diagonal-mouth","face-disappointed","face-disguise","face-dizzy","face-dotted","face-downcast-sweat","face-drooling","face-exhaling","face-explode","face-expressionless","face-eyes-xmarks","face-fearful","face-flushed","face-frown","face-frown-open","face-frown-slight","face-glasses","face-grimace","face-grin","face-grin-beam","face-grin-beam-sweat","face-grin-hearts","face-grin-squint","face-grin-squint-tears","face-grin-stars","face-grin-tears","face-grin-tongue","face-grin-tongue-squint","face-grin-tongue-wink","face-grin-wide","face-grin-wink","face-hand-over-mouth","face-hand-peeking","face-hand-yawn","face-head-bandage","face-holding-back-tears","face-hushed","face-icicles","face-kiss","face-kiss-beam","face-kiss-closed-eyes","face-kiss-wink-heart","face-laugh","face-laugh-beam","face-laugh-squint","face-laugh-wink","face-lying","face-mask","face-meh","face-meh-blank","face-melting","face-monocle","face-nauseated","face-nose-steam","face-party","face-pensive","face-persevering","face-pleading","face-pouting","face-raised-eyebrow","face-relieved","face-rolling-eyes","face-sad-cry","face-sad-sweat","face-sad-tear","face-saluting","face-scream","face-shush","face-sleeping","face-sleepy","face-smile","face-smile-beam","face-smile-halo","face-smile-hearts","face-smile-horns","face-smile-plus","face-smile-relaxed","face-smile-tear","face-smile-tongue","face-smile-upside-down","face-smile-wink","face-smiling-hands","face-smirking","face-spiral-eyes","face-sunglasses","face-surprise","face-swear","face-thermometer","face-thinking","face-tired","face-tissue","face-tongue-money","face-tongue-sweat","face-unamused","face-viewfinder","face-vomit","face-weary","face-woozy","face-worried","face-zany","face-zipper","falafel","family","family-dress","family-pants","fan","fan-table","farm","faucet","faucet-drip","fax","feather","feather-pointed","fence","ferris-wheel","ferry","field-hockey-stick-ball","file","file-arrow-down","file-arrow-up","file-audio","file-binary","file-cad","file-certificate","file-chart-column","file-chart-pie","file-check","file-circle-check","file-circle-exclamation","file-circle-info","file-circle-minus","file-circle-plus","file-circle-question","file-circle-xmark","file-code","file-contract","file-csv","file-dashed-line","file-doc","file-eps","file-excel","file-exclamation","file-export","file-gif","file-heart","file-image","file-import","file-invoice","file-invoice-dollar","file-jpg","file-lines","file-lock","file-magnifying-glass","file-medical","file-minus","file-mov","file-mp3","file-mp4","file-music","file-pdf","file-pen","file-plus","file-plus-minus","file-png","file-powerpoint","file-ppt","file-prescription","file-shield","file-signature","file-slash","file-spreadsheet","file-svg","file-user","file-vector","file-video","file-waveform","file-word","file-xls","file-xmark","file-xml","file-zip","file-zipper","files","files-medical","fill","fill-drip","film","film-canister","film-simple","film-slash","films","filter","filter-circle-dollar","filter-circle-xmark","filter-list","filter-slash","filters","fingerprint","fire","fire-burner","fire-extinguisher","fire-flame","fire-flame-curved","fire-flame-simple","fire-hydrant","fire-smoke","fireplace","fish","fish-bones","fish-cooked","fish-fins","fishing-rod","flag","flag-checkered","flag-pennant","flag-swallowtail","flag-usa","flashlight","flask","flask-gear","flask-round-poison","flask-round-potion","flask-vial","flatbread","flatbread-stuffed","floppy-disk","floppy-disk-circle-arrow-right","floppy-disk-circle-xmark","floppy-disk-pen","floppy-disks","florin-sign","flower","flower-daffodil","flower-tulip","flute","flux-capacitor","flying-disc","folder","folder-arrow-down","folder-arrow-up","folder-bookmark","folder-check","folder-closed","folder-gear","folder-grid","folder-heart","folder-image","folder-magnifying-glass","folder-medical","folder-minus","folder-music","folder-open","folder-plus","folder-tree","folder-user","folder-xmark","folders","fondue-pot","font","font-awesome","font-case","football","football-helmet","fork","fork-knife","forklift","fort","forward","forward-fast","forward-step","frame","franc-sign","french-fries","frog","function","futbol","g","galaxy","gallery-thumbnails","game-board","game-board-simple","game-console-handheld","game-console-handheld-crank","gamepad","gamepad-modern","garage","garage-car","garage-open","garlic","gas-pump","gas-pump-slash","gauge","gauge-circle-bolt","gauge-circle-minus","gauge-circle-plus","gauge-high","gauge-low","gauge-max","gauge-min","gauge-simple","gauge-simple-high","gauge-simple-low","gauge-simple-max","gauge-simple-min","gavel","gear","gear-code","gear-complex","gear-complex-code","gears","gem","genderless","ghost","gif","gift","gift-card","gifts","gingerbread-man","glass","glass-citrus","glass-empty","glass-half","glass-water","glass-water-droplet","glasses","glasses-round","globe","globe-pointer","globe-snow","globe-stand","globe-wifi","goal-net","golf-ball-tee","golf-club","golf-flag-hole","gopuram","graduation-cap","gramophone","grapes","grate","grate-droplet","greater-than","greater-than-equal","grid","grid-2","grid-2-plus","grid-4","grid-5","grid-dividers","grid-horizontal","grid-round","grid-round-2","grid-round-2-plus","grid-round-4","grid-round-5","grill","grill-fire","grill-hot","grip","grip-dots","grip-dots-vertical","grip-lines","grip-lines-vertical","grip-vertical","group-arrows-rotate","guarani-sign","guitar","guitar-electric","guitars","gun","gun-slash","gun-squirt","h","h1","h2","h3","h4","h5","h6","hammer","hammer-brush","hammer-crash","hammer-war","hamsa","hand","hand-back-fist","hand-back-point-down","hand-back-point-left","hand-back-point-ribbon","hand-back-point-right","hand-back-point-up","hand-dots","hand-fingers-crossed","hand-fist","hand-heart","hand-holding","hand-holding-box","hand-holding-circle-dollar","hand-holding-dollar","hand-holding-droplet","hand-holding-hand","hand-holding-heart","hand-holding-magic","hand-holding-medical","hand-holding-seedling","hand-holding-skull","hand-horns","hand-lizard","hand-love","hand-middle-finger","hand-peace","hand-point-down","hand-point-left","hand-point-ribbon","hand-point-right","hand-point-up","hand-pointer","hand-scissors","hand-sparkles","hand-spock","hand-wave","handcuffs","hands","hands-asl-interpreting","hands-bound","hands-bubbles","hands-clapping","hands-holding","hands-holding-child","hands-holding-circle","hands-holding-diamond","hands-holding-dollar","hands-holding-heart","hands-praying","handshake","handshake-angle","handshake-simple","handshake-simple-slash","handshake-slash","hanukiah","hard-drive","hashtag","hashtag-lock","hat-beach","hat-chef","hat-cowboy","hat-cowboy-side","hat-santa","hat-winter","hat-witch","hat-wizard","head-side","head-side-brain","head-side-cough","head-side-cough-slash","head-side-gear","head-side-goggles","head-side-headphones","head-side-heart","head-side-mask","head-side-medical","head-side-virus","heading","headphones","headphones-simple","headset","heart","heart-circle-bolt","heart-circle-check","heart-circle-exclamation","heart-circle-minus","heart-circle-plus","heart-circle-xmark","heart-crack","heart-half","heart-half-stroke","heart-pulse","heat","helicopter","helicopter-symbol","helmet-battle","helmet-safety","helmet-un","hexagon","hexagon-check","hexagon-divide","hexagon-exclamation","hexagon-image","hexagon-minus","hexagon-plus","hexagon-vertical-nft","hexagon-vertical-nft-slanted","hexagon-xmark","high-definition","highlighter","highlighter-line","hill-avalanche","hill-rockslide","hippo","hockey-mask","hockey-puck","hockey-stick-puck","hockey-sticks","holly-berry","honey-pot","hood-cloak","horizontal-rule","horse","horse-head","horse-saddle","hose","hose-reel","hospital","hospital-user","hospitals","hot-tub-person","hotdog","hotel","hourglass","hourglass-clock","hourglass-end","hourglass-half","hourglass-start","house","house-blank","house-building","house-chimney","house-chimney-blank","house-chimney-crack","house-chimney-heart","house-chimney-medical","house-chimney-user","house-chimney-window","house-circle-check","house-circle-exclamation","house-circle-xmark","house-crack","house-day","house-fire","house-flag","house-flood-water","house-flood-water-circle-arrow-right","house-heart","house-laptop","house-lock","house-medical","house-medical-circle-check","house-medical-circle-exclamation","house-medical-circle-xmark","house-medical-flag","house-night","house-person-leave","house-person-return","house-signal","house-tree","house-tsunami","house-turret","house-user","house-water","house-window","hryvnia-sign","hundred-points","hurricane","hydra","hyphen","i","i-cursor","ice-cream","ice-skate","icicles","icons","id-badge","id-card","id-card-clip","igloo","image","image-landscape","image-polaroid","image-polaroid-user","image-portrait","image-slash","image-user","images","images-user","inbox","inbox-full","inbox-in","inbox-out","inboxes","indent","indian-rupee-sign","industry","industry-windows","infinity","info","inhaler","input-numeric","input-pipe","input-text","integral","interrobang","intersection","island-tropical","italic","j","jack-o-lantern","jar","jar-wheat","jedi","jet-fighter","jet-fighter-up","joint","joystick","jug","jug-bottle","jug-detergent","k","kaaba","kazoo","kerning","key","key-skeleton","key-skeleton-left-right","keyboard","keyboard-brightness","keyboard-brightness-low","keyboard-down","keyboard-left","keynote","khanda","kidneys","kip-sign","kit-medical","kitchen-set","kite","kiwi-bird","kiwi-fruit","knife","knife-kitchen","l","lacrosse-stick","lacrosse-stick-ball","lambda","lamp","lamp-desk","lamp-floor","lamp-street","land-mine-on","landmark","landmark-dome","landmark-flag","landmark-magnifying-glass","language","laptop","laptop-arrow-down","laptop-binary","laptop-code","laptop-file","laptop-medical","laptop-mobile","laptop-slash","lari-sign","lasso","lasso-sparkles","layer-group","layer-minus","layer-plus","leaf","leaf-heart","leaf-maple","leaf-oak","leafy-green","left","left-from-bracket","left-from-line","left-long","left-long-to-line","left-right","left-to-bracket","left-to-line","lemon","less-than","less-than-equal","life-ring","light-ceiling","light-emergency","light-emergency-on","light-switch","light-switch-off","light-switch-on","lightbulb","lightbulb-cfl","lightbulb-cfl-on","lightbulb-dollar","lightbulb-exclamation","lightbulb-exclamation-on","lightbulb-gear","lightbulb-message","lightbulb-on","lightbulb-slash","lighthouse","lights-holiday","line-columns","line-height","lines-leaning","link","link-horizontal","link-horizontal-slash","link-simple","link-simple-slash","link-slash","lips","lira-sign","list","list-check","list-dropdown","list-music","list-ol","list-radio","list-timeline","list-tree","list-ul","litecoin-sign","loader","lobster","location-arrow","location-arrow-up","location-check","location-crosshairs","location-crosshairs-slash","location-dot","location-dot-slash","location-exclamation","location-minus","location-pen","location-pin","location-pin-lock","location-pin-slash","location-plus","location-question","location-smile","location-xmark","lock","lock-a","lock-hashtag","lock-keyhole","lock-keyhole-open","lock-open","locust","lollipop","loveseat","luchador-mask","lungs","lungs-virus","m","mace","magnet","magnifying-glass","magnifying-glass-arrow-right","magnifying-glass-arrows-rotate","magnifying-glass-chart","magnifying-glass-dollar","magnifying-glass-location","magnifying-glass-minus","magnifying-glass-music","magnifying-glass-play","magnifying-glass-plus","magnifying-glass-waveform","mailbox","mailbox-flag-up","manat-sign","mandolin","mango","manhole","map","map-location","map-location-dot","map-pin","marker","mars","mars-and-venus","mars-and-venus-burst","mars-double","mars-stroke","mars-stroke-right","mars-stroke-up","martini-glass","martini-glass-citrus","martini-glass-empty","mask","mask-face","mask-snorkel","mask-ventilator","masks-theater","mattress-pillow","maximize","meat","medal","megaphone","melon","melon-slice","memo","memo-circle-check","memo-circle-info","memo-pad","memory","menorah","mercury","merge","message","message-arrow-down","message-arrow-up","message-arrow-up-right","message-bot","message-captions","message-check","message-code","message-dollar","message-dots","message-exclamation","message-heart","message-image","message-lines","message-medical","message-middle","message-middle-top","message-minus","message-music","message-pen","message-plus","message-question","message-quote","message-slash","message-smile","message-sms","message-text","message-xmark","messages","messages-dollar","messages-question","meteor","meter","meter-bolt","meter-droplet","meter-fire","microchip","microchip-ai","microphone","microphone-lines","microphone-lines-slash","microphone-slash","microphone-stand","microscope","microwave","mill-sign","minimize","minus","mistletoe","mitten","mobile","mobile-button","mobile-notch","mobile-retro","mobile-screen","mobile-screen-button","mobile-signal","mobile-signal-out","money-bill","money-bill-1","money-bill-1-wave","money-bill-simple","money-bill-simple-wave","money-bill-transfer","money-bill-trend-up","money-bill-wave","money-bill-wheat","money-bills","money-bills-simple","money-check","money-check-dollar","money-check-dollar-pen","money-check-pen","money-from-bracket","money-simple-from-bracket","monitor-waveform","monkey","monument","moon","moon-cloud","moon-over-sun","moon-stars","moped","mortar-pestle","mosque","mosquito","mosquito-net","motorcycle","mound","mountain","mountain-city","mountain-sun","mountains","mouse-field","mp3-player","mug","mug-hot","mug-marshmallows","mug-saucer","mug-tea","mug-tea-saucer","mushroom","music","music-magnifying-glass","music-note","music-note-slash","music-slash","mustache","n","naira-sign","narwhal","nesting-dolls","network-wired","neuter","newspaper","nfc","nfc-lock","nfc-magnifying-glass","nfc-pen","nfc-signal","nfc-slash","nfc-symbol","nfc-trash","nose","not-equal","notdef","note","note-medical","note-sticky","notebook","notes","notes-medical","o","object-exclude","object-group","object-intersect","object-subtract","object-ungroup","object-union","objects-align-bottom","objects-align-center-horizontal","objects-align-center-vertical","objects-align-left","objects-align-right","objects-align-top","objects-column","octagon","octagon-check","octagon-divide","octagon-exclamation","octagon-minus","octagon-plus","octagon-xmark","octopus","oil-can","oil-can-drip","oil-temperature","oil-well","olive","olive-branch","om","omega","onion","option","ornament","otter","outdent","outlet","oven","overline","p","page","page-caret-down","page-caret-up","pager","paint-roller","paintbrush","paintbrush-fine","paintbrush-pencil","palette","pallet","pallet-box","pallet-boxes","pan-food","pan-frying","pancakes","panel-ews","panel-fire","panorama","paper-plane","paper-plane-top","paperclip","paperclip-vertical","parachute-box","paragraph","paragraph-left","party-bell","party-horn","passport","paste","pause","paw","paw-claws","paw-simple","peace","peach","peanut","peanuts","peapod","pear","pedestal","pegasus","pen","pen-circle","pen-clip","pen-clip-slash","pen-fancy","pen-fancy-slash","pen-field","pen-line","pen-nib","pen-nib-slash","pen-paintbrush","pen-ruler","pen-slash","pen-swirl","pen-to-square","pencil","pencil-mechanical","pencil-slash","people","people-arrows","people-carry-box","people-dress","people-dress-simple","people-group","people-line","people-pants","people-pants-simple","people-pulling","people-robbery","people-roof","people-simple","pepper","pepper-hot","percent","period","person","person-arrow-down-to-line","person-arrow-up-from-line","person-biking","person-biking-mountain","person-booth","person-breastfeeding","person-burst","person-cane","person-carry-box","person-chalkboard","person-circle-check","person-circle-exclamation","person-circle-minus","person-circle-plus","person-circle-question","person-circle-xmark","person-digging","person-dolly","person-dolly-empty","person-dots-from-line","person-dress","person-dress-burst","person-dress-fairy","person-dress-simple","person-drowning","person-fairy","person-falling","person-falling-burst","person-from-portal","person-half-dress","person-harassing","person-hiking","person-military-pointing","person-military-rifle","person-military-to-person","person-pinball","person-praying","person-pregnant","person-rays","person-rifle","person-running","person-running-fast","person-seat","person-seat-reclined","person-shelter","person-sign","person-simple","person-skating","person-ski-jumping","person-ski-lift","person-skiing","person-skiing-nordic","person-sledding","person-snowboarding","person-snowmobiling","person-swimming","person-through-window","person-to-door","person-to-portal","person-walking","person-walking-arrow-loop-left","person-walking-arrow-right","person-walking-dashed-line-arrow-right","person-walking-luggage","person-walking-with-cane","peseta-sign","peso-sign","phone","phone-arrow-down-left","phone-arrow-right","phone-arrow-up-right","phone-flip","phone-hangup","phone-intercom","phone-missed","phone-office","phone-plus","phone-rotary","phone-slash","phone-volume","phone-xmark","photo-film","photo-film-music","pi","piano","piano-keyboard","pickaxe","pickleball","pie","pig","piggy-bank","pills","pinata","pinball","pineapple","pipe","pipe-circle-check","pipe-collar","pipe-section","pipe-smoking","pipe-valve","pizza","pizza-slice","place-of-worship","plane","plane-arrival","plane-circle-check","plane-circle-exclamation","plane-circle-xmark","plane-departure","plane-engines","plane-lock","plane-prop","plane-slash","plane-tail","plane-up","plane-up-slash","planet-moon","planet-ringed","plant-wilt","plate-utensils","plate-wheat","play","play-pause","plug","plug-circle-bolt","plug-circle-check","plug-circle-exclamation","plug-circle-minus","plug-circle-plus","plug-circle-xmark","plus","plus-large","plus-minus","podcast","podium","podium-star","police-box","poll-people","pompebled","poo","poo-storm","pool-8-ball","poop","popcorn","popsicle","pot-food","potato","power-off","prescription","prescription-bottle","prescription-bottle-medical","prescription-bottle-pill","presentation-screen","pretzel","print","print-magnifying-glass","print-slash","projector","pump","pump-medical","pump-soap","pumpkin","puzzle","puzzle-piece","puzzle-piece-simple","q","qrcode","question","quote-left","quote-right","quotes","r","rabbit","rabbit-running","raccoon","racquet","radar","radiation","radio","radio-tuner","rainbow","raindrops","ram","ramp-loading","ranking-star","raygun","receipt","record-vinyl","rectangle","rectangle-ad","rectangle-barcode","rectangle-code","rectangle-history","rectangle-history-circle-plus","rectangle-history-circle-user","rectangle-list","rectangle-pro","rectangle-terminal","rectangle-vertical","rectangle-vertical-history","rectangle-wide","rectangle-xmark","rectangles-mixed","recycle","reel","reflect-both","reflect-horizontal","reflect-vertical","refrigerator","registered","repeat","repeat-1","reply","reply-all","reply-clock","republican","restroom","restroom-simple","retweet","rhombus","ribbon","right","right-from-bracket","right-from-line","right-left","right-left-large","right-long","right-long-to-line","right-to-bracket","right-to-line","ring","ring-diamond","rings-wedding","road","road-barrier","road-bridge","road-circle-check","road-circle-exclamation","road-circle-xmark","road-lock","road-spikes","robot","robot-astromech","rocket","rocket-launch","roller-coaster","rotate","rotate-exclamation","rotate-left","rotate-reverse","rotate-right","route","route-highway","route-interstate","router","rss","ruble-sign","rug","rugby-ball","ruler","ruler-combined","ruler-horizontal","ruler-triangle","ruler-vertical","rupee-sign","rupiah-sign","rv","s","sack","sack-dollar","sack-xmark","sailboat","salad","salt-shaker","sandwich","satellite","satellite-dish","sausage","saxophone","saxophone-fire","scale-balanced","scale-unbalanced","scale-unbalanced-flip","scalpel","scalpel-line-dashed","scanner-gun","scanner-image","scanner-keyboard","scanner-touchscreen","scarecrow","scarf","school","school-circle-check","school-circle-exclamation","school-circle-xmark","school-flag","school-lock","scissors","screen-users","screencast","screwdriver","screwdriver-wrench","scribble","scroll","scroll-old","scroll-torah","scrubber","scythe","sd-card","sd-cards","seal","seal-exclamation","seal-question","seat-airline","section","seedling","semicolon","send-back","send-backward","sensor","sensor-cloud","sensor-fire","sensor-on","sensor-triangle-exclamation","server","shapes","share","share-all","share-from-square","share-nodes","sheep","sheet-plastic","shekel-sign","shelves","shelves-empty","shield","shield-cat","shield-check","shield-cross","shield-dog","shield-exclamation","shield-halved","shield-heart","shield-keyhole","shield-minus","shield-plus","shield-quartered","shield-slash","shield-virus","shield-xmark","ship","shirt","shirt-long-sleeve","shirt-running","shirt-tank-top","shish-kebab","shoe-prints","shop","shop-lock","shop-slash","shovel","shovel-snow","shower","shower-down","shredder","shrimp","shuffle","shutters","shuttle-space","shuttlecock","sickle","sidebar","sidebar-flip","sigma","sign-hanging","sign-post","sign-posts","sign-posts-wrench","signal","signal-bars","signal-bars-fair","signal-bars-good","signal-bars-slash","signal-bars-weak","signal-fair","signal-good","signal-slash","signal-stream","signal-stream-slash","signal-strong","signal-weak","signature","signature-lock","signature-slash","signs-post","sim-card","sim-cards","sink","siren","siren-on","sitemap","skeleton","skeleton-ribs","ski-boot","ski-boot-ski","skull","skull-cow","skull-crossbones","slash","slash-back","slash-forward","sleigh","slider","sliders","sliders-simple","sliders-up","slot-machine","smog","smoke","smoking","snake","snooze","snow-blowing","snowflake","snowflake-droplets","snowflakes","snowman","snowman-head","snowplow","soap","socks","soft-serve","solar-panel","solar-system","sort","sort-down","sort-up","spa","space-station-moon","space-station-moon-construction","spade","spaghetti-monster-flying","sparkle","sparkles","speaker","speakers","spell-check","spider","spider-black-widow","spider-web","spinner","spinner-scale","spinner-third","split","splotch","spoon","sportsball","spray-can","spray-can-sparkles","sprinkler","sprinkler-ceiling","square","square-0","square-1","square-2","square-3","square-4","square-5","square-6","square-7","square-8","square-9","square-a","square-a-lock","square-ampersand","square-arrow-down","square-arrow-down-left","square-arrow-down-right","square-arrow-left","square-arrow-right","square-arrow-up","square-arrow-up-left","square-arrow-up-right","square-b","square-bolt","square-c","square-caret-down","square-caret-left","square-caret-right","square-caret-up","square-check","square-chevron-down","square-chevron-left","square-chevron-right","square-chevron-up","square-code","square-d","square-dashed","square-dashed-circle-plus","square-divide","square-dollar","square-down","square-down-left","square-down-right","square-e","square-ellipsis","square-ellipsis-vertical","square-envelope","square-exclamation","square-f","square-fragile","square-full","square-g","square-h","square-heart","square-i","square-info","square-j","square-k","square-kanban","square-l","square-left","square-list","square-m","square-minus","square-n","square-nfi","square-o","square-p","square-parking","square-parking-slash","square-pen","square-person-confined","square-phone","square-phone-flip","square-phone-hangup","square-plus","square-poll-horizontal","square-poll-vertical","square-q","square-quarters","square-question","square-quote","square-r","square-right","square-ring","square-root","square-root-variable","square-rss","square-s","square-share-nodes","square-sliders","square-sliders-vertical","square-small","square-star","square-t","square-terminal","square-this-way-up","square-u","square-up","square-up-left","square-up-right","square-user","square-v","square-virus","square-w","square-x","square-xmark","square-y","square-z","squid","squirrel","staff","staff-snake","stairs","stamp","standard-definition","stapler","star","star-and-crescent","star-christmas","star-exclamation","star-half","star-half-stroke","star-of-david","star-of-life","star-sharp","star-sharp-half","star-sharp-half-stroke","star-shooting","starfighter","starfighter-twin-ion-engine","starfighter-twin-ion-engine-advanced","stars","starship","starship-freighter","steak","steering-wheel","sterling-sign","stethoscope","stocking","stomach","stop","stopwatch","stopwatch-20","store","store-lock","store-slash","strawberry","street-view","stretcher","strikethrough","stroopwafel","subscript","subtitles","subtitles-slash","suitcase","suitcase-medical","suitcase-rolling","sun","sun-bright","sun-cloud","sun-dust","sun-haze","sun-plant-wilt","sunglasses","sunrise","sunset","superscript","sushi","sushi-roll","swap","swap-arrows","swatchbook","sword","sword-laser","sword-laser-alt","swords","swords-laser","symbols","synagogue","syringe","t","t-rex","table","table-cells","table-cells-column-lock","table-cells-column-unlock","table-cells-large","table-cells-lock","table-cells-row-lock","table-cells-row-unlock","table-cells-unlock","table-columns","table-layout","table-list","table-picnic","table-pivot","table-rows","table-tennis-paddle-ball","table-tree","tablet","tablet-button","tablet-rugged","tablet-screen","tablet-screen-button","tablets","tachograph-digital","taco","tag","tags","tally","tally-1","tally-2","tally-3","tally-4","tamale","tank-water","tape","tarp","tarp-droplet","taxi","taxi-bus","teddy-bear","teeth","teeth-open","telescope","temperature-arrow-down","temperature-arrow-up","temperature-empty","temperature-full","temperature-half","temperature-high","temperature-list","temperature-low","temperature-quarter","temperature-snow","temperature-sun","temperature-three-quarters","tenge-sign","tennis-ball","tent","tent-arrow-down-to-line","tent-arrow-left-right","tent-arrow-turn-left","tent-arrows-down","tent-double-peak","tents","terminal","text","text-height","text-size","text-slash","text-width","thermometer","theta","thought-bubble","thumbs-down","thumbs-up","thumbtack","thumbtack-slash","tick","ticket","ticket-airline","ticket-perforated","ticket-simple","tickets","tickets-airline","tickets-perforated","tickets-simple","tilde","timeline","timeline-arrow","timer","tire","tire-flat","tire-pressure-warning","tire-rugged","toggle-large-off","toggle-large-on","toggle-off","toggle-on","toilet","toilet-paper","toilet-paper-blank","toilet-paper-blank-under","toilet-paper-check","toilet-paper-slash","toilet-paper-under","toilet-paper-under-slash","toilet-paper-xmark","toilet-portable","toilets-portable","tomato","tombstone","tombstone-blank","toolbox","tooth","toothbrush","torii-gate","tornado","tower-broadcast","tower-cell","tower-control","tower-observation","tractor","trademark","traffic-cone","traffic-light","traffic-light-go","traffic-light-slow","traffic-light-stop","trailer","train","train-subway","train-subway-tunnel","train-track","train-tram","train-tunnel","transformer-bolt","transgender","transporter","transporter-1","transporter-2","transporter-3","transporter-4","transporter-5","transporter-6","transporter-7","transporter-empty","trash","trash-arrow-up","trash-can","trash-can-arrow-up","trash-can-check","trash-can-clock","trash-can-list","trash-can-plus","trash-can-slash","trash-can-undo","trash-can-xmark","trash-check","trash-clock","trash-list","trash-plus","trash-slash","trash-undo","trash-xmark","treasure-chest","tree","tree-christmas","tree-city","tree-deciduous","tree-decorated","tree-large","tree-palm","trees","triangle","triangle-exclamation","triangle-instrument","triangle-person-digging","tricycle","tricycle-adult","trillium","trophy","trophy-star","trowel","trowel-bricks","truck","truck-arrow-right","truck-bolt","truck-clock","truck-container","truck-container-empty","truck-droplet","truck-fast","truck-field","truck-field-un","truck-fire","truck-flatbed","truck-front","truck-ladder","truck-medical","truck-monster","truck-moving","truck-pickup","truck-plane","truck-plow","truck-ramp","truck-ramp-box","truck-ramp-couch","truck-tow","truck-utensils","trumpet","tty","tty-answer","tugrik-sign","turkey","turkish-lira-sign","turn-down","turn-down-left","turn-down-right","turn-left","turn-left-down","turn-left-up","turn-right","turn-up","turntable","turtle","tv","tv-music","tv-retro","typewriter","u","ufo","ufo-beam","umbrella","umbrella-beach","umbrella-simple","underline","unicorn","uniform-martial-arts","union","universal-access","unlock","unlock-keyhole","up","up-down","up-down-left-right","up-from-bracket","up-from-dotted-line","up-from-line","up-left","up-long","up-right","up-right-and-down-left-from-center","up-right-from-square","up-to-bracket","up-to-dotted-line","up-to-line","upload","usb-drive","user","user-alien","user-astronaut","user-beard-bolt","user-bounty-hunter","user-check","user-chef","user-clock","user-cowboy","user-crown","user-doctor","user-doctor-hair","user-doctor-hair-long","user-doctor-message","user-gear","user-graduate","user-group","user-group-crown","user-group-simple","user-hair","user-hair-buns","user-hair-long","user-hair-mullet","user-headset","user-helmet-safety","user-hoodie","user-injured","user-large","user-large-slash","user-lock","user-magnifying-glass","user-minus","user-music","user-ninja","user-nurse","user-nurse-hair","user-nurse-hair-long","user-pen","user-pilot","user-pilot-tie","user-plus","user-police","user-police-tie","user-robot","user-robot-xmarks","user-secret","user-shakespeare","user-shield","user-slash","user-tag","user-tie","user-tie-hair","user-tie-hair-long","user-unlock","user-visor","user-vneck","user-vneck-hair","user-vneck-hair-long","user-xmark","users","users-between-lines","users-gear","users-line","users-medical","users-rays","users-rectangle","users-slash","users-viewfinder","utensils","utensils-slash","utility-pole","utility-pole-double","v","vacuum","vacuum-robot","value-absolute","van-shuttle","vault","vector-circle","vector-polygon","vector-square","vent-damper","venus","venus-double","venus-mars","vest","vest-patches","vial","vial-circle-check","vial-virus","vials","video","video-arrow-down-left","video-arrow-up-right","video-plus","video-slash","vihara","violin","virus","virus-covid","virus-covid-slash","virus-slash","viruses","voicemail","volcano","volleyball","volume","volume-high","volume-low","volume-off","volume-slash","volume-xmark","vr-cardboard","w","waffle","wagon-covered","walker","walkie-talkie","wallet","wand","wand-magic","wand-magic-sparkles","wand-sparkles","warehouse","warehouse-full","washing-machine","watch","watch-apple","watch-calculator","watch-fitness","watch-smart","water","water-arrow-down","water-arrow-up","water-ladder","watermelon-slice","wave","wave-pulse","wave-sine","wave-square","wave-triangle","waveform","waveform-lines","waves-sine","web-awesome","webhook","weight-hanging","weight-scale","whale","wheat","wheat-awn","wheat-awn-circle-exclamation","wheat-awn-slash","wheat-slash","wheelchair","wheelchair-move","whiskey-glass","whiskey-glass-ice","whistle","wifi","wifi-exclamation","wifi-fair","wifi-slash","wifi-weak","wind","wind-turbine","wind-warning","window","window-flip","window-frame","window-frame-open","window-maximize","window-minimize","window-restore","windsock","wine-bottle","wine-glass","wine-glass-crack","wine-glass-empty","won-sign","worm","wreath","wreath-laurel","wrench","wrench-simple","x","x-ray","xmark","xmark-large","xmark-to-slot","xmarks-lines","y","yen-sign","yin-yang","z"],"sharp-solid":["0","00","1","2","3","360-degrees","4","5","6","7","8","9","a","abacus","accent-grave","acorn","address-book","address-card","air-conditioner","airplay","alarm-clock","alarm-exclamation","alarm-plus","alarm-snooze","album","album-circle-plus","album-circle-user","album-collection","album-collection-circle-plus","album-collection-circle-user","alicorn","alien","alien-8bit","align-center","align-justify","align-left","align-right","align-slash","alt","amp-guitar","ampersand","anchor","anchor-circle-check","anchor-circle-exclamation","anchor-circle-xmark","anchor-lock","angel","angle","angle-90","angle-down","angle-left","angle-right","angle-up","angles-down","angles-left","angles-right","angles-up","angles-up-down","ankh","ant","apartment","aperture","apostrophe","apple-core","apple-whole","archway","arrow-down","arrow-down-1-9","arrow-down-9-1","arrow-down-a-z","arrow-down-arrow-up","arrow-down-big-small","arrow-down-from-arc","arrow-down-from-bracket","arrow-down-from-dotted-line","arrow-down-from-line","arrow-down-left","arrow-down-left-and-arrow-up-right-to-center","arrow-down-long","arrow-down-right","arrow-down-short-wide","arrow-down-small-big","arrow-down-square-triangle","arrow-down-to-arc","arrow-down-to-bracket","arrow-down-to-dotted-line","arrow-down-to-line","arrow-down-to-square","arrow-down-triangle-square","arrow-down-up-across-line","arrow-down-up-lock","arrow-down-wide-short","arrow-down-z-a","arrow-left","arrow-left-from-arc","arrow-left-from-bracket","arrow-left-from-line","arrow-left-long","arrow-left-long-to-line","arrow-left-to-arc","arrow-left-to-bracket","arrow-left-to-line","arrow-pointer","arrow-progress","arrow-right","arrow-right-arrow-left","arrow-right-from-arc","arrow-right-from-bracket","arrow-right-from-line","arrow-right-long","arrow-right-long-to-line","arrow-right-to-arc","arrow-right-to-bracket","arrow-right-to-city","arrow-right-to-line","arrow-rotate-left","arrow-rotate-right","arrow-trend-down","arrow-trend-up","arrow-turn-down","arrow-turn-down-left","arrow-turn-down-right","arrow-turn-left","arrow-turn-left-down","arrow-turn-left-up","arrow-turn-right","arrow-turn-up","arrow-up","arrow-up-1-9","arrow-up-9-1","arrow-up-a-z","arrow-up-arrow-down","arrow-up-big-small","arrow-up-from-arc","arrow-up-from-bracket","arrow-up-from-dotted-line","arrow-up-from-ground-water","arrow-up-from-line","arrow-up-from-square","arrow-up-from-water-pump","arrow-up-left","arrow-up-left-from-circle","arrow-up-long","arrow-up-right","arrow-up-right-and-arrow-down-left-from-center","arrow-up-right-dots","arrow-up-right-from-square","arrow-up-short-wide","arrow-up-small-big","arrow-up-square-triangle","arrow-up-to-arc","arrow-up-to-bracket","arrow-up-to-dotted-line","arrow-up-to-line","arrow-up-triangle-square","arrow-up-wide-short","arrow-up-z-a","arrows-cross","arrows-down-to-line","arrows-down-to-people","arrows-from-dotted-line","arrows-from-line","arrows-left-right","arrows-left-right-to-line","arrows-maximize","arrows-minimize","arrows-repeat","arrows-repeat-1","arrows-retweet","arrows-rotate","arrows-rotate-reverse","arrows-spin","arrows-split-up-and-left","arrows-to-circle","arrows-to-dot","arrows-to-dotted-line","arrows-to-eye","arrows-to-line","arrows-turn-right","arrows-turn-to-dots","arrows-up-down","arrows-up-down-left-right","arrows-up-to-line","asterisk","at","atom","atom-simple","audio-description","audio-description-slash","austral-sign","avocado","award","award-simple","axe","axe-battle","b","baby","baby-carriage","backpack","backward","backward-fast","backward-step","bacon","bacteria","bacterium","badge","badge-check","badge-dollar","badge-percent","badge-sheriff","badger-honey","badminton","bag-seedling","bag-shopping","bag-shopping-minus","bag-shopping-plus","bagel","bags-shopping","baguette","bahai","baht-sign","ball-pile","balloon","balloons","ballot","ballot-check","ban","ban-bug","ban-parking","ban-smoking","banana","bandage","bangladeshi-taka-sign","banjo","barcode","barcode-read","barcode-scan","bars","bars-filter","bars-progress","bars-sort","bars-staggered","baseball","baseball-bat-ball","basket-shopping","basket-shopping-minus","basket-shopping-plus","basket-shopping-simple","basketball","basketball-hoop","bat","bath","battery-bolt","battery-empty","battery-exclamation","battery-full","battery-half","battery-low","battery-quarter","battery-slash","battery-three-quarters","bed","bed-bunk","bed-empty","bed-front","bed-pulse","bee","beer-mug","beer-mug-empty","bell","bell-concierge","bell-exclamation","bell-on","bell-plus","bell-ring","bell-school","bell-school-slash","bell-slash","bells","bench-tree","bezier-curve","bicycle","billboard","bin-bottles","bin-bottles-recycle","bin-recycle","binary","binary-circle-check","binary-lock","binary-slash","binoculars","biohazard","bird","bitcoin-sign","blanket","blanket-fire","blender","blender-phone","blinds","blinds-open","blinds-raised","block","block-brick","block-brick-fire","block-question","block-quote","blog","blueberries","bluetooth","bold","bolt","bolt-auto","bolt-lightning","bolt-slash","bomb","bone","bone-break","bong","book","book-arrow-right","book-arrow-up","book-atlas","book-bible","book-blank","book-bookmark","book-circle-arrow-right","book-circle-arrow-up","book-copy","book-font","book-heart","book-journal-whills","book-medical","book-open","book-open-cover","book-open-reader","book-quran","book-section","book-skull","book-sparkles","book-tanakh","book-user","bookmark","bookmark-slash","books","books-medical","boombox","boot","boot-heeled","booth-curtain","border-all","border-bottom","border-bottom-right","border-center-h","border-center-v","border-inner","border-left","border-none","border-outer","border-right","border-top","border-top-left","bore-hole","bottle-baby","bottle-droplet","bottle-water","bow-arrow","bowl-chopsticks","bowl-chopsticks-noodles","bowl-food","bowl-hot","bowl-rice","bowl-scoop","bowl-scoops","bowl-soft-serve","bowl-spoon","bowling-ball","bowling-ball-pin","bowling-pins","box","box-archive","box-ballot","box-check","box-circle-check","box-dollar","box-heart","box-open","box-open-full","box-taped","box-tissue","boxes-packing","boxes-stacked","boxing-glove","bracket-curly","bracket-curly-right","bracket-round","bracket-round-right","bracket-square","bracket-square-right","brackets-curly","brackets-round","brackets-square","braille","brain","brain-arrow-curved-right","brain-circuit","brake-warning","brazilian-real-sign","bread-loaf","bread-slice","bread-slice-butter","bridge","bridge-circle-check","bridge-circle-exclamation","bridge-circle-xmark","bridge-lock","bridge-suspension","bridge-water","briefcase","briefcase-arrow-right","briefcase-blank","briefcase-medical","brightness","brightness-low","bring-forward","bring-front","broccoli","broom","broom-ball","broom-wide","browser","browsers","brush","bucket","bug","bug-slash","bugs","building","building-circle-arrow-right","building-circle-check","building-circle-exclamation","building-circle-xmark","building-columns","building-flag","building-lock","building-magnifying-glass","building-memo","building-ngo","building-shield","building-un","building-user","building-wheat","buildings","bulldozer","bullhorn","bullseye","bullseye-arrow","bullseye-pointer","buoy","buoy-mooring","burger","burger-cheese","burger-fries","burger-glass","burger-lettuce","burger-soda","burrito","burst","bus","bus-school","bus-simple","business-time","butter","c","cabin","cabinet-filing","cable-car","cactus","caduceus","cake-candles","cake-slice","calculator","calculator-simple","calendar","calendar-arrow-down","calendar-arrow-up","calendar-check","calendar-circle-exclamation","calendar-circle-minus","calendar-circle-plus","calendar-circle-user","calendar-clock","calendar-day","calendar-days","calendar-exclamation","calendar-heart","calendar-image","calendar-lines","calendar-lines-pen","calendar-minus","calendar-pen","calendar-plus","calendar-range","calendar-star","calendar-users","calendar-week","calendar-xmark","calendars","camcorder","camera","camera-cctv","camera-movie","camera-polaroid","camera-retro","camera-rotate","camera-security","camera-slash","camera-viewfinder","camera-web","camera-web-slash","campfire","campground","can-food","candle-holder","candy","candy-bar","candy-cane","candy-corn","cannabis","cannon","capsules","car","car-battery","car-bolt","car-building","car-bump","car-burst","car-bus","car-circle-bolt","car-garage","car-mirrors","car-on","car-rear","car-side","car-side-bolt","car-tilt","car-tunnel","car-wash","car-wrench","caravan","caravan-simple","card-club","card-diamond","card-heart","card-spade","cards","cards-blank","caret-down","caret-left","caret-right","caret-up","carrot","cars","cart-arrow-down","cart-arrow-up","cart-circle-arrow-down","cart-circle-arrow-up","cart-circle-check","cart-circle-exclamation","cart-circle-plus","cart-circle-xmark","cart-flatbed","cart-flatbed-boxes","cart-flatbed-empty","cart-flatbed-suitcase","cart-minus","cart-plus","cart-shopping","cart-shopping-fast","cart-xmark","cash-register","cassette-betamax","cassette-tape","cassette-vhs","castle","cat","cat-space","cauldron","cedi-sign","cent-sign","certificate","chair","chair-office","chalkboard","chalkboard-user","champagne-glass","champagne-glasses","charging-station","chart-area","chart-bar","chart-bullet","chart-candlestick","chart-column","chart-gantt","chart-kanban","chart-line","chart-line-down","chart-line-up","chart-line-up-down","chart-mixed","chart-mixed-up-circle-currency","chart-mixed-up-circle-dollar","chart-network","chart-pie","chart-pie-simple","chart-pie-simple-circle-currency","chart-pie-simple-circle-dollar","chart-pyramid","chart-radar","chart-scatter","chart-scatter-3d","chart-scatter-bubble","chart-simple","chart-simple-horizontal","chart-tree-map","chart-user","chart-waterfall","check","check-double","check-to-slot","cheese","cheese-swiss","cherries","chess","chess-bishop","chess-bishop-piece","chess-board","chess-clock","chess-clock-flip","chess-king","chess-king-piece","chess-knight","chess-knight-piece","chess-pawn","chess-pawn-piece","chess-queen","chess-queen-piece","chess-rook","chess-rook-piece","chestnut","chevron-down","chevron-left","chevron-right","chevron-up","chevrons-down","chevrons-left","chevrons-right","chevrons-up","chf-sign","child","child-combatant","child-dress","child-reaching","children","chimney","chopsticks","church","circle","circle-0","circle-1","circle-2","circle-3","circle-4","circle-5","circle-6","circle-7","circle-8","circle-9","circle-a","circle-ampersand","circle-arrow-down","circle-arrow-down-left","circle-arrow-down-right","circle-arrow-left","circle-arrow-right","circle-arrow-up","circle-arrow-up-left","circle-arrow-up-right","circle-b","circle-bolt","circle-book-open","circle-bookmark","circle-c","circle-calendar","circle-camera","circle-caret-down","circle-caret-left","circle-caret-right","circle-caret-up","circle-check","circle-chevron-down","circle-chevron-left","circle-chevron-right","circle-chevron-up","circle-d","circle-dashed","circle-divide","circle-dollar","circle-dollar-to-slot","circle-dot","circle-down","circle-down-left","circle-down-right","circle-e","circle-ellipsis","circle-ellipsis-vertical","circle-envelope","circle-euro","circle-exclamation","circle-exclamation-check","circle-f","circle-g","circle-gf","circle-h","circle-half","circle-half-stroke","circle-heart","circle-i","circle-info","circle-j","circle-k","circle-l","circle-left","circle-location-arrow","circle-m","circle-microphone","circle-microphone-lines","circle-minus","circle-n","circle-nodes","circle-notch","circle-o","circle-p","circle-parking","circle-pause","circle-phone","circle-phone-flip","circle-phone-hangup","circle-play","circle-plus","circle-q","circle-quarter","circle-quarter-stroke","circle-quarters","circle-question","circle-r","circle-radiation","circle-right","circle-s","circle-small","circle-sort","circle-sort-down","circle-sort-up","circle-star","circle-sterling","circle-stop","circle-t","circle-three-quarters","circle-three-quarters-stroke","circle-trash","circle-u","circle-up","circle-up-left","circle-up-right","circle-user","circle-v","circle-video","circle-w","circle-waveform-lines","circle-wifi","circle-wifi-circle-wifi","circle-x","circle-xmark","circle-y","circle-yen","circle-z","circles-overlap","citrus","citrus-slice","city","clapperboard","clapperboard-play","clarinet","claw-marks","clipboard","clipboard-check","clipboard-list","clipboard-list-check","clipboard-medical","clipboard-prescription","clipboard-question","clipboard-user","clock","clock-desk","clock-eight","clock-eight-thirty","clock-eleven","clock-eleven-thirty","clock-five","clock-five-thirty","clock-four-thirty","clock-nine","clock-nine-thirty","clock-one","clock-one-thirty","clock-rotate-left","clock-seven","clock-seven-thirty","clock-six","clock-six-thirty","clock-ten","clock-ten-thirty","clock-three","clock-three-thirty","clock-twelve","clock-twelve-thirty","clock-two","clock-two-thirty","clone","closed-captioning","closed-captioning-slash","clothes-hanger","cloud","cloud-arrow-down","cloud-arrow-up","cloud-binary","cloud-bolt","cloud-bolt-moon","cloud-bolt-sun","cloud-check","cloud-drizzle","cloud-exclamation","cloud-fog","cloud-hail","cloud-hail-mixed","cloud-meatball","cloud-minus","cloud-moon","cloud-moon-rain","cloud-music","cloud-plus","cloud-question","cloud-rain","cloud-rainbow","cloud-showers","cloud-showers-heavy","cloud-showers-water","cloud-slash","cloud-sleet","cloud-snow","cloud-sun","cloud-sun-rain","cloud-word","cloud-xmark","clouds","clouds-moon","clouds-sun","clover","club","coconut","code","code-branch","code-commit","code-compare","code-fork","code-merge","code-pull-request","code-pull-request-closed","code-pull-request-draft","code-simple","coffee-bean","coffee-beans","coffee-pot","coffin","coffin-cross","coin","coin-blank","coin-front","coin-vertical","coins","colon","colon-sign","columns-3","comet","comma","command","comment","comment-arrow-down","comment-arrow-up","comment-arrow-up-right","comment-captions","comment-check","comment-code","comment-dollar","comment-dots","comment-exclamation","comment-heart","comment-image","comment-lines","comment-medical","comment-middle","comment-middle-top","comment-minus","comment-music","comment-pen","comment-plus","comment-question","comment-quote","comment-slash","comment-smile","comment-sms","comment-text","comment-xmark","comments","comments-dollar","comments-question","comments-question-check","compact-disc","compass","compass-drafting","compass-slash","compress","compress-wide","computer","computer-classic","computer-mouse","computer-mouse-scrollwheel","computer-speaker","container-storage","conveyor-belt","conveyor-belt-arm","conveyor-belt-boxes","conveyor-belt-empty","cookie","cookie-bite","copy","copyright","corn","corner","couch","court-sport","cow","cowbell","cowbell-circle-plus","crab","crate-apple","crate-empty","credit-card","credit-card-blank","credit-card-front","cricket-bat-ball","croissant","crop","crop-simple","cross","crosshairs","crosshairs-simple","crow","crown","crutch","crutches","cruzeiro-sign","crystal-ball","cube","cubes","cubes-stacked","cucumber","cup-straw","cup-straw-swoosh","cup-togo","cupcake","curling-stone","custard","d","dagger","dash","database","deer","deer-rudolph","delete-left","delete-right","democrat","desktop","desktop-arrow-down","dharmachakra","diagram-cells","diagram-lean-canvas","diagram-nested","diagram-next","diagram-predecessor","diagram-previous","diagram-project","diagram-sankey","diagram-subtask","diagram-successor","diagram-venn","dial","dial-high","dial-low","dial-max","dial-med","dial-med-low","dial-min","dial-off","diamond","diamond-exclamation","diamond-half","diamond-half-stroke","diamond-turn-right","diamonds-4","dice","dice-d10","dice-d12","dice-d20","dice-d4","dice-d6","dice-d8","dice-five","dice-four","dice-one","dice-six","dice-three","dice-two","dinosaur","diploma","disc-drive","disease","display","display-arrow-down","display-chart-up","display-chart-up-circle-currency","display-chart-up-circle-dollar","display-code","display-medical","display-slash","distribute-spacing-horizontal","distribute-spacing-vertical","ditto","divide","dna","do-not-enter","dog","dog-leashed","dollar-sign","dolly","dolly-empty","dolphin","dong-sign","donut","door-closed","door-open","dove","down","down-from-bracket","down-from-dotted-line","down-from-line","down-left","down-left-and-up-right-to-center","down-long","down-right","down-to-bracket","down-to-dotted-line","down-to-line","download","dragon","draw-circle","draw-polygon","draw-square","dreidel","drone","drone-front","droplet","droplet-degree","droplet-percent","droplet-slash","drum","drum-steelpan","drumstick","drumstick-bite","dryer","dryer-heat","duck","dumbbell","dumpster","dumpster-fire","dungeon","e","ear","ear-deaf","ear-listen","ear-muffs","earth-africa","earth-americas","earth-asia","earth-europe","earth-oceania","eclipse","egg","egg-fried","eggplant","eject","elephant","elevator","ellipsis","ellipsis-stroke","ellipsis-stroke-vertical","ellipsis-vertical","empty-set","engine","engine-warning","envelope","envelope-circle-check","envelope-dot","envelope-open","envelope-open-dollar","envelope-open-text","envelopes","envelopes-bulk","equals","eraser","escalator","ethernet","euro-sign","excavator","exclamation","expand","expand-wide","explosion","eye","eye-dropper","eye-dropper-full","eye-dropper-half","eye-evil","eye-low-vision","eye-slash","eyes","f","face-angry","face-angry-horns","face-anguished","face-anxious-sweat","face-astonished","face-awesome","face-beam-hand-over-mouth","face-clouds","face-confounded","face-confused","face-cowboy-hat","face-diagonal-mouth","face-disappointed","face-disguise","face-dizzy","face-dotted","face-downcast-sweat","face-drooling","face-exhaling","face-explode","face-expressionless","face-eyes-xmarks","face-fearful","face-flushed","face-frown","face-frown-open","face-frown-slight","face-glasses","face-grimace","face-grin","face-grin-beam","face-grin-beam-sweat","face-grin-hearts","face-grin-squint","face-grin-squint-tears","face-grin-stars","face-grin-tears","face-grin-tongue","face-grin-tongue-squint","face-grin-tongue-wink","face-grin-wide","face-grin-wink","face-hand-over-mouth","face-hand-peeking","face-hand-yawn","face-head-bandage","face-holding-back-tears","face-hushed","face-icicles","face-kiss","face-kiss-beam","face-kiss-closed-eyes","face-kiss-wink-heart","face-laugh","face-laugh-beam","face-laugh-squint","face-laugh-wink","face-lying","face-mask","face-meh","face-meh-blank","face-melting","face-monocle","face-nauseated","face-nose-steam","face-party","face-pensive","face-persevering","face-pleading","face-pouting","face-raised-eyebrow","face-relieved","face-rolling-eyes","face-sad-cry","face-sad-sweat","face-sad-tear","face-saluting","face-scream","face-shush","face-sleeping","face-sleepy","face-smile","face-smile-beam","face-smile-halo","face-smile-hearts","face-smile-horns","face-smile-plus","face-smile-relaxed","face-smile-tear","face-smile-tongue","face-smile-upside-down","face-smile-wink","face-smiling-hands","face-smirking","face-spiral-eyes","face-sunglasses","face-surprise","face-swear","face-thermometer","face-thinking","face-tired","face-tissue","face-tongue-money","face-tongue-sweat","face-unamused","face-viewfinder","face-vomit","face-weary","face-woozy","face-worried","face-zany","face-zipper","falafel","family","family-dress","family-pants","fan","fan-table","farm","faucet","faucet-drip","fax","feather","feather-pointed","fence","ferris-wheel","ferry","field-hockey-stick-ball","file","file-arrow-down","file-arrow-up","file-audio","file-binary","file-cad","file-certificate","file-chart-column","file-chart-pie","file-check","file-circle-check","file-circle-exclamation","file-circle-info","file-circle-minus","file-circle-plus","file-circle-question","file-circle-xmark","file-code","file-contract","file-csv","file-dashed-line","file-doc","file-eps","file-excel","file-exclamation","file-export","file-gif","file-heart","file-image","file-import","file-invoice","file-invoice-dollar","file-jpg","file-lines","file-lock","file-magnifying-glass","file-medical","file-minus","file-mov","file-mp3","file-mp4","file-music","file-pdf","file-pen","file-plus","file-plus-minus","file-png","file-powerpoint","file-ppt","file-prescription","file-shield","file-signature","file-slash","file-spreadsheet","file-svg","file-user","file-vector","file-video","file-waveform","file-word","file-xls","file-xmark","file-xml","file-zip","file-zipper","files","files-medical","fill","fill-drip","film","film-canister","film-simple","film-slash","films","filter","filter-circle-dollar","filter-circle-xmark","filter-list","filter-slash","filters","fingerprint","fire","fire-burner","fire-extinguisher","fire-flame","fire-flame-curved","fire-flame-simple","fire-hydrant","fire-smoke","fireplace","fish","fish-bones","fish-cooked","fish-fins","fishing-rod","flag","flag-checkered","flag-pennant","flag-swallowtail","flag-usa","flashlight","flask","flask-gear","flask-round-poison","flask-round-potion","flask-vial","flatbread","flatbread-stuffed","floppy-disk","floppy-disk-circle-arrow-right","floppy-disk-circle-xmark","floppy-disk-pen","floppy-disks","florin-sign","flower","flower-daffodil","flower-tulip","flute","flux-capacitor","flying-disc","folder","folder-arrow-down","folder-arrow-up","folder-bookmark","folder-check","folder-closed","folder-gear","folder-grid","folder-heart","folder-image","folder-magnifying-glass","folder-medical","folder-minus","folder-music","folder-open","folder-plus","folder-tree","folder-user","folder-xmark","folders","fondue-pot","font","font-awesome","font-case","football","football-helmet","fork","fork-knife","forklift","fort","forward","forward-fast","forward-step","frame","franc-sign","french-fries","frog","function","futbol","g","galaxy","gallery-thumbnails","game-board","game-board-simple","game-console-handheld","game-console-handheld-crank","gamepad","gamepad-modern","garage","garage-car","garage-open","garlic","gas-pump","gas-pump-slash","gauge","gauge-circle-bolt","gauge-circle-minus","gauge-circle-plus","gauge-high","gauge-low","gauge-max","gauge-min","gauge-simple","gauge-simple-high","gauge-simple-low","gauge-simple-max","gauge-simple-min","gavel","gear","gear-code","gear-complex","gear-complex-code","gears","gem","genderless","ghost","gif","gift","gift-card","gifts","gingerbread-man","glass","glass-citrus","glass-empty","glass-half","glass-water","glass-water-droplet","glasses","glasses-round","globe","globe-pointer","globe-snow","globe-stand","globe-wifi","goal-net","golf-ball-tee","golf-club","golf-flag-hole","gopuram","graduation-cap","gramophone","grapes","grate","grate-droplet","greater-than","greater-than-equal","grid","grid-2","grid-2-plus","grid-4","grid-5","grid-dividers","grid-horizontal","grid-round","grid-round-2","grid-round-2-plus","grid-round-4","grid-round-5","grill","grill-fire","grill-hot","grip","grip-dots","grip-dots-vertical","grip-lines","grip-lines-vertical","grip-vertical","group-arrows-rotate","guarani-sign","guitar","guitar-electric","guitars","gun","gun-slash","gun-squirt","h","h1","h2","h3","h4","h5","h6","hammer","hammer-brush","hammer-crash","hammer-war","hamsa","hand","hand-back-fist","hand-back-point-down","hand-back-point-left","hand-back-point-ribbon","hand-back-point-right","hand-back-point-up","hand-dots","hand-fingers-crossed","hand-fist","hand-heart","hand-holding","hand-holding-box","hand-holding-circle-dollar","hand-holding-dollar","hand-holding-droplet","hand-holding-hand","hand-holding-heart","hand-holding-magic","hand-holding-medical","hand-holding-seedling","hand-holding-skull","hand-horns","hand-lizard","hand-love","hand-middle-finger","hand-peace","hand-point-down","hand-point-left","hand-point-ribbon","hand-point-right","hand-point-up","hand-pointer","hand-scissors","hand-sparkles","hand-spock","hand-wave","handcuffs","hands","hands-asl-interpreting","hands-bound","hands-bubbles","hands-clapping","hands-holding","hands-holding-child","hands-holding-circle","hands-holding-diamond","hands-holding-dollar","hands-holding-heart","hands-praying","handshake","handshake-angle","handshake-simple","handshake-simple-slash","handshake-slash","hanukiah","hard-drive","hashtag","hashtag-lock","hat-beach","hat-chef","hat-cowboy","hat-cowboy-side","hat-santa","hat-winter","hat-witch","hat-wizard","head-side","head-side-brain","head-side-cough","head-side-cough-slash","head-side-gear","head-side-goggles","head-side-headphones","head-side-heart","head-side-mask","head-side-medical","head-side-virus","heading","headphones","headphones-simple","headset","heart","heart-circle-bolt","heart-circle-check","heart-circle-exclamation","heart-circle-minus","heart-circle-plus","heart-circle-xmark","heart-crack","heart-half","heart-half-stroke","heart-pulse","heat","helicopter","helicopter-symbol","helmet-battle","helmet-safety","helmet-un","hexagon","hexagon-check","hexagon-divide","hexagon-exclamation","hexagon-image","hexagon-minus","hexagon-plus","hexagon-vertical-nft","hexagon-vertical-nft-slanted","hexagon-xmark","high-definition","highlighter","highlighter-line","hill-avalanche","hill-rockslide","hippo","hockey-mask","hockey-puck","hockey-stick-puck","hockey-sticks","holly-berry","honey-pot","hood-cloak","horizontal-rule","horse","horse-head","horse-saddle","hose","hose-reel","hospital","hospital-user","hospitals","hot-tub-person","hotdog","hotel","hourglass","hourglass-clock","hourglass-end","hourglass-half","hourglass-start","house","house-blank","house-building","house-chimney","house-chimney-blank","house-chimney-crack","house-chimney-heart","house-chimney-medical","house-chimney-user","house-chimney-window","house-circle-check","house-circle-exclamation","house-circle-xmark","house-crack","house-day","house-fire","house-flag","house-flood-water","house-flood-water-circle-arrow-right","house-heart","house-laptop","house-lock","house-medical","house-medical-circle-check","house-medical-circle-exclamation","house-medical-circle-xmark","house-medical-flag","house-night","house-person-leave","house-person-return","house-signal","house-tree","house-tsunami","house-turret","house-user","house-water","house-window","hryvnia-sign","hundred-points","hurricane","hydra","hyphen","i","i-cursor","ice-cream","ice-skate","icicles","icons","id-badge","id-card","id-card-clip","igloo","image","image-landscape","image-polaroid","image-polaroid-user","image-portrait","image-slash","image-user","images","images-user","inbox","inbox-full","inbox-in","inbox-out","inboxes","indent","indian-rupee-sign","industry","industry-windows","infinity","info","inhaler","input-numeric","input-pipe","input-text","integral","interrobang","intersection","island-tropical","italic","j","jack-o-lantern","jar","jar-wheat","jedi","jet-fighter","jet-fighter-up","joint","joystick","jug","jug-bottle","jug-detergent","k","kaaba","kazoo","kerning","key","key-skeleton","key-skeleton-left-right","keyboard","keyboard-brightness","keyboard-brightness-low","keyboard-down","keyboard-left","keynote","khanda","kidneys","kip-sign","kit-medical","kitchen-set","kite","kiwi-bird","kiwi-fruit","knife","knife-kitchen","l","lacrosse-stick","lacrosse-stick-ball","lambda","lamp","lamp-desk","lamp-floor","lamp-street","land-mine-on","landmark","landmark-dome","landmark-flag","landmark-magnifying-glass","language","laptop","laptop-arrow-down","laptop-binary","laptop-code","laptop-file","laptop-medical","laptop-mobile","laptop-slash","lari-sign","lasso","lasso-sparkles","layer-group","layer-minus","layer-plus","leaf","leaf-heart","leaf-maple","leaf-oak","leafy-green","left","left-from-bracket","left-from-line","left-long","left-long-to-line","left-right","left-to-bracket","left-to-line","lemon","less-than","less-than-equal","life-ring","light-ceiling","light-emergency","light-emergency-on","light-switch","light-switch-off","light-switch-on","lightbulb","lightbulb-cfl","lightbulb-cfl-on","lightbulb-dollar","lightbulb-exclamation","lightbulb-exclamation-on","lightbulb-gear","lightbulb-message","lightbulb-on","lightbulb-slash","lighthouse","lights-holiday","line-columns","line-height","lines-leaning","link","link-horizontal","link-horizontal-slash","link-simple","link-simple-slash","link-slash","lips","lira-sign","list","list-check","list-dropdown","list-music","list-ol","list-radio","list-timeline","list-tree","list-ul","litecoin-sign","loader","lobster","location-arrow","location-arrow-up","location-check","location-crosshairs","location-crosshairs-slash","location-dot","location-dot-slash","location-exclamation","location-minus","location-pen","location-pin","location-pin-lock","location-pin-slash","location-plus","location-question","location-smile","location-xmark","lock","lock-a","lock-hashtag","lock-keyhole","lock-keyhole-open","lock-open","locust","lollipop","loveseat","luchador-mask","lungs","lungs-virus","m","mace","magnet","magnifying-glass","magnifying-glass-arrow-right","magnifying-glass-arrows-rotate","magnifying-glass-chart","magnifying-glass-dollar","magnifying-glass-location","magnifying-glass-minus","magnifying-glass-music","magnifying-glass-play","magnifying-glass-plus","magnifying-glass-waveform","mailbox","mailbox-flag-up","manat-sign","mandolin","mango","manhole","map","map-location","map-location-dot","map-pin","marker","mars","mars-and-venus","mars-and-venus-burst","mars-double","mars-stroke","mars-stroke-right","mars-stroke-up","martini-glass","martini-glass-citrus","martini-glass-empty","mask","mask-face","mask-snorkel","mask-ventilator","masks-theater","mattress-pillow","maximize","meat","medal","megaphone","melon","melon-slice","memo","memo-circle-check","memo-circle-info","memo-pad","memory","menorah","mercury","merge","message","message-arrow-down","message-arrow-up","message-arrow-up-right","message-bot","message-captions","message-check","message-code","message-dollar","message-dots","message-exclamation","message-heart","message-image","message-lines","message-medical","message-middle","message-middle-top","message-minus","message-music","message-pen","message-plus","message-question","message-quote","message-slash","message-smile","message-sms","message-text","message-xmark","messages","messages-dollar","messages-question","meteor","meter","meter-bolt","meter-droplet","meter-fire","microchip","microchip-ai","microphone","microphone-lines","microphone-lines-slash","microphone-slash","microphone-stand","microscope","microwave","mill-sign","minimize","minus","mistletoe","mitten","mobile","mobile-button","mobile-notch","mobile-retro","mobile-screen","mobile-screen-button","mobile-signal","mobile-signal-out","money-bill","money-bill-1","money-bill-1-wave","money-bill-simple","money-bill-simple-wave","money-bill-transfer","money-bill-trend-up","money-bill-wave","money-bill-wheat","money-bills","money-bills-simple","money-check","money-check-dollar","money-check-dollar-pen","money-check-pen","money-from-bracket","money-simple-from-bracket","monitor-waveform","monkey","monument","moon","moon-cloud","moon-over-sun","moon-stars","moped","mortar-pestle","mosque","mosquito","mosquito-net","motorcycle","mound","mountain","mountain-city","mountain-sun","mountains","mouse-field","mp3-player","mug","mug-hot","mug-marshmallows","mug-saucer","mug-tea","mug-tea-saucer","mushroom","music","music-magnifying-glass","music-note","music-note-slash","music-slash","mustache","n","naira-sign","narwhal","nesting-dolls","network-wired","neuter","newspaper","nfc","nfc-lock","nfc-magnifying-glass","nfc-pen","nfc-signal","nfc-slash","nfc-symbol","nfc-trash","nose","not-equal","notdef","note","note-medical","note-sticky","notebook","notes","notes-medical","o","object-exclude","object-group","object-intersect","object-subtract","object-ungroup","object-union","objects-align-bottom","objects-align-center-horizontal","objects-align-center-vertical","objects-align-left","objects-align-right","objects-align-top","objects-column","octagon","octagon-check","octagon-divide","octagon-exclamation","octagon-minus","octagon-plus","octagon-xmark","octopus","oil-can","oil-can-drip","oil-temperature","oil-well","olive","olive-branch","om","omega","onion","option","ornament","otter","outdent","outlet","oven","overline","p","page","page-caret-down","page-caret-up","pager","paint-roller","paintbrush","paintbrush-fine","paintbrush-pencil","palette","pallet","pallet-box","pallet-boxes","pan-food","pan-frying","pancakes","panel-ews","panel-fire","panorama","paper-plane","paper-plane-top","paperclip","paperclip-vertical","parachute-box","paragraph","paragraph-left","party-bell","party-horn","passport","paste","pause","paw","paw-claws","paw-simple","peace","peach","peanut","peanuts","peapod","pear","pedestal","pegasus","pen","pen-circle","pen-clip","pen-clip-slash","pen-fancy","pen-fancy-slash","pen-field","pen-line","pen-nib","pen-nib-slash","pen-paintbrush","pen-ruler","pen-slash","pen-swirl","pen-to-square","pencil","pencil-mechanical","pencil-slash","people","people-arrows","people-carry-box","people-dress","people-dress-simple","people-group","people-line","people-pants","people-pants-simple","people-pulling","people-robbery","people-roof","people-simple","pepper","pepper-hot","percent","period","person","person-arrow-down-to-line","person-arrow-up-from-line","person-biking","person-biking-mountain","person-booth","person-breastfeeding","person-burst","person-cane","person-carry-box","person-chalkboard","person-circle-check","person-circle-exclamation","person-circle-minus","person-circle-plus","person-circle-question","person-circle-xmark","person-digging","person-dolly","person-dolly-empty","person-dots-from-line","person-dress","person-dress-burst","person-dress-fairy","person-dress-simple","person-drowning","person-fairy","person-falling","person-falling-burst","person-from-portal","person-half-dress","person-harassing","person-hiking","person-military-pointing","person-military-rifle","person-military-to-person","person-pinball","person-praying","person-pregnant","person-rays","person-rifle","person-running","person-running-fast","person-seat","person-seat-reclined","person-shelter","person-sign","person-simple","person-skating","person-ski-jumping","person-ski-lift","person-skiing","person-skiing-nordic","person-sledding","person-snowboarding","person-snowmobiling","person-swimming","person-through-window","person-to-door","person-to-portal","person-walking","person-walking-arrow-loop-left","person-walking-arrow-right","person-walking-dashed-line-arrow-right","person-walking-luggage","person-walking-with-cane","peseta-sign","peso-sign","phone","phone-arrow-down-left","phone-arrow-right","phone-arrow-up-right","phone-flip","phone-hangup","phone-intercom","phone-missed","phone-office","phone-plus","phone-rotary","phone-slash","phone-volume","phone-xmark","photo-film","photo-film-music","pi","piano","piano-keyboard","pickaxe","pickleball","pie","pig","piggy-bank","pills","pinata","pinball","pineapple","pipe","pipe-circle-check","pipe-collar","pipe-section","pipe-smoking","pipe-valve","pizza","pizza-slice","place-of-worship","plane","plane-arrival","plane-circle-check","plane-circle-exclamation","plane-circle-xmark","plane-departure","plane-engines","plane-lock","plane-prop","plane-slash","plane-tail","plane-up","plane-up-slash","planet-moon","planet-ringed","plant-wilt","plate-utensils","plate-wheat","play","play-pause","plug","plug-circle-bolt","plug-circle-check","plug-circle-exclamation","plug-circle-minus","plug-circle-plus","plug-circle-xmark","plus","plus-large","plus-minus","podcast","podium","podium-star","police-box","poll-people","pompebled","poo","poo-storm","pool-8-ball","poop","popcorn","popsicle","pot-food","potato","power-off","prescription","prescription-bottle","prescription-bottle-medical","prescription-bottle-pill","presentation-screen","pretzel","print","print-magnifying-glass","print-slash","projector","pump","pump-medical","pump-soap","pumpkin","puzzle","puzzle-piece","puzzle-piece-simple","q","qrcode","question","quote-left","quote-right","quotes","r","rabbit","rabbit-running","raccoon","racquet","radar","radiation","radio","radio-tuner","rainbow","raindrops","ram","ramp-loading","ranking-star","raygun","receipt","record-vinyl","rectangle","rectangle-ad","rectangle-barcode","rectangle-code","rectangle-history","rectangle-history-circle-plus","rectangle-history-circle-user","rectangle-list","rectangle-pro","rectangle-terminal","rectangle-vertical","rectangle-vertical-history","rectangle-wide","rectangle-xmark","rectangles-mixed","recycle","reel","reflect-both","reflect-horizontal","reflect-vertical","refrigerator","registered","repeat","repeat-1","reply","reply-all","reply-clock","republican","restroom","restroom-simple","retweet","rhombus","ribbon","right","right-from-bracket","right-from-line","right-left","right-left-large","right-long","right-long-to-line","right-to-bracket","right-to-line","ring","ring-diamond","rings-wedding","road","road-barrier","road-bridge","road-circle-check","road-circle-exclamation","road-circle-xmark","road-lock","road-spikes","robot","robot-astromech","rocket","rocket-launch","roller-coaster","rotate","rotate-exclamation","rotate-left","rotate-reverse","rotate-right","route","route-highway","route-interstate","router","rss","ruble-sign","rug","rugby-ball","ruler","ruler-combined","ruler-horizontal","ruler-triangle","ruler-vertical","rupee-sign","rupiah-sign","rv","s","sack","sack-dollar","sack-xmark","sailboat","salad","salt-shaker","sandwich","satellite","satellite-dish","sausage","saxophone","saxophone-fire","scale-balanced","scale-unbalanced","scale-unbalanced-flip","scalpel","scalpel-line-dashed","scanner-gun","scanner-image","scanner-keyboard","scanner-touchscreen","scarecrow","scarf","school","school-circle-check","school-circle-exclamation","school-circle-xmark","school-flag","school-lock","scissors","screen-users","screencast","screwdriver","screwdriver-wrench","scribble","scroll","scroll-old","scroll-torah","scrubber","scythe","sd-card","sd-cards","seal","seal-exclamation","seal-question","seat-airline","section","seedling","semicolon","send-back","send-backward","sensor","sensor-cloud","sensor-fire","sensor-on","sensor-triangle-exclamation","server","shapes","share","share-all","share-from-square","share-nodes","sheep","sheet-plastic","shekel-sign","shelves","shelves-empty","shield","shield-cat","shield-check","shield-cross","shield-dog","shield-exclamation","shield-halved","shield-heart","shield-keyhole","shield-minus","shield-plus","shield-quartered","shield-slash","shield-virus","shield-xmark","ship","shirt","shirt-long-sleeve","shirt-running","shirt-tank-top","shish-kebab","shoe-prints","shop","shop-lock","shop-slash","shovel","shovel-snow","shower","shower-down","shredder","shrimp","shuffle","shutters","shuttle-space","shuttlecock","sickle","sidebar","sidebar-flip","sigma","sign-hanging","sign-post","sign-posts","sign-posts-wrench","signal","signal-bars","signal-bars-fair","signal-bars-good","signal-bars-slash","signal-bars-weak","signal-fair","signal-good","signal-slash","signal-stream","signal-stream-slash","signal-strong","signal-weak","signature","signature-lock","signature-slash","signs-post","sim-card","sim-cards","sink","siren","siren-on","sitemap","skeleton","skeleton-ribs","ski-boot","ski-boot-ski","skull","skull-cow","skull-crossbones","slash","slash-back","slash-forward","sleigh","slider","sliders","sliders-simple","sliders-up","slot-machine","smog","smoke","smoking","snake","snooze","snow-blowing","snowflake","snowflake-droplets","snowflakes","snowman","snowman-head","snowplow","soap","socks","soft-serve","solar-panel","solar-system","sort","sort-down","sort-up","spa","space-station-moon","space-station-moon-construction","spade","spaghetti-monster-flying","sparkle","sparkles","speaker","speakers","spell-check","spider","spider-black-widow","spider-web","spinner","spinner-scale","spinner-third","split","splotch","spoon","sportsball","spray-can","spray-can-sparkles","sprinkler","sprinkler-ceiling","square","square-0","square-1","square-2","square-3","square-4","square-5","square-6","square-7","square-8","square-9","square-a","square-a-lock","square-ampersand","square-arrow-down","square-arrow-down-left","square-arrow-down-right","square-arrow-left","square-arrow-right","square-arrow-up","square-arrow-up-left","square-arrow-up-right","square-b","square-bolt","square-c","square-caret-down","square-caret-left","square-caret-right","square-caret-up","square-check","square-chevron-down","square-chevron-left","square-chevron-right","square-chevron-up","square-code","square-d","square-dashed","square-dashed-circle-plus","square-divide","square-dollar","square-down","square-down-left","square-down-right","square-e","square-ellipsis","square-ellipsis-vertical","square-envelope","square-exclamation","square-f","square-fragile","square-full","square-g","square-h","square-heart","square-i","square-info","square-j","square-k","square-kanban","square-l","square-left","square-list","square-m","square-minus","square-n","square-nfi","square-o","square-p","square-parking","square-parking-slash","square-pen","square-person-confined","square-phone","square-phone-flip","square-phone-hangup","square-plus","square-poll-horizontal","square-poll-vertical","square-q","square-quarters","square-question","square-quote","square-r","square-right","square-ring","square-root","square-root-variable","square-rss","square-s","square-share-nodes","square-sliders","square-sliders-vertical","square-small","square-star","square-t","square-terminal","square-this-way-up","square-u","square-up","square-up-left","square-up-right","square-user","square-v","square-virus","square-w","square-x","square-xmark","square-y","square-z","squid","squirrel","staff","staff-snake","stairs","stamp","standard-definition","stapler","star","star-and-crescent","star-christmas","star-exclamation","star-half","star-half-stroke","star-of-david","star-of-life","star-sharp","star-sharp-half","star-sharp-half-stroke","star-shooting","starfighter","starfighter-twin-ion-engine","starfighter-twin-ion-engine-advanced","stars","starship","starship-freighter","steak","steering-wheel","sterling-sign","stethoscope","stocking","stomach","stop","stopwatch","stopwatch-20","store","store-lock","store-slash","strawberry","street-view","stretcher","strikethrough","stroopwafel","subscript","subtitles","subtitles-slash","suitcase","suitcase-medical","suitcase-rolling","sun","sun-bright","sun-cloud","sun-dust","sun-haze","sun-plant-wilt","sunglasses","sunrise","sunset","superscript","sushi","sushi-roll","swap","swap-arrows","swatchbook","sword","sword-laser","sword-laser-alt","swords","swords-laser","symbols","synagogue","syringe","t","t-rex","table","table-cells","table-cells-column-lock","table-cells-column-unlock","table-cells-large","table-cells-lock","table-cells-row-lock","table-cells-row-unlock","table-cells-unlock","table-columns","table-layout","table-list","table-picnic","table-pivot","table-rows","table-tennis-paddle-ball","table-tree","tablet","tablet-button","tablet-rugged","tablet-screen","tablet-screen-button","tablets","tachograph-digital","taco","tag","tags","tally","tally-1","tally-2","tally-3","tally-4","tamale","tank-water","tape","tarp","tarp-droplet","taxi","taxi-bus","teddy-bear","teeth","teeth-open","telescope","temperature-arrow-down","temperature-arrow-up","temperature-empty","temperature-full","temperature-half","temperature-high","temperature-list","temperature-low","temperature-quarter","temperature-snow","temperature-sun","temperature-three-quarters","tenge-sign","tennis-ball","tent","tent-arrow-down-to-line","tent-arrow-left-right","tent-arrow-turn-left","tent-arrows-down","tent-double-peak","tents","terminal","text","text-height","text-size","text-slash","text-width","thermometer","theta","thought-bubble","thumbs-down","thumbs-up","thumbtack","thumbtack-slash","tick","ticket","ticket-airline","ticket-perforated","ticket-simple","tickets","tickets-airline","tickets-perforated","tickets-simple","tilde","timeline","timeline-arrow","timer","tire","tire-flat","tire-pressure-warning","tire-rugged","toggle-large-off","toggle-large-on","toggle-off","toggle-on","toilet","toilet-paper","toilet-paper-blank","toilet-paper-blank-under","toilet-paper-check","toilet-paper-slash","toilet-paper-under","toilet-paper-under-slash","toilet-paper-xmark","toilet-portable","toilets-portable","tomato","tombstone","tombstone-blank","toolbox","tooth","toothbrush","torii-gate","tornado","tower-broadcast","tower-cell","tower-control","tower-observation","tractor","trademark","traffic-cone","traffic-light","traffic-light-go","traffic-light-slow","traffic-light-stop","trailer","train","train-subway","train-subway-tunnel","train-track","train-tram","train-tunnel","transformer-bolt","transgender","transporter","transporter-1","transporter-2","transporter-3","transporter-4","transporter-5","transporter-6","transporter-7","transporter-empty","trash","trash-arrow-up","trash-can","trash-can-arrow-up","trash-can-check","trash-can-clock","trash-can-list","trash-can-plus","trash-can-slash","trash-can-undo","trash-can-xmark","trash-check","trash-clock","trash-list","trash-plus","trash-slash","trash-undo","trash-xmark","treasure-chest","tree","tree-christmas","tree-city","tree-deciduous","tree-decorated","tree-large","tree-palm","trees","triangle","triangle-exclamation","triangle-instrument","triangle-person-digging","tricycle","tricycle-adult","trillium","trophy","trophy-star","trowel","trowel-bricks","truck","truck-arrow-right","truck-bolt","truck-clock","truck-container","truck-container-empty","truck-droplet","truck-fast","truck-field","truck-field-un","truck-fire","truck-flatbed","truck-front","truck-ladder","truck-medical","truck-monster","truck-moving","truck-pickup","truck-plane","truck-plow","truck-ramp","truck-ramp-box","truck-ramp-couch","truck-tow","truck-utensils","trumpet","tty","tty-answer","tugrik-sign","turkey","turkish-lira-sign","turn-down","turn-down-left","turn-down-right","turn-left","turn-left-down","turn-left-up","turn-right","turn-up","turntable","turtle","tv","tv-music","tv-retro","typewriter","u","ufo","ufo-beam","umbrella","umbrella-beach","umbrella-simple","underline","unicorn","uniform-martial-arts","union","universal-access","unlock","unlock-keyhole","up","up-down","up-down-left-right","up-from-bracket","up-from-dotted-line","up-from-line","up-left","up-long","up-right","up-right-and-down-left-from-center","up-right-from-square","up-to-bracket","up-to-dotted-line","up-to-line","upload","usb-drive","user","user-alien","user-astronaut","user-beard-bolt","user-bounty-hunter","user-check","user-chef","user-clock","user-cowboy","user-crown","user-doctor","user-doctor-hair","user-doctor-hair-long","user-doctor-message","user-gear","user-graduate","user-group","user-group-crown","user-group-simple","user-hair","user-hair-buns","user-hair-long","user-hair-mullet","user-headset","user-helmet-safety","user-hoodie","user-injured","user-large","user-large-slash","user-lock","user-magnifying-glass","user-minus","user-music","user-ninja","user-nurse","user-nurse-hair","user-nurse-hair-long","user-pen","user-pilot","user-pilot-tie","user-plus","user-police","user-police-tie","user-robot","user-robot-xmarks","user-secret","user-shakespeare","user-shield","user-slash","user-tag","user-tie","user-tie-hair","user-tie-hair-long","user-unlock","user-visor","user-vneck","user-vneck-hair","user-vneck-hair-long","user-xmark","users","users-between-lines","users-gear","users-line","users-medical","users-rays","users-rectangle","users-slash","users-viewfinder","utensils","utensils-slash","utility-pole","utility-pole-double","v","vacuum","vacuum-robot","value-absolute","van-shuttle","vault","vector-circle","vector-polygon","vector-square","vent-damper","venus","venus-double","venus-mars","vest","vest-patches","vial","vial-circle-check","vial-virus","vials","video","video-arrow-down-left","video-arrow-up-right","video-plus","video-slash","vihara","violin","virus","virus-covid","virus-covid-slash","virus-slash","viruses","voicemail","volcano","volleyball","volume","volume-high","volume-low","volume-off","volume-slash","volume-xmark","vr-cardboard","w","waffle","wagon-covered","walker","walkie-talkie","wallet","wand","wand-magic","wand-magic-sparkles","wand-sparkles","warehouse","warehouse-full","washing-machine","watch","watch-apple","watch-calculator","watch-fitness","watch-smart","water","water-arrow-down","water-arrow-up","water-ladder","watermelon-slice","wave","wave-pulse","wave-sine","wave-square","wave-triangle","waveform","waveform-lines","waves-sine","web-awesome","webhook","weight-hanging","weight-scale","whale","wheat","wheat-awn","wheat-awn-circle-exclamation","wheat-awn-slash","wheat-slash","wheelchair","wheelchair-move","whiskey-glass","whiskey-glass-ice","whistle","wifi","wifi-exclamation","wifi-fair","wifi-slash","wifi-weak","wind","wind-turbine","wind-warning","window","window-flip","window-frame","window-frame-open","window-maximize","window-minimize","window-restore","windsock","wine-bottle","wine-glass","wine-glass-crack","wine-glass-empty","won-sign","worm","wreath","wreath-laurel","wrench","wrench-simple","x","x-ray","xmark","xmark-large","xmark-to-slot","xmarks-lines","y","yen-sign","yin-yang","z"],"sharp-thin":["0","00","1","2","3","360-degrees","4","5","6","7","8","9","a","abacus","accent-grave","acorn","address-book","address-card","air-conditioner","airplay","alarm-clock","alarm-exclamation","alarm-plus","alarm-snooze","album","album-circle-plus","album-circle-user","album-collection","album-collection-circle-plus","album-collection-circle-user","alicorn","alien","alien-8bit","align-center","align-justify","align-left","align-right","align-slash","alt","amp-guitar","ampersand","anchor","anchor-circle-check","anchor-circle-exclamation","anchor-circle-xmark","anchor-lock","angel","angle","angle-90","angle-down","angle-left","angle-right","angle-up","angles-down","angles-left","angles-right","angles-up","angles-up-down","ankh","ant","apartment","aperture","apostrophe","apple-core","apple-whole","archway","arrow-down","arrow-down-1-9","arrow-down-9-1","arrow-down-a-z","arrow-down-arrow-up","arrow-down-big-small","arrow-down-from-arc","arrow-down-from-bracket","arrow-down-from-dotted-line","arrow-down-from-line","arrow-down-left","arrow-down-left-and-arrow-up-right-to-center","arrow-down-long","arrow-down-right","arrow-down-short-wide","arrow-down-small-big","arrow-down-square-triangle","arrow-down-to-arc","arrow-down-to-bracket","arrow-down-to-dotted-line","arrow-down-to-line","arrow-down-to-square","arrow-down-triangle-square","arrow-down-up-across-line","arrow-down-up-lock","arrow-down-wide-short","arrow-down-z-a","arrow-left","arrow-left-from-arc","arrow-left-from-bracket","arrow-left-from-line","arrow-left-long","arrow-left-long-to-line","arrow-left-to-arc","arrow-left-to-bracket","arrow-left-to-line","arrow-pointer","arrow-progress","arrow-right","arrow-right-arrow-left","arrow-right-from-arc","arrow-right-from-bracket","arrow-right-from-line","arrow-right-long","arrow-right-long-to-line","arrow-right-to-arc","arrow-right-to-bracket","arrow-right-to-city","arrow-right-to-line","arrow-rotate-left","arrow-rotate-right","arrow-trend-down","arrow-trend-up","arrow-turn-down","arrow-turn-down-left","arrow-turn-down-right","arrow-turn-left","arrow-turn-left-down","arrow-turn-left-up","arrow-turn-right","arrow-turn-up","arrow-up","arrow-up-1-9","arrow-up-9-1","arrow-up-a-z","arrow-up-arrow-down","arrow-up-big-small","arrow-up-from-arc","arrow-up-from-bracket","arrow-up-from-dotted-line","arrow-up-from-ground-water","arrow-up-from-line","arrow-up-from-square","arrow-up-from-water-pump","arrow-up-left","arrow-up-left-from-circle","arrow-up-long","arrow-up-right","arrow-up-right-and-arrow-down-left-from-center","arrow-up-right-dots","arrow-up-right-from-square","arrow-up-short-wide","arrow-up-small-big","arrow-up-square-triangle","arrow-up-to-arc","arrow-up-to-bracket","arrow-up-to-dotted-line","arrow-up-to-line","arrow-up-triangle-square","arrow-up-wide-short","arrow-up-z-a","arrows-cross","arrows-down-to-line","arrows-down-to-people","arrows-from-dotted-line","arrows-from-line","arrows-left-right","arrows-left-right-to-line","arrows-maximize","arrows-minimize","arrows-repeat","arrows-repeat-1","arrows-retweet","arrows-rotate","arrows-rotate-reverse","arrows-spin","arrows-split-up-and-left","arrows-to-circle","arrows-to-dot","arrows-to-dotted-line","arrows-to-eye","arrows-to-line","arrows-turn-right","arrows-turn-to-dots","arrows-up-down","arrows-up-down-left-right","arrows-up-to-line","asterisk","at","atom","atom-simple","audio-description","audio-description-slash","austral-sign","avocado","award","award-simple","axe","axe-battle","b","baby","baby-carriage","backpack","backward","backward-fast","backward-step","bacon","bacteria","bacterium","badge","badge-check","badge-dollar","badge-percent","badge-sheriff","badger-honey","badminton","bag-seedling","bag-shopping","bag-shopping-minus","bag-shopping-plus","bagel","bags-shopping","baguette","bahai","baht-sign","ball-pile","balloon","balloons","ballot","ballot-check","ban","ban-bug","ban-parking","ban-smoking","banana","bandage","bangladeshi-taka-sign","banjo","barcode","barcode-read","barcode-scan","bars","bars-filter","bars-progress","bars-sort","bars-staggered","baseball","baseball-bat-ball","basket-shopping","basket-shopping-minus","basket-shopping-plus","basket-shopping-simple","basketball","basketball-hoop","bat","bath","battery-bolt","battery-empty","battery-exclamation","battery-full","battery-half","battery-low","battery-quarter","battery-slash","battery-three-quarters","bed","bed-bunk","bed-empty","bed-front","bed-pulse","bee","beer-mug","beer-mug-empty","bell","bell-concierge","bell-exclamation","bell-on","bell-plus","bell-ring","bell-school","bell-school-slash","bell-slash","bells","bench-tree","bezier-curve","bicycle","billboard","bin-bottles","bin-bottles-recycle","bin-recycle","binary","binary-circle-check","binary-lock","binary-slash","binoculars","biohazard","bird","bitcoin-sign","blanket","blanket-fire","blender","blender-phone","blinds","blinds-open","blinds-raised","block","block-brick","block-brick-fire","block-question","block-quote","blog","blueberries","bluetooth","bold","bolt","bolt-auto","bolt-lightning","bolt-slash","bomb","bone","bone-break","bong","book","book-arrow-right","book-arrow-up","book-atlas","book-bible","book-blank","book-bookmark","book-circle-arrow-right","book-circle-arrow-up","book-copy","book-font","book-heart","book-journal-whills","book-medical","book-open","book-open-cover","book-open-reader","book-quran","book-section","book-skull","book-sparkles","book-tanakh","book-user","bookmark","bookmark-slash","books","books-medical","boombox","boot","boot-heeled","booth-curtain","border-all","border-bottom","border-bottom-right","border-center-h","border-center-v","border-inner","border-left","border-none","border-outer","border-right","border-top","border-top-left","bore-hole","bottle-baby","bottle-droplet","bottle-water","bow-arrow","bowl-chopsticks","bowl-chopsticks-noodles","bowl-food","bowl-hot","bowl-rice","bowl-scoop","bowl-scoops","bowl-soft-serve","bowl-spoon","bowling-ball","bowling-ball-pin","bowling-pins","box","box-archive","box-ballot","box-check","box-circle-check","box-dollar","box-heart","box-open","box-open-full","box-taped","box-tissue","boxes-packing","boxes-stacked","boxing-glove","bracket-curly","bracket-curly-right","bracket-round","bracket-round-right","bracket-square","bracket-square-right","brackets-curly","brackets-round","brackets-square","braille","brain","brain-arrow-curved-right","brain-circuit","brake-warning","brazilian-real-sign","bread-loaf","bread-slice","bread-slice-butter","bridge","bridge-circle-check","bridge-circle-exclamation","bridge-circle-xmark","bridge-lock","bridge-suspension","bridge-water","briefcase","briefcase-arrow-right","briefcase-blank","briefcase-medical","brightness","brightness-low","bring-forward","bring-front","broccoli","broom","broom-ball","broom-wide","browser","browsers","brush","bucket","bug","bug-slash","bugs","building","building-circle-arrow-right","building-circle-check","building-circle-exclamation","building-circle-xmark","building-columns","building-flag","building-lock","building-magnifying-glass","building-memo","building-ngo","building-shield","building-un","building-user","building-wheat","buildings","bulldozer","bullhorn","bullseye","bullseye-arrow","bullseye-pointer","buoy","buoy-mooring","burger","burger-cheese","burger-fries","burger-glass","burger-lettuce","burger-soda","burrito","burst","bus","bus-school","bus-simple","business-time","butter","c","cabin","cabinet-filing","cable-car","cactus","caduceus","cake-candles","cake-slice","calculator","calculator-simple","calendar","calendar-arrow-down","calendar-arrow-up","calendar-check","calendar-circle-exclamation","calendar-circle-minus","calendar-circle-plus","calendar-circle-user","calendar-clock","calendar-day","calendar-days","calendar-exclamation","calendar-heart","calendar-image","calendar-lines","calendar-lines-pen","calendar-minus","calendar-pen","calendar-plus","calendar-range","calendar-star","calendar-users","calendar-week","calendar-xmark","calendars","camcorder","camera","camera-cctv","camera-movie","camera-polaroid","camera-retro","camera-rotate","camera-security","camera-slash","camera-viewfinder","camera-web","camera-web-slash","campfire","campground","can-food","candle-holder","candy","candy-bar","candy-cane","candy-corn","cannabis","cannon","capsules","car","car-battery","car-bolt","car-building","car-bump","car-burst","car-bus","car-circle-bolt","car-garage","car-mirrors","car-on","car-rear","car-side","car-side-bolt","car-tilt","car-tunnel","car-wash","car-wrench","caravan","caravan-simple","card-club","card-diamond","card-heart","card-spade","cards","cards-blank","caret-down","caret-left","caret-right","caret-up","carrot","cars","cart-arrow-down","cart-arrow-up","cart-circle-arrow-down","cart-circle-arrow-up","cart-circle-check","cart-circle-exclamation","cart-circle-plus","cart-circle-xmark","cart-flatbed","cart-flatbed-boxes","cart-flatbed-empty","cart-flatbed-suitcase","cart-minus","cart-plus","cart-shopping","cart-shopping-fast","cart-xmark","cash-register","cassette-betamax","cassette-tape","cassette-vhs","castle","cat","cat-space","cauldron","cedi-sign","cent-sign","certificate","chair","chair-office","chalkboard","chalkboard-user","champagne-glass","champagne-glasses","charging-station","chart-area","chart-bar","chart-bullet","chart-candlestick","chart-column","chart-gantt","chart-kanban","chart-line","chart-line-down","chart-line-up","chart-line-up-down","chart-mixed","chart-mixed-up-circle-currency","chart-mixed-up-circle-dollar","chart-network","chart-pie","chart-pie-simple","chart-pie-simple-circle-currency","chart-pie-simple-circle-dollar","chart-pyramid","chart-radar","chart-scatter","chart-scatter-3d","chart-scatter-bubble","chart-simple","chart-simple-horizontal","chart-tree-map","chart-user","chart-waterfall","check","check-double","check-to-slot","cheese","cheese-swiss","cherries","chess","chess-bishop","chess-bishop-piece","chess-board","chess-clock","chess-clock-flip","chess-king","chess-king-piece","chess-knight","chess-knight-piece","chess-pawn","chess-pawn-piece","chess-queen","chess-queen-piece","chess-rook","chess-rook-piece","chestnut","chevron-down","chevron-left","chevron-right","chevron-up","chevrons-down","chevrons-left","chevrons-right","chevrons-up","chf-sign","child","child-combatant","child-dress","child-reaching","children","chimney","chopsticks","church","circle","circle-0","circle-1","circle-2","circle-3","circle-4","circle-5","circle-6","circle-7","circle-8","circle-9","circle-a","circle-ampersand","circle-arrow-down","circle-arrow-down-left","circle-arrow-down-right","circle-arrow-left","circle-arrow-right","circle-arrow-up","circle-arrow-up-left","circle-arrow-up-right","circle-b","circle-bolt","circle-book-open","circle-bookmark","circle-c","circle-calendar","circle-camera","circle-caret-down","circle-caret-left","circle-caret-right","circle-caret-up","circle-check","circle-chevron-down","circle-chevron-left","circle-chevron-right","circle-chevron-up","circle-d","circle-dashed","circle-divide","circle-dollar","circle-dollar-to-slot","circle-dot","circle-down","circle-down-left","circle-down-right","circle-e","circle-ellipsis","circle-ellipsis-vertical","circle-envelope","circle-euro","circle-exclamation","circle-exclamation-check","circle-f","circle-g","circle-gf","circle-h","circle-half","circle-half-stroke","circle-heart","circle-i","circle-info","circle-j","circle-k","circle-l","circle-left","circle-location-arrow","circle-m","circle-microphone","circle-microphone-lines","circle-minus","circle-n","circle-nodes","circle-notch","circle-o","circle-p","circle-parking","circle-pause","circle-phone","circle-phone-flip","circle-phone-hangup","circle-play","circle-plus","circle-q","circle-quarter","circle-quarter-stroke","circle-quarters","circle-question","circle-r","circle-radiation","circle-right","circle-s","circle-small","circle-sort","circle-sort-down","circle-sort-up","circle-star","circle-sterling","circle-stop","circle-t","circle-three-quarters","circle-three-quarters-stroke","circle-trash","circle-u","circle-up","circle-up-left","circle-up-right","circle-user","circle-v","circle-video","circle-w","circle-waveform-lines","circle-wifi","circle-wifi-circle-wifi","circle-x","circle-xmark","circle-y","circle-yen","circle-z","circles-overlap","citrus","citrus-slice","city","clapperboard","clapperboard-play","clarinet","claw-marks","clipboard","clipboard-check","clipboard-list","clipboard-list-check","clipboard-medical","clipboard-prescription","clipboard-question","clipboard-user","clock","clock-desk","clock-eight","clock-eight-thirty","clock-eleven","clock-eleven-thirty","clock-five","clock-five-thirty","clock-four-thirty","clock-nine","clock-nine-thirty","clock-one","clock-one-thirty","clock-rotate-left","clock-seven","clock-seven-thirty","clock-six","clock-six-thirty","clock-ten","clock-ten-thirty","clock-three","clock-three-thirty","clock-twelve","clock-twelve-thirty","clock-two","clock-two-thirty","clone","closed-captioning","closed-captioning-slash","clothes-hanger","cloud","cloud-arrow-down","cloud-arrow-up","cloud-binary","cloud-bolt","cloud-bolt-moon","cloud-bolt-sun","cloud-check","cloud-drizzle","cloud-exclamation","cloud-fog","cloud-hail","cloud-hail-mixed","cloud-meatball","cloud-minus","cloud-moon","cloud-moon-rain","cloud-music","cloud-plus","cloud-question","cloud-rain","cloud-rainbow","cloud-showers","cloud-showers-heavy","cloud-showers-water","cloud-slash","cloud-sleet","cloud-snow","cloud-sun","cloud-sun-rain","cloud-word","cloud-xmark","clouds","clouds-moon","clouds-sun","clover","club","coconut","code","code-branch","code-commit","code-compare","code-fork","code-merge","code-pull-request","code-pull-request-closed","code-pull-request-draft","code-simple","coffee-bean","coffee-beans","coffee-pot","coffin","coffin-cross","coin","coin-blank","coin-front","coin-vertical","coins","colon","colon-sign","columns-3","comet","comma","command","comment","comment-arrow-down","comment-arrow-up","comment-arrow-up-right","comment-captions","comment-check","comment-code","comment-dollar","comment-dots","comment-exclamation","comment-heart","comment-image","comment-lines","comment-medical","comment-middle","comment-middle-top","comment-minus","comment-music","comment-pen","comment-plus","comment-question","comment-quote","comment-slash","comment-smile","comment-sms","comment-text","comment-xmark","comments","comments-dollar","comments-question","comments-question-check","compact-disc","compass","compass-drafting","compass-slash","compress","compress-wide","computer","computer-classic","computer-mouse","computer-mouse-scrollwheel","computer-speaker","container-storage","conveyor-belt","conveyor-belt-arm","conveyor-belt-boxes","conveyor-belt-empty","cookie","cookie-bite","copy","copyright","corn","corner","couch","court-sport","cow","cowbell","cowbell-circle-plus","crab","crate-apple","crate-empty","credit-card","credit-card-blank","credit-card-front","cricket-bat-ball","croissant","crop","crop-simple","cross","crosshairs","crosshairs-simple","crow","crown","crutch","crutches","cruzeiro-sign","crystal-ball","cube","cubes","cubes-stacked","cucumber","cup-straw","cup-straw-swoosh","cup-togo","cupcake","curling-stone","custard","d","dagger","dash","database","deer","deer-rudolph","delete-left","delete-right","democrat","desktop","desktop-arrow-down","dharmachakra","diagram-cells","diagram-lean-canvas","diagram-nested","diagram-next","diagram-predecessor","diagram-previous","diagram-project","diagram-sankey","diagram-subtask","diagram-successor","diagram-venn","dial","dial-high","dial-low","dial-max","dial-med","dial-med-low","dial-min","dial-off","diamond","diamond-exclamation","diamond-half","diamond-half-stroke","diamond-turn-right","diamonds-4","dice","dice-d10","dice-d12","dice-d20","dice-d4","dice-d6","dice-d8","dice-five","dice-four","dice-one","dice-six","dice-three","dice-two","dinosaur","diploma","disc-drive","disease","display","display-arrow-down","display-chart-up","display-chart-up-circle-currency","display-chart-up-circle-dollar","display-code","display-medical","display-slash","distribute-spacing-horizontal","distribute-spacing-vertical","ditto","divide","dna","do-not-enter","dog","dog-leashed","dollar-sign","dolly","dolly-empty","dolphin","dong-sign","donut","door-closed","door-open","dove","down","down-from-bracket","down-from-dotted-line","down-from-line","down-left","down-left-and-up-right-to-center","down-long","down-right","down-to-bracket","down-to-dotted-line","down-to-line","download","dragon","draw-circle","draw-polygon","draw-square","dreidel","drone","drone-front","droplet","droplet-degree","droplet-percent","droplet-slash","drum","drum-steelpan","drumstick","drumstick-bite","dryer","dryer-heat","duck","dumbbell","dumpster","dumpster-fire","dungeon","e","ear","ear-deaf","ear-listen","ear-muffs","earth-africa","earth-americas","earth-asia","earth-europe","earth-oceania","eclipse","egg","egg-fried","eggplant","eject","elephant","elevator","ellipsis","ellipsis-stroke","ellipsis-stroke-vertical","ellipsis-vertical","empty-set","engine","engine-warning","envelope","envelope-circle-check","envelope-dot","envelope-open","envelope-open-dollar","envelope-open-text","envelopes","envelopes-bulk","equals","eraser","escalator","ethernet","euro-sign","excavator","exclamation","expand","expand-wide","explosion","eye","eye-dropper","eye-dropper-full","eye-dropper-half","eye-evil","eye-low-vision","eye-slash","eyes","f","face-angry","face-angry-horns","face-anguished","face-anxious-sweat","face-astonished","face-awesome","face-beam-hand-over-mouth","face-clouds","face-confounded","face-confused","face-cowboy-hat","face-diagonal-mouth","face-disappointed","face-disguise","face-dizzy","face-dotted","face-downcast-sweat","face-drooling","face-exhaling","face-explode","face-expressionless","face-eyes-xmarks","face-fearful","face-flushed","face-frown","face-frown-open","face-frown-slight","face-glasses","face-grimace","face-grin","face-grin-beam","face-grin-beam-sweat","face-grin-hearts","face-grin-squint","face-grin-squint-tears","face-grin-stars","face-grin-tears","face-grin-tongue","face-grin-tongue-squint","face-grin-tongue-wink","face-grin-wide","face-grin-wink","face-hand-over-mouth","face-hand-peeking","face-hand-yawn","face-head-bandage","face-holding-back-tears","face-hushed","face-icicles","face-kiss","face-kiss-beam","face-kiss-closed-eyes","face-kiss-wink-heart","face-laugh","face-laugh-beam","face-laugh-squint","face-laugh-wink","face-lying","face-mask","face-meh","face-meh-blank","face-melting","face-monocle","face-nauseated","face-nose-steam","face-party","face-pensive","face-persevering","face-pleading","face-pouting","face-raised-eyebrow","face-relieved","face-rolling-eyes","face-sad-cry","face-sad-sweat","face-sad-tear","face-saluting","face-scream","face-shush","face-sleeping","face-sleepy","face-smile","face-smile-beam","face-smile-halo","face-smile-hearts","face-smile-horns","face-smile-plus","face-smile-relaxed","face-smile-tear","face-smile-tongue","face-smile-upside-down","face-smile-wink","face-smiling-hands","face-smirking","face-spiral-eyes","face-sunglasses","face-surprise","face-swear","face-thermometer","face-thinking","face-tired","face-tissue","face-tongue-money","face-tongue-sweat","face-unamused","face-viewfinder","face-vomit","face-weary","face-woozy","face-worried","face-zany","face-zipper","falafel","family","family-dress","family-pants","fan","fan-table","farm","faucet","faucet-drip","fax","feather","feather-pointed","fence","ferris-wheel","ferry","field-hockey-stick-ball","file","file-arrow-down","file-arrow-up","file-audio","file-binary","file-cad","file-certificate","file-chart-column","file-chart-pie","file-check","file-circle-check","file-circle-exclamation","file-circle-info","file-circle-minus","file-circle-plus","file-circle-question","file-circle-xmark","file-code","file-contract","file-csv","file-dashed-line","file-doc","file-eps","file-excel","file-exclamation","file-export","file-gif","file-heart","file-image","file-import","file-invoice","file-invoice-dollar","file-jpg","file-lines","file-lock","file-magnifying-glass","file-medical","file-minus","file-mov","file-mp3","file-mp4","file-music","file-pdf","file-pen","file-plus","file-plus-minus","file-png","file-powerpoint","file-ppt","file-prescription","file-shield","file-signature","file-slash","file-spreadsheet","file-svg","file-user","file-vector","file-video","file-waveform","file-word","file-xls","file-xmark","file-xml","file-zip","file-zipper","files","files-medical","fill","fill-drip","film","film-canister","film-simple","film-slash","films","filter","filter-circle-dollar","filter-circle-xmark","filter-list","filter-slash","filters","fingerprint","fire","fire-burner","fire-extinguisher","fire-flame","fire-flame-curved","fire-flame-simple","fire-hydrant","fire-smoke","fireplace","fish","fish-bones","fish-cooked","fish-fins","fishing-rod","flag","flag-checkered","flag-pennant","flag-swallowtail","flag-usa","flashlight","flask","flask-gear","flask-round-poison","flask-round-potion","flask-vial","flatbread","flatbread-stuffed","floppy-disk","floppy-disk-circle-arrow-right","floppy-disk-circle-xmark","floppy-disk-pen","floppy-disks","florin-sign","flower","flower-daffodil","flower-tulip","flute","flux-capacitor","flying-disc","folder","folder-arrow-down","folder-arrow-up","folder-bookmark","folder-check","folder-closed","folder-gear","folder-grid","folder-heart","folder-image","folder-magnifying-glass","folder-medical","folder-minus","folder-music","folder-open","folder-plus","folder-tree","folder-user","folder-xmark","folders","fondue-pot","font","font-awesome","font-case","football","football-helmet","fork","fork-knife","forklift","fort","forward","forward-fast","forward-step","frame","franc-sign","french-fries","frog","function","futbol","g","galaxy","gallery-thumbnails","game-board","game-board-simple","game-console-handheld","game-console-handheld-crank","gamepad","gamepad-modern","garage","garage-car","garage-open","garlic","gas-pump","gas-pump-slash","gauge","gauge-circle-bolt","gauge-circle-minus","gauge-circle-plus","gauge-high","gauge-low","gauge-max","gauge-min","gauge-simple","gauge-simple-high","gauge-simple-low","gauge-simple-max","gauge-simple-min","gavel","gear","gear-code","gear-complex","gear-complex-code","gears","gem","genderless","ghost","gif","gift","gift-card","gifts","gingerbread-man","glass","glass-citrus","glass-empty","glass-half","glass-water","glass-water-droplet","glasses","glasses-round","globe","globe-pointer","globe-snow","globe-stand","globe-wifi","goal-net","golf-ball-tee","golf-club","golf-flag-hole","gopuram","graduation-cap","gramophone","grapes","grate","grate-droplet","greater-than","greater-than-equal","grid","grid-2","grid-2-plus","grid-4","grid-5","grid-dividers","grid-horizontal","grid-round","grid-round-2","grid-round-2-plus","grid-round-4","grid-round-5","grill","grill-fire","grill-hot","grip","grip-dots","grip-dots-vertical","grip-lines","grip-lines-vertical","grip-vertical","group-arrows-rotate","guarani-sign","guitar","guitar-electric","guitars","gun","gun-slash","gun-squirt","h","h1","h2","h3","h4","h5","h6","hammer","hammer-brush","hammer-crash","hammer-war","hamsa","hand","hand-back-fist","hand-back-point-down","hand-back-point-left","hand-back-point-ribbon","hand-back-point-right","hand-back-point-up","hand-dots","hand-fingers-crossed","hand-fist","hand-heart","hand-holding","hand-holding-box","hand-holding-circle-dollar","hand-holding-dollar","hand-holding-droplet","hand-holding-hand","hand-holding-heart","hand-holding-magic","hand-holding-medical","hand-holding-seedling","hand-holding-skull","hand-horns","hand-lizard","hand-love","hand-middle-finger","hand-peace","hand-point-down","hand-point-left","hand-point-ribbon","hand-point-right","hand-point-up","hand-pointer","hand-scissors","hand-sparkles","hand-spock","hand-wave","handcuffs","hands","hands-asl-interpreting","hands-bound","hands-bubbles","hands-clapping","hands-holding","hands-holding-child","hands-holding-circle","hands-holding-diamond","hands-holding-dollar","hands-holding-heart","hands-praying","handshake","handshake-angle","handshake-simple","handshake-simple-slash","handshake-slash","hanukiah","hard-drive","hashtag","hashtag-lock","hat-beach","hat-chef","hat-cowboy","hat-cowboy-side","hat-santa","hat-winter","hat-witch","hat-wizard","head-side","head-side-brain","head-side-cough","head-side-cough-slash","head-side-gear","head-side-goggles","head-side-headphones","head-side-heart","head-side-mask","head-side-medical","head-side-virus","heading","headphones","headphones-simple","headset","heart","heart-circle-bolt","heart-circle-check","heart-circle-exclamation","heart-circle-minus","heart-circle-plus","heart-circle-xmark","heart-crack","heart-half","heart-half-stroke","heart-pulse","heat","helicopter","helicopter-symbol","helmet-battle","helmet-safety","helmet-un","hexagon","hexagon-check","hexagon-divide","hexagon-exclamation","hexagon-image","hexagon-minus","hexagon-plus","hexagon-vertical-nft","hexagon-vertical-nft-slanted","hexagon-xmark","high-definition","highlighter","highlighter-line","hill-avalanche","hill-rockslide","hippo","hockey-mask","hockey-puck","hockey-stick-puck","hockey-sticks","holly-berry","honey-pot","hood-cloak","horizontal-rule","horse","horse-head","horse-saddle","hose","hose-reel","hospital","hospital-user","hospitals","hot-tub-person","hotdog","hotel","hourglass","hourglass-clock","hourglass-end","hourglass-half","hourglass-start","house","house-blank","house-building","house-chimney","house-chimney-blank","house-chimney-crack","house-chimney-heart","house-chimney-medical","house-chimney-user","house-chimney-window","house-circle-check","house-circle-exclamation","house-circle-xmark","house-crack","house-day","house-fire","house-flag","house-flood-water","house-flood-water-circle-arrow-right","house-heart","house-laptop","house-lock","house-medical","house-medical-circle-check","house-medical-circle-exclamation","house-medical-circle-xmark","house-medical-flag","house-night","house-person-leave","house-person-return","house-signal","house-tree","house-tsunami","house-turret","house-user","house-water","house-window","hryvnia-sign","hundred-points","hurricane","hydra","hyphen","i","i-cursor","ice-cream","ice-skate","icicles","icons","id-badge","id-card","id-card-clip","igloo","image","image-landscape","image-polaroid","image-polaroid-user","image-portrait","image-slash","image-user","images","images-user","inbox","inbox-full","inbox-in","inbox-out","inboxes","indent","indian-rupee-sign","industry","industry-windows","infinity","info","inhaler","input-numeric","input-pipe","input-text","integral","interrobang","intersection","island-tropical","italic","j","jack-o-lantern","jar","jar-wheat","jedi","jet-fighter","jet-fighter-up","joint","joystick","jug","jug-bottle","jug-detergent","k","kaaba","kazoo","kerning","key","key-skeleton","key-skeleton-left-right","keyboard","keyboard-brightness","keyboard-brightness-low","keyboard-down","keyboard-left","keynote","khanda","kidneys","kip-sign","kit-medical","kitchen-set","kite","kiwi-bird","kiwi-fruit","knife","knife-kitchen","l","lacrosse-stick","lacrosse-stick-ball","lambda","lamp","lamp-desk","lamp-floor","lamp-street","land-mine-on","landmark","landmark-dome","landmark-flag","landmark-magnifying-glass","language","laptop","laptop-arrow-down","laptop-binary","laptop-code","laptop-file","laptop-medical","laptop-mobile","laptop-slash","lari-sign","lasso","lasso-sparkles","layer-group","layer-minus","layer-plus","leaf","leaf-heart","leaf-maple","leaf-oak","leafy-green","left","left-from-bracket","left-from-line","left-long","left-long-to-line","left-right","left-to-bracket","left-to-line","lemon","less-than","less-than-equal","life-ring","light-ceiling","light-emergency","light-emergency-on","light-switch","light-switch-off","light-switch-on","lightbulb","lightbulb-cfl","lightbulb-cfl-on","lightbulb-dollar","lightbulb-exclamation","lightbulb-exclamation-on","lightbulb-gear","lightbulb-message","lightbulb-on","lightbulb-slash","lighthouse","lights-holiday","line-columns","line-height","lines-leaning","link","link-horizontal","link-horizontal-slash","link-simple","link-simple-slash","link-slash","lips","lira-sign","list","list-check","list-dropdown","list-music","list-ol","list-radio","list-timeline","list-tree","list-ul","litecoin-sign","loader","lobster","location-arrow","location-arrow-up","location-check","location-crosshairs","location-crosshairs-slash","location-dot","location-dot-slash","location-exclamation","location-minus","location-pen","location-pin","location-pin-lock","location-pin-slash","location-plus","location-question","location-smile","location-xmark","lock","lock-a","lock-hashtag","lock-keyhole","lock-keyhole-open","lock-open","locust","lollipop","loveseat","luchador-mask","lungs","lungs-virus","m","mace","magnet","magnifying-glass","magnifying-glass-arrow-right","magnifying-glass-arrows-rotate","magnifying-glass-chart","magnifying-glass-dollar","magnifying-glass-location","magnifying-glass-minus","magnifying-glass-music","magnifying-glass-play","magnifying-glass-plus","magnifying-glass-waveform","mailbox","mailbox-flag-up","manat-sign","mandolin","mango","manhole","map","map-location","map-location-dot","map-pin","marker","mars","mars-and-venus","mars-and-venus-burst","mars-double","mars-stroke","mars-stroke-right","mars-stroke-up","martini-glass","martini-glass-citrus","martini-glass-empty","mask","mask-face","mask-snorkel","mask-ventilator","masks-theater","mattress-pillow","maximize","meat","medal","megaphone","melon","melon-slice","memo","memo-circle-check","memo-circle-info","memo-pad","memory","menorah","mercury","merge","message","message-arrow-down","message-arrow-up","message-arrow-up-right","message-bot","message-captions","message-check","message-code","message-dollar","message-dots","message-exclamation","message-heart","message-image","message-lines","message-medical","message-middle","message-middle-top","message-minus","message-music","message-pen","message-plus","message-question","message-quote","message-slash","message-smile","message-sms","message-text","message-xmark","messages","messages-dollar","messages-question","meteor","meter","meter-bolt","meter-droplet","meter-fire","microchip","microchip-ai","microphone","microphone-lines","microphone-lines-slash","microphone-slash","microphone-stand","microscope","microwave","mill-sign","minimize","minus","mistletoe","mitten","mobile","mobile-button","mobile-notch","mobile-retro","mobile-screen","mobile-screen-button","mobile-signal","mobile-signal-out","money-bill","money-bill-1","money-bill-1-wave","money-bill-simple","money-bill-simple-wave","money-bill-transfer","money-bill-trend-up","money-bill-wave","money-bill-wheat","money-bills","money-bills-simple","money-check","money-check-dollar","money-check-dollar-pen","money-check-pen","money-from-bracket","money-simple-from-bracket","monitor-waveform","monkey","monument","moon","moon-cloud","moon-over-sun","moon-stars","moped","mortar-pestle","mosque","mosquito","mosquito-net","motorcycle","mound","mountain","mountain-city","mountain-sun","mountains","mouse-field","mp3-player","mug","mug-hot","mug-marshmallows","mug-saucer","mug-tea","mug-tea-saucer","mushroom","music","music-magnifying-glass","music-note","music-note-slash","music-slash","mustache","n","naira-sign","narwhal","nesting-dolls","network-wired","neuter","newspaper","nfc","nfc-lock","nfc-magnifying-glass","nfc-pen","nfc-signal","nfc-slash","nfc-symbol","nfc-trash","nose","not-equal","notdef","note","note-medical","note-sticky","notebook","notes","notes-medical","o","object-exclude","object-group","object-intersect","object-subtract","object-ungroup","object-union","objects-align-bottom","objects-align-center-horizontal","objects-align-center-vertical","objects-align-left","objects-align-right","objects-align-top","objects-column","octagon","octagon-check","octagon-divide","octagon-exclamation","octagon-minus","octagon-plus","octagon-xmark","octopus","oil-can","oil-can-drip","oil-temperature","oil-well","olive","olive-branch","om","omega","onion","option","ornament","otter","outdent","outlet","oven","overline","p","page","page-caret-down","page-caret-up","pager","paint-roller","paintbrush","paintbrush-fine","paintbrush-pencil","palette","pallet","pallet-box","pallet-boxes","pan-food","pan-frying","pancakes","panel-ews","panel-fire","panorama","paper-plane","paper-plane-top","paperclip","paperclip-vertical","parachute-box","paragraph","paragraph-left","party-bell","party-horn","passport","paste","pause","paw","paw-claws","paw-simple","peace","peach","peanut","peanuts","peapod","pear","pedestal","pegasus","pen","pen-circle","pen-clip","pen-clip-slash","pen-fancy","pen-fancy-slash","pen-field","pen-line","pen-nib","pen-nib-slash","pen-paintbrush","pen-ruler","pen-slash","pen-swirl","pen-to-square","pencil","pencil-mechanical","pencil-slash","people","people-arrows","people-carry-box","people-dress","people-dress-simple","people-group","people-line","people-pants","people-pants-simple","people-pulling","people-robbery","people-roof","people-simple","pepper","pepper-hot","percent","period","person","person-arrow-down-to-line","person-arrow-up-from-line","person-biking","person-biking-mountain","person-booth","person-breastfeeding","person-burst","person-cane","person-carry-box","person-chalkboard","person-circle-check","person-circle-exclamation","person-circle-minus","person-circle-plus","person-circle-question","person-circle-xmark","person-digging","person-dolly","person-dolly-empty","person-dots-from-line","person-dress","person-dress-burst","person-dress-fairy","person-dress-simple","person-drowning","person-fairy","person-falling","person-falling-burst","person-from-portal","person-half-dress","person-harassing","person-hiking","person-military-pointing","person-military-rifle","person-military-to-person","person-pinball","person-praying","person-pregnant","person-rays","person-rifle","person-running","person-running-fast","person-seat","person-seat-reclined","person-shelter","person-sign","person-simple","person-skating","person-ski-jumping","person-ski-lift","person-skiing","person-skiing-nordic","person-sledding","person-snowboarding","person-snowmobiling","person-swimming","person-through-window","person-to-door","person-to-portal","person-walking","person-walking-arrow-loop-left","person-walking-arrow-right","person-walking-dashed-line-arrow-right","person-walking-luggage","person-walking-with-cane","peseta-sign","peso-sign","phone","phone-arrow-down-left","phone-arrow-right","phone-arrow-up-right","phone-flip","phone-hangup","phone-intercom","phone-missed","phone-office","phone-plus","phone-rotary","phone-slash","phone-volume","phone-xmark","photo-film","photo-film-music","pi","piano","piano-keyboard","pickaxe","pickleball","pie","pig","piggy-bank","pills","pinata","pinball","pineapple","pipe","pipe-circle-check","pipe-collar","pipe-section","pipe-smoking","pipe-valve","pizza","pizza-slice","place-of-worship","plane","plane-arrival","plane-circle-check","plane-circle-exclamation","plane-circle-xmark","plane-departure","plane-engines","plane-lock","plane-prop","plane-slash","plane-tail","plane-up","plane-up-slash","planet-moon","planet-ringed","plant-wilt","plate-utensils","plate-wheat","play","play-pause","plug","plug-circle-bolt","plug-circle-check","plug-circle-exclamation","plug-circle-minus","plug-circle-plus","plug-circle-xmark","plus","plus-large","plus-minus","podcast","podium","podium-star","police-box","poll-people","pompebled","poo","poo-storm","pool-8-ball","poop","popcorn","popsicle","pot-food","potato","power-off","prescription","prescription-bottle","prescription-bottle-medical","prescription-bottle-pill","presentation-screen","pretzel","print","print-magnifying-glass","print-slash","projector","pump","pump-medical","pump-soap","pumpkin","puzzle","puzzle-piece","puzzle-piece-simple","q","qrcode","question","quote-left","quote-right","quotes","r","rabbit","rabbit-running","raccoon","racquet","radar","radiation","radio","radio-tuner","rainbow","raindrops","ram","ramp-loading","ranking-star","raygun","receipt","record-vinyl","rectangle","rectangle-ad","rectangle-barcode","rectangle-code","rectangle-history","rectangle-history-circle-plus","rectangle-history-circle-user","rectangle-list","rectangle-pro","rectangle-terminal","rectangle-vertical","rectangle-vertical-history","rectangle-wide","rectangle-xmark","rectangles-mixed","recycle","reel","reflect-both","reflect-horizontal","reflect-vertical","refrigerator","registered","repeat","repeat-1","reply","reply-all","reply-clock","republican","restroom","restroom-simple","retweet","rhombus","ribbon","right","right-from-bracket","right-from-line","right-left","right-left-large","right-long","right-long-to-line","right-to-bracket","right-to-line","ring","ring-diamond","rings-wedding","road","road-barrier","road-bridge","road-circle-check","road-circle-exclamation","road-circle-xmark","road-lock","road-spikes","robot","robot-astromech","rocket","rocket-launch","roller-coaster","rotate","rotate-exclamation","rotate-left","rotate-reverse","rotate-right","route","route-highway","route-interstate","router","rss","ruble-sign","rug","rugby-ball","ruler","ruler-combined","ruler-horizontal","ruler-triangle","ruler-vertical","rupee-sign","rupiah-sign","rv","s","sack","sack-dollar","sack-xmark","sailboat","salad","salt-shaker","sandwich","satellite","satellite-dish","sausage","saxophone","saxophone-fire","scale-balanced","scale-unbalanced","scale-unbalanced-flip","scalpel","scalpel-line-dashed","scanner-gun","scanner-image","scanner-keyboard","scanner-touchscreen","scarecrow","scarf","school","school-circle-check","school-circle-exclamation","school-circle-xmark","school-flag","school-lock","scissors","screen-users","screencast","screwdriver","screwdriver-wrench","scribble","scroll","scroll-old","scroll-torah","scrubber","scythe","sd-card","sd-cards","seal","seal-exclamation","seal-question","seat-airline","section","seedling","semicolon","send-back","send-backward","sensor","sensor-cloud","sensor-fire","sensor-on","sensor-triangle-exclamation","server","shapes","share","share-all","share-from-square","share-nodes","sheep","sheet-plastic","shekel-sign","shelves","shelves-empty","shield","shield-cat","shield-check","shield-cross","shield-dog","shield-exclamation","shield-halved","shield-heart","shield-keyhole","shield-minus","shield-plus","shield-quartered","shield-slash","shield-virus","shield-xmark","ship","shirt","shirt-long-sleeve","shirt-running","shirt-tank-top","shish-kebab","shoe-prints","shop","shop-lock","shop-slash","shovel","shovel-snow","shower","shower-down","shredder","shrimp","shuffle","shutters","shuttle-space","shuttlecock","sickle","sidebar","sidebar-flip","sigma","sign-hanging","sign-post","sign-posts","sign-posts-wrench","signal","signal-bars","signal-bars-fair","signal-bars-good","signal-bars-slash","signal-bars-weak","signal-fair","signal-good","signal-slash","signal-stream","signal-stream-slash","signal-strong","signal-weak","signature","signature-lock","signature-slash","signs-post","sim-card","sim-cards","sink","siren","siren-on","sitemap","skeleton","skeleton-ribs","ski-boot","ski-boot-ski","skull","skull-cow","skull-crossbones","slash","slash-back","slash-forward","sleigh","slider","sliders","sliders-simple","sliders-up","slot-machine","smog","smoke","smoking","snake","snooze","snow-blowing","snowflake","snowflake-droplets","snowflakes","snowman","snowman-head","snowplow","soap","socks","soft-serve","solar-panel","solar-system","sort","sort-down","sort-up","spa","space-station-moon","space-station-moon-construction","spade","spaghetti-monster-flying","sparkle","sparkles","speaker","speakers","spell-check","spider","spider-black-widow","spider-web","spinner","spinner-scale","spinner-third","split","splotch","spoon","sportsball","spray-can","spray-can-sparkles","sprinkler","sprinkler-ceiling","square","square-0","square-1","square-2","square-3","square-4","square-5","square-6","square-7","square-8","square-9","square-a","square-a-lock","square-ampersand","square-arrow-down","square-arrow-down-left","square-arrow-down-right","square-arrow-left","square-arrow-right","square-arrow-up","square-arrow-up-left","square-arrow-up-right","square-b","square-bolt","square-c","square-caret-down","square-caret-left","square-caret-right","square-caret-up","square-check","square-chevron-down","square-chevron-left","square-chevron-right","square-chevron-up","square-code","square-d","square-dashed","square-dashed-circle-plus","square-divide","square-dollar","square-down","square-down-left","square-down-right","square-e","square-ellipsis","square-ellipsis-vertical","square-envelope","square-exclamation","square-f","square-fragile","square-full","square-g","square-h","square-heart","square-i","square-info","square-j","square-k","square-kanban","square-l","square-left","square-list","square-m","square-minus","square-n","square-nfi","square-o","square-p","square-parking","square-parking-slash","square-pen","square-person-confined","square-phone","square-phone-flip","square-phone-hangup","square-plus","square-poll-horizontal","square-poll-vertical","square-q","square-quarters","square-question","square-quote","square-r","square-right","square-ring","square-root","square-root-variable","square-rss","square-s","square-share-nodes","square-sliders","square-sliders-vertical","square-small","square-star","square-t","square-terminal","square-this-way-up","square-u","square-up","square-up-left","square-up-right","square-user","square-v","square-virus","square-w","square-x","square-xmark","square-y","square-z","squid","squirrel","staff","staff-snake","stairs","stamp","standard-definition","stapler","star","star-and-crescent","star-christmas","star-exclamation","star-half","star-half-stroke","star-of-david","star-of-life","star-sharp","star-sharp-half","star-sharp-half-stroke","star-shooting","starfighter","starfighter-twin-ion-engine","starfighter-twin-ion-engine-advanced","stars","starship","starship-freighter","steak","steering-wheel","sterling-sign","stethoscope","stocking","stomach","stop","stopwatch","stopwatch-20","store","store-lock","store-slash","strawberry","street-view","stretcher","strikethrough","stroopwafel","subscript","subtitles","subtitles-slash","suitcase","suitcase-medical","suitcase-rolling","sun","sun-bright","sun-cloud","sun-dust","sun-haze","sun-plant-wilt","sunglasses","sunrise","sunset","superscript","sushi","sushi-roll","swap","swap-arrows","swatchbook","sword","sword-laser","sword-laser-alt","swords","swords-laser","symbols","synagogue","syringe","t","t-rex","table","table-cells","table-cells-column-lock","table-cells-column-unlock","table-cells-large","table-cells-lock","table-cells-row-lock","table-cells-row-unlock","table-cells-unlock","table-columns","table-layout","table-list","table-picnic","table-pivot","table-rows","table-tennis-paddle-ball","table-tree","tablet","tablet-button","tablet-rugged","tablet-screen","tablet-screen-button","tablets","tachograph-digital","taco","tag","tags","tally","tally-1","tally-2","tally-3","tally-4","tamale","tank-water","tape","tarp","tarp-droplet","taxi","taxi-bus","teddy-bear","teeth","teeth-open","telescope","temperature-arrow-down","temperature-arrow-up","temperature-empty","temperature-full","temperature-half","temperature-high","temperature-list","temperature-low","temperature-quarter","temperature-snow","temperature-sun","temperature-three-quarters","tenge-sign","tennis-ball","tent","tent-arrow-down-to-line","tent-arrow-left-right","tent-arrow-turn-left","tent-arrows-down","tent-double-peak","tents","terminal","text","text-height","text-size","text-slash","text-width","thermometer","theta","thought-bubble","thumbs-down","thumbs-up","thumbtack","thumbtack-slash","tick","ticket","ticket-airline","ticket-perforated","ticket-simple","tickets","tickets-airline","tickets-perforated","tickets-simple","tilde","timeline","timeline-arrow","timer","tire","tire-flat","tire-pressure-warning","tire-rugged","toggle-large-off","toggle-large-on","toggle-off","toggle-on","toilet","toilet-paper","toilet-paper-blank","toilet-paper-blank-under","toilet-paper-check","toilet-paper-slash","toilet-paper-under","toilet-paper-under-slash","toilet-paper-xmark","toilet-portable","toilets-portable","tomato","tombstone","tombstone-blank","toolbox","tooth","toothbrush","torii-gate","tornado","tower-broadcast","tower-cell","tower-control","tower-observation","tractor","trademark","traffic-cone","traffic-light","traffic-light-go","traffic-light-slow","traffic-light-stop","trailer","train","train-subway","train-subway-tunnel","train-track","train-tram","train-tunnel","transformer-bolt","transgender","transporter","transporter-1","transporter-2","transporter-3","transporter-4","transporter-5","transporter-6","transporter-7","transporter-empty","trash","trash-arrow-up","trash-can","trash-can-arrow-up","trash-can-check","trash-can-clock","trash-can-list","trash-can-plus","trash-can-slash","trash-can-undo","trash-can-xmark","trash-check","trash-clock","trash-list","trash-plus","trash-slash","trash-undo","trash-xmark","treasure-chest","tree","tree-christmas","tree-city","tree-deciduous","tree-decorated","tree-large","tree-palm","trees","triangle","triangle-exclamation","triangle-instrument","triangle-person-digging","tricycle","tricycle-adult","trillium","trophy","trophy-star","trowel","trowel-bricks","truck","truck-arrow-right","truck-bolt","truck-clock","truck-container","truck-container-empty","truck-droplet","truck-fast","truck-field","truck-field-un","truck-fire","truck-flatbed","truck-front","truck-ladder","truck-medical","truck-monster","truck-moving","truck-pickup","truck-plane","truck-plow","truck-ramp","truck-ramp-box","truck-ramp-couch","truck-tow","truck-utensils","trumpet","tty","tty-answer","tugrik-sign","turkey","turkish-lira-sign","turn-down","turn-down-left","turn-down-right","turn-left","turn-left-down","turn-left-up","turn-right","turn-up","turntable","turtle","tv","tv-music","tv-retro","typewriter","u","ufo","ufo-beam","umbrella","umbrella-beach","umbrella-simple","underline","unicorn","uniform-martial-arts","union","universal-access","unlock","unlock-keyhole","up","up-down","up-down-left-right","up-from-bracket","up-from-dotted-line","up-from-line","up-left","up-long","up-right","up-right-and-down-left-from-center","up-right-from-square","up-to-bracket","up-to-dotted-line","up-to-line","upload","usb-drive","user","user-alien","user-astronaut","user-beard-bolt","user-bounty-hunter","user-check","user-chef","user-clock","user-cowboy","user-crown","user-doctor","user-doctor-hair","user-doctor-hair-long","user-doctor-message","user-gear","user-graduate","user-group","user-group-crown","user-group-simple","user-hair","user-hair-buns","user-hair-long","user-hair-mullet","user-headset","user-helmet-safety","user-hoodie","user-injured","user-large","user-large-slash","user-lock","user-magnifying-glass","user-minus","user-music","user-ninja","user-nurse","user-nurse-hair","user-nurse-hair-long","user-pen","user-pilot","user-pilot-tie","user-plus","user-police","user-police-tie","user-robot","user-robot-xmarks","user-secret","user-shakespeare","user-shield","user-slash","user-tag","user-tie","user-tie-hair","user-tie-hair-long","user-unlock","user-visor","user-vneck","user-vneck-hair","user-vneck-hair-long","user-xmark","users","users-between-lines","users-gear","users-line","users-medical","users-rays","users-rectangle","users-slash","users-viewfinder","utensils","utensils-slash","utility-pole","utility-pole-double","v","vacuum","vacuum-robot","value-absolute","van-shuttle","vault","vector-circle","vector-polygon","vector-square","vent-damper","venus","venus-double","venus-mars","vest","vest-patches","vial","vial-circle-check","vial-virus","vials","video","video-arrow-down-left","video-arrow-up-right","video-plus","video-slash","vihara","violin","virus","virus-covid","virus-covid-slash","virus-slash","viruses","voicemail","volcano","volleyball","volume","volume-high","volume-low","volume-off","volume-slash","volume-xmark","vr-cardboard","w","waffle","wagon-covered","walker","walkie-talkie","wallet","wand","wand-magic","wand-magic-sparkles","wand-sparkles","warehouse","warehouse-full","washing-machine","watch","watch-apple","watch-calculator","watch-fitness","watch-smart","water","water-arrow-down","water-arrow-up","water-ladder","watermelon-slice","wave","wave-pulse","wave-sine","wave-square","wave-triangle","waveform","waveform-lines","waves-sine","web-awesome","webhook","weight-hanging","weight-scale","whale","wheat","wheat-awn","wheat-awn-circle-exclamation","wheat-awn-slash","wheat-slash","wheelchair","wheelchair-move","whiskey-glass","whiskey-glass-ice","whistle","wifi","wifi-exclamation","wifi-fair","wifi-slash","wifi-weak","wind","wind-turbine","wind-warning","window","window-flip","window-frame","window-frame-open","window-maximize","window-minimize","window-restore","windsock","wine-bottle","wine-glass","wine-glass-crack","wine-glass-empty","won-sign","worm","wreath","wreath-laurel","wrench","wrench-simple","x","x-ray","xmark","xmark-large","xmark-to-slot","xmarks-lines","y","yen-sign","yin-yang","z"],"solid":["0","00","1","2","3","360-degrees","4","5","6","7","8","9","a","abacus","accent-grave","acorn","address-book","address-card","air-conditioner","airplay","alarm-clock","alarm-exclamation","alarm-plus","alarm-snooze","album","album-circle-plus","album-circle-user","album-collection","album-collection-circle-plus","album-collection-circle-user","alicorn","alien","alien-8bit","align-center","align-justify","align-left","align-right","align-slash","alt","amp-guitar","ampersand","anchor","anchor-circle-check","anchor-circle-exclamation","anchor-circle-xmark","anchor-lock","angel","angle","angle-90","angle-down","angle-left","angle-right","angle-up","angles-down","angles-left","angles-right","angles-up","angles-up-down","ankh","ant","apartment","aperture","apostrophe","apple-core","apple-whole","archway","arrow-down","arrow-down-1-9","arrow-down-9-1","arrow-down-a-z","arrow-down-arrow-up","arrow-down-big-small","arrow-down-from-arc","arrow-down-from-bracket","arrow-down-from-dotted-line","arrow-down-from-line","arrow-down-left","arrow-down-left-and-arrow-up-right-to-center","arrow-down-long","arrow-down-right","arrow-down-short-wide","arrow-down-small-big","arrow-down-square-triangle","arrow-down-to-arc","arrow-down-to-bracket","arrow-down-to-dotted-line","arrow-down-to-line","arrow-down-to-square","arrow-down-triangle-square","arrow-down-up-across-line","arrow-down-up-lock","arrow-down-wide-short","arrow-down-z-a","arrow-left","arrow-left-from-arc","arrow-left-from-bracket","arrow-left-from-line","arrow-left-long","arrow-left-long-to-line","arrow-left-to-arc","arrow-left-to-bracket","arrow-left-to-line","arrow-pointer","arrow-progress","arrow-right","arrow-right-arrow-left","arrow-right-from-arc","arrow-right-from-bracket","arrow-right-from-line","arrow-right-long","arrow-right-long-to-line","arrow-right-to-arc","arrow-right-to-bracket","arrow-right-to-city","arrow-right-to-line","arrow-rotate-left","arrow-rotate-right","arrow-trend-down","arrow-trend-up","arrow-turn-down","arrow-turn-down-left","arrow-turn-down-right","arrow-turn-left","arrow-turn-left-down","arrow-turn-left-up","arrow-turn-right","arrow-turn-up","arrow-up","arrow-up-1-9","arrow-up-9-1","arrow-up-a-z","arrow-up-arrow-down","arrow-up-big-small","arrow-up-from-arc","arrow-up-from-bracket","arrow-up-from-dotted-line","arrow-up-from-ground-water","arrow-up-from-line","arrow-up-from-square","arrow-up-from-water-pump","arrow-up-left","arrow-up-left-from-circle","arrow-up-long","arrow-up-right","arrow-up-right-and-arrow-down-left-from-center","arrow-up-right-dots","arrow-up-right-from-square","arrow-up-short-wide","arrow-up-small-big","arrow-up-square-triangle","arrow-up-to-arc","arrow-up-to-bracket","arrow-up-to-dotted-line","arrow-up-to-line","arrow-up-triangle-square","arrow-up-wide-short","arrow-up-z-a","arrows-cross","arrows-down-to-line","arrows-down-to-people","arrows-from-dotted-line","arrows-from-line","arrows-left-right","arrows-left-right-to-line","arrows-maximize","arrows-minimize","arrows-repeat","arrows-repeat-1","arrows-retweet","arrows-rotate","arrows-rotate-reverse","arrows-spin","arrows-split-up-and-left","arrows-to-circle","arrows-to-dot","arrows-to-dotted-line","arrows-to-eye","arrows-to-line","arrows-turn-right","arrows-turn-to-dots","arrows-up-down","arrows-up-down-left-right","arrows-up-to-line","asterisk","at","atom","atom-simple","audio-description","audio-description-slash","austral-sign","avocado","award","award-simple","axe","axe-battle","b","baby","baby-carriage","backpack","backward","backward-fast","backward-step","bacon","bacteria","bacterium","badge","badge-check","badge-dollar","badge-percent","badge-sheriff","badger-honey","badminton","bag-seedling","bag-shopping","bag-shopping-minus","bag-shopping-plus","bagel","bags-shopping","baguette","bahai","baht-sign","ball-pile","balloon","balloons","ballot","ballot-check","ban","ban-bug","ban-parking","ban-smoking","banana","bandage","bangladeshi-taka-sign","banjo","barcode","barcode-read","barcode-scan","bars","bars-filter","bars-progress","bars-sort","bars-staggered","baseball","baseball-bat-ball","basket-shopping","basket-shopping-minus","basket-shopping-plus","basket-shopping-simple","basketball","basketball-hoop","bat","bath","battery-bolt","battery-empty","battery-exclamation","battery-full","battery-half","battery-low","battery-quarter","battery-slash","battery-three-quarters","bed","bed-bunk","bed-empty","bed-front","bed-pulse","bee","beer-mug","beer-mug-empty","bell","bell-concierge","bell-exclamation","bell-on","bell-plus","bell-ring","bell-school","bell-school-slash","bell-slash","bells","bench-tree","bezier-curve","bicycle","billboard","bin-bottles","bin-bottles-recycle","bin-recycle","binary","binary-circle-check","binary-lock","binary-slash","binoculars","biohazard","bird","bitcoin-sign","blanket","blanket-fire","blender","blender-phone","blinds","blinds-open","blinds-raised","block","block-brick","block-brick-fire","block-question","block-quote","blog","blueberries","bluetooth","bold","bolt","bolt-auto","bolt-lightning","bolt-slash","bomb","bone","bone-break","bong","book","book-arrow-right","book-arrow-up","book-atlas","book-bible","book-blank","book-bookmark","book-circle-arrow-right","book-circle-arrow-up","book-copy","book-font","book-heart","book-journal-whills","book-medical","book-open","book-open-cover","book-open-reader","book-quran","book-section","book-skull","book-sparkles","book-tanakh","book-user","bookmark","bookmark-slash","books","books-medical","boombox","boot","boot-heeled","booth-curtain","border-all","border-bottom","border-bottom-right","border-center-h","border-center-v","border-inner","border-left","border-none","border-outer","border-right","border-top","border-top-left","bore-hole","bottle-baby","bottle-droplet","bottle-water","bow-arrow","bowl-chopsticks","bowl-chopsticks-noodles","bowl-food","bowl-hot","bowl-rice","bowl-scoop","bowl-scoops","bowl-soft-serve","bowl-spoon","bowling-ball","bowling-ball-pin","bowling-pins","box","box-archive","box-ballot","box-check","box-circle-check","box-dollar","box-heart","box-open","box-open-full","box-taped","box-tissue","boxes-packing","boxes-stacked","boxing-glove","bracket-curly","bracket-curly-right","bracket-round","bracket-round-right","bracket-square","bracket-square-right","brackets-curly","brackets-round","brackets-square","braille","brain","brain-arrow-curved-right","brain-circuit","brake-warning","brazilian-real-sign","bread-loaf","bread-slice","bread-slice-butter","bridge","bridge-circle-check","bridge-circle-exclamation","bridge-circle-xmark","bridge-lock","bridge-suspension","bridge-water","briefcase","briefcase-arrow-right","briefcase-blank","briefcase-medical","brightness","brightness-low","bring-forward","bring-front","broccoli","broom","broom-ball","broom-wide","browser","browsers","brush","bucket","bug","bug-slash","bugs","building","building-circle-arrow-right","building-circle-check","building-circle-exclamation","building-circle-xmark","building-columns","building-flag","building-lock","building-magnifying-glass","building-memo","building-ngo","building-shield","building-un","building-user","building-wheat","buildings","bulldozer","bullhorn","bullseye","bullseye-arrow","bullseye-pointer","buoy","buoy-mooring","burger","burger-cheese","burger-fries","burger-glass","burger-lettuce","burger-soda","burrito","burst","bus","bus-school","bus-simple","business-time","butter","c","cabin","cabinet-filing","cable-car","cactus","caduceus","cake-candles","cake-slice","calculator","calculator-simple","calendar","calendar-arrow-down","calendar-arrow-up","calendar-check","calendar-circle-exclamation","calendar-circle-minus","calendar-circle-plus","calendar-circle-user","calendar-clock","calendar-day","calendar-days","calendar-exclamation","calendar-heart","calendar-image","calendar-lines","calendar-lines-pen","calendar-minus","calendar-pen","calendar-plus","calendar-range","calendar-star","calendar-users","calendar-week","calendar-xmark","calendars","camcorder","camera","camera-cctv","camera-movie","camera-polaroid","camera-retro","camera-rotate","camera-security","camera-slash","camera-viewfinder","camera-web","camera-web-slash","campfire","campground","can-food","candle-holder","candy","candy-bar","candy-cane","candy-corn","cannabis","cannon","capsules","car","car-battery","car-bolt","car-building","car-bump","car-burst","car-bus","car-circle-bolt","car-garage","car-mirrors","car-on","car-rear","car-side","car-side-bolt","car-tilt","car-tunnel","car-wash","car-wrench","caravan","caravan-simple","card-club","card-diamond","card-heart","card-spade","cards","cards-blank","caret-down","caret-left","caret-right","caret-up","carrot","cars","cart-arrow-down","cart-arrow-up","cart-circle-arrow-down","cart-circle-arrow-up","cart-circle-check","cart-circle-exclamation","cart-circle-plus","cart-circle-xmark","cart-flatbed","cart-flatbed-boxes","cart-flatbed-empty","cart-flatbed-suitcase","cart-minus","cart-plus","cart-shopping","cart-shopping-fast","cart-xmark","cash-register","cassette-betamax","cassette-tape","cassette-vhs","castle","cat","cat-space","cauldron","cedi-sign","cent-sign","certificate","chair","chair-office","chalkboard","chalkboard-user","champagne-glass","champagne-glasses","charging-station","chart-area","chart-bar","chart-bullet","chart-candlestick","chart-column","chart-gantt","chart-kanban","chart-line","chart-line-down","chart-line-up","chart-line-up-down","chart-mixed","chart-mixed-up-circle-currency","chart-mixed-up-circle-dollar","chart-network","chart-pie","chart-pie-simple","chart-pie-simple-circle-currency","chart-pie-simple-circle-dollar","chart-pyramid","chart-radar","chart-scatter","chart-scatter-3d","chart-scatter-bubble","chart-simple","chart-simple-horizontal","chart-tree-map","chart-user","chart-waterfall","check","check-double","check-to-slot","cheese","cheese-swiss","cherries","chess","chess-bishop","chess-bishop-piece","chess-board","chess-clock","chess-clock-flip","chess-king","chess-king-piece","chess-knight","chess-knight-piece","chess-pawn","chess-pawn-piece","chess-queen","chess-queen-piece","chess-rook","chess-rook-piece","chestnut","chevron-down","chevron-left","chevron-right","chevron-up","chevrons-down","chevrons-left","chevrons-right","chevrons-up","chf-sign","child","child-combatant","child-dress","child-reaching","children","chimney","chopsticks","church","circle","circle-0","circle-1","circle-2","circle-3","circle-4","circle-5","circle-6","circle-7","circle-8","circle-9","circle-a","circle-ampersand","circle-arrow-down","circle-arrow-down-left","circle-arrow-down-right","circle-arrow-left","circle-arrow-right","circle-arrow-up","circle-arrow-up-left","circle-arrow-up-right","circle-b","circle-bolt","circle-book-open","circle-bookmark","circle-c","circle-calendar","circle-camera","circle-caret-down","circle-caret-left","circle-caret-right","circle-caret-up","circle-check","circle-chevron-down","circle-chevron-left","circle-chevron-right","circle-chevron-up","circle-d","circle-dashed","circle-divide","circle-dollar","circle-dollar-to-slot","circle-dot","circle-down","circle-down-left","circle-down-right","circle-e","circle-ellipsis","circle-ellipsis-vertical","circle-envelope","circle-euro","circle-exclamation","circle-exclamation-check","circle-f","circle-g","circle-gf","circle-h","circle-half","circle-half-stroke","circle-heart","circle-i","circle-info","circle-j","circle-k","circle-l","circle-left","circle-location-arrow","circle-m","circle-microphone","circle-microphone-lines","circle-minus","circle-n","circle-nodes","circle-notch","circle-o","circle-p","circle-parking","circle-pause","circle-phone","circle-phone-flip","circle-phone-hangup","circle-play","circle-plus","circle-q","circle-quarter","circle-quarter-stroke","circle-quarters","circle-question","circle-r","circle-radiation","circle-right","circle-s","circle-small","circle-sort","circle-sort-down","circle-sort-up","circle-star","circle-sterling","circle-stop","circle-t","circle-three-quarters","circle-three-quarters-stroke","circle-trash","circle-u","circle-up","circle-up-left","circle-up-right","circle-user","circle-v","circle-video","circle-w","circle-waveform-lines","circle-wifi","circle-wifi-circle-wifi","circle-x","circle-xmark","circle-y","circle-yen","circle-z","circles-overlap","citrus","citrus-slice","city","clapperboard","clapperboard-play","clarinet","claw-marks","clipboard","clipboard-check","clipboard-list","clipboard-list-check","clipboard-medical","clipboard-prescription","clipboard-question","clipboard-user","clock","clock-desk","clock-eight","clock-eight-thirty","clock-eleven","clock-eleven-thirty","clock-five","clock-five-thirty","clock-four-thirty","clock-nine","clock-nine-thirty","clock-one","clock-one-thirty","clock-rotate-left","clock-seven","clock-seven-thirty","clock-six","clock-six-thirty","clock-ten","clock-ten-thirty","clock-three","clock-three-thirty","clock-twelve","clock-twelve-thirty","clock-two","clock-two-thirty","clone","closed-captioning","closed-captioning-slash","clothes-hanger","cloud","cloud-arrow-down","cloud-arrow-up","cloud-binary","cloud-bolt","cloud-bolt-moon","cloud-bolt-sun","cloud-check","cloud-drizzle","cloud-exclamation","cloud-fog","cloud-hail","cloud-hail-mixed","cloud-meatball","cloud-minus","cloud-moon","cloud-moon-rain","cloud-music","cloud-plus","cloud-question","cloud-rain","cloud-rainbow","cloud-showers","cloud-showers-heavy","cloud-showers-water","cloud-slash","cloud-sleet","cloud-snow","cloud-sun","cloud-sun-rain","cloud-word","cloud-xmark","clouds","clouds-moon","clouds-sun","clover","club","coconut","code","code-branch","code-commit","code-compare","code-fork","code-merge","code-pull-request","code-pull-request-closed","code-pull-request-draft","code-simple","coffee-bean","coffee-beans","coffee-pot","coffin","coffin-cross","coin","coin-blank","coin-front","coin-vertical","coins","colon","colon-sign","columns-3","comet","comma","command","comment","comment-arrow-down","comment-arrow-up","comment-arrow-up-right","comment-captions","comment-check","comment-code","comment-dollar","comment-dots","comment-exclamation","comment-heart","comment-image","comment-lines","comment-medical","comment-middle","comment-middle-top","comment-minus","comment-music","comment-pen","comment-plus","comment-question","comment-quote","comment-slash","comment-smile","comment-sms","comment-text","comment-xmark","comments","comments-dollar","comments-question","comments-question-check","compact-disc","compass","compass-drafting","compass-slash","compress","compress-wide","computer","computer-classic","computer-mouse","computer-mouse-scrollwheel","computer-speaker","container-storage","conveyor-belt","conveyor-belt-arm","conveyor-belt-boxes","conveyor-belt-empty","cookie","cookie-bite","copy","copyright","corn","corner","couch","court-sport","cow","cowbell","cowbell-circle-plus","crab","crate-apple","crate-empty","credit-card","credit-card-blank","credit-card-front","cricket-bat-ball","croissant","crop","crop-simple","cross","crosshairs","crosshairs-simple","crow","crown","crutch","crutches","cruzeiro-sign","crystal-ball","cube","cubes","cubes-stacked","cucumber","cup-straw","cup-straw-swoosh","cup-togo","cupcake","curling-stone","custard","d","dagger","dash","database","deer","deer-rudolph","delete-left","delete-right","democrat","desktop","desktop-arrow-down","dharmachakra","diagram-cells","diagram-lean-canvas","diagram-nested","diagram-next","diagram-predecessor","diagram-previous","diagram-project","diagram-sankey","diagram-subtask","diagram-successor","diagram-venn","dial","dial-high","dial-low","dial-max","dial-med","dial-med-low","dial-min","dial-off","diamond","diamond-exclamation","diamond-half","diamond-half-stroke","diamond-turn-right","diamonds-4","dice","dice-d10","dice-d12","dice-d20","dice-d4","dice-d6","dice-d8","dice-five","dice-four","dice-one","dice-six","dice-three","dice-two","dinosaur","diploma","disc-drive","disease","display","display-arrow-down","display-chart-up","display-chart-up-circle-currency","display-chart-up-circle-dollar","display-code","display-medical","display-slash","distribute-spacing-horizontal","distribute-spacing-vertical","ditto","divide","dna","do-not-enter","dog","dog-leashed","dollar-sign","dolly","dolly-empty","dolphin","dong-sign","donut","door-closed","door-open","dove","down","down-from-bracket","down-from-dotted-line","down-from-line","down-left","down-left-and-up-right-to-center","down-long","down-right","down-to-bracket","down-to-dotted-line","down-to-line","download","dragon","draw-circle","draw-polygon","draw-square","dreidel","drone","drone-front","droplet","droplet-degree","droplet-percent","droplet-slash","drum","drum-steelpan","drumstick","drumstick-bite","dryer","dryer-heat","duck","dumbbell","dumpster","dumpster-fire","dungeon","e","ear","ear-deaf","ear-listen","ear-muffs","earth-africa","earth-americas","earth-asia","earth-europe","earth-oceania","eclipse","egg","egg-fried","eggplant","eject","elephant","elevator","ellipsis","ellipsis-stroke","ellipsis-stroke-vertical","ellipsis-vertical","empty-set","engine","engine-warning","envelope","envelope-circle-check","envelope-dot","envelope-open","envelope-open-dollar","envelope-open-text","envelopes","envelopes-bulk","equals","eraser","escalator","ethernet","euro-sign","excavator","exclamation","expand","expand-wide","explosion","eye","eye-dropper","eye-dropper-full","eye-dropper-half","eye-evil","eye-low-vision","eye-slash","eyes","f","face-angry","face-angry-horns","face-anguished","face-anxious-sweat","face-astonished","face-awesome","face-beam-hand-over-mouth","face-clouds","face-confounded","face-confused","face-cowboy-hat","face-diagonal-mouth","face-disappointed","face-disguise","face-dizzy","face-dotted","face-downcast-sweat","face-drooling","face-exhaling","face-explode","face-expressionless","face-eyes-xmarks","face-fearful","face-flushed","face-frown","face-frown-open","face-frown-slight","face-glasses","face-grimace","face-grin","face-grin-beam","face-grin-beam-sweat","face-grin-hearts","face-grin-squint","face-grin-squint-tears","face-grin-stars","face-grin-tears","face-grin-tongue","face-grin-tongue-squint","face-grin-tongue-wink","face-grin-wide","face-grin-wink","face-hand-over-mouth","face-hand-peeking","face-hand-yawn","face-head-bandage","face-holding-back-tears","face-hushed","face-icicles","face-kiss","face-kiss-beam","face-kiss-closed-eyes","face-kiss-wink-heart","face-laugh","face-laugh-beam","face-laugh-squint","face-laugh-wink","face-lying","face-mask","face-meh","face-meh-blank","face-melting","face-monocle","face-nauseated","face-nose-steam","face-party","face-pensive","face-persevering","face-pleading","face-pouting","face-raised-eyebrow","face-relieved","face-rolling-eyes","face-sad-cry","face-sad-sweat","face-sad-tear","face-saluting","face-scream","face-shush","face-sleeping","face-sleepy","face-smile","face-smile-beam","face-smile-halo","face-smile-hearts","face-smile-horns","face-smile-plus","face-smile-relaxed","face-smile-tear","face-smile-tongue","face-smile-upside-down","face-smile-wink","face-smiling-hands","face-smirking","face-spiral-eyes","face-sunglasses","face-surprise","face-swear","face-thermometer","face-thinking","face-tired","face-tissue","face-tongue-money","face-tongue-sweat","face-unamused","face-viewfinder","face-vomit","face-weary","face-woozy","face-worried","face-zany","face-zipper","falafel","family","family-dress","family-pants","fan","fan-table","farm","faucet","faucet-drip","fax","feather","feather-pointed","fence","ferris-wheel","ferry","field-hockey-stick-ball","file","file-arrow-down","file-arrow-up","file-audio","file-binary","file-cad","file-certificate","file-chart-column","file-chart-pie","file-check","file-circle-check","file-circle-exclamation","file-circle-info","file-circle-minus","file-circle-plus","file-circle-question","file-circle-xmark","file-code","file-contract","file-csv","file-dashed-line","file-doc","file-eps","file-excel","file-exclamation","file-export","file-gif","file-heart","file-image","file-import","file-invoice","file-invoice-dollar","file-jpg","file-lines","file-lock","file-magnifying-glass","file-medical","file-minus","file-mov","file-mp3","file-mp4","file-music","file-pdf","file-pen","file-plus","file-plus-minus","file-png","file-powerpoint","file-ppt","file-prescription","file-shield","file-signature","file-slash","file-spreadsheet","file-svg","file-user","file-vector","file-video","file-waveform","file-word","file-xls","file-xmark","file-xml","file-zip","file-zipper","files","files-medical","fill","fill-drip","film","film-canister","film-simple","film-slash","films","filter","filter-circle-dollar","filter-circle-xmark","filter-list","filter-slash","filters","fingerprint","fire","fire-burner","fire-extinguisher","fire-flame","fire-flame-curved","fire-flame-simple","fire-hydrant","fire-smoke","fireplace","fish","fish-bones","fish-cooked","fish-fins","fishing-rod","flag","flag-checkered","flag-pennant","flag-swallowtail","flag-usa","flashlight","flask","flask-gear","flask-round-poison","flask-round-potion","flask-vial","flatbread","flatbread-stuffed","floppy-disk","floppy-disk-circle-arrow-right","floppy-disk-circle-xmark","floppy-disk-pen","floppy-disks","florin-sign","flower","flower-daffodil","flower-tulip","flute","flux-capacitor","flying-disc","folder","folder-arrow-down","folder-arrow-up","folder-bookmark","folder-check","folder-closed","folder-gear","folder-grid","folder-heart","folder-image","folder-magnifying-glass","folder-medical","folder-minus","folder-music","folder-open","folder-plus","folder-tree","folder-user","folder-xmark","folders","fondue-pot","font","font-awesome","font-case","football","football-helmet","fork","fork-knife","forklift","fort","forward","forward-fast","forward-step","frame","franc-sign","french-fries","frog","function","futbol","g","galaxy","gallery-thumbnails","game-board","game-board-simple","game-console-handheld","game-console-handheld-crank","gamepad","gamepad-modern","garage","garage-car","garage-open","garlic","gas-pump","gas-pump-slash","gauge","gauge-circle-bolt","gauge-circle-minus","gauge-circle-plus","gauge-high","gauge-low","gauge-max","gauge-min","gauge-simple","gauge-simple-high","gauge-simple-low","gauge-simple-max","gauge-simple-min","gavel","gear","gear-code","gear-complex","gear-complex-code","gears","gem","genderless","ghost","gif","gift","gift-card","gifts","gingerbread-man","glass","glass-citrus","glass-empty","glass-half","glass-water","glass-water-droplet","glasses","glasses-round","globe","globe-pointer","globe-snow","globe-stand","globe-wifi","goal-net","golf-ball-tee","golf-club","golf-flag-hole","gopuram","graduation-cap","gramophone","grapes","grate","grate-droplet","greater-than","greater-than-equal","grid","grid-2","grid-2-plus","grid-4","grid-5","grid-dividers","grid-horizontal","grid-round","grid-round-2","grid-round-2-plus","grid-round-4","grid-round-5","grill","grill-fire","grill-hot","grip","grip-dots","grip-dots-vertical","grip-lines","grip-lines-vertical","grip-vertical","group-arrows-rotate","guarani-sign","guitar","guitar-electric","guitars","gun","gun-slash","gun-squirt","h","h1","h2","h3","h4","h5","h6","hammer","hammer-brush","hammer-crash","hammer-war","hamsa","hand","hand-back-fist","hand-back-point-down","hand-back-point-left","hand-back-point-ribbon","hand-back-point-right","hand-back-point-up","hand-dots","hand-fingers-crossed","hand-fist","hand-heart","hand-holding","hand-holding-box","hand-holding-circle-dollar","hand-holding-dollar","hand-holding-droplet","hand-holding-hand","hand-holding-heart","hand-holding-magic","hand-holding-medical","hand-holding-seedling","hand-holding-skull","hand-horns","hand-lizard","hand-love","hand-middle-finger","hand-peace","hand-point-down","hand-point-left","hand-point-ribbon","hand-point-right","hand-point-up","hand-pointer","hand-scissors","hand-sparkles","hand-spock","hand-wave","handcuffs","hands","hands-asl-interpreting","hands-bound","hands-bubbles","hands-clapping","hands-holding","hands-holding-child","hands-holding-circle","hands-holding-diamond","hands-holding-dollar","hands-holding-heart","hands-praying","handshake","handshake-angle","handshake-simple","handshake-simple-slash","handshake-slash","hanukiah","hard-drive","hashtag","hashtag-lock","hat-beach","hat-chef","hat-cowboy","hat-cowboy-side","hat-santa","hat-winter","hat-witch","hat-wizard","head-side","head-side-brain","head-side-cough","head-side-cough-slash","head-side-gear","head-side-goggles","head-side-headphones","head-side-heart","head-side-mask","head-side-medical","head-side-virus","heading","headphones","headphones-simple","headset","heart","heart-circle-bolt","heart-circle-check","heart-circle-exclamation","heart-circle-minus","heart-circle-plus","heart-circle-xmark","heart-crack","heart-half","heart-half-stroke","heart-pulse","heat","helicopter","helicopter-symbol","helmet-battle","helmet-safety","helmet-un","hexagon","hexagon-check","hexagon-divide","hexagon-exclamation","hexagon-image","hexagon-minus","hexagon-plus","hexagon-vertical-nft","hexagon-vertical-nft-slanted","hexagon-xmark","high-definition","highlighter","highlighter-line","hill-avalanche","hill-rockslide","hippo","hockey-mask","hockey-puck","hockey-stick-puck","hockey-sticks","holly-berry","honey-pot","hood-cloak","horizontal-rule","horse","horse-head","horse-saddle","hose","hose-reel","hospital","hospital-user","hospitals","hot-tub-person","hotdog","hotel","hourglass","hourglass-clock","hourglass-end","hourglass-half","hourglass-start","house","house-blank","house-building","house-chimney","house-chimney-blank","house-chimney-crack","house-chimney-heart","house-chimney-medical","house-chimney-user","house-chimney-window","house-circle-check","house-circle-exclamation","house-circle-xmark","house-crack","house-day","house-fire","house-flag","house-flood-water","house-flood-water-circle-arrow-right","house-heart","house-laptop","house-lock","house-medical","house-medical-circle-check","house-medical-circle-exclamation","house-medical-circle-xmark","house-medical-flag","house-night","house-person-leave","house-person-return","house-signal","house-tree","house-tsunami","house-turret","house-user","house-water","house-window","hryvnia-sign","hundred-points","hurricane","hydra","hyphen","i","i-cursor","ice-cream","ice-skate","icicles","icons","id-badge","id-card","id-card-clip","igloo","image","image-landscape","image-polaroid","image-polaroid-user","image-portrait","image-slash","image-user","images","images-user","inbox","inbox-full","inbox-in","inbox-out","inboxes","indent","indian-rupee-sign","industry","industry-windows","infinity","info","inhaler","input-numeric","input-pipe","input-text","integral","interrobang","intersection","island-tropical","italic","j","jack-o-lantern","jar","jar-wheat","jedi","jet-fighter","jet-fighter-up","joint","joystick","jug","jug-bottle","jug-detergent","k","kaaba","kazoo","kerning","key","key-skeleton","key-skeleton-left-right","keyboard","keyboard-brightness","keyboard-brightness-low","keyboard-down","keyboard-left","keynote","khanda","kidneys","kip-sign","kit-medical","kitchen-set","kite","kiwi-bird","kiwi-fruit","knife","knife-kitchen","l","lacrosse-stick","lacrosse-stick-ball","lambda","lamp","lamp-desk","lamp-floor","lamp-street","land-mine-on","landmark","landmark-dome","landmark-flag","landmark-magnifying-glass","language","laptop","laptop-arrow-down","laptop-binary","laptop-code","laptop-file","laptop-medical","laptop-mobile","laptop-slash","lari-sign","lasso","lasso-sparkles","layer-group","layer-minus","layer-plus","leaf","leaf-heart","leaf-maple","leaf-oak","leafy-green","left","left-from-bracket","left-from-line","left-long","left-long-to-line","left-right","left-to-bracket","left-to-line","lemon","less-than","less-than-equal","life-ring","light-ceiling","light-emergency","light-emergency-on","light-switch","light-switch-off","light-switch-on","lightbulb","lightbulb-cfl","lightbulb-cfl-on","lightbulb-dollar","lightbulb-exclamation","lightbulb-exclamation-on","lightbulb-gear","lightbulb-message","lightbulb-on","lightbulb-slash","lighthouse","lights-holiday","line-columns","line-height","lines-leaning","link","link-horizontal","link-horizontal-slash","link-simple","link-simple-slash","link-slash","lips","lira-sign","list","list-check","list-dropdown","list-music","list-ol","list-radio","list-timeline","list-tree","list-ul","litecoin-sign","loader","lobster","location-arrow","location-arrow-up","location-check","location-crosshairs","location-crosshairs-slash","location-dot","location-dot-slash","location-exclamation","location-minus","location-pen","location-pin","location-pin-lock","location-pin-slash","location-plus","location-question","location-smile","location-xmark","lock","lock-a","lock-hashtag","lock-keyhole","lock-keyhole-open","lock-open","locust","lollipop","loveseat","luchador-mask","lungs","lungs-virus","m","mace","magnet","magnifying-glass","magnifying-glass-arrow-right","magnifying-glass-arrows-rotate","magnifying-glass-chart","magnifying-glass-dollar","magnifying-glass-location","magnifying-glass-minus","magnifying-glass-music","magnifying-glass-play","magnifying-glass-plus","magnifying-glass-waveform","mailbox","mailbox-flag-up","manat-sign","mandolin","mango","manhole","map","map-location","map-location-dot","map-pin","marker","mars","mars-and-venus","mars-and-venus-burst","mars-double","mars-stroke","mars-stroke-right","mars-stroke-up","martini-glass","martini-glass-citrus","martini-glass-empty","mask","mask-face","mask-snorkel","mask-ventilator","masks-theater","mattress-pillow","maximize","meat","medal","megaphone","melon","melon-slice","memo","memo-circle-check","memo-circle-info","memo-pad","memory","menorah","mercury","merge","message","message-arrow-down","message-arrow-up","message-arrow-up-right","message-bot","message-captions","message-check","message-code","message-dollar","message-dots","message-exclamation","message-heart","message-image","message-lines","message-medical","message-middle","message-middle-top","message-minus","message-music","message-pen","message-plus","message-question","message-quote","message-slash","message-smile","message-sms","message-text","message-xmark","messages","messages-dollar","messages-question","meteor","meter","meter-bolt","meter-droplet","meter-fire","microchip","microchip-ai","microphone","microphone-lines","microphone-lines-slash","microphone-slash","microphone-stand","microscope","microwave","mill-sign","minimize","minus","mistletoe","mitten","mobile","mobile-button","mobile-notch","mobile-retro","mobile-screen","mobile-screen-button","mobile-signal","mobile-signal-out","money-bill","money-bill-1","money-bill-1-wave","money-bill-simple","money-bill-simple-wave","money-bill-transfer","money-bill-trend-up","money-bill-wave","money-bill-wheat","money-bills","money-bills-simple","money-check","money-check-dollar","money-check-dollar-pen","money-check-pen","money-from-bracket","money-simple-from-bracket","monitor-waveform","monkey","monument","moon","moon-cloud","moon-over-sun","moon-stars","moped","mortar-pestle","mosque","mosquito","mosquito-net","motorcycle","mound","mountain","mountain-city","mountain-sun","mountains","mouse-field","mp3-player","mug","mug-hot","mug-marshmallows","mug-saucer","mug-tea","mug-tea-saucer","mushroom","music","music-magnifying-glass","music-note","music-note-slash","music-slash","mustache","n","naira-sign","narwhal","nesting-dolls","network-wired","neuter","newspaper","nfc","nfc-lock","nfc-magnifying-glass","nfc-pen","nfc-signal","nfc-slash","nfc-symbol","nfc-trash","nose","not-equal","notdef","note","note-medical","note-sticky","notebook","notes","notes-medical","o","object-exclude","object-group","object-intersect","object-subtract","object-ungroup","object-union","objects-align-bottom","objects-align-center-horizontal","objects-align-center-vertical","objects-align-left","objects-align-right","objects-align-top","objects-column","octagon","octagon-check","octagon-divide","octagon-exclamation","octagon-minus","octagon-plus","octagon-xmark","octopus","oil-can","oil-can-drip","oil-temperature","oil-well","olive","olive-branch","om","omega","onion","option","ornament","otter","outdent","outlet","oven","overline","p","page","page-caret-down","page-caret-up","pager","paint-roller","paintbrush","paintbrush-fine","paintbrush-pencil","palette","pallet","pallet-box","pallet-boxes","pan-food","pan-frying","pancakes","panel-ews","panel-fire","panorama","paper-plane","paper-plane-top","paperclip","paperclip-vertical","parachute-box","paragraph","paragraph-left","party-bell","party-horn","passport","paste","pause","paw","paw-claws","paw-simple","peace","peach","peanut","peanuts","peapod","pear","pedestal","pegasus","pen","pen-circle","pen-clip","pen-clip-slash","pen-fancy","pen-fancy-slash","pen-field","pen-line","pen-nib","pen-nib-slash","pen-paintbrush","pen-ruler","pen-slash","pen-swirl","pen-to-square","pencil","pencil-mechanical","pencil-slash","people","people-arrows","people-carry-box","people-dress","people-dress-simple","people-group","people-line","people-pants","people-pants-simple","people-pulling","people-robbery","people-roof","people-simple","pepper","pepper-hot","percent","period","person","person-arrow-down-to-line","person-arrow-up-from-line","person-biking","person-biking-mountain","person-booth","person-breastfeeding","person-burst","person-cane","person-carry-box","person-chalkboard","person-circle-check","person-circle-exclamation","person-circle-minus","person-circle-plus","person-circle-question","person-circle-xmark","person-digging","person-dolly","person-dolly-empty","person-dots-from-line","person-dress","person-dress-burst","person-dress-fairy","person-dress-simple","person-drowning","person-fairy","person-falling","person-falling-burst","person-from-portal","person-half-dress","person-harassing","person-hiking","person-military-pointing","person-military-rifle","person-military-to-person","person-pinball","person-praying","person-pregnant","person-rays","person-rifle","person-running","person-running-fast","person-seat","person-seat-reclined","person-shelter","person-sign","person-simple","person-skating","person-ski-jumping","person-ski-lift","person-skiing","person-skiing-nordic","person-sledding","person-snowboarding","person-snowmobiling","person-swimming","person-through-window","person-to-door","person-to-portal","person-walking","person-walking-arrow-loop-left","person-walking-arrow-right","person-walking-dashed-line-arrow-right","person-walking-luggage","person-walking-with-cane","peseta-sign","peso-sign","phone","phone-arrow-down-left","phone-arrow-right","phone-arrow-up-right","phone-flip","phone-hangup","phone-intercom","phone-missed","phone-office","phone-plus","phone-rotary","phone-slash","phone-volume","phone-xmark","photo-film","photo-film-music","pi","piano","piano-keyboard","pickaxe","pickleball","pie","pig","piggy-bank","pills","pinata","pinball","pineapple","pipe","pipe-circle-check","pipe-collar","pipe-section","pipe-smoking","pipe-valve","pizza","pizza-slice","place-of-worship","plane","plane-arrival","plane-circle-check","plane-circle-exclamation","plane-circle-xmark","plane-departure","plane-engines","plane-lock","plane-prop","plane-slash","plane-tail","plane-up","plane-up-slash","planet-moon","planet-ringed","plant-wilt","plate-utensils","plate-wheat","play","play-pause","plug","plug-circle-bolt","plug-circle-check","plug-circle-exclamation","plug-circle-minus","plug-circle-plus","plug-circle-xmark","plus","plus-large","plus-minus","podcast","podium","podium-star","police-box","poll-people","pompebled","poo","poo-storm","pool-8-ball","poop","popcorn","popsicle","pot-food","potato","power-off","prescription","prescription-bottle","prescription-bottle-medical","prescription-bottle-pill","presentation-screen","pretzel","print","print-magnifying-glass","print-slash","projector","pump","pump-medical","pump-soap","pumpkin","puzzle","puzzle-piece","puzzle-piece-simple","q","qrcode","question","quote-left","quote-right","quotes","r","rabbit","rabbit-running","raccoon","racquet","radar","radiation","radio","radio-tuner","rainbow","raindrops","ram","ramp-loading","ranking-star","raygun","receipt","record-vinyl","rectangle","rectangle-ad","rectangle-barcode","rectangle-code","rectangle-history","rectangle-history-circle-plus","rectangle-history-circle-user","rectangle-list","rectangle-pro","rectangle-terminal","rectangle-vertical","rectangle-vertical-history","rectangle-wide","rectangle-xmark","rectangles-mixed","recycle","reel","reflect-both","reflect-horizontal","reflect-vertical","refrigerator","registered","repeat","repeat-1","reply","reply-all","reply-clock","republican","restroom","restroom-simple","retweet","rhombus","ribbon","right","right-from-bracket","right-from-line","right-left","right-left-large","right-long","right-long-to-line","right-to-bracket","right-to-line","ring","ring-diamond","rings-wedding","road","road-barrier","road-bridge","road-circle-check","road-circle-exclamation","road-circle-xmark","road-lock","road-spikes","robot","robot-astromech","rocket","rocket-launch","roller-coaster","rotate","rotate-exclamation","rotate-left","rotate-reverse","rotate-right","route","route-highway","route-interstate","router","rss","ruble-sign","rug","rugby-ball","ruler","ruler-combined","ruler-horizontal","ruler-triangle","ruler-vertical","rupee-sign","rupiah-sign","rv","s","sack","sack-dollar","sack-xmark","sailboat","salad","salt-shaker","sandwich","satellite","satellite-dish","sausage","saxophone","saxophone-fire","scale-balanced","scale-unbalanced","scale-unbalanced-flip","scalpel","scalpel-line-dashed","scanner-gun","scanner-image","scanner-keyboard","scanner-touchscreen","scarecrow","scarf","school","school-circle-check","school-circle-exclamation","school-circle-xmark","school-flag","school-lock","scissors","screen-users","screencast","screwdriver","screwdriver-wrench","scribble","scroll","scroll-old","scroll-torah","scrubber","scythe","sd-card","sd-cards","seal","seal-exclamation","seal-question","seat-airline","section","seedling","semicolon","send-back","send-backward","sensor","sensor-cloud","sensor-fire","sensor-on","sensor-triangle-exclamation","server","shapes","share","share-all","share-from-square","share-nodes","sheep","sheet-plastic","shekel-sign","shelves","shelves-empty","shield","shield-cat","shield-check","shield-cross","shield-dog","shield-exclamation","shield-halved","shield-heart","shield-keyhole","shield-minus","shield-plus","shield-quartered","shield-slash","shield-virus","shield-xmark","ship","shirt","shirt-long-sleeve","shirt-running","shirt-tank-top","shish-kebab","shoe-prints","shop","shop-lock","shop-slash","shovel","shovel-snow","shower","shower-down","shredder","shrimp","shuffle","shutters","shuttle-space","shuttlecock","sickle","sidebar","sidebar-flip","sigma","sign-hanging","sign-post","sign-posts","sign-posts-wrench","signal","signal-bars","signal-bars-fair","signal-bars-good","signal-bars-slash","signal-bars-weak","signal-fair","signal-good","signal-slash","signal-stream","signal-stream-slash","signal-strong","signal-weak","signature","signature-lock","signature-slash","signs-post","sim-card","sim-cards","sink","siren","siren-on","sitemap","skeleton","skeleton-ribs","ski-boot","ski-boot-ski","skull","skull-cow","skull-crossbones","slash","slash-back","slash-forward","sleigh","slider","sliders","sliders-simple","sliders-up","slot-machine","smog","smoke","smoking","snake","snooze","snow-blowing","snowflake","snowflake-droplets","snowflakes","snowman","snowman-head","snowplow","soap","socks","soft-serve","solar-panel","solar-system","sort","sort-down","sort-up","spa","space-station-moon","space-station-moon-construction","spade","spaghetti-monster-flying","sparkle","sparkles","speaker","speakers","spell-check","spider","spider-black-widow","spider-web","spinner","spinner-scale","spinner-third","split","splotch","spoon","sportsball","spray-can","spray-can-sparkles","sprinkler","sprinkler-ceiling","square","square-0","square-1","square-2","square-3","square-4","square-5","square-6","square-7","square-8","square-9","square-a","square-a-lock","square-ampersand","square-arrow-down","square-arrow-down-left","square-arrow-down-right","square-arrow-left","square-arrow-right","square-arrow-up","square-arrow-up-left","square-arrow-up-right","square-b","square-bolt","square-c","square-caret-down","square-caret-left","square-caret-right","square-caret-up","square-check","square-chevron-down","square-chevron-left","square-chevron-right","square-chevron-up","square-code","square-d","square-dashed","square-dashed-circle-plus","square-divide","square-dollar","square-down","square-down-left","square-down-right","square-e","square-ellipsis","square-ellipsis-vertical","square-envelope","square-exclamation","square-f","square-fragile","square-full","square-g","square-h","square-heart","square-i","square-info","square-j","square-k","square-kanban","square-l","square-left","square-list","square-m","square-minus","square-n","square-nfi","square-o","square-p","square-parking","square-parking-slash","square-pen","square-person-confined","square-phone","square-phone-flip","square-phone-hangup","square-plus","square-poll-horizontal","square-poll-vertical","square-q","square-quarters","square-question","square-quote","square-r","square-right","square-ring","square-root","square-root-variable","square-rss","square-s","square-share-nodes","square-sliders","square-sliders-vertical","square-small","square-star","square-t","square-terminal","square-this-way-up","square-u","square-up","square-up-left","square-up-right","square-user","square-v","square-virus","square-w","square-x","square-xmark","square-y","square-z","squid","squirrel","staff","staff-snake","stairs","stamp","standard-definition","stapler","star","star-and-crescent","star-christmas","star-exclamation","star-half","star-half-stroke","star-of-david","star-of-life","star-sharp","star-sharp-half","star-sharp-half-stroke","star-shooting","starfighter","starfighter-twin-ion-engine","starfighter-twin-ion-engine-advanced","stars","starship","starship-freighter","steak","steering-wheel","sterling-sign","stethoscope","stocking","stomach","stop","stopwatch","stopwatch-20","store","store-lock","store-slash","strawberry","street-view","stretcher","strikethrough","stroopwafel","subscript","subtitles","subtitles-slash","suitcase","suitcase-medical","suitcase-rolling","sun","sun-bright","sun-cloud","sun-dust","sun-haze","sun-plant-wilt","sunglasses","sunrise","sunset","superscript","sushi","sushi-roll","swap","swap-arrows","swatchbook","sword","sword-laser","sword-laser-alt","swords","swords-laser","symbols","synagogue","syringe","t","t-rex","table","table-cells","table-cells-column-lock","table-cells-column-unlock","table-cells-large","table-cells-lock","table-cells-row-lock","table-cells-row-unlock","table-cells-unlock","table-columns","table-layout","table-list","table-picnic","table-pivot","table-rows","table-tennis-paddle-ball","table-tree","tablet","tablet-button","tablet-rugged","tablet-screen","tablet-screen-button","tablets","tachograph-digital","taco","tag","tags","tally","tally-1","tally-2","tally-3","tally-4","tamale","tank-water","tape","tarp","tarp-droplet","taxi","taxi-bus","teddy-bear","teeth","teeth-open","telescope","temperature-arrow-down","temperature-arrow-up","temperature-empty","temperature-full","temperature-half","temperature-high","temperature-list","temperature-low","temperature-quarter","temperature-snow","temperature-sun","temperature-three-quarters","tenge-sign","tennis-ball","tent","tent-arrow-down-to-line","tent-arrow-left-right","tent-arrow-turn-left","tent-arrows-down","tent-double-peak","tents","terminal","text","text-height","text-size","text-slash","text-width","thermometer","theta","thought-bubble","thumbs-down","thumbs-up","thumbtack","thumbtack-slash","tick","ticket","ticket-airline","ticket-perforated","ticket-simple","tickets","tickets-airline","tickets-perforated","tickets-simple","tilde","timeline","timeline-arrow","timer","tire","tire-flat","tire-pressure-warning","tire-rugged","toggle-large-off","toggle-large-on","toggle-off","toggle-on","toilet","toilet-paper","toilet-paper-blank","toilet-paper-blank-under","toilet-paper-check","toilet-paper-slash","toilet-paper-under","toilet-paper-under-slash","toilet-paper-xmark","toilet-portable","toilets-portable","tomato","tombstone","tombstone-blank","toolbox","tooth","toothbrush","torii-gate","tornado","tower-broadcast","tower-cell","tower-control","tower-observation","tractor","trademark","traffic-cone","traffic-light","traffic-light-go","traffic-light-slow","traffic-light-stop","trailer","train","train-subway","train-subway-tunnel","train-track","train-tram","train-tunnel","transformer-bolt","transgender","transporter","transporter-1","transporter-2","transporter-3","transporter-4","transporter-5","transporter-6","transporter-7","transporter-empty","trash","trash-arrow-up","trash-can","trash-can-arrow-up","trash-can-check","trash-can-clock","trash-can-list","trash-can-plus","trash-can-slash","trash-can-undo","trash-can-xmark","trash-check","trash-clock","trash-list","trash-plus","trash-slash","trash-undo","trash-xmark","treasure-chest","tree","tree-christmas","tree-city","tree-deciduous","tree-decorated","tree-large","tree-palm","trees","triangle","triangle-exclamation","triangle-instrument","triangle-person-digging","tricycle","tricycle-adult","trillium","trophy","trophy-star","trowel","trowel-bricks","truck","truck-arrow-right","truck-bolt","truck-clock","truck-container","truck-container-empty","truck-droplet","truck-fast","truck-field","truck-field-un","truck-fire","truck-flatbed","truck-front","truck-ladder","truck-medical","truck-monster","truck-moving","truck-pickup","truck-plane","truck-plow","truck-ramp","truck-ramp-box","truck-ramp-couch","truck-tow","truck-utensils","trumpet","tty","tty-answer","tugrik-sign","turkey","turkish-lira-sign","turn-down","turn-down-left","turn-down-right","turn-left","turn-left-down","turn-left-up","turn-right","turn-up","turntable","turtle","tv","tv-music","tv-retro","typewriter","u","ufo","ufo-beam","umbrella","umbrella-beach","umbrella-simple","underline","unicorn","uniform-martial-arts","union","universal-access","unlock","unlock-keyhole","up","up-down","up-down-left-right","up-from-bracket","up-from-dotted-line","up-from-line","up-left","up-long","up-right","up-right-and-down-left-from-center","up-right-from-square","up-to-bracket","up-to-dotted-line","up-to-line","upload","usb-drive","user","user-alien","user-astronaut","user-beard-bolt","user-bounty-hunter","user-check","user-chef","user-clock","user-cowboy","user-crown","user-doctor","user-doctor-hair","user-doctor-hair-long","user-doctor-message","user-gear","user-graduate","user-group","user-group-crown","user-group-simple","user-hair","user-hair-buns","user-hair-long","user-hair-mullet","user-headset","user-helmet-safety","user-hoodie","user-injured","user-large","user-large-slash","user-lock","user-magnifying-glass","user-minus","user-music","user-ninja","user-nurse","user-nurse-hair","user-nurse-hair-long","user-pen","user-pilot","user-pilot-tie","user-plus","user-police","user-police-tie","user-robot","user-robot-xmarks","user-secret","user-shakespeare","user-shield","user-slash","user-tag","user-tie","user-tie-hair","user-tie-hair-long","user-unlock","user-visor","user-vneck","user-vneck-hair","user-vneck-hair-long","user-xmark","users","users-between-lines","users-gear","users-line","users-medical","users-rays","users-rectangle","users-slash","users-viewfinder","utensils","utensils-slash","utility-pole","utility-pole-double","v","vacuum","vacuum-robot","value-absolute","van-shuttle","vault","vector-circle","vector-polygon","vector-square","vent-damper","venus","venus-double","venus-mars","vest","vest-patches","vial","vial-circle-check","vial-virus","vials","video","video-arrow-down-left","video-arrow-up-right","video-plus","video-slash","vihara","violin","virus","virus-covid","virus-covid-slash","virus-slash","viruses","voicemail","volcano","volleyball","volume","volume-high","volume-low","volume-off","volume-slash","volume-xmark","vr-cardboard","w","waffle","wagon-covered","walker","walkie-talkie","wallet","wand","wand-magic","wand-magic-sparkles","wand-sparkles","warehouse","warehouse-full","washing-machine","watch","watch-apple","watch-calculator","watch-fitness","watch-smart","water","water-arrow-down","water-arrow-up","water-ladder","watermelon-slice","wave","wave-pulse","wave-sine","wave-square","wave-triangle","waveform","waveform-lines","waves-sine","web-awesome","webhook","weight-hanging","weight-scale","whale","wheat","wheat-awn","wheat-awn-circle-exclamation","wheat-awn-slash","wheat-slash","wheelchair","wheelchair-move","whiskey-glass","whiskey-glass-ice","whistle","wifi","wifi-exclamation","wifi-fair","wifi-slash","wifi-weak","wind","wind-turbine","wind-warning","window","window-flip","window-frame","window-frame-open","window-maximize","window-minimize","window-restore","windsock","wine-bottle","wine-glass","wine-glass-crack","wine-glass-empty","won-sign","worm","wreath","wreath-laurel","wrench","wrench-simple","x","x-ray","xmark","xmark-large","xmark-to-slot","xmarks-lines","y","yen-sign","yin-yang","z"],"thin":["0","00","1","2","3","360-degrees","4","5","6","7","8","9","a","abacus","accent-grave","acorn","address-book","address-card","air-conditioner","airplay","alarm-clock","alarm-exclamation","alarm-plus","alarm-snooze","album","album-circle-plus","album-circle-user","album-collection","album-collection-circle-plus","album-collection-circle-user","alicorn","alien","alien-8bit","align-center","align-justify","align-left","align-right","align-slash","alt","amp-guitar","ampersand","anchor","anchor-circle-check","anchor-circle-exclamation","anchor-circle-xmark","anchor-lock","angel","angle","angle-90","angle-down","angle-left","angle-right","angle-up","angles-down","angles-left","angles-right","angles-up","angles-up-down","ankh","ant","apartment","aperture","apostrophe","apple-core","apple-whole","archway","arrow-down","arrow-down-1-9","arrow-down-9-1","arrow-down-a-z","arrow-down-arrow-up","arrow-down-big-small","arrow-down-from-arc","arrow-down-from-bracket","arrow-down-from-dotted-line","arrow-down-from-line","arrow-down-left","arrow-down-left-and-arrow-up-right-to-center","arrow-down-long","arrow-down-right","arrow-down-short-wide","arrow-down-small-big","arrow-down-square-triangle","arrow-down-to-arc","arrow-down-to-bracket","arrow-down-to-dotted-line","arrow-down-to-line","arrow-down-to-square","arrow-down-triangle-square","arrow-down-up-across-line","arrow-down-up-lock","arrow-down-wide-short","arrow-down-z-a","arrow-left","arrow-left-from-arc","arrow-left-from-bracket","arrow-left-from-line","arrow-left-long","arrow-left-long-to-line","arrow-left-to-arc","arrow-left-to-bracket","arrow-left-to-line","arrow-pointer","arrow-progress","arrow-right","arrow-right-arrow-left","arrow-right-from-arc","arrow-right-from-bracket","arrow-right-from-line","arrow-right-long","arrow-right-long-to-line","arrow-right-to-arc","arrow-right-to-bracket","arrow-right-to-city","arrow-right-to-line","arrow-rotate-left","arrow-rotate-right","arrow-trend-down","arrow-trend-up","arrow-turn-down","arrow-turn-down-left","arrow-turn-down-right","arrow-turn-left","arrow-turn-left-down","arrow-turn-left-up","arrow-turn-right","arrow-turn-up","arrow-up","arrow-up-1-9","arrow-up-9-1","arrow-up-a-z","arrow-up-arrow-down","arrow-up-big-small","arrow-up-from-arc","arrow-up-from-bracket","arrow-up-from-dotted-line","arrow-up-from-ground-water","arrow-up-from-line","arrow-up-from-square","arrow-up-from-water-pump","arrow-up-left","arrow-up-left-from-circle","arrow-up-long","arrow-up-right","arrow-up-right-and-arrow-down-left-from-center","arrow-up-right-dots","arrow-up-right-from-square","arrow-up-short-wide","arrow-up-small-big","arrow-up-square-triangle","arrow-up-to-arc","arrow-up-to-bracket","arrow-up-to-dotted-line","arrow-up-to-line","arrow-up-triangle-square","arrow-up-wide-short","arrow-up-z-a","arrows-cross","arrows-down-to-line","arrows-down-to-people","arrows-from-dotted-line","arrows-from-line","arrows-left-right","arrows-left-right-to-line","arrows-maximize","arrows-minimize","arrows-repeat","arrows-repeat-1","arrows-retweet","arrows-rotate","arrows-rotate-reverse","arrows-spin","arrows-split-up-and-left","arrows-to-circle","arrows-to-dot","arrows-to-dotted-line","arrows-to-eye","arrows-to-line","arrows-turn-right","arrows-turn-to-dots","arrows-up-down","arrows-up-down-left-right","arrows-up-to-line","asterisk","at","atom","atom-simple","audio-description","audio-description-slash","austral-sign","avocado","award","award-simple","axe","axe-battle","b","baby","baby-carriage","backpack","backward","backward-fast","backward-step","bacon","bacteria","bacterium","badge","badge-check","badge-dollar","badge-percent","badge-sheriff","badger-honey","badminton","bag-seedling","bag-shopping","bag-shopping-minus","bag-shopping-plus","bagel","bags-shopping","baguette","bahai","baht-sign","ball-pile","balloon","balloons","ballot","ballot-check","ban","ban-bug","ban-parking","ban-smoking","banana","bandage","bangladeshi-taka-sign","banjo","barcode","barcode-read","barcode-scan","bars","bars-filter","bars-progress","bars-sort","bars-staggered","baseball","baseball-bat-ball","basket-shopping","basket-shopping-minus","basket-shopping-plus","basket-shopping-simple","basketball","basketball-hoop","bat","bath","battery-bolt","battery-empty","battery-exclamation","battery-full","battery-half","battery-low","battery-quarter","battery-slash","battery-three-quarters","bed","bed-bunk","bed-empty","bed-front","bed-pulse","bee","beer-mug","beer-mug-empty","bell","bell-concierge","bell-exclamation","bell-on","bell-plus","bell-ring","bell-school","bell-school-slash","bell-slash","bells","bench-tree","bezier-curve","bicycle","billboard","bin-bottles","bin-bottles-recycle","bin-recycle","binary","binary-circle-check","binary-lock","binary-slash","binoculars","biohazard","bird","bitcoin-sign","blanket","blanket-fire","blender","blender-phone","blinds","blinds-open","blinds-raised","block","block-brick","block-brick-fire","block-question","block-quote","blog","blueberries","bluetooth","bold","bolt","bolt-auto","bolt-lightning","bolt-slash","bomb","bone","bone-break","bong","book","book-arrow-right","book-arrow-up","book-atlas","book-bible","book-blank","book-bookmark","book-circle-arrow-right","book-circle-arrow-up","book-copy","book-font","book-heart","book-journal-whills","book-medical","book-open","book-open-cover","book-open-reader","book-quran","book-section","book-skull","book-sparkles","book-tanakh","book-user","bookmark","bookmark-slash","books","books-medical","boombox","boot","boot-heeled","booth-curtain","border-all","border-bottom","border-bottom-right","border-center-h","border-center-v","border-inner","border-left","border-none","border-outer","border-right","border-top","border-top-left","bore-hole","bottle-baby","bottle-droplet","bottle-water","bow-arrow","bowl-chopsticks","bowl-chopsticks-noodles","bowl-food","bowl-hot","bowl-rice","bowl-scoop","bowl-scoops","bowl-soft-serve","bowl-spoon","bowling-ball","bowling-ball-pin","bowling-pins","box","box-archive","box-ballot","box-check","box-circle-check","box-dollar","box-heart","box-open","box-open-full","box-taped","box-tissue","boxes-packing","boxes-stacked","boxing-glove","bracket-curly","bracket-curly-right","bracket-round","bracket-round-right","bracket-square","bracket-square-right","brackets-curly","brackets-round","brackets-square","braille","brain","brain-arrow-curved-right","brain-circuit","brake-warning","brazilian-real-sign","bread-loaf","bread-slice","bread-slice-butter","bridge","bridge-circle-check","bridge-circle-exclamation","bridge-circle-xmark","bridge-lock","bridge-suspension","bridge-water","briefcase","briefcase-arrow-right","briefcase-blank","briefcase-medical","brightness","brightness-low","bring-forward","bring-front","broccoli","broom","broom-ball","broom-wide","browser","browsers","brush","bucket","bug","bug-slash","bugs","building","building-circle-arrow-right","building-circle-check","building-circle-exclamation","building-circle-xmark","building-columns","building-flag","building-lock","building-magnifying-glass","building-memo","building-ngo","building-shield","building-un","building-user","building-wheat","buildings","bulldozer","bullhorn","bullseye","bullseye-arrow","bullseye-pointer","buoy","buoy-mooring","burger","burger-cheese","burger-fries","burger-glass","burger-lettuce","burger-soda","burrito","burst","bus","bus-school","bus-simple","business-time","butter","c","cabin","cabinet-filing","cable-car","cactus","caduceus","cake-candles","cake-slice","calculator","calculator-simple","calendar","calendar-arrow-down","calendar-arrow-up","calendar-check","calendar-circle-exclamation","calendar-circle-minus","calendar-circle-plus","calendar-circle-user","calendar-clock","calendar-day","calendar-days","calendar-exclamation","calendar-heart","calendar-image","calendar-lines","calendar-lines-pen","calendar-minus","calendar-pen","calendar-plus","calendar-range","calendar-star","calendar-users","calendar-week","calendar-xmark","calendars","camcorder","camera","camera-cctv","camera-movie","camera-polaroid","camera-retro","camera-rotate","camera-security","camera-slash","camera-viewfinder","camera-web","camera-web-slash","campfire","campground","can-food","candle-holder","candy","candy-bar","candy-cane","candy-corn","cannabis","cannon","capsules","car","car-battery","car-bolt","car-building","car-bump","car-burst","car-bus","car-circle-bolt","car-garage","car-mirrors","car-on","car-rear","car-side","car-side-bolt","car-tilt","car-tunnel","car-wash","car-wrench","caravan","caravan-simple","card-club","card-diamond","card-heart","card-spade","cards","cards-blank","caret-down","caret-left","caret-right","caret-up","carrot","cars","cart-arrow-down","cart-arrow-up","cart-circle-arrow-down","cart-circle-arrow-up","cart-circle-check","cart-circle-exclamation","cart-circle-plus","cart-circle-xmark","cart-flatbed","cart-flatbed-boxes","cart-flatbed-empty","cart-flatbed-suitcase","cart-minus","cart-plus","cart-shopping","cart-shopping-fast","cart-xmark","cash-register","cassette-betamax","cassette-tape","cassette-vhs","castle","cat","cat-space","cauldron","cedi-sign","cent-sign","certificate","chair","chair-office","chalkboard","chalkboard-user","champagne-glass","champagne-glasses","charging-station","chart-area","chart-bar","chart-bullet","chart-candlestick","chart-column","chart-gantt","chart-kanban","chart-line","chart-line-down","chart-line-up","chart-line-up-down","chart-mixed","chart-mixed-up-circle-currency","chart-mixed-up-circle-dollar","chart-network","chart-pie","chart-pie-simple","chart-pie-simple-circle-currency","chart-pie-simple-circle-dollar","chart-pyramid","chart-radar","chart-scatter","chart-scatter-3d","chart-scatter-bubble","chart-simple","chart-simple-horizontal","chart-tree-map","chart-user","chart-waterfall","check","check-double","check-to-slot","cheese","cheese-swiss","cherries","chess","chess-bishop","chess-bishop-piece","chess-board","chess-clock","chess-clock-flip","chess-king","chess-king-piece","chess-knight","chess-knight-piece","chess-pawn","chess-pawn-piece","chess-queen","chess-queen-piece","chess-rook","chess-rook-piece","chestnut","chevron-down","chevron-left","chevron-right","chevron-up","chevrons-down","chevrons-left","chevrons-right","chevrons-up","chf-sign","child","child-combatant","child-dress","child-reaching","children","chimney","chopsticks","church","circle","circle-0","circle-1","circle-2","circle-3","circle-4","circle-5","circle-6","circle-7","circle-8","circle-9","circle-a","circle-ampersand","circle-arrow-down","circle-arrow-down-left","circle-arrow-down-right","circle-arrow-left","circle-arrow-right","circle-arrow-up","circle-arrow-up-left","circle-arrow-up-right","circle-b","circle-bolt","circle-book-open","circle-bookmark","circle-c","circle-calendar","circle-camera","circle-caret-down","circle-caret-left","circle-caret-right","circle-caret-up","circle-check","circle-chevron-down","circle-chevron-left","circle-chevron-right","circle-chevron-up","circle-d","circle-dashed","circle-divide","circle-dollar","circle-dollar-to-slot","circle-dot","circle-down","circle-down-left","circle-down-right","circle-e","circle-ellipsis","circle-ellipsis-vertical","circle-envelope","circle-euro","circle-exclamation","circle-exclamation-check","circle-f","circle-g","circle-gf","circle-h","circle-half","circle-half-stroke","circle-heart","circle-i","circle-info","circle-j","circle-k","circle-l","circle-left","circle-location-arrow","circle-m","circle-microphone","circle-microphone-lines","circle-minus","circle-n","circle-nodes","circle-notch","circle-o","circle-p","circle-parking","circle-pause","circle-phone","circle-phone-flip","circle-phone-hangup","circle-play","circle-plus","circle-q","circle-quarter","circle-quarter-stroke","circle-quarters","circle-question","circle-r","circle-radiation","circle-right","circle-s","circle-small","circle-sort","circle-sort-down","circle-sort-up","circle-star","circle-sterling","circle-stop","circle-t","circle-three-quarters","circle-three-quarters-stroke","circle-trash","circle-u","circle-up","circle-up-left","circle-up-right","circle-user","circle-v","circle-video","circle-w","circle-waveform-lines","circle-wifi","circle-wifi-circle-wifi","circle-x","circle-xmark","circle-y","circle-yen","circle-z","circles-overlap","citrus","citrus-slice","city","clapperboard","clapperboard-play","clarinet","claw-marks","clipboard","clipboard-check","clipboard-list","clipboard-list-check","clipboard-medical","clipboard-prescription","clipboard-question","clipboard-user","clock","clock-desk","clock-eight","clock-eight-thirty","clock-eleven","clock-eleven-thirty","clock-five","clock-five-thirty","clock-four-thirty","clock-nine","clock-nine-thirty","clock-one","clock-one-thirty","clock-rotate-left","clock-seven","clock-seven-thirty","clock-six","clock-six-thirty","clock-ten","clock-ten-thirty","clock-three","clock-three-thirty","clock-twelve","clock-twelve-thirty","clock-two","clock-two-thirty","clone","closed-captioning","closed-captioning-slash","clothes-hanger","cloud","cloud-arrow-down","cloud-arrow-up","cloud-binary","cloud-bolt","cloud-bolt-moon","cloud-bolt-sun","cloud-check","cloud-drizzle","cloud-exclamation","cloud-fog","cloud-hail","cloud-hail-mixed","cloud-meatball","cloud-minus","cloud-moon","cloud-moon-rain","cloud-music","cloud-plus","cloud-question","cloud-rain","cloud-rainbow","cloud-showers","cloud-showers-heavy","cloud-showers-water","cloud-slash","cloud-sleet","cloud-snow","cloud-sun","cloud-sun-rain","cloud-word","cloud-xmark","clouds","clouds-moon","clouds-sun","clover","club","coconut","code","code-branch","code-commit","code-compare","code-fork","code-merge","code-pull-request","code-pull-request-closed","code-pull-request-draft","code-simple","coffee-bean","coffee-beans","coffee-pot","coffin","coffin-cross","coin","coin-blank","coin-front","coin-vertical","coins","colon","colon-sign","columns-3","comet","comma","command","comment","comment-arrow-down","comment-arrow-up","comment-arrow-up-right","comment-captions","comment-check","comment-code","comment-dollar","comment-dots","comment-exclamation","comment-heart","comment-image","comment-lines","comment-medical","comment-middle","comment-middle-top","comment-minus","comment-music","comment-pen","comment-plus","comment-question","comment-quote","comment-slash","comment-smile","comment-sms","comment-text","comment-xmark","comments","comments-dollar","comments-question","comments-question-check","compact-disc","compass","compass-drafting","compass-slash","compress","compress-wide","computer","computer-classic","computer-mouse","computer-mouse-scrollwheel","computer-speaker","container-storage","conveyor-belt","conveyor-belt-arm","conveyor-belt-boxes","conveyor-belt-empty","cookie","cookie-bite","copy","copyright","corn","corner","couch","court-sport","cow","cowbell","cowbell-circle-plus","crab","crate-apple","crate-empty","credit-card","credit-card-blank","credit-card-front","cricket-bat-ball","croissant","crop","crop-simple","cross","crosshairs","crosshairs-simple","crow","crown","crutch","crutches","cruzeiro-sign","crystal-ball","cube","cubes","cubes-stacked","cucumber","cup-straw","cup-straw-swoosh","cup-togo","cupcake","curling-stone","custard","d","dagger","dash","database","deer","deer-rudolph","delete-left","delete-right","democrat","desktop","desktop-arrow-down","dharmachakra","diagram-cells","diagram-lean-canvas","diagram-nested","diagram-next","diagram-predecessor","diagram-previous","diagram-project","diagram-sankey","diagram-subtask","diagram-successor","diagram-venn","dial","dial-high","dial-low","dial-max","dial-med","dial-med-low","dial-min","dial-off","diamond","diamond-exclamation","diamond-half","diamond-half-stroke","diamond-turn-right","diamonds-4","dice","dice-d10","dice-d12","dice-d20","dice-d4","dice-d6","dice-d8","dice-five","dice-four","dice-one","dice-six","dice-three","dice-two","dinosaur","diploma","disc-drive","disease","display","display-arrow-down","display-chart-up","display-chart-up-circle-currency","display-chart-up-circle-dollar","display-code","display-medical","display-slash","distribute-spacing-horizontal","distribute-spacing-vertical","ditto","divide","dna","do-not-enter","dog","dog-leashed","dollar-sign","dolly","dolly-empty","dolphin","dong-sign","donut","door-closed","door-open","dove","down","down-from-bracket","down-from-dotted-line","down-from-line","down-left","down-left-and-up-right-to-center","down-long","down-right","down-to-bracket","down-to-dotted-line","down-to-line","download","dragon","draw-circle","draw-polygon","draw-square","dreidel","drone","drone-front","droplet","droplet-degree","droplet-percent","droplet-slash","drum","drum-steelpan","drumstick","drumstick-bite","dryer","dryer-heat","duck","dumbbell","dumpster","dumpster-fire","dungeon","e","ear","ear-deaf","ear-listen","ear-muffs","earth-africa","earth-americas","earth-asia","earth-europe","earth-oceania","eclipse","egg","egg-fried","eggplant","eject","elephant","elevator","ellipsis","ellipsis-stroke","ellipsis-stroke-vertical","ellipsis-vertical","empty-set","engine","engine-warning","envelope","envelope-circle-check","envelope-dot","envelope-open","envelope-open-dollar","envelope-open-text","envelopes","envelopes-bulk","equals","eraser","escalator","ethernet","euro-sign","excavator","exclamation","expand","expand-wide","explosion","eye","eye-dropper","eye-dropper-full","eye-dropper-half","eye-evil","eye-low-vision","eye-slash","eyes","f","face-angry","face-angry-horns","face-anguished","face-anxious-sweat","face-astonished","face-awesome","face-beam-hand-over-mouth","face-clouds","face-confounded","face-confused","face-cowboy-hat","face-diagonal-mouth","face-disappointed","face-disguise","face-dizzy","face-dotted","face-downcast-sweat","face-drooling","face-exhaling","face-explode","face-expressionless","face-eyes-xmarks","face-fearful","face-flushed","face-frown","face-frown-open","face-frown-slight","face-glasses","face-grimace","face-grin","face-grin-beam","face-grin-beam-sweat","face-grin-hearts","face-grin-squint","face-grin-squint-tears","face-grin-stars","face-grin-tears","face-grin-tongue","face-grin-tongue-squint","face-grin-tongue-wink","face-grin-wide","face-grin-wink","face-hand-over-mouth","face-hand-peeking","face-hand-yawn","face-head-bandage","face-holding-back-tears","face-hushed","face-icicles","face-kiss","face-kiss-beam","face-kiss-closed-eyes","face-kiss-wink-heart","face-laugh","face-laugh-beam","face-laugh-squint","face-laugh-wink","face-lying","face-mask","face-meh","face-meh-blank","face-melting","face-monocle","face-nauseated","face-nose-steam","face-party","face-pensive","face-persevering","face-pleading","face-pouting","face-raised-eyebrow","face-relieved","face-rolling-eyes","face-sad-cry","face-sad-sweat","face-sad-tear","face-saluting","face-scream","face-shush","face-sleeping","face-sleepy","face-smile","face-smile-beam","face-smile-halo","face-smile-hearts","face-smile-horns","face-smile-plus","face-smile-relaxed","face-smile-tear","face-smile-tongue","face-smile-upside-down","face-smile-wink","face-smiling-hands","face-smirking","face-spiral-eyes","face-sunglasses","face-surprise","face-swear","face-thermometer","face-thinking","face-tired","face-tissue","face-tongue-money","face-tongue-sweat","face-unamused","face-viewfinder","face-vomit","face-weary","face-woozy","face-worried","face-zany","face-zipper","falafel","family","family-dress","family-pants","fan","fan-table","farm","faucet","faucet-drip","fax","feather","feather-pointed","fence","ferris-wheel","ferry","field-hockey-stick-ball","file","file-arrow-down","file-arrow-up","file-audio","file-binary","file-cad","file-certificate","file-chart-column","file-chart-pie","file-check","file-circle-check","file-circle-exclamation","file-circle-info","file-circle-minus","file-circle-plus","file-circle-question","file-circle-xmark","file-code","file-contract","file-csv","file-dashed-line","file-doc","file-eps","file-excel","file-exclamation","file-export","file-gif","file-heart","file-image","file-import","file-invoice","file-invoice-dollar","file-jpg","file-lines","file-lock","file-magnifying-glass","file-medical","file-minus","file-mov","file-mp3","file-mp4","file-music","file-pdf","file-pen","file-plus","file-plus-minus","file-png","file-powerpoint","file-ppt","file-prescription","file-shield","file-signature","file-slash","file-spreadsheet","file-svg","file-user","file-vector","file-video","file-waveform","file-word","file-xls","file-xmark","file-xml","file-zip","file-zipper","files","files-medical","fill","fill-drip","film","film-canister","film-simple","film-slash","films","filter","filter-circle-dollar","filter-circle-xmark","filter-list","filter-slash","filters","fingerprint","fire","fire-burner","fire-extinguisher","fire-flame","fire-flame-curved","fire-flame-simple","fire-hydrant","fire-smoke","fireplace","fish","fish-bones","fish-cooked","fish-fins","fishing-rod","flag","flag-checkered","flag-pennant","flag-swallowtail","flag-usa","flashlight","flask","flask-gear","flask-round-poison","flask-round-potion","flask-vial","flatbread","flatbread-stuffed","floppy-disk","floppy-disk-circle-arrow-right","floppy-disk-circle-xmark","floppy-disk-pen","floppy-disks","florin-sign","flower","flower-daffodil","flower-tulip","flute","flux-capacitor","flying-disc","folder","folder-arrow-down","folder-arrow-up","folder-bookmark","folder-check","folder-closed","folder-gear","folder-grid","folder-heart","folder-image","folder-magnifying-glass","folder-medical","folder-minus","folder-music","folder-open","folder-plus","folder-tree","folder-user","folder-xmark","folders","fondue-pot","font","font-awesome","font-case","football","football-helmet","fork","fork-knife","forklift","fort","forward","forward-fast","forward-step","frame","franc-sign","french-fries","frog","function","futbol","g","galaxy","gallery-thumbnails","game-board","game-board-simple","game-console-handheld","game-console-handheld-crank","gamepad","gamepad-modern","garage","garage-car","garage-open","garlic","gas-pump","gas-pump-slash","gauge","gauge-circle-bolt","gauge-circle-minus","gauge-circle-plus","gauge-high","gauge-low","gauge-max","gauge-min","gauge-simple","gauge-simple-high","gauge-simple-low","gauge-simple-max","gauge-simple-min","gavel","gear","gear-code","gear-complex","gear-complex-code","gears","gem","genderless","ghost","gif","gift","gift-card","gifts","gingerbread-man","glass","glass-citrus","glass-empty","glass-half","glass-water","glass-water-droplet","glasses","glasses-round","globe","globe-pointer","globe-snow","globe-stand","globe-wifi","goal-net","golf-ball-tee","golf-club","golf-flag-hole","gopuram","graduation-cap","gramophone","grapes","grate","grate-droplet","greater-than","greater-than-equal","grid","grid-2","grid-2-plus","grid-4","grid-5","grid-dividers","grid-horizontal","grid-round","grid-round-2","grid-round-2-plus","grid-round-4","grid-round-5","grill","grill-fire","grill-hot","grip","grip-dots","grip-dots-vertical","grip-lines","grip-lines-vertical","grip-vertical","group-arrows-rotate","guarani-sign","guitar","guitar-electric","guitars","gun","gun-slash","gun-squirt","h","h1","h2","h3","h4","h5","h6","hammer","hammer-brush","hammer-crash","hammer-war","hamsa","hand","hand-back-fist","hand-back-point-down","hand-back-point-left","hand-back-point-ribbon","hand-back-point-right","hand-back-point-up","hand-dots","hand-fingers-crossed","hand-fist","hand-heart","hand-holding","hand-holding-box","hand-holding-circle-dollar","hand-holding-dollar","hand-holding-droplet","hand-holding-hand","hand-holding-heart","hand-holding-magic","hand-holding-medical","hand-holding-seedling","hand-holding-skull","hand-horns","hand-lizard","hand-love","hand-middle-finger","hand-peace","hand-point-down","hand-point-left","hand-point-ribbon","hand-point-right","hand-point-up","hand-pointer","hand-scissors","hand-sparkles","hand-spock","hand-wave","handcuffs","hands","hands-asl-interpreting","hands-bound","hands-bubbles","hands-clapping","hands-holding","hands-holding-child","hands-holding-circle","hands-holding-diamond","hands-holding-dollar","hands-holding-heart","hands-praying","handshake","handshake-angle","handshake-simple","handshake-simple-slash","handshake-slash","hanukiah","hard-drive","hashtag","hashtag-lock","hat-beach","hat-chef","hat-cowboy","hat-cowboy-side","hat-santa","hat-winter","hat-witch","hat-wizard","head-side","head-side-brain","head-side-cough","head-side-cough-slash","head-side-gear","head-side-goggles","head-side-headphones","head-side-heart","head-side-mask","head-side-medical","head-side-virus","heading","headphones","headphones-simple","headset","heart","heart-circle-bolt","heart-circle-check","heart-circle-exclamation","heart-circle-minus","heart-circle-plus","heart-circle-xmark","heart-crack","heart-half","heart-half-stroke","heart-pulse","heat","helicopter","helicopter-symbol","helmet-battle","helmet-safety","helmet-un","hexagon","hexagon-check","hexagon-divide","hexagon-exclamation","hexagon-image","hexagon-minus","hexagon-plus","hexagon-vertical-nft","hexagon-vertical-nft-slanted","hexagon-xmark","high-definition","highlighter","highlighter-line","hill-avalanche","hill-rockslide","hippo","hockey-mask","hockey-puck","hockey-stick-puck","hockey-sticks","holly-berry","honey-pot","hood-cloak","horizontal-rule","horse","horse-head","horse-saddle","hose","hose-reel","hospital","hospital-user","hospitals","hot-tub-person","hotdog","hotel","hourglass","hourglass-clock","hourglass-end","hourglass-half","hourglass-start","house","house-blank","house-building","house-chimney","house-chimney-blank","house-chimney-crack","house-chimney-heart","house-chimney-medical","house-chimney-user","house-chimney-window","house-circle-check","house-circle-exclamation","house-circle-xmark","house-crack","house-day","house-fire","house-flag","house-flood-water","house-flood-water-circle-arrow-right","house-heart","house-laptop","house-lock","house-medical","house-medical-circle-check","house-medical-circle-exclamation","house-medical-circle-xmark","house-medical-flag","house-night","house-person-leave","house-person-return","house-signal","house-tree","house-tsunami","house-turret","house-user","house-water","house-window","hryvnia-sign","hundred-points","hurricane","hydra","hyphen","i","i-cursor","ice-cream","ice-skate","icicles","icons","id-badge","id-card","id-card-clip","igloo","image","image-landscape","image-polaroid","image-polaroid-user","image-portrait","image-slash","image-user","images","images-user","inbox","inbox-full","inbox-in","inbox-out","inboxes","indent","indian-rupee-sign","industry","industry-windows","infinity","info","inhaler","input-numeric","input-pipe","input-text","integral","interrobang","intersection","island-tropical","italic","j","jack-o-lantern","jar","jar-wheat","jedi","jet-fighter","jet-fighter-up","joint","joystick","jug","jug-bottle","jug-detergent","k","kaaba","kazoo","kerning","key","key-skeleton","key-skeleton-left-right","keyboard","keyboard-brightness","keyboard-brightness-low","keyboard-down","keyboard-left","keynote","khanda","kidneys","kip-sign","kit-medical","kitchen-set","kite","kiwi-bird","kiwi-fruit","knife","knife-kitchen","l","lacrosse-stick","lacrosse-stick-ball","lambda","lamp","lamp-desk","lamp-floor","lamp-street","land-mine-on","landmark","landmark-dome","landmark-flag","landmark-magnifying-glass","language","laptop","laptop-arrow-down","laptop-binary","laptop-code","laptop-file","laptop-medical","laptop-mobile","laptop-slash","lari-sign","lasso","lasso-sparkles","layer-group","layer-minus","layer-plus","leaf","leaf-heart","leaf-maple","leaf-oak","leafy-green","left","left-from-bracket","left-from-line","left-long","left-long-to-line","left-right","left-to-bracket","left-to-line","lemon","less-than","less-than-equal","life-ring","light-ceiling","light-emergency","light-emergency-on","light-switch","light-switch-off","light-switch-on","lightbulb","lightbulb-cfl","lightbulb-cfl-on","lightbulb-dollar","lightbulb-exclamation","lightbulb-exclamation-on","lightbulb-gear","lightbulb-message","lightbulb-on","lightbulb-slash","lighthouse","lights-holiday","line-columns","line-height","lines-leaning","link","link-horizontal","link-horizontal-slash","link-simple","link-simple-slash","link-slash","lips","lira-sign","list","list-check","list-dropdown","list-music","list-ol","list-radio","list-timeline","list-tree","list-ul","litecoin-sign","loader","lobster","location-arrow","location-arrow-up","location-check","location-crosshairs","location-crosshairs-slash","location-dot","location-dot-slash","location-exclamation","location-minus","location-pen","location-pin","location-pin-lock","location-pin-slash","location-plus","location-question","location-smile","location-xmark","lock","lock-a","lock-hashtag","lock-keyhole","lock-keyhole-open","lock-open","locust","lollipop","loveseat","luchador-mask","lungs","lungs-virus","m","mace","magnet","magnifying-glass","magnifying-glass-arrow-right","magnifying-glass-arrows-rotate","magnifying-glass-chart","magnifying-glass-dollar","magnifying-glass-location","magnifying-glass-minus","magnifying-glass-music","magnifying-glass-play","magnifying-glass-plus","magnifying-glass-waveform","mailbox","mailbox-flag-up","manat-sign","mandolin","mango","manhole","map","map-location","map-location-dot","map-pin","marker","mars","mars-and-venus","mars-and-venus-burst","mars-double","mars-stroke","mars-stroke-right","mars-stroke-up","martini-glass","martini-glass-citrus","martini-glass-empty","mask","mask-face","mask-snorkel","mask-ventilator","masks-theater","mattress-pillow","maximize","meat","medal","megaphone","melon","melon-slice","memo","memo-circle-check","memo-circle-info","memo-pad","memory","menorah","mercury","merge","message","message-arrow-down","message-arrow-up","message-arrow-up-right","message-bot","message-captions","message-check","message-code","message-dollar","message-dots","message-exclamation","message-heart","message-image","message-lines","message-medical","message-middle","message-middle-top","message-minus","message-music","message-pen","message-plus","message-question","message-quote","message-slash","message-smile","message-sms","message-text","message-xmark","messages","messages-dollar","messages-question","meteor","meter","meter-bolt","meter-droplet","meter-fire","microchip","microchip-ai","microphone","microphone-lines","microphone-lines-slash","microphone-slash","microphone-stand","microscope","microwave","mill-sign","minimize","minus","mistletoe","mitten","mobile","mobile-button","mobile-notch","mobile-retro","mobile-screen","mobile-screen-button","mobile-signal","mobile-signal-out","money-bill","money-bill-1","money-bill-1-wave","money-bill-simple","money-bill-simple-wave","money-bill-transfer","money-bill-trend-up","money-bill-wave","money-bill-wheat","money-bills","money-bills-simple","money-check","money-check-dollar","money-check-dollar-pen","money-check-pen","money-from-bracket","money-simple-from-bracket","monitor-waveform","monkey","monument","moon","moon-cloud","moon-over-sun","moon-stars","moped","mortar-pestle","mosque","mosquito","mosquito-net","motorcycle","mound","mountain","mountain-city","mountain-sun","mountains","mouse-field","mp3-player","mug","mug-hot","mug-marshmallows","mug-saucer","mug-tea","mug-tea-saucer","mushroom","music","music-magnifying-glass","music-note","music-note-slash","music-slash","mustache","n","naira-sign","narwhal","nesting-dolls","network-wired","neuter","newspaper","nfc","nfc-lock","nfc-magnifying-glass","nfc-pen","nfc-signal","nfc-slash","nfc-symbol","nfc-trash","nose","not-equal","notdef","note","note-medical","note-sticky","notebook","notes","notes-medical","o","object-exclude","object-group","object-intersect","object-subtract","object-ungroup","object-union","objects-align-bottom","objects-align-center-horizontal","objects-align-center-vertical","objects-align-left","objects-align-right","objects-align-top","objects-column","octagon","octagon-check","octagon-divide","octagon-exclamation","octagon-minus","octagon-plus","octagon-xmark","octopus","oil-can","oil-can-drip","oil-temperature","oil-well","olive","olive-branch","om","omega","onion","option","ornament","otter","outdent","outlet","oven","overline","p","page","page-caret-down","page-caret-up","pager","paint-roller","paintbrush","paintbrush-fine","paintbrush-pencil","palette","pallet","pallet-box","pallet-boxes","pan-food","pan-frying","pancakes","panel-ews","panel-fire","panorama","paper-plane","paper-plane-top","paperclip","paperclip-vertical","parachute-box","paragraph","paragraph-left","party-bell","party-horn","passport","paste","pause","paw","paw-claws","paw-simple","peace","peach","peanut","peanuts","peapod","pear","pedestal","pegasus","pen","pen-circle","pen-clip","pen-clip-slash","pen-fancy","pen-fancy-slash","pen-field","pen-line","pen-nib","pen-nib-slash","pen-paintbrush","pen-ruler","pen-slash","pen-swirl","pen-to-square","pencil","pencil-mechanical","pencil-slash","people","people-arrows","people-carry-box","people-dress","people-dress-simple","people-group","people-line","people-pants","people-pants-simple","people-pulling","people-robbery","people-roof","people-simple","pepper","pepper-hot","percent","period","person","person-arrow-down-to-line","person-arrow-up-from-line","person-biking","person-biking-mountain","person-booth","person-breastfeeding","person-burst","person-cane","person-carry-box","person-chalkboard","person-circle-check","person-circle-exclamation","person-circle-minus","person-circle-plus","person-circle-question","person-circle-xmark","person-digging","person-dolly","person-dolly-empty","person-dots-from-line","person-dress","person-dress-burst","person-dress-fairy","person-dress-simple","person-drowning","person-fairy","person-falling","person-falling-burst","person-from-portal","person-half-dress","person-harassing","person-hiking","person-military-pointing","person-military-rifle","person-military-to-person","person-pinball","person-praying","person-pregnant","person-rays","person-rifle","person-running","person-running-fast","person-seat","person-seat-reclined","person-shelter","person-sign","person-simple","person-skating","person-ski-jumping","person-ski-lift","person-skiing","person-skiing-nordic","person-sledding","person-snowboarding","person-snowmobiling","person-swimming","person-through-window","person-to-door","person-to-portal","person-walking","person-walking-arrow-loop-left","person-walking-arrow-right","person-walking-dashed-line-arrow-right","person-walking-luggage","person-walking-with-cane","peseta-sign","peso-sign","phone","phone-arrow-down-left","phone-arrow-right","phone-arrow-up-right","phone-flip","phone-hangup","phone-intercom","phone-missed","phone-office","phone-plus","phone-rotary","phone-slash","phone-volume","phone-xmark","photo-film","photo-film-music","pi","piano","piano-keyboard","pickaxe","pickleball","pie","pig","piggy-bank","pills","pinata","pinball","pineapple","pipe","pipe-circle-check","pipe-collar","pipe-section","pipe-smoking","pipe-valve","pizza","pizza-slice","place-of-worship","plane","plane-arrival","plane-circle-check","plane-circle-exclamation","plane-circle-xmark","plane-departure","plane-engines","plane-lock","plane-prop","plane-slash","plane-tail","plane-up","plane-up-slash","planet-moon","planet-ringed","plant-wilt","plate-utensils","plate-wheat","play","play-pause","plug","plug-circle-bolt","plug-circle-check","plug-circle-exclamation","plug-circle-minus","plug-circle-plus","plug-circle-xmark","plus","plus-large","plus-minus","podcast","podium","podium-star","police-box","poll-people","pompebled","poo","poo-storm","pool-8-ball","poop","popcorn","popsicle","pot-food","potato","power-off","prescription","prescription-bottle","prescription-bottle-medical","prescription-bottle-pill","presentation-screen","pretzel","print","print-magnifying-glass","print-slash","projector","pump","pump-medical","pump-soap","pumpkin","puzzle","puzzle-piece","puzzle-piece-simple","q","qrcode","question","quote-left","quote-right","quotes","r","rabbit","rabbit-running","raccoon","racquet","radar","radiation","radio","radio-tuner","rainbow","raindrops","ram","ramp-loading","ranking-star","raygun","receipt","record-vinyl","rectangle","rectangle-ad","rectangle-barcode","rectangle-code","rectangle-history","rectangle-history-circle-plus","rectangle-history-circle-user","rectangle-list","rectangle-pro","rectangle-terminal","rectangle-vertical","rectangle-vertical-history","rectangle-wide","rectangle-xmark","rectangles-mixed","recycle","reel","reflect-both","reflect-horizontal","reflect-vertical","refrigerator","registered","repeat","repeat-1","reply","reply-all","reply-clock","republican","restroom","restroom-simple","retweet","rhombus","ribbon","right","right-from-bracket","right-from-line","right-left","right-left-large","right-long","right-long-to-line","right-to-bracket","right-to-line","ring","ring-diamond","rings-wedding","road","road-barrier","road-bridge","road-circle-check","road-circle-exclamation","road-circle-xmark","road-lock","road-spikes","robot","robot-astromech","rocket","rocket-launch","roller-coaster","rotate","rotate-exclamation","rotate-left","rotate-reverse","rotate-right","route","route-highway","route-interstate","router","rss","ruble-sign","rug","rugby-ball","ruler","ruler-combined","ruler-horizontal","ruler-triangle","ruler-vertical","rupee-sign","rupiah-sign","rv","s","sack","sack-dollar","sack-xmark","sailboat","salad","salt-shaker","sandwich","satellite","satellite-dish","sausage","saxophone","saxophone-fire","scale-balanced","scale-unbalanced","scale-unbalanced-flip","scalpel","scalpel-line-dashed","scanner-gun","scanner-image","scanner-keyboard","scanner-touchscreen","scarecrow","scarf","school","school-circle-check","school-circle-exclamation","school-circle-xmark","school-flag","school-lock","scissors","screen-users","screencast","screwdriver","screwdriver-wrench","scribble","scroll","scroll-old","scroll-torah","scrubber","scythe","sd-card","sd-cards","seal","seal-exclamation","seal-question","seat-airline","section","seedling","semicolon","send-back","send-backward","sensor","sensor-cloud","sensor-fire","sensor-on","sensor-triangle-exclamation","server","shapes","share","share-all","share-from-square","share-nodes","sheep","sheet-plastic","shekel-sign","shelves","shelves-empty","shield","shield-cat","shield-check","shield-cross","shield-dog","shield-exclamation","shield-halved","shield-heart","shield-keyhole","shield-minus","shield-plus","shield-quartered","shield-slash","shield-virus","shield-xmark","ship","shirt","shirt-long-sleeve","shirt-running","shirt-tank-top","shish-kebab","shoe-prints","shop","shop-lock","shop-slash","shovel","shovel-snow","shower","shower-down","shredder","shrimp","shuffle","shutters","shuttle-space","shuttlecock","sickle","sidebar","sidebar-flip","sigma","sign-hanging","sign-post","sign-posts","sign-posts-wrench","signal","signal-bars","signal-bars-fair","signal-bars-good","signal-bars-slash","signal-bars-weak","signal-fair","signal-good","signal-slash","signal-stream","signal-stream-slash","signal-strong","signal-weak","signature","signature-lock","signature-slash","signs-post","sim-card","sim-cards","sink","siren","siren-on","sitemap","skeleton","skeleton-ribs","ski-boot","ski-boot-ski","skull","skull-cow","skull-crossbones","slash","slash-back","slash-forward","sleigh","slider","sliders","sliders-simple","sliders-up","slot-machine","smog","smoke","smoking","snake","snooze","snow-blowing","snowflake","snowflake-droplets","snowflakes","snowman","snowman-head","snowplow","soap","socks","soft-serve","solar-panel","solar-system","sort","sort-down","sort-up","spa","space-station-moon","space-station-moon-construction","spade","spaghetti-monster-flying","sparkle","sparkles","speaker","speakers","spell-check","spider","spider-black-widow","spider-web","spinner","spinner-scale","spinner-third","split","splotch","spoon","sportsball","spray-can","spray-can-sparkles","sprinkler","sprinkler-ceiling","square","square-0","square-1","square-2","square-3","square-4","square-5","square-6","square-7","square-8","square-9","square-a","square-a-lock","square-ampersand","square-arrow-down","square-arrow-down-left","square-arrow-down-right","square-arrow-left","square-arrow-right","square-arrow-up","square-arrow-up-left","square-arrow-up-right","square-b","square-bolt","square-c","square-caret-down","square-caret-left","square-caret-right","square-caret-up","square-check","square-chevron-down","square-chevron-left","square-chevron-right","square-chevron-up","square-code","square-d","square-dashed","square-dashed-circle-plus","square-divide","square-dollar","square-down","square-down-left","square-down-right","square-e","square-ellipsis","square-ellipsis-vertical","square-envelope","square-exclamation","square-f","square-fragile","square-full","square-g","square-h","square-heart","square-i","square-info","square-j","square-k","square-kanban","square-l","square-left","square-list","square-m","square-minus","square-n","square-nfi","square-o","square-p","square-parking","square-parking-slash","square-pen","square-person-confined","square-phone","square-phone-flip","square-phone-hangup","square-plus","square-poll-horizontal","square-poll-vertical","square-q","square-quarters","square-question","square-quote","square-r","square-right","square-ring","square-root","square-root-variable","square-rss","square-s","square-share-nodes","square-sliders","square-sliders-vertical","square-small","square-star","square-t","square-terminal","square-this-way-up","square-u","square-up","square-up-left","square-up-right","square-user","square-v","square-virus","square-w","square-x","square-xmark","square-y","square-z","squid","squirrel","staff","staff-snake","stairs","stamp","standard-definition","stapler","star","star-and-crescent","star-christmas","star-exclamation","star-half","star-half-stroke","star-of-david","star-of-life","star-sharp","star-sharp-half","star-sharp-half-stroke","star-shooting","starfighter","starfighter-twin-ion-engine","starfighter-twin-ion-engine-advanced","stars","starship","starship-freighter","steak","steering-wheel","sterling-sign","stethoscope","stocking","stomach","stop","stopwatch","stopwatch-20","store","store-lock","store-slash","strawberry","street-view","stretcher","strikethrough","stroopwafel","subscript","subtitles","subtitles-slash","suitcase","suitcase-medical","suitcase-rolling","sun","sun-bright","sun-cloud","sun-dust","sun-haze","sun-plant-wilt","sunglasses","sunrise","sunset","superscript","sushi","sushi-roll","swap","swap-arrows","swatchbook","sword","sword-laser","sword-laser-alt","swords","swords-laser","symbols","synagogue","syringe","t","t-rex","table","table-cells","table-cells-column-lock","table-cells-column-unlock","table-cells-large","table-cells-lock","table-cells-row-lock","table-cells-row-unlock","table-cells-unlock","table-columns","table-layout","table-list","table-picnic","table-pivot","table-rows","table-tennis-paddle-ball","table-tree","tablet","tablet-button","tablet-rugged","tablet-screen","tablet-screen-button","tablets","tachograph-digital","taco","tag","tags","tally","tally-1","tally-2","tally-3","tally-4","tamale","tank-water","tape","tarp","tarp-droplet","taxi","taxi-bus","teddy-bear","teeth","teeth-open","telescope","temperature-arrow-down","temperature-arrow-up","temperature-empty","temperature-full","temperature-half","temperature-high","temperature-list","temperature-low","temperature-quarter","temperature-snow","temperature-sun","temperature-three-quarters","tenge-sign","tennis-ball","tent","tent-arrow-down-to-line","tent-arrow-left-right","tent-arrow-turn-left","tent-arrows-down","tent-double-peak","tents","terminal","text","text-height","text-size","text-slash","text-width","thermometer","theta","thought-bubble","thumbs-down","thumbs-up","thumbtack","thumbtack-slash","tick","ticket","ticket-airline","ticket-perforated","ticket-simple","tickets","tickets-airline","tickets-perforated","tickets-simple","tilde","timeline","timeline-arrow","timer","tire","tire-flat","tire-pressure-warning","tire-rugged","toggle-large-off","toggle-large-on","toggle-off","toggle-on","toilet","toilet-paper","toilet-paper-blank","toilet-paper-blank-under","toilet-paper-check","toilet-paper-slash","toilet-paper-under","toilet-paper-under-slash","toilet-paper-xmark","toilet-portable","toilets-portable","tomato","tombstone","tombstone-blank","toolbox","tooth","toothbrush","torii-gate","tornado","tower-broadcast","tower-cell","tower-control","tower-observation","tractor","trademark","traffic-cone","traffic-light","traffic-light-go","traffic-light-slow","traffic-light-stop","trailer","train","train-subway","train-subway-tunnel","train-track","train-tram","train-tunnel","transformer-bolt","transgender","transporter","transporter-1","transporter-2","transporter-3","transporter-4","transporter-5","transporter-6","transporter-7","transporter-empty","trash","trash-arrow-up","trash-can","trash-can-arrow-up","trash-can-check","trash-can-clock","trash-can-list","trash-can-plus","trash-can-slash","trash-can-undo","trash-can-xmark","trash-check","trash-clock","trash-list","trash-plus","trash-slash","trash-undo","trash-xmark","treasure-chest","tree","tree-christmas","tree-city","tree-deciduous","tree-decorated","tree-large","tree-palm","trees","triangle","triangle-exclamation","triangle-instrument","triangle-person-digging","tricycle","tricycle-adult","trillium","trophy","trophy-star","trowel","trowel-bricks","truck","truck-arrow-right","truck-bolt","truck-clock","truck-container","truck-container-empty","truck-droplet","truck-fast","truck-field","truck-field-un","truck-fire","truck-flatbed","truck-front","truck-ladder","truck-medical","truck-monster","truck-moving","truck-pickup","truck-plane","truck-plow","truck-ramp","truck-ramp-box","truck-ramp-couch","truck-tow","truck-utensils","trumpet","tty","tty-answer","tugrik-sign","turkey","turkish-lira-sign","turn-down","turn-down-left","turn-down-right","turn-left","turn-left-down","turn-left-up","turn-right","turn-up","turntable","turtle","tv","tv-music","tv-retro","typewriter","u","ufo","ufo-beam","umbrella","umbrella-beach","umbrella-simple","underline","unicorn","uniform-martial-arts","union","universal-access","unlock","unlock-keyhole","up","up-down","up-down-left-right","up-from-bracket","up-from-dotted-line","up-from-line","up-left","up-long","up-right","up-right-and-down-left-from-center","up-right-from-square","up-to-bracket","up-to-dotted-line","up-to-line","upload","usb-drive","user","user-alien","user-astronaut","user-beard-bolt","user-bounty-hunter","user-check","user-chef","user-clock","user-cowboy","user-crown","user-doctor","user-doctor-hair","user-doctor-hair-long","user-doctor-message","user-gear","user-graduate","user-group","user-group-crown","user-group-simple","user-hair","user-hair-buns","user-hair-long","user-hair-mullet","user-headset","user-helmet-safety","user-hoodie","user-injured","user-large","user-large-slash","user-lock","user-magnifying-glass","user-minus","user-music","user-ninja","user-nurse","user-nurse-hair","user-nurse-hair-long","user-pen","user-pilot","user-pilot-tie","user-plus","user-police","user-police-tie","user-robot","user-robot-xmarks","user-secret","user-shakespeare","user-shield","user-slash","user-tag","user-tie","user-tie-hair","user-tie-hair-long","user-unlock","user-visor","user-vneck","user-vneck-hair","user-vneck-hair-long","user-xmark","users","users-between-lines","users-gear","users-line","users-medical","users-rays","users-rectangle","users-slash","users-viewfinder","utensils","utensils-slash","utility-pole","utility-pole-double","v","vacuum","vacuum-robot","value-absolute","van-shuttle","vault","vector-circle","vector-polygon","vector-square","vent-damper","venus","venus-double","venus-mars","vest","vest-patches","vial","vial-circle-check","vial-virus","vials","video","video-arrow-down-left","video-arrow-up-right","video-plus","video-slash","vihara","violin","virus","virus-covid","virus-covid-slash","virus-slash","viruses","voicemail","volcano","volleyball","volume","volume-high","volume-low","volume-off","volume-slash","volume-xmark","vr-cardboard","w","waffle","wagon-covered","walker","walkie-talkie","wallet","wand","wand-magic","wand-magic-sparkles","wand-sparkles","warehouse","warehouse-full","washing-machine","watch","watch-apple","watch-calculator","watch-fitness","watch-smart","water","water-arrow-down","water-arrow-up","water-ladder","watermelon-slice","wave","wave-pulse","wave-sine","wave-square","wave-triangle","waveform","waveform-lines","waves-sine","web-awesome","webhook","weight-hanging","weight-scale","whale","wheat","wheat-awn","wheat-awn-circle-exclamation","wheat-awn-slash","wheat-slash","wheelchair","wheelchair-move","whiskey-glass","whiskey-glass-ice","whistle","wifi","wifi-exclamation","wifi-fair","wifi-slash","wifi-weak","wind","wind-turbine","wind-warning","window","window-flip","window-frame","window-frame-open","window-maximize","window-minimize","window-restore","windsock","wine-bottle","wine-glass","wine-glass-crack","wine-glass-empty","won-sign","worm","wreath","wreath-laurel","wrench","wrench-simple","x","x-ray","xmark","xmark-large","xmark-to-slot","xmarks-lines","y","yen-sign","yin-yang","z"]}');window.prcIcons||(window.prcIcons={Icon:t,IconLibraryIndex:c})}},a={};function o(e){var l=a[e];if(void 0!==l)return l.exports;var s=a[e]={exports:{}};return r[e](s,s.exports,o),s.exports}o.m=r,e=[],o.O=(r,a,l,s)=>{if(!a){var i=1/0;for(u=0;u=s)&&Object.keys(o.O).every((e=>o.O[e](a[c])))?a.splice(c--,1):(t=!1,s0&&e[u-1][2]>s;u--)e[u]=e[u-1];e[u]=[a,l,s]},o.o=(e,r)=>Object.prototype.hasOwnProperty.call(e,r),(()=>{var e={57:0,350:0};o.O.j=r=>0===e[r];var r=(r,a)=>{var l,s,[i,t,c]=a,n=0;if(i.some((r=>0!==e[r]))){for(l in t)o.o(t,l)&&(o.m[l]=t[l]);if(c)var u=c(o)}for(r&&r(a);no(215)));l=o.O(l)})(); //# sourceMappingURL=index.js.map;